From a3d6a770c0ca17e1d0ac69a614c945712ac8d4c1 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Mon, 16 Sep 2024 20:16:24 +0200 Subject: [PATCH] nir/instr_set: fix fp_fast_math We can't just ignore the flags of the match, we need the union. Fixes: 666647acaed ("nir: track some float controls bits per instruction") Reviewed-by: Faith Ekstrand Part-of: --- src/compiler/nir/nir_instr_set.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/nir/nir_instr_set.c b/src/compiler/nir/nir_instr_set.c index c9490b13b30..da7ca0ecf49 100644 --- a/src/compiler/nir/nir_instr_set.c +++ b/src/compiler/nir/nir_instr_set.c @@ -804,10 +804,10 @@ nir_instr_set_add_or_rewrite(struct set *instr_set, nir_instr *instr, * exactly identical in every other way so, once we've set the exact * bit, they are the same. */ - if (instr->type == nir_instr_type_alu && nir_instr_as_alu(instr)->exact) - nir_instr_as_alu(match)->exact = true; - if (instr->type == nir_instr_type_alu) - nir_instr_as_alu(match)->fp_fast_math = nir_instr_as_alu(instr)->fp_fast_math; + if (instr->type == nir_instr_type_alu) { + nir_instr_as_alu(match)->exact |= nir_instr_as_alu(instr)->exact; + nir_instr_as_alu(match)->fp_fast_math |= nir_instr_as_alu(instr)->fp_fast_math; + } nir_def_rewrite_uses(def, new_def);