Skip to content

Commit 47eb636

Browse files
committed
[AMDGPU][MC][DOC] Updated AMD GPU assembler description
Stage 2: added detailed description of operands See bug 36572: https://bugs.llvm.org/show_bug.cgi?id=36572 llvm-svn: 349368
1 parent f700c8b commit 47eb636

File tree

279 files changed

+12955
-5600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

279 files changed

+12955
-5600
lines changed

llvm/docs/AMDGPU/AMDGPUAsmGFX7.rst

+1,411
Large diffs are not rendered by default.

llvm/docs/AMDGPU/AMDGPUAsmGFX8.rst

+1,846
Large diffs are not rendered by default.

llvm/docs/AMDGPU/AMDGPUAsmGFX9.rst

+2,102
Large diffs are not rendered by default.

llvm/docs/AMDGPU/gfx7_addr_buf.rst

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_addr_buf:
9+
10+
vaddr
11+
===========================
12+
13+
This is an optional operand which may specify a 64-bit address, offset and/or index.
14+
15+
*Size:* 0, 1 or 2 dwords. Size is controlled by modifiers :ref:`addr64<amdgpu_synid_addr64>`, :ref:`offen<amdgpu_synid_offen>` and :ref:`idxen<amdgpu_synid_idxen>`:
16+
17+
* If only :ref:`addr64<amdgpu_synid_addr64>` is specified, this operand supplies a 64-bit address. Size is 2 dwords.
18+
* If only :ref:`idxen<amdgpu_synid_idxen>` is specified, this operand supplies an index. Size is 1 dword.
19+
* If only :ref:`offen<amdgpu_synid_offen>` is specified, this operand supplies an offset. Size is 1 dword.
20+
* If both :ref:`idxen<amdgpu_synid_idxen>` and :ref:`offen<amdgpu_synid_offen>` are specified, index is in the first register and offset is in the second. Size is 2 dwords.
21+
* If none of these modifiers are specified, this operand must be set to :ref:`off<amdgpu_synid_off>`.
22+
* All other combinations of these modifiers are illegal.
23+
24+
*Operands:* :ref:`v<amdgpu_synid_v>`, :ref:`off<amdgpu_synid_off>`

llvm/docs/AMDGPU/gfx7_addr_ds.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_addr_ds:
9+
10+
vaddr
11+
===========================
12+
13+
An offset from the start of GDS/LDS memory.
14+
15+
*Size:* 1 dword.
16+
17+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_addr_flat.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_addr_flat:
9+
10+
vaddr
11+
===========================
12+
13+
A 64-bit flat address.
14+
15+
*Size:* 2 dwords.
16+
17+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_addr_mimg.rst

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_addr_mimg:
9+
10+
vaddr
11+
===========================
12+
13+
Image address which includes from one to four dimensional coordinates and other data used to locate a position in the image.
14+
15+
*Size:* 1, 2, 3, 4, 8 or 16 dwords. Actual size depends on opcode and specific image being handled.
16+
17+
Note 1. Image format and dimensions are encoded in the image resource constant but not in the instruction.
18+
19+
Note 2. Actually image address size may vary from 1 to 13 dwords, but assembler currently supports a limited range of register sequences.
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_attr.rst

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_attr:
9+
10+
attr
11+
===========================
12+
13+
Interpolation attribute and channel:
14+
15+
============== ===================================
16+
Syntax Description
17+
============== ===================================
18+
attr{0..32}.x Attribute 0..32 with *x* channel.
19+
attr{0..32}.y Attribute 0..32 with *y* channel.
20+
attr{0..32}.z Attribute 0..32 with *z* channel.
21+
attr{0..32}.w Attribute 0..32 with *w* channel.
22+
============== ===================================
23+
24+
Examples:
25+
26+
.. code-block:: nasm
27+
28+
v_interp_p1_f32 v1, v0, attr0.x
29+
v_interp_p1_f32 v1, v0, attr32.w
30+
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_base_smem_addr:
9+
10+
sbase
11+
===========================
12+
13+
A 64-bit base address for scalar memory operations.
14+
15+
*Size:* 2 dwords.
16+
17+
*Operands:* :ref:`s<amdgpu_synid_s>`, :ref:`flat_scratch<amdgpu_synid_flat_scratch>`, :ref:`vcc<amdgpu_synid_vcc>`, :ref:`trap<amdgpu_synid_trap>`
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_base_smem_buf:
9+
10+
sbase
11+
===========================
12+
13+
A 128-bit buffer resource constant for scalar memory operations which provides a base address, a size and a stride.
14+
15+
*Size:* 4 dwords.
16+
17+
*Operands:* :ref:`s<amdgpu_synid_s>`, :ref:`ttmp<amdgpu_synid_ttmp>`

