[llvm] [SelectionDAG] Improve type legalisation for PARTIAL_REDUCE_MLA (PR #130935)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 30 07:56:12 PDT 2025
================
@@ -4501,7 +4523,23 @@ SDValue DAGTypeLegalizer::SplitVecOp_VECTOR_HISTOGRAM(SDNode *N) {
}
SDValue DAGTypeLegalizer::SplitVecOp_PARTIAL_REDUCE_MLA(SDNode *N) {
- return TLI.expandPartialReduceMLA(N, DAG);
+
+ SDValue Acc = N->getOperand(0);
+ assert(getTypeAction(Acc.getValueType()) != TargetLowering::TypeSplitVector &&
+ "Accumulator should already be a legal type, and shouldn't need "
+ "further splitting");
+
+ SDValue Input1 = N->getOperand(1);
+ SDLoc DL(N);
+
+ SDValue Input1Lo, Input1Hi, Input2Lo, Input2Hi;
+ std::tie(Input1Lo, Input1Hi) = DAG.SplitVector(Input1, DL);
+ std::tie(Input2Lo, Input2Hi) = DAG.SplitVector(N->getOperand(2), DL);
+ unsigned Opcode = N->getOpcode();
+ EVT ResultVT = Acc.getValueType();
+
+ auto Lo = DAG.getNode(Opcode, DL, ResultVT, Acc, Input1Lo, Input2Lo);
----------------
sdesmalen-arm wrote:
nit:
```suggestion
SDValue Lo = DAG.getNode(Opcode, DL, ResultVT, Acc, Input1Lo, Input2Lo);
```
https://github.com/llvm/llvm-project/pull/130935
More information about the llvm-commits
mailing list