From 27734c52eb0c19c02d363a620f27cf2ec5c8b059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 1 Nov 2023 16:15:09 +0100 Subject: [PATCH] nir/lower_subgroups: optimize reductions with cluster_size == 1 Reviewed-by: Georg Lehmann Part-of: --- 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: