source: CLRX/CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc14.cpp @ 3110

Last change on this file since 3110 was 3110, checked in by matszpk, 2 years ago

CLRadeonExtender: GNAsm: Add testcases for GLOBAL mode to FLAT encoding and its instructions (AMD VEGA arch).

File size: 51.6 KB
Line 
1/*
2 *  CLRadeonExtender - Unofficial OpenCL Radeon Extensions Library
3 *  Copyright (C) 2014-2017 Mateusz Szpakowski
4 *
5 *  This library is free software; you can redistribute it and/or
6 *  modify it under the terms of the GNU Lesser General Public
7 *  License as published by the Free Software Foundation; either
8 *  version 2.1 of the License, or (at your option) any later version.
9 *
10 *  This library is distributed in the hope that it will be useful,
11 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 *  Lesser General Public License for more details.
14 *
15 *  You should have received a copy of the GNU Lesser General Public
16 *  License along with this library; if not, write to the Free Software
17 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18 */
19
20#include <CLRX/Config.h>
21#include "GCNAsmOpc.h"
22
23const GCNAsmOpcodeCase encGCN14OpcodeCases[] =
24{
25    /* extra scalar registers */
26    { "s_add_u32 s21, shared_base, s61\n", 0x80153debU, 0, false, true, "" },
27    { "s_add_u32 s21, src_shared_base, s61\n", 0x80153debU, 0, false, true, "" },
28    { "s_add_u32 s21, shared_limit, s61\n", 0x80153decU, 0, false, true, "" },
29    { "s_add_u32 s21, src_shared_limit, s61\n", 0x80153decU, 0, false, true, "" },
30    { "s_add_u32 s21, private_base, s61\n", 0x80153dedU, 0, false, true, "" },
31    { "s_add_u32 s21, src_private_base, s61\n", 0x80153dedU, 0, false, true, "" },
32    { "s_add_u32 s21, private_limit, s61\n", 0x80153deeU, 0, false, true, "" },
33    { "s_add_u32 s21, src_private_limit, s61\n", 0x80153deeU, 0, false, true, "" },
34    { "s_add_u32 s21, pops_exiting_wave_id, s61\n", 0x80153defU, 0, false, true, "" },
35    { "s_add_u32 s21, src_pops_exiting_wave_id, s61\n", 0x80153defU, 0, false, true, "" },
36    { "s_add_u32 s21, execz, s61\n", 0x80153dfcU, 0, false, true, "" },
37    { "s_add_u32 s21, src_execz, s61\n", 0x80153dfcU, 0, false, true, "" },
38    { "s_add_u32 s21, vccz, s61\n", 0x80153dfbU, 0, false, true, "" },
39    { "s_add_u32 s21, src_vccz, s61\n", 0x80153dfbU, 0, false, true, "" },
40    { "s_add_u32 s21, scc, s61\n", 0x80153dfdU, 0, false, true, "" },
41    { "s_add_u32 s21, src_scc, s61\n", 0x80153dfdU, 0, false, true, "" },
42    { "s_add_u32 ttmp0, s4, s61", 0x806c3d04U, 0, false, true, "" },
43    { "s_add_u32 ttmp1, s4, s61", 0x806d3d04U, 0, false, true, "" },
44    { "s_add_u32 ttmp2, s4, s61", 0x806e3d04U, 0, false, true, "" },
45    { "s_add_u32 ttmp3, s4, s61", 0x806f3d04U, 0, false, true, "" },
46    { "s_add_u32 ttmp4, s4, s61", 0x80703d04U, 0, false, true, "" },
47    { "s_add_u32 ttmp5, s4, s61", 0x80713d04U, 0, false, true, "" },
48    { "s_add_u32 ttmp14, s4, s61", 0x807a3d04U, 0, false, true, "" },
49    { "s_add_u32 ttmp15, s4, s61", 0x807b3d04U, 0, false, true, "" },
50    { "s_add_u32 ttmp16, s4, s61", 0x807b3d04U, 0, false, false,
51        "test.s:1:11: Error: TTMPRegister number out of range (0-15)\n" },
52    { "s_add_u32 ttmp[5], s4, s61", 0x80713d04U, 0, false, true, "" },
53    { "s_add_u32 ttmp[5:5], s4, s61", 0x80713d04U, 0, false, true, "" },
54    { "    s_add_u32  tma_lo, s4, s61", 0x806e3d04U, 0, false, false,
55        "test.s:1:16: Error: Expected 1 scalar register\n" },
56    { "    s_add_u32  tba_lo, s4, s61", 0x806e3d04U, 0, false, false,
57        "test.s:1:16: Error: Expected 1 scalar register\n" },
58    /* SOP2 instructions */
59    { "        s_mul_hi_u32    s21, s4, s61\n", 0x96153d04U, 0, false, true, "" },
60    { "        s_mul_hi_i32    s21, s4, s61\n", 0x96953d04U, 0, false, true, "" },
61    { "        s_lshl1_add_u32 s21, s4, s61\n", 0x97153d04U, 0, false, true, "" },
62    { "        s_lshl2_add_u32 s21, s4, s61\n", 0x97953d04U, 0, false, true, "" },
63    { "        s_lshl3_add_u32 s21, s4, s61\n", 0x98153d04U, 0, false, true, "" },
64    { "        s_lshl4_add_u32 s21, s4, s61\n", 0x98953d04U, 0, false, true, "" },
65    { "        s_pack_ll_b32_b16 s21, s4, s61\n", 0x99153d04U, 0, false, true, "" },
66    { "        s_pack_lh_b32_b16 s21, s4, s61\n", 0x99953d04U, 0, false, true, "" },
67    { "        s_pack_hh_b32_b16 s21, s4, s61\n", 0x9a153d04U, 0, false, true, "" },
68    /* SOP1 instructions */
69    { "s_andn1_saveexec_b64 s[86:87], s[20:21]\n", 0xbed63314U, 0, false, true, "" },
70    { "s_orn1_saveexec_b64 s[86:87], s[20:21]\n", 0xbed63414U, 0, false, true, "" },
71    { "s_andn1_wrexec_b64 s[86:87], s[20:21]\n", 0xbed63514U, 0, false, true, "" },
72    { "s_andn2_wrexec_b64 s[86:87], s[20:21]\n", 0xbed63614U, 0, false, true, "" },
73    { "s_bitreplicate_b64_b32 s[86:87], s20\n", 0xbed63714U, 0, false, true, "" },
74    /* SOPK instructions */
75    { "s_call_b64 s[44:45], xxxx+8\nxxxx:", 0xbaac0002U, 0, false, true, "" },
76    /* SOPP instructions */
77    { "        s_endpgm_ordered_ps_done\n", 0xbf9e0000U, 0, false, true, "" },
78    /* hwreg names */
79    { "    s_getreg_b32    s43, hwreg(mode, 0, 1)", 0xb8ab0001U, 0, false, true, "" },
80    { "    s_getreg_b32    s43, hwreg  (mode, 0, 1)", 0xb8ab0001U, 0, false, true, "" },
81    { "    s_getreg_b32    s43, hwreg  (mode  ,   0  , 1  )",
82                    0xb8ab0001U, 0, false, true, "" },
83    { "    s_getreg_b32    s43, hwreg(HWREG_MODE, 0, 1)", 0xb8ab0001U, 0, false, true, "" },
84    { "    s_getreg_b32    s43, hwreg(status, 0, 1)", 0xb8ab0002U, 0, false, true, "" },
85    { "    s_getreg_b32    s43, hwreg(HWREG_STATUS, 0, 1)",
86        0xb8ab0002U, 0, false, true, "" },
87    { "    s_getreg_b32    s43, hwreg(trapsts, 0, 1)", 0xb8ab0003U, 0, false, true, "" },
88    { "    s_getreg_b32    s43, hwreg(HWREG_TRAPSTS, 0, 1)",
89                    0xb8ab0003U, 0, false, true, "" },
90    { "    s_getreg_b32    s43, hwreg(hw_id, 0, 1)", 0xb8ab0004U, 0, false, true, "" },
91    { "    s_getreg_b32    s43, hwreg(HWREG_HW_ID, 0, 1)",
92                    0xb8ab0004U, 0, false, true, "" },
93    { "    s_getreg_b32    s43, hwreg(gpr_alloc, 0, 1)", 0xb8ab0005U, 0, false, true, "" },
94    { "    s_getreg_b32    s43, hwreg(HWREG_GPR_ALLOC, 0, 1)",
95                    0xb8ab0005U, 0, false, true, "" },
96    { "    s_getreg_b32    s43, hwreg(lds_alloc, 0, 1)", 0xb8ab0006U, 0, false, true, "" },
97    { "    s_getreg_b32    s43, hwreg(HWREG_LDS_ALLOC, 0, 1)",
98                    0xb8ab0006U, 0, false, true, "" },
99    { "    s_getreg_b32    s43, hwreg(ib_sts, 0, 1)", 0xb8ab0007U, 0, false, true, "" },
100    { "    s_getreg_b32    s43, hwreg(HWREG_IB_STS, 0, 1)",
101                    0xb8ab0007U, 0, false, true, "" },
102    { "    s_getreg_b32    s43, hwreg(pc_lo, 0, 1)", 0xb8ab0008U, 0, false, true, "" },
103    { "    s_getreg_b32    s43, hwreg(HWREG_PC_LO, 0, 1)",
104                    0xb8ab0008U, 0, false, true, "" },
105    { "    s_getreg_b32    s43, hwreg(pc_hi, 0, 1)", 0xb8ab0009U, 0, false, true, "" },
106    { "    s_getreg_b32    s43, hwreg(HWREG_PC_HI, 0, 1)",
107                    0xb8ab0009U, 0, false, true, "" },
108    { "    s_getreg_b32    s43, hwreg(inst_dw0, 0, 1)", 0xb8ab000aU, 0, false, true, "" },
109    { "    s_getreg_b32    s43, hwreg(HWREG_INST_DW0, 0, 1)",
110                    0xb8ab000aU, 0, false, true, "" },
111    { "    s_getreg_b32    s43, hwreg(inst_dw1, 0, 1)", 0xb8ab000bU, 0, false, true, "" },
112    { "    s_getreg_b32    s43, hwreg(HWREG_INST_DW1, 0, 1)",
113                    0xb8ab000bU, 0, false, true, "" },
114    { "    s_getreg_b32    s43, hwreg(ib_dbg0, 0, 1)", 0xb8ab000cU, 0, false, true, "" },
115    { "    s_getreg_b32    s43, hwreg(HWREG_IB_DBG0, 0, 1)",
116                    0xb8ab000cU, 0, false, true, "" },
117    { "    s_getreg_b32    s43, hwreg(ib_dbg1, 0, 1)", 0xb8ab000dU, 0, false, true, "" },
118    { "    s_getreg_b32    s43, hwreg(HWREG_IB_DBG1, 0, 1)",
119                0xb8ab000dU, 0, false, true, "" },
120    { "    s_getreg_b32    s43, hwreg(flush_ib, 0, 1)", 0xb8ab000eU, 0, false, true, "" },
121    { "    s_getreg_b32    s43, hwreg(HWREG_FLUSH_IB, 0, 1)",
122                0xb8ab000eU, 0, false, true, "" },
123    { "    s_getreg_b32    s43, hwreg(sh_mem_bases, 0, 1)",
124                0xb8ab000fU, 0, false, true, "" },
125    { "    s_getreg_b32    s43, hwreg(HWREG_SH_MEM_BASES, 0, 1)",
126                0xb8ab000fU, 0, false, true, "" },
127    { "    s_getreg_b32    s43, hwreg(sq_shader_tba_lo, 0, 1)",
128                0xb8ab0010U, 0, false, true, "" },
129    { "    s_getreg_b32    s43, hwreg(HWREG_SQ_SHADER_TBA_LO, 0, 1)",
130                0xb8ab0010U, 0, false, true, "" },
131    { "    s_getreg_b32    s43, hwreg(sq_shader_tba_hi, 0, 1)",
132                0xb8ab0011U, 0, false, true, "" },
133    { "    s_getreg_b32    s43, hwreg(HWREG_SQ_SHADER_TBA_HI, 0, 1)",
134                0xb8ab0011U, 0, false, true, "" },
135    { "    s_getreg_b32    s43, hwreg(sq_shader_tma_lo, 0, 1)",
136                0xb8ab0012U, 0, false, true, "" },
137    { "    s_getreg_b32    s43, hwreg(HWREG_SQ_SHADER_TMA_LO, 0, 1)",
138                0xb8ab0012U, 0, false, true, "" },
139    { "    s_getreg_b32    s43, hwreg(sq_shader_tma_hi, 0, 1)",
140                0xb8ab0013U, 0, false, true, "" },
141    { "    s_getreg_b32    s43, hwreg(HWREG_SQ_SHADER_TMA_HI, 0, 1)",
142                0xb8ab0013U, 0, false, true, "" },
143    /* message types */
144    { "    s_sendmsg  sendmsg(interrupt)", 0xbf900001U, 0, false, true, "" },
145    { "    s_sendmsg  sendmsg(MSG_INTERRUPT)", 0xbf900001U, 0, false, true, "" },
146    { "    s_sendmsg  sendmsg(system)", 0xbf90000fU, 0, false, true, "" },
147    { "    s_sendmsg  sendmsg(MSG_SYSTEM)", 0xbf90000fU, 0, false, true, "" },
148    { "    s_sendmsg  sendmsg(MSG_SYSMSG)", 0xbf90000fU, 0, false, true, "" },
149    { "    s_sendmsg  sendmsg(gs, nop)", 0xbf900002U, 0, false, true, "" },
150    { "    s_sendmsg  sendmsg(MSG_GS, GS_OP_NOP)", 0xbf900002U, 0, false, true, "" },
151    { "    s_sendmsg  sendmsg(gs, cut, 0)", 0xbf900012U, 0, false, true, "" },
152    { "    s_sendmsg  sendmsg(MSG_GS, GS_OP_CUT, 0)", 0xbf900012U, 0, false, true, "" },
153    { "    s_sendmsg  sendmsg(gs, cut, 1)", 0xbf900112U, 0, false, true, "" },
154    { "    s_sendmsg  sendmsg(MSG_GS, GS_OP_CUT, 1)", 0xbf900112U, 0, false, true, "" },
155    { "    s_sendmsg  sendmsg(gs, emit, 0)", 0xbf900022U, 0, false, true, "" },
156    { "    s_sendmsg  sendmsg(MSG_GS, GS_OP_EMIT, 0)", 0xbf900022U, 0, false, true, "" },
157    { "    s_sendmsg  sendmsg(gs, emit_cut, 3)", 0xbf900332U, 0,
158        false, true, "" },
159    { "    s_sendmsg  sendmsg(gs, emit-cut, 3)", 0xbf900332U, 0,
160        false, true, "" },
161    { "    s_sendmsg  sendmsg ( gs    , emit_cut  , 3  )", 0xbf900332U, 0,
162        false, true, "" },
163    { "    s_sendmsg  sendmsg(MSG_GS, GS_OP_EMIT_CUT, 3)", 0xbf900332U, 0,
164        false, true, "" },
165    { "    s_sendmsg  sendmsg(gs_done, nop)", 0xbf900003U, 0, false, true, "" },
166    { "    s_sendmsg  sendmsg(MSG_GS_DONE, GS_OP_NOP)", 0xbf900003U, 0, false, true, "" },
167    { "    s_sendmsghalt  sendmsg(interrupt)", 0xbf910001U, 0, false, true, "" },
168    { "    s_sendmsg  sendmsg(MSG_SAVEWAVE)",
169        0xbf900004U, 0, false, true, "" },
170    { "    s_sendmsg  sendmsg(savewave)", 0xbf900004U, 0, false, true, "" },
171    { "    s_sendmsg  sendmsg(MSG_STALL_WAVE_GEN)", 0xbf900005U, 0, false, true, "" },
172    { "    s_sendmsg  sendmsg(stall_wave_gen)", 0xbf900005U, 0, false, true, "" },
173    { "    s_sendmsg  sendmsg(MSG_HALT_WAVES)", 0xbf900006U, 0, false, true, "" },
174    { "    s_sendmsg  sendmsg(halt_waves)", 0xbf900006U, 0, false, true, "" },
175    { "    s_sendmsg  sendmsg(MSG_ORDERED_PS_DONE)", 0xbf900007U, 0, false, true, "" },
176    { "    s_sendmsg  sendmsg(ordered_ps_done)", 0xbf900007U, 0, false, true, "" },
177    { "    s_sendmsg  sendmsg(MSG_EARLY_PRIM_DEALLOC)", 0xbf900008U, 0, false, true, "" },
178    { "    s_sendmsg  sendmsg(early_prim_dealloc)", 0xbf900008U, 0, false, true, "" },
179    { "    s_sendmsg  sendmsg(MSG_GS_ALLOC_REQ)", 0xbf900009U, 0, false, true, "" },
180    { "    s_sendmsg  sendmsg(gs_alloc_req)", 0xbf900009U, 0, false, true, "" },
181    { "    s_sendmsg  sendmsg(MSG_GET_DOORBELL)", 0xbf90000aU, 0, false, true, "" },
182    { "    s_sendmsg  sendmsg(get_doorbell)", 0xbf90000aU, 0, false, true, "" },
183    /* waitcnts */
184    { "s_waitcnt       vmcnt(6) & expcnt(3) & lgkmcnt(13)\n",
185        0xbf8c0d36U, 0, false, true, "" },
186    { "s_waitcnt       vmcnt(22) & expcnt(3) & lgkmcnt(13)\n",
187        0xbf8c4d36U, 0, false, true, "" },
188    { "s_waitcnt       vmcnt(38) & expcnt(3) & lgkmcnt(13)\n",
189        0xbf8c8d36U, 0, false, true, "" },
190    { "s_waitcnt       vmcnt(54) & expcnt(3) & lgkmcnt(13)\n",
191        0xbf8ccd36U, 0, false, true, "" },
192    { "s_waitcnt       vmcnt(15) & expcnt(3) & lgkmcnt(13)\n",
193        0xbf8c0d3fU, 0, false, true, "" },
194    { "s_waitcnt       vmcnt(31) & expcnt(3) & lgkmcnt(13)\n",
195        0xbf8c4d3fU, 0, false, true, "" },
196    { "s_waitcnt       vmcnt(47) & expcnt(3) & lgkmcnt(13)\n",
197        0xbf8c8d3fU, 0, false, true, "" },
198    { "s_waitcnt       expcnt(3) & lgkmcnt(13)\n", 0xbf8ccd3fU, 0, false, true, "" },
199    { "s_waitcnt       " "vmcnt(0) & expcnt(0) & lgkmcnt(0)\n",
200        0xbf8c0000U, 0, false, true, "" },
201    /* SMEM encoding */
202    { "s_load_dword    s50, s[58:59], s91\n", 0xc0000c9dU, 0x5b, true, true, "" },
203    { "s_load_dword    s50, s[58:59], s91 glc:0 nv:0\n",
204        0xc0000c9dU, 0x5b, true, true, "" },
205    { "s_load_dword    s50, s[58:59], 0x5b\n", 0xc0020c9dU, 0x5b, true, true, "" },
206    { "s_load_dword    s50, s[58:59], 0x13da5b\n", 0xc0020c9dU, 0x13da5b, true, true, "" },
207    { "s_load_dword    s50, s[58:59], 0x5b nv\n", 0xc0028c9dU, 0x5b, true, true, "" },
208    { "s_load_dword    s50, s[58:59], 0x5b nv:1\n", 0xc0028c9dU, 0x5b, true, true, "" },
209    { "s_load_dword    s50, s[58:59], 0x5b nv glc\n", 0xc0038c9dU, 0x5b, true, true, "" },
210    { "s_load_dword    s50, s[58:59], 0x32 offset:0x5b\n",
211        0xc0024c9dU, 0x3200005b, true, true, "" },
212    { "s_load_dword    s50, s[58:59], 0x32 offset:0x13da5b\n",
213        0xc0024c9dU, 0x3213da5b, true, true, "" },
214    { "s_load_dword    s50, s[58:59], zz\nzz=0x13da5b",
215        0xc0020c9dU, 0x13da5b, true, true, "" },
216    { "s_load_dword    s50, s[58:59], zz1 offset:zz2\nzz1=0x32\nzz2=0x13da5b",
217        0xc0024c9dU, 0x3213da5b, true, true, "" },
218    { "s_load_dword    s50, s[58:59], 0x32 offset:0x33da5b\n",
219        0xc0024c9dU, 0x3213da5b, true, true,
220        "test.s:1:44: Warning: Value 0x33da5b truncated to 0x13da5b\n" },
221    { "s_load_dword    s50, s[58:59], zz1 offset:zz2\nzz1=0x132\nzz2=0x33da5b",
222        0xc0024c9dU, 0x3213da5b, true, true,
223        "test.s:1:32: Warning: Value 0x132 truncated to 0x32\n"
224        "test.s:1:43: Warning: Value 0x33da5b truncated to 0x13da5b\n" },
225    /* SMEM instructions */
226    { "        s_atomic_swap s50, s[60:61], 0x5b\n", 0xc2020c9eU, 0x5b, true, true, "" },
227    { "        s_atomic_cmpswap s[50:51], s[60:61], 0x5b\n",
228        0xc2060c9eU, 0x5b, true, true, "" },
229    { "        s_atomic_add s50, s[60:61], 0x5b\n", 0xc20a0c9eU, 0x5b, true, true, "" },
230    { "        s_atomic_sub s50, s[60:61], 0x5b\n", 0xc20e0c9eU, 0x5b, true, true, "" },
231    { "        s_atomic_smin s50, s[60:61], 0x5b\n", 0xc2120c9eU, 0x5b, true, true, "" },
232    { "        s_atomic_umin s50, s[60:61], 0x5b\n", 0xc2160c9eU, 0x5b, true, true, "" },
233    { "        s_atomic_smax s50, s[60:61], 0x5b\n", 0xc21a0c9eU, 0x5b, true, true, "" },
234    { "        s_atomic_umax s50, s[60:61], 0x5b\n", 0xc21e0c9eU, 0x5b, true, true, "" },
235    { "        s_atomic_and s50, s[60:61], 0x5b\n", 0xc2220c9eU, 0x5b, true, true, "" },
236    { "        s_atomic_or s50, s[60:61], 0x5b\n", 0xc2260c9eU, 0x5b, true, true, "" },
237    { "        s_atomic_xor s50, s[60:61], 0x5b\n", 0xc22a0c9eU, 0x5b, true, true, "" },
238    { "        s_atomic_inc s50, s[60:61], 0x5b\n", 0xc22e0c9eU, 0x5b, true, true, "" },
239    { "        s_atomic_dec s50, s[60:61], 0x5b\n", 0xc2320c9eU, 0x5b, true, true, "" },
240    { "        s_atomic_swap_x2 s[50:51], s[60:61], 0x5b\n",
241        0xc2820c9eU, 0x5b, true, true, "" },
242    { "        s_atomic_cmpswap_x2 s[52:55], s[60:61], 0x5b\n",
243        0xc2860d1eU, 0x5b, true, true, "" },
244    { "        s_atomic_add_x2 s[50:51], s[60:61], 0x5b\n",
245        0xc28a0c9eU, 0x5b, true, true, "" },
246    { "        s_atomic_sub_x2 s[50:51], s[60:61], 0x5b\n",
247        0xc28e0c9eU, 0x5b, true, true, "" },
248    { "        s_atomic_smin_x2 s[50:51], s[60:61], 0x5b\n",
249        0xc2920c9eU, 0x5b, true, true, "" },
250    { "        s_atomic_umin_x2 s[50:51], s[60:61], 0x5b\n",
251        0xc2960c9eU, 0x5b, true, true, "" },
252    { "        s_atomic_smax_x2 s[50:51], s[60:61], 0x5b\n",
253        0xc29a0c9eU, 0x5b, true, true, "" },
254    { "        s_atomic_umax_x2 s[50:51], s[60:61], 0x5b\n",
255        0xc29e0c9eU, 0x5b, true, true, "" },
256    { "        s_atomic_and_x2 s[50:51], s[60:61], 0x5b\n",
257        0xc2a20c9eU, 0x5b, true, true, "" },
258    { "        s_atomic_or_x2 s[50:51], s[60:61], 0x5b\n",
259        0xc2a60c9eU, 0x5b, true, true, "" },
260    { "        s_atomic_xor_x2 s[50:51], s[60:61], 0x5b\n",
261        0xc2aa0c9eU, 0x5b, true, true, "" },
262    { "        s_atomic_inc_x2 s[50:51], s[60:61], 0x5b\n",
263        0xc2ae0c9eU, 0x5b, true, true, "" },
264    { "        s_atomic_dec_x2 s[50:51], s[60:61], 0x5b\n",
265        0xc2b20c9eU, 0x5b, true, true, "" },
266    /* SDWA encoding */
267    { "   v_cndmask_b32   v154, v0, v107, vcc dst_sel:byte0 src0_sel:byte0 src1_sel:byte0",
268        0x0134d6f9U, 0, true, true, "" },
269    { "   v_cndmask_b32   v154, v0, v107, vcc "
270        "mul:4 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0",
271        0x0134d6f9U, 0x8000, true, true, "" },
272    { "v_add_f32   v154, v61, v107 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0\n",
273        0x0334d6f9U, 0x0000003dU, true, true, "" },
274    { "v_add_f32   v154, v61, vcc_hi dst_sel:byte0 src0_sel:byte0 src1_sel:byte0\n",
275        0x0334d6f9U, 0x8000003dU, true, true, "" },
276    { "v_add_f32   v154, s61, v107 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0\n",
277        0x0334d6f9U, 0x0080003dU, true, true, "" },
278    { "v_cndmask_b32   v154, sext(-abs(v65)), v107, vcc mul:2",
279        0x0134d6f9U, 0x063e4641U, true, true, "" },
280    { "v_add_f32   v154, sext(-abs(v65)), vcc_hi",
281        0x0334d6f9U, 0x863e0641U, true, true, "" },
282    { "v_add_f32   v154, sext(-abs(s65)), v107",
283        0x0334d6f9U, 0x06be0641U, true, true, "" },
284    // VOP3 encoding
285    { "v_writelane_b32 v55, v27, v90", 0xd28a0037U, 0x0002b51bU, true, true, "" },
286    /* SDWA encoding VOP1 */
287    { "v_mov_b32   v154, v61 dst_sel:byte0 src0_sel:byte0\n",
288        0x7f3402f9U, 0x0000003dU, true, true, "" },
289    { "v_mov_b32   v154, v61 dst_sel:byte0 src0_sel:byte0 div:2\n",
290        0x7f3402f9U, 0x0000c03dU, true, true, "" },
291    { "v_mov_b32   v154, s61 dst_sel:byte0 src0_sel:byte0\n",
292        0x7f3402f9U, 0x0080003dU, true, true, "" },
293    { "v_mov_b32   v154, sext(s61) dst_sel:byte0 src0_sel:byte0\n",
294        0x7f3402f9U, 0x0088003dU, true, true, "" },
295    { "v_mov_b32   v154, sext(s61) dst_sel:byte0 src0_sel:byte0 clamp\n",
296        0x7f3402f9U, 0x0088203dU, true, true, "" },
297    /* SDWA encoding VOPC */
298    { "v_cmp_class_f32 vcc, v0, v107 mul:4 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0",
299        0x7c20d6f9U, 0x8000, true, true, "" },
300    { "v_cmp_class_f32 vcc, v61, v107 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0",
301        0x7c20d6f9U, 0x3dU, true, true, "" },
302    { "v_cmp_class_f32 vcc, v61, vcc_hi dst_sel:byte0 src0_sel:byte0 src1_sel:byte0",
303        0x7c20d6f9U, 0x8000003dU, true, true, "" },
304    { "v_cmp_class_f32 vcc, s61, v107 dst_sel:byte0 src0_sel:byte0 src1_sel:byte0\n",
305        0x7c20d6f9U, 0x0080003dU, true, true, "" },
306    { "v_cmp_class_f32 vcc, sext(-abs(v65)), v107 mul:2",
307        0x7c20d6f9U, 0x063e4641U, true, true, "" },
308    { "v_cmp_class_f32 vcc, sext(-abs(v65)), vcc_hi",
309        0x7c20d6f9U, 0x863e0641U, true, true, "" },
310    { "v_cmp_class_f32 vcc, sext(-abs(s65)), v107",
311        0x7c20d6f9U, 0x06be0641U, true, true, "" },
312    /* VOP2 instructions */
313    { "v_add_co_u32    v154, vcc, v21, v107\n", 0x3334d715U, 0, false, true, "" },
314    { "v_sub_co_u32    v154, vcc, v21, v107\n", 0x3534d715U, 0, false, true, "" },
315    { "v_subrev_co_u32 v154, vcc, v21, v107\n", 0x3734d715U, 0, false, true, "" },
316    { "v_addc_co_u32   v154, vcc, v21, v107, vcc\n", 0x3934d715U, 0, false, true, "" },
317    { "v_subb_co_u32   v154, vcc, v21, v107, vcc\n", 0x3b34d715U, 0, false, true, "" },
318    { "v_subbrev_co_u32 v154, vcc, v21, v107, vcc\n", 0x3d34d715U, 0, false, true, "" },
319    { "v_add_co_u32    v55, s[18:19], s27, v90\n",
320        0xd1191237U, 0x0002b41bU, true, true, "" },
321    { "v_add_co_u32    v55, vcc, s27, v90 vop3\n",
322        0xd1196a37U, 0x0002b41bU, true, true, "" },
323    { "v_sub_co_u32    v55, s[18:19], s27, v90\n",
324        0xd11a1237U, 0x0002b41bU, true, true, "" },
325    { "v_sub_co_u32    v55, vcc, s27, v90 vop3\n",
326        0xd11a6a37U, 0x0002b41bU, true, true, "" },
327    { "v_subrev_co_u32 v55, s[18:19], s27, v90\n",
328        0xd11b1237U, 0x0002b41bU, true, true, "" },
329    { "v_subrev_co_u32 v55, vcc, s27, v90 vop3\n",
330        0xd11b6a37U, 0x0002b41bU, true, true, "" },
331    { "v_addc_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
332        0xd11c0637U, 0x4062b51bU, true, true, "" },
333    { "v_subb_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
334        0xd11d0637U, 0x4062b51bU, true, true, "" },
335    { "v_subbrev_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
336        0xd11e0637U, 0x4062b51bU, true, true, "" },
337    { "v_add_u32       v154, v21, v107\n", 0x6934d715U, 0, false, true, "" },
338    { "v_sub_u32       v154, v21, v107\n", 0x6b34d715U, 0, false, true, "" },
339    { "v_subrev_u32    v154, v21, v107\n", 0x6d34d715U, 0, false, true, "" },
340    { "v_add_u32       v55, s27, v90 vop3\n", 0xd1340037U, 0x0002b41bU, true, true, "" },
341    { "v_sub_u32       v55, s27, v90 vop3\n", 0xd1350037U, 0x0002b41bU, true, true, "" },
342    { "v_subrev_u32    v55, s27, v90 vop3\n", 0xd1360037U, 0x0002b41bU, true, true, "" },
343    /* VOP1 instructions */
344    { "v_mov_prsv_b32  v158, v79\n", 0x7f3c6d4fU, 0, false, true, "" },
345    { "v_screen_partition_4se_b32 v158, v79\n", 0x7f3c6f4fU, 0, false, true, "" },
346    { "v_mov_prsv_b32  v55, v27 vop3\n", 0xd1760037U, 0x0000011bU, true, true, "" },
347    { "v_screen_partition_4se_b32 v55, v27 vop3\n",
348        0xd1770037U, 0x0000011bU, true, true, "" },
349    { "v_cvt_norm_i16_f16 v158, v79\n", 0x7f3c9b4fU, 0, false, true, "" },
350    { "v_cvt_norm_u16_f16 v158, v79\n", 0x7f3c9d4fU, 0, false, true, "" },
351    { "v_sat_pk_u8_i16 v158, v79\n", 0x7f3c9f4fU, 0, false, true, "" },
352    { "v_writelane_regwr_b32 v158, v79\n", 0x7f3ca14fU, 0, false, true, "" },
353    { "v_swap_b32      v158, v79\n", 0x7f3ca34fU, 0, false, true, "" },
354    { "v_cvt_norm_i16_f16 v55, v27 vop3\n", 0xd18d0037U, 0x0000011bU, true, true, "" },
355    { "v_cvt_norm_u16_f16 v55, v27 vop3\n", 0xd18e0037U, 0x0000011bU, true, true, "" },
356    { "v_sat_pk_u8_i16 v55, v27 vop3\n", 0xd18f0037U, 0x0000011bU, true, true, "" },
357    { "v_writelane_regwr_b32 v55, v27 vop3\n", 0xd1900037U, 0x0000011bU, true, true, "" },
358    { "v_swap_b32      v55, v27 vop3\n", 0xd1910037U, 0x0000011bU, true, true, "" },
359    /* VOP3 instructions */
360    { "v_mad_u32_u16   v55, v79, v166, v229\n", 0xd1f10037U, 0x07974d4fU, true, true, "" },
361    { "v_mad_i32_i16   v55, v79, v166, v229\n", 0xd1f20037U, 0x07974d4fU, true, true, "" },
362    { "v_xad_u32       v55, v79, v166, v229\n", 0xd1f30037U, 0x07974d4fU, true, true, "" },
363    { "v_min3_f16      v55, v79, v166, v229\n", 0xd1f40037U, 0x07974d4fU, true, true, "" },
364    { "v_min3_i16      v55, v79, v166, v229\n", 0xd1f50037U, 0x07974d4fU, true, true, "" },
365    { "v_min3_u16      v55, v79, v166, v229\n", 0xd1f60037U, 0x07974d4fU, true, true, "" },
366    { "v_max3_f16      v55, v79, v166, v229\n", 0xd1f70037U, 0x07974d4fU, true, true, "" },
367    { "v_max3_i16      v55, v79, v166, v229\n", 0xd1f80037U, 0x07974d4fU, true, true, "" },
368    { "v_max3_u16      v55, v79, v166, v229\n", 0xd1f90037U, 0x07974d4fU, true, true, "" },
369    { "v_med3_f16      v55, v79, v166, v229\n", 0xd1fa0037U, 0x07974d4fU, true, true, "" },
370    { "v_med3_i16      v55, v79, v166, v229\n", 0xd1fb0037U, 0x07974d4fU, true, true, "" },
371    { "v_med3_u16      v55, v79, v166, v229\n", 0xd1fc0037U, 0x07974d4fU, true, true, "" },
372    { "v_lshl_add_u32  v55, v79, v166, v229\n", 0xd1fd0037U, 0x07974d4fU, true, true, "" },
373    { "v_add_lshl_u32  v55, v79, v166, v229\n", 0xd1fe0037U, 0x07974d4fU, true, true, "" },
374    { "v_add3_u32      v55, v79, v166, v229\n", 0xd1ff0037U, 0x07974d4fU, true, true, "" },
375    { "v_lshl_or_b32   v55, v79, v166, v229\n", 0xd2000037U, 0x07974d4fU, true, true, "" },
376    { "v_and_or_b32    v55, v79, v166, v229\n", 0xd2010037U, 0x07974d4fU, true, true, "" },
377    { "v_or3_b32       v55, v79, v166, v229\n", 0xd2020037U, 0x07974d4fU, true, true, "" },
378    { "v_mad_f16       v55, v79, v166, v229\n", 0xd2030037U, 0x07974d4fU, true, true, "" },
379    { "v_mad_u16       v55, v79, v166, v229\n", 0xd2040037U, 0x07974d4fU, true, true, "" },
380    { "v_mad_i16       v55, v79, v166, v229\n", 0xd2050037U, 0x07974d4fU, true, true, "" },
381    { "v_fma_f16       v55, v79, v166, v229\n", 0xd2060037U, 0x07974d4fU, true, true, "" },
382    { "v_div_fixup_f16 v55, v79, v166, v229\n", 0xd2070037U, 0x07974d4fU, true, true, "" },
383    { "v_mad_legacy_f16 v55, v79, v166, v229\n", 0xd1ea0037U, 0x07974d4fU, true, true, "" },
384    { "v_mad_legacy_u16 v55, v79, v166, v229\n", 0xd1eb0037U, 0x07974d4fU, true, true, "" },
385    { "v_mad_legacy_i16 v55, v79, v166, v229\n", 0xd1ec0037U, 0x07974d4fU, true, true, "" },
386    { "v_fma_legacy_f16 v55, v79, v166, v229\n", 0xd1ee0037U, 0x07974d4fU, true, true, "" },
387    { "v_div_fixup_legacy_f16 v55, v79, v166, v229\n",
388        0xd1ef0037U, 0x07974d4fU, true, true, "" },
389    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29\n",
390        0xd276002aU, 0x007602a7U, true, true, "" },
391    { "v_interp_p2_f16 v42, v1, attr39.z, s29\n",
392        0xd277002aU, 0x007602a7U, true, true, "" },
393    { "v_cvt_pknorm_i16_f16 v55, v27, v90\n", 0xd2990037U, 0x0002b51bU, true, true, "" },
394    { "v_cvt_pknorm_u16_f16 v55, v27, v90\n", 0xd29a0037U, 0x0002b51bU, true, true, "" },
395    { "v_readlane_regrd_b32 s55, v27, v90\n", 0xd29b0037U, 0x0002b51bU, true, true, "" },
396    { "v_add_i32       v55, v27, v90\n", 0xd29c0037U, 0x0002b51bU, true, true, "" },
397    { "v_sub_i32       v55, v27, v90\n", 0xd29d0037U, 0x0002b51bU, true, true, "" },
398    { "v_add_i16       v55, v27, v90\n", 0xd29e0037U, 0x0002b51bU, true, true, "" },
399    { "v_sub_i16       v55, v27, v90\n", 0xd29f0037U, 0x0002b51bU, true, true, "" },
400    { "v_pack_b32_f16  v55, v27, v90\n", 0xd2a00037U, 0x0002b51bU, true, true, "" },
401    /* VOP3 op_sel */
402    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:[1,1,1,1]\n",
403        0xd276782aU, 0x007602a7, true, true, "" },
404    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:15\n",
405        0xd276782aU, 0x007602a7, true, true, "" },
406    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:[0,1,1,1]\n",
407        0xd276702aU, 0x007602a7, true, true, "" },
408    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:14\n",
409        0xd276702aU, 0x007602a7, true, true, "" },
410    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:[1,0,0,1]\n",
411        0xd276482aU, 0x007602a7, true, true, "" },
412    { "v_interp_p2_legacy_f16 v42, v1, attr39.z, s29 op_sel:9\n",
413        0xd276482aU, 0x007602a7, true, true, "" },
414    { "v_alignbit_b32  v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
415        0xd1ce5837U, 0x07974d4fU, true, true, "" },
416    { "v_alignbit_b32  v55, v79, v166, v229 op_sel:0xb\n",
417        0xd1ce5837U, 0x07974d4fU, true, true, "" },
418    { "v_alignbit_b32  v55, v79, v166, v229 op_sel:[0,1,1,0]\n",
419        0xd1ce3037U, 0x07974d4fU, true, true, "" },
420    { "v_alignbit_b32  v55, v79, v166, v229 op_sel:0x6\n",
421        0xd1ce3037U, 0x07974d4fU, true, true, "" },
422    /* VOP3 op_sel instructions */
423    { "v_alignbit_b32  v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
424        0xd1ce5837U, 0x07974d4fU, true, true, "" },
425    { "v_alignbyte_b32 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
426        0xd1cf5837U, 0x07974d4fU, true, true, "" },
427    { "v_mad_legacy_f16 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
428        0xd1ea5837U, 0x07974d4fU, true, true, "" },
429    { "v_mad_legacy_u16 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
430        0xd1eb5837U, 0x07974d4fU, true, true, "" },
431    { "v_mad_legacy_i16 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
432        0xd1ec5837U, 0x07974d4fU, true, true, "" },
433    { "v_fma_legacy_f16 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
434        0xd1ee5837U, 0x07974d4fU, true, true, "" },
435    { "v_div_fixup_legacy_f16 v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
436        0xd1ef5837U, 0x07974d4fU, true, true, "" },
437    { "v_min3_f16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
438        0xd1f45837U, 0x07974d4fU, true, true, "" },
439    { "v_min3_i16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
440        0xd1f55837U, 0x07974d4fU, true, true, "" },
441    { "v_min3_u16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
442        0xd1f65837U, 0x07974d4fU, true, true, "" },
443    { "v_max3_f16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
444        0xd1f75837U, 0x07974d4fU, true, true, "" },
445    { "v_max3_i16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
446        0xd1f85837U, 0x07974d4fU, true, true, "" },
447    { "v_max3_u16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
448        0xd1f95837U, 0x07974d4fU, true, true, "" },
449    { "v_med3_f16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
450        0xd1fa5837U, 0x07974d4fU, true, true, "" },
451    { "v_med3_i16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
452        0xd1fb5837U, 0x07974d4fU, true, true, "" },
453    { "v_med3_u16      v55, v79, v166, v229 op_sel:[1,1,0,1]\n",
454        0xd1fc5837U, 0x07974d4fU, true, true, "" },
455    { "v_cvt_pknorm_i16_f16 v55, v27, v90 op_sel:[1,1,0]\n",
456        0xd2991837U, 0x0002b51bU, true, true, "" },
457    { "v_cvt_pknorm_u16_f16 v55, v27, v90 op_sel:[1,1,0]\n",
458        0xd29a1837U, 0x0002b51bU, true, true, "" },
459    { "v_add_i16       v55, v27, v90 op_sel:[1,1,0]\n",
460        0xd29e1837U, 0x0002b51bU, true, true, "" },
461    { "v_sub_i16       v55, v27, v90 op_sel:[1,1,0]\n",
462        0xd29f1837U, 0x0002b51bU, true, true, "" },
463    { "v_pack_b32_f16  v55, v27, v90 op_sel:[1,1,0]\n",
464        0xd2a01837U, 0x0002b51bU, true, true, "" },
465    /* VOP3P encoding */
466    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel_hi:[0,0,0]\n",
467        0xd3800037U, 0x07974d4fU, true, true, "" },
468    { "v_pk_mad_i16    v55, v79, v166, v229\n",
469        0xd3804037U, 0x1f974d4fU, true, true, "" },
470    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel_hi:[1,0,0]\n",
471        0xd3800037U, 0x0f974d4fU, true, true, "" },
472    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel_hi:[0,1,0]\n",
473        0xd3800037U, 0x17974d4fU, true, true, "" },
474    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel_hi:[0,1,1]\n",
475        0xd3804037U, 0x17974d4fU, true, true, "" },
476    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel_hi:6\n",
477        0xd3804037U, 0x17974d4fU, true, true, "" },
478    { "v_pk_add_i16    v55, v79, v166 op_sel_hi:[0,1]\n",
479        0xd3820037U, 0x10034d4fU, true, true, "" },
480    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:[1,0,0] op_sel_hi:[0,0,0]\n",
481        0xd3800837U, 0x07974d4fU, true, true, "" },
482    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:[1,0,0] op_sel_hi:[1,0,1]\n",
483        0xd3804837U, 0x0f974d4fU, true, true, "" },
484    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:[1,0,0]\n",
485        0xd3804837U, 0x1f974d4fU, true, true, "" },
486    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:[0,1,0] op_sel_hi:[0,0,0]\n",
487        0xd3801037U, 0x07974d4fU, true, true, "" },
488    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:[0,0,1] op_sel_hi:[0,0,0]\n",
489        0xd3802037U, 0x07974d4fU, true, true, "" },
490    { "v_pk_mad_i16    v55, v79, v166, v229 op_sel:4 op_sel_hi:[0,0,0]\n",
491        0xd3802037U, 0x07974d4fU, true, true, "" },
492    { "v_pk_add_i16    v55, v79, v166 op_sel:[1,1] op_sel_hi:[0,1]\n",
493        0xd3821837U, 0x10034d4fU, true, true, "" },
494    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[1,0,0]\n",
495        0xd3804137U, 0x1f974d4fU, true, true, "" },
496    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[0,1,0]\n",
497        0xd3804237U, 0x1f974d4fU, true, true, "" },
498    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[1,1,0]\n",
499        0xd3804337U, 0x1f974d4fU, true, true, "" },
500    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[0,0,1]\n",
501        0xd3804437U, 0x1f974d4fU, true, true, "" },
502    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[1,0,1]\n",
503        0xd3804537U, 0x1f974d4fU, true, true, "" },
504    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:5\n",
505        0xd3804537U, 0x1f974d4fU, true, true, "" },
506    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[0,1,1]\n",
507        0xd3804637U, 0x1f974d4fU, true, true, "" },
508    { "v_pk_mad_i16    v55, v79, v166, v229 neg_hi:[1,1,1]\n",
509        0xd3804737U, 0x1f974d4fU, true, true, "" },
510    { "v_pk_add_i16    v55, v79, v166 neg_hi:[1,1]\n",
511        0xd3824337U, 0x18034d4fU, true, true, "" },
512    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[1,0,0]\n",
513        0xd3804037U, 0x3f974d4fU, true, true, "" },
514    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[0,1,0]\n",
515        0xd3804037U, 0x5f974d4fU, true, true, "" },
516    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[1,1,0]\n",
517        0xd3804037U, 0x7f974d4fU, true, true, "" },
518    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:3\n",
519        0xd3804037U, 0x7f974d4fU, true, true, "" },
520    { "v_pk_mad_i16    v55, -v79, -v166, v229\n",
521        0xd3804037U, 0x7f974d4fU, true, true, "" },
522    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[0,0,1]\n",
523        0xd3804037U, 0x9f974d4fU, true, true, "" },
524    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[1,0,1]\n",
525        0xd3804037U, 0xbf974d4fU, true, true, "" },
526    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[0,1,1]\n",
527        0xd3804037U, 0xdf974d4fU, true, true, "" },
528    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[1,1,1]\n",
529        0xd3804037U, 0xff974d4fU, true, true, "" },
530    { "v_pk_add_i16    v55, v79, v166 neg_lo:[1,1]\n",
531        0xd3824037U, 0x78034d4fU, true, true, "" },
532    { "v_pk_mad_i16    v55, v79, v166, v229 neg_lo:[1,1,0] neg_hi:[1,0,1]\n",
533        0xd3804537U, 0x7f974d4fU, true, true, "" },
534    { "v_pk_mad_i16    v55, -v79, -v166, v229 clamp\n",
535        0xd380c037U, 0x7f974d4fU, true, true, "" },
536    /* VOP3P errors */
537    { "v_pk_mad_i16    v55, -v79, -v166, v229 clamp mul:2\n", 0, 0, true, false,
538        "test.s:1:46: Error: Unknown VOP modifier\n"
539        "test.s:1:49: Error: Some garbages at VOP modifier place\n" },
540    { "v_pk_mad_i16    v55, -v79, -v166, v229 clamp sext:2\n", 0, 0, true, false,
541        "test.s:1:46: Error: Unknown VOP modifier\n"
542        "test.s:1:50: Error: Some garbages at VOP modifier place\n" },
543    { "v_pk_mad_i16    v55, -v79, -v166, v229 clamp abs:2\n", 0, 0, true, false,
544        "test.s:1:46: Error: Unknown VOP modifier\n"
545        "test.s:1:49: Error: Some garbages at VOP modifier place\n" },
546    { "v_pk_mad_i16    v55, -v79, -abs(v166), v229 clamp\n", 0, 0, true, false,
547        "test.s:1:32: Error: Expected operator\n"
548        "test.s:1:33: Error: Expected ',' before argument\n" },
549    { "v_pk_mad_i16    v55, -v79, sext(v166), v229 clamp\n", 0, 0, true, false,
550        "test.s:1:32: Error: Expected operator\n"
551        "test.s:1:33: Error: Expected ',' before argument\n" },
552    /* VOP3P instructions */
553    { "v_pk_mul_lo_u16 v55, v79, v166\n", 0xd3814037U, 0x18034d4fU, true, true, "" },
554    { "v_pk_add_i16    v55, v79, v166\n", 0xd3824037U, 0x18034d4fU, true, true, "" },
555    { "v_pk_sub_i16    v55, v79, v166\n", 0xd3834037U, 0x18034d4fU, true, true, "" },
556    { "v_pk_lshlrev_b16 v55, v79, v166\n", 0xd3844037U, 0x18034d4fU, true, true, "" },
557    { "v_pk_lshrrev_b16 v55, v79, v166\n", 0xd3854037U, 0x18034d4fU, true, true, "" },
558    { "v_pk_ashrrev_i16 v55, v79, v166\n", 0xd3864037U, 0x18034d4fU, true, true, "" },
559    { "v_pk_max_i16    v55, v79, v166\n", 0xd3874037U, 0x18034d4fU, true, true, "" },
560    { "v_pk_min_i16    v55, v79, v166\n", 0xd3884037U, 0x18034d4fU, true, true, "" },
561    { "v_pk_mad_u16    v55, v79, v166, v229\n", 0xd3894037U, 0x1f974d4fU, true, true, "" },
562    { "v_pk_add_u16    v55, v79, v166\n", 0xd38a4037U, 0x18034d4fU, true, true, "" },
563    { "v_pk_sub_u16    v55, v79, v166\n", 0xd38b4037U, 0x18034d4fU, true, true, "" },
564    { "v_pk_max_u16    v55, v79, v166\n", 0xd38c4037U, 0x18034d4fU, true, true, "" },
565    { "v_pk_min_u16    v55, v79, v166\n", 0xd38d4037U, 0x18034d4fU, true, true, "" },
566    { "v_pk_fma_f16    v55, v79, v166, v229\n", 0xd38e4037U, 0x1f974d4fU, true, true, "" },
567    { "v_pk_add_f16    v55, v79, v166\n", 0xd38f4037U, 0x18034d4fU, true, true, "" },
568    { "v_pk_mul_f16    v55, v79, v166\n", 0xd3904037U, 0x18034d4fU, true, true, "" },
569    { "v_pk_min_f16    v55, v79, v166\n", 0xd3914037U, 0x18034d4fU, true, true, "" },
570    { "v_pk_max_f16    v55, v79, v166\n", 0xd3924037U, 0x18034d4fU, true, true, "" },
571    { "v_mad_mix_f32   v55, v79, v166, v229\n", 0xd3a04037U, 0x1f974d4fU, true, true, "" },
572    { "v_mad_mixlo_f16 v55, v79, v166, v229\n", 0xd3a14037U, 0x1f974d4fU, true, true, "" },
573    { "v_mad_mixhi_f16 v55, v79, v166, v229\n", 0xd3a24037U, 0x1f974d4fU, true, true, "" },
574    /* VINTRP */
575    { "   v_interp_p1_f32 v93, v211, attr26.w", 0xd5746bd3U, 0, false, true, "" },
576    { "   v_interp_p1_f32 v93, v211, attr26 . w", 0xd5746bd3U, 0, false, true, "" },
577    { "   v_interp_p1_f32 v93, v211, aTTR26 . W", 0xd5746bd3U, 0, false, true, "" },
578    { "   v_interp_p1_f32 v93, v211, aTTR00026 . W", 0xd5746bd3U, 0, false, true, "" },
579    { "   v_interp_p1_f32 v93, v211, attr26.x", 0xd57468d3U, 0, false, true, "" },
580    { "   v_interp_p1_f32 v93, v211, attr26.y", 0xd57469d3U, 0, false, true, "" },
581    { "   v_interp_p1_f32 v93, v211, attr26.z", 0xd5746ad3U, 0, false, true, "" },
582    { "   v_interp_p1_f32 v93, v211, attr63.z", 0xd574fed3U, 0, false, true, "" },
583    { "   v_interp_p1_f32 v93  , v211  , attr63.z", 0xd574fed3U, 0, false, true, "" },
584    { "   v_interp_p2_f32 v93, v211, attr26.w", 0xd5756bd3U, 0, false, true, "" },
585    { "   v_interp_mov_f32 v93, p10, attr26.w", 0xd5766b00U, 0, false, true, "" },
586    { "   v_interp_mov_f32 v93, p20, attr26.w", 0xd5766b01U, 0, false, true, "" },
587    { "   v_interp_mov_f32 v93, p0, attr26.w", 0xd5766b02U, 0, false, true, "" },
588    /* DS instructions */
589    { "ds_write_addtid_b32 v71 offset:52583\n", 0xd83acd67U, 0x00000047U, true, true, "" },
590    { "ds_write_b8_d16_hi v71, v169 offset:52583\n",
591        0xd8a8cd67U, 0x0000a947U, true, true, "" },
592    { "ds_write_b16_d16_hi v71, v169 offset:52583\n",
593        0xd8aacd67U, 0x0000a947U, true, true, "" },
594    { "ds_read_u8_d16  v139, v71 offset:52583\n",
595        0xd8accd67U, 0x8b000047U, true, true, "" },
596    { "ds_read_u8_d16_hi v139, v71 offset:52583\n",
597        0xd8aecd67U, 0x8b000047U, true, true, "" },
598    { "ds_read_i8_d16  v139, v71 offset:52583\n",
599        0xd8b0cd67U, 0x8b000047U, true, true, "" },
600    { "ds_read_i8_d16_hi v139, v71 offset:52583\n",
601        0xd8b2cd67U, 0x8b000047U, true, true, "" },
602    { "ds_read_u16_d16 v139, v71 offset:52583\n",
603        0xd8b4cd67U, 0x8b000047U, true, true, "" },
604    { "ds_read_addtid_b32 v139 offset:52583\n", 0xd96ccd67U, 0x8b000000U, true, true, "" },
605    /* MUBUF instructions */
606    { "buffer_store_byte_d16_hi v61, v[18:19], s[80:83], s35 offen idxen "
607        "offset:603 glc slc lds\n", 0xe067725bU, 0x23143d12U, true, true, "" },
608    { "buffer_store_short_d16_hi v61, v[18:19], s[80:83], s35 offen idxen "
609        "offset:603 glc slc lds\n", 0xe06f725bU, 0x23143d12U, true, true, "" },
610    { "buffer_load_ubyte_d16 v61, v[18:19], s[80:83], s35 offen idxen "
611        "offset:603 glc slc lds\n", 0xe083725bU, 0x23143d12U, true, true, "" },
612    { "buffer_load_ubyte_d16_hi v61, v[18:19], s[80:83], s35 offen idxen "
613        "offset:603 glc slc lds\n", 0xe087725bU, 0x23143d12U, true, true, "" },
614    { "buffer_load_sbyte_d16 v61, v[18:19], s[80:83], s35 offen idxen "
615        "offset:603 glc slc lds\n", 0xe08b725bU, 0x23143d12U, true, true, "" },
616    { "buffer_load_sbyte_d16_hi v61, v[18:19], s[80:83], s35 offen idxen "
617        "offset:603 glc slc lds\n", 0xe08f725bU, 0x23143d12U, true, true, "" },
618    { "buffer_load_short_d16 v61, v[18:19], s[80:83], s35 offen idxen "
619        "offset:603 glc slc lds\n", 0xe093725bU, 0x23143d12U, true, true, "" },
620    { "buffer_load_short_d16_hi v61, v[18:19], s[80:83], s35 offen idxen "
621        "offset:603 glc slc lds\n", 0xe097725bU, 0x23143d12U, true, true, "" },
622    { "buffer_load_format_d16_hi_x v61, v[18:19], s[80:83], s35 offen idxen "
623        "offset:603 glc slc lds\n", 0xe09b725bU, 0x23143d12U, true, true, "" },
624    { "buffer_store_format_d16_hi_x v61, v[18:19], s[80:83], s35 offen idxen "
625        "offset:603 glc slc lds\n", 0xe09f725bU, 0x23143d12U, true, true, "" },
626    /* MIMG instructions */
627    { "image_gather4h  v[157:160], v[121:124], s[84:91], s[0:3] dmask:11 "
628        "unorm glc a16 da\n", 0xf108fb00U, 0x00159d79U, true, true, "" },
629    { "image_gather4h  v[157:160], v[121:124], s[84:91], s[0:3] dmask:11 "
630        "unorm glc da\n", 0xf1087b00U, 0x00159d79U, true, true, "" },
631    { "image_gather4h_pck v[157:160], v[121:124], s[84:91], s[0:3] dmask:11 "
632        "unorm glc a16 da\n", 0xf128fb00U, 0x00159d79U, true, true, "" },
633    { "image_gather8h_pck v[157:160], v[121:124], s[84:91], s[0:3] dmask:11 "
634        "unorm glc a16 da\n", 0xf12cfb00U, 0x00159d79U, true, true, "" },
635    /* FLAT encoding */
636    { "flat_load_ubyte v47, v[187:188] nv\n", 0xdc400000U, 0x2f8000bbU, true, true, "" },
637    { "flat_load_ubyte v47, v[187:188]\n", 0xdc400000U, 0x2f0000bbU, true, true, "" },
638    { "flat_load_ubyte v47, v[187:188] lds\n", 0xdc402000U, 0x2f0000bbU, true, true, "" },
639    { "flat_load_ubyte v47, v[187:188] inst_offset:529\n",
640        0xdc400211U, 0x2f0000bbU, true, true, "" },
641    { "flat_load_ubyte v47, v[187:188] inst_offset:zzz\nzzz=529\n",
642        0xdc400211U, 0x2f0000bbU, true, true, "" },
643    /* FLAT instructions */
644    { "flat_store_byte_d16_hi " "v[187:188], v65 glc slc nv\n",
645        0xdc670000U, 0x008041bbU, true, true, "" },
646    { "flat_store_short_d16_hi " "v[187:188], v65 glc slc nv\n",
647        0xdc6f0000U, 0x008041bbU, true, true, "" },
648    { "flat_load_ubyte_d16 " "v47, v[187:188] glc slc nv\n",
649        0xdc830000U, 0x2f8000bbU, true, true, "" },
650    { "flat_load_ubyte_d16_hi " "v47, v[187:188] glc slc nv\n",
651        0xdc870000U, 0x2f8000bbU, true, true, "" },
652    { "flat_load_sbyte_d16 " "v47, v[187:188] glc slc nv\n",
653        0xdc8b0000U, 0x2f8000bbU, true, true, "" },
654    { "flat_load_sbyte_d16_hi " "v47, v[187:188] glc slc nv\n",
655        0xdc8f0000U, 0x2f8000bbU, true, true, "" },
656    { "flat_load_short_d16 " "v47, v[187:188] glc slc nv\n",
657        0xdc930000U, 0x2f8000bbU, true, true, "" },
658    { "flat_load_short_d16_hi " "v47, v[187:188] glc slc nv\n",
659        0xdc970000U, 0x2f8000bbU, true, true, "" },
660    /* FLAT SCRATCH encoding */
661    { "scratch_load_ubyte v47, off, s49 glc slc\n",
662        0xdc434000U, 0x2f3100ffU, true, true, "" },
663    { "scratch_load_ubyte v47, v187, off glc slc\n",
664        0xdc434000U, 0x2fff00bbU, true, true, "" },
665    { "scratch_load_ubyte v47, v187, off inst_offset:1043 glc slc\n",
666        0xdc434413U, 0x2fff00bbU, true, true, "" },
667    { "scratch_load_ubyte v47, v187, off inst_offset:zz glc slc\nzz=1043\n",
668        0xdc434413U, 0x2fff00bbU, true, true, "" },
669    { "scratch_load_ubyte v47, v187, off inst_offset:-3053 glc slc\n",
670        0xdc435413U, 0x2fff00bbU, true, true, "" },
671    { "scratch_load_ubyte v47, v187, off inst_offset:zz glc slc\nzz=-3053\n",
672        0xdc435413U, 0x2fff00bbU, true, true, "" },
673    { "scratch_load_ubyte v47, v187, off inst_offset:-4096 glc slc\n",
674        0xdc435000U, 0x2fff00bbU, true, true, "" },
675    { "scratch_load_ubyte v47, v187, off inst_offset:zzx glc slc\nzzx=-4096\n",
676        0xdc435000U, 0x2fff00bbU, true, true, "" },
677    /* FLAT SCRATCH instructions */
678    { "scratch_load_sbyte v47, off, s49 glc slc\n",
679        0xdc474000U, 0x2f3100ffU, true, true, "" },
680    { "scratch_load_ushort v47, off, s49 glc slc\n",
681        0xdc4b4000U, 0x2f3100ffU, true, true, "" },
682    { "scratch_load_sshort v47, off, s49 glc slc\n",
683        0xdc4f4000U, 0x2f3100ffU, true, true, "" },
684    { "scratch_load_dword v47, off, s49 glc slc\n",
685        0xdc534000U, 0x2f3100ffU, true, true, "" },
686    { "scratch_load_dwordx2 v[47:48], off, s49 glc slc\n",
687        0xdc574000U, 0x2f3100ffU, true, true, "" },
688    { "scratch_load_dwordx3 v[47:49], off, s49 glc slc\n",
689        0xdc5b4000U, 0x2f3100ffU, true, true, "" },
690    { "scratch_load_dwordx4 v[47:50], off, s49 glc slc\n",
691        0xdc5f4000U, 0x2f3100ffU, true, true, "" },
692    { "scratch_store_byte off, v65, s49 glc slc\n",
693        0xdc634000U, 0x003141ffU, true, true, "" },
694    { "scratch_store_byte_d16_hi off, v65, s49 glc slc\n",
695        0xdc674000U, 0x003141ffU, true, true, "" },
696    { "scratch_store_short off, v65, s49 glc slc\n",
697        0xdc6b4000U, 0x003141ffU, true, true, "" },
698    { "scratch_store_short_d16_hi off, v65, s49 glc slc\n",
699        0xdc6f4000U, 0x003141ffU, true, true, "" },
700    { "scratch_store_dword off, v65, s49 glc slc\n",
701        0xdc734000U, 0x003141ffU, true, true, "" },
702    { "scratch_store_dwordx2 off, v[65:66], s49 glc slc\n",
703        0xdc774000U, 0x003141ffU, true, true, "" },
704    { "scratch_store_dwordx3 off, v[65:67], s49 glc slc\n",
705        0xdc7b4000U, 0x003141ffU, true, true, "" },
706    { "scratch_store_dwordx4 off, v[65:68], s49 glc slc\n",
707        0xdc7f4000U, 0x003141ffU, true, true, "" },
708    { "scratch_load_ubyte_d16 v47, off, s49 glc slc\n",
709        0xdc834000U, 0x2f3100ffU, true, true, "" },
710    { "scratch_load_ubyte_d16_hi v47, off, s49 glc slc\n",
711        0xdc874000U, 0x2f3100ffU, true, true, "" },
712    { "scratch_load_sbyte_d16 v47, off, s49 glc slc\n",
713        0xdc8b4000U, 0x2f3100ffU, true, true, "" },
714    { "scratch_load_sbyte_d16_hi v47, off, s49 glc slc\n",
715        0xdc8f4000U, 0x2f3100ffU, true, true, "" },
716    { "scratch_load_short_d16 v47, off, s49 glc slc\n",
717        0xdc934000U, 0x2f3100ffU, true, true, "" },
718    { "scratch_load_short_d16_hi v47, off, s49 glc slc\n",
719        0xdc974000U, 0x2f3100ffU, true, true, "" },
720    /* FLAT GLOBAL scope */
721    { "global_load_ubyte v47, v[187:188], s[50:51] glc slc\n",
722        0xdc438000U, 0x2f3200bbU, true, true, "" },
723    { "global_load_ubyte v47, v[187:188], off glc slc\n",
724        0xdc438000U, 0x2fff00bbU, true, true, "" },
725    { "global_load_ubyte v47, v[187:188], s[50:51] inst_offset:1043 glc slc\n",
726        0xdc438413U, 0x2f3200bbU, true, true, "" },
727    { "global_load_ubyte v47, v[187:188], s[50:51] inst_offset:zz glc slc\nzz=1044\n",
728        0xdc438414U, 0x2f3200bbU, true, true, "" },
729    { "global_load_ubyte v47, v[187:188], s[50:51] inst_offset:-3053 glc slc\n",
730        0xdc439413U, 0x2f3200bbU, true, true, "" },
731    { "global_load_ubyte v47, v[187:188], s[50:51] inst_offset:zza glc slc\nzza=-3057\n",
732        0xdc43940fU, 0x2f3200bbU, true, true, "" },
733    /* FLAT GLOBAL instructions */
734    { "global_load_sbyte v47, v[187:188], s[50:51] glc slc\n",
735        0xdc478000U, 0x2f3200bbU, true, true, "" },
736    { "global_load_ushort v47, v[187:188], s[50:51] glc slc\n",
737        0xdc4b8000U, 0x2f3200bbU, true, true, "" },
738    { "global_load_sshort v47, v[187:188], s[50:51] glc slc\n",
739        0xdc4f8000U, 0x2f3200bbU, true, true, "" },
740    { "global_load_dword v47, v[187:188], s[50:51] glc slc\n",
741        0xdc538000U, 0x2f3200bbU, true, true, "" },
742    { "global_load_dwordx2 v[47:48], v[187:188], s[50:51] glc slc\n",
743        0xdc578000U, 0x2f3200bbU, true, true, "" },
744    { "global_load_dwordx3 v[47:49], v[187:188], s[50:51] glc slc\n",
745        0xdc5b8000U, 0x2f3200bbU, true, true, "" },
746    { "global_load_dwordx4 v[47:50], v[187:188], s[50:51] glc slc\n",
747        0xdc5f8000U, 0x2f3200bbU, true, true, "" },
748    { "global_store_byte v[187:188], v65, s[50:51] glc slc\n",
749        0xdc638000U, 0x003241bbU, true, true, "" },
750    { "global_store_byte_d16_hi v[187:188], v65, s[50:51] glc slc\n",
751        0xdc678000U, 0x003241bbU, true, true, "" },
752    { "global_store_short v[187:188], v65, s[50:51] glc slc\n",
753        0xdc6b8000U, 0x003241bbU, true, true, "" },
754    { "global_store_short_d16_hi v[187:188], v65, s[50:51] glc slc\n",
755        0xdc6f8000U, 0x003241bbU, true, true, "" },
756    { "global_store_dword v[187:188], v65, s[50:51] glc slc\n",
757        0xdc738000U, 0x003241bbU, true, true, "" },
758    { "global_store_dwordx2 v[187:188], v[65:66], s[50:51] glc slc\n",
759        0xdc778000U, 0x003241bbU, true, true, "" },
760    { "global_store_dwordx3 v[187:188], v[65:67], s[50:51] glc slc\n",
761        0xdc7b8000U, 0x003241bbU, true, true, "" },
762    { "global_store_dwordx4 v[187:188], v[65:68], s[50:51] glc slc\n",
763        0xdc7f8000U, 0x003241bbU, true, true, "" },
764    { "global_load_ubyte_d16 v47, v[187:188], s[50:51] glc slc\n",
765        0xdc838000U, 0x2f3200bbU, true, true, "" },
766    { "global_load_ubyte_d16_hi v47, v[187:188], s[50:51] glc slc\n",
767        0xdc878000U, 0x2f3200bbU, true, true, "" },
768    { "global_load_sbyte_d16 v47, v[187:188], s[50:51] glc slc\n",
769        0xdc8b8000U, 0x2f3200bbU, true, true, "" },
770    { "global_load_sbyte_d16_hi v47, v[187:188], s[50:51] glc slc\n",
771        0xdc8f8000U, 0x2f3200bbU, true, true, "" },
772    { "global_load_short_d16 v47, v[187:188], s[50:51] glc slc\n",
773        0xdc938000U, 0x2f3200bbU, true, true, "" },
774    { "global_load_short_d16_hi v47, v[187:188], s[50:51] glc slc\n",
775        0xdc978000U, 0x2f3200bbU, true, true, "" },
776    { "global_atomic_swap v47, v[187:188], v65, s[50:51] glc slc\n",
777        0xdd038000U, 0x2f3241bbU, true, true, "" },
778    { "global_atomic_cmpswap v47, v[187:188], v[65:66], s[50:51] glc slc\n",
779        0xdd078000U, 0x2f3241bbU, true, true, "" },
780    { "global_atomic_add v47, v[187:188], v65, s[50:51] glc slc\n",
781        0xdd0b8000U, 0x2f3241bbU, true, true, "" },
782    { "global_atomic_sub v47, v[187:188], v65, s[50:51] glc slc\n",
783        0xdd0f8000U, 0x2f3241bbU, true, true, "" },
784    { "global_atomic_smin v47, v[187:188], v65, s[50:51] glc slc\n",
785        0xdd138000U, 0x2f3241bbU, true, true, "" },
786    { "global_atomic_umin v47, v[187:188], v65, s[50:51] glc slc\n",
787        0xdd178000U, 0x2f3241bbU, true, true, "" },
788    { "global_atomic_smax v47, v[187:188], v65, s[50:51] glc slc\n",
789        0xdd1b8000U, 0x2f3241bbU, true, true, "" },
790    { "global_atomic_umax v47, v[187:188], v65, s[50:51] glc slc\n",
791        0xdd1f8000U, 0x2f3241bbU, true, true, "" },
792    { "global_atomic_and v47, v[187:188], v65, s[50:51] glc slc\n",
793        0xdd238000, 0x2f3241bbU, true, true, "" },
794    { "global_atomic_or v47, v[187:188], v65, s[50:51] glc slc\n",
795        0xdd278000, 0x2f3241bbU, true, true, "" },
796    { "global_atomic_xor v47, v[187:188], v65, s[50:51] glc slc\n",
797        0xdd2b8000, 0x2f3241bbU, true, true, "" },
798    { "global_atomic_inc v47, v[187:188], v65, s[50:51] glc slc\n",
799        0xdd2f8000, 0x2f3241bbU, true, true, "" },
800    { "global_atomic_dec v47, v[187:188], v65, s[50:51] glc slc\n",
801        0xdd338000, 0x2f3241bbU, true, true, "" },
802    { "global_atomic_swap_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
803        0xdd838000U, 0x2f3241bbU, true, true, "" },
804    { "global_atomic_cmpswap_x2 v[47:48], v[187:188], v[65:68], s[50:51] glc slc\n",
805        0xdd878000U, 0x2f3241bbU, true, true, "" },
806    { "global_atomic_add_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
807        0xdd8b8000U, 0x2f3241bbU, true, true, "" },
808    { "global_atomic_sub_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
809        0xdd8f8000U, 0x2f3241bbU, true, true, "" },
810    { "global_atomic_smin_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
811        0xdd938000U, 0x2f3241bbU, true, true, "" },
812    { "global_atomic_umin_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
813        0xdd978000U, 0x2f3241bbU, true, true, "" },
814    { "global_atomic_smax_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
815        0xdd9b8000U, 0x2f3241bbU, true, true, "" },
816    { "global_atomic_umax_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
817        0xdd9f8000U, 0x2f3241bbU, true, true, "" },
818    { "global_atomic_and_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
819        0xdda38000, 0x2f3241bbU, true, true, "" },
820    { "global_atomic_or_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
821        0xdda78000, 0x2f3241bbU, true, true, "" },
822    { "global_atomic_xor_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
823        0xddab8000, 0x2f3241bbU, true, true, "" },
824    { "global_atomic_inc_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
825        0xddaf8000, 0x2f3241bbU, true, true, "" },
826    { "global_atomic_dec_x2 v[47:48], v[187:188], v[65:66], s[50:51] glc slc\n",
827        0xddb38000, 0x2f3241bbU, true, true, "" },
828    { nullptr, 0, 0, false, false, 0 }
829};
Note: See TracBrowser for help on using the repository browser.