Lines Matching refs:CGP
3 …e-disable-idiv-expansion=0 -mtriple=amdgcn-amd-amdpal < %s | FileCheck -check-prefixes=CHECK,CGP %s
38 ; CGP-LABEL: v_srem_i32:
39 ; CGP: ; %bb.0:
40 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
41 ; CGP-NEXT: v_ashrrev_i32_e32 v2, 31, v0
42 ; CGP-NEXT: v_ashrrev_i32_e32 v3, 31, v1
43 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v2
44 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v1, v3
45 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
46 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v3
47 ; CGP-NEXT: v_cvt_f32_u32_e32 v3, v1
48 ; CGP-NEXT: v_sub_i32_e32 v4, vcc, 0, v1
49 ; CGP-NEXT: v_rcp_f32_e32 v3, v3
50 ; CGP-NEXT: v_mul_f32_e32 v3, 0x4f7ffffe, v3
51 ; CGP-NEXT: v_cvt_u32_f32_e32 v3, v3
52 ; CGP-NEXT: v_mul_lo_u32 v4, v4, v3
53 ; CGP-NEXT: v_mul_lo_u32 v5, 0, v4
54 ; CGP-NEXT: v_mul_hi_u32 v4, v3, v4
55 ; CGP-NEXT: v_add_i32_e32 v4, vcc, v5, v4
56 ; CGP-NEXT: v_add_i32_e32 v3, vcc, v3, v4
57 ; CGP-NEXT: v_mul_lo_u32 v4, 0, v3
58 ; CGP-NEXT: v_mul_hi_u32 v3, v0, v3
59 ; CGP-NEXT: v_add_i32_e32 v3, vcc, v4, v3
60 ; CGP-NEXT: v_mul_lo_u32 v3, v3, v1
61 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v3
62 ; CGP-NEXT: v_sub_i32_e32 v3, vcc, v0, v1
63 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v1
64 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v3, vcc
65 ; CGP-NEXT: v_sub_i32_e32 v3, vcc, v0, v1
66 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v1
67 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v3, vcc
68 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
69 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v2
70 ; CGP-NEXT: s_setpc_b64 s[30:31]
109 ; CGP-LABEL: s_srem_i32:
110 ; CGP: ; %bb.0:
111 ; CGP-NEXT: s_ashr_i32 s2, s0, 31
112 ; CGP-NEXT: s_ashr_i32 s3, s1, 31
113 ; CGP-NEXT: s_add_i32 s0, s0, s2
114 ; CGP-NEXT: s_add_i32 s1, s1, s3
115 ; CGP-NEXT: s_xor_b32 s0, s0, s2
116 ; CGP-NEXT: s_xor_b32 s1, s1, s3
117 ; CGP-NEXT: v_cvt_f32_u32_e32 v0, s1
118 ; CGP-NEXT: s_sub_i32 s3, 0, s1
119 ; CGP-NEXT: v_rcp_f32_e32 v0, v0
120 ; CGP-NEXT: v_mul_f32_e32 v0, 0x4f7ffffe, v0
121 ; CGP-NEXT: v_cvt_u32_f32_e32 v0, v0
122 ; CGP-NEXT: v_mul_lo_u32 v1, s3, v0
123 ; CGP-NEXT: v_mul_lo_u32 v2, 0, v1
124 ; CGP-NEXT: v_mul_hi_u32 v1, v0, v1
125 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v2, v1
126 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v1
127 ; CGP-NEXT: v_mul_lo_u32 v1, 0, v0
128 ; CGP-NEXT: v_mul_hi_u32 v0, s0, v0
129 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v1, v0
130 ; CGP-NEXT: v_mul_lo_u32 v0, v0, s1
131 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, s0, v0
132 ; CGP-NEXT: v_subrev_i32_e32 v1, vcc, s1, v0
133 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s1, v0
134 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
135 ; CGP-NEXT: v_subrev_i32_e32 v1, vcc, s1, v0
136 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s1, v0
137 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v1, vcc
138 ; CGP-NEXT: v_xor_b32_e32 v0, s2, v0
139 ; CGP-NEXT: v_subrev_i32_e32 v0, vcc, s2, v0
140 ; CGP-NEXT: v_readfirstlane_b32 s0, v0
141 ; CGP-NEXT: ; return to shader part epilog
203 ; CGP-LABEL: v_srem_v2i32:
204 ; CGP: ; %bb.0:
205 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
206 ; CGP-NEXT: v_ashrrev_i32_e32 v4, 31, v0
207 ; CGP-NEXT: v_ashrrev_i32_e32 v5, 31, v2
208 ; CGP-NEXT: v_ashrrev_i32_e32 v6, 31, v1
209 ; CGP-NEXT: v_ashrrev_i32_e32 v7, 31, v3
210 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v4
211 ; CGP-NEXT: v_add_i32_e32 v2, vcc, v2, v5
212 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v1, v6
213 ; CGP-NEXT: v_add_i32_e32 v3, vcc, v3, v7
214 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v4
215 ; CGP-NEXT: v_xor_b32_e32 v2, v2, v5
216 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v6
217 ; CGP-NEXT: v_xor_b32_e32 v3, v3, v7
218 ; CGP-NEXT: v_cvt_f32_u32_e32 v5, v2
219 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, 0, v2
220 ; CGP-NEXT: v_cvt_f32_u32_e32 v8, v3
221 ; CGP-NEXT: v_sub_i32_e32 v9, vcc, 0, v3
222 ; CGP-NEXT: v_rcp_f32_e32 v5, v5
223 ; CGP-NEXT: v_rcp_f32_e32 v8, v8
224 ; CGP-NEXT: v_mul_f32_e32 v5, 0x4f7ffffe, v5
225 ; CGP-NEXT: v_mul_f32_e32 v8, 0x4f7ffffe, v8
226 ; CGP-NEXT: v_cvt_u32_f32_e32 v5, v5
227 ; CGP-NEXT: v_cvt_u32_f32_e32 v8, v8
228 ; CGP-NEXT: v_mul_lo_u32 v7, v7, v5
229 ; CGP-NEXT: v_mul_lo_u32 v9, v9, v8
230 ; CGP-NEXT: v_mul_lo_u32 v10, 0, v7
231 ; CGP-NEXT: v_mul_hi_u32 v7, v5, v7
232 ; CGP-NEXT: v_mul_lo_u32 v11, 0, v9
233 ; CGP-NEXT: v_mul_hi_u32 v9, v8, v9
234 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v10, v7
235 ; CGP-NEXT: v_add_i32_e32 v9, vcc, v11, v9
236 ; CGP-NEXT: v_add_i32_e32 v5, vcc, v5, v7
237 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v8, v9
238 ; CGP-NEXT: v_mul_lo_u32 v8, 0, v5
239 ; CGP-NEXT: v_mul_hi_u32 v5, v0, v5
240 ; CGP-NEXT: v_mul_lo_u32 v9, 0, v7
241 ; CGP-NEXT: v_mul_hi_u32 v7, v1, v7
242 ; CGP-NEXT: v_add_i32_e32 v5, vcc, v8, v5
243 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v9, v7
244 ; CGP-NEXT: v_mul_lo_u32 v5, v5, v2
245 ; CGP-NEXT: v_mul_lo_u32 v7, v7, v3
246 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v5
247 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v7
248 ; CGP-NEXT: v_sub_i32_e32 v5, vcc, v0, v2
249 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, v1, v3
250 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
251 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v5, vcc
252 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
253 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v7, vcc
254 ; CGP-NEXT: v_sub_i32_e32 v5, vcc, v0, v2
255 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, v1, v3
256 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
257 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v5, vcc
258 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
259 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v7, vcc
260 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v4
261 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v6
262 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v4
263 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v6
264 ; CGP-NEXT: s_setpc_b64 s[30:31]
349 ; CGP-LABEL: v_srem_v2i32_pow2k_denom:
350 ; CGP: ; %bb.0:
351 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
352 ; CGP-NEXT: s_movk_i32 s4, 0x1000
353 ; CGP-NEXT: v_ashrrev_i32_e32 v2, 31, v0
354 ; CGP-NEXT: v_mov_b32_e32 v3, 0x1000
355 ; CGP-NEXT: s_movk_i32 s5, 0xf000
356 ; CGP-NEXT: v_mov_b32_e32 v4, 0xfffff000
357 ; CGP-NEXT: v_ashrrev_i32_e32 v5, 31, v1
358 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v2
359 ; CGP-NEXT: v_cvt_f32_u32_e32 v6, s4
360 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v1, v5
361 ; CGP-NEXT: v_cvt_f32_u32_e32 v7, v3
362 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
363 ; CGP-NEXT: v_rcp_iflag_f32_e32 v6, v6
364 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
365 ; CGP-NEXT: v_rcp_iflag_f32_e32 v7, v7
366 ; CGP-NEXT: v_mul_f32_e32 v6, 0x4f7ffffe, v6
367 ; CGP-NEXT: v_mul_f32_e32 v7, 0x4f7ffffe, v7
368 ; CGP-NEXT: v_cvt_u32_f32_e32 v6, v6
369 ; CGP-NEXT: v_cvt_u32_f32_e32 v7, v7
370 ; CGP-NEXT: v_mul_lo_u32 v8, s5, v6
371 ; CGP-NEXT: v_mul_lo_u32 v4, v4, v7
372 ; CGP-NEXT: v_mul_hi_u32 v8, v6, v8
373 ; CGP-NEXT: v_mul_hi_u32 v4, v7, v4
374 ; CGP-NEXT: v_add_i32_e32 v6, vcc, v6, v8
375 ; CGP-NEXT: v_add_i32_e32 v4, vcc, v7, v4
376 ; CGP-NEXT: v_mul_hi_u32 v6, v0, v6
377 ; CGP-NEXT: v_mul_hi_u32 v4, v1, v4
378 ; CGP-NEXT: v_lshlrev_b32_e32 v6, 12, v6
379 ; CGP-NEXT: v_lshlrev_b32_e32 v4, 12, v4
380 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v6
381 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v4
382 ; CGP-NEXT: v_subrev_i32_e32 v4, vcc, s4, v0
383 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v1, v3
384 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s4, v0
385 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
386 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
387 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
388 ; CGP-NEXT: v_subrev_i32_e32 v4, vcc, s4, v0
389 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v1, v3
390 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s4, v0
391 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
392 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
393 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
394 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
395 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
396 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v2
397 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v5
398 ; CGP-NEXT: s_setpc_b64 s[30:31]
483 ; CGP-LABEL: v_srem_v2i32_oddk_denom:
484 ; CGP: ; %bb.0:
485 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
486 ; CGP-NEXT: s_mov_b32 s4, 0x12d8fb
487 ; CGP-NEXT: v_ashrrev_i32_e32 v2, 31, v0
488 ; CGP-NEXT: v_mov_b32_e32 v3, 0x12d8fb
489 ; CGP-NEXT: s_mov_b32 s5, 0xffed2705
490 ; CGP-NEXT: v_mov_b32_e32 v4, 0xffed2705
491 ; CGP-NEXT: v_ashrrev_i32_e32 v5, 31, v1
492 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v2
493 ; CGP-NEXT: v_cvt_f32_u32_e32 v6, s4
494 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v1, v5
495 ; CGP-NEXT: v_cvt_f32_u32_e32 v7, v3
496 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
497 ; CGP-NEXT: v_rcp_iflag_f32_e32 v6, v6
498 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
499 ; CGP-NEXT: v_rcp_iflag_f32_e32 v7, v7
500 ; CGP-NEXT: v_mul_f32_e32 v6, 0x4f7ffffe, v6
501 ; CGP-NEXT: v_mul_f32_e32 v7, 0x4f7ffffe, v7
502 ; CGP-NEXT: v_cvt_u32_f32_e32 v6, v6
503 ; CGP-NEXT: v_cvt_u32_f32_e32 v7, v7
504 ; CGP-NEXT: v_mul_lo_u32 v8, s5, v6
505 ; CGP-NEXT: v_mul_lo_u32 v4, v4, v7
506 ; CGP-NEXT: v_mul_hi_u32 v8, v6, v8
507 ; CGP-NEXT: v_mul_hi_u32 v4, v7, v4
508 ; CGP-NEXT: v_add_i32_e32 v6, vcc, v6, v8
509 ; CGP-NEXT: v_add_i32_e32 v4, vcc, v7, v4
510 ; CGP-NEXT: v_mul_hi_u32 v6, v0, v6
511 ; CGP-NEXT: v_mul_hi_u32 v4, v1, v4
512 ; CGP-NEXT: v_mul_lo_u32 v6, v6, s4
513 ; CGP-NEXT: v_mul_lo_u32 v4, v4, v3
514 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v6
515 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v4
516 ; CGP-NEXT: v_subrev_i32_e32 v4, vcc, s4, v0
517 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v1, v3
518 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s4, v0
519 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
520 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
521 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
522 ; CGP-NEXT: v_subrev_i32_e32 v4, vcc, s4, v0
523 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v1, v3
524 ; CGP-NEXT: v_cmp_le_u32_e32 vcc, s4, v0
525 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
526 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
527 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
528 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v2
529 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
530 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v2
531 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v5
532 ; CGP-NEXT: s_setpc_b64 s[30:31]
632 ; CGP-LABEL: v_srem_v2i32_pow2_shl_denom:
633 ; CGP: ; %bb.0:
634 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
635 ; CGP-NEXT: s_movk_i32 s4, 0x1000
636 ; CGP-NEXT: v_ashrrev_i32_e32 v4, 31, v0
637 ; CGP-NEXT: v_ashrrev_i32_e32 v5, 31, v1
638 ; CGP-NEXT: v_lshl_b32_e32 v2, s4, v2
639 ; CGP-NEXT: v_lshl_b32_e32 v3, s4, v3
640 ; CGP-NEXT: v_add_i32_e32 v0, vcc, v0, v4
641 ; CGP-NEXT: v_add_i32_e32 v1, vcc, v1, v5
642 ; CGP-NEXT: v_ashrrev_i32_e32 v6, 31, v2
643 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v4
644 ; CGP-NEXT: v_ashrrev_i32_e32 v7, 31, v3
645 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
646 ; CGP-NEXT: v_add_i32_e32 v2, vcc, v2, v6
647 ; CGP-NEXT: v_add_i32_e32 v3, vcc, v3, v7
648 ; CGP-NEXT: v_xor_b32_e32 v2, v2, v6
649 ; CGP-NEXT: v_xor_b32_e32 v3, v3, v7
650 ; CGP-NEXT: v_cvt_f32_u32_e32 v6, v2
651 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, 0, v2
652 ; CGP-NEXT: v_cvt_f32_u32_e32 v8, v3
653 ; CGP-NEXT: v_sub_i32_e32 v9, vcc, 0, v3
654 ; CGP-NEXT: v_rcp_f32_e32 v6, v6
655 ; CGP-NEXT: v_rcp_f32_e32 v8, v8
656 ; CGP-NEXT: v_mul_f32_e32 v6, 0x4f7ffffe, v6
657 ; CGP-NEXT: v_mul_f32_e32 v8, 0x4f7ffffe, v8
658 ; CGP-NEXT: v_cvt_u32_f32_e32 v6, v6
659 ; CGP-NEXT: v_cvt_u32_f32_e32 v8, v8
660 ; CGP-NEXT: v_mul_lo_u32 v7, v7, v6
661 ; CGP-NEXT: v_mul_lo_u32 v9, v9, v8
662 ; CGP-NEXT: v_mul_lo_u32 v10, 0, v7
663 ; CGP-NEXT: v_mul_hi_u32 v7, v6, v7
664 ; CGP-NEXT: v_mul_lo_u32 v11, 0, v9
665 ; CGP-NEXT: v_mul_hi_u32 v9, v8, v9
666 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v10, v7
667 ; CGP-NEXT: v_add_i32_e32 v9, vcc, v11, v9
668 ; CGP-NEXT: v_add_i32_e32 v6, vcc, v6, v7
669 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v8, v9
670 ; CGP-NEXT: v_mul_lo_u32 v8, 0, v6
671 ; CGP-NEXT: v_mul_hi_u32 v6, v0, v6
672 ; CGP-NEXT: v_mul_lo_u32 v9, 0, v7
673 ; CGP-NEXT: v_mul_hi_u32 v7, v1, v7
674 ; CGP-NEXT: v_add_i32_e32 v6, vcc, v8, v6
675 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v9, v7
676 ; CGP-NEXT: v_mul_lo_u32 v6, v6, v2
677 ; CGP-NEXT: v_mul_lo_u32 v7, v7, v3
678 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v6
679 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v7
680 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v0, v2
681 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, v1, v3
682 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
683 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v6, vcc
684 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
685 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v7, vcc
686 ; CGP-NEXT: v_sub_i32_e32 v6, vcc, v0, v2
687 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, v1, v3
688 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
689 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v6, vcc
690 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
691 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v7, vcc
692 ; CGP-NEXT: v_xor_b32_e32 v0, v0, v4
693 ; CGP-NEXT: v_xor_b32_e32 v1, v1, v5
694 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v4
695 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v5
696 ; CGP-NEXT: s_setpc_b64 s[30:31]
736 ; CGP-LABEL: v_srem_i32_24bit:
737 ; CGP: ; %bb.0:
738 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
739 ; CGP-NEXT: s_mov_b32 s4, 0xffffff
740 ; CGP-NEXT: v_and_b32_e32 v0, s4, v0
741 ; CGP-NEXT: v_and_b32_e32 v1, s4, v1
742 ; CGP-NEXT: v_cvt_f32_u32_e32 v2, v1
743 ; CGP-NEXT: v_sub_i32_e32 v3, vcc, 0, v1
744 ; CGP-NEXT: v_rcp_f32_e32 v2, v2
745 ; CGP-NEXT: v_mul_f32_e32 v2, 0x4f7ffffe, v2
746 ; CGP-NEXT: v_cvt_u32_f32_e32 v2, v2
747 ; CGP-NEXT: v_mul_lo_u32 v3, v3, v2
748 ; CGP-NEXT: v_mul_lo_u32 v4, 0, v3
749 ; CGP-NEXT: v_mul_hi_u32 v3, v2, v3
750 ; CGP-NEXT: v_add_i32_e32 v3, vcc, v4, v3
751 ; CGP-NEXT: v_add_i32_e32 v2, vcc, v2, v3
752 ; CGP-NEXT: v_mul_lo_u32 v3, 0, v2
753 ; CGP-NEXT: v_mul_hi_u32 v2, v0, v2
754 ; CGP-NEXT: v_add_i32_e32 v2, vcc, v3, v2
755 ; CGP-NEXT: v_mul_lo_u32 v2, v2, v1
756 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v2
757 ; CGP-NEXT: v_sub_i32_e32 v2, vcc, v0, v1
758 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v1
759 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v2, vcc
760 ; CGP-NEXT: v_sub_i32_e32 v2, vcc, v0, v1
761 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v1
762 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v2, vcc
763 ; CGP-NEXT: s_setpc_b64 s[30:31]
831 ; CGP-LABEL: v_srem_v2i32_24bit:
832 ; CGP: ; %bb.0:
833 ; CGP-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
834 ; CGP-NEXT: s_mov_b32 s4, 0xffffff
835 ; CGP-NEXT: v_and_b32_e32 v0, s4, v0
836 ; CGP-NEXT: v_and_b32_e32 v1, s4, v1
837 ; CGP-NEXT: v_and_b32_e32 v2, s4, v2
838 ; CGP-NEXT: v_and_b32_e32 v3, s4, v3
839 ; CGP-NEXT: v_cvt_f32_u32_e32 v4, v2
840 ; CGP-NEXT: v_sub_i32_e32 v5, vcc, 0, v2
841 ; CGP-NEXT: v_cvt_f32_u32_e32 v6, v3
842 ; CGP-NEXT: v_sub_i32_e32 v7, vcc, 0, v3
843 ; CGP-NEXT: v_rcp_f32_e32 v4, v4
844 ; CGP-NEXT: v_rcp_f32_e32 v6, v6
845 ; CGP-NEXT: v_mul_f32_e32 v4, 0x4f7ffffe, v4
846 ; CGP-NEXT: v_mul_f32_e32 v6, 0x4f7ffffe, v6
847 ; CGP-NEXT: v_cvt_u32_f32_e32 v4, v4
848 ; CGP-NEXT: v_cvt_u32_f32_e32 v6, v6
849 ; CGP-NEXT: v_mul_lo_u32 v5, v5, v4
850 ; CGP-NEXT: v_mul_lo_u32 v7, v7, v6
851 ; CGP-NEXT: v_mul_lo_u32 v8, 0, v5
852 ; CGP-NEXT: v_mul_hi_u32 v5, v4, v5
853 ; CGP-NEXT: v_mul_lo_u32 v9, 0, v7
854 ; CGP-NEXT: v_mul_hi_u32 v7, v6, v7
855 ; CGP-NEXT: v_add_i32_e32 v5, vcc, v8, v5
856 ; CGP-NEXT: v_add_i32_e32 v7, vcc, v9, v7
857 ; CGP-NEXT: v_add_i32_e32 v4, vcc, v4, v5
858 ; CGP-NEXT: v_add_i32_e32 v5, vcc, v6, v7
859 ; CGP-NEXT: v_mul_lo_u32 v6, 0, v4
860 ; CGP-NEXT: v_mul_hi_u32 v4, v0, v4
861 ; CGP-NEXT: v_mul_lo_u32 v7, 0, v5
862 ; CGP-NEXT: v_mul_hi_u32 v5, v1, v5
863 ; CGP-NEXT: v_add_i32_e32 v4, vcc, v6, v4
864 ; CGP-NEXT: v_add_i32_e32 v5, vcc, v7, v5
865 ; CGP-NEXT: v_mul_lo_u32 v4, v4, v2
866 ; CGP-NEXT: v_mul_lo_u32 v5, v5, v3
867 ; CGP-NEXT: v_sub_i32_e32 v0, vcc, v0, v4
868 ; CGP-NEXT: v_sub_i32_e32 v1, vcc, v1, v5
869 ; CGP-NEXT: v_sub_i32_e32 v4, vcc, v0, v2
870 ; CGP-NEXT: v_sub_i32_e32 v5, vcc, v1, v3
871 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
872 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
873 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
874 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v5, vcc
875 ; CGP-NEXT: v_sub_i32_e32 v4, vcc, v0, v2
876 ; CGP-NEXT: v_sub_i32_e32 v5, vcc, v1, v3
877 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v0, v2
878 ; CGP-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
879 ; CGP-NEXT: v_cmp_ge_u32_e32 vcc, v1, v3
880 ; CGP-NEXT: v_cndmask_b32_e32 v1, v1, v5, vcc
881 ; CGP-NEXT: s_setpc_b64 s[30:31]