[x86] Fix PR22706 where we would incorrectly try lower a v32i8 dynamic
authorChandler Carruth <chandlerc@gmail.com>
Thu, 26 Feb 2015 22:15:34 +0000 (22:15 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 26 Feb 2015 22:15:34 +0000 (22:15 +0000)
commitb54c36fb4d8d32c1ae3a72823d6befa22b7ce4b4
tree91e61d15b97bbdf9964484cb0513b275a13c922d
parent4b2e78ecac1cea267955ff187292ac252806b6ac
[x86] Fix PR22706 where we would incorrectly try lower a v32i8 dynamic
blend as legal.

We made the same mistake in two different places. Whenever we are custom
lowering a v32i8 blend we need to check whether we are custom lowering
it only for constant conditions that can be shuffled, or whether we
actually have AVX2 and full dynamic blending support on bytes. Both are
fixed, with comments added to make it clear what is going on and a new
test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230695 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vselect-avx.ll