diff --git a/.pick_status.json b/.pick_status.json index 5a1b03956ca..00b9a97834a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1134,7 +1134,7 @@ "description": "nir/uub: guard against division by 0", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "8ee54400733f1f26e175c0065ad69e6a49402969", "notes": null diff --git a/src/compiler/nir/nir_range_analysis.c b/src/compiler/nir/nir_range_analysis.c index becbc7681cd..61da55cc13f 100644 --- a/src/compiler/nir/nir_range_analysis.c +++ b/src/compiler/nir/nir_range_analysis.c @@ -1895,10 +1895,10 @@ get_alu_uub(struct analysis_state *state, struct uub_query q, uint32_t *result, nir_scalar src1_scalar = nir_scalar_chase_alu_src(q.scalar, 1); if (nir_scalar_is_const(src0_scalar)) { uint32_t const_val = nir_scalar_as_uint(src0_scalar); - *result = MIN2(*result, max / const_val * const_val); + *result = const_val ? MIN2(*result, max / const_val * const_val) : 0; } else if (nir_scalar_is_const(src1_scalar)) { uint32_t const_val = nir_scalar_as_uint(src1_scalar); - *result = MIN2(*result, max / const_val * const_val); + *result = const_val ? MIN2(*result, max / const_val * const_val) : 0; } break; }