[llvm] [WebAssembly] Add patterns for relaxed madd (PR #147487)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 11 21:21:42 PDT 2025


================
@@ -1536,6 +1536,10 @@ multiclass SIMDMADD<Vec vec, bits<32> simdopA, bits<32> simdopS, list<Predicate>
              (vec.vt V128:$a), (vec.vt V128:$b), (vec.vt V128:$c)))],
            vec.prefix#".relaxed_nmadd\t$dst, $a, $b, $c",
            vec.prefix#".relaxed_nmadd", simdopS, reqs>;
+
+  def : Pat<(fadd_contract (vec.vt V128:$a), (fmul_contract (vec.vt V128:$b), (vec.vt V128:$c))),
+             (!cast<Instruction>("MADD_"#vec) V128:$a, V128:$b, V128:$c)>, Requires<[HasRelaxedSIMD]>;
----------------
lukel97 wrote:

I think you can just move this inside the actual MADD definition? Alongside where the pattern for the intrinsic is defined

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


More information about the llvm-commits mailing list