[llvm] [WebAssembly] Lower fmuladd to fma (PR #161355)

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 3 08:53:50 PDT 2025


================
@@ -103,9 +136,8 @@ define <4 x float> @fmuladd_4xf32(<4 x float> %a, <4 x float> %b, <4 x float> %c
 ; RELAXED-LABEL: fmuladd_4xf32:
 ; RELAXED:         .functype fmuladd_4xf32 (v128, v128, v128) -> (v128)
 ; RELAXED-NEXT:  # %bb.0:
-; RELAXED-NEXT:    f32x4.mul $push0=, $0, $1
-; RELAXED-NEXT:    f32x4.add $push1=, $pop0, $2
----------------
dschuff wrote:

Actually I guess we don't know how much of the performance benefit above comes from fusing mul+add operations that would be valid either way according to C++, and how much of it is from using the wasm instruction for FMAs that are in the source and are required to be fused, right?

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


More information about the llvm-commits mailing list