kernel.subgroup.scan
← kernel dialect
Prefix-scan a scalar or rank-1 vector value across the current subgroup.
Operation contract
| Property |
Value |
| Semantic phase |
executable |
| Traits |
Convergent, HasAncestor(kernel.def) |
| Target contracts |
kernel.synchronization |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
value |
any |
required |
Per-invocation value to scan. |
| Result |
result |
any |
required |
Scanned value. |
| Attribute |
kind |
enum CombiningKind |
required |
Combining operation. |
| Attribute |
cluster_size |
i64 |
optional |
Optional clustered subgroup size. |
| Attribute |
cluster_stride |
i64 |
optional |
Optional clustered subgroup stride. |
| Attribute |
mode |
enum KernelScanMode |
required |
Inclusive or exclusive scan. |
| Attribute |
direction |
enum KernelScanDirection |
required |
Lane order to scan. |
Verification constraints
Examples
%prefix = kernel.subgroup.scan<addf> %v {mode = inclusive, direction = forward} : f32