nir/builder: Add a nir_iand_imm helper

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>
This commit is contained in:
Jason Ekstrand
2020-06-11 17:32:11 -05:00
committed by Marge Bot
parent ac95bb45e8
commit a0a0bcfa26

View File

@@ -763,6 +763,20 @@ nir_fmul_imm(nir_builder *build, nir_ssa_def *x, double y)
return nir_fmul(build, x, nir_imm_floatN_t(build, y, x->bit_size));
}
static inline nir_ssa_def *
nir_iand_imm(nir_builder *build, nir_ssa_def *x, uint64_t y)
{
y &= BITFIELD64_MASK(x->bit_size);
if (y == 0) {
return nir_imm_intN_t(build, 0, x->bit_size);
} else if (y == BITFIELD64_MASK(x->bit_size)) {
return x;
} else {
return nir_iand(build, x, nir_imm_intN_t(build, y, x->bit_size));
}
}
static inline nir_ssa_def *
nir_pack_bits(nir_builder *b, nir_ssa_def *src, unsigned dest_bit_size)
{