[clang] Improve the lifetime_capture_by diagnostic on the constructor. (#117792)
[llvm-project.git] / llvm / docs / AMDGPU / gfx90a_waitcnt.rst
blob95bcd6de5b182c7e856683f80f72a99951ff7b48
1 ..
2     **************************************************
3     *                                                *
4     *   Automatically generated file, do not edit!   *
5     *                                                *
6     **************************************************
8 .. _amdgpu_synid_gfx90a_waitcnt:
10 waitcnt
11 =======
13 Counts of outstanding instructions to wait for.
15 The bits of this operand have the following meaning:
17     ========== ========= ================================================ ============
18     High Bits  Low Bits  Description                                      Value Range
19     ========== ========= ================================================ ============
20     15:14      3:0       VM_CNT: vector memory operations count.          0..63
21     \-         6:4       EXP_CNT: export count.                           0..7
22     \-         11:8      LGKM_CNT: LDS, GDS, Constant and Message count.  0..15
23     ========== ========= ================================================ ============
25 This operand may be specified as one of the following:
27 * 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.
28 * A combination of *vmcnt*, *expcnt*, *lgkmcnt* and other values described below.
30     ====================== ======================================================================
31     Syntax                 Description
32     ====================== ======================================================================
33     vmcnt(<*N*>)           A VM_CNT value. *N* must not exceed the largest VM_CNT value.
34     expcnt(<*N*>)          An EXP_CNT value. *N* must not exceed the largest EXP_CNT value.
35     lgkmcnt(<*N*>)         An LGKM_CNT value. *N* must not exceed the largest LGKM_CNT value.
36     vmcnt_sat(<*N*>)       A VM_CNT value computed as min(*N*, the largest VM_CNT value).
37     expcnt_sat(<*N*>)      An EXP_CNT value computed as min(*N*, the largest EXP_CNT value).
38     lgkmcnt_sat(<*N*>)     An LGKM_CNT value computed as min(*N*, the largest LGKM_CNT value).
39     ====================== ======================================================================
41 These values may be specified in any order. Spaces, ampersands, and commas may be used as optional separators.
42 If some values are omitted, the corresponding fields will default to their maximum value.
44 *N* is either an
45 :ref:`integer number<amdgpu_synid_integer_number>` or an
46 :ref:`absolute expression<amdgpu_synid_absolute_expression>`.
48 Examples:
50 .. parsed-literal::
52     vm_cnt = 1
53     exp_cnt = 2
54     lgkm_cnt = 3
55     cnt = vm_cnt | (exp_cnt << 4) | (lgkm_cnt << 8)
57     s_waitcnt cnt
58     s_waitcnt 1 | (2 << 4) | (3 << 8)                          // the same as above
59     s_waitcnt vmcnt(1) expcnt(2) lgkmcnt(3)                    // the same as above
60     s_waitcnt vmcnt(vm_cnt) expcnt(exp_cnt) lgkmcnt(lgkm_cnt)  // the same as above
62     s_waitcnt vmcnt(1)
63     s_waitcnt expcnt(2) lgkmcnt(3)
64     s_waitcnt vmcnt(1), expcnt(2), lgkmcnt(3)
65     s_waitcnt vmcnt(1) & lgkmcnt_sat(100) & expcnt(2)