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: