Skip to content

Commit 687531f

Browse files
committed
[DAG] PromoteIntRes_EXTRACT_SUBVECTOR - pull out repeated getOperand/getVectorElementType calls. NFC.
1 parent fbd1b65 commit 687531f

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5724,21 +5724,20 @@ SDValue DAGTypeLegalizer::PromoteIntRes_EXTRACT_SUBVECTOR(SDNode *N) {
57245724

57255725
SDValue InOp0 = N->getOperand(0);
57265726
if (getTypeAction(InOp0.getValueType()) == TargetLowering::TypePromoteInteger)
5727-
InOp0 = GetPromotedInteger(N->getOperand(0));
5727+
InOp0 = GetPromotedInteger(InOp0);
57285728

57295729
EVT InVT = InOp0.getValueType();
5730+
EVT InSVT = InVT.getVectorElementType();
57305731

57315732
unsigned OutNumElems = OutVT.getVectorNumElements();
57325733
SmallVector<SDValue, 8> Ops;
57335734
Ops.reserve(OutNumElems);
57345735
for (unsigned i = 0; i != OutNumElems; ++i) {
5735-
57365736
// Extract the element from the original vector.
5737-
SDValue Index = DAG.getNode(ISD::ADD, dl, BaseIdx.getValueType(),
5738-
BaseIdx, DAG.getConstant(i, dl, BaseIdx.getValueType()));
5739-
SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
5740-
InVT.getVectorElementType(), N->getOperand(0), Index);
5741-
5737+
SDValue Index = DAG.getNode(ISD::ADD, dl, BaseIdx.getValueType(), BaseIdx,
5738+
DAG.getConstant(i, dl, BaseIdx.getValueType()));
5739+
SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, InSVT,
5740+
N->getOperand(0), Index);
57425741
SDValue Op = DAG.getAnyExtOrTrunc(Ext, dl, NOutVTElem);
57435742
// Insert the converted element to the new vector.
57445743
Ops.push_back(Op);

0 commit comments

Comments
 (0)