[X86] Factor out new helper getPSHUFB
authorAdam Nemet <anemet@apple.com>
Tue, 25 Mar 2014 17:47:03 +0000 (17:47 +0000)
committerAdam Nemet <anemet@apple.com>
Tue, 25 Mar 2014 17:47:03 +0000 (17:47 +0000)
commit95269118099c8cf56f7f24df56687a73152c5c85
tree7fb9b39babdd572af13040a84749a7bc3fa63dfd
parent67cb554e656de7e74e743deeca03db516463f774
[X86] Factor out new helper getPSHUFB

I found three implementations of this.  This splits it out into a new function
and uses it from the three places.

My plan is to add a fourth use when lowering a vector_shuffle:v16i16.

Compared the assembly output of test/CodeGen/X86 before and after.

The only change is due to how the first PSHUFB was generated in
LowerVECTOR_SHUFFLEv8i16.  If the shuffle mask specified undef (i.e. -1), the
old implementation would write -1 * 2 and -1 * 2 + 1 (254 and 255) in the
control mask.  Now we write 0x80.  These are of course interchangeable since
bit 7 decides if a constant zero is written in the result byte.  The other
instances of this code use 0x80 consistently.

Related to <rdar://problem/16167303>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204734 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp