Skip to content

view.atomic.reduce

← view dialect

Atomically combine one scalar value into a typed view element at a full-rank logical index. Atomic ordering and scope are required so the synchronization contract remains explicit after vector-to-scalar lowering.

Operation contract

Property Value
Semantic phase executable
Target contracts memory.atomic
Interfaces CachePolicy, MemoryAccess
Memory effects readwrite view

Signature

Kind Name Type Cardinality Description
Operand value byte_pattern_scalar required Fixed-width byte-addressable scalar contribution.
Operand view view required Typed destination view.
Operand indices index variadic Dynamic logical element indices.
Attribute kind enum AtomicKind required —
Attribute memory_flags flags AtomicMemoryFlags optional —
Attribute ordering enum AtomicOrdering required Required atomic memory ordering.
Attribute scope enum AtomicScope required Required atomic synchronization scope.
Attribute cache_scope enum CacheScope optional Optional cache/coherency scope required by target lowering.
Attribute cache_temporal enum CacheTemporal optional Optional temporal cache policy required by target lowering.
Attribute static_indices i64_array required Static logical element indices with INT64_MIN sentinels for dynamics.

Verification constraints

  • SameElementType(value, view)

Examples

view.atomic.reduce<addi> %value, %view[%row, %col] {ordering = relaxed, scope = workgroup} : i32, view<[%M]x[%N]xi32, %layout>