]> granicus.if.org Git - clang/commit
[X86][AVX512] Replace lossless i32/u32 to f64 conversion intrinsics with generic IR
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 16 Nov 2016 09:27:40 +0000 (09:27 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 16 Nov 2016 09:27:40 +0000 (09:27 +0000)
commit86ec28523592e3bf7dca7a0579cc18de3d49262b
treea1595a63f523054754523df86aabb4c459d04d80
parent4a9b9bf7798814aa9e32c1e4df0c1ccb65d992e7
[X86][AVX512] Replace lossless i32/u32 to f64 conversion intrinsics with generic IR

Both the (V)CVTDQ2PD (i32 to f64) and (V)CVTUDQ2PD (u32 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 headers - a future patch will deal with removing the llvm intrinsics.

This is an extension patch to D20528 which dealt with the equivalent sse/avx cases.

Differential Revision: https://reviews.llvm.org/D26686

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@287088 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsX86.def
lib/Headers/avx512fintrin.h
lib/Headers/avx512vlintrin.h
test/CodeGen/avx512f-builtins.c
test/CodeGen/avx512vl-builtins.c