| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 
 | ..
    **************************************************
    *                                                *
    *   Automatically generated file, do not edit!   *
    *                                                *
    **************************************************
.. _amdgpu_synid_gfx8_waitcnt:
waitcnt
=======
Counts of outstanding instructions to wait for.
The bits of this operand have the following meaning:
   ===== ================================================ ============
   Bits  Description                                      Value Range
   ===== ================================================ ============
   3:0   VM_CNT: vector memory operations count.          0..15
   6:4   EXP_CNT: export count.                           0..7
   11:8  LGKM_CNT: LDS, GDS, Constant and Message count.  0..15
   ===== ================================================ ============
This operand may be specified as one of the following:
* An :ref:`integer_number<amdgpu_synid_integer_number>` or an :ref:`absolute_expression<amdgpu_synid_absolute_expression>`. The value must be in the range 0..0xFFFF.
* A combination of *vmcnt*, *expcnt*, *lgkmcnt* and other values described below.
    ====================== ======================================================================
    Syntax                 Description
    ====================== ======================================================================
    vmcnt(<*N*>)           A VM_CNT value. *N* must not exceed the largest VM_CNT value.
    expcnt(<*N*>)          An EXP_CNT value. *N* must not exceed the largest EXP_CNT value.
    lgkmcnt(<*N*>)         An LGKM_CNT value. *N* must not exceed the largest LGKM_CNT value.
    vmcnt_sat(<*N*>)       A VM_CNT value computed as min(*N*, the largest VM_CNT value).
    expcnt_sat(<*N*>)      An EXP_CNT value computed as min(*N*, the largest EXP_CNT value).
    lgkmcnt_sat(<*N*>)     An LGKM_CNT value computed as min(*N*, the largest LGKM_CNT value).
    ====================== ======================================================================
These values may be specified in any order. Spaces, ampersands and commas may be used as optional separators.
*N* is either an
:ref:`integer number<amdgpu_synid_integer_number>` or an
:ref:`absolute expression<amdgpu_synid_absolute_expression>`.
Examples:
.. parsed-literal::
    vm_cnt = 1
    exp_cnt = 2
    lgkm_cnt = 3
    cnt = vm_cnt | (exp_cnt << 4) | (lgkm_cnt << 8)
    s_waitcnt cnt
    s_waitcnt 1 | (2 << 4) | (3 << 8)                          // the same as above
    s_waitcnt vmcnt(1) expcnt(2) lgkmcnt(3)                    // the same as above
    s_waitcnt vmcnt(vm_cnt) expcnt(exp_cnt) lgkmcnt(lgkm_cnt)  // the same as above
    s_waitcnt vmcnt(1)
    s_waitcnt expcnt(2) lgkmcnt(3)
    s_waitcnt vmcnt(1), expcnt(2), lgkmcnt(3)
    s_waitcnt vmcnt(1) & lgkmcnt_sat(100) & expcnt(2)
 |