Skip to content

Commit cef9d42

Browse files
committed
[AMDGPU][MC][DOC] Updated AMD GPU assembler syntax description.
Summary of changes: - added description of GFX10; - added description of operands sccz, vccz, lds_direct, etc; - minor bugfixing and improvements. llvm-svn: 365347
1 parent c862ea2 commit cef9d42

File tree

151 files changed

+5713
-1089
lines changed

Some content is hidden

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

151 files changed

+5713
-1089
lines changed

llvm/docs/AMDGPU/AMDGPUAsmGFX10.rst

Lines changed: 2176 additions & 0 deletions
Large diffs are not rendered by default.

llvm/docs/AMDGPU/AMDGPUAsmGFX7.rst

Lines changed: 269 additions & 263 deletions
Large diffs are not rendered by default.

llvm/docs/AMDGPU/AMDGPUAsmGFX8.rst

Lines changed: 322 additions & 319 deletions
Large diffs are not rendered by default.

llvm/docs/AMDGPU/AMDGPUAsmGFX9.rst

Lines changed: 392 additions & 389 deletions
Large diffs are not rendered by default.

llvm/docs/AMDGPU/gfx10_addr_buf.rst

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

llvm/docs/AMDGPU/gfx10_addr_ds.rst

Lines changed: 17 additions & 0 deletions
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_synid10_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/gfx10_addr_flat.rst

Lines changed: 17 additions & 0 deletions
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_synid10_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/gfx10_addr_mimg.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
..
2+
**************************************************
3+
* *
4+
* Automatically generated file, do not edit! *
5+
* *
6+
**************************************************
7+
8+
.. _amdgpu_synid10_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+
This operand may be specified using either :ref:`standard VGPR syntax<amdgpu_synid_v>` or special :ref:`NSA VGPR syntax<amdgpu_synid_nsa>`.
16+
17+
*Size:* 1-13 dwords. Actual size depends on syntax, opcode, :ref:`dim<amdgpu_synid_dim>` and :ref:`a16<amdgpu_synid_a16>`.
18+
19+
* If specified using :ref:`NSA VGPR syntax<amdgpu_synid_nsa>`, the size is 1-13 dwords.
20+
* If specified using :ref:`standard VGPR syntax<amdgpu_synid_vcc_lo>`, the size is 1, 2, 3, 4, 8 or 16 dwords. Note that assembler currently supports a limited range of register sequences.
21+
22+
23+
*Operands:* :ref:`v<amdgpu_synid_v>`

llvm/docs/AMDGPU/gfx10_attr.rst

Lines changed: 30 additions & 0 deletions
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_synid10_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+
.. parsed-literal::
27+
28+
v_interp_p1_f32 v1, v0, attr0.x
29+
v_interp_p1_f32 v1, v0, attr32.w
30+
Lines changed: 17 additions & 0 deletions
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_synid10_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:`vcc<amdgpu_synid_vcc>`, :ref:`ttmp<amdgpu_synid_ttmp>`
Lines changed: 17 additions & 0 deletions
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_synid10_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>`
Lines changed: 17 additions & 0 deletions
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_synid10_base_smem_scratch:
9+
10+
sbase
11+
===========================
12+
13+
This operand is ignored by H/W and :ref:`flat_scratch<amdgpu_synid_flat_scratch>` is supplied instead.
14+
15+
*Size:* 2 dwords.
16+
17+
*Operands:* :ref:`s<amdgpu_synid_s>`, :ref:`vcc<amdgpu_synid_vcc>`, :ref:`ttmp<amdgpu_synid_ttmp>`

llvm/docs/AMDGPU/gfx10_bimm16.rst

Lines changed: 14 additions & 0 deletions
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_synid10_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/gfx10_bimm32.rst

Lines changed: 14 additions & 0 deletions
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_synid10_bimm32:
9+
10+
imm32
11+
===========================
12+
13+
An :ref:`integer_number<amdgpu_synid_integer_number>`. The value is truncated to 32 bits.
14+
Lines changed: 21 additions & 0 deletions
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_synid10_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>`
Lines changed: 21 additions & 0 deletions
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_synid10_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>`
Lines changed: 21 additions & 0 deletions
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_synid10_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>`
Lines changed: 27 additions & 0 deletions
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_synid10_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>`
Lines changed: 26 additions & 0 deletions
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_synid10_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>`
Lines changed: 18 additions & 0 deletions
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_synid10_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>`
Lines changed: 21 additions & 0 deletions
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_synid10_data_mimg_store_d16:
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>` and :ref:`d16<amdgpu_synid_d16>`:
16+
17+
* :ref:`dmask<amdgpu_synid_dmask>` may specify from 1 to 4 data elements. Each data element occupies either 32 bits or 16 bits depending on :ref:`d16<amdgpu_synid_d16>`.
18+
* :ref:`d16<amdgpu_synid_d16>` specifies that data in registers are packed; each value occupies 16 bits.
19+
20+
21+
*Operands:* :ref:`v<amdgpu_synid_v>`
Lines changed: 21 additions & 0 deletions
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_synid10_data_smem_atomic128:
9+
10+
sdata
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.
20+
21+
*Operands:* :ref:`s<amdgpu_synid_s>`, :ref:`ttmp<amdgpu_synid_ttmp>`

0 commit comments

Comments
 (0)