llvm/docs/AMDGPU/gfx7_bimm16.rst

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_bimm16:
9+
10+
imm16
11+
===========================
12+
13+
An :ref:`integer_number<amdgpu_synid_integer_number>`. The value is truncated to 16 bits.
14+

llvm/docs/AMDGPU/gfx7_bimm32.rst

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_bimm32:
9+
10+
imm32
11+
===========================
12+
13+
An :ref:`integer_number<amdgpu_synid_integer_number>`. The value is truncated to 32 bits.
14+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_buf_atomic128:
9+
10+
vdata
11+
===========================
12+
13+
Input data for an atomic instruction.
14+
15+
Optionally may serve as an output data:
16+
17+
* If :ref:`glc<amdgpu_synid_glc>` is specified, gets the memory value before the operation.
18+
19+
*Size:* 4 dwords by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_buf_atomic32:
9+
10+
vdata
11+
===========================
12+
13+
Input data for an atomic instruction.
14+
15+
Optionally may serve as an output data:
16+
17+
* If :ref:`glc<amdgpu_synid_glc>` is specified, gets the memory value before the operation.
18+
19+
*Size:* 1 dword by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_buf_atomic64:
9+
10+
vdata
11+
===========================
12+
13+
Input data for an atomic instruction.
14+
15+
Optionally may serve as an output data:
16+
17+
* If :ref:`glc<amdgpu_synid_glc>` is specified, gets the memory value before the operation.
18+
19+
*Size:* 2 dwords by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_mimg_atomic_cmp:
9+
10+
vdata
11+
===========================
12+
13+
Input data for an atomic instruction.
14+
15+
Optionally may serve as an output data:
16+
17+
* If :ref:`glc<amdgpu_synid_glc>` is specified, gets the memory value before the operation.
18+
19+
*Size:* depends on :ref:`dmask<amdgpu_synid_dmask>` and :ref:`tfe<amdgpu_synid_tfe>`:
20+
21+
* :ref:`dmask<amdgpu_synid_dmask>` may specify 2 data elements for 32-bit-per-pixel surfaces or 4 data elements for 64-bit-per-pixel surfaces. Each data element occupies 1 dword.
22+
* :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
23+
24+
Note. The surface data format is indicated in the image resource constant but not in the instruction.
25+
26+
27+
*Operands:* :ref:`v<amdgpu_synid_v>`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_mimg_atomic_reg:
9+
10+
vdata
11+
===========================
12+
13+
Input data for an atomic instruction.
14+
15+
Optionally may serve as an output data:
16+
17+
* If :ref:`glc<amdgpu_synid_glc>` is specified, gets the memory value before the operation.
18+
19+
*Size:* depends on :ref:`dmask<amdgpu_synid_dmask>` and :ref:`tfe<amdgpu_synid_tfe>`:
20+
21+
* :ref:`dmask<amdgpu_synid_dmask>` may specify 1 data element for 32-bit-per-pixel surfaces or 2 data elements for 64-bit-per-pixel surfaces. Each data element occupies 1 dword.
22+
* :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
23+
24+
Note. The surface data format is indicated in the image resource constant but not in the instruction.
25+
26+
*Operands:* :ref:`v<amdgpu_synid_v>`
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_data_mimg_store:
9+
10+
vdata
11+
===========================
12+
13+
Image data to store by an *image_store* instruction.
14+
15+
*Size:* depends on :ref:`dmask<amdgpu_synid_dmask>` which may specify from 1 to 4 data elements. Each data element occupies 1 dword.
16+
17+
18+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_dst_buf_128.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_dst_buf_128:
9+
10+
vdst
11+
===========================
12+
13+
Instruction output: data read from a memory buffer.
14+
15+
*Size:* 4 dwords by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
16+
17+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_dst_buf_64.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_dst_buf_64:
9+
10+
vdst
11+
===========================
12+
13+
Instruction output: data read from a memory buffer.
14+
15+
*Size:* 2 dwords by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
16+
17+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_dst_buf_96.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_dst_buf_96:
9+
10+
vdst
11+
===========================
12+
13+
Instruction output: data read from a memory buffer.
14+
15+
*Size:* 3 dwords by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
16+
17+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx7_dst_buf_lds.rst

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid7_dst_buf_lds:
9+
10+
vdst
11+
===========================
12+
13+
Instruction output: data read from a memory buffer.
14+
15+
If :ref:`lds<amdgpu_synid_lds>` is specified, this operand is ignored by H/W and data are stored directly into LDS.
16+
17+
*Size:* 1 dword by default. :ref:`tfe<amdgpu_synid_tfe>` adds 1 dword if specified.
18+
19+
Note that :ref:`tfe<amdgpu_synid_tfe>` and :ref:`lds<amdgpu_synid_lds>` cannot be used together.
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`

0 commit comments

Comments
 (0)