[x86] Fix a moderately terrifying bug in the new 128-bit shuffle logic
authorChandler Carruth <chandlerc@gmail.com>
Fri, 26 Sep 2014 20:41:45 +0000 (20:41 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 26 Sep 2014 20:41:45 +0000 (20:41 +0000)
commit0a31a52b913f350beefe8e2f5e03a36d8789122f
treecab34b81faee71bc0a35594c872d4cebf5d44abe
parent4150a8de760207943fc0d6178a4fefc13a41e21e
[x86] Fix a moderately terrifying bug in the new 128-bit shuffle logic
that managed to elude all of my fuzz testing historically. =/

Something changed to allow this code path to actually be exercised and
it was doing bad things. It is especially heavily exercised by the
patterns that emerge when doing AVX shuffles that end up lowered through
the 128-bit code path.

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