[x86] Make the single-input v8i16 lowering directly recurse rather than
authorChandler Carruth <chandlerc@gmail.com>
Fri, 27 Feb 2015 09:11:38 +0000 (09:11 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 27 Feb 2015 09:11:38 +0000 (09:11 +0000)
going back through the entire vector shuffle lowering.

This is an important step to being able to re-use this logic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230743 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 6866be74fa04c3ee0fd5d5fcf77f1a405325994b..1bc68f3eaf771c2944dbbc7083c894f0d4e27c92 100644 (file)
@@ -7859,8 +7859,8 @@ static SDValue lowerV8I16GeneralSingleInputVectorShuffle(
 
     // Recurse back into this routine to re-compute state now that this isn't
     // a 3 and 1 problem.
-    return DAG.getVectorShuffle(MVT::v8i16, DL, V, DAG.getUNDEF(MVT::v8i16),
-                                Mask);
+    return lowerV8I16GeneralSingleInputVectorShuffle(DL, V, Mask, Subtarget,
+                                                     DAG);
   };
   if ((NumLToL == 3 && NumHToL == 1) || (NumLToL == 1 && NumHToL == 3))
     return balanceSides(LToLInputs, HToLInputs, HToHInputs, LToHInputs, 0, 4);