diff --git a/.pick_status.json b/.pick_status.json index b16649ca2e7..bd2c5a7d0d7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -464,7 +464,7 @@ "description": "nir/instr_set: fix fp_fast_math", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "666647acaedb1b4112f19192b992b05547975dfa", "notes": null diff --git a/src/compiler/nir/nir_instr_set.c b/src/compiler/nir/nir_instr_set.c index a43efe025df..2ce6c3e7ec4 100644 --- a/src/compiler/nir/nir_instr_set.c +++ b/src/compiler/nir/nir_instr_set.c @@ -771,10 +771,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);