Examples:
-.. code-block:: nasm
+.. parsed-literal::
v_interp_p1_f32 v1, v0, attr0.x
v_interp_p1_f32 v1, v0, attr32.w
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_getreg_b32 s2, 0x6
s_getreg_b32 s2, hwreg(15)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset = 30
s_branch loop_end
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_sendmsg 0x12
s_sendmsg sendmsg(MSG_INTERRUPT)
An example:
-.. code-block:: nasm
+.. parsed-literal::
exp mrtz v3, v3, off, off compr
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_waitcnt 0
s_waitcnt vmcnt(1)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
v_interp_p1_f32 v1, v0, attr0.x
v_interp_p1_f32 v1, v0, attr32.w
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_getreg_b32 s2, 0x6
s_getreg_b32 s2, hwreg(15)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset = 30
s_branch loop_end
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_sendmsg 0x12
s_sendmsg sendmsg(MSG_INTERRUPT)
An example:
-.. code-block:: nasm
+.. parsed-literal::
exp mrtz v3, v3, off, off compr
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_waitcnt 0
s_waitcnt vmcnt(1)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
v_interp_p1_f32 v1, v0, attr0.x
v_interp_p1_f32 v1, v0, attr32.w
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_getreg_b32 s2, 0x6
s_getreg_b32 s2, hwreg(15)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset = 30
s_branch loop_end
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_sendmsg 0x12
s_sendmsg sendmsg(MSG_INTERRUPT)
An example:
-.. code-block:: nasm
+.. parsed-literal::
exp mrtz v3, v3, off, off compr
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s_waitcnt 0
s_waitcnt vmcnt(1)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
src1:m // src1 operand may be used with operand modifiers
vdata:dst // vdata operand may be used as both source and destination
Examples of instructions with different types of source and destination operands:
-.. code-block:: nasm
+.. parsed-literal::
s_bcnt0_i32_b64
v_cvt_f32_u32
Examples of instructions with one data type:
-.. code-block:: nasm
+.. parsed-literal::
v_max3_f32
v_max3_i16
Examples of instructions which operate with packed data:
-.. code-block:: nasm
+.. parsed-literal::
v_pk_add_u16
v_pk_add_i16
Examples of typeless instructions which operate on b128 data:
-.. code-block:: nasm
+.. parsed-literal::
buffer_store_dwordx4
flat_load_dwordx4
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:255
offset:0xff
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:65535
offset:0xffff
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:255
offset:0xffff
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:4095
offset:0xff
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:-4000
offset:0x10
Examples:
-.. code-block:: nasm
+.. parsed-literal::
dmask:0xf
dmask:0b1111
Examples:
-.. code-block:: nasm
+.. parsed-literal::
offset:0
offset:0x10
Examples:
-.. code-block:: nasm
+.. parsed-literal::
quad_perm:[0, 1, 2, 3]
row_shl:3
Examples:
-.. code-block:: nasm
+.. parsed-literal::
row_mask:0xf
row_mask:0b1010
Examples:
-.. code-block:: nasm
+.. parsed-literal::
bank_mask:0x3
bank_mask:0b0011
Examples:
-.. code-block:: nasm
+.. parsed-literal::
sext(v4)
sext(v255)
Examples:
-.. code-block:: nasm
+.. parsed-literal::
op_sel:[0,0]
op_sel:[0,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
abs(v36)
- |v36|
+ \|v36|
.. _amdgpu_synid_neg:
Examples:
-.. code-block:: nasm
+.. parsed-literal::
neg(v[0])
-v4
Examples:
-.. code-block:: nasm
+.. parsed-literal::
op_sel:[0,0]
op_sel:[0,1,0]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
op_sel_hi:[0,0]
op_sel_hi:[0,0,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
neg_lo:[0]
neg_lo:[0,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
neg_hi:[1,0]
neg_hi:[0,1,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
op_sel:[0,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
op_sel_hi:[1,1,1]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
v255
v[0]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
s0
s[0]
Examples of *scalar* registers with an invalid alignment:
-.. code-block:: nasm
+.. parsed-literal::
s[1:2]
s[2:5]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
ttmp0
ttmp[0]
Examples of *ttmp* registers with an invalid alignment:
-.. code-block:: nasm
+.. parsed-literal::
ttmp[1:2]
ttmp[2:5]
Examples:
-.. code-block:: nasm
+.. parsed-literal::
-1234
0b1010
Examples:
-.. code-block:: nasm
+.. parsed-literal::
-1.234
234e2
Examples:
-.. code-block:: nasm
+.. parsed-literal::
x = -1
y = x + 10
Examples:
-.. code-block:: nasm
+.. parsed-literal::
y = x + 10 // x is not yet defined. Undefined symbols are assumed to be PC-relative.
z = .
Examples:
-.. code-block:: nasm
+.. parsed-literal::
x = 0.1 // x is assigned an integer 4591870180066957722 which is a binary representation of 0.1.
y = x + x // y is a sum of two integer values; it is not equal to 0.2!
Examples:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples of valid literals:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples of invalid literals:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples of valid literals:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples of invalid literals:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9
Examples:
-.. code-block:: nasm
+.. parsed-literal::
// GFX9