@@ -270,14 +270,12 @@ define i128 @fptosi_f64_to_i128(double %x) {
270
270
; GISEL-NEXT: s_andn2_saveexec_b64 s[8:9], s[16:17]
271
271
; GISEL-NEXT: s_cbranch_execz .LBB0_6
272
272
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
273
- ; GISEL-NEXT: v_sub_co_u32_e32 v6, vcc, 0x433, v6
274
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v6
275
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v6, v[4:5]
276
- ; GISEL-NEXT: v_lshrrev_b64 v[2:3], v2, 0
277
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v6
278
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc
279
- ; GISEL-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
280
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v6
273
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x433, v6
274
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[4:5]
275
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
276
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
277
+ ; GISEL-NEXT: v_cndmask_b32_e32 v1, 0, v1, vcc
278
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
281
279
; GISEL-NEXT: v_cndmask_b32_e32 v4, v0, v4, vcc
282
280
; GISEL-NEXT: v_mad_u64_u32 v[2:3], s[6:7], v4, v10, 0
283
281
; GISEL-NEXT: v_cndmask_b32_e32 v5, v1, v5, vcc
@@ -640,14 +638,12 @@ define i128 @fptoui_f64_to_i128(double %x) {
640
638
; GISEL-NEXT: s_andn2_saveexec_b64 s[8:9], s[16:17]
641
639
; GISEL-NEXT: s_cbranch_execz .LBB1_6
642
640
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
643
- ; GISEL-NEXT: v_sub_co_u32_e32 v6, vcc, 0x433, v6
644
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v6
645
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v6, v[4:5]
646
- ; GISEL-NEXT: v_lshrrev_b64 v[2:3], v2, 0
647
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v6
648
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v2, v0, vcc
649
- ; GISEL-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
650
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v6
641
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x433, v6
642
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[4:5]
643
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
644
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
645
+ ; GISEL-NEXT: v_cndmask_b32_e32 v1, 0, v1, vcc
646
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
651
647
; GISEL-NEXT: v_cndmask_b32_e32 v4, v0, v4, vcc
652
648
; GISEL-NEXT: v_mad_u64_u32 v[2:3], s[6:7], v4, v10, 0
653
649
; GISEL-NEXT: v_cndmask_b32_e32 v5, v1, v5, vcc
@@ -1003,13 +999,11 @@ define i128 @fptosi_f32_to_i128(float %x) {
1003
999
; GISEL-NEXT: s_andn2_saveexec_b64 s[6:7], s[16:17]
1004
1000
; GISEL-NEXT: s_cbranch_execz .LBB2_6
1005
1001
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
1006
- ; GISEL-NEXT: v_sub_co_u32_e32 v3, vcc, 0x96, v6
1007
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v3
1008
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v3, v[4:5]
1009
- ; GISEL-NEXT: v_lshrrev_b64 v[1:2], v2, 0
1010
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v3
1011
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v1, v0, vcc
1012
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v3
1002
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x96, v6
1003
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[4:5]
1004
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
1005
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
1006
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
1013
1007
; GISEL-NEXT: v_cndmask_b32_e32 v4, v0, v4, vcc
1014
1008
; GISEL-NEXT: v_mad_u64_u32 v[0:1], s[8:9], v4, v9, 0
1015
1009
; GISEL-NEXT: v_mad_u64_u32 v[2:3], s[8:9], v4, v10, 0
@@ -1360,13 +1354,11 @@ define i128 @fptoui_f32_to_i128(float %x) {
1360
1354
; GISEL-NEXT: s_andn2_saveexec_b64 s[6:7], s[16:17]
1361
1355
; GISEL-NEXT: s_cbranch_execz .LBB3_6
1362
1356
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
1363
- ; GISEL-NEXT: v_sub_co_u32_e32 v3, vcc, 0x96, v6
1364
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v3
1365
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v3, v[4:5]
1366
- ; GISEL-NEXT: v_lshrrev_b64 v[1:2], v2, 0
1367
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v3
1368
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v1, v0, vcc
1369
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v3
1357
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x96, v6
1358
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[4:5]
1359
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
1360
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
1361
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
1370
1362
; GISEL-NEXT: v_cndmask_b32_e32 v4, v0, v4, vcc
1371
1363
; GISEL-NEXT: v_mad_u64_u32 v[0:1], s[8:9], v4, v9, 0
1372
1364
; GISEL-NEXT: v_mad_u64_u32 v[2:3], s[8:9], v4, v10, 0
@@ -1740,13 +1732,11 @@ define i128 @fptosi_bf16_to_i128(bfloat %x) {
1740
1732
; GISEL-NEXT: s_andn2_saveexec_b64 s[6:7], s[16:17]
1741
1733
; GISEL-NEXT: s_cbranch_execz .LBB6_6
1742
1734
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
1743
- ; GISEL-NEXT: v_sub_co_u32_e32 v3, vcc, 0x86, v5
1744
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v3
1745
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v3, v[7:8]
1746
- ; GISEL-NEXT: v_lshrrev_b64 v[1:2], v2, 0
1747
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v3
1748
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v1, v0, vcc
1749
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v3
1735
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x86, v5
1736
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[7:8]
1737
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
1738
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
1739
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
1750
1740
; GISEL-NEXT: v_cndmask_b32_e32 v0, v0, v7, vcc
1751
1741
; GISEL-NEXT: v_mul_hi_i32_i24_e32 v1, v0, v9
1752
1742
; GISEL-NEXT: v_ashrrev_i32_e32 v2, 31, v1
@@ -2091,13 +2081,11 @@ define i128 @fptoui_bf16_to_i128(bfloat %x) {
2091
2081
; GISEL-NEXT: s_andn2_saveexec_b64 s[6:7], s[16:17]
2092
2082
; GISEL-NEXT: s_cbranch_execz .LBB7_6
2093
2083
; GISEL-NEXT: ; %bb.5: ; %fp-to-i-if-then12
2094
- ; GISEL-NEXT: v_sub_co_u32_e32 v3, vcc, 0x86, v5
2095
- ; GISEL-NEXT: v_subrev_u32_e32 v2, 64, v3
2096
- ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v3, v[7:8]
2097
- ; GISEL-NEXT: v_lshrrev_b64 v[1:2], v2, 0
2098
- ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v3
2099
- ; GISEL-NEXT: v_cndmask_b32_e32 v0, v1, v0, vcc
2100
- ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v3
2084
+ ; GISEL-NEXT: v_sub_co_u32_e32 v2, vcc, 0x86, v5
2085
+ ; GISEL-NEXT: v_lshrrev_b64 v[0:1], v2, v[7:8]
2086
+ ; GISEL-NEXT: v_cmp_gt_u32_e32 vcc, 64, v2
2087
+ ; GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v0, vcc
2088
+ ; GISEL-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2
2101
2089
; GISEL-NEXT: v_cndmask_b32_e32 v0, v0, v7, vcc
2102
2090
; GISEL-NEXT: v_mul_hi_i32_i24_e32 v1, v0, v9
2103
2091
; GISEL-NEXT: v_ashrrev_i32_e32 v2, 31, v1
0 commit comments