Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit ae8a000

Browse files
committed
[X86][SSE] Merge combineExtractVectorElt_SSE into combineExtractVectorElt. NFCI.
We still early-out for X86ISD::PEXTRW/X86ISD::PEXTRB so no actual change in behaviour, but it'll make it easier to add support in a future patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317485 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent d27af43 commit ae8a000

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

lib/Target/X86/X86ISelLowering.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30488,6 +30488,13 @@ static SDValue combineExtractVectorElt(SDNode *N, SelectionDAG &DAG,
3048830488
if (SDValue NewOp = combineExtractWithShuffle(N, DAG, DCI, Subtarget))
3048930489
return NewOp;
3049030490

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+
3049130498
if (SDValue NewOp = XFormVExtractWithShuffleIntoLoad(N, DAG, DCI))
3049230499
return NewOp;
3049330500

@@ -30635,16 +30642,6 @@ static SDValue combineExtractVectorElt(SDNode *N, SelectionDAG &DAG,
3063530642
return SDValue();
3063630643
}
3063730644

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-
3064830645
/// If a vector select has an operand that is -1 or 0, try to simplify the
3064930646
/// select to a bitwise logic operation.
3065030647
/// TODO: Move to DAGCombiner, possibly using TargetLowering::hasAndNot()?
@@ -36767,10 +36764,9 @@ SDValue X86TargetLowering::PerformDAGCombine(SDNode *N,
3676736764
switch (N->getOpcode()) {
3676836765
default: break;
3676936766
case ISD::EXTRACT_VECTOR_ELT:
36770-
return combineExtractVectorElt(N, DAG, DCI, Subtarget);
3677136767
case X86ISD::PEXTRW:
3677236768
case X86ISD::PEXTRB:
36773-
return combineExtractVectorElt_SSE(N, DAG, DCI, Subtarget);
36769+
return combineExtractVectorElt(N, DAG, DCI, Subtarget);
3677436770
case ISD::INSERT_SUBVECTOR:
3677536771
return combineInsertSubvector(N, DAG, DCI, Subtarget);
3677636772
case ISD::EXTRACT_SUBVECTOR:

0 commit comments

Comments
 (0)