nir/opt_algebraic: Fix mask in shift by constant combining.
authorGeorg Lehmann <dadschoorse@gmail.com>
Sat, 16 Apr 2022 11:36:17 +0000 (13:36 +0200)
committerMarge Bot <emma+marge@anholt.net>
Tue, 10 May 2022 18:47:21 +0000 (18:47 +0000)
The comment above is correct, but the code to calculate the mask was broken.

No Foz-db changes outside of noise.

Fixes: 0e6581b87dc ("nir/algebraic: Reassociate shift-by-constant of shift-by-constant")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15990>

src/compiler/nir/nir_opt_algebraic.py

index d0873b0..222727d 100644 (file)
@@ -413,7 +413,7 @@ optimizations.extend([
 # bits of the second source.  These replacements must correctly handle the
 # case where (b % bitsize) + (c % bitsize) >= bitsize.
 for s in [8, 16, 32, 64]:
-   mask = (1 << s) - 1
+   mask = s - 1
 
    ishl = "ishl@{}".format(s)
    ishr = "ishr@{}".format(s)