1// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
2// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
3// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
4// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
5
6v_lshl_add_u32 v1, v2, v3, v4
7// GFX9: v_lshl_add_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfd,0xd1,0x02,0x07,0x12,0x04]
8// NOVI: :1: error: instruction not supported on this GPU
9
10v_add_lshl_u32 v1, v2, v3, v4
11// GFX9: v_add_lshl_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfe,0xd1,0x02,0x07,0x12,0x04]
12// NOVI: :1: error: instruction not supported on this GPU
13
14v_add3_u32 v1, v2, v3, v4
15// GFX9: v_add3_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xff,0xd1,0x02,0x07,0x12,0x04]
16// NOVI: :1: error: instruction not supported on this GPU
17
18v_lshl_or_b32 v1, v2, v3, v4
19// GFX9: v_lshl_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x00,0xd2,0x02,0x07,0x12,0x04]
20// NOVI: :1: error: instruction not supported on this GPU
21
22v_and_or_b32 v1, v2, v3, v4
23// GFX9: v_and_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x01,0xd2,0x02,0x07,0x12,0x04]
24// NOVI: :1: error: instruction not supported on this GPU
25
26v_or3_b32 v1, v2, v3, v4
27// GFX9: v_or3_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x02,0xd2,0x02,0x07,0x12,0x04]
28// NOVI: :1: error: instruction not supported on this GPU
29
30v_pack_b32_f16 v1, v2, v3
31// GFX9: v_pack_b32_f16 v1, v2, v3 ; encoding: [0x01,0x00,0xa0,0xd2,0x02,0x07,0x02,0x00]
32// NOVI: :1: error: instruction not supported on this GPU
33
34v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0]
35// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0xa0,0xd2,0x01,0x05,0x02,0x00]
36
37v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0]
38// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0] ; encoding: [0x05,0x10,0xa0,0xd2,0x01,0x05,0x02,0x00]
39
40v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1]
41// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1] ; encoding: [0x05,0x40,0xa0,0xd2,0x01,0x05,0x02,0x00]
42
43v_xad_u32 v1, v2, v3, v4
44// GFX9: v_xad_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf3,0xd1,0x02,0x07,0x12,0x04]
45// NOVI: :1: error: instruction not supported on this GPU
46
47v_min3_f16 v1, v2, v3, v4
48// GFX9: v_min3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf4,0xd1,0x02,0x07,0x12,0x04]
49// NOVI: :1: error: instruction not supported on this GPU
50
51v_min3_i16 v1, v2, v3, v4
52// GFX9: v_min3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf5,0xd1,0x02,0x07,0x12,0x04]
53// NOVI: :1: error: instruction not supported on this GPU
54
55v_min3_u16 v1, v2, v3, v4
56// GFX9: v_min3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf6,0xd1,0x02,0x07,0x12,0x04]
57// NOVI: :1: error: instruction not supported on this GPU
58
59v_max3_f16 v1, v2, v3, v4
60// GFX9: v_max3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf7,0xd1,0x02,0x07,0x12,0x04]
61// NOVI: :1: error: instruction not supported on this GPU
62
63v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,0]
64// GFX9: v_max3_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf7,0xd1,0x01,0x05,0x0e,0x04]
65
66v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0]
67// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf7,0xd1,0x01,0x05,0x0e,0x04]
68
69v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0]
70// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf7,0xd1,0x01,0x05,0x0e,0x04]
71
72v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0]
73// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf7,0xd1,0x01,0x05,0x0e,0x04]
74
75v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1]
76// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf7,0xd1,0x01,0x05,0x0e,0x04]
77
78v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1]
79// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf7,0xd1,0x01,0x05,0x0e,0x04]
80
81v_max3_i16 v1, v2, v3, v4
82// GFX9: v_max3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf8,0xd1,0x02,0x07,0x12,0x04]
83// NOVI: :1: error: instruction not supported on this GPU
84
85v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,0]
86// GFX9: v_max3_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf8,0xd1,0x01,0x05,0x0e,0x04]
87
88v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0]
89// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf8,0xd1,0x01,0x05,0x0e,0x04]
90
91v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0]
92// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf8,0xd1,0x01,0x05,0x0e,0x04]
93
94v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0]
95// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf8,0xd1,0x01,0x05,0x0e,0x04]
96
97v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1]
98// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf8,0xd1,0x01,0x05,0x0e,0x04]
99
100v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1]
101// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf8,0xd1,0x01,0x05,0x0e,0x04]
102
103v_max3_u16 v1, v2, v3, v4
104// GFX9: v_max3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf9,0xd1,0x02,0x07,0x12,0x04]
105// NOVI: :1: error: instruction not supported on this GPU
106
107v_med3_f16 v1, v2, v3, v4
108// GFX9: v_med3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfa,0xd1,0x02,0x07,0x12,0x04]
109// NOVI: :1: error: instruction not supported on this GPU
110
111v_med3_i16 v1, v2, v3, v4
112// GFX9: v_med3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfb,0xd1,0x02,0x07,0x12,0x04]
113// NOVI: :1: error: instruction not supported on this GPU
114
115v_med3_u16 v1, v2, v3, v4
116// GFX9: v_med3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfc,0xd1,0x02,0x07,0x12,0x04]
117// NOVI: :1: error: instruction not supported on this GPU
118
119v_mad_u32_u16 v5, v1, v2, v3
120// GFX9: v_mad_u32_u16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf1,0xd1,0x01,0x05,0x0e,0x04]
121
122v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0]
123// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf1,0xd1,0x01,0x05,0x0e,0x04]
124
125v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0]
126// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf1,0xd1,0x01,0x05,0x0e,0x04]
127
128v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0]
129// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf1,0xd1,0x01,0x05,0x0e,0x04]
130
131v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1]
132// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf1,0xd1,0x01,0x05,0x0e,0x04]
133
134v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1]
135// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf1,0xd1,0x01,0x05,0x0e,0x04]
136
137v_mad_i32_i16 v5, v1, v2, v3
138// GFX9: v_mad_i32_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf2,0xd1,0x01,0x05,0x0e,0x04]
139
140v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1]
141// GFX9: v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf2,0xd1,0x01,0x05,0x0e,0x04]
142
143v_cvt_pknorm_i16_f16 v5, v1, v2
144// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00]
145
146v_cvt_pknorm_i16_f16 v5, -v1, v2
147// GFX9: v_cvt_pknorm_i16_f16 v5, -v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x20]
148
149v_cvt_pknorm_i16_f16 v5, v1, -v2
150// GFX9: v_cvt_pknorm_i16_f16 v5, v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x40]
151
152v_cvt_pknorm_i16_f16 v5, -v1, -v2
153// GFX9: v_cvt_pknorm_i16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x60]
154
155v_cvt_pknorm_i16_f16 v5, |v1|, v2
156// GFX9: v_cvt_pknorm_i16_f16 v5, |v1|, v2 ; encoding: [0x05,0x01,0x99,0xd2,0x01,0x05,0x02,0x00]
157
158v_cvt_pknorm_i16_f16 v5, v1, |v2|
159// GFX9: v_cvt_pknorm_i16_f16 v5, v1, |v2| ; encoding: [0x05,0x02,0x99,0xd2,0x01,0x05,0x02,0x00]
160
161v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[0,0,0]
162// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00]
163
164v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0]
165// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x99,0xd2,0x01,0x05,0x02,0x00]
166
167v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1]
168// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x99,0xd2,0x01,0x05,0x02,0x00]
169
170v_cvt_pknorm_u16_f16 v5, -v1, -v2
171// GFX9: v_cvt_pknorm_u16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x9a,0xd2,0x01,0x05,0x02,0x60]
172
173v_cvt_pknorm_u16_f16 v5, |v1|, |v2|
174// GFX9: v_cvt_pknorm_u16_f16 v5, |v1|, |v2| ; encoding: [0x05,0x03,0x9a,0xd2,0x01,0x05,0x02,0x00]
175
176v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1]
177// GFX9: v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9a,0xd2,0x01,0x05,0x02,0x00]
178
179v_add_i16 v5, v1, v2
180// GFX9: v_add_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9e,0xd2,0x01,0x05,0x02,0x00]
181
182v_add_i16 v5, v1, v2 op_sel:[1,1,1]
183// GFX9: v_add_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9e,0xd2,0x01,0x05,0x02,0x00]
184
185v_sub_i16 v5, v1, v2
186// GFX9: v_sub_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9f,0xd2,0x01,0x05,0x02,0x00]
187
188v_sub_i16 v5, v1, v2 op_sel:[1,1,1]
189// GFX9: v_sub_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9f,0xd2,0x01,0x05,0x02,0x00]
190
191v_sub_i16 v5, v1, v2 clamp
192// GFX9: v_sub_i16 v5, v1, v2 clamp ; encoding: [0x05,0x80,0x9f,0xd2,0x01,0x05,0x02,0x00]
193
194v_fma_f16_e64 v5, v1, v2, v3
195// GFX9: v_fma_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x04]
196
197v_fma_f16 v5, v1, -v2, v3
198// GFX9: v_fma_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x44]
199
200v_fma_f16 v5, v1, v2, |v3|
201// GFX9: v_fma_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x06,0xd2,0x01,0x05,0x0e,0x04]
202
203v_fma_f16 v5, v1, v2, v3 clamp
204// GFX9: v_fma_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x06,0xd2,0x01,0x05,0x0e,0x04]
205
206v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0]
207// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x06,0xd2,0x01,0x05,0x0e,0x04]
208
209v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0]
210// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x06,0xd2,0x01,0x05,0x0e,0x04]
211
212v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1]
213// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x06,0xd2,0x01,0x05,0x0e,0x04]
214
215v_fma_legacy_f16_e64 v5, v1, v2, v3
216// GFX9: v_fma_legacy_f16 v5, v1, v2, v3 ; encoding:  [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x04]
217
218v_fma_legacy_f16 v5, -v1, v2, v3
219// GFX9: v_fma_legacy_f16 v5, -v1, v2, v3 ; encoding:  [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x24]
220
221v_fma_legacy_f16 v5, v1, |v2|, v3
222// GFX9: v_fma_legacy_f16 v5, v1, |v2|, v3 ; encoding:  [0x05,0x02,0xee,0xd1,0x01,0x05,0x0e,0x04]
223
224v_fma_legacy_f16 v5, v1, v2, v3 clamp
225// GFX9: v_fma_legacy_f16 v5, v1, v2, v3 clamp ; encoding:  [0x05,0x80,0xee,0xd1,0x01,0x05,0x0e,0x04]
226
227v_div_fixup_f16_e64 v5, 0.5, v2, v3
228// GFX9: v_div_fixup_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0xf0,0x04,0x0e,0x04]
229
230v_div_fixup_f16 v5, v1, 0.5, v3
231// GFX9: v_div_fixup_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0xe1,0x0d,0x04]
232
233v_div_fixup_f16 v5, v1, v2, 0.5
234// GFX9: v_div_fixup_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0xc2,0x03]
235
236v_div_fixup_f16 v5, -v1, v2, v3
237// GFX9: v_div_fixup_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0x0e,0x24]
238
239v_div_fixup_f16 v5, |v1|, v2, v3
240// GFX9: v_div_fixup_f16 v5, |v1|, v2, v3 ; encoding: [0x05,0x01,0x07,0xd2,0x01,0x05,0x0e,0x04]
241
242v_div_fixup_f16 v5, v1, v2, v3 clamp
243// GFX9: v_div_fixup_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x07,0xd2,0x01,0x05,0x0e,0x04]
244
245v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0]
246// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x07,0xd2,0x01,0x05,0x0e,0x04]
247
248v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0]
249// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x07,0xd2,0x01,0x05,0x0e,0x04]
250
251v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1]
252// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x07,0xd2,0x01,0x05,0x0e,0x04]
253
254v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3
255// GFX9: v_div_fixup_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0xf0,0x04,0x0e,0x04]
256
257v_div_fixup_legacy_f16 v5, v1, 0.5, v3
258// GFX9: v_div_fixup_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0xe1,0x0d,0x04]
259
260v_div_fixup_legacy_f16 v5, v1, v2, 0.5
261// GFX9: v_div_fixup_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xc2,0x03]
262
263v_div_fixup_legacy_f16 v5, -v1, v2, v3
264// GFX9: v_div_fixup_legacy_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24]
265
266v_div_fixup_legacy_f16 v5, v1, |v2|, v3
267// GFX9: v_div_fixup_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xef,0xd1,0x01,0x05,0x0e,0x04]
268
269v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp
270// GFX9: v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xef,0xd1,0x01,0x05,0x0e,0x04]
271
272v_mad_f16_e64 v5, 0.5, v2, v3
273// GFX9: v_mad_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0xf0,0x04,0x0e,0x04]
274
275v_mad_f16 v5, v1, 0.5, v3
276// GFX9: v_mad_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0xe1,0x0d,0x04]
277
278v_mad_f16 v5, v1, v2, 0.5
279// GFX9: v_mad_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0xc2,0x03]
280
281v_mad_f16 v5, v1, v2, -v3
282// GFX9: v_mad_f16 v5, v1, v2, -v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x84]
283
284v_mad_f16 v5, v1, v2, |v3|
285// GFX9: v_mad_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x03,0xd2,0x01,0x05,0x0e,0x04]
286
287v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,0]
288// GFX9: v_mad_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x04]
289
290v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0]
291// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x03,0xd2,0x01,0x05,0x0e,0x04]
292
293v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0]
294// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x03,0xd2,0x01,0x05,0x0e,0x04]
295
296v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0]
297// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x03,0xd2,0x01,0x05,0x0e,0x04]
298
299v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1]
300// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x03,0xd2,0x01,0x05,0x0e,0x04]
301
302v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1]
303// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x03,0xd2,0x01,0x05,0x0e,0x04]
304
305v_mad_f16 v5, v1, v2, v3 clamp
306// GFX9: v_mad_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x03,0xd2,0x01,0x05,0x0e,0x04]
307
308v_mad_i16_e64 v5, 0, v2, v3
309// GFX9: v_mad_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x80,0x04,0x0e,0x04]
310
311v_mad_i16 v5, v1, -1, v3
312// GFX9: v_mad_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x01,0x83,0x0d,0x04]
313
314v_mad_i16 v5, v1, v2, -4.0
315// GFX9: v_mad_i16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0x05,0xd2,0x01,0x05,0xde,0x03]
316
317v_mad_i16 v5, v1, v2, v3 clamp
318// GFX9: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x05,0xd2,0x01,0x05,0x0e,0x04]
319
320v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1]
321// GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x05,0xd2,0x01,0x05,0x0e,0x04]
322
323v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1]
324// GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x05,0xd2,0x01,0x05,0x0e,0x04]
325
326v_mad_legacy_f16_e64 v5, 0.5, v2, v3
327// GFX9: v_mad_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0xf0,0x04,0x0e,0x04]
328
329v_mad_legacy_f16 v5, v1, 0.5, v3
330// GFX9: v_mad_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0xe1,0x0d,0x04]
331
332v_mad_legacy_f16 v5, v1, v2, 0.5
333// GFX9: v_mad_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0xc2,0x03]
334
335v_mad_legacy_f16 v5, v1, -v2, v3
336// GFX9: v_mad_legacy_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44]
337
338v_mad_legacy_f16 v5, v1, |v2|, v3
339// GFX9: v_mad_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xea,0xd1,0x01,0x05,0x0e,0x04]
340
341v_mad_legacy_f16 v5, v1, v2, v3 clamp
342// GFX9: v_mad_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xea,0xd1,0x01,0x05,0x0e,0x04]
343
344v_mad_legacy_i16_e64 v5, 0, v2, v3
345// GFX9: v_mad_legacy_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x80,0x04,0x0e,0x04]
346
347v_mad_legacy_i16 v5, v1, -1, v3
348// GFX9: v_mad_legacy_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x83,0x0d,0x04]
349
350v_mad_legacy_i16 v5, v1, v2, -4.0
351// GFX9: v_mad_legacy_i16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x05,0xde,0x03]
352
353v_mad_legacy_i16 v5, v1, v2, -4.0 clamp
354// GFX9: v_mad_legacy_i16 v5, v1, v2, -4.0 clamp ; encoding: [0x05,0x80,0xec,0xd1,0x01,0x05,0xde,0x03]
355
356v_mad_legacy_u16_e64 v5, 0, v2, v3
357// GFX9: v_mad_legacy_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x80,0x04,0x0e,0x04]
358
359v_mad_legacy_u16 v5, v1, -1, v3
360// GFX9: v_mad_legacy_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x83,0x0d,0x04]
361
362v_mad_legacy_u16 v5, v1, v2, -4.0
363// GFX9: v_mad_legacy_u16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x05,0xde,0x03]
364
365v_mad_legacy_u16 v5, v1, v2, -4.0 clamp
366// GFX9: v_mad_legacy_u16 v5, v1, v2, -4.0 clamp ; encoding: [0x05,0x80,0xeb,0xd1,0x01,0x05,0xde,0x03]
367
368v_mad_u16_e64 v5, 0, v2, v3
369// GFX9: v_mad_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x80,0x04,0x0e,0x04]
370
371v_mad_u16 v5, v1, -1, v3
372// GFX9: v_mad_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x01,0x83,0x0d,0x04]
373
374v_mad_u16 v5, v1, v2, -4.0
375// GFX9: v_mad_u16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0x04,0xd2,0x01,0x05,0xde,0x03]
376
377v_mad_u16 v5, v1, v2, v3 clamp
378// GFX9: v_mad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x04,0xd2,0x01,0x05,0x0e,0x04]
379
380v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0]
381// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x04,0xd2,0x01,0x05,0x0e,0x04]
382
383v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1]
384// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x04,0xd2,0x01,0x05,0x0e,0x04]
385
386v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1]
387// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x04,0xd2,0x01,0x05,0x0e,0x04]
388
389v_interp_p2_f16 v5, v2, attr0.x, v3
390// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x04]
391
392v_interp_p2_f16 v5, -v2, attr0.x, v3
393// GFX9: v_interp_p2_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x44]
394
395v_interp_p2_f16 v5, v2, attr0.x, |v3|
396// GFX9: v_interp_p2_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x77,0xd2,0x00,0x04,0x0e,0x04]
397
398v_interp_p2_f16 v5, v2, attr0.w, v3
399// GFX9: v_interp_p2_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x77,0xd2,0xc0,0x04,0x0e,0x04]
400
401v_interp_p2_f16 v5, v2, attr0.x, v3 high
402// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x05,0x0e,0x04]
403
404v_interp_p2_f16 v5, v2, attr0.x, v3 clamp
405// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x77,0xd2,0x00,0x04,0x0e,0x04]
406
407v_interp_p2_legacy_f16 v5, v2, attr31.x, v3
408// GFX9: v_interp_p2_legacy_f16 v5, v2, attr31.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x1f,0x04,0x0e,0x04]
409
410v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3
411// GFX9: v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x44]
412
413v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3|
414// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x76,0xd2,0x00,0x04,0x0e,0x04]
415
416v_interp_p2_legacy_f16 v5, v2, attr0.w, v3
417// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x76,0xd2,0xc0,0x04,0x0e,0x04]
418
419v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high
420// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x05,0x0e,0x04]
421
422v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp
423// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x76,0xd2,0x00,0x04,0x0e,0x04]
424
425v_cvt_norm_i16_f16_e64 v5, -v1
426// GFX9: v_cvt_norm_i16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8d,0xd1,0x01,0x01,0x00,0x20]
427// NOVI: error: instruction not supported on this GPU
428
429v_cvt_norm_i16_f16_e64 v5, |v1|
430// GFX9: v_cvt_norm_i16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8d,0xd1,0x01,0x01,0x00,0x00]
431// NOVI: error: instruction not supported on this GPU
432
433v_cvt_norm_u16_f16_e64 v5, -v1
434// GFX9: v_cvt_norm_u16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8e,0xd1,0x01,0x01,0x00,0x20]
435// NOVI: error: instruction not supported on this GPU
436
437v_cvt_norm_u16_f16_e64 v5, |v1|
438// GFX9: v_cvt_norm_u16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8e,0xd1,0x01,0x01,0x00,0x00]
439// NOVI: error: instruction not supported on this GPU
440
441v_sat_pk_u8_i16_e64 v5, -1
442// GFX9: v_sat_pk_u8_i16_e64 v5, -1 ; encoding: [0x05,0x00,0x8f,0xd1,0xc1,0x00,0x00,0x00]
443// NOVI: error: instruction not supported on this GPU
444
445v_sat_pk_u8_i16_e64 v5, v255
446// GFX9: v_sat_pk_u8_i16_e64 v5, v255 ; encoding: [0x05,0x00,0x8f,0xd1,0xff,0x01,0x00,0x00]
447// NOVI: error: instruction not supported on this GPU
448
449v_screen_partition_4se_b32_e64 v5, v1
450// GXF9: [0x05,0x00,0x77,0xd1,0x01,0x01,0x00,0x00]
451// NOVI: error: instruction not supported on this GPU
452
453v_screen_partition_4se_b32_e64 v5, -1
454// GXF9: [0x05,0x00,0x77,0xd1,0xc1,0x00,0x00,0x00]
455// NOVI: error: instruction not supported on this GPU
456