[llvm] [SelectionDAG] Replace `INSERT_SUBVECTOR` with series of `INSERT_VECTOR_ELT` (PR #124420)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 27 00:20:40 PST 2025
================
@@ -7078,18 +7078,18 @@ SDValue DAGTypeLegalizer::WidenVecOp_INSERT_SUBVECTOR(SDNode *N) {
EVT OrigVT = OrigSubVec.getValueType();
unsigned Idx = N->getConstantOperandVal(2);
- SDValue InsertVecElt;
+ SDValue InsertElt;
SDLoc DL(N);
for (unsigned I = 0; I < OrigVT.getVectorNumElements(); ++I) {
- SDValue Extract =
+ SDValue ExtractElt =
DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT.getScalarType(), SubVec,
- DAG.getIntPtrConstant(I, DL, /*isTarget*/ true));
- InsertVecElt = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT,
- I != 0 ? InsertVecElt : InVec, Extract,
- DAG.getIntPtrConstant(I + Idx, DL, true));
+ DAG.getVectorIdxConstant(I, DL));
----------------
arsenm wrote:
can you call getVectorIdxTy once before the loop instead of repeating it on every iteration by hiding it in DAG.getVectorIdxConstant
https://github.com/llvm/llvm-project/pull/124420
More information about the llvm-commits
mailing list