[LegalizeTypes] Use GetSplitVector in SplitVec(Res/Op)_PARTIAL_REDUCE_MLA (#162513)

Using DAG.getSplitVector creates new nodes that need to be legalized. We
should use GetSplitVector to get the already legalized copy of the
inputs.
This commit is contained in:
Craig Topper 2025-10-08 20:29:30 -07:00 committed by GitHub
parent ab7138154b
commit 2afd71f318
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3416,7 +3416,7 @@ void DAGTypeLegalizer::SplitVecRes_PARTIAL_REDUCE_MLA(SDNode *N, SDValue &Lo,
SDValue Input2 = N->getOperand(2);
SDValue AccLo, AccHi;
std::tie(AccLo, AccHi) = DAG.SplitVector(Acc, DL);
GetSplitVector(Acc, AccLo, AccHi);
unsigned Opcode = N->getOpcode();
// If the input types don't need splitting, just accumulate into the
@ -3429,8 +3429,8 @@ void DAGTypeLegalizer::SplitVecRes_PARTIAL_REDUCE_MLA(SDNode *N, SDValue &Lo,
SDValue Input1Lo, Input1Hi;
SDValue Input2Lo, Input2Hi;
std::tie(Input1Lo, Input1Hi) = DAG.SplitVector(Input1, DL);
std::tie(Input2Lo, Input2Hi) = DAG.SplitVector(Input2, DL);
GetSplitVector(Input1, Input1Lo, Input1Hi);
GetSplitVector(Input2, Input2Lo, Input2Hi);
EVT ResultVT = AccLo.getValueType();
Lo = DAG.getNode(Opcode, DL, ResultVT, AccLo, Input1Lo, Input2Lo);
@ -4761,8 +4761,8 @@ SDValue DAGTypeLegalizer::SplitVecOp_PARTIAL_REDUCE_MLA(SDNode *N) {
SDLoc DL(N);
SDValue Input1Lo, Input1Hi, Input2Lo, Input2Hi;
std::tie(Input1Lo, Input1Hi) = DAG.SplitVector(N->getOperand(1), DL);
std::tie(Input2Lo, Input2Hi) = DAG.SplitVector(N->getOperand(2), DL);
GetSplitVector(N->getOperand(1), Input1Lo, Input1Hi);
GetSplitVector(N->getOperand(2), Input2Lo, Input2Hi);
unsigned Opcode = N->getOpcode();
EVT ResultVT = Acc.getValueType();