From: Jason Ekstrand Date: Tue, 31 Oct 2017 21:42:33 +0000 (-0700) Subject: nir/builder: Add a nir_imm_intN_t helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8c2bf020fd649957597d074cf2390d6de029ddd0;p=mesa.git nir/builder: Add a nir_imm_intN_t helper This lets you easily build integer immediates of arbitrary bit size. Reviewed-by: Iago Toral Quiroga Reviewed-by: Lionel Landwerlin --- diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 4bd5628ff7d..36e0ae3ac63 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -263,6 +263,18 @@ nir_imm_int64(nir_builder *build, int64_t x) return nir_build_imm(build, 1, 64, v); } +static inline nir_ssa_def * +nir_imm_intN_t(nir_builder *build, uint64_t x, unsigned bit_size) +{ + nir_const_value v; + + memset(&v, 0, sizeof(v)); + assert(bit_size <= 64); + v.i64[0] = x & (~0ull >> (64 - bit_size)); + + return nir_build_imm(build, 1, bit_size, v); +} + static inline nir_ssa_def * nir_imm_ivec4(nir_builder *build, int x, int y, int z, int w) {