[llvm] [SelectionDAG][AArch64] Add dot product lowering in NEON for PARTIAL_REDUCE_*MLA ISD nodes (PR #140075)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Thu May 15 09:00:27 PDT 2025


================
@@ -27569,6 +27581,14 @@ void AArch64TargetLowering::ReplaceNodeResults(
     if (SDValue Res = LowerVECTOR_COMPRESS(SDValue(N, 0), DAG))
       Results.push_back(Res);
     return;
+  case ISD::PARTIAL_REDUCE_UMLA:
+  case ISD::PARTIAL_REDUCE_SMLA: {
+    if (SDValue Res = LowerPARTIAL_REDUCE_MLA(SDValue(N, 0), DAG))
+      Results.push_back(Res);
+    else
+      Results.push_back(expandPartialReduceMLA(N, DAG));
----------------
MacDue wrote:

No test failures from removing this expansion (and also seems not to be done for other nodes). IIRC a custom lowering just means the node is assumed to be legal. 
```suggestion
    if (SDValue Res = LowerPARTIAL_REDUCE_MLA(SDValue(N, 0), DAG))
      Results.push_back(Res);
```

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


More information about the llvm-commits mailing list