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

Author: Daniel Schürmann <dan...@schuermann.dev>
Date:   Wed Nov  1 16:15:09 2023 +0100

nir/lower_subgroups: optimize reductions with cluster_size == 1

Reviewed-by: Georg Lehmann <dadschoo...@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218>

---

 src/compiler/nir/nir_lower_subgroups.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_lower_subgroups.c 
b/src/compiler/nir/nir_lower_subgroups.c
index 0e2c6a236bc..4e4ec7895ab 100644
--- a/src/compiler/nir/nir_lower_subgroups.c
+++ b/src/compiler/nir/nir_lower_subgroups.c
@@ -821,8 +821,10 @@ lower_subgroups_instr(nir_builder *b, nir_instr *instr, 
void *_options)
          nir_intrinsic_set_cluster_size(intrin, 0);
          ret = NIR_LOWER_INSTR_PROGRESS;
       }
+      if (nir_intrinsic_cluster_size(intrin) == 1)
+         return intrin->src[0].ssa;
       if (options->lower_to_scalar && intrin->num_components > 1)
-         ret = lower_subgroup_op_to_scalar(b, intrin);
+         return lower_subgroup_op_to_scalar(b, intrin);
       return ret;
    }
    case nir_intrinsic_inclusive_scan:

Reply via email to