diff --git a/.pick_status.json b/.pick_status.json index 752951f2d34..7bebc6aee54 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -104,7 +104,7 @@ "description": "nir/opt_uniform_subgroup: don't try to optimize non trivial clustered reduce", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "535caaf3e027963536e48fa5bbb59dc779523e00", "notes": null diff --git a/src/compiler/nir/nir_opt_uniform_subgroup.c b/src/compiler/nir/nir_opt_uniform_subgroup.c index 721c9be3dd2..1bf0c94be36 100644 --- a/src/compiler/nir/nir_opt_uniform_subgroup.c +++ b/src/compiler/nir/nir_opt_uniform_subgroup.c @@ -47,7 +47,8 @@ opt_uniform_subgroup_filter(const nir_instr *instr, const void *_state) case nir_op_iadd: case nir_op_fadd: case nir_op_ixor: - return true; + return !nir_intrinsic_has_cluster_size(intrin) || + nir_intrinsic_cluster_size(intrin) == 0; case nir_op_imin: case nir_op_umin: