From f6f68d5cf17e5f1d30debf0683581ecae43ddaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Tue, 16 Feb 2021 18:18:52 +0100 Subject: [PATCH] nir: Add new nir_builder helpers for iadd with no_unsigned_wrap. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Rhys Perry Part-of: --- src/compiler/nir/nir_builder.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index a7e77f147ee..029998cc09a 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -815,6 +815,22 @@ nir_iadd_imm(nir_builder *build, nir_ssa_def *x, uint64_t y) } } +static inline nir_ssa_def * +nir_iadd_imm_nuw(nir_builder *b, nir_ssa_def *x, uint64_t y) +{ + nir_ssa_def *d = nir_iadd_imm(b, x, y); + if (d != x && d->parent_instr->type == nir_instr_type_alu) + nir_instr_as_alu(d->parent_instr)->no_unsigned_wrap = true; + return d; +} + +static inline nir_ssa_def * +nir_iadd_nuw(nir_builder *b, nir_ssa_def *x, nir_ssa_def *y) +{ + nir_ssa_def *d = nir_iadd(b, x, y); + nir_instr_as_alu(d->parent_instr)->no_unsigned_wrap = true; + return d; +} static inline nir_ssa_def * nir_ieq_imm(nir_builder *build, nir_ssa_def *x, uint64_t y)