Skip to content

Commit f3f6e57

Browse files
Update LegalizeVectorTypes.cpp
1 parent 275878c commit f3f6e57

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7040,10 +7040,10 @@ SDValue DAGTypeLegalizer::WidenVecOp_INSERT_SUBVECTOR(SDNode *N) {
70407040
SDValue SubVec = N->getOperand(1);
70417041
SDValue InVec = N->getOperand(0);
70427042

7043-
SDValue OrigSubVec;
7043+
EVT OrigVT;
70447044
if (getTypeAction(SubVec.getValueType()) == TargetLowering::TypeWidenVector) {
7045-
OrigSubVec = std::move(SubVec);
7046-
SubVec = GetWidenedVector(OrigSubVec);
7045+
OrigVT = SubVec.getValueType();
7046+
SubVec = GetWidenedVector(SubVec);
70477047
}
70487048

70497049
EVT SubVT = SubVec.getValueType();
@@ -7075,19 +7075,18 @@ SDValue DAGTypeLegalizer::WidenVecOp_INSERT_SUBVECTOR(SDNode *N) {
70757075

70767076
// If the operands can't be widened legally, just replace the INSERT_SUBVECTOR
70777077
// with a series of INSERT_VECTOR_ELT
7078-
EVT OrigVT = OrigSubVec.getValueType();
70797078
unsigned Idx = N->getConstantOperandVal(2);
70807079

7081-
SDValue InsertElt;
7080+
SDValue InsertElt = InVec;
70827081
SDLoc DL(N);
70837082
EVT VectorIdxTy = TLI.getVectorIdxTy(DAG.getDataLayout());
70847083
for (unsigned I = 0; I < OrigVT.getVectorNumElements(); ++I) {
70857084
SDValue ExtractElt =
70867085
DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT.getScalarType(), SubVec,
70877086
DAG.getConstant(I, DL, VectorIdxTy));
70887087
InsertElt =
7089-
DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, I != 0 ? InsertElt : InVec,
7090-
ExtractElt, DAG.getConstant(I + Idx, DL, VectorIdxTy));
7088+
DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, InsertElt, ExtractElt,
7089+
DAG.getConstant(I + Idx, DL, VectorIdxTy));
70917090
}
70927091

70937092
return InsertElt;

0 commit comments

Comments
 (0)