diff options
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 147f201ac6..974d9eb6ea 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -5472,14 +5472,12 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const { X86::getShufflePALIGNRImmediate(SVOp), DAG); - // MMX shuffles not already handled must be expanded. + // Only a few shuffle masks are handled for 64-bit vectors (MMX), and + // 64-bit vectors which made to this point can't be handled, they are + // expanded. if (VT.getSizeInBits() == 64) return SDValue(); - // FIXME: pshufb, blends, shifts. - if (VT.getVectorNumElements() == 2) - return Op; - if (ShuffleVectorSDNode::isSplatMask(&M[0], VT) && SVOp->getSplatIndex() == 0 && V2IsUndef) { if (VT == MVT::v2f64) |