Lines Matching refs:SI
2 …-loads=false -mtriple=amdgcn-- -mcpu=tahiti -verify-machineinstrs | FileCheck %s --check-prefix=SI
6 ; SI-LABEL: select_f16:
7 ; SI: ; %bb.0: ; %entry
8 ; SI-NEXT: s_load_dwordx8 s[4:11], s[0:1], 0x9
9 ; SI-NEXT: s_mov_b32 s3, 0xf000
10 ; SI-NEXT: s_mov_b32 s2, -1
11 ; SI-NEXT: s_load_dwordx2 s[12:13], s[0:1], 0x11
12 ; SI-NEXT: s_mov_b32 s18, s2
13 ; SI-NEXT: s_waitcnt lgkmcnt(0)
14 ; SI-NEXT: s_mov_b32 s16, s6
15 ; SI-NEXT: s_mov_b32 s17, s7
16 ; SI-NEXT: s_mov_b32 s19, s3
17 ; SI-NEXT: s_mov_b32 s20, s8
18 ; SI-NEXT: s_mov_b32 s21, s9
19 ; SI-NEXT: s_mov_b32 s22, s2
20 ; SI-NEXT: s_mov_b32 s23, s3
21 ; SI-NEXT: s_mov_b32 s8, s10
22 ; SI-NEXT: s_mov_b32 s9, s11
23 ; SI-NEXT: s_mov_b32 s10, s2
24 ; SI-NEXT: s_mov_b32 s11, s3
25 ; SI-NEXT: s_mov_b32 s14, s2
26 ; SI-NEXT: s_mov_b32 s15, s3
27 ; SI-NEXT: buffer_load_ushort v0, off, s[16:19], 0 glc
28 ; SI-NEXT: s_waitcnt vmcnt(0)
29 ; SI-NEXT: buffer_load_ushort v1, off, s[20:23], 0 glc
30 ; SI-NEXT: s_waitcnt vmcnt(0)
31 ; SI-NEXT: buffer_load_ushort v2, off, s[8:11], 0 glc
32 ; SI-NEXT: s_waitcnt vmcnt(0)
33 ; SI-NEXT: buffer_load_ushort v3, off, s[12:15], 0 glc
34 ; SI-NEXT: s_waitcnt vmcnt(0)
35 ; SI-NEXT: s_mov_b32 s0, s4
36 ; SI-NEXT: s_mov_b32 s1, s5
37 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
38 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
39 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
40 ; SI-NEXT: v_cvt_f32_f16_e32 v3, v3
41 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
42 ; SI-NEXT: v_cndmask_b32_e32 v0, v3, v2, vcc
43 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
44 ; SI-NEXT: buffer_store_short v0, off, s[0:3], 0
45 ; SI-NEXT: s_endpgm
99 ; SI-LABEL: select_f16_imm_a:
100 ; SI: ; %bb.0: ; %entry
101 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
102 ; SI-NEXT: s_mov_b32 s11, 0xf000
103 ; SI-NEXT: s_mov_b32 s10, -1
104 ; SI-NEXT: s_mov_b32 s14, s10
105 ; SI-NEXT: s_mov_b32 s15, s11
106 ; SI-NEXT: s_waitcnt lgkmcnt(0)
107 ; SI-NEXT: s_mov_b32 s12, s2
108 ; SI-NEXT: s_mov_b32 s13, s3
109 ; SI-NEXT: s_mov_b32 s16, s4
110 ; SI-NEXT: s_mov_b32 s17, s5
111 ; SI-NEXT: s_mov_b32 s18, s10
112 ; SI-NEXT: s_mov_b32 s19, s11
113 ; SI-NEXT: s_mov_b32 s4, s6
114 ; SI-NEXT: s_mov_b32 s5, s7
115 ; SI-NEXT: s_mov_b32 s6, s10
116 ; SI-NEXT: s_mov_b32 s7, s11
117 ; SI-NEXT: buffer_load_ushort v0, off, s[12:15], 0 glc
118 ; SI-NEXT: s_waitcnt vmcnt(0)
119 ; SI-NEXT: buffer_load_ushort v1, off, s[16:19], 0 glc
120 ; SI-NEXT: s_waitcnt vmcnt(0)
121 ; SI-NEXT: buffer_load_ushort v2, off, s[4:7], 0 glc
122 ; SI-NEXT: s_waitcnt vmcnt(0)
123 ; SI-NEXT: s_mov_b32 s8, s0
124 ; SI-NEXT: s_mov_b32 s9, s1
125 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
126 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
127 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
128 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, 0.5, v0
129 ; SI-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc
130 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
131 ; SI-NEXT: buffer_store_short v0, off, s[8:11], 0
132 ; SI-NEXT: s_endpgm
179 ; SI-LABEL: select_f16_imm_b:
180 ; SI: ; %bb.0: ; %entry
181 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
182 ; SI-NEXT: s_mov_b32 s11, 0xf000
183 ; SI-NEXT: s_mov_b32 s10, -1
184 ; SI-NEXT: s_mov_b32 s14, s10
185 ; SI-NEXT: s_mov_b32 s15, s11
186 ; SI-NEXT: s_waitcnt lgkmcnt(0)
187 ; SI-NEXT: s_mov_b32 s12, s2
188 ; SI-NEXT: s_mov_b32 s13, s3
189 ; SI-NEXT: s_mov_b32 s16, s4
190 ; SI-NEXT: s_mov_b32 s17, s5
191 ; SI-NEXT: s_mov_b32 s18, s10
192 ; SI-NEXT: s_mov_b32 s19, s11
193 ; SI-NEXT: s_mov_b32 s4, s6
194 ; SI-NEXT: s_mov_b32 s5, s7
195 ; SI-NEXT: s_mov_b32 s6, s10
196 ; SI-NEXT: s_mov_b32 s7, s11
197 ; SI-NEXT: buffer_load_ushort v0, off, s[12:15], 0 glc
198 ; SI-NEXT: s_waitcnt vmcnt(0)
199 ; SI-NEXT: buffer_load_ushort v1, off, s[16:19], 0 glc
200 ; SI-NEXT: s_waitcnt vmcnt(0)
201 ; SI-NEXT: buffer_load_ushort v2, off, s[4:7], 0 glc
202 ; SI-NEXT: s_waitcnt vmcnt(0)
203 ; SI-NEXT: s_mov_b32 s8, s0
204 ; SI-NEXT: s_mov_b32 s9, s1
205 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
206 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
207 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
208 ; SI-NEXT: v_cmp_gt_f32_e32 vcc, 0.5, v0
209 ; SI-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc
210 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
211 ; SI-NEXT: buffer_store_short v0, off, s[8:11], 0
212 ; SI-NEXT: s_endpgm
259 ; SI-LABEL: select_f16_imm_c:
260 ; SI: ; %bb.0: ; %entry
261 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
262 ; SI-NEXT: s_mov_b32 s11, 0xf000
263 ; SI-NEXT: s_mov_b32 s10, -1
264 ; SI-NEXT: s_mov_b32 s14, s10
265 ; SI-NEXT: s_mov_b32 s15, s11
266 ; SI-NEXT: s_waitcnt lgkmcnt(0)
267 ; SI-NEXT: s_mov_b32 s12, s2
268 ; SI-NEXT: s_mov_b32 s13, s3
269 ; SI-NEXT: s_mov_b32 s16, s4
270 ; SI-NEXT: s_mov_b32 s17, s5
271 ; SI-NEXT: s_mov_b32 s18, s10
272 ; SI-NEXT: s_mov_b32 s19, s11
273 ; SI-NEXT: s_mov_b32 s4, s6
274 ; SI-NEXT: s_mov_b32 s5, s7
275 ; SI-NEXT: s_mov_b32 s6, s10
276 ; SI-NEXT: s_mov_b32 s7, s11
277 ; SI-NEXT: buffer_load_ushort v0, off, s[12:15], 0 glc
278 ; SI-NEXT: s_waitcnt vmcnt(0)
279 ; SI-NEXT: buffer_load_ushort v1, off, s[16:19], 0 glc
280 ; SI-NEXT: s_waitcnt vmcnt(0)
281 ; SI-NEXT: buffer_load_ushort v2, off, s[4:7], 0 glc
282 ; SI-NEXT: s_waitcnt vmcnt(0)
283 ; SI-NEXT: s_mov_b32 s8, s0
284 ; SI-NEXT: s_mov_b32 s9, s1
285 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
286 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
287 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
288 ; SI-NEXT: v_cmp_nlt_f32_e32 vcc, v0, v1
289 ; SI-NEXT: v_cndmask_b32_e32 v0, 0.5, v2, vcc
290 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
291 ; SI-NEXT: buffer_store_short v0, off, s[8:11], 0
292 ; SI-NEXT: s_endpgm
340 ; SI-LABEL: select_f16_imm_d:
341 ; SI: ; %bb.0: ; %entry
342 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
343 ; SI-NEXT: s_mov_b32 s11, 0xf000
344 ; SI-NEXT: s_mov_b32 s10, -1
345 ; SI-NEXT: s_mov_b32 s14, s10
346 ; SI-NEXT: s_mov_b32 s15, s11
347 ; SI-NEXT: s_waitcnt lgkmcnt(0)
348 ; SI-NEXT: s_mov_b32 s12, s2
349 ; SI-NEXT: s_mov_b32 s13, s3
350 ; SI-NEXT: s_mov_b32 s16, s4
351 ; SI-NEXT: s_mov_b32 s17, s5
352 ; SI-NEXT: s_mov_b32 s18, s10
353 ; SI-NEXT: s_mov_b32 s19, s11
354 ; SI-NEXT: s_mov_b32 s4, s6
355 ; SI-NEXT: s_mov_b32 s5, s7
356 ; SI-NEXT: s_mov_b32 s6, s10
357 ; SI-NEXT: s_mov_b32 s7, s11
358 ; SI-NEXT: buffer_load_ushort v0, off, s[12:15], 0 glc
359 ; SI-NEXT: s_waitcnt vmcnt(0)
360 ; SI-NEXT: buffer_load_ushort v1, off, s[16:19], 0 glc
361 ; SI-NEXT: s_waitcnt vmcnt(0)
362 ; SI-NEXT: buffer_load_ushort v2, off, s[4:7], 0 glc
363 ; SI-NEXT: s_waitcnt vmcnt(0)
364 ; SI-NEXT: s_mov_b32 s8, s0
365 ; SI-NEXT: s_mov_b32 s9, s1
366 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
367 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
368 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
369 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
370 ; SI-NEXT: v_cndmask_b32_e32 v0, 0.5, v2, vcc
371 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
372 ; SI-NEXT: buffer_store_short v0, off, s[8:11], 0
373 ; SI-NEXT: s_endpgm
421 ; SI-LABEL: select_v2f16:
422 ; SI: ; %bb.0: ; %entry
423 ; SI-NEXT: s_load_dwordx8 s[4:11], s[0:1], 0x9
424 ; SI-NEXT: s_load_dwordx2 s[12:13], s[0:1], 0x11
425 ; SI-NEXT: s_mov_b32 s3, 0xf000
426 ; SI-NEXT: s_mov_b32 s2, -1
427 ; SI-NEXT: s_mov_b32 s18, s2
428 ; SI-NEXT: s_waitcnt lgkmcnt(0)
429 ; SI-NEXT: s_mov_b32 s16, s6
430 ; SI-NEXT: s_mov_b32 s17, s7
431 ; SI-NEXT: s_mov_b32 s19, s3
432 ; SI-NEXT: s_mov_b32 s20, s8
433 ; SI-NEXT: s_mov_b32 s21, s9
434 ; SI-NEXT: s_mov_b32 s22, s2
435 ; SI-NEXT: s_mov_b32 s23, s3
436 ; SI-NEXT: s_mov_b32 s14, s2
437 ; SI-NEXT: s_mov_b32 s15, s3
438 ; SI-NEXT: buffer_load_dword v1, off, s[16:19], 0
439 ; SI-NEXT: s_mov_b32 s8, s10
440 ; SI-NEXT: s_mov_b32 s9, s11
441 ; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0
442 ; SI-NEXT: s_mov_b32 s10, s2
443 ; SI-NEXT: s_mov_b32 s11, s3
444 ; SI-NEXT: buffer_load_dword v2, off, s[20:23], 0
445 ; SI-NEXT: buffer_load_dword v3, off, s[8:11], 0
446 ; SI-NEXT: s_mov_b32 s0, s4
447 ; SI-NEXT: s_mov_b32 s1, s5
448 ; SI-NEXT: s_waitcnt vmcnt(3)
449 ; SI-NEXT: v_lshrrev_b32_e32 v5, 16, v1
450 ; SI-NEXT: v_cvt_f32_f16_e32 v5, v5
451 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
452 ; SI-NEXT: s_waitcnt vmcnt(2)
453 ; SI-NEXT: v_cvt_f32_f16_e32 v4, v0
454 ; SI-NEXT: v_lshrrev_b32_e32 v0, 16, v0
455 ; SI-NEXT: s_waitcnt vmcnt(1)
456 ; SI-NEXT: v_lshrrev_b32_e32 v6, 16, v2
457 ; SI-NEXT: s_waitcnt vmcnt(0)
458 ; SI-NEXT: v_lshrrev_b32_e32 v7, 16, v3
459 ; SI-NEXT: v_cvt_f32_f16_e32 v6, v6
460 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
461 ; SI-NEXT: v_cvt_f32_f16_e32 v7, v7
462 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
463 ; SI-NEXT: v_cvt_f32_f16_e32 v3, v3
464 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v5, v6
465 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v7, vcc
466 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v1, v2
467 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
468 ; SI-NEXT: v_cndmask_b32_e32 v1, v4, v3, vcc
469 ; SI-NEXT: v_cvt_f16_f32_e32 v1, v1
470 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
471 ; SI-NEXT: v_or_b32_e32 v0, v1, v0
472 ; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0
473 ; SI-NEXT: s_endpgm
535 ; SI-LABEL: select_v2f16_imm_a:
536 ; SI: ; %bb.0: ; %entry
537 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
538 ; SI-NEXT: s_mov_b32 s11, 0xf000
539 ; SI-NEXT: s_mov_b32 s10, -1
540 ; SI-NEXT: s_mov_b32 s14, s10
541 ; SI-NEXT: s_mov_b32 s15, s11
542 ; SI-NEXT: s_waitcnt lgkmcnt(0)
543 ; SI-NEXT: s_mov_b32 s12, s2
544 ; SI-NEXT: s_mov_b32 s13, s3
545 ; SI-NEXT: s_mov_b32 s16, s4
546 ; SI-NEXT: s_mov_b32 s17, s5
547 ; SI-NEXT: s_mov_b32 s18, s10
548 ; SI-NEXT: s_mov_b32 s19, s11
549 ; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0
550 ; SI-NEXT: s_mov_b32 s4, s6
551 ; SI-NEXT: s_mov_b32 s5, s7
552 ; SI-NEXT: s_mov_b32 s6, s10
553 ; SI-NEXT: s_mov_b32 s7, s11
554 ; SI-NEXT: buffer_load_dword v1, off, s[16:19], 0
555 ; SI-NEXT: buffer_load_dword v2, off, s[4:7], 0
556 ; SI-NEXT: s_mov_b32 s2, 0x3f200000
557 ; SI-NEXT: s_mov_b32 s8, s0
558 ; SI-NEXT: s_mov_b32 s9, s1
559 ; SI-NEXT: s_waitcnt vmcnt(2)
560 ; SI-NEXT: v_lshrrev_b32_e32 v3, 16, v0
561 ; SI-NEXT: v_cvt_f32_f16_e32 v3, v3
562 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
563 ; SI-NEXT: s_waitcnt vmcnt(1)
564 ; SI-NEXT: v_lshrrev_b32_e32 v4, 16, v1
565 ; SI-NEXT: s_waitcnt vmcnt(0)
566 ; SI-NEXT: v_lshrrev_b32_e32 v5, 16, v2
567 ; SI-NEXT: v_cvt_f32_f16_e32 v4, v4
568 ; SI-NEXT: v_cvt_f32_f16_e32 v5, v5
569 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
570 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
571 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, s2, v3
572 ; SI-NEXT: v_cndmask_b32_e32 v3, v5, v4, vcc
573 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, 0.5, v0
574 ; SI-NEXT: v_cvt_f16_f32_e32 v3, v3
575 ; SI-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc
576 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
577 ; SI-NEXT: v_lshlrev_b32_e32 v1, 16, v3
578 ; SI-NEXT: v_or_b32_e32 v0, v0, v1
579 ; SI-NEXT: buffer_store_dword v0, off, s[8:11], 0
580 ; SI-NEXT: s_endpgm
634 ; SI-LABEL: select_v2f16_imm_b:
635 ; SI: ; %bb.0: ; %entry
636 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
637 ; SI-NEXT: s_mov_b32 s11, 0xf000
638 ; SI-NEXT: s_mov_b32 s10, -1
639 ; SI-NEXT: s_mov_b32 s14, s10
640 ; SI-NEXT: s_mov_b32 s15, s11
641 ; SI-NEXT: s_waitcnt lgkmcnt(0)
642 ; SI-NEXT: s_mov_b32 s12, s2
643 ; SI-NEXT: s_mov_b32 s13, s3
644 ; SI-NEXT: s_mov_b32 s16, s4
645 ; SI-NEXT: s_mov_b32 s17, s5
646 ; SI-NEXT: s_mov_b32 s18, s10
647 ; SI-NEXT: s_mov_b32 s19, s11
648 ; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0
649 ; SI-NEXT: s_mov_b32 s4, s6
650 ; SI-NEXT: s_mov_b32 s5, s7
651 ; SI-NEXT: s_mov_b32 s6, s10
652 ; SI-NEXT: s_mov_b32 s7, s11
653 ; SI-NEXT: buffer_load_dword v1, off, s[16:19], 0
654 ; SI-NEXT: buffer_load_dword v2, off, s[4:7], 0
655 ; SI-NEXT: s_mov_b32 s2, 0x3f200000
656 ; SI-NEXT: s_mov_b32 s8, s0
657 ; SI-NEXT: s_mov_b32 s9, s1
658 ; SI-NEXT: s_waitcnt vmcnt(2)
659 ; SI-NEXT: v_lshrrev_b32_e32 v3, 16, v0
660 ; SI-NEXT: v_cvt_f32_f16_e32 v3, v3
661 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
662 ; SI-NEXT: s_waitcnt vmcnt(1)
663 ; SI-NEXT: v_lshrrev_b32_e32 v4, 16, v1
664 ; SI-NEXT: s_waitcnt vmcnt(0)
665 ; SI-NEXT: v_lshrrev_b32_e32 v5, 16, v2
666 ; SI-NEXT: v_cvt_f32_f16_e32 v4, v4
667 ; SI-NEXT: v_cvt_f32_f16_e32 v5, v5
668 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
669 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
670 ; SI-NEXT: v_cmp_gt_f32_e32 vcc, s2, v3
671 ; SI-NEXT: v_cndmask_b32_e32 v3, v5, v4, vcc
672 ; SI-NEXT: v_cmp_gt_f32_e32 vcc, 0.5, v0
673 ; SI-NEXT: v_cvt_f16_f32_e32 v3, v3
674 ; SI-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc
675 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
676 ; SI-NEXT: v_lshlrev_b32_e32 v1, 16, v3
677 ; SI-NEXT: v_or_b32_e32 v0, v0, v1
678 ; SI-NEXT: buffer_store_dword v0, off, s[8:11], 0
679 ; SI-NEXT: s_endpgm
733 ; SI-LABEL: select_v2f16_imm_c:
734 ; SI: ; %bb.0: ; %entry
735 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
736 ; SI-NEXT: s_mov_b32 s11, 0xf000
737 ; SI-NEXT: s_mov_b32 s10, -1
738 ; SI-NEXT: s_mov_b32 s14, s10
739 ; SI-NEXT: s_mov_b32 s15, s11
740 ; SI-NEXT: s_waitcnt lgkmcnt(0)
741 ; SI-NEXT: s_mov_b32 s12, s2
742 ; SI-NEXT: s_mov_b32 s13, s3
743 ; SI-NEXT: s_mov_b32 s16, s4
744 ; SI-NEXT: s_mov_b32 s17, s5
745 ; SI-NEXT: s_mov_b32 s18, s10
746 ; SI-NEXT: s_mov_b32 s19, s11
747 ; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0
748 ; SI-NEXT: s_mov_b32 s4, s6
749 ; SI-NEXT: s_mov_b32 s5, s7
750 ; SI-NEXT: s_mov_b32 s6, s10
751 ; SI-NEXT: s_mov_b32 s7, s11
752 ; SI-NEXT: buffer_load_dword v1, off, s[16:19], 0
753 ; SI-NEXT: buffer_load_dword v2, off, s[4:7], 0
754 ; SI-NEXT: v_mov_b32_e32 v3, 0x3f200000
755 ; SI-NEXT: s_mov_b32 s8, s0
756 ; SI-NEXT: s_mov_b32 s9, s1
757 ; SI-NEXT: s_waitcnt vmcnt(2)
758 ; SI-NEXT: v_cvt_f32_f16_e32 v4, v0
759 ; SI-NEXT: v_lshrrev_b32_e32 v0, 16, v0
760 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
761 ; SI-NEXT: s_waitcnt vmcnt(1)
762 ; SI-NEXT: v_lshrrev_b32_e32 v5, 16, v1
763 ; SI-NEXT: s_waitcnt vmcnt(0)
764 ; SI-NEXT: v_lshrrev_b32_e32 v6, 16, v2
765 ; SI-NEXT: v_cvt_f32_f16_e32 v5, v5
766 ; SI-NEXT: v_cvt_f32_f16_e32 v6, v6
767 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
768 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
769 ; SI-NEXT: v_cmp_nlt_f32_e32 vcc, v0, v5
770 ; SI-NEXT: v_cndmask_b32_e32 v0, v3, v6, vcc
771 ; SI-NEXT: v_cmp_nlt_f32_e32 vcc, v4, v1
772 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
773 ; SI-NEXT: v_cndmask_b32_e32 v1, 0.5, v2, vcc
774 ; SI-NEXT: v_cvt_f16_f32_e32 v1, v1
775 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
776 ; SI-NEXT: v_or_b32_e32 v0, v1, v0
777 ; SI-NEXT: buffer_store_dword v0, off, s[8:11], 0
778 ; SI-NEXT: s_endpgm
834 ; SI-LABEL: select_v2f16_imm_d:
835 ; SI: ; %bb.0: ; %entry
836 ; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9
837 ; SI-NEXT: s_mov_b32 s11, 0xf000
838 ; SI-NEXT: s_mov_b32 s10, -1
839 ; SI-NEXT: s_mov_b32 s14, s10
840 ; SI-NEXT: s_mov_b32 s15, s11
841 ; SI-NEXT: s_waitcnt lgkmcnt(0)
842 ; SI-NEXT: s_mov_b32 s12, s2
843 ; SI-NEXT: s_mov_b32 s13, s3
844 ; SI-NEXT: s_mov_b32 s16, s4
845 ; SI-NEXT: s_mov_b32 s17, s5
846 ; SI-NEXT: s_mov_b32 s18, s10
847 ; SI-NEXT: s_mov_b32 s19, s11
848 ; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0
849 ; SI-NEXT: s_mov_b32 s4, s6
850 ; SI-NEXT: s_mov_b32 s5, s7
851 ; SI-NEXT: s_mov_b32 s6, s10
852 ; SI-NEXT: s_mov_b32 s7, s11
853 ; SI-NEXT: buffer_load_dword v1, off, s[16:19], 0
854 ; SI-NEXT: buffer_load_dword v2, off, s[4:7], 0
855 ; SI-NEXT: v_mov_b32_e32 v3, 0x3f200000
856 ; SI-NEXT: s_mov_b32 s8, s0
857 ; SI-NEXT: s_mov_b32 s9, s1
858 ; SI-NEXT: s_waitcnt vmcnt(2)
859 ; SI-NEXT: v_lshrrev_b32_e32 v4, 16, v0
860 ; SI-NEXT: v_cvt_f32_f16_e32 v4, v4
861 ; SI-NEXT: v_cvt_f32_f16_e32 v0, v0
862 ; SI-NEXT: s_waitcnt vmcnt(1)
863 ; SI-NEXT: v_lshrrev_b32_e32 v5, 16, v1
864 ; SI-NEXT: s_waitcnt vmcnt(0)
865 ; SI-NEXT: v_lshrrev_b32_e32 v6, 16, v2
866 ; SI-NEXT: v_cvt_f32_f16_e32 v5, v5
867 ; SI-NEXT: v_cvt_f32_f16_e32 v6, v6
868 ; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
869 ; SI-NEXT: v_cvt_f32_f16_e32 v2, v2
870 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v4, v5
871 ; SI-NEXT: v_cndmask_b32_e32 v3, v3, v6, vcc
872 ; SI-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
873 ; SI-NEXT: v_cvt_f16_f32_e32 v3, v3
874 ; SI-NEXT: v_cndmask_b32_e32 v0, 0.5, v2, vcc
875 ; SI-NEXT: v_cvt_f16_f32_e32 v0, v0
876 ; SI-NEXT: v_lshlrev_b32_e32 v1, 16, v3
877 ; SI-NEXT: v_or_b32_e32 v0, v0, v1
878 ; SI-NEXT: buffer_store_dword v0, off, s[8:11], 0
879 ; SI-NEXT: s_endpgm