[llvm] [SelectionDAG] Add PARTIAL_REDUCE_U/SMLA ISD Nodes (PR #125207)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 6 08:46:35 PST 2025


================
@@ -22010,8 +22027,13 @@ static SDValue performIntrinsicCombine(SDNode *N,
       return Dot;
     if (SDValue WideAdd = tryLowerPartialReductionToWideAdd(N, Subtarget, DAG))
       return WideAdd;
-    return DAG.getPartialReduceAdd(SDLoc(N), N->getValueType(0),
-                                   N->getOperand(1), N->getOperand(2));
+    const TargetLowering &TLI = DAG.getTargetLoweringInfo();
+    SDLoc DL(N);
+    SDValue Input = N->getOperand(2);
+    SDValue PRVal = DAG.getNode(ISD::PARTIAL_REDUCE_UMLA, DL,
+                                N->getValueType(0), N->getOperand(1), Input,
+                                DAG.getConstant(1, DL, Input.getValueType()));
+    return TLI.expandPartialReduceMLA(PRVal.getNode(), DAG);
----------------
paulwalker-arm wrote:

Is this necessary? I'd expect to be able to return the `PARTIAL_REDUCE_UMLA` result and then let legalisation expand it later.

https://github.com/llvm/llvm-project/pull/125207


More information about the llvm-commits mailing list