[x86] Teach the new vector shuffle lowering about the zero masking
authorChandler Carruth <chandlerc@gmail.com>
Thu, 4 Sep 2014 01:13:48 +0000 (01:13 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 4 Sep 2014 01:13:48 +0000 (01:13 +0000)
commitfa2dfaedf2015df7c8a9426febf59c374491eb42
tree53aa2d1621ef1e70204e6732046c48ae85abf3f5
parente35ac41a3a965d18e0ada76cafa54b5b0814982a
[x86] Teach the new vector shuffle lowering about the zero masking
abilities of INSERTPS which are really powerful and come up in very
important contexts such as forming diagonal matrices, etc.

With this I ended up being able to remove the somewhat weird helper
I added for INSERTPS because we can collapse the entire state to a no-op
mask. Added a bunch of tests for inserting into a zero-ish vector.

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