[llvm] [RISCV] Lower PARTIAL_REDUCE_[S/U]MLA via zvqdotq (PR #140950)

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Wed May 21 14:12:10 PDT 2025


================
@@ -1571,6 +1571,14 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
     setIndexedStoreAction(ISD::POST_INC, MVT::i32, Legal);
   }
 
+  if (Subtarget.hasStdExtZvqdotq()) {
+    setPartialReduceMLAAction(MVT::nxv1i32, MVT::nxv4i8, Custom);
----------------
preames wrote:

I guarded this block, but FYI, partial_reduce_umla doesn't appear to work with zve32x at all.

$./llc -mtriple=riscv64 -mattr=+zve32x -verify-machineinstrs < test/CodeGen/RISCV/rvv/zvqdotq-sdnode.ll
WidenVectorResult #0: t13: nxv1i32 = partial_reduce_umla t10, t8, t12

LLVM ERROR: Do not know how to widen the result of this operator!


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


More information about the llvm-commits mailing list