From eb4c6ad4dba353eae57a1d1418ed81633344d05e Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Thu, 23 Apr 2026 16:11:25 +0200 Subject: [PATCH] llvmpipe: port over to ffma_weak Reviewed-by: Georg Lehmann Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c | 1 + src/gallium/drivers/llvmpipe/lp_screen.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c index e36a9fc8b92..c993fbf65be 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c @@ -3337,6 +3337,7 @@ do_alu_action(struct lp_build_nir_soa_context *bld, case nir_op_ffloor: result = lp_build_floor(float_bld, src[0]); break; + case nir_op_ffma_weak: case nir_op_ffma_old: result = lp_build_fmuladd(builder, src[0], src[1], src[2]); break; diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 622f759812a..c3d75345ef0 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -491,6 +491,9 @@ static const struct nir_shader_compiler_options gallivm_nir_options = { .lower_ffma16 = true, .lower_ffma32 = true, .lower_ffma64 = true, + .float_mul_add16 = nir_float_muladd_support_keep_weak_ffma, + .float_mul_add32 = nir_float_muladd_support_keep_weak_ffma, + .float_mul_add64 = nir_float_muladd_support_keep_weak_ffma, .lower_flrp16 = true, .lower_fmod = true, .lower_hadd = true,