From 93df9800e87fb04fee2786b5ed3e8bd3aa8d83ca Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 23 Jan 2024 08:59:43 +0100 Subject: [PATCH] broadcom/compiler: support subgroup quad MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These can all be implemented as specialized shuffles, so we use the NIR lowering to do that. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/compiler/vir.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index 7012a8a10ac..af0ec0c11a4 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -1594,6 +1594,10 @@ lower_subgroup_intrinsics(struct v3d_compile *c, case nir_intrinsic_vote_any: case nir_intrinsic_vote_feq: case nir_intrinsic_vote_ieq: + case nir_intrinsic_quad_broadcast: + case nir_intrinsic_quad_swap_horizontal: + case nir_intrinsic_quad_swap_vertical: + case nir_intrinsic_quad_swap_diagonal: c->has_subgroups = true; break; default: @@ -1715,6 +1719,7 @@ v3d_attempt_compile(struct v3d_compile *c) .lower_inverse_ballot = true, .lower_subgroup_masks = true, .lower_relative_shuffle = true, + .lower_quad = true, }; NIR_PASS(_, c->s, nir_lower_subgroups, &subgroup_opts);