annotate llvm/docs/AMDGPU/AMDGPUAsmGFX906.rst @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 79ff65ed7e25
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ..
anatofuz
parents:
diff changeset
2 **************************************************
anatofuz
parents:
diff changeset
3 * *
anatofuz
parents:
diff changeset
4 * Automatically generated file, do not edit! *
anatofuz
parents:
diff changeset
5 * *
anatofuz
parents:
diff changeset
6 **************************************************
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 ====================================================================================
anatofuz
parents:
diff changeset
9 Syntax of gfx906 Instructions
anatofuz
parents:
diff changeset
10 ====================================================================================
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 .. contents::
anatofuz
parents:
diff changeset
13 :local:
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 Introduction
anatofuz
parents:
diff changeset
16 ============
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 This document describes the syntax of *instructions specific to gfx906*.
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 For a description of other gfx906 instructions see :doc:`Syntax of Core GFX9 Instructions<AMDGPUAsmGFX9>`.
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 Notation
anatofuz
parents:
diff changeset
23 ========
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 Notation used in this document is explained :ref:`here<amdgpu_syn_instruction_notation>`.
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 Overview
anatofuz
parents:
diff changeset
28 ========
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 An overview of generic syntax and other features of AMDGPU instructions may be found :ref:`in this document<amdgpu_syn_instructions>`.
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 Instructions
anatofuz
parents:
diff changeset
33 ============
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 VOP2
anatofuz
parents:
diff changeset
37 -----------------------
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 .. parsed-literal::
anatofuz
parents:
diff changeset
40
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
41 **INSTRUCTION** **DST** **SRC0** **SRC1** **MODIFIERS**
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
42 \ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
43 v_fmac_f32 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src>`, :ref:`vsrc1<amdgpu_synid_gfx906_vsrc>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
44 v_fmac_f32_dpp :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`vsrc0<amdgpu_synid_gfx906_vsrc>`::ref:`m<amdgpu_synid_gfx906_m>`, :ref:`vsrc1<amdgpu_synid_gfx906_vsrc>`::ref:`m<amdgpu_synid_gfx906_m>` :ref:`dpp_ctrl<amdgpu_synid_dpp_ctrl>` :ref:`row_mask<amdgpu_synid_row_mask>` :ref:`bank_mask<amdgpu_synid_bank_mask>` :ref:`bound_ctrl<amdgpu_synid_bound_ctrl>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
45 v_xnor_b32 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src>`, :ref:`vsrc1<amdgpu_synid_gfx906_vsrc>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
46 v_xnor_b32_dpp :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`vsrc0<amdgpu_synid_gfx906_vsrc>`, :ref:`vsrc1<amdgpu_synid_gfx906_vsrc>` :ref:`dpp_ctrl<amdgpu_synid_dpp_ctrl>` :ref:`row_mask<amdgpu_synid_row_mask>` :ref:`bank_mask<amdgpu_synid_bank_mask>` :ref:`bound_ctrl<amdgpu_synid_bound_ctrl>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
47 v_xnor_b32_sdwa :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m_1>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m_1>` :ref:`dst_sel<amdgpu_synid_dst_sel>` :ref:`dst_unused<amdgpu_synid_dst_unused>` :ref:`src0_sel<amdgpu_synid_src0_sel>` :ref:`src1_sel<amdgpu_synid_src1_sel>`
150
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 VOP3
anatofuz
parents:
diff changeset
50 -----------------------
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 .. parsed-literal::
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 **INSTRUCTION** **DST** **SRC0** **SRC1** **MODIFIERS**
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
55 \ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
56 v_fmac_f32_e64 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`m<amdgpu_synid_gfx906_m>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>` :ref:`clamp<amdgpu_synid_clamp>` :ref:`omod<amdgpu_synid_omod>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
57 v_xnor_b32_e64 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`
150
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 VOP3P
anatofuz
parents:
diff changeset
60 -----------------------
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 .. parsed-literal::
anatofuz
parents:
diff changeset
63
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
64 **INSTRUCTION** **DST** **SRC0** **SRC1** **SRC2** **MODIFIERS**
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
65 \ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|\ |---|
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
66 v_dot2_f32_f16 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`f16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`f16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`f32<amdgpu_synid_gfx906_type_deviation>` :ref:`neg_lo<amdgpu_synid_neg_lo>` :ref:`neg_hi<amdgpu_synid_neg_hi>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
67 v_dot2_i32_i16 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_3>`::ref:`i16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_4>`::ref:`i16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`i32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
68 v_dot2_u32_u16 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_3>`::ref:`u16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_4>`::ref:`u16x2<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`u32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
69 v_dot4_i32_i8 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`i8x4<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`i8x4<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`i32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
70 v_dot4_u32_u8 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`u8x4<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`u8x4<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`u32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
71 v_dot8_i32_i4 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`i4x8<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`i4x8<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`i32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
72 v_dot8_u32_u4 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`u4x8<amdgpu_synid_gfx906_type_deviation>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`u4x8<amdgpu_synid_gfx906_type_deviation>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`u32<amdgpu_synid_gfx906_type_deviation>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
73 v_fma_mix_f32 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>` :ref:`m_op_sel<amdgpu_synid_mad_mix_op_sel>` :ref:`m_op_sel_hi<amdgpu_synid_mad_mix_op_sel_hi>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
74 v_fma_mixhi_f16 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>` :ref:`m_op_sel<amdgpu_synid_mad_mix_op_sel>` :ref:`m_op_sel_hi<amdgpu_synid_mad_mix_op_sel_hi>` :ref:`clamp<amdgpu_synid_clamp>`
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
75 v_fma_mixlo_f16 :ref:`vdst<amdgpu_synid_gfx906_vdst>`, :ref:`src0<amdgpu_synid_gfx906_src_2>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src1<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>`, :ref:`src2<amdgpu_synid_gfx906_src_1>`::ref:`m<amdgpu_synid_gfx906_m>`::ref:`fx<amdgpu_synid_gfx906_fx_operand>` :ref:`m_op_sel<amdgpu_synid_mad_mix_op_sel>` :ref:`m_op_sel_hi<amdgpu_synid_mad_mix_op_sel_hi>` :ref:`clamp<amdgpu_synid_clamp>`
150
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 .. |---| unicode:: U+02014 .. em dash
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 .. toctree::
anatofuz
parents:
diff changeset
80 :hidden:
anatofuz
parents:
diff changeset
81
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
82 gfx906_fx_operand
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
83 gfx906_m
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
84 gfx906_m_1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
85 gfx906_src
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
86 gfx906_src_1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
87 gfx906_src_2
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
88 gfx906_src_3
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
89 gfx906_src_4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
90 gfx906_type_deviation
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
91 gfx906_vdst
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
92 gfx906_vsrc