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