]> granicus.if.org Git - llvm/commit
[X86] Bailout of lowerVectorShuffleAsPermuteAndUnpack for shuffle-with-zero (PR40306)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 15 Jan 2019 16:56:55 +0000 (16:56 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 15 Jan 2019 16:56:55 +0000 (16:56 +0000)
commitb8f7485f8717a784a7d84f7111ebfb76fecb4320
tree20f8f81b544ec808d33a94a2e3b658125d2d1d99
parenta9ba146cfa7515290fbe7c46c3a28c73473f0cc2
[X86] Bailout of lowerVectorShuffleAsPermuteAndUnpack for shuffle-with-zero (PR40306)

If we're shuffling with a zero vector, then we are better off not doing VECTOR_SHUFFLE(UNPCK()) as we lose track of those zero elements.

We were already doing this for SSSE3 targets as we have PSHUFB, but its worth doing for all targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351203 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/buildvec-extract.ll
test/CodeGen/X86/vector-shuffle-128-v8.ll