diff options
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index 7df68113104..200dacd27bc 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -204,10 +204,10 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_StrictFPOp(SDNode *N) { EVT ValueVTs[] = {VT, MVT::Other}; SDLoc dl(N); - SmallVector<SDValue, 4> Opers; + SmallVector<SDValue, 4> Opers(NumOpers); // The Chain is the first operand. - Opers.push_back(Chain); + Opers[0] = Chain; // Now process the remaining operands. for (unsigned i = 1; i < NumOpers; ++i) { @@ -216,7 +216,7 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_StrictFPOp(SDNode *N) { if (Oper.getValueType().isVector()) Oper = GetScalarizedVector(Oper); - Opers.push_back(Oper); + Opers[i] = Oper; } SDValue Result = DAG.getNode(N->getOpcode(), dl, ValueVTs, Opers); @@ -1245,12 +1245,12 @@ void DAGTypeLegalizer::SplitVecRes_StrictFPOp(SDNode *N, SDValue &Lo, SDLoc dl(N); std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0)); - SmallVector<SDValue, 4> OpsLo; - SmallVector<SDValue, 4> OpsHi; + SmallVector<SDValue, 4> OpsLo(NumOps); + SmallVector<SDValue, 4> OpsHi(NumOps); // The Chain is the first operand. - OpsLo.push_back(Chain); - OpsHi.push_back(Chain); + OpsLo[0] = Chain; + OpsHi[0] = Chain; // Now process the remaining operands. for (unsigned i = 1; i < NumOps; ++i) { @@ -1268,8 +1268,8 @@ void DAGTypeLegalizer::SplitVecRes_StrictFPOp(SDNode *N, SDValue &Lo, std::tie(OpLo, OpHi) = DAG.SplitVectorOperand(N, i); } - OpsLo.push_back(OpLo); - OpsHi.push_back(OpHi); + OpsLo[i] = OpLo; + OpsHi[i] = OpHi; } EVT LoValueVTs[] = {LoVT, MVT::Other}; |