diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 9c0d64dd4e8..b6890b54c7d 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -750,6 +750,18 @@ nir_iadd_nuw(nir_builder *b, nir_ssa_def *x, nir_ssa_def *y) return d; } +static inline nir_ssa_def * +nir_fgt_imm(nir_builder *build, nir_ssa_def *src1, double src2) +{ + return nir_flt(build, nir_imm_floatN_t(build, src2, src1->bit_size), src1); +} + +static inline nir_ssa_def * +nir_fle_imm(nir_builder *build, nir_ssa_def *src1, double src2) +{ + return nir_fge(build, nir_imm_floatN_t(build, src2, src1->bit_size), src1); +} + /* Use nir_iadd(x, -y) for reversing parameter ordering */ static inline nir_ssa_def * nir_isub_imm(nir_builder *build, uint64_t y, nir_ssa_def *x) diff --git a/src/compiler/nir/nir_builder_opcodes_h.py b/src/compiler/nir/nir_builder_opcodes_h.py index c0331f852cb..688884b9ea3 100644 --- a/src/compiler/nir/nir_builder_opcodes_h.py +++ b/src/compiler/nir/nir_builder_opcodes_h.py @@ -183,6 +183,20 @@ nir_${name}_imm(nir_builder *build, nir_ssa_def *src1, uint64_t src2) } % endfor +% for prefix in ['i', 'u']: +static inline nir_ssa_def * +nir_${prefix}gt_imm(nir_builder *build, nir_ssa_def *src1, uint64_t src2) +{ + return nir_${prefix}lt(build, nir_imm_intN_t(build, src2, src1->bit_size), src1); +} + +static inline nir_ssa_def * +nir_${prefix}le_imm(nir_builder *build, nir_ssa_def *src1, uint64_t src2) +{ + return nir_${prefix}ge(build, nir_imm_intN_t(build, src2, src1->bit_size), src1); +} +% endfor + #endif /* _NIR_BUILDER_OPCODES_ */""" from nir_opcodes import opcodes, type_size, type_base_type