1 // RUN
: llvm-mc
-arch
=amdgcn
-mcpu
=gfx1200
-mattr
=+wavefrontsize64
-show-encoding
%s
2>&1 | FileCheck
--check-prefix
=GFX12
%s
3 v_cmpx_class_f16 v1
, v255
4 // GFX12
: v_cmpx_class_f16_e64
7 // GFX12
: v_cmpx_eq_f16_e64
10 // GFX12
: v_cmpx_eq_i16_e64
12 v_cmpx_eq_u16 v1
, v255
13 // GFX12
: v_cmpx_eq_u16_e64
15 v_cmpx_ge_f16 v1
, v255
16 // GFX12
: v_cmpx_ge_f16_e64
18 v_cmpx_ge_i16 v1
, v255
19 // GFX12
: v_cmpx_ge_i16_e64
21 v_cmpx_ge_u16 v1
, v255
22 // GFX12
: v_cmpx_ge_u16_e64
24 v_cmpx_gt_f16 v1
, v255
25 // GFX12
: v_cmpx_gt_f16_e64
27 v_cmpx_gt_i16 v1
, v255
28 // GFX12
: v_cmpx_gt_i16_e64
30 v_cmpx_gt_u16 v1
, v255
31 // GFX12
: v_cmpx_gt_u16_e64
33 v_cmpx_le_f16 v1
, v255
34 // GFX12
: v_cmpx_le_f16_e64
36 v_cmpx_le_i16 v1
, v255
37 // GFX12
: v_cmpx_le_i16_e64
39 v_cmpx_le_u16 v1
, v255
40 // GFX12
: v_cmpx_le_u16_e64
42 v_cmpx_lg_f16 v1
, v255
43 // GFX12
: v_cmpx_lg_f16_e64
45 v_cmpx_lt_f16 v1
, v255
46 // GFX12
: v_cmpx_lt_f16_e64
48 v_cmpx_lt_i16 v1
, v255
49 // GFX12
: v_cmpx_lt_i16_e64
51 v_cmpx_lt_u16 v1
, v255
52 // GFX12
: v_cmpx_lt_u16_e64
54 v_cmpx_ne_i16 v1
, v255
55 // GFX12
: v_cmpx_ne_i16_e64
57 v_cmpx_ne_u16 v1
, v255
58 // GFX12
: v_cmpx_ne_u16_e64
60 v_cmpx_neq_f16 v1
, v255
61 // GFX12
: v_cmpx_neq_f16_e64
63 v_cmpx_nge_f16 v1
, v255
64 // GFX12
: v_cmpx_nge_f16_e64
66 v_cmpx_ngt_f16 v1
, v255
67 // GFX12
: v_cmpx_ngt_f16_e64
69 v_cmpx_nle_f16 v1
, v255
70 // GFX12
: v_cmpx_nle_f16_e64
72 v_cmpx_nlg_f16 v1
, v255
73 // GFX12
: v_cmpx_nlg_f16_e64
75 v_cmpx_nlt_f16 v1
, v255
76 // GFX12
: v_cmpx_nlt_f16_e64
79 // GFX12
: v_cmpx_o_f16_e64
82 // GFX12
: v_cmpx_u_f16_e64
84 v_cmpx_class_f16 v255
, v2
85 // GFX12
: v_cmpx_class_f16_e64
87 v_cmpx_eq_f16 v255
, v2
88 // GFX12
: v_cmpx_eq_f16_e64
90 v_cmpx_eq_i16 v255
, v2
91 // GFX12
: v_cmpx_eq_i16_e64
93 v_cmpx_eq_u16 v255
, v2
94 // GFX12
: v_cmpx_eq_u16_e64
96 v_cmpx_ge_f16 v255
, v2
97 // GFX12
: v_cmpx_ge_f16_e64
99 v_cmpx_ge_i16 v255
, v2
100 // GFX12
: v_cmpx_ge_i16_e64
102 v_cmpx_ge_u16 v255
, v2
103 // GFX12
: v_cmpx_ge_u16_e64
105 v_cmpx_gt_f16 v255
, v2
106 // GFX12
: v_cmpx_gt_f16_e64
108 v_cmpx_gt_i16 v255
, v2
109 // GFX12
: v_cmpx_gt_i16_e64
111 v_cmpx_gt_u16 v255
, v2
112 // GFX12
: v_cmpx_gt_u16_e64
114 v_cmpx_le_f16 v255
, v2
115 // GFX12
: v_cmpx_le_f16_e64
117 v_cmpx_le_i16 v255
, v2
118 // GFX12
: v_cmpx_le_i16_e64
120 v_cmpx_le_u16 v255
, v2
121 // GFX12
: v_cmpx_le_u16_e64
123 v_cmpx_lg_f16 v255
, v2
124 // GFX12
: v_cmpx_lg_f16_e64
126 v_cmpx_lt_f16 v255
, v2
127 // GFX12
: v_cmpx_lt_f16_e64
129 v_cmpx_lt_i16 v255
, v2
130 // GFX12
: v_cmpx_lt_i16_e64
132 v_cmpx_lt_u16 v255
, v2
133 // GFX12
: v_cmpx_lt_u16_e64
135 v_cmpx_ne_i16 v255
, v2
136 // GFX12
: v_cmpx_ne_i16_e64
138 v_cmpx_ne_u16 v255
, v2
139 // GFX12
: v_cmpx_ne_u16_e64
141 v_cmpx_neq_f16 v255
, v2
142 // GFX12
: v_cmpx_neq_f16_e64
144 v_cmpx_nge_f16 v255
, v2
145 // GFX12
: v_cmpx_nge_f16_e64
147 v_cmpx_ngt_f16 v255
, v2
148 // GFX12
: v_cmpx_ngt_f16_e64
150 v_cmpx_nle_f16 v255
, v2
151 // GFX12
: v_cmpx_nle_f16_e64
153 v_cmpx_nlg_f16 v255
, v2
154 // GFX12
: v_cmpx_nlg_f16_e64
156 v_cmpx_nlt_f16 v255
, v2
157 // GFX12
: v_cmpx_nlt_f16_e64
159 v_cmpx_o_f16 v255
, v2
160 // GFX12
: v_cmpx_o_f16_e64
162 v_cmpx_u_f16 v255
, v2
163 // GFX12
: v_cmpx_u_f16_e64
165 v_cmpx_class_f16 v1
, v255 quad_perm
:[3,2,1,0]
166 // GFX12
: v_cmpx_class_f16_e64
168 v_cmpx_eq_f16 v1
, v255 quad_perm
:[3,2,1,0]
169 // GFX12
: v_cmpx_eq_f16_e64
171 v_cmpx_eq_i16 v1
, v255 quad_perm
:[3,2,1,0]
172 // GFX12
: v_cmpx_eq_i16_e64
174 v_cmpx_eq_u16 v1
, v255 quad_perm
:[3,2,1,0]
175 // GFX12
: v_cmpx_eq_u16_e64
177 v_cmpx_ge_f16 v1
, v255 quad_perm
:[3,2,1,0]
178 // GFX12
: v_cmpx_ge_f16_e64
180 v_cmpx_ge_i16 v1
, v255 quad_perm
:[3,2,1,0]
181 // GFX12
: v_cmpx_ge_i16_e64
183 v_cmpx_ge_u16 v1
, v255 quad_perm
:[3,2,1,0]
184 // GFX12
: v_cmpx_ge_u16_e64
186 v_cmpx_gt_f16 v1
, v255 quad_perm
:[3,2,1,0]
187 // GFX12
: v_cmpx_gt_f16_e64
189 v_cmpx_gt_i16 v1
, v255 quad_perm
:[3,2,1,0]
190 // GFX12
: v_cmpx_gt_i16_e64
192 v_cmpx_gt_u16 v1
, v255 quad_perm
:[3,2,1,0]
193 // GFX12
: v_cmpx_gt_u16_e64
195 v_cmpx_le_f16 v1
, v255 quad_perm
:[3,2,1,0]
196 // GFX12
: v_cmpx_le_f16_e64
198 v_cmpx_le_i16 v1
, v255 quad_perm
:[3,2,1,0]
199 // GFX12
: v_cmpx_le_i16_e64
201 v_cmpx_le_u16 v1
, v255 quad_perm
:[3,2,1,0]
202 // GFX12
: v_cmpx_le_u16_e64
204 v_cmpx_lg_f16 v1
, v255 quad_perm
:[3,2,1,0]
205 // GFX12
: v_cmpx_lg_f16_e64
207 v_cmpx_lt_f16 v1
, v255 quad_perm
:[3,2,1,0]
208 // GFX12
: v_cmpx_lt_f16_e64
210 v_cmpx_lt_i16 v1
, v255 quad_perm
:[3,2,1,0]
211 // GFX12
: v_cmpx_lt_i16_e64
213 v_cmpx_lt_u16 v1
, v255 quad_perm
:[3,2,1,0]
214 // GFX12
: v_cmpx_lt_u16_e64
216 v_cmpx_ne_i16 v1
, v255 quad_perm
:[3,2,1,0]
217 // GFX12
: v_cmpx_ne_i16_e64
219 v_cmpx_ne_u16 v1
, v255 quad_perm
:[3,2,1,0]
220 // GFX12
: v_cmpx_ne_u16_e64
222 v_cmpx_neq_f16 v1
, v255 quad_perm
:[3,2,1,0]
223 // GFX12
: v_cmpx_neq_f16_e64
225 v_cmpx_nge_f16 v1
, v255 quad_perm
:[3,2,1,0]
226 // GFX12
: v_cmpx_nge_f16_e64
228 v_cmpx_ngt_f16 v1
, v255 quad_perm
:[3,2,1,0]
229 // GFX12
: v_cmpx_ngt_f16_e64
231 v_cmpx_nle_f16 v1
, v255 quad_perm
:[3,2,1,0]
232 // GFX12
: v_cmpx_nle_f16_e64
234 v_cmpx_nlg_f16 v1
, v255 quad_perm
:[3,2,1,0]
235 // GFX12
: v_cmpx_nlg_f16_e64
237 v_cmpx_nlt_f16 v1
, v255 quad_perm
:[3,2,1,0]
238 // GFX12
: v_cmpx_nlt_f16_e64
240 v_cmpx_o_f16 v1
, v255 quad_perm
:[3,2,1,0]
241 // GFX12
: v_cmpx_o_f16_e64
243 v_cmpx_u_f16 v1
, v255 quad_perm
:[3,2,1,0]
244 // GFX12
: v_cmpx_u_f16_e64
246 v_cmpx_class_f16 v255
, v2 quad_perm
:[3,2,1,0]
247 // GFX12
: v_cmpx_class_f16_e64
249 v_cmpx_eq_f16 v255
, v2 quad_perm
:[3,2,1,0]
250 // GFX12
: v_cmpx_eq_f16_e64
252 v_cmpx_eq_i16 v255
, v2 quad_perm
:[3,2,1,0]
253 // GFX12
: v_cmpx_eq_i16_e64
255 v_cmpx_eq_u16 v255
, v2 quad_perm
:[3,2,1,0]
256 // GFX12
: v_cmpx_eq_u16_e64
258 v_cmpx_ge_f16 v255
, v2 quad_perm
:[3,2,1,0]
259 // GFX12
: v_cmpx_ge_f16_e64
261 v_cmpx_ge_i16 v255
, v2 quad_perm
:[3,2,1,0]
262 // GFX12
: v_cmpx_ge_i16_e64
264 v_cmpx_ge_u16 v255
, v2 quad_perm
:[3,2,1,0]
265 // GFX12
: v_cmpx_ge_u16_e64
267 v_cmpx_gt_f16 v255
, v2 quad_perm
:[3,2,1,0]
268 // GFX12
: v_cmpx_gt_f16_e64
270 v_cmpx_gt_i16 v255
, v2 quad_perm
:[3,2,1,0]
271 // GFX12
: v_cmpx_gt_i16_e64
273 v_cmpx_gt_u16 v255
, v2 quad_perm
:[3,2,1,0]
274 // GFX12
: v_cmpx_gt_u16_e64
276 v_cmpx_le_f16 v255
, v2 quad_perm
:[3,2,1,0]
277 // GFX12
: v_cmpx_le_f16_e64
279 v_cmpx_le_i16 v255
, v2 quad_perm
:[3,2,1,0]
280 // GFX12
: v_cmpx_le_i16_e64
282 v_cmpx_le_u16 v255
, v2 quad_perm
:[3,2,1,0]
283 // GFX12
: v_cmpx_le_u16_e64
285 v_cmpx_lg_f16 v255
, v2 quad_perm
:[3,2,1,0]
286 // GFX12
: v_cmpx_lg_f16_e64
288 v_cmpx_lt_f16 v255
, v2 quad_perm
:[3,2,1,0]
289 // GFX12
: v_cmpx_lt_f16_e64
291 v_cmpx_lt_i16 v255
, v2 quad_perm
:[3,2,1,0]
292 // GFX12
: v_cmpx_lt_i16_e64
294 v_cmpx_lt_u16 v255
, v2 quad_perm
:[3,2,1,0]
295 // GFX12
: v_cmpx_lt_u16_e64
297 v_cmpx_ne_i16 v255
, v2 quad_perm
:[3,2,1,0]
298 // GFX12
: v_cmpx_ne_i16_e64
300 v_cmpx_ne_u16 v255
, v2 quad_perm
:[3,2,1,0]
301 // GFX12
: v_cmpx_ne_u16_e64
303 v_cmpx_neq_f16 v255
, v2 quad_perm
:[3,2,1,0]
304 // GFX12
: v_cmpx_neq_f16_e64
306 v_cmpx_nge_f16 v255
, v2 quad_perm
:[3,2,1,0]
307 // GFX12
: v_cmpx_nge_f16_e64
309 v_cmpx_ngt_f16 v255
, v2 quad_perm
:[3,2,1,0]
310 // GFX12
: v_cmpx_ngt_f16_e64
312 v_cmpx_nle_f16 v255
, v2 quad_perm
:[3,2,1,0]
313 // GFX12
: v_cmpx_nle_f16_e64
315 v_cmpx_nlg_f16 v255
, v2 quad_perm
:[3,2,1,0]
316 // GFX12
: v_cmpx_nlg_f16_e64
318 v_cmpx_nlt_f16 v255
, v2 quad_perm
:[3,2,1,0]
319 // GFX12
: v_cmpx_nlt_f16_e64
321 v_cmpx_o_f16 v255
, v2 quad_perm
:[3,2,1,0]
322 // GFX12
: v_cmpx_o_f16_e64
324 v_cmpx_u_f16 v255
, v2 quad_perm
:[3,2,1,0]
325 // GFX12
: v_cmpx_u_f16_e64
327 v_cmpx_class_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
328 // GFX12
: v_cmpx_class_f16_e64
330 v_cmpx_eq_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
331 // GFX12
: v_cmpx_eq_f16_e64
333 v_cmpx_eq_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
334 // GFX12
: v_cmpx_eq_i16_e64
336 v_cmpx_eq_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
337 // GFX12
: v_cmpx_eq_u16_e64
339 v_cmpx_ge_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
340 // GFX12
: v_cmpx_ge_f16_e64
342 v_cmpx_ge_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
343 // GFX12
: v_cmpx_ge_i16_e64
345 v_cmpx_ge_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
346 // GFX12
: v_cmpx_ge_u16_e64
348 v_cmpx_gt_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
349 // GFX12
: v_cmpx_gt_f16_e64
351 v_cmpx_gt_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
352 // GFX12
: v_cmpx_gt_i16_e64
354 v_cmpx_gt_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
355 // GFX12
: v_cmpx_gt_u16_e64
357 v_cmpx_le_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
358 // GFX12
: v_cmpx_le_f16_e64
360 v_cmpx_le_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
361 // GFX12
: v_cmpx_le_i16_e64
363 v_cmpx_le_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
364 // GFX12
: v_cmpx_le_u16_e64
366 v_cmpx_lg_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
367 // GFX12
: v_cmpx_lg_f16_e64
369 v_cmpx_lt_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
370 // GFX12
: v_cmpx_lt_f16_e64
372 v_cmpx_lt_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
373 // GFX12
: v_cmpx_lt_i16_e64
375 v_cmpx_lt_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
376 // GFX12
: v_cmpx_lt_u16_e64
378 v_cmpx_ne_i16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
379 // GFX12
: v_cmpx_ne_i16_e64
381 v_cmpx_ne_u16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
382 // GFX12
: v_cmpx_ne_u16_e64
384 v_cmpx_neq_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
385 // GFX12
: v_cmpx_neq_f16_e64
387 v_cmpx_nge_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
388 // GFX12
: v_cmpx_nge_f16_e64
390 v_cmpx_ngt_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
391 // GFX12
: v_cmpx_ngt_f16_e64
393 v_cmpx_nle_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
394 // GFX12
: v_cmpx_nle_f16_e64
396 v_cmpx_nlg_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
397 // GFX12
: v_cmpx_nlg_f16_e64
399 v_cmpx_nlt_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
400 // GFX12
: v_cmpx_nlt_f16_e64
402 v_cmpx_o_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
403 // GFX12
: v_cmpx_o_f16_e64
405 v_cmpx_u_f16 v1
, v255 dpp8
:[7,6,5,4,3,2,1,0]
406 // GFX12
: v_cmpx_u_f16_e64
408 v_cmpx_class_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
409 // GFX12
: v_cmpx_class_f16_e64
411 v_cmpx_eq_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
412 // GFX12
: v_cmpx_eq_f16_e64
414 v_cmpx_eq_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
415 // GFX12
: v_cmpx_eq_i16_e64
417 v_cmpx_eq_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
418 // GFX12
: v_cmpx_eq_u16_e64
420 v_cmpx_ge_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
421 // GFX12
: v_cmpx_ge_f16_e64
423 v_cmpx_ge_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
424 // GFX12
: v_cmpx_ge_i16_e64
426 v_cmpx_ge_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
427 // GFX12
: v_cmpx_ge_u16_e64
429 v_cmpx_gt_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
430 // GFX12
: v_cmpx_gt_f16_e64
432 v_cmpx_gt_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
433 // GFX12
: v_cmpx_gt_i16_e64
435 v_cmpx_gt_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
436 // GFX12
: v_cmpx_gt_u16_e64
438 v_cmpx_le_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
439 // GFX12
: v_cmpx_le_f16_e64
441 v_cmpx_le_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
442 // GFX12
: v_cmpx_le_i16_e64
444 v_cmpx_le_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
445 // GFX12
: v_cmpx_le_u16_e64
447 v_cmpx_lg_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
448 // GFX12
: v_cmpx_lg_f16_e64
450 v_cmpx_lt_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
451 // GFX12
: v_cmpx_lt_f16_e64
453 v_cmpx_lt_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
454 // GFX12
: v_cmpx_lt_i16_e64
456 v_cmpx_lt_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
457 // GFX12
: v_cmpx_lt_u16_e64
459 v_cmpx_ne_i16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
460 // GFX12
: v_cmpx_ne_i16_e64
462 v_cmpx_ne_u16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
463 // GFX12
: v_cmpx_ne_u16_e64
465 v_cmpx_neq_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
466 // GFX12
: v_cmpx_neq_f16_e64
468 v_cmpx_nge_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
469 // GFX12
: v_cmpx_nge_f16_e64
471 v_cmpx_ngt_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
472 // GFX12
: v_cmpx_ngt_f16_e64
474 v_cmpx_nle_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
475 // GFX12
: v_cmpx_nle_f16_e64
477 v_cmpx_nlg_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
478 // GFX12
: v_cmpx_nlg_f16_e64
480 v_cmpx_nlt_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
481 // GFX12
: v_cmpx_nlt_f16_e64
483 v_cmpx_o_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
484 // GFX12
: v_cmpx_o_f16_e64
486 v_cmpx_u_f16 v255
, v2 dpp8
:[7,6,5,4,3,2,1,0]
487 // GFX12
: v_cmpx_u_f16_e64