--- src/compiler/nir/nir_lower_subgroups.c | 5 ++--- src/compiler/nir/nir_opcodes.py | 12 ++++++------ 2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/compiler/nir/nir_lower_subgroups.c b/src/compiler/nir/nir_lower_subgroups.c index 0d3c83b795..9dc7be7947 100644 --- a/src/compiler/nir/nir_lower_subgroups.c +++ b/src/compiler/nir/nir_lower_subgroups.c @@ -357,9 +357,8 @@ lower_subgroups_intrin(nir_builder *b, nir_intrinsic_instr *intrin, switch (intrin->intrinsic) { case nir_intrinsic_ballot_bitfield_extract: assert(intrin->src[1].is_ssa); - return nir_i2b(b, nir_iand(b, nir_ushr(b, int_val, - intrin->src[1].ssa), - nir_imm_int(b, 1))); + return nir_i2b(b, nir_iand(b, nir_ushr(b, int_val, intrin->src[1].ssa), + nir_imm_intN_t(b, 1, options->ballot_bit_size))); case nir_intrinsic_ballot_bit_count_reduce: return nir_bit_count(b, int_val); case nir_intrinsic_ballot_find_lsb: diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index a762fdd220..89a6c6becc 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -308,17 +308,17 @@ dst = 0; for (unsigned bit = 0; bit < 32; bit++) dst |= ((src0 >> bit) & 1) << (31 - bit); """) -unop("bit_count", tuint32, """ +unop_convert("bit_count", tuint32, tuint, """ dst = 0; -for (unsigned bit = 0; bit < 32; bit++) { +for (unsigned bit = 0; bit < bit_size; bit++) { if ((src0 >> bit) & 1) dst++; } """) -unop_convert("ufind_msb", tint32, tuint32, """ +unop_convert("ufind_msb", tint32, tuint, """ dst = -1; -for (int bit = 31; bit >= 0; bit--) { +for (int bit = bit_size - 1; bit >= 0; bit--) { if ((src0 >> bit) & 1) { dst = bit; break; @@ -340,9 +340,9 @@ for (int bit = 31; bit >= 0; bit--) { } """) -unop("find_lsb", tint32, """ +unop_convert("find_lsb", tint32, tint, """ dst = -1; -for (unsigned bit = 0; bit < 32; bit++) { +for (unsigned bit = 0; bit < bit_size; bit++) { if ((src0 >> bit) & 1) { dst = bit; break; -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev