Skip to content

sanitizer.assert.accesses

sanitizer dialect

Assert that a static sequence of regularly-strided logical indexed view accesses is valid. Each sub-access has the same static extent tuple, and each successive sub-access origin is advanced by the static stride tuple. This keeps structured fragment and vector footprints as one executable assertion site instead of exploding one source memory operation into many independent assertions.

Operation contract

Property Value
Semantic phase
Traits UnknownEffects

Signature

Kind Name Type Cardinality Description
Operand view view required Typed view being accessed.
Operand indices index variadic Dynamic logical element indices for the first sub-access origin.
Attribute kind enum SanitizerAccessesKind required Logical access kind being asserted.
Attribute static_indices i64_array required Static logical element indices for the first sub-access origin with INT64_MIN sentinels for dynamics.
Attribute static_extents i64_array required Full-rank static logical footprint extents for each sub-access.
Attribute static_strides i64_array required Full-rank static logical origin stride between consecutive sub-accesses.
Attribute static_count i64 required Number of sub-accesses in the static sequence.

Examples

sanitizer.assert.accesses<write> %view[%row, %col] {static_extents = [1, 16], static_strides = [1, 0], static_count = 16} : view<128x128xf32>