@@ -30488,6 +30488,13 @@ static SDValue combineExtractVectorElt(SDNode *N, SelectionDAG &DAG,
30488
30488
if (SDValue NewOp = combineExtractWithShuffle(N, DAG, DCI, Subtarget))
30489
30489
return NewOp;
30490
30490
30491
+ // TODO - Remove this once we can handle the implicit zero-extension of
30492
+ // X86ISD::PEXTRW/X86ISD::PEXTRB in:
30493
+ // XFormVExtractWithShuffleIntoLoad, combineHorizontalPredicateResult and
30494
+ // combineBasicSADPattern.
30495
+ if (N->getOpcode() != ISD::EXTRACT_VECTOR_ELT)
30496
+ return SDValue();
30497
+
30491
30498
if (SDValue NewOp = XFormVExtractWithShuffleIntoLoad(N, DAG, DCI))
30492
30499
return NewOp;
30493
30500
@@ -30635,16 +30642,6 @@ static SDValue combineExtractVectorElt(SDNode *N, SelectionDAG &DAG,
30635
30642
return SDValue();
30636
30643
}
30637
30644
30638
- // TODO - merge with combineExtractVectorElt once it can handle the implicit
30639
- // zero-extension of X86ISD::PINSRW/X86ISD::PINSRB in:
30640
- // XFormVExtractWithShuffleIntoLoad, combineHorizontalPredicateResult and
30641
- // combineBasicSADPattern.
30642
- static SDValue combineExtractVectorElt_SSE(SDNode *N, SelectionDAG &DAG,
30643
- TargetLowering::DAGCombinerInfo &DCI,
30644
- const X86Subtarget &Subtarget) {
30645
- return combineExtractWithShuffle(N, DAG, DCI, Subtarget);
30646
- }
30647
-
30648
30645
/// If a vector select has an operand that is -1 or 0, try to simplify the
30649
30646
/// select to a bitwise logic operation.
30650
30647
/// TODO: Move to DAGCombiner, possibly using TargetLowering::hasAndNot()?
@@ -36767,10 +36764,9 @@ SDValue X86TargetLowering::PerformDAGCombine(SDNode *N,
36767
36764
switch (N->getOpcode()) {
36768
36765
default: break;
36769
36766
case ISD::EXTRACT_VECTOR_ELT:
36770
- return combineExtractVectorElt(N, DAG, DCI, Subtarget);
36771
36767
case X86ISD::PEXTRW:
36772
36768
case X86ISD::PEXTRB:
36773
- return combineExtractVectorElt_SSE (N, DAG, DCI, Subtarget);
36769
+ return combineExtractVectorElt (N, DAG, DCI, Subtarget);
36774
36770
case ISD::INSERT_SUBVECTOR:
36775
36771
return combineInsertSubvector(N, DAG, DCI, Subtarget);
36776
36772
case ISD::EXTRACT_SUBVECTOR:
0 commit comments