Fix unpacking from a single vector.

Both vector arguments were being used in a punpckl instruction, while
the shuffle mask repeats elements from just the first vector.

BUG=swiftshader:15

Change-Id: I8e29c252ee4957692c4949e724ae67253b423e89
Reviewed-on: https://chromium-review.googlesource.com/399419
Reviewed-by: Jim Stichnoth <stichnot@chromium.org>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h
index 260366b..72ed7aa 100644
--- a/src/IceTargetLoweringX86BaseImpl.h
+++ b/src/IceTargetLoweringX86BaseImpl.h
@@ -6022,9 +6022,8 @@
         Index12 == 6 && Index13 == 6 && Index14 == 7 && Index15 == 7) {
       auto *T = makeReg(DestTy);
       auto *Src0RM = legalize(Src0, Legal_Reg | Legal_Mem);
-      auto *Src1RM = legalize(Src1, Legal_Reg | Legal_Mem);
       _movp(T, Src0RM);
-      _punpckl(T, Src1RM);
+      _punpckl(T, Src0RM);
       _movp(Dest, T);
       return;
     }
@@ -6058,9 +6057,8 @@
         Index4 == 2 && Index5 == 2 && Index6 == 3 && Index7 == 3) {
       auto *T = makeReg(DestTy);
       auto *Src0RM = legalize(Src0, Legal_Reg | Legal_Mem);
-      auto *Src1RM = legalize(Src1, Legal_Reg | Legal_Mem);
       _movp(T, Src0RM);
-      _punpckl(T, Src1RM);
+      _punpckl(T, Src0RM);
       _movp(Dest, T);
       return;
     }