Skip to content

low.op

← low dialect

Descriptor-backed target instruction over virtual registers. Memory access flags constrain each instruction instance independently of its descriptor and machine cache controls. Volatile preserves dynamic memory observations and their order; it supplies no atomicity, synchronization, or cache-coherence guarantee. Atomic preserves each indivisible observation and same-location issue order without ordering completion across independent addresses. The instruction, alignment, fences, and cache controls supply the physical atomic memory contract.

Operation contract

Property Value
Semantic phase executable
Traits UnknownEffects

Signature

Kind Name Type Cardinality Description
Operand operands register variadic —
Result results register variadic —
Attribute descriptor scoped_enum required —
Attribute memory_flags flags LowMemoryAccessFlags optional —
Attribute attrs dict optional —

Examples

%sum = low.op<amdgpu.v_add_u32>(%lhs, %rhs) : (reg<amdgpu.vgpr x1>, reg<amdgpu.vgpr x1>) -> reg<amdgpu.vgpr x1>
low.op<amdgpu.s_waitcnt>() {vmcnt = 0} : ()