aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp8
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)