@@ -5414,11 +5414,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
5414
5414
return getMOVL (DAG, dl, VT, V2, V1);
5415
5415
}
5416
5416
5417
- if (X86::isUNPCKLMask (SVOp))
5417
+ if (X86::isUNPCKL_v_undef_Mask (SVOp) || X86:: isUNPCKLMask (SVOp))
5418
5418
return (isMMX) ?
5419
5419
Op : getTargetShuffleNode (getUNPCKLOpcode (VT), dl, VT, V1, V2, DAG);
5420
5420
5421
- if (X86::isUNPCKHMask (SVOp))
5421
+ if (X86::isUNPCKH_v_undef_Mask (SVOp) || X86:: isUNPCKHMask (SVOp))
5422
5422
return (isMMX) ?
5423
5423
Op : getTargetShuffleNode (getUNPCKHOpcode (VT), dl, VT, V1, V2, DAG);
5424
5424
@@ -5443,11 +5443,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
5443
5443
SDValue NewOp = CommuteVectorShuffle (SVOp, DAG);
5444
5444
ShuffleVectorSDNode *NewSVOp = cast<ShuffleVectorSDNode>(NewOp);
5445
5445
5446
- if (X86::isUNPCKLMask (NewSVOp))
5446
+ if (X86::isUNPCKL_v_undef_Mask (NewSVOp) || X86:: isUNPCKLMask (NewSVOp))
5447
5447
return (isMMX) ?
5448
5448
NewOp : getTargetShuffleNode (getUNPCKLOpcode (VT), dl, VT, V2, V1, DAG);
5449
5449
5450
- if (X86::isUNPCKHMask (NewSVOp))
5450
+ if (X86::isUNPCKH_v_undef_Mask (NewSVOp) || X86:: isUNPCKHMask (NewSVOp))
5451
5451
return (isMMX) ?
5452
5452
NewOp : getTargetShuffleNode (getUNPCKHOpcode (VT), dl, VT, V2, V1, DAG);
5453
5453
}
@@ -5494,13 +5494,6 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
5494
5494
TargetMask, DAG);
5495
5495
}
5496
5496
5497
- if (X86::isUNPCKL_v_undef_Mask (SVOp))
5498
- if (VT != MVT::v2i64 && VT != MVT::v2f64)
5499
- return getTargetShuffleNode (getUNPCKLOpcode (VT), dl, VT, V1, V1, DAG);
5500
- if (X86::isUNPCKH_v_undef_Mask (SVOp))
5501
- if (VT != MVT::v2i64 && VT != MVT::v2f64)
5502
- return getTargetShuffleNode (getUNPCKHOpcode (VT), dl, VT, V1, V1, DAG);
5503
-
5504
5497
// Handle v8i16 specifically since SSE can do byte extraction and insertion.
5505
5498
if (VT == MVT::v8i16) {
5506
5499
SDValue NewOp = LowerVECTOR_SHUFFLEv8i16 (Op, DAG);
0 commit comments