[Mesa-dev] [PATCH] nir/opcodes: Fix constant-folding of ufind_msb
Jason Ekstrand
jason at jlekstrand.net
Mon Aug 28 22:10:36 UTC 2017
We didn't fold correctly in the case of 0x1 because we never let the
loop counter hit 0. Switching it to bit >= 0 solves this problem.
Cc: mesa-stable at lists.freedesktop.org
---
src/compiler/nir/nir_opcodes.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py
index 39c01a7..a64a28e 100644
--- a/src/compiler/nir/nir_opcodes.py
+++ b/src/compiler/nir/nir_opcodes.py
@@ -308,7 +308,7 @@ for (unsigned bit = 0; bit < 32; bit++) {
unop_convert("ufind_msb", tint32, tuint32, """
dst = -1;
-for (int bit = 31; bit > 0; bit--) {
+for (int bit = 31; bit >= 0; bit--) {
if ((src0 >> bit) & 1) {
dst = bit;
break;
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list