]> granicus.if.org Git - llvm/commit
[x86] vectorize cast ops in lowering to avoid register file transfers
authorSanjay Patel <spatel@rotateright.com>
Wed, 6 Feb 2019 14:59:39 +0000 (14:59 +0000)
committerSanjay Patel <spatel@rotateright.com>
Wed, 6 Feb 2019 14:59:39 +0000 (14:59 +0000)
commit00beffb9d0849d1676ab8ea72cd3be57a84385b5
treed521fea34e7022cfba13a099aab35ca2e47f6c00
parent8dee531a480c3cffaee11521993b0733f9a4d2a5
[x86] vectorize cast ops in lowering to avoid register file transfers

The proposal in D56796 may cross the line because we're trying to avoid vectorization
transforms in generic DAG combining. So this is an alternate, later, x86-specific
translation of that patch.

There are several potential follow-ups to enhance this:
1. Allow extraction from non-zero element index.
2. Peek through extends of smaller width integers.
3. Support x86-specific conversion opcodes like X86ISD::CVTSI2P

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353302 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/known-bits-vector.ll
test/CodeGen/X86/known-signbits-vector.ll
test/CodeGen/X86/vec_int_to_fp.ll