Fixing @llvm.memcpy not honoring volatile.
[llvm-core.git] / docs / AMDGPU / gfx8_hwreg.rst
blobffa1ea5afde3dd946300976a44e6575fe281f45c
1 ..
2     **************************************************
3     *                                                *
4     *   Automatically generated file, do not edit!   *
5     *                                                *
6     **************************************************
8 .. _amdgpu_synid8_hwreg:
10 hwreg
11 ===========================
13 Bits of a hardware register being accessed.
15 The bits of this operand have the following meaning:
17     ============ ===================================
18     Bits         Description
19     ============ ===================================
20     5:0          Register *id*.
21     10:6         First bit *offset* (0..31).
22     15:11        *Size* in bits (1..32).
23     ============ ===================================
25 This operand may be specified as a positive 16-bit :ref:`integer_number<amdgpu_synid_integer_number>` or using the syntax described below.
27     ==================================== ============================================================================
28     Syntax                               Description
29     ==================================== ============================================================================
30     hwreg({0..63})                       All bits of a register indicated by its *id*.
31     hwreg(<*name*>)                      All bits of a register indicated by its *name*.
32     hwreg({0..63}, {0..31}, {1..32})     Register bits indicated by register *id*, first bit *offset* and *size*.
33     hwreg(<*name*>, {0..31}, {1..32})    Register bits indicated by register *name*, first bit *offset* and *size*.
34     ==================================== ============================================================================
36 Register *id*, *offset* and *size* must be specified as positive :ref:`integer numbers<amdgpu_synid_integer_number>`.
38 Defined register *names* include:
40     =================== ==========================================
41     Name                Description
42     =================== ==========================================
43     HW_REG_MODE         Shader writeable mode bits.
44     HW_REG_STATUS       Shader read-only status.
45     HW_REG_TRAPSTS      Trap status.
46     HW_REG_HW_ID        Id of wave, simd, compute unit, etc.
47     HW_REG_GPR_ALLOC    Per-wave SGPR and VGPR allocation.
48     HW_REG_LDS_ALLOC    Per-wave LDS allocation.
49     HW_REG_IB_STS       Counters of outstanding instructions.
50     =================== ==========================================
52 Examples:
54 .. parsed-literal::
56     s_getreg_b32 s2, 0x6
57     s_getreg_b32 s2, hwreg(15)
58     s_getreg_b32 s2, hwreg(51, 1, 31)
59     s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1)