Skip to content

Commit 4e67c58

Browse files
author
git apple-llvm automerger
committed
Merge commit 'ee4002da2b8b' from llvm.org/main into next
2 parents 854572e + ee4002d commit 4e67c58

File tree

1 file changed

+7
-14
lines changed

1 file changed

+7
-14
lines changed

llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10092,8 +10092,7 @@ SDValue TargetLowering::scalarizeVectorStore(StoreSDNode *ST,
1009210092
SDValue CurrVal = DAG.getConstant(0, SL, IntVT);
1009310093

1009410094
for (unsigned Idx = 0; Idx < NumElem; ++Idx) {
10095-
SDValue Elt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, RegSclVT, Value,
10096-
DAG.getVectorIdxConstant(Idx, SL));
10095+
SDValue Elt = DAG.getExtractVectorElt(SL, RegSclVT, Value, Idx);
1009710096
SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SL, MemSclVT, Elt);
1009810097
SDValue ExtElt = DAG.getNode(ISD::ZERO_EXTEND, SL, IntVT, Trunc);
1009910098
unsigned ShiftIntoIdx =
@@ -10117,8 +10116,7 @@ SDValue TargetLowering::scalarizeVectorStore(StoreSDNode *ST,
1011710116
// memory individually.
1011810117
SmallVector<SDValue, 8> Stores;
1011910118
for (unsigned Idx = 0; Idx < NumElem; ++Idx) {
10120-
SDValue Elt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, RegSclVT, Value,
10121-
DAG.getVectorIdxConstant(Idx, SL));
10119+
SDValue Elt = DAG.getExtractVectorElt(SL, RegSclVT, Value, Idx);
1012210120

1012310121
SDValue Ptr =
1012410122
DAG.getObjectPtrOffset(SL, BasePtr, TypeSize::getFixed(Idx * Stride));
@@ -11841,9 +11839,7 @@ SDValue TargetLowering::expandVECTOR_COMPRESS(SDNode *Node,
1184111839

1184211840
unsigned NumElms = VecVT.getVectorNumElements();
1184311841
for (unsigned I = 0; I < NumElms; I++) {
11844-
SDValue Idx = DAG.getVectorIdxConstant(I, DL);
11845-
11846-
SDValue ValI = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ScalarVT, Vec, Idx);
11842+
SDValue ValI = DAG.getExtractVectorElt(DL, ScalarVT, Vec, I);
1184711843
SDValue OutPtr = getVectorElementPointer(DAG, StackPtr, VecVT, OutPos);
1184811844
Chain = DAG.getStore(
1184911845
Chain, DL, ValI, OutPtr,
@@ -11852,8 +11848,8 @@ SDValue TargetLowering::expandVECTOR_COMPRESS(SDNode *Node,
1185211848
// Get the mask value and add it to the current output position. This
1185311849
// either increments by 1 if MaskI is true or adds 0 otherwise.
1185411850
// Freeze in case we have poison/undef mask entries.
11855-
SDValue MaskI = DAG.getFreeze(
11856-
DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MaskScalarVT, Mask, Idx));
11851+
SDValue MaskI =
11852+
DAG.getFreeze(DAG.getExtractVectorElt(DL, MaskScalarVT, Mask, I));
1185711853
MaskI = DAG.getFreeze(MaskI);
1185811854
MaskI = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, MaskI);
1185911855
MaskI = DAG.getNode(ISD::ZERO_EXTEND, DL, PositionVT, MaskI);
@@ -11911,11 +11907,8 @@ SDValue TargetLowering::expandPartialReduceMLA(SDNode *N,
1191111907

1191211908
// Collect all of the subvectors
1191311909
std::deque<SDValue> Subvectors = {Acc};
11914-
for (unsigned I = 0; I < ScaleFactor; I++) {
11915-
auto SourceIndex = DAG.getVectorIdxConstant(I * Stride, DL);
11916-
Subvectors.push_back(
11917-
DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, AccVT, {Input, SourceIndex}));
11918-
}
11910+
for (unsigned I = 0; I < ScaleFactor; I++)
11911+
Subvectors.push_back(DAG.getExtractSubvector(DL, AccVT, Input, I * Stride));
1191911912

1192011913
// Flatten the subvector tree
1192111914
while (Subvectors.size() > 1) {

0 commit comments

Comments
 (0)