[x86] Start to introduce bit-masking based blend lowering.
authorChandler Carruth <chandlerc@gmail.com>
Wed, 4 Feb 2015 09:06:05 +0000 (09:06 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Wed, 4 Feb 2015 09:06:05 +0000 (09:06 +0000)
commitda681cc578e56e869b5fa5bb041d7c21fb60dfc7
tree906f57918ac38cf574922052d7360acd7bd1d80f
parent5ad147196db935f3da9cfec4c8048942a3fd9ef1
[x86] Start to introduce bit-masking based blend lowering.

This is the simplest form of bit-math based blending which only fires
when we are blending with zero and is relatively profitable. I've only
enabled this path on very specific lowering strategies. I'm planning to
widen its applicability in subsequent patches, but so far you'll notice
that even though we get fewer shufps instructions, we *still* do the bit
math in the FP execution port. I'm looking into why this is still
happening.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228124 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/sse2.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll
test/CodeGen/X86/vector-shuffle-combining.ll