If part of the mask is "undef", then ignore it as we don't care what goes into it.
authorBill Wendling <isanbard@gmail.com>
Thu, 21 Aug 2008 22:36:36 +0000 (22:36 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 21 Aug 2008 22:36:36 +0000 (22:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55147 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 3b3e2a1ae3fbb0fc80ede5f75fdd6f5f6b94a5ca..5d8cb1cd291af23fc80696a5702845f5f34e118f 100644 (file)
@@ -3479,6 +3479,8 @@ SDValue LowerVECTOR_SHUFFLEv8i16(SDValue V1, SDValue V2,
       if (InOrder[i])
         continue;
       SDValue Elt = MaskElts[i];
+      if (Elt.getOpcode() == ISD::UNDEF)
+        continue;
       unsigned EltIdx = cast<ConstantSDNode>(Elt)->getValue();
       SDValue ExtOp = (EltIdx < 8)
         ? DAG.getNode(ISD::EXTRACT_VECTOR_ELT, MVT::i16, V1,