@@ -13,37 +13,37 @@ define i128 @srem_i128(i128 %lhs, i128 %rhs) {
1313; CHECK-NEXT: ld.param.v2.u64 {%rd45, %rd46}, [srem_i128_param_0];
1414; CHECK-NEXT: ld.param.v2.u64 {%rd49, %rd50}, [srem_i128_param_1];
1515; CHECK-NEXT: shr.s64 %rd2, %rd46, 63;
16- ; CHECK-NEXT: mov.b64 %rd117, 0;
17- ; CHECK-NEXT: sub.cc.s64 %rd52, %rd117, %rd45;
18- ; CHECK-NEXT: subc.cc.s64 %rd53, %rd117, %rd46;
16+ ; CHECK-NEXT: sub.cc.s64 %rd51, 0, %rd45;
17+ ; CHECK-NEXT: subc.cc.s64 %rd52, 0, %rd46;
1918; CHECK-NEXT: setp.lt.s64 %p1, %rd46, 0;
20- ; CHECK-NEXT: selp.b64 %rd4, %rd53 , %rd46, %p1;
21- ; CHECK-NEXT: selp.b64 %rd3, %rd52 , %rd45, %p1;
22- ; CHECK-NEXT: sub.cc.s64 %rd54, %rd117 , %rd49;
23- ; CHECK-NEXT: subc.cc.s64 %rd55, %rd117 , %rd50;
19+ ; CHECK-NEXT: selp.b64 %rd4, %rd52 , %rd46, %p1;
20+ ; CHECK-NEXT: selp.b64 %rd3, %rd51 , %rd45, %p1;
21+ ; CHECK-NEXT: sub.cc.s64 %rd53, 0 , %rd49;
22+ ; CHECK-NEXT: subc.cc.s64 %rd54, 0 , %rd50;
2423; CHECK-NEXT: setp.lt.s64 %p2, %rd50, 0;
25- ; CHECK-NEXT: selp.b64 %rd6, %rd55 , %rd50, %p2;
26- ; CHECK-NEXT: selp.b64 %rd5, %rd54 , %rd49, %p2;
27- ; CHECK-NEXT: or.b64 %rd56 , %rd5, %rd6;
28- ; CHECK-NEXT: setp.eq.s64 %p3, %rd56 , 0;
29- ; CHECK-NEXT: or.b64 %rd57 , %rd3, %rd4;
30- ; CHECK-NEXT: setp.eq.s64 %p4, %rd57 , 0;
24+ ; CHECK-NEXT: selp.b64 %rd6, %rd54 , %rd50, %p2;
25+ ; CHECK-NEXT: selp.b64 %rd5, %rd53 , %rd49, %p2;
26+ ; CHECK-NEXT: or.b64 %rd55 , %rd5, %rd6;
27+ ; CHECK-NEXT: setp.eq.s64 %p3, %rd55 , 0;
28+ ; CHECK-NEXT: or.b64 %rd56 , %rd3, %rd4;
29+ ; CHECK-NEXT: setp.eq.s64 %p4, %rd56 , 0;
3130; CHECK-NEXT: or.pred %p5, %p3, %p4;
3231; CHECK-NEXT: setp.ne.s64 %p6, %rd6, 0;
3332; CHECK-NEXT: clz.b64 %r1, %rd6;
34- ; CHECK-NEXT: cvt.u64.u32 %rd58 , %r1;
33+ ; CHECK-NEXT: cvt.u64.u32 %rd57 , %r1;
3534; CHECK-NEXT: clz.b64 %r2, %rd5;
36- ; CHECK-NEXT: cvt.u64.u32 %rd59 , %r2;
37- ; CHECK-NEXT: add.s64 %rd60 , %rd59 , 64;
38- ; CHECK-NEXT: selp.b64 %rd61 , %rd58 , %rd60 , %p6;
35+ ; CHECK-NEXT: cvt.u64.u32 %rd58 , %r2;
36+ ; CHECK-NEXT: add.s64 %rd59 , %rd58 , 64;
37+ ; CHECK-NEXT: selp.b64 %rd60 , %rd57 , %rd59 , %p6;
3938; CHECK-NEXT: setp.ne.s64 %p7, %rd4, 0;
4039; CHECK-NEXT: clz.b64 %r3, %rd4;
41- ; CHECK-NEXT: cvt.u64.u32 %rd62 , %r3;
40+ ; CHECK-NEXT: cvt.u64.u32 %rd61 , %r3;
4241; CHECK-NEXT: clz.b64 %r4, %rd3;
43- ; CHECK-NEXT: cvt.u64.u32 %rd63, %r4;
44- ; CHECK-NEXT: add.s64 %rd64, %rd63, 64;
45- ; CHECK-NEXT: selp.b64 %rd65, %rd62, %rd64, %p7;
46- ; CHECK-NEXT: sub.cc.s64 %rd66, %rd61, %rd65;
42+ ; CHECK-NEXT: cvt.u64.u32 %rd62, %r4;
43+ ; CHECK-NEXT: add.s64 %rd63, %rd62, 64;
44+ ; CHECK-NEXT: selp.b64 %rd64, %rd61, %rd63, %p7;
45+ ; CHECK-NEXT: mov.b64 %rd117, 0;
46+ ; CHECK-NEXT: sub.cc.s64 %rd66, %rd60, %rd64;
4747; CHECK-NEXT: subc.cc.s64 %rd67, %rd117, 0;
4848; CHECK-NEXT: setp.gt.u64 %p8, %rd66, 127;
4949; CHECK-NEXT: setp.eq.s64 %p9, %rd67, 0;
@@ -314,39 +314,39 @@ define i128 @sdiv_i128(i128 %lhs, i128 %rhs) {
314314; CHECK-NEXT: // %bb.0: // %_udiv-special-cases
315315; CHECK-NEXT: ld.param.v2.u64 {%rd45, %rd46}, [sdiv_i128_param_0];
316316; CHECK-NEXT: ld.param.v2.u64 {%rd49, %rd50}, [sdiv_i128_param_1];
317- ; CHECK-NEXT: mov.b64 %rd112, 0;
318- ; CHECK-NEXT: sub.cc.s64 %rd52, %rd112, %rd45;
319- ; CHECK-NEXT: subc.cc.s64 %rd53, %rd112, %rd46;
317+ ; CHECK-NEXT: sub.cc.s64 %rd51, 0, %rd45;
318+ ; CHECK-NEXT: subc.cc.s64 %rd52, 0, %rd46;
320319; CHECK-NEXT: setp.lt.s64 %p1, %rd46, 0;
321- ; CHECK-NEXT: selp.b64 %rd2, %rd53 , %rd46, %p1;
322- ; CHECK-NEXT: selp.b64 %rd1, %rd52 , %rd45, %p1;
323- ; CHECK-NEXT: sub.cc.s64 %rd54, %rd112 , %rd49;
324- ; CHECK-NEXT: subc.cc.s64 %rd55, %rd112 , %rd50;
320+ ; CHECK-NEXT: selp.b64 %rd2, %rd52 , %rd46, %p1;
321+ ; CHECK-NEXT: selp.b64 %rd1, %rd51 , %rd45, %p1;
322+ ; CHECK-NEXT: sub.cc.s64 %rd53, 0 , %rd49;
323+ ; CHECK-NEXT: subc.cc.s64 %rd54, 0 , %rd50;
325324; CHECK-NEXT: setp.lt.s64 %p2, %rd50, 0;
326- ; CHECK-NEXT: selp.b64 %rd4, %rd55 , %rd50, %p2;
327- ; CHECK-NEXT: selp.b64 %rd3, %rd54 , %rd49, %p2;
328- ; CHECK-NEXT: xor.b64 %rd56 , %rd50, %rd46;
329- ; CHECK-NEXT: shr.s64 %rd5, %rd56 , 63;
330- ; CHECK-NEXT: or.b64 %rd57 , %rd3, %rd4;
331- ; CHECK-NEXT: setp.eq.s64 %p3, %rd57 , 0;
332- ; CHECK-NEXT: or.b64 %rd58 , %rd1, %rd2;
333- ; CHECK-NEXT: setp.eq.s64 %p4, %rd58 , 0;
325+ ; CHECK-NEXT: selp.b64 %rd4, %rd54 , %rd50, %p2;
326+ ; CHECK-NEXT: selp.b64 %rd3, %rd53 , %rd49, %p2;
327+ ; CHECK-NEXT: xor.b64 %rd55 , %rd50, %rd46;
328+ ; CHECK-NEXT: shr.s64 %rd5, %rd55 , 63;
329+ ; CHECK-NEXT: or.b64 %rd56 , %rd3, %rd4;
330+ ; CHECK-NEXT: setp.eq.s64 %p3, %rd56 , 0;
331+ ; CHECK-NEXT: or.b64 %rd57 , %rd1, %rd2;
332+ ; CHECK-NEXT: setp.eq.s64 %p4, %rd57 , 0;
334333; CHECK-NEXT: or.pred %p5, %p3, %p4;
335334; CHECK-NEXT: setp.ne.s64 %p6, %rd4, 0;
336335; CHECK-NEXT: clz.b64 %r1, %rd4;
337- ; CHECK-NEXT: cvt.u64.u32 %rd59 , %r1;
336+ ; CHECK-NEXT: cvt.u64.u32 %rd58 , %r1;
338337; CHECK-NEXT: clz.b64 %r2, %rd3;
339- ; CHECK-NEXT: cvt.u64.u32 %rd60 , %r2;
340- ; CHECK-NEXT: add.s64 %rd61 , %rd60 , 64;
341- ; CHECK-NEXT: selp.b64 %rd62 , %rd59 , %rd61 , %p6;
338+ ; CHECK-NEXT: cvt.u64.u32 %rd59 , %r2;
339+ ; CHECK-NEXT: add.s64 %rd60 , %rd59 , 64;
340+ ; CHECK-NEXT: selp.b64 %rd61 , %rd58 , %rd60 , %p6;
342341; CHECK-NEXT: setp.ne.s64 %p7, %rd2, 0;
343342; CHECK-NEXT: clz.b64 %r3, %rd2;
344- ; CHECK-NEXT: cvt.u64.u32 %rd63 , %r3;
343+ ; CHECK-NEXT: cvt.u64.u32 %rd62 , %r3;
345344; CHECK-NEXT: clz.b64 %r4, %rd1;
346- ; CHECK-NEXT: cvt.u64.u32 %rd64, %r4;
347- ; CHECK-NEXT: add.s64 %rd65, %rd64, 64;
348- ; CHECK-NEXT: selp.b64 %rd66, %rd63, %rd65, %p7;
349- ; CHECK-NEXT: sub.cc.s64 %rd67, %rd62, %rd66;
345+ ; CHECK-NEXT: cvt.u64.u32 %rd63, %r4;
346+ ; CHECK-NEXT: add.s64 %rd64, %rd63, 64;
347+ ; CHECK-NEXT: selp.b64 %rd65, %rd62, %rd64, %p7;
348+ ; CHECK-NEXT: mov.b64 %rd112, 0;
349+ ; CHECK-NEXT: sub.cc.s64 %rd67, %rd61, %rd65;
350350; CHECK-NEXT: subc.cc.s64 %rd68, %rd112, 0;
351351; CHECK-NEXT: setp.gt.u64 %p8, %rd67, 127;
352352; CHECK-NEXT: setp.eq.s64 %p9, %rd68, 0;
0 commit comments