Skip to content

Commit 2419344

Browse files
authored
move cluster size restrictions for cl_khr_subgroup_clustered_reduce (KhronosGroup#1535)
* move cluster size restrictions for cl_khr_subgroup_clustered_reduce Instead of documenting cluster size restrictions in the section header, describe the restrictions in the description for each of the functions. This aligns with the way cluster size restrictions are documented for cl_khr_subgroup_rotate and makes the restriction easier to spot. * align the cluster size restriction wordings
1 parent e3495a6 commit 2419344

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

OpenCL_C.txt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14493,9 +14493,6 @@ size _n_, the _n_ work items in the sub-group with the smallest sub-group
1449314493
local IDs are assigned to the first cluster, then the _n_ remaining work
1449414494
items with the smallest sub-group local IDs are assigned to the next
1449514495
cluster, and so on.
14496-
Behavior is undefined if the specified cluster size is not an integer
14497-
constant expression, is not a power-of-two, or is greater than the maximum
14498-
size of a sub-group within the dispatch.
1449914496

1450014497

1450114498
===== Arithmetic Operations
@@ -14530,6 +14527,10 @@ gentype sub_group_clustered_reduce_max(
1453014527
| Returns the summation, multiplication, minimum, or maximum of _value_
1453114528
for all active work items in the sub-group within a cluster of the
1453214529
specified _clustersize_.
14530+
14531+
Behavior is undefined if _clustersize_ is not an integer constant
14532+
expression, is not a power-of-two, or is greater than the maximum size of a
14533+
sub-group within the dispatch.
1453314534
|====
1453414535

1453514536
Note: The order of floating-point operations is not guaranteed for the
@@ -14565,6 +14566,10 @@ gentype sub_group_clustered_reduce_xor(
1456514566
----
1456614567
| Returns the bitwise *and*, *or*, or *xor* of _value_ for all active work
1456714568
items in the sub-group within a cluster of the specified _clustersize_.
14569+
14570+
Behavior is undefined if _clustersize_ is not an integer constant
14571+
expression, is not a power-of-two, or is greater than the maximum size of a
14572+
sub-group within the dispatch.
1456814573
|====
1456914574

1457014575

@@ -14596,6 +14601,10 @@ int sub_group_clustered_reduce_logical_xor(
1459614601
| Returns the logical *and*, *or*, or *xor* of _predicate_ for all active
1459714602
work items in the sub-group within a cluster of the specified
1459814603
_clustersize_.
14604+
14605+
Behavior is undefined if _clustersize_ is not an integer constant
14606+
expression, is not a power-of-two, or is greater than the maximum size of a
14607+
sub-group within the dispatch.
1459914608
|====
1460014609

1460114610
endif::cl_khr_subgroup_clustered_reduce[]
@@ -14950,9 +14959,9 @@ gentype sub_group_clustered_rotate(
1495014959
The value of _delta_ is required to be dynamically-uniform for all work
1495114960
items in the sub-group, otherwise the behavior is undefined.
1495214961

14953-
_clustersize_ must be an integer constant expression and a power of two,
14954-
smaller than or equal to the maximum sub-group size, otherwise the
14955-
behavior is undefined.
14962+
Behavior is undefined if _clustersize_ is not an integer constant
14963+
expression, is not a power-of-two, or is greater than the maximum size of a
14964+
sub-group within the dispatch.
1495614965

1495714966
The return value is undefined if the work item with sub-group local ID
1495814967
equal to the calculated index is inactive.

0 commit comments

Comments
 (0)