diff --git a/.pick_status.json b/.pick_status.json index d0b1be250c0..73b286ee622 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -574,7 +574,7 @@ "description": "nir/opt_reassociate: fix exactness bug", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "e0b0f7e73c88f63472cdaedf01b428e6a824d5de", "notes": null diff --git a/src/compiler/nir/nir_opt_reassociate.c b/src/compiler/nir/nir_opt_reassociate.c index 8ec323c363d..c71ba933287 100644 --- a/src/compiler/nir/nir_opt_reassociate.c +++ b/src/compiler/nir/nir_opt_reassociate.c @@ -227,6 +227,7 @@ build_chain(struct chain *c, nir_scalar def, unsigned reserved_count) unsigned reserved_plus_remaining = reserved_count + remaining; if (nir_scalar_is_alu(src) && nir_scalar_alu_op(src) == alu->op && + can_reassociate(nir_def_as_alu(src.def)) && list_is_singular(&src.def->uses) && c->length + reserved_plus_remaining + 2 <= MAX_CHAIN_LENGTH) {