Skip to content

Commit 63a351d

Browse files
committed
Precommit tests for new targets
1 parent 66cd2e0 commit 63a351d

File tree

14 files changed

+2197
-0
lines changed

14 files changed

+2197
-0
lines changed

llvm/test/CodeGen/ARM/scmp.ll

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=armv7-unknown-eabi %s -o - | FileCheck %s
3+
4+
define i8 @scmp_8_8(i8 signext %x, i8 signext %y) nounwind {
5+
; CHECK-LABEL: scmp_8_8:
6+
; CHECK: @ %bb.0:
7+
; CHECK-NEXT: mov r2, #0
8+
; CHECK-NEXT: cmp r0, r1
9+
; CHECK-NEXT: movwgt r2, #1
10+
; CHECK-NEXT: cmp r2, #0
11+
; CHECK-NEXT: movwne r2, #1
12+
; CHECK-NEXT: cmp r0, r1
13+
; CHECK-NEXT: mvnlt r2, #0
14+
; CHECK-NEXT: mov r0, r2
15+
; CHECK-NEXT: bx lr
16+
%1 = call i8 @llvm.scmp(i8 %x, i8 %y)
17+
ret i8 %1
18+
}
19+
20+
define i8 @scmp_8_16(i16 signext %x, i16 signext %y) nounwind {
21+
; CHECK-LABEL: scmp_8_16:
22+
; CHECK: @ %bb.0:
23+
; CHECK-NEXT: mov r2, #0
24+
; CHECK-NEXT: cmp r0, r1
25+
; CHECK-NEXT: movwgt r2, #1
26+
; CHECK-NEXT: cmp r2, #0
27+
; CHECK-NEXT: movwne r2, #1
28+
; CHECK-NEXT: cmp r0, r1
29+
; CHECK-NEXT: mvnlt r2, #0
30+
; CHECK-NEXT: mov r0, r2
31+
; CHECK-NEXT: bx lr
32+
%1 = call i8 @llvm.scmp(i16 %x, i16 %y)
33+
ret i8 %1
34+
}
35+
36+
define i8 @scmp_8_32(i32 %x, i32 %y) nounwind {
37+
; CHECK-LABEL: scmp_8_32:
38+
; CHECK: @ %bb.0:
39+
; CHECK-NEXT: mov r2, #0
40+
; CHECK-NEXT: cmp r0, r1
41+
; CHECK-NEXT: movwgt r2, #1
42+
; CHECK-NEXT: cmp r2, #0
43+
; CHECK-NEXT: movwne r2, #1
44+
; CHECK-NEXT: cmp r0, r1
45+
; CHECK-NEXT: mvnlt r2, #0
46+
; CHECK-NEXT: mov r0, r2
47+
; CHECK-NEXT: bx lr
48+
%1 = call i8 @llvm.scmp(i32 %x, i32 %y)
49+
ret i8 %1
50+
}
51+
52+
define i8 @scmp_8_64(i64 %x, i64 %y) nounwind {
53+
; CHECK-LABEL: scmp_8_64:
54+
; CHECK: @ %bb.0:
55+
; CHECK-NEXT: .save {r11, lr}
56+
; CHECK-NEXT: push {r11, lr}
57+
; CHECK-NEXT: subs lr, r2, r0
58+
; CHECK-NEXT: mov r12, #0
59+
; CHECK-NEXT: sbcs lr, r3, r1
60+
; CHECK-NEXT: movwlt r12, #1
61+
; CHECK-NEXT: cmp r12, #0
62+
; CHECK-NEXT: movwne r12, #1
63+
; CHECK-NEXT: subs r0, r0, r2
64+
; CHECK-NEXT: sbcs r0, r1, r3
65+
; CHECK-NEXT: mvnlt r12, #0
66+
; CHECK-NEXT: mov r0, r12
67+
; CHECK-NEXT: pop {r11, pc}
68+
%1 = call i8 @llvm.scmp(i64 %x, i64 %y)
69+
ret i8 %1
70+
}
71+
72+
define i8 @scmp_8_128(i128 %x, i128 %y) nounwind {
73+
; CHECK-LABEL: scmp_8_128:
74+
; CHECK: @ %bb.0:
75+
; CHECK-NEXT: .save {r4, r5, r6, r7, r11, lr}
76+
; CHECK-NEXT: push {r4, r5, r6, r7, r11, lr}
77+
; CHECK-NEXT: ldr r5, [sp, #24]
78+
; CHECK-NEXT: mov r12, #0
79+
; CHECK-NEXT: ldr r6, [sp, #28]
80+
; CHECK-NEXT: subs r7, r5, r0
81+
; CHECK-NEXT: ldr lr, [sp, #32]
82+
; CHECK-NEXT: sbcs r7, r6, r1
83+
; CHECK-NEXT: ldr r4, [sp, #36]
84+
; CHECK-NEXT: sbcs r7, lr, r2
85+
; CHECK-NEXT: sbcs r7, r4, r3
86+
; CHECK-NEXT: movwlt r12, #1
87+
; CHECK-NEXT: cmp r12, #0
88+
; CHECK-NEXT: movwne r12, #1
89+
; CHECK-NEXT: subs r0, r0, r5
90+
; CHECK-NEXT: sbcs r0, r1, r6
91+
; CHECK-NEXT: sbcs r0, r2, lr
92+
; CHECK-NEXT: sbcs r0, r3, r4
93+
; CHECK-NEXT: mvnlt r12, #0
94+
; CHECK-NEXT: mov r0, r12
95+
; CHECK-NEXT: pop {r4, r5, r6, r7, r11, pc}
96+
%1 = call i8 @llvm.scmp(i128 %x, i128 %y)
97+
ret i8 %1
98+
}
99+
100+
define i32 @scmp_32_32(i32 %x, i32 %y) nounwind {
101+
; CHECK-LABEL: scmp_32_32:
102+
; CHECK: @ %bb.0:
103+
; CHECK-NEXT: mov r2, #0
104+
; CHECK-NEXT: cmp r0, r1
105+
; CHECK-NEXT: movwgt r2, #1
106+
; CHECK-NEXT: cmp r2, #0
107+
; CHECK-NEXT: movwne r2, #1
108+
; CHECK-NEXT: cmp r0, r1
109+
; CHECK-NEXT: mvnlt r2, #0
110+
; CHECK-NEXT: mov r0, r2
111+
; CHECK-NEXT: bx lr
112+
%1 = call i32 @llvm.scmp(i32 %x, i32 %y)
113+
ret i32 %1
114+
}
115+
116+
define i32 @scmp_32_64(i64 %x, i64 %y) nounwind {
117+
; CHECK-LABEL: scmp_32_64:
118+
; CHECK: @ %bb.0:
119+
; CHECK-NEXT: .save {r11, lr}
120+
; CHECK-NEXT: push {r11, lr}
121+
; CHECK-NEXT: subs lr, r2, r0
122+
; CHECK-NEXT: mov r12, #0
123+
; CHECK-NEXT: sbcs lr, r3, r1
124+
; CHECK-NEXT: movwlt r12, #1
125+
; CHECK-NEXT: cmp r12, #0
126+
; CHECK-NEXT: movwne r12, #1
127+
; CHECK-NEXT: subs r0, r0, r2
128+
; CHECK-NEXT: sbcs r0, r1, r3
129+
; CHECK-NEXT: mvnlt r12, #0
130+
; CHECK-NEXT: mov r0, r12
131+
; CHECK-NEXT: pop {r11, pc}
132+
%1 = call i32 @llvm.scmp(i64 %x, i64 %y)
133+
ret i32 %1
134+
}
135+
136+
define i64 @scmp_64_64(i64 %x, i64 %y) nounwind {
137+
; CHECK-LABEL: scmp_64_64:
138+
; CHECK: @ %bb.0:
139+
; CHECK-NEXT: .save {r11, lr}
140+
; CHECK-NEXT: push {r11, lr}
141+
; CHECK-NEXT: subs lr, r0, r2
142+
; CHECK-NEXT: mov r12, #0
143+
; CHECK-NEXT: sbcs lr, r1, r3
144+
; CHECK-NEXT: mov lr, #0
145+
; CHECK-NEXT: movwlt lr, #1
146+
; CHECK-NEXT: subs r0, r2, r0
147+
; CHECK-NEXT: sbcs r0, r3, r1
148+
; CHECK-NEXT: movwlt r12, #1
149+
; CHECK-NEXT: cmp r12, #0
150+
; CHECK-NEXT: movwne r12, #1
151+
; CHECK-NEXT: cmp lr, #0
152+
; CHECK-NEXT: mvnne r12, #0
153+
; CHECK-NEXT: mvnne lr, #0
154+
; CHECK-NEXT: mov r0, r12
155+
; CHECK-NEXT: mov r1, lr
156+
; CHECK-NEXT: pop {r11, pc}
157+
%1 = call i64 @llvm.scmp(i64 %x, i64 %y)
158+
ret i64 %1
159+
}

llvm/test/CodeGen/ARM/ucmp.ll

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=armv7-unknown-eabi %s -o - | FileCheck %s
3+
4+
define i8 @ucmp_8_8(i8 zeroext %x, i8 zeroext %y) nounwind {
5+
; CHECK-LABEL: ucmp_8_8:
6+
; CHECK: @ %bb.0:
7+
; CHECK-NEXT: mov r2, #0
8+
; CHECK-NEXT: cmp r0, r1
9+
; CHECK-NEXT: movwhi r2, #1
10+
; CHECK-NEXT: cmp r2, #0
11+
; CHECK-NEXT: movwne r2, #1
12+
; CHECK-NEXT: cmp r0, r1
13+
; CHECK-NEXT: mvnlo r2, #0
14+
; CHECK-NEXT: mov r0, r2
15+
; CHECK-NEXT: bx lr
16+
%1 = call i8 @llvm.ucmp(i8 %x, i8 %y)
17+
ret i8 %1
18+
}
19+
20+
define i8 @ucmp_8_16(i16 zeroext %x, i16 zeroext %y) nounwind {
21+
; CHECK-LABEL: ucmp_8_16:
22+
; CHECK: @ %bb.0:
23+
; CHECK-NEXT: mov r2, #0
24+
; CHECK-NEXT: cmp r0, r1
25+
; CHECK-NEXT: movwhi r2, #1
26+
; CHECK-NEXT: cmp r2, #0
27+
; CHECK-NEXT: movwne r2, #1
28+
; CHECK-NEXT: cmp r0, r1
29+
; CHECK-NEXT: mvnlo r2, #0
30+
; CHECK-NEXT: mov r0, r2
31+
; CHECK-NEXT: bx lr
32+
%1 = call i8 @llvm.ucmp(i16 %x, i16 %y)
33+
ret i8 %1
34+
}
35+
36+
define i8 @ucmp_8_32(i32 %x, i32 %y) nounwind {
37+
; CHECK-LABEL: ucmp_8_32:
38+
; CHECK: @ %bb.0:
39+
; CHECK-NEXT: mov r2, #0
40+
; CHECK-NEXT: cmp r0, r1
41+
; CHECK-NEXT: movwhi r2, #1
42+
; CHECK-NEXT: cmp r2, #0
43+
; CHECK-NEXT: movwne r2, #1
44+
; CHECK-NEXT: cmp r0, r1
45+
; CHECK-NEXT: mvnlo r2, #0
46+
; CHECK-NEXT: mov r0, r2
47+
; CHECK-NEXT: bx lr
48+
%1 = call i8 @llvm.ucmp(i32 %x, i32 %y)
49+
ret i8 %1
50+
}
51+
52+
define i8 @ucmp_8_64(i64 %x, i64 %y) nounwind {
53+
; CHECK-LABEL: ucmp_8_64:
54+
; CHECK: @ %bb.0:
55+
; CHECK-NEXT: .save {r11, lr}
56+
; CHECK-NEXT: push {r11, lr}
57+
; CHECK-NEXT: subs lr, r2, r0
58+
; CHECK-NEXT: mov r12, #0
59+
; CHECK-NEXT: sbcs lr, r3, r1
60+
; CHECK-NEXT: movwlo r12, #1
61+
; CHECK-NEXT: cmp r12, #0
62+
; CHECK-NEXT: movwne r12, #1
63+
; CHECK-NEXT: subs r0, r0, r2
64+
; CHECK-NEXT: sbcs r0, r1, r3
65+
; CHECK-NEXT: mvnlo r12, #0
66+
; CHECK-NEXT: mov r0, r12
67+
; CHECK-NEXT: pop {r11, pc}
68+
%1 = call i8 @llvm.ucmp(i64 %x, i64 %y)
69+
ret i8 %1
70+
}
71+
72+
define i8 @ucmp_8_128(i128 %x, i128 %y) nounwind {
73+
; CHECK-LABEL: ucmp_8_128:
74+
; CHECK: @ %bb.0:
75+
; CHECK-NEXT: .save {r4, r5, r6, r7, r11, lr}
76+
; CHECK-NEXT: push {r4, r5, r6, r7, r11, lr}
77+
; CHECK-NEXT: ldr r5, [sp, #24]
78+
; CHECK-NEXT: mov r12, #0
79+
; CHECK-NEXT: ldr r6, [sp, #28]
80+
; CHECK-NEXT: subs r7, r5, r0
81+
; CHECK-NEXT: ldr lr, [sp, #32]
82+
; CHECK-NEXT: sbcs r7, r6, r1
83+
; CHECK-NEXT: ldr r4, [sp, #36]
84+
; CHECK-NEXT: sbcs r7, lr, r2
85+
; CHECK-NEXT: sbcs r7, r4, r3
86+
; CHECK-NEXT: movwlo r12, #1
87+
; CHECK-NEXT: cmp r12, #0
88+
; CHECK-NEXT: movwne r12, #1
89+
; CHECK-NEXT: subs r0, r0, r5
90+
; CHECK-NEXT: sbcs r0, r1, r6
91+
; CHECK-NEXT: sbcs r0, r2, lr
92+
; CHECK-NEXT: sbcs r0, r3, r4
93+
; CHECK-NEXT: mvnlo r12, #0
94+
; CHECK-NEXT: mov r0, r12
95+
; CHECK-NEXT: pop {r4, r5, r6, r7, r11, pc}
96+
%1 = call i8 @llvm.ucmp(i128 %x, i128 %y)
97+
ret i8 %1
98+
}
99+
100+
define i32 @ucmp_32_32(i32 %x, i32 %y) nounwind {
101+
; CHECK-LABEL: ucmp_32_32:
102+
; CHECK: @ %bb.0:
103+
; CHECK-NEXT: mov r2, #0
104+
; CHECK-NEXT: cmp r0, r1
105+
; CHECK-NEXT: movwhi r2, #1
106+
; CHECK-NEXT: cmp r2, #0
107+
; CHECK-NEXT: movwne r2, #1
108+
; CHECK-NEXT: cmp r0, r1
109+
; CHECK-NEXT: mvnlo r2, #0
110+
; CHECK-NEXT: mov r0, r2
111+
; CHECK-NEXT: bx lr
112+
%1 = call i32 @llvm.ucmp(i32 %x, i32 %y)
113+
ret i32 %1
114+
}
115+
116+
define i32 @ucmp_32_64(i64 %x, i64 %y) nounwind {
117+
; CHECK-LABEL: ucmp_32_64:
118+
; CHECK: @ %bb.0:
119+
; CHECK-NEXT: .save {r11, lr}
120+
; CHECK-NEXT: push {r11, lr}
121+
; CHECK-NEXT: subs lr, r2, r0
122+
; CHECK-NEXT: mov r12, #0
123+
; CHECK-NEXT: sbcs lr, r3, r1
124+
; CHECK-NEXT: movwlo r12, #1
125+
; CHECK-NEXT: cmp r12, #0
126+
; CHECK-NEXT: movwne r12, #1
127+
; CHECK-NEXT: subs r0, r0, r2
128+
; CHECK-NEXT: sbcs r0, r1, r3
129+
; CHECK-NEXT: mvnlo r12, #0
130+
; CHECK-NEXT: mov r0, r12
131+
; CHECK-NEXT: pop {r11, pc}
132+
%1 = call i32 @llvm.ucmp(i64 %x, i64 %y)
133+
ret i32 %1
134+
}
135+
136+
define i64 @ucmp_64_64(i64 %x, i64 %y) nounwind {
137+
; CHECK-LABEL: ucmp_64_64:
138+
; CHECK: @ %bb.0:
139+
; CHECK-NEXT: .save {r11, lr}
140+
; CHECK-NEXT: push {r11, lr}
141+
; CHECK-NEXT: subs lr, r0, r2
142+
; CHECK-NEXT: mov r12, #0
143+
; CHECK-NEXT: sbcs lr, r1, r3
144+
; CHECK-NEXT: mov lr, #0
145+
; CHECK-NEXT: movwlo lr, #1
146+
; CHECK-NEXT: subs r0, r2, r0
147+
; CHECK-NEXT: sbcs r0, r3, r1
148+
; CHECK-NEXT: movwlo r12, #1
149+
; CHECK-NEXT: cmp r12, #0
150+
; CHECK-NEXT: movwne r12, #1
151+
; CHECK-NEXT: cmp lr, #0
152+
; CHECK-NEXT: mvnne r12, #0
153+
; CHECK-NEXT: mvnne lr, #0
154+
; CHECK-NEXT: mov r0, r12
155+
; CHECK-NEXT: mov r1, lr
156+
; CHECK-NEXT: pop {r11, pc}
157+
%1 = call i64 @llvm.ucmp(i64 %x, i64 %y)
158+
ret i64 %1
159+
}

0 commit comments

Comments
 (0)