From ea0670dfb559d67109c2b0885bee5edb2d603eaf Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 12 Jun 2025 17:22:15 +0100 Subject: [PATCH] nir: simplify nir_addition_might_overflow nir_unsigned_upper_bound is good enough that this isn't needed anymore. No fossil-db changes. Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Part-of: --- src/compiler/nir/nir_range_analysis.c | 34 --------------------------- 1 file changed, 34 deletions(-) diff --git a/src/compiler/nir/nir_range_analysis.c b/src/compiler/nir/nir_range_analysis.c index 438a2730085..189dbb07c66 100644 --- a/src/compiler/nir/nir_range_analysis.c +++ b/src/compiler/nir/nir_range_analysis.c @@ -2093,40 +2093,6 @@ nir_addition_might_overflow(nir_shader *shader, struct hash_table *range_ht, nir_scalar ssa, unsigned const_val, const nir_unsigned_upper_bound_config *config) { - if (nir_scalar_is_alu(ssa)) { - nir_op alu_op = nir_scalar_alu_op(ssa); - - /* iadd(imul(a, #b), #c) */ - if (alu_op == nir_op_imul || alu_op == nir_op_ishl) { - nir_scalar mul_src0 = nir_scalar_chase_alu_src(ssa, 0); - nir_scalar mul_src1 = nir_scalar_chase_alu_src(ssa, 1); - uint32_t stride = 1; - if (nir_scalar_is_const(mul_src0)) - stride = nir_scalar_as_uint(mul_src0); - else if (nir_scalar_is_const(mul_src1)) - stride = nir_scalar_as_uint(mul_src1); - - if (alu_op == nir_op_ishl) - stride = 1u << (stride % 32u); - - if (!stride || const_val <= UINT32_MAX - (UINT32_MAX / stride * stride)) - return false; - } - - /* iadd(iand(a, #b), #c) */ - if (alu_op == nir_op_iand) { - nir_scalar and_src0 = nir_scalar_chase_alu_src(ssa, 0); - nir_scalar and_src1 = nir_scalar_chase_alu_src(ssa, 1); - uint32_t mask = 0xffffffff; - if (nir_scalar_is_const(and_src0)) - mask = nir_scalar_as_uint(and_src0); - else if (nir_scalar_is_const(and_src1)) - mask = nir_scalar_as_uint(and_src1); - if (mask == 0 || const_val < (1u << (ffs(mask) - 1))) - return false; - } - } - uint32_t ub = nir_unsigned_upper_bound(shader, range_ht, ssa, config); return const_val + ub < const_val; }