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

via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 13 07:49:36 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]>;
----------------
badumbatish wrote:

Unable to do this inside the defm as tablegen gives out "cannot set $dst multiple times". Resolved

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


More information about the llvm-commits mailing list