Skip to content

vector.scatter

vector dialect

Non-atomic scatter of a vector to per-lane signed logical offsets added to the last view axis of a full-rank view origin. Each lane writes origin with the final coordinate adjusted by offsets[lane], and active lane addresses must be distinct because no atomic conflict resolution is implied.

Operation contract

Property Value
Semantic phase
Interfaces MemoryAccess
Memory effects write view

Signature

Kind Name Type Cardinality Description
Operand value vector required Vector value to store.
Operand view view required Typed destination view.
Operand offsets vector required Per-lane signed element offsets from the logical origin.
Operand indices index variadic Dynamic logical origin indices.
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 origin indices with INT64_MIN sentinels for dynamics.

Verification constraints

  • HasIndexOrNonI1IntegerElement(offsets)
  • SameElementType(value, view)
  • SameShape(offsets, value)

Examples

vector.scatter %v, %view[%row, %col][%offsets] : vector<4xf32>, view<[%m]x[%n]xf32, %layout>, vector<4xindex>