NIR bools are ~0 for true, so ((unsigned)a >> 31) != 0 -> ((int)a >> 31). --- src/compiler/nir/nir_lower_idiv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/compiler/nir/nir_lower_idiv.c b/src/compiler/nir/nir_lower_idiv.c index b1e7aeb03c8a..6726b718aaa5 100644 --- a/src/compiler/nir/nir_lower_idiv.c +++ b/src/compiler/nir/nir_lower_idiv.c @@ -101,8 +101,7 @@ convert_instr(nir_builder *bld, nir_alu_instr *alu) if (is_signed) { /* fix the sign: */ r = nir_ixor(bld, numer, denom); - r = nir_ushr(bld, r, nir_imm_int(bld, 31)); - r = nir_i2b(bld, r); + r = nir_ishr(bld, r, nir_imm_int(bld, 31)); b = nir_ineg(bld, q); q = nir_bcsel(bld, r, b, q); } -- 2.10.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev