From 8a7498e13f081c054ebe7f14994ccca89677557e Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 26 Oct 2023 08:01:15 -0500 Subject: [PATCH] nir/lower_bit_size: Fix subgroup lowering for floats MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Timur Kristóf Part-of: (cherry picked from commit 5979e74177eb3013ca7e78867295e9a015e6c8ed) --- .pick_status.json | 2 +- src/compiler/nir/nir_lower_bit_size.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index d2d18bc7421..8247aa12bca 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -984,7 +984,7 @@ "description": "nir/lower_bit_size: Fix subgroup lowering for floats", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f95665cfebbd943ca3795c026e3dabf4af3f262c", "notes": null 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;