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