Lines Matching refs:CI
2 …e-misched=0 -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck --check-prefix=CI %s
6 ; CI-LABEL: frem_f16:
7 ; CI: ; %bb.0:
8 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
9 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
10 ; CI-NEXT: s_waitcnt lgkmcnt(0)
11 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
12 ; CI-NEXT: s_load_dword s0, s[0:1], 0x2
13 ; CI-NEXT: s_waitcnt lgkmcnt(0)
14 ; CI-NEXT: v_cvt_f32_f16_e32 v0, s2
15 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s0
16 ; CI-NEXT: v_div_scale_f32 v2, s[0:1], v1, v1, v0
17 ; CI-NEXT: v_div_scale_f32 v3, vcc, v0, v1, v0
18 ; CI-NEXT: v_rcp_f32_e32 v4, v2
19 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
20 ; CI-NEXT: v_fma_f32 v5, -v2, v4, 1.0
21 ; CI-NEXT: v_fma_f32 v4, v5, v4, v4
22 ; CI-NEXT: v_mul_f32_e32 v5, v3, v4
23 ; CI-NEXT: v_fma_f32 v6, -v2, v5, v3
24 ; CI-NEXT: v_fma_f32 v5, v6, v4, v5
25 ; CI-NEXT: v_fma_f32 v2, -v2, v5, v3
26 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
27 ; CI-NEXT: v_div_fmas_f32 v2, v2, v4, v5
28 ; CI-NEXT: s_mov_b32 s6, -1
29 ; CI-NEXT: s_mov_b32 s7, 0xf000
30 ; CI-NEXT: v_div_fixup_f32 v2, v2, v1, v0
31 ; CI-NEXT: v_trunc_f32_e32 v2, v2
32 ; CI-NEXT: v_fma_f32 v0, -v2, v1, v0
33 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 2, 2), 0
34 ; CI-NEXT: v_cvt_f16_f32_e32 v0, v0
35 ; CI-NEXT: buffer_store_short v0, off, s[4:7], 0
36 ; CI-NEXT: s_endpgm
68 ; CI-LABEL: fast_frem_f16:
69 ; CI: ; %bb.0:
70 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
71 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
72 ; CI-NEXT: s_waitcnt lgkmcnt(0)
73 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
74 ; CI-NEXT: s_load_dword s0, s[0:1], 0x2
75 ; CI-NEXT: s_mov_b32 s6, -1
76 ; CI-NEXT: s_mov_b32 s7, 0xf000
77 ; CI-NEXT: s_waitcnt lgkmcnt(0)
78 ; CI-NEXT: v_cvt_f32_f16_e32 v0, s2
79 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s0
80 ; CI-NEXT: v_rcp_f32_e32 v2, v1
81 ; CI-NEXT: v_mul_f32_e32 v2, v0, v2
82 ; CI-NEXT: v_trunc_f32_e32 v2, v2
83 ; CI-NEXT: v_fma_f32 v0, -v2, v1, v0
84 ; CI-NEXT: v_cvt_f16_f32_e32 v0, v0
85 ; CI-NEXT: buffer_store_short v0, off, s[4:7], 0
86 ; CI-NEXT: s_endpgm
114 ; CI-LABEL: unsafe_frem_f16:
115 ; CI: ; %bb.0:
116 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
117 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
118 ; CI-NEXT: s_waitcnt lgkmcnt(0)
119 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
120 ; CI-NEXT: s_load_dword s0, s[0:1], 0x2
121 ; CI-NEXT: s_mov_b32 s6, -1
122 ; CI-NEXT: s_mov_b32 s7, 0xf000
123 ; CI-NEXT: s_waitcnt lgkmcnt(0)
124 ; CI-NEXT: v_cvt_f32_f16_e32 v0, s2
125 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s0
126 ; CI-NEXT: v_rcp_f32_e32 v2, v1
127 ; CI-NEXT: v_mul_f32_e32 v2, v0, v2
128 ; CI-NEXT: v_trunc_f32_e32 v2, v2
129 ; CI-NEXT: v_fma_f32 v0, -v2, v1, v0
130 ; CI-NEXT: v_cvt_f16_f32_e32 v0, v0
131 ; CI-NEXT: buffer_store_short v0, off, s[4:7], 0
132 ; CI-NEXT: s_endpgm
160 ; CI-LABEL: frem_f32:
161 ; CI: ; %bb.0:
162 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
163 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
164 ; CI-NEXT: s_waitcnt lgkmcnt(0)
165 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
166 ; CI-NEXT: s_load_dword s0, s[0:1], 0x4
167 ; CI-NEXT: s_waitcnt lgkmcnt(0)
168 ; CI-NEXT: v_mov_b32_e32 v0, s0
169 ; CI-NEXT: v_div_scale_f32 v1, s[0:1], v0, v0, s2
170 ; CI-NEXT: v_div_scale_f32 v2, vcc, s2, v0, s2
171 ; CI-NEXT: v_rcp_f32_e32 v3, v1
172 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
173 ; CI-NEXT: v_fma_f32 v4, -v1, v3, 1.0
174 ; CI-NEXT: v_fma_f32 v3, v4, v3, v3
175 ; CI-NEXT: v_mul_f32_e32 v4, v2, v3
176 ; CI-NEXT: v_fma_f32 v5, -v1, v4, v2
177 ; CI-NEXT: v_fma_f32 v4, v5, v3, v4
178 ; CI-NEXT: v_fma_f32 v1, -v1, v4, v2
179 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
180 ; CI-NEXT: v_div_fmas_f32 v1, v1, v3, v4
181 ; CI-NEXT: s_mov_b32 s6, -1
182 ; CI-NEXT: s_mov_b32 s7, 0xf000
183 ; CI-NEXT: v_div_fixup_f32 v1, v1, v0, s2
184 ; CI-NEXT: v_trunc_f32_e32 v1, v1
185 ; CI-NEXT: v_fma_f32 v0, -v1, v0, s2
186 ; CI-NEXT: buffer_store_dword v0, off, s[4:7], 0
187 ; CI-NEXT: s_endpgm
226 ; CI-LABEL: fast_frem_f32:
227 ; CI: ; %bb.0:
228 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
229 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
230 ; CI-NEXT: s_waitcnt lgkmcnt(0)
231 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
232 ; CI-NEXT: s_load_dword s0, s[0:1], 0x4
233 ; CI-NEXT: s_mov_b32 s6, -1
234 ; CI-NEXT: s_mov_b32 s7, 0xf000
235 ; CI-NEXT: s_waitcnt lgkmcnt(0)
236 ; CI-NEXT: v_mov_b32_e32 v1, s2
237 ; CI-NEXT: v_rcp_f32_e32 v0, s0
238 ; CI-NEXT: v_mul_f32_e32 v0, s2, v0
239 ; CI-NEXT: v_trunc_f32_e32 v0, v0
240 ; CI-NEXT: v_fma_f32 v0, -v0, s0, v1
241 ; CI-NEXT: buffer_store_dword v0, off, s[4:7], 0
242 ; CI-NEXT: s_endpgm
270 ; CI-LABEL: unsafe_frem_f32:
271 ; CI: ; %bb.0:
272 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
273 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
274 ; CI-NEXT: s_waitcnt lgkmcnt(0)
275 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
276 ; CI-NEXT: s_load_dword s0, s[0:1], 0x4
277 ; CI-NEXT: s_mov_b32 s6, -1
278 ; CI-NEXT: s_mov_b32 s7, 0xf000
279 ; CI-NEXT: s_waitcnt lgkmcnt(0)
280 ; CI-NEXT: v_mov_b32_e32 v1, s2
281 ; CI-NEXT: v_rcp_f32_e32 v0, s0
282 ; CI-NEXT: v_mul_f32_e32 v0, s2, v0
283 ; CI-NEXT: v_trunc_f32_e32 v0, v0
284 ; CI-NEXT: v_fma_f32 v0, -v0, s0, v1
285 ; CI-NEXT: buffer_store_dword v0, off, s[4:7], 0
286 ; CI-NEXT: s_endpgm
314 ; CI-LABEL: frem_f64:
315 ; CI: ; %bb.0:
316 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
317 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
318 ; CI-NEXT: s_waitcnt lgkmcnt(0)
319 ; CI-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x0
320 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
321 ; CI-NEXT: s_waitcnt lgkmcnt(0)
322 ; CI-NEXT: v_mov_b32_e32 v0, s0
323 ; CI-NEXT: v_mov_b32_e32 v1, s1
324 ; CI-NEXT: v_div_scale_f64 v[2:3], s[0:1], v[0:1], v[0:1], s[2:3]
325 ; CI-NEXT: v_div_scale_f64 v[8:9], vcc, s[2:3], v[0:1], s[2:3]
326 ; CI-NEXT: v_rcp_f64_e32 v[4:5], v[2:3]
327 ; CI-NEXT: v_fma_f64 v[6:7], -v[2:3], v[4:5], 1.0
328 ; CI-NEXT: v_fma_f64 v[4:5], v[4:5], v[6:7], v[4:5]
329 ; CI-NEXT: v_fma_f64 v[6:7], -v[2:3], v[4:5], 1.0
330 ; CI-NEXT: v_fma_f64 v[4:5], v[4:5], v[6:7], v[4:5]
331 ; CI-NEXT: v_mul_f64 v[6:7], v[8:9], v[4:5]
332 ; CI-NEXT: v_fma_f64 v[2:3], -v[2:3], v[6:7], v[8:9]
333 ; CI-NEXT: v_div_fmas_f64 v[2:3], v[2:3], v[4:5], v[6:7]
334 ; CI-NEXT: v_div_fixup_f64 v[2:3], v[2:3], v[0:1], s[2:3]
335 ; CI-NEXT: v_trunc_f64_e32 v[2:3], v[2:3]
336 ; CI-NEXT: v_fma_f64 v[0:1], -v[2:3], v[0:1], s[2:3]
337 ; CI-NEXT: v_mov_b32_e32 v2, s4
338 ; CI-NEXT: v_mov_b32_e32 v3, s5
339 ; CI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
340 ; CI-NEXT: s_endpgm
377 ; CI-LABEL: fast_frem_f64:
378 ; CI: ; %bb.0:
379 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
380 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
381 ; CI-NEXT: s_waitcnt lgkmcnt(0)
382 ; CI-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x0
383 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
384 ; CI-NEXT: s_waitcnt lgkmcnt(0)
385 ; CI-NEXT: v_rcp_f64_e32 v[0:1], s[0:1]
386 ; CI-NEXT: v_fma_f64 v[2:3], -s[0:1], v[0:1], 1.0
387 ; CI-NEXT: v_fma_f64 v[0:1], v[2:3], v[0:1], v[0:1]
388 ; CI-NEXT: v_fma_f64 v[2:3], -s[0:1], v[0:1], 1.0
389 ; CI-NEXT: v_fma_f64 v[0:1], v[2:3], v[0:1], v[0:1]
390 ; CI-NEXT: v_mov_b32_e32 v2, s2
391 ; CI-NEXT: v_mov_b32_e32 v3, s3
392 ; CI-NEXT: v_mul_f64 v[4:5], s[2:3], v[0:1]
393 ; CI-NEXT: v_fma_f64 v[6:7], -s[0:1], v[4:5], v[2:3]
394 ; CI-NEXT: v_fma_f64 v[0:1], v[6:7], v[0:1], v[4:5]
395 ; CI-NEXT: v_trunc_f64_e32 v[0:1], v[0:1]
396 ; CI-NEXT: v_fma_f64 v[0:1], -v[0:1], s[0:1], v[2:3]
397 ; CI-NEXT: v_mov_b32_e32 v2, s4
398 ; CI-NEXT: v_mov_b32_e32 v3, s5
399 ; CI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
400 ; CI-NEXT: s_endpgm
434 ; CI-LABEL: unsafe_frem_f64:
435 ; CI: ; %bb.0:
436 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
437 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
438 ; CI-NEXT: s_waitcnt lgkmcnt(0)
439 ; CI-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x0
440 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
441 ; CI-NEXT: s_waitcnt lgkmcnt(0)
442 ; CI-NEXT: v_rcp_f64_e32 v[0:1], s[0:1]
443 ; CI-NEXT: v_fma_f64 v[2:3], -s[0:1], v[0:1], 1.0
444 ; CI-NEXT: v_fma_f64 v[0:1], v[2:3], v[0:1], v[0:1]
445 ; CI-NEXT: v_fma_f64 v[2:3], -s[0:1], v[0:1], 1.0
446 ; CI-NEXT: v_fma_f64 v[0:1], v[2:3], v[0:1], v[0:1]
447 ; CI-NEXT: v_mov_b32_e32 v2, s2
448 ; CI-NEXT: v_mov_b32_e32 v3, s3
449 ; CI-NEXT: v_mul_f64 v[4:5], s[2:3], v[0:1]
450 ; CI-NEXT: v_fma_f64 v[6:7], -s[0:1], v[4:5], v[2:3]
451 ; CI-NEXT: v_fma_f64 v[0:1], v[6:7], v[0:1], v[4:5]
452 ; CI-NEXT: v_trunc_f64_e32 v[0:1], v[0:1]
453 ; CI-NEXT: v_fma_f64 v[0:1], -v[0:1], s[0:1], v[2:3]
454 ; CI-NEXT: v_mov_b32_e32 v2, s4
455 ; CI-NEXT: v_mov_b32_e32 v3, s5
456 ; CI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
457 ; CI-NEXT: s_endpgm
492 ; CI-LABEL: frem_v2f16:
493 ; CI: ; %bb.0:
494 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
495 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
496 ; CI-NEXT: s_waitcnt lgkmcnt(0)
497 ; CI-NEXT: s_load_dword s2, s[6:7], 0x0
498 ; CI-NEXT: s_load_dword s0, s[0:1], 0x4
499 ; CI-NEXT: s_waitcnt lgkmcnt(0)
500 ; CI-NEXT: v_cvt_f32_f16_e32 v0, s2
501 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s0
502 ; CI-NEXT: s_lshr_b32 s6, s0, 16
503 ; CI-NEXT: s_lshr_b32 s3, s2, 16
504 ; CI-NEXT: v_div_scale_f32 v2, s[0:1], v1, v1, v0
505 ; CI-NEXT: v_div_scale_f32 v3, vcc, v0, v1, v0
506 ; CI-NEXT: v_rcp_f32_e32 v4, v2
507 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
508 ; CI-NEXT: v_fma_f32 v5, -v2, v4, 1.0
509 ; CI-NEXT: v_fma_f32 v4, v5, v4, v4
510 ; CI-NEXT: v_mul_f32_e32 v5, v3, v4
511 ; CI-NEXT: v_fma_f32 v6, -v2, v5, v3
512 ; CI-NEXT: v_fma_f32 v5, v6, v4, v5
513 ; CI-NEXT: v_fma_f32 v2, -v2, v5, v3
514 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
515 ; CI-NEXT: v_div_fmas_f32 v2, v2, v4, v5
516 ; CI-NEXT: v_div_fixup_f32 v2, v2, v1, v0
517 ; CI-NEXT: v_trunc_f32_e32 v2, v2
518 ; CI-NEXT: v_fma_f32 v0, -v2, v1, v0
519 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s3
520 ; CI-NEXT: v_cvt_f32_f16_e32 v2, s6
521 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 2, 2), 0
522 ; CI-NEXT: v_cvt_f16_f32_e32 v0, v0
523 ; CI-NEXT: v_div_scale_f32 v3, s[0:1], v2, v2, v1
524 ; CI-NEXT: v_div_scale_f32 v4, vcc, v1, v2, v1
525 ; CI-NEXT: v_rcp_f32_e32 v5, v3
526 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
527 ; CI-NEXT: v_fma_f32 v6, -v3, v5, 1.0
528 ; CI-NEXT: v_fma_f32 v5, v6, v5, v5
529 ; CI-NEXT: v_mul_f32_e32 v6, v4, v5
530 ; CI-NEXT: v_fma_f32 v7, -v3, v6, v4
531 ; CI-NEXT: v_fma_f32 v6, v7, v5, v6
532 ; CI-NEXT: v_fma_f32 v3, -v3, v6, v4
533 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
534 ; CI-NEXT: v_div_fmas_f32 v3, v3, v5, v6
535 ; CI-NEXT: v_bfe_u32 v0, v0, 0, 16
536 ; CI-NEXT: v_div_fixup_f32 v3, v3, v2, v1
537 ; CI-NEXT: v_trunc_f32_e32 v3, v3
538 ; CI-NEXT: v_fma_f32 v1, -v3, v2, v1
539 ; CI-NEXT: v_cvt_f16_f32_e32 v1, v1
540 ; CI-NEXT: v_bfe_u32 v1, v1, 0, 16
541 ; CI-NEXT: v_lshlrev_b32_e32 v1, 16, v1
542 ; CI-NEXT: v_or_b32_e32 v2, v0, v1
543 ; CI-NEXT: v_mov_b32_e32 v0, s4
544 ; CI-NEXT: v_mov_b32_e32 v1, s5
545 ; CI-NEXT: flat_store_dword v[0:1], v2
546 ; CI-NEXT: s_endpgm
592 ; CI-LABEL: frem_v4f16:
593 ; CI: ; %bb.0:
594 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
595 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
596 ; CI-NEXT: s_waitcnt lgkmcnt(0)
597 ; CI-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x0
598 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x8
599 ; CI-NEXT: s_waitcnt lgkmcnt(0)
600 ; CI-NEXT: v_cvt_f32_f16_e32 v0, s2
601 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s0
602 ; CI-NEXT: s_lshr_b32 s8, s2, 16
603 ; CI-NEXT: s_lshr_b32 s9, s3, 16
604 ; CI-NEXT: s_lshr_b32 s10, s0, 16
605 ; CI-NEXT: v_div_scale_f32 v2, s[6:7], v1, v1, v0
606 ; CI-NEXT: s_lshr_b32 s11, s1, 16
607 ; CI-NEXT: v_div_scale_f32 v3, vcc, v0, v1, v0
608 ; CI-NEXT: v_rcp_f32_e32 v4, v2
609 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
610 ; CI-NEXT: v_fma_f32 v5, -v2, v4, 1.0
611 ; CI-NEXT: v_fma_f32 v4, v5, v4, v4
612 ; CI-NEXT: v_mul_f32_e32 v5, v3, v4
613 ; CI-NEXT: v_fma_f32 v6, -v2, v5, v3
614 ; CI-NEXT: v_fma_f32 v5, v6, v4, v5
615 ; CI-NEXT: v_fma_f32 v2, -v2, v5, v3
616 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
617 ; CI-NEXT: v_div_fmas_f32 v2, v2, v4, v5
618 ; CI-NEXT: v_div_fixup_f32 v2, v2, v1, v0
619 ; CI-NEXT: v_trunc_f32_e32 v2, v2
620 ; CI-NEXT: v_fma_f32 v0, -v2, v1, v0
621 ; CI-NEXT: v_cvt_f32_f16_e32 v1, s8
622 ; CI-NEXT: v_cvt_f32_f16_e32 v2, s10
623 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 2, 2), 0
624 ; CI-NEXT: v_cvt_f16_f32_e32 v0, v0
625 ; CI-NEXT: v_div_scale_f32 v3, s[6:7], v2, v2, v1
626 ; CI-NEXT: v_div_scale_f32 v4, vcc, v1, v2, v1
627 ; CI-NEXT: v_rcp_f32_e32 v5, v3
628 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
629 ; CI-NEXT: v_fma_f32 v6, -v3, v5, 1.0
630 ; CI-NEXT: v_fma_f32 v5, v6, v5, v5
631 ; CI-NEXT: v_mul_f32_e32 v6, v4, v5
632 ; CI-NEXT: v_fma_f32 v7, -v3, v6, v4
633 ; CI-NEXT: v_fma_f32 v6, v7, v5, v6
634 ; CI-NEXT: v_fma_f32 v3, -v3, v6, v4
635 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
636 ; CI-NEXT: v_div_fmas_f32 v3, v3, v5, v6
637 ; CI-NEXT: v_div_fixup_f32 v3, v3, v2, v1
638 ; CI-NEXT: v_trunc_f32_e32 v3, v3
639 ; CI-NEXT: v_fma_f32 v1, -v3, v2, v1
640 ; CI-NEXT: v_cvt_f32_f16_e32 v2, s3
641 ; CI-NEXT: v_cvt_f32_f16_e32 v3, s1
642 ; CI-NEXT: v_cvt_f16_f32_e32 v1, v1
643 ; CI-NEXT: v_div_scale_f32 v4, s[0:1], v3, v3, v2
644 ; CI-NEXT: v_div_scale_f32 v5, vcc, v2, v3, v2
645 ; CI-NEXT: v_rcp_f32_e32 v6, v4
646 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
647 ; CI-NEXT: v_fma_f32 v7, -v4, v6, 1.0
648 ; CI-NEXT: v_fma_f32 v6, v7, v6, v6
649 ; CI-NEXT: v_mul_f32_e32 v7, v5, v6
650 ; CI-NEXT: v_fma_f32 v8, -v4, v7, v5
651 ; CI-NEXT: v_fma_f32 v7, v8, v6, v7
652 ; CI-NEXT: v_fma_f32 v4, -v4, v7, v5
653 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
654 ; CI-NEXT: v_div_fmas_f32 v4, v4, v6, v7
655 ; CI-NEXT: v_div_fixup_f32 v4, v4, v3, v2
656 ; CI-NEXT: v_trunc_f32_e32 v4, v4
657 ; CI-NEXT: v_fma_f32 v2, -v4, v3, v2
658 ; CI-NEXT: v_cvt_f32_f16_e32 v3, s9
659 ; CI-NEXT: v_cvt_f32_f16_e32 v4, s11
660 ; CI-NEXT: v_cvt_f16_f32_e32 v2, v2
661 ; CI-NEXT: v_div_scale_f32 v5, s[0:1], v4, v4, v3
662 ; CI-NEXT: v_div_scale_f32 v6, vcc, v3, v4, v3
663 ; CI-NEXT: v_rcp_f32_e32 v7, v5
664 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
665 ; CI-NEXT: v_fma_f32 v8, -v5, v7, 1.0
666 ; CI-NEXT: v_fma_f32 v7, v8, v7, v7
667 ; CI-NEXT: v_mul_f32_e32 v8, v6, v7
668 ; CI-NEXT: v_fma_f32 v9, -v5, v8, v6
669 ; CI-NEXT: v_fma_f32 v8, v9, v7, v8
670 ; CI-NEXT: v_fma_f32 v5, -v5, v8, v6
671 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
672 ; CI-NEXT: v_div_fmas_f32 v5, v5, v7, v8
673 ; CI-NEXT: v_bfe_u32 v1, v1, 0, 16
674 ; CI-NEXT: v_bfe_u32 v0, v0, 0, 16
675 ; CI-NEXT: v_lshlrev_b32_e32 v1, 16, v1
676 ; CI-NEXT: v_or_b32_e32 v0, v0, v1
677 ; CI-NEXT: v_bfe_u32 v1, v2, 0, 16
678 ; CI-NEXT: v_div_fixup_f32 v5, v5, v4, v3
679 ; CI-NEXT: v_trunc_f32_e32 v5, v5
680 ; CI-NEXT: v_fma_f32 v3, -v5, v4, v3
681 ; CI-NEXT: v_cvt_f16_f32_e32 v3, v3
682 ; CI-NEXT: v_bfe_u32 v2, v3, 0, 16
683 ; CI-NEXT: v_lshlrev_b32_e32 v2, 16, v2
684 ; CI-NEXT: v_or_b32_e32 v1, v1, v2
685 ; CI-NEXT: v_mov_b32_e32 v2, s4
686 ; CI-NEXT: v_mov_b32_e32 v3, s5
687 ; CI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
688 ; CI-NEXT: s_endpgm
756 ; CI-LABEL: frem_v2f32:
757 ; CI: ; %bb.0:
758 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
759 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0xd
760 ; CI-NEXT: s_waitcnt lgkmcnt(0)
761 ; CI-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x0
762 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x8
763 ; CI-NEXT: s_waitcnt lgkmcnt(0)
764 ; CI-NEXT: v_mov_b32_e32 v0, s0
765 ; CI-NEXT: v_div_scale_f32 v1, s[6:7], v0, v0, s2
766 ; CI-NEXT: v_div_scale_f32 v2, vcc, s2, v0, s2
767 ; CI-NEXT: v_rcp_f32_e32 v3, v1
768 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
769 ; CI-NEXT: v_fma_f32 v4, -v1, v3, 1.0
770 ; CI-NEXT: v_fma_f32 v3, v4, v3, v3
771 ; CI-NEXT: v_mul_f32_e32 v4, v2, v3
772 ; CI-NEXT: v_fma_f32 v5, -v1, v4, v2
773 ; CI-NEXT: v_fma_f32 v4, v5, v3, v4
774 ; CI-NEXT: v_fma_f32 v1, -v1, v4, v2
775 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
776 ; CI-NEXT: v_div_fmas_f32 v1, v1, v3, v4
777 ; CI-NEXT: v_div_fixup_f32 v1, v1, v0, s2
778 ; CI-NEXT: v_trunc_f32_e32 v1, v1
779 ; CI-NEXT: v_fma_f32 v0, -v1, v0, s2
780 ; CI-NEXT: v_mov_b32_e32 v1, s1
781 ; CI-NEXT: v_div_scale_f32 v2, s[0:1], v1, v1, s3
782 ; CI-NEXT: v_div_scale_f32 v3, vcc, s3, v1, s3
783 ; CI-NEXT: v_rcp_f32_e32 v4, v2
784 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
785 ; CI-NEXT: v_fma_f32 v5, -v2, v4, 1.0
786 ; CI-NEXT: v_fma_f32 v4, v5, v4, v4
787 ; CI-NEXT: v_mul_f32_e32 v5, v3, v4
788 ; CI-NEXT: v_fma_f32 v6, -v2, v5, v3
789 ; CI-NEXT: v_fma_f32 v5, v6, v4, v5
790 ; CI-NEXT: v_fma_f32 v2, -v2, v5, v3
791 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
792 ; CI-NEXT: v_div_fmas_f32 v2, v2, v4, v5
793 ; CI-NEXT: s_mov_b32 s6, -1
794 ; CI-NEXT: s_mov_b32 s7, 0xf000
795 ; CI-NEXT: v_div_fixup_f32 v2, v2, v1, s3
796 ; CI-NEXT: v_trunc_f32_e32 v2, v2
797 ; CI-NEXT: v_fma_f32 v1, -v2, v1, s3
798 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0
799 ; CI-NEXT: s_endpgm
854 ; CI-LABEL: frem_v4f32:
855 ; CI: ; %bb.0:
856 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
857 ; CI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0xd
858 ; CI-NEXT: s_waitcnt lgkmcnt(0)
859 ; CI-NEXT: s_load_dwordx4 s[0:3], s[6:7], 0x0
860 ; CI-NEXT: s_load_dwordx4 s[8:11], s[8:9], 0x10
861 ; CI-NEXT: s_waitcnt lgkmcnt(0)
862 ; CI-NEXT: v_mov_b32_e32 v0, s8
863 ; CI-NEXT: v_div_scale_f32 v1, s[6:7], v0, v0, s0
864 ; CI-NEXT: v_div_scale_f32 v2, vcc, s0, v0, s0
865 ; CI-NEXT: v_rcp_f32_e32 v3, v1
866 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
867 ; CI-NEXT: v_fma_f32 v4, -v1, v3, 1.0
868 ; CI-NEXT: v_fma_f32 v3, v4, v3, v3
869 ; CI-NEXT: v_mul_f32_e32 v4, v2, v3
870 ; CI-NEXT: v_fma_f32 v5, -v1, v4, v2
871 ; CI-NEXT: v_fma_f32 v4, v5, v3, v4
872 ; CI-NEXT: v_fma_f32 v1, -v1, v4, v2
873 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
874 ; CI-NEXT: v_div_fmas_f32 v1, v1, v3, v4
875 ; CI-NEXT: v_div_fixup_f32 v1, v1, v0, s0
876 ; CI-NEXT: v_trunc_f32_e32 v1, v1
877 ; CI-NEXT: v_fma_f32 v0, -v1, v0, s0
878 ; CI-NEXT: v_mov_b32_e32 v1, s9
879 ; CI-NEXT: v_div_scale_f32 v2, s[6:7], v1, v1, s1
880 ; CI-NEXT: v_div_scale_f32 v3, vcc, s1, v1, s1
881 ; CI-NEXT: v_rcp_f32_e32 v4, v2
882 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
883 ; CI-NEXT: v_fma_f32 v5, -v2, v4, 1.0
884 ; CI-NEXT: v_fma_f32 v4, v5, v4, v4
885 ; CI-NEXT: v_mul_f32_e32 v5, v3, v4
886 ; CI-NEXT: v_fma_f32 v6, -v2, v5, v3
887 ; CI-NEXT: v_fma_f32 v5, v6, v4, v5
888 ; CI-NEXT: v_fma_f32 v2, -v2, v5, v3
889 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
890 ; CI-NEXT: v_div_fmas_f32 v2, v2, v4, v5
891 ; CI-NEXT: v_div_fixup_f32 v2, v2, v1, s1
892 ; CI-NEXT: v_trunc_f32_e32 v2, v2
893 ; CI-NEXT: v_fma_f32 v1, -v2, v1, s1
894 ; CI-NEXT: v_mov_b32_e32 v2, s10
895 ; CI-NEXT: v_div_scale_f32 v3, s[0:1], v2, v2, s2
896 ; CI-NEXT: v_div_scale_f32 v4, vcc, s2, v2, s2
897 ; CI-NEXT: v_rcp_f32_e32 v5, v3
898 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
899 ; CI-NEXT: v_fma_f32 v6, -v3, v5, 1.0
900 ; CI-NEXT: v_fma_f32 v5, v6, v5, v5
901 ; CI-NEXT: v_mul_f32_e32 v6, v4, v5
902 ; CI-NEXT: v_fma_f32 v7, -v3, v6, v4
903 ; CI-NEXT: v_fma_f32 v6, v7, v5, v6
904 ; CI-NEXT: v_fma_f32 v3, -v3, v6, v4
905 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
906 ; CI-NEXT: v_div_fmas_f32 v3, v3, v5, v6
907 ; CI-NEXT: v_div_fixup_f32 v3, v3, v2, s2
908 ; CI-NEXT: v_trunc_f32_e32 v3, v3
909 ; CI-NEXT: v_fma_f32 v2, -v3, v2, s2
910 ; CI-NEXT: v_mov_b32_e32 v3, s11
911 ; CI-NEXT: v_div_scale_f32 v4, s[0:1], v3, v3, s3
912 ; CI-NEXT: v_div_scale_f32 v5, vcc, s3, v3, s3
913 ; CI-NEXT: v_rcp_f32_e32 v6, v4
914 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 3
915 ; CI-NEXT: v_fma_f32 v7, -v4, v6, 1.0
916 ; CI-NEXT: v_fma_f32 v6, v7, v6, v6
917 ; CI-NEXT: v_mul_f32_e32 v7, v5, v6
918 ; CI-NEXT: v_fma_f32 v8, -v4, v7, v5
919 ; CI-NEXT: v_fma_f32 v7, v8, v6, v7
920 ; CI-NEXT: v_fma_f32 v4, -v4, v7, v5
921 ; CI-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_MODE, 4, 2), 0
922 ; CI-NEXT: v_div_fmas_f32 v4, v4, v6, v7
923 ; CI-NEXT: s_mov_b32 s6, -1
924 ; CI-NEXT: s_mov_b32 s7, 0xf000
925 ; CI-NEXT: v_div_fixup_f32 v4, v4, v3, s3
926 ; CI-NEXT: v_trunc_f32_e32 v4, v4
927 ; CI-NEXT: v_fma_f32 v3, -v4, v3, s3
928 ; CI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
929 ; CI-NEXT: s_endpgm
1016 ; CI-LABEL: frem_v2f64:
1017 ; CI: ; %bb.0:
1018 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9
1019 ; CI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0xd
1020 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1021 ; CI-NEXT: s_load_dwordx4 s[0:3], s[6:7], 0x0
1022 ; CI-NEXT: s_load_dwordx4 s[8:11], s[8:9], 0x10
1023 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1024 ; CI-NEXT: v_mov_b32_e32 v0, s8
1025 ; CI-NEXT: v_mov_b32_e32 v1, s9
1026 ; CI-NEXT: v_div_scale_f64 v[2:3], s[6:7], v[0:1], v[0:1], s[0:1]
1027 ; CI-NEXT: v_div_scale_f64 v[8:9], vcc, s[0:1], v[0:1], s[0:1]
1028 ; CI-NEXT: v_rcp_f64_e32 v[4:5], v[2:3]
1029 ; CI-NEXT: v_fma_f64 v[6:7], -v[2:3], v[4:5], 1.0
1030 ; CI-NEXT: v_fma_f64 v[4:5], v[4:5], v[6:7], v[4:5]
1031 ; CI-NEXT: v_fma_f64 v[6:7], -v[2:3], v[4:5], 1.0
1032 ; CI-NEXT: v_fma_f64 v[4:5], v[4:5], v[6:7], v[4:5]
1033 ; CI-NEXT: v_mul_f64 v[6:7], v[8:9], v[4:5]
1034 ; CI-NEXT: v_fma_f64 v[2:3], -v[2:3], v[6:7], v[8:9]
1035 ; CI-NEXT: v_div_fmas_f64 v[2:3], v[2:3], v[4:5], v[6:7]
1036 ; CI-NEXT: v_div_fixup_f64 v[2:3], v[2:3], v[0:1], s[0:1]
1037 ; CI-NEXT: v_trunc_f64_e32 v[2:3], v[2:3]
1038 ; CI-NEXT: v_fma_f64 v[0:1], -v[2:3], v[0:1], s[0:1]
1039 ; CI-NEXT: v_mov_b32_e32 v2, s10
1040 ; CI-NEXT: v_mov_b32_e32 v3, s11
1041 ; CI-NEXT: v_div_scale_f64 v[4:5], s[0:1], v[2:3], v[2:3], s[2:3]
1042 ; CI-NEXT: v_div_scale_f64 v[10:11], vcc, s[2:3], v[2:3], s[2:3]
1043 ; CI-NEXT: v_rcp_f64_e32 v[6:7], v[4:5]
1044 ; CI-NEXT: v_fma_f64 v[8:9], -v[4:5], v[6:7], 1.0
1045 ; CI-NEXT: v_fma_f64 v[6:7], v[6:7], v[8:9], v[6:7]
1046 ; CI-NEXT: v_fma_f64 v[8:9], -v[4:5], v[6:7], 1.0
1047 ; CI-NEXT: v_fma_f64 v[6:7], v[6:7], v[8:9], v[6:7]
1048 ; CI-NEXT: v_mul_f64 v[8:9], v[10:11], v[6:7]
1049 ; CI-NEXT: v_fma_f64 v[4:5], -v[4:5], v[8:9], v[10:11]
1050 ; CI-NEXT: v_div_fmas_f64 v[4:5], v[4:5], v[6:7], v[8:9]
1051 ; CI-NEXT: v_div_fixup_f64 v[4:5], v[4:5], v[2:3], s[2:3]
1052 ; CI-NEXT: v_trunc_f64_e32 v[4:5], v[4:5]
1053 ; CI-NEXT: v_fma_f64 v[2:3], -v[4:5], v[2:3], s[2:3]
1054 ; CI-NEXT: v_mov_b32_e32 v4, s4
1055 ; CI-NEXT: v_mov_b32_e32 v5, s5
1056 ; CI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1057 ; CI-NEXT: s_endpgm