Lines Matching refs:VI
3 …for-global -verify-machineinstrs < %s | FileCheck %s -enable-var-scope -check-prefixes=GCN,GFX89,VI
24 ; VI-LABEL: v_test_sub_v2i16:
25 ; VI: ; %bb.0:
26 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
27 ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
28 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
29 ; VI-NEXT: s_waitcnt lgkmcnt(0)
30 ; VI-NEXT: v_mov_b32_e32 v1, s7
31 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v2
32 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
33 ; VI-NEXT: v_mov_b32_e32 v3, s1
34 ; VI-NEXT: v_add_u32_e32 v2, vcc, s0, v2
35 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
36 ; VI-NEXT: flat_load_dword v0, v[0:1]
37 ; VI-NEXT: flat_load_dword v1, v[2:3]
38 ; VI-NEXT: s_mov_b32 s7, 0xf000
39 ; VI-NEXT: s_mov_b32 s6, -1
40 ; VI-NEXT: s_waitcnt vmcnt(0)
41 ; VI-NEXT: v_sub_u16_e32 v2, v0, v1
42 ; VI-NEXT: v_sub_u16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
43 ; VI-NEXT: v_or_b32_e32 v0, v2, v0
44 ; VI-NEXT: buffer_store_dword v0, off, s[4:7], 0
45 ; VI-NEXT: s_endpgm
75 ; VI-LABEL: s_test_sub_v2i16:
76 ; VI: ; %bb.0:
77 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
78 ; VI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34
79 ; VI-NEXT: s_mov_b32 s3, 0xf000
80 ; VI-NEXT: s_mov_b32 s2, -1
81 ; VI-NEXT: s_waitcnt lgkmcnt(0)
82 ; VI-NEXT: s_mov_b32 s0, s4
83 ; VI-NEXT: s_load_dword s4, s[6:7], 0x0
84 ; VI-NEXT: s_load_dword s6, s[8:9], 0x0
85 ; VI-NEXT: s_mov_b32 s1, s5
86 ; VI-NEXT: s_waitcnt lgkmcnt(0)
87 ; VI-NEXT: s_lshr_b32 s5, s4, 16
88 ; VI-NEXT: s_lshr_b32 s7, s6, 16
89 ; VI-NEXT: s_sub_i32 s4, s4, s6
90 ; VI-NEXT: s_sub_i32 s5, s5, s7
91 ; VI-NEXT: s_and_b32 s4, s4, 0xffff
92 ; VI-NEXT: s_lshl_b32 s5, s5, 16
93 ; VI-NEXT: s_or_b32 s4, s4, s5
94 ; VI-NEXT: v_mov_b32_e32 v0, s4
95 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
96 ; VI-NEXT: s_endpgm
120 ; FIXME: VI should not scalarize arg access.
135 ; VI-LABEL: s_test_sub_v2i16_kernarg:
136 ; VI: ; %bb.0:
137 ; VI-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24
138 ; VI-NEXT: s_load_dword s2, s[0:1], 0x2c
139 ; VI-NEXT: s_load_dword s0, s[0:1], 0x30
140 ; VI-NEXT: s_mov_b32 s7, 0xf000
141 ; VI-NEXT: s_mov_b32 s6, -1
142 ; VI-NEXT: s_waitcnt lgkmcnt(0)
143 ; VI-NEXT: s_lshr_b32 s1, s2, 16
144 ; VI-NEXT: s_lshr_b32 s3, s0, 16
145 ; VI-NEXT: s_sub_i32 s1, s1, s3
146 ; VI-NEXT: s_sub_i32 s0, s2, s0
147 ; VI-NEXT: s_lshl_b32 s1, s1, 16
148 ; VI-NEXT: s_and_b32 s0, s0, 0xffff
149 ; VI-NEXT: s_or_b32 s0, s0, s1
150 ; VI-NEXT: v_mov_b32_e32 v0, s0
151 ; VI-NEXT: buffer_store_dword v0, off, s[4:7], 0
152 ; VI-NEXT: s_endpgm
175 ; VI-LABEL: v_test_sub_v2i16_constant:
176 ; VI: ; %bb.0:
177 ; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
178 ; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
179 ; VI-NEXT: s_waitcnt lgkmcnt(0)
180 ; VI-NEXT: v_mov_b32_e32 v1, s3
181 ; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
182 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
183 ; VI-NEXT: flat_load_dword v0, v[0:1]
184 ; VI-NEXT: v_mov_b32_e32 v1, 0xfffffe38
185 ; VI-NEXT: s_mov_b32 s3, 0xf000
186 ; VI-NEXT: s_mov_b32 s2, -1
187 ; VI-NEXT: s_waitcnt vmcnt(0)
188 ; VI-NEXT: v_add_u16_e32 v2, 0xff85, v0
189 ; VI-NEXT: v_add_u16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
190 ; VI-NEXT: v_or_b32_e32 v0, v2, v0
191 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
192 ; VI-NEXT: s_endpgm
220 ; VI-LABEL: v_test_sub_v2i16_neg_constant:
221 ; VI: ; %bb.0:
222 ; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
223 ; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
224 ; VI-NEXT: s_waitcnt lgkmcnt(0)
225 ; VI-NEXT: v_mov_b32_e32 v1, s3
226 ; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
227 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
228 ; VI-NEXT: flat_load_dword v0, v[0:1]
229 ; VI-NEXT: v_mov_b32_e32 v1, 0x3df
230 ; VI-NEXT: s_mov_b32 s3, 0xf000
231 ; VI-NEXT: s_mov_b32 s2, -1
232 ; VI-NEXT: s_waitcnt vmcnt(0)
233 ; VI-NEXT: v_add_u16_e32 v2, 0x34d, v0
234 ; VI-NEXT: v_add_u16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
235 ; VI-NEXT: v_or_b32_e32 v0, v2, v0
236 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
237 ; VI-NEXT: s_endpgm
263 ; VI-LABEL: v_test_sub_v2i16_inline_neg1:
264 ; VI: ; %bb.0:
265 ; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
266 ; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
267 ; VI-NEXT: s_waitcnt lgkmcnt(0)
268 ; VI-NEXT: v_mov_b32_e32 v1, s3
269 ; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
270 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
271 ; VI-NEXT: flat_load_dword v0, v[0:1]
272 ; VI-NEXT: v_mov_b32_e32 v1, 1
273 ; VI-NEXT: s_mov_b32 s3, 0xf000
274 ; VI-NEXT: s_mov_b32 s2, -1
275 ; VI-NEXT: s_waitcnt vmcnt(0)
276 ; VI-NEXT: v_add_u16_e32 v2, 1, v0
277 ; VI-NEXT: v_add_u16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
278 ; VI-NEXT: v_or_b32_e32 v0, v2, v0
279 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
280 ; VI-NEXT: s_endpgm
306 ; VI-LABEL: v_test_sub_v2i16_inline_lo_zero_hi:
307 ; VI: ; %bb.0:
308 ; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
309 ; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
310 ; VI-NEXT: s_waitcnt lgkmcnt(0)
311 ; VI-NEXT: v_mov_b32_e32 v1, s3
312 ; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
313 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
314 ; VI-NEXT: flat_load_dword v0, v[0:1]
315 ; VI-NEXT: s_mov_b32 s3, 0xf000
316 ; VI-NEXT: s_mov_b32 s2, -1
317 ; VI-NEXT: s_waitcnt vmcnt(0)
318 ; VI-NEXT: v_and_b32_e32 v1, 0xffff0000, v0
319 ; VI-NEXT: v_subrev_u16_e32 v0, 32, v0
320 ; VI-NEXT: v_or_b32_e32 v0, v0, v1
321 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
322 ; VI-NEXT: s_endpgm
350 ; VI-LABEL: v_test_sub_v2i16_inline_fp_split:
351 ; VI: ; %bb.0:
352 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
353 ; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
354 ; VI-NEXT: s_mov_b32 s3, 0xf000
355 ; VI-NEXT: s_mov_b32 s2, -1
356 ; VI-NEXT: s_waitcnt lgkmcnt(0)
357 ; VI-NEXT: v_mov_b32_e32 v1, s7
358 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v0
359 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
360 ; VI-NEXT: flat_load_dword v0, v[0:1]
361 ; VI-NEXT: v_mov_b32_e32 v1, 0xffffc080
362 ; VI-NEXT: s_mov_b32 s0, s4
363 ; VI-NEXT: s_mov_b32 s1, s5
364 ; VI-NEXT: s_waitcnt vmcnt(0)
365 ; VI-NEXT: v_add_u16_sdwa v1, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
366 ; VI-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel…
367 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
368 ; VI-NEXT: s_endpgm
397 ; VI-LABEL: v_test_sub_v2i16_zext_to_v2i32:
398 ; VI: ; %bb.0:
399 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
400 ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
401 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
402 ; VI-NEXT: s_waitcnt lgkmcnt(0)
403 ; VI-NEXT: v_mov_b32_e32 v1, s7
404 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v2
405 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
406 ; VI-NEXT: v_mov_b32_e32 v3, s1
407 ; VI-NEXT: v_add_u32_e32 v2, vcc, s0, v2
408 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
409 ; VI-NEXT: flat_load_dword v1, v[0:1]
410 ; VI-NEXT: flat_load_dword v2, v[2:3]
411 ; VI-NEXT: s_mov_b32 s7, 0xf000
412 ; VI-NEXT: s_mov_b32 s6, -1
413 ; VI-NEXT: s_waitcnt vmcnt(0)
414 ; VI-NEXT: v_sub_u16_e32 v0, v1, v2
415 ; VI-NEXT: v_sub_u16_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_se…
416 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0
417 ; VI-NEXT: s_endpgm
451 ; VI-LABEL: v_test_sub_v2i16_zext_to_v2i64:
452 ; VI: ; %bb.0:
453 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
454 ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
455 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
456 ; VI-NEXT: s_waitcnt lgkmcnt(0)
457 ; VI-NEXT: v_mov_b32_e32 v1, s7
458 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v2
459 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
460 ; VI-NEXT: v_mov_b32_e32 v3, s1
461 ; VI-NEXT: v_add_u32_e32 v2, vcc, s0, v2
462 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
463 ; VI-NEXT: flat_load_dword v4, v[0:1]
464 ; VI-NEXT: flat_load_dword v2, v[2:3]
465 ; VI-NEXT: v_mov_b32_e32 v1, 0
466 ; VI-NEXT: s_mov_b32 s7, 0xf000
467 ; VI-NEXT: s_mov_b32 s6, -1
468 ; VI-NEXT: v_mov_b32_e32 v3, v1
469 ; VI-NEXT: s_waitcnt vmcnt(0)
470 ; VI-NEXT: v_sub_u16_e32 v0, v4, v2
471 ; VI-NEXT: v_sub_u16_sdwa v2, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_se…
472 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
473 ; VI-NEXT: s_endpgm
505 ; VI-LABEL: v_test_sub_v2i16_sext_to_v2i32:
506 ; VI: ; %bb.0:
507 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
508 ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
509 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
510 ; VI-NEXT: s_waitcnt lgkmcnt(0)
511 ; VI-NEXT: v_mov_b32_e32 v1, s7
512 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v2
513 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
514 ; VI-NEXT: v_mov_b32_e32 v3, s1
515 ; VI-NEXT: v_add_u32_e32 v2, vcc, s0, v2
516 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
517 ; VI-NEXT: flat_load_dword v0, v[0:1]
518 ; VI-NEXT: flat_load_dword v1, v[2:3]
519 ; VI-NEXT: s_mov_b32 s7, 0xf000
520 ; VI-NEXT: s_mov_b32 s6, -1
521 ; VI-NEXT: s_waitcnt vmcnt(0)
522 ; VI-NEXT: v_sub_u16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_se…
523 ; VI-NEXT: v_sub_u16_e32 v0, v0, v1
524 ; VI-NEXT: v_bfe_i32 v0, v0, 0, 16
525 ; VI-NEXT: v_bfe_i32 v1, v2, 0, 16
526 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0
527 ; VI-NEXT: s_endpgm
562 ; VI-LABEL: v_test_sub_v2i16_sext_to_v2i64:
563 ; VI: ; %bb.0:
564 ; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
565 ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
566 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
567 ; VI-NEXT: s_waitcnt lgkmcnt(0)
568 ; VI-NEXT: v_mov_b32_e32 v1, s7
569 ; VI-NEXT: v_add_u32_e32 v0, vcc, s6, v2
570 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
571 ; VI-NEXT: v_mov_b32_e32 v3, s1
572 ; VI-NEXT: v_add_u32_e32 v2, vcc, s0, v2
573 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
574 ; VI-NEXT: flat_load_dword v0, v[0:1]
575 ; VI-NEXT: flat_load_dword v1, v[2:3]
576 ; VI-NEXT: s_mov_b32 s7, 0xf000
577 ; VI-NEXT: s_mov_b32 s6, -1
578 ; VI-NEXT: s_waitcnt vmcnt(0)
579 ; VI-NEXT: v_sub_u16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_se…
580 ; VI-NEXT: v_sub_u16_e32 v0, v0, v1
581 ; VI-NEXT: v_bfe_i32 v0, v0, 0, 16
582 ; VI-NEXT: v_bfe_i32 v2, v2, 0, 16
583 ; VI-NEXT: v_ashrrev_i32_e32 v1, 31, v0
584 ; VI-NEXT: v_ashrrev_i32_e32 v3, 31, v2
585 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
586 ; VI-NEXT: s_endpgm