[X86][AVX512] Autoupgrade lossless i32/u32 to f64 conversion intrinsics with generic IR
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 16 Nov 2016 14:48:32 +0000 (14:48 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 16 Nov 2016 14:48:32 +0000 (14:48 +0000)
commitb57dd17142a63c26157f61f1f8ae43f86c7be8c4
tree5ead492053fbdb15a610637f42a1db16a7961986
parent678dd8fc62c5f57cca2b304376538a9f2fe3fb30
[X86][AVX512] Autoupgrade 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 SINT_TO_FP/UINT_TO_FP calls instead of x86 intrinsics without affecting final codegen.

LLVM counterpart to D26686

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

llvm-svn: 287108
llvm/include/llvm/IR/IntrinsicsX86.td
llvm/lib/IR/AutoUpgrade.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86IntrinsicsInfo.h
llvm/test/CodeGen/X86/avx512-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
llvm/test/CodeGen/X86/vec_int_to_fp.ll