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

Author: Faith Ekstrand <[email protected]>
Date:   Thu Oct 26 08:01:15 2023 -0500

nir/lower_bit_size: Fix subgroup lowering for floats

Using u2u is always correct for integers, including signed integers,
because we're doing a down-cast.  It's wrong for floats, though.

Fixes: f95665cfebbd ("nir/lower_bit_size: Add support for lowering subgroup 
ops")
Reviewed-by: Daniel Schürmann <[email protected]>
Reviewed-by: Timur Kristóf <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894>

---

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

diff --git a/src/compiler/nir/nir_lower_bit_size.c 
b/src/compiler/nir/nir_lower_bit_size.c
index 37889a39faf..35097b85d83 100644
--- a/src/compiler/nir/nir_lower_bit_size.c
+++ b/src/compiler/nir/nir_lower_bit_size.c
@@ -203,7 +203,7 @@ lower_intrinsic_instr(nir_builder *b, nir_intrinsic_instr 
*intrin,
 
       if (intrin->intrinsic != nir_intrinsic_vote_feq &&
           intrin->intrinsic != nir_intrinsic_vote_ieq)
-         res = nir_u2uN(b, res, old_bit_size);
+         res = nir_convert_to_bit_size(b, res, type, old_bit_size);
 
       nir_def_rewrite_uses(&intrin->def, res);
       break;

Reply via email to