From: Jason Ekstrand Date: Mon, 12 Nov 2018 22:02:23 +0000 (-0600) Subject: nir/builder: Assert that intN_t immediates fit X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f29f4db1e867357a119c0c7c34fb54dc27fb682;p=mesa.git nir/builder: Assert that intN_t immediates fit This assert won't catch all mistakes with this helper but it will at least ensure that the top bits are all zero or all one which should help catch bugs. Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 3271a480520..3be630ab3dd 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -330,6 +330,10 @@ nir_imm_intN_t(nir_builder *build, uint64_t x, unsigned bit_size) { nir_const_value v; + assert(bit_size == 64 || + (int64_t)x >> bit_size == 0 || + (int64_t)x >> bit_size == -1); + memset(&v, 0, sizeof(v)); assert(bit_size <= 64); v.i64[0] = x & (~0ull >> (64 - bit_size));