]> granicus.if.org Git - llvm/commit
[X86] Fix PR30926 - Add patterns for (v)cvtsi2s{s,d} and (v)cvtsd2s{s,d}
authorElad Cohen <elad2.cohen@intel.com>
Wed, 11 Jan 2017 09:11:48 +0000 (09:11 +0000)
committerElad Cohen <elad2.cohen@intel.com>
Wed, 11 Jan 2017 09:11:48 +0000 (09:11 +0000)
commit3cf3d0849d68a53393a09f096f33a3452112b729
tree1a1e62aea98b2347e0bb79b2aceab1a9eb06da39
parent208cabd074b8fccabd2c67aef4260fe3984ff3e3
[X86] Fix PR30926 - Add patterns for (v)cvtsi2s{s,d} and (v)cvtsd2s{s,d}

The code emiited by Clang's intrinsics for (v)cvtsi2ss, (v)cvtsi2sd,
(v)cvtsd2ss and (v)cvtss2sd is lowered to a code sequence that includes
redundant (v)movss/(v)movsd instructions. This patch adds patterns for
optimizing these sequences.

Differential revision: https://reviews.llvm.org/D28455

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291660 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/avx-cvt.ll
test/CodeGen/X86/avx512-cvt.ll
test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
test/CodeGen/X86/vec_int_to_fp.ll