[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)
commit698528d83b07d160bef64752e1e95dc8e9871623
treec5ea660f88cf1c50b058143ef64315623b96cd35
parent4d60243bfde5dfa5943fe9fdf1982baeee77069f
[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

llvm-svn: 287088
clang/include/clang/Basic/BuiltinsX86.def
clang/lib/Headers/avx512fintrin.h
clang/lib/Headers/avx512vlintrin.h
clang/test/CodeGen/avx512f-builtins.c
clang/test/CodeGen/avx512vl-builtins.c