]> granicus.if.org Git - llvm/commit
[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)
commitf1f243fd347c60d853f027a2e5eb204f4bd7f81c
tree5b42113036f876ae225ca1ec031f9b271cea4f74
parentdc01a45559f27bd67ff4b35e308b6490f79ab852
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287108 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsX86.td
lib/IR/AutoUpgrade.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86IntrinsicsInfo.h
test/CodeGen/X86/avx512-intrinsics-upgrade.ll
test/CodeGen/X86/avx512-intrinsics.ll
test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
test/CodeGen/X86/avx512vl-intrinsics.ll
test/CodeGen/X86/vec_int_to_fp.ll