Function spirv_std::arch::subgroup_clustered_f_min

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

A floating point minimum 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 +INF. 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. From the set of Value(s) provided by active invocations within a subgroup, if for any two Values one of them is a NaN, the other is chosen. If all Value(s) that are used by the current invocation are NaN, then the result is an undefined value.

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.