R600 -> AMDGPU rename
[oota-llvm.git] / test / MC / AMDGPU / vop2.s
1 // RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI
2 // RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI
3 // RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI
4 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI
5
6 // RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
7 // RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
8 // RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
9 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOVI
10
11 //===----------------------------------------------------------------------===//
12 // Generic Checks for floating-point instructions (These have modifiers).
13 //===----------------------------------------------------------------------===//
14
15 // TODO: 64-bit encoding of instructions with modifiers
16
17 // _e32 suffix
18 // SICI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06]
19 v_add_f32_e32 v1, v2, v3
20
21 // src0 inline immediate
22 // SICI: v_add_f32_e32 v1, 1.0, v3 ; encoding: [0xf2,0x06,0x02,0x06]
23 v_add_f32 v1, 1.0, v3
24
25 // src0 negative inline immediate
26 // SICI: v_add_f32_e32 v1, -1.0, v3 ; encoding: [0xf3,0x06,0x02,0x06]
27 v_add_f32 v1, -1.0, v3
28
29 // src0 literal
30 // SICI: v_add_f32_e32 v1, 0x42c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0x42]
31 v_add_f32 v1, 100.0, v3
32
33 // src0 negative literal
34 // SICI: v_add_f32_e32 v1, 0xc2c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0xc2]
35 v_add_f32 v1, -100.0, v3
36
37 //===----------------------------------------------------------------------===//
38 // Generic Checks for integer instructions (These don't have modifiers).
39 //===----------------------------------------------------------------------===//
40
41 // _e32 suffix
42 // SICI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12]
43 v_mul_i32_i24_e32 v1, v2, v3
44
45 // _e64 suffix
46 // SICI: v_mul_i32_i24_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x02,0x00]
47 v_mul_i32_i24_e64 v1, v2, v3
48
49 // src0 inline
50 // SICI: v_mul_i32_i24_e32 v1, 3, v3 ; encoding: [0x83,0x06,0x02,0x12]
51 v_mul_i32_i24 v1, 3, v3
52
53 // src0 negative inline
54 // SICI: v_mul_i32_i24_e32 v1, -3, v3 ; encoding: [0xc3,0x06,0x02,0x12]
55 v_mul_i32_i24 v1, -3, v3
56
57 // src1 inline
58 // SICI: v_mul_i32_i24_e64 v1, v2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x01,0x00]
59 v_mul_i32_i24 v1, v2, 3
60
61 // src1 negative inline
62 // SICI: v_mul_i32_i24_e64 v1, v2, -3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x87,0x01,0x00]
63 v_mul_i32_i24 v1, v2, -3
64
65 // src0 literal
66 // SICI: v_mul_i32_i24_e32 v1, 0x64, v3 ; encoding: [0xff,0x06,0x02,0x12,0x64,0x00,0x00,0x00]
67 v_mul_i32_i24 v1, 100, v3
68
69 // src1 negative literal
70 // SICI: v_mul_i32_i24_e32 v1, 0xffffff9c, v3 ; encoding: [0xff,0x06,0x02,0x12,0x9c,0xff,0xff,0xff]
71 v_mul_i32_i24 v1, -100, v3
72
73 //===----------------------------------------------------------------------===//
74 // Checks for legal operands
75 //===----------------------------------------------------------------------===//
76
77 // src0 sgpr
78 // SICI: v_mul_i32_i24_e32 v1, s2, v3 ; encoding: [0x02,0x06,0x02,0x12]
79 v_mul_i32_i24 v1, s2, v3
80
81 // src1 sgpr
82 // SICI: v_mul_i32_i24_e64 v1, v2, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x00,0x00]
83 v_mul_i32_i24 v1, v2, s3
84
85 // src0, src1 same sgpr
86 // SICI: v_mul_i32_i24_e64 v1, s2, s2 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x04,0x00,0x00]
87 v_mul_i32_i24 v1, s2, s2
88
89 // src0 sgpr, src1 inline
90 // SICI: v_mul_i32_i24_e64 v1, s2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x06,0x01,0x00]
91 v_mul_i32_i24 v1, s2, 3
92
93 // src0 inline src1 sgpr
94 // SICI: v_mul_i32_i24_e64 v1, 3, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x83,0x06,0x00,0x00]
95 v_mul_i32_i24 v1, 3, s3
96
97 //===----------------------------------------------------------------------===//
98 // Instructions
99 //===----------------------------------------------------------------------===//
100
101 // GCN: v_cndmask_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x00]
102 v_cndmask_b32 v1, v2, v3
103
104 // SICI: v_readlane_b32 s1, v2, s3 ; encoding: [0x02,0x07,0x02,0x02]
105 // VI:   v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00]
106 v_readlane_b32 s1, v2, s3
107
108 // SICI: v_writelane_b32 v1, s2, s3 ; encoding: [0x02,0x06,0x02,0x04]
109 // VI:   v_writelane_b32 v1, s2, s3 ; encoding: [0x01,0x00,0x8a,0xd2,0x02,0x06,0x00,0x00]
110 v_writelane_b32 v1, s2, s3
111
112 // SICI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06]
113 // VI:   v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x02]
114 v_add_f32 v1, v2, v3
115
116 // SICI: v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08]
117 // VI:   v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x04]
118 v_sub_f32 v1, v2, v3
119
120 // SICI: v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a]
121 // VI:   v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06]
122 v_subrev_f32 v1, v2, v3
123
124 // SICI: v_mac_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c]
125 // NOVI: error: instruction not supported on this GPU
126 // NOVI: v_mac_legacy_f32 v1, v2, v3
127 v_mac_legacy_f32 v1, v2, v3
128
129 // SICI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e]
130 // VI:   v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08]
131 v_mul_legacy_f32_e32 v1, v2, v3
132
133 // SICI: v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10]
134 // VI:   v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a]
135 v_mul_f32 v1, v2, v3
136
137 // SICI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12]
138 // VI:   v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c]
139 v_mul_i32_i24 v1, v2, v3
140
141 // SICI: v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14]
142 // VI:   v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e]
143 v_mul_hi_i32_i24 v1, v2, v3
144
145 // SICI: v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16]
146 // VI:   v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10]
147 v_mul_u32_u24 v1, v2, v3
148
149 // SICI: v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18]
150 // VI:   v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12]
151 v_mul_hi_u32_u24 v1, v2, v3
152
153 // SICI: v_min_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a]
154 // NOVI: error: instruction not supported on this GPU
155 // NOVI: v_min_legacy_f32_e32 v1, v2, v3
156 v_min_legacy_f32_e32 v1, v2, v3
157
158 // SICI: v_max_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c]
159 // NOVI: error: instruction not supported on this GPU
160 // NOVI: v_max_legacy_f32 v1, v2, v3
161 v_max_legacy_f32 v1, v2, v3
162
163 // SICI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e]
164 // VI:   v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14]
165 v_min_f32_e32 v1, v2, v3
166
167 // SICI: v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20]
168 // VI:   v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16]
169 v_max_f32 v1, v2 v3
170
171 // SICI: v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22]
172 // VI:   v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18]
173 v_min_i32 v1, v2, v3
174
175 // SICI: v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24]
176 // VI:   v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a]
177 v_max_i32 v1, v2, v3
178
179 // SICI: v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26]
180 // VI:   v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c]
181 v_min_u32 v1, v2, v3
182
183 // SICI: v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28]
184 // VI:   v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e]
185 v_max_u32 v1, v2, v3
186
187 // SICI: v_lshr_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a]
188 // NOVI: error: instruction not supported on this GPU
189 // NOVI: v_lshr_b32 v1, v2, v3
190 v_lshr_b32 v1, v2, v3
191
192 // SICI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c]
193 // VI:   v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20]
194 v_lshrrev_b32 v1, v2, v3
195
196 // SICI: v_ashr_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2e]
197 // NOVI: error: instruction not supported on this GPU
198 // NOVI: v_ashr_i32 v1, v2, v3
199 v_ashr_i32 v1, v2, v3
200
201 // SICI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x30]
202 // VI:   v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22]
203 v_ashrrev_i32 v1, v2, v3
204
205 // SICI: v_lshl_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x32]
206 // NOVI: error: instruction not supported on this GPU
207 // NOVI: v_lshl_b32_e32 v1, v2, v3
208 v_lshl_b32_e32 v1, v2, v3
209
210 // SICI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x34]
211 // VI:   v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24]
212 v_lshlrev_b32 v1, v2, v3
213
214 // SICI: v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x36]
215 // VI:   v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26]
216 v_and_b32 v1, v2, v3
217
218 // SICI: v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x38]
219 // VI:   v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28]
220 v_or_b32 v1, v2, v3
221
222 // SICI: v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3a]
223 // VI:   v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a]
224 v_xor_b32 v1, v2, v3
225
226 // SICI: v_bfm_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3c]
227 // VI:   v_bfm_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x93,0xd2,0x02,0x07,0x02,0x00]
228 v_bfm_b32 v1, v2, v3
229
230 // SICI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e]
231 // VI:   v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c]
232 v_mac_f32 v1, v2, v3
233
234 // SICI: v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x40,0x00,0x00,0x80,0x42]
235 // VI:   v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42]
236 v_madmk_f32 v1, v2, v3, 64.0
237
238 // SICI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x42,0x00,0x00,0x80,0x42]
239 // VI:  v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42]
240 v_madak_f32 v1, v2, v3, 64.0
241
242 // SICI: v_bcnt_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44]
243 // VI:   v_bcnt_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8b,0xd2,0x02,0x07,0x02,0x00]
244 v_bcnt_u32_b32 v1, v2, v3
245
246 // SICI: v_mbcnt_lo_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46]
247 // VI:   v_mbcnt_lo_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8c,0xd2,0x02,0x07,0x02,0x00]
248 v_mbcnt_lo_u32_b32 v1, v2, v3
249
250 // SICI: v_mbcnt_hi_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x48]
251 // VI:   v_mbcnt_hi_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8d,0xd2,0x02,0x07,0x02,0x00]
252 v_mbcnt_hi_u32_b32 v1, v2, v3
253
254 // SICI: v_add_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4a]
255 // VI:   v_add_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x32]
256 v_add_i32 v1, v2, v3
257
258 // SICI: v_add_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4a]
259 // VI:   v_add_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x32]
260 v_add_u32 v1, v2, v3
261
262 // SICI: v_sub_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c]
263 // VI:   v_sub_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x34]
264 v_sub_i32 v1, v2, v3
265
266 // SICI: v_sub_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c]
267 // VI:   v_sub_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x34]
268 v_sub_u32 v1, v2, v3
269
270 // SICI: v_subrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e]
271 // VI:   v_subrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x36]
272 v_subrev_i32 v1, v2, v3
273
274 // SICI: v_subrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e]
275 // VI:   v_subrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x36]
276 v_subrev_u32 v1, v2, v3
277
278 // SICI: v_addc_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50]
279 // VI:   v_addc_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x38]
280 v_addc_u32 v1, v2, v3
281
282 // SICI: v_subb_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52]
283 // VI:   v_subb_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3a]
284 v_subb_u32 v1, v2, v3
285
286 // SICI: v_subbrev_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54]
287 // VI:   v_subbrev_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3c]
288 v_subbrev_u32 v1, v2, v3
289
290 // SICI: v_ldexp_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56]
291 // VI:   v_ldexp_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x88,0xd2,0x02,0x07,0x02,0x00]
292 v_ldexp_f32 v1, v2, v3
293
294 // SICI: v_cvt_pkaccum_u8_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58]
295 // VI:   v_cvt_pkaccum_u8_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0xf0,0xd1,0x02,0x07,0x02,0x00]
296 v_cvt_pkaccum_u8_f32 v1, v2, v3
297
298 // SICI: v_cvt_pknorm_i16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a]
299 // VI:   v_cvt_pknorm_i16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x94,0xd2,0x02,0x07,0x02,0x00]
300 v_cvt_pknorm_i16_f32 v1, v2, v3
301
302 // SICI: v_cvt_pknorm_u16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c]
303 // VI:   v_cvt_pknorm_u16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x95,0xd2,0x02,0x07,0x02,0x00]
304 v_cvt_pknorm_u16_f32 v1, v2, v3
305
306 // SICI: v_cvt_pkrtz_f16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e]
307 // VI:   v_cvt_pkrtz_f16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x96,0xd2,0x02,0x07,0x02,0x00]
308 v_cvt_pkrtz_f16_f32 v1, v2, v3
309
310 // SICI: v_cvt_pk_u16_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60]
311 // VI:   v_cvt_pk_u16_u32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x97,0xd2,0x02,0x07,0x02,0x00]
312 v_cvt_pk_u16_u32 v1, v2, v3
313
314 // SICI: v_cvt_pk_i16_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62]
315 // VI:   v_cvt_pk_i16_i32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x98,0xd2,0x02,0x07,0x02,0x00]
316 v_cvt_pk_i16_i32 v1, v2, v3
317
318 // NOSICI: error: instruction not supported on this GPU
319 // NOSICI: v_add_f16 v1, v2, v3
320 // VI:     v_add_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e]
321 v_add_f16 v1, v2, v3
322
323 // NOSICI: error: instruction not supported on this GPU
324 // NOSICI: v_sub_f16 v1, v2, v3
325 // VI:     v_sub_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x40]
326 v_sub_f16 v1, v2, v3
327
328 // NOSICI: error: instruction not supported on this GPU
329 // NOSICI: v_subrev_f16 v1, v2, v3
330 // VI:     v_subrev_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x42]
331 v_subrev_f16 v1, v2, v3
332
333 // NOSICI: error: instruction not supported on this GPU
334 // NOSICI: v_mul_f16 v1, v2, v3
335 // VI:     v_mul_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44]
336 v_mul_f16 v1, v2, v3
337
338 // NOSICI: error: instruction not supported on this GPU
339 // NOSICI: v_mac_f16 v1, v2, v3
340 // VI:     v_mac_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46]
341 v_mac_f16 v1, v2, v3
342
343 // NOSICI: error: instruction not supported on this GPU
344 // NOSICI: v_madmk_f16 v1, v2, v3, 64.0
345 // VI:     v_madmk_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42]
346 v_madmk_f16 v1, v2, v3, 64.0
347
348 // NOSICI: error: instruction not supported on this GPU
349 // NOSICI: v_madak_f16 v1, v2, v3, 64.0
350 // VI:     v_madak_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x4a,0x00,0x00,0x80,0x42]
351 v_madak_f16 v1, v2, v3, 64.0
352
353 // NOSICI: error: instruction not supported on this GPU
354 // NOSICI: v_add_u16 v1, v2, v3
355 // VI:     v_add_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c]
356 v_add_u16 v1, v2, v3
357
358 // NOSICI: error: instruction not supported on this GPU
359 // NOSICI: v_sub_u16 v1, v2, v3
360 // VI:     v_sub_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e]
361 v_sub_u16 v1, v2, v3
362
363 // NOSICI: error: instruction not supported on this GPU
364 // NOSICI: v_subrev_u16 v1, v2, v3
365 // VI:     v_subrev_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50]
366 v_subrev_u16 v1, v2, v3
367
368 // NOSICI: error: instruction not supported on this GPU
369 // NOSICI: v_mul_lo_u16 v1, v2, v3
370 // VI:     v_mul_lo_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52]
371 v_mul_lo_u16 v1, v2, v3
372
373 // NOSICI: error: instruction not supported on this GPU
374 // NOSICI: v_lshlrev_b16 v1, v2, v3
375 // VI:     v_lshlrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54]
376 v_lshlrev_b16 v1, v2, v3
377
378 // NOSICI: error: instruction not supported on this GPU
379 // NOSICI: v_lshrrev_b16 v1, v2, v3
380 // VI: v_lshrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56]
381 v_lshrrev_b16 v1, v2, v3
382
383 // NOSICI: error: instruction not supported on this GPU
384 // NOSICI: v_ashrrev_b16 v1, v2, v3
385 // VI:     v_ashrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58]
386 v_ashrrev_b16 v1, v2, v3
387
388 // NOSICI: error: instruction not supported on this GPU
389 // NOSICI: v_max_f16 v1, v2, v3
390 // VI:     v_max_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a]
391 v_max_f16 v1, v2, v3
392
393 // NOSICI: error: instruction not supported on this GPU
394 // NOSICI: v_min_f16 v1, v2, v3
395 // VI:     v_min_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c]
396 v_min_f16 v1, v2, v3
397
398 // NOSICI: error: instruction not supported on this GPU
399 // NOSICI: v_max_u16 v1, v2, v3
400 // VI:     v_max_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e]
401 v_max_u16 v1, v2, v3
402
403 // NOSICI: error: instruction not supported on this GPU
404 // NOSICI: v_max_i16 v1, v2, v3
405 // VI:     v_max_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60]
406 v_max_i16 v1, v2, v3
407
408 // NOSICI: error: instruction not supported on this GPU
409 // NOSICI: v_min_u16 v1, v2, v3
410 // VI:     v_min_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62]
411 v_min_u16 v1, v2, v3
412
413 // NOSICI: error: instruction not supported on this GPU
414 // NOSICI: v_min_i16 v1, v2, v3
415 // VI:     v_min_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x64]
416 v_min_i16 v1, v2, v3
417
418 // NOSICI: error: instruction not supported on this GPU
419 // NOSICI: v_ldexp_f16 v1, v2, v3
420 // VI:     v_ldexp_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x66]
421 v_ldexp_f16 v1, v2, v3