broadcom/compiler: support subgroup quad

These can all be implemented as specialized shuffles, so we
use the NIR lowering to do that.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27211>
This commit is contained in:
Iago Toral Quiroga 2024-01-23 08:59:43 +01:00 committed by Marge Bot
parent 69d3b90839
commit 93df9800e8

View file

@ -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);