From e2c69cd976b2b4eef250c9e11bc8a994d71ddd25 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Sat, 16 Apr 2022 13:36:17 +0200 Subject: [PATCH] nir/opt_algebraic: Fix mask in shift by constant combining. 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 Reviewed-by: Jason Ekstrand Part-of: (cherry picked from commit 66e917fff69497143ebf6593a40891ea3d1daf93) --- .pick_status.json | 2 +- src/compiler/nir/nir_opt_algebraic.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index bdaa9be782b..26f6e1dca0f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -454,7 +454,7 @@ "description": "nir/opt_algebraic: Fix mask in shift by constant combining.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "0e6581b87dc4e168fa864cd39e8947a58999189a" }, diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 63c2427344f..dcd4c501e4a 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -420,7 +420,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)