]> granicus.if.org Git - clang/commit
[X86][SSE] Replace lossless i32/f32 to f64 conversion intrinsics with generic IR
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 23 May 2016 22:13:02 +0000 (22:13 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 23 May 2016 22:13:02 +0000 (22:13 +0000)
commitb9b7162a4b7339717b4cb978eba8581a74fbd04f
tree9bb9ff1e7272e8b2e0c04b7ab782b22a95504843
parent445e59e90c1afb49c4f09fe8fcc1c85318967a2b
[X86][SSE] Replace lossless i32/f32 to f64 conversion intrinsics with generic IR

Both the (V)CVTDQ2PD(Y) (i32 to f64) and (V)CVTPS2PD(Y) (f32 to f64) conversion instructions are lossless and can be safely represented as generic __builtin_convertvector calls instead of x86 intrinsics without affecting final codegen.

This patch removes the clang builtins and their use in the sse2/avx headers - a future patch will deal with removing the llvm intrinsics, but that will require a bit more work.

Differential Revision: http://reviews.llvm.org/D20528

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270499 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsX86.def
lib/Headers/avxintrin.h
lib/Headers/emmintrin.h
test/CodeGen/avx-builtins.c
test/CodeGen/builtins-x86.c
test/CodeGen/sse2-builtins.c
test/CodeGen/target-builtin-error-2.c