Function spirv_std::arch::subgroup_clustered_f_add

source ·
pub unsafe fn subgroup_clustered_f_add<const CLUSTER_SIZE: u32, I: VectorOrScalar<Scalar = impl Float>>(
    value: I
) -> I
Expand description

A floating point add group operation of all Value operands contributed by active invocations in the group.

Result Type must be a scalar or vector of floating-point type.

Execution is a Scope that identifies the group of invocations affected by this command. It must be Subgroup.

The identity I for Operation is 0. If Operation is ClusteredReduce, ClusterSize must be present.

The type of Value must be the same as Result Type. The method used to perform the group operation on the contributed Value(s) from active invocations is implementation defined.

ClusterSize is the size of cluster to use. ClusterSize must be a scalar of integer type, whose Signedness operand is 0. ClusterSize must come from a constant instruction. Behavior is undefined unless ClusterSize is at least 1 and a power of 2. If ClusterSize is greater than the size of the group, executing this instruction results in undefined behavior.

Requires Capability GroupNonUniformArithmetic and GroupNonUniformClustered.