44define i8 @ucmp_8_8 (i8 zeroext %x , i8 zeroext %y ) nounwind {
55; CHECK-LABEL: ucmp_8_8:
66; CHECK: # %bb.0:
7- ; CHECK-NEXT: cmplw 3, 4
8- ; CHECK-NEXT: sub 5, 4, 3
9- ; CHECK-NEXT: li 3, -1
10- ; CHECK-NEXT: rldicl 5, 5, 1, 63
11- ; CHECK-NEXT: rldic 3, 3, 0, 32
12- ; CHECK-NEXT: isellt 3, 3, 5
7+ ; CHECK-NEXT: subc 6, 4, 3
8+ ; CHECK-NEXT: sub 5, 3, 4
9+ ; CHECK-NEXT: subfe 3, 4, 3
10+ ; CHECK-NEXT: subfe 3, 3, 5
1311; CHECK-NEXT: blr
1412 %1 = call i8 @llvm.ucmp (i8 %x , i8 %y )
1513 ret i8 %1
@@ -18,12 +16,10 @@ define i8 @ucmp_8_8(i8 zeroext %x, i8 zeroext %y) nounwind {
1816define i8 @ucmp_8_16 (i16 zeroext %x , i16 zeroext %y ) nounwind {
1917; CHECK-LABEL: ucmp_8_16:
2018; CHECK: # %bb.0:
21- ; CHECK-NEXT: cmplw 3, 4
22- ; CHECK-NEXT: sub 5, 4, 3
23- ; CHECK-NEXT: li 3, -1
24- ; CHECK-NEXT: rldicl 5, 5, 1, 63
25- ; CHECK-NEXT: rldic 3, 3, 0, 32
26- ; CHECK-NEXT: isellt 3, 3, 5
19+ ; CHECK-NEXT: subc 6, 4, 3
20+ ; CHECK-NEXT: sub 5, 3, 4
21+ ; CHECK-NEXT: subfe 3, 4, 3
22+ ; CHECK-NEXT: subfe 3, 3, 5
2723; CHECK-NEXT: blr
2824 %1 = call i8 @llvm.ucmp (i16 %x , i16 %y )
2925 ret i8 %1
@@ -32,14 +28,10 @@ define i8 @ucmp_8_16(i16 zeroext %x, i16 zeroext %y) nounwind {
3228define i8 @ucmp_8_32 (i32 %x , i32 %y ) nounwind {
3329; CHECK-LABEL: ucmp_8_32:
3430; CHECK: # %bb.0:
35- ; CHECK-NEXT: clrldi 5, 4, 32
36- ; CHECK-NEXT: clrldi 6, 3, 32
37- ; CHECK-NEXT: sub 5, 5, 6
38- ; CHECK-NEXT: cmplw 3, 4
39- ; CHECK-NEXT: li 3, -1
40- ; CHECK-NEXT: rldic 3, 3, 0, 32
41- ; CHECK-NEXT: rldicl 5, 5, 1, 63
42- ; CHECK-NEXT: isellt 3, 3, 5
31+ ; CHECK-NEXT: subc 6, 4, 3
32+ ; CHECK-NEXT: sub 5, 3, 4
33+ ; CHECK-NEXT: subfe 3, 4, 3
34+ ; CHECK-NEXT: subfe 3, 3, 5
4335; CHECK-NEXT: blr
4436 %1 = call i8 @llvm.ucmp (i32 %x , i32 %y )
4537 ret i8 %1
@@ -48,12 +40,10 @@ define i8 @ucmp_8_32(i32 %x, i32 %y) nounwind {
4840define i8 @ucmp_8_64 (i64 %x , i64 %y ) nounwind {
4941; CHECK-LABEL: ucmp_8_64:
5042; CHECK: # %bb.0:
51- ; CHECK-NEXT: cmpld 3, 4
52- ; CHECK-NEXT: subc 3, 4, 3
53- ; CHECK-NEXT: subfe 3, 4, 4
54- ; CHECK-NEXT: li 4, -1
55- ; CHECK-NEXT: neg 3, 3
56- ; CHECK-NEXT: isellt 3, 4, 3
43+ ; CHECK-NEXT: subc 6, 4, 3
44+ ; CHECK-NEXT: sub 5, 3, 4
45+ ; CHECK-NEXT: subfe 3, 4, 3
46+ ; CHECK-NEXT: subfe 3, 3, 5
5747; CHECK-NEXT: blr
5848 %1 = call i8 @llvm.ucmp (i64 %x , i64 %y )
5949 ret i8 %1
@@ -82,14 +72,10 @@ define i8 @ucmp_8_128(i128 %x, i128 %y) nounwind {
8272define i32 @ucmp_32_32 (i32 %x , i32 %y ) nounwind {
8373; CHECK-LABEL: ucmp_32_32:
8474; CHECK: # %bb.0:
85- ; CHECK-NEXT: clrldi 5, 4, 32
86- ; CHECK-NEXT: clrldi 6, 3, 32
87- ; CHECK-NEXT: sub 5, 5, 6
88- ; CHECK-NEXT: cmplw 3, 4
89- ; CHECK-NEXT: li 3, -1
90- ; CHECK-NEXT: rldic 3, 3, 0, 32
91- ; CHECK-NEXT: rldicl 5, 5, 1, 63
92- ; CHECK-NEXT: isellt 3, 3, 5
75+ ; CHECK-NEXT: subc 6, 4, 3
76+ ; CHECK-NEXT: sub 5, 3, 4
77+ ; CHECK-NEXT: subfe 3, 4, 3
78+ ; CHECK-NEXT: subfe 3, 3, 5
9379; CHECK-NEXT: blr
9480 %1 = call i32 @llvm.ucmp (i32 %x , i32 %y )
9581 ret i32 %1
@@ -98,12 +84,10 @@ define i32 @ucmp_32_32(i32 %x, i32 %y) nounwind {
9884define i32 @ucmp_32_64 (i64 %x , i64 %y ) nounwind {
9985; CHECK-LABEL: ucmp_32_64:
10086; CHECK: # %bb.0:
101- ; CHECK-NEXT: cmpld 3, 4
102- ; CHECK-NEXT: subc 3, 4, 3
103- ; CHECK-NEXT: subfe 3, 4, 4
104- ; CHECK-NEXT: li 4, -1
105- ; CHECK-NEXT: neg 3, 3
106- ; CHECK-NEXT: isellt 3, 4, 3
87+ ; CHECK-NEXT: subc 6, 4, 3
88+ ; CHECK-NEXT: sub 5, 3, 4
89+ ; CHECK-NEXT: subfe 3, 4, 3
90+ ; CHECK-NEXT: subfe 3, 3, 5
10791; CHECK-NEXT: blr
10892 %1 = call i32 @llvm.ucmp (i64 %x , i64 %y )
10993 ret i32 %1
@@ -112,12 +96,10 @@ define i32 @ucmp_32_64(i64 %x, i64 %y) nounwind {
11296define i64 @ucmp_64_64 (i64 %x , i64 %y ) nounwind {
11397; CHECK-LABEL: ucmp_64_64:
11498; CHECK: # %bb.0:
115- ; CHECK-NEXT: subc 5, 4, 3
116- ; CHECK-NEXT: cmpld 3, 4
117- ; CHECK-NEXT: li 3, -1
118- ; CHECK-NEXT: subfe 5, 4, 4
119- ; CHECK-NEXT: neg 5, 5
120- ; CHECK-NEXT: isellt 3, 3, 5
99+ ; CHECK-NEXT: subc 6, 4, 3
100+ ; CHECK-NEXT: sub 5, 3, 4
101+ ; CHECK-NEXT: subfe 3, 4, 3
102+ ; CHECK-NEXT: subfe 3, 3, 5
121103; CHECK-NEXT: blr
122104 %1 = call i64 @llvm.ucmp (i64 %x , i64 %y )
123105 ret i64 %1
0 commit comments