[x86] Fix an oversight in the v8i32 path of the new vector shuffle
authorChandler Carruth <chandlerc@gmail.com>
Thu, 25 Sep 2014 04:10:27 +0000 (04:10 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 25 Sep 2014 04:10:27 +0000 (04:10 +0000)
commit2e8d2c727c11426babad8cc88858a5ce3725ea6f
tree1cacead1e7d12fa50e048c017ee73a1f90ebfba4
parente5fb4ad1428bfaf6a8be09fad43c76c02719ebba
[x86] Fix an oversight in the v8i32 path of the new vector shuffle
lowering where it only used the mask of the low 128-bit lane rather than
the entire mask.

This allows the new lowering to correctly match the unpack patterns for
v8i32 vectors.

For reference, the reason that we check for the the entire mask rather
than checking the repeated mask is because the repeated masks don't
abide by all of the invariants of normal masks. As a consequence, it is
safer to use the full mask with functions like the generic equivalence
test.

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