Module: Mesa
Branch: main
Commit: 832efd097c6a31bb52554882764f2310e6ce62ad
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=832efd097c6a31bb52554882764f2310e6ce62ad

Author: Karol Herbst <[email protected]>
Date:   Sun Oct 15 16:11:57 2023 +0200

nir/lower_mem_access_bit_sizes: fix invalid shift bit_size

Shifts always need 32 bit for their second source.

Fixes: c70d94a8897 ("nir_lower_mem_access_bit_sizes: Support unaligned stores 
via a pair of atomics")
Signed-off-by: Karol Herbst <[email protected]>
Reviewed-by: Mike Blumenkrantz <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25740>

---

 src/compiler/nir/nir_lower_mem_access_bit_sizes.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_lower_mem_access_bit_sizes.c 
b/src/compiler/nir/nir_lower_mem_access_bit_sizes.c
index f327b2765dc..6d6d38f329b 100644
--- a/src/compiler/nir/nir_lower_mem_access_bit_sizes.c
+++ b/src/compiler/nir/nir_lower_mem_access_bit_sizes.c
@@ -332,7 +332,7 @@ lower_mem_store(nir_builder *b, nir_intrinsic_instr *intrin,
          nir_def *iand_mask = nir_imm_int(b, (1 << chunk_bits) - 1);
 
          if (chunk_align < requested.align) {
-            nir_def *shift = nir_imul_imm(b, pad, 8);
+            nir_def *shift = nir_u2u32(b, nir_imul_imm(b, pad, 8));
             data = nir_ishl(b, data, shift);
             iand_mask = nir_inot(b, nir_ishl(b, iand_mask, shift));
          }

Reply via email to