OSDN Git Service

[X86] Use 128-bit ops for 256-bit vzmovl patterns.
authorCraig Topper <craig.topper@intel.com>
Sun, 15 Jul 2018 18:51:07 +0000 (18:51 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 15 Jul 2018 18:51:07 +0000 (18:51 +0000)
commitc7482ced308de739b8ffdf3383578bf76f74249a
tree0c7286122126ea79d96a1d9ceda48fdbdee5ede6
parenta464223848e315e64c6ee6e4004c8109c34786eb
[X86] Use 128-bit ops for 256-bit vzmovl patterns.

128-bit ops implicitly zero the upper bits. This should address the comment about domain crossing for the integer version without AVX2 since we can use a 128-bit VBLENDW without AVX2.

The only bad thing I see here is that we failed to reuse an vxorps in some of the tests, but I think that's already known issue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337134 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/2012-01-12-extract-sv.ll
test/CodeGen/X86/avx-load-store.ll
test/CodeGen/X86/vec_extract-avx.ll
test/CodeGen/X86/vector-extend-inreg.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-combining-avx2.ll