mode, omit vmcnt(0) and
vscnt(0).
- If OpenCL, omit. - If OpenCL, omit
- waitcnt lgkmcnt(0).
+ lgkmcnt(0).
- Must happen after
any preceding
local/generic
mode, omit vmcnt(0) and
vscnt(0).
- If OpenCL, omit. - If OpenCL, omit
- s_waitcnt lgkmcnt(0).
+ lgkmcnt(0).
- Must happen after - Must happen after
any preceding any preceding
local/generic local/generic
- Could be split into
separate s_waitcnt
vmcnt(0), s_waitcnt
- vscnt(0) and s_waitcnt
+ vscnt(0), and s_waitcnt
lgkmcnt(0) to allow
them to be
independently moved
3. s_waitcnt vm/vscnt(0)
- If CU wavefront execution
- mode, omit vm/vscnt(0).
+ mode, omit.
- Use vmcnt(0) if atomic with
return and vscnt(0) if
atomic with no-return.
- waitcnt lgkmcnt(0).
- Must happen before
the following
buffer_gl0_inv.
- If CU wavefront execution
mode, omit vmcnt(0) and
vscnt(0).
- - If OpenCL, omit. - If OpenCL, omit
- waitcnt lgkmcnt(0).
+ - If OpenCL, omit. - If OpenCL, omit lgkmcnt(0).
- Must happen after
any preceding
local/generic
2. flat_atomic 2. flat_atomic
3. s_waitcnt lgkmcnt(0) 3. s_waitcnt lgkmcnt(0) &
- vm/vscnt(0)
+ vmcnt(0) & vscnt(0)
- If CU wavefront execution
- mode, omit vm/vscnt(0).
- - If OpenCL, omit. - If OpenCL, omit
- waitcnt lgkmcnt(0).
+ mode, omit vmcnt(0) and
+ vscnt(0).
+ - If OpenCL, omit. - If OpenCL, omit lgkmcnt(0).
- Must happen before - Must happen before
any following the following
global/generic buffer_gl0_inv.
- Could be split into - Could be split into
separate s_waitcnt separate s_waitcnt
vmcnt(0) and vmcnt(0), s_waitcnt
- s_waitcnt vscnt(0) and s_waitcnt
+ s_waitcnt vscnt(0), and s_waitcnt
lgkmcnt(0) to allow lgkmcnt(0) to allow
them to be them to be
independently moved independently moved
- Could be split into
separate s_waitcnt
vmcnt(0), s_waitcnt
- vscnt(0) and s_waitcnt
+ vscnt(0), and s_waitcnt
lgkmcnt(0) to allow
them to be
independently moved