diff options
author | Jason Ekstrand <[email protected]> | 2018-11-12 15:58:18 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-11-15 19:59:27 -0600 |
commit | b77d68b78e2bf623bf9ba3f28945cf2080185a9d (patch) | |
tree | 129ec21f92efd1dda3a795bfa5892318fff2c702 /src/compiler/nir/nir_builder.h | |
parent | 1f29f4db1e867357a119c0c7c34fb54dc27fb682 (diff) |
nir/builder: Add iadd_imm and imul_imm helpers
The pattern of adding or multiplying an integer by an immediate is
fairly common especially in deref chain handling. This adds a helper
for it and uses it a few places. The advantage to the helper is that
it automatically handles bit sizes for you.
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Karol Herbst <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir_builder.h')
-rw-r--r-- | src/compiler/nir/nir_builder.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 3be630ab3dd..cf096d41bf2 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -553,6 +553,18 @@ nir_channels(nir_builder *b, nir_ssa_def *def, nir_component_mask_t mask) return nir_swizzle(b, def, swizzle, num_channels, false); } +static inline nir_ssa_def * +nir_iadd_imm(nir_builder *build, nir_ssa_def *x, uint64_t y) +{ + return nir_iadd(build, x, nir_imm_intN_t(build, y, x->bit_size)); +} + +static inline nir_ssa_def * +nir_imul_imm(nir_builder *build, nir_ssa_def *x, uint64_t y) +{ + return nir_imul(build, x, nir_imm_intN_t(build, y, x->bit_size)); +} + /** * Turns a nir_src into a nir_ssa_def * so it can be passed to * nir_build_alu()-based builder calls. |