[Mesa-dev] [PATCH 42.5/48] nir/builder: Add a nir_imm_intN_t helper

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu Nov 2 17:00:36 UTC 2017


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 31/10/17 23:54, Jason Ekstrand wrote:
> This lets you easily build integer immediates of arbitrary bit size.
> ---
>   src/compiler/nir/nir_builder.h | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
> index 4bd5628..36e0ae3 100644
> --- a/src/compiler/nir/nir_builder.h
> +++ b/src/compiler/nir/nir_builder.h
> @@ -264,6 +264,18 @@ nir_imm_int64(nir_builder *build, int64_t x)
>   }
>   
>   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)
>   {
>      nir_const_value v;




More information about the mesa-dev mailing list