@@ -6,19 +6,17 @@ declare void @dummy()
6
6
define i32 @and_eq_ne_ult (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
7
7
; CHECK-LABEL: and_eq_ne_ult:
8
8
; CHECK: // %bb.0: // %entry
9
- ; CHECK-NEXT: cmp w0, w1
10
- ; CHECK-NEXT: ccmp w2, w3, #4, eq
11
- ; CHECK-NEXT: b.ne .LBB0_3
12
- ; CHECK-NEXT: // %bb.1: // %entry
13
- ; CHECK-NEXT: cmp w4, w5
14
- ; CHECK-NEXT: b.lo .LBB0_3
15
- ; CHECK-NEXT: // %bb.2:
16
- ; CHECK-NEXT: mov w0, wzr
17
- ; CHECK-NEXT: ret
18
- ; CHECK-NEXT: .LBB0_3: // %if
9
+ ; CHECK-NEXT: cmp w2, w3
10
+ ; CHECK-NEXT: ccmp w0, w1, #0, ne
11
+ ; CHECK-NEXT: ccmp w4, w5, #0, ne
12
+ ; CHECK-NEXT: b.hs .LBB0_2
13
+ ; CHECK-NEXT: // %bb.1: // %if
19
14
; CHECK-NEXT: mov w0, #1
20
15
; CHECK-NEXT: str w0, [x6]
21
16
; CHECK-NEXT: ret
17
+ ; CHECK-NEXT: .LBB0_2:
18
+ ; CHECK-NEXT: mov w0, wzr
19
+ ; CHECK-NEXT: ret
22
20
entry:
23
21
%c0 = icmp eq i32 %s0 , %s1
24
22
%c1 = icmp ne i32 %s2 , %s3
@@ -38,19 +36,17 @@ else:
38
36
define i32 @and_ne_ult_ule (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
39
37
; CHECK-LABEL: and_ne_ult_ule:
40
38
; CHECK: // %bb.0: // %entry
41
- ; CHECK-NEXT: cmp w0, w1
42
- ; CHECK-NEXT: ccmp w2, w3, #2, ne
43
- ; CHECK-NEXT: b.lo .LBB1_3
44
- ; CHECK-NEXT: // %bb.1: // %entry
45
- ; CHECK-NEXT: cmp w4, w5
46
- ; CHECK-NEXT: b.ls .LBB1_3
47
- ; CHECK-NEXT: // %bb.2:
48
- ; CHECK-NEXT: mov w0, wzr
49
- ; CHECK-NEXT: ret
50
- ; CHECK-NEXT: .LBB1_3: // %if
39
+ ; CHECK-NEXT: cmp w2, w3
40
+ ; CHECK-NEXT: ccmp w0, w1, #4, lo
41
+ ; CHECK-NEXT: ccmp w4, w5, #0, eq
42
+ ; CHECK-NEXT: b.hi .LBB1_2
43
+ ; CHECK-NEXT: // %bb.1: // %if
51
44
; CHECK-NEXT: mov w0, #1
52
45
; CHECK-NEXT: str w0, [x6]
53
46
; CHECK-NEXT: ret
47
+ ; CHECK-NEXT: .LBB1_2:
48
+ ; CHECK-NEXT: mov w0, wzr
49
+ ; CHECK-NEXT: ret
54
50
entry:
55
51
%c0 = icmp ne i32 %s0 , %s1
56
52
%c1 = icmp ult i32 %s2 , %s3
@@ -70,19 +66,17 @@ else:
70
66
define i32 @and_ult_ule_ugt (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
71
67
; CHECK-LABEL: and_ult_ule_ugt:
72
68
; CHECK: // %bb.0: // %entry
73
- ; CHECK-NEXT: cmp w0, w1
74
- ; CHECK-NEXT: ccmp w2, w3, #2, lo
75
- ; CHECK-NEXT: b.ls .LBB2_3
76
- ; CHECK-NEXT: // %bb.1: // %entry
77
- ; CHECK-NEXT: cmp w4, w5
78
- ; CHECK-NEXT: b.hi .LBB2_3
79
- ; CHECK-NEXT: // %bb.2:
80
- ; CHECK-NEXT: mov w0, wzr
81
- ; CHECK-NEXT: ret
82
- ; CHECK-NEXT: .LBB2_3: // %if
69
+ ; CHECK-NEXT: cmp w2, w3
70
+ ; CHECK-NEXT: ccmp w0, w1, #2, ls
71
+ ; CHECK-NEXT: ccmp w4, w5, #2, hs
72
+ ; CHECK-NEXT: b.ls .LBB2_2
73
+ ; CHECK-NEXT: // %bb.1: // %if
83
74
; CHECK-NEXT: mov w0, #1
84
75
; CHECK-NEXT: str w0, [x6]
85
76
; CHECK-NEXT: ret
77
+ ; CHECK-NEXT: .LBB2_2:
78
+ ; CHECK-NEXT: mov w0, wzr
79
+ ; CHECK-NEXT: ret
86
80
entry:
87
81
%c0 = icmp ult i32 %s0 , %s1
88
82
%c1 = icmp ule i32 %s2 , %s3
@@ -102,19 +96,17 @@ else:
102
96
define i32 @and_ule_ugt_uge (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
103
97
; CHECK-LABEL: and_ule_ugt_uge:
104
98
; CHECK: // %bb.0: // %entry
105
- ; CHECK-NEXT: cmp w0, w1
106
- ; CHECK-NEXT: ccmp w2, w3, #0, ls
107
- ; CHECK-NEXT: b.hi .LBB3_3
108
- ; CHECK-NEXT: // %bb.1: // %entry
109
- ; CHECK-NEXT: cmp w4, w5
110
- ; CHECK-NEXT: b.hs .LBB3_3
111
- ; CHECK-NEXT: // %bb.2:
112
- ; CHECK-NEXT: mov w0, wzr
113
- ; CHECK-NEXT: ret
114
- ; CHECK-NEXT: .LBB3_3: // %if
99
+ ; CHECK-NEXT: cmp w2, w3
100
+ ; CHECK-NEXT: ccmp w0, w1, #2, hi
101
+ ; CHECK-NEXT: ccmp w4, w5, #2, hi
102
+ ; CHECK-NEXT: b.lo .LBB3_2
103
+ ; CHECK-NEXT: // %bb.1: // %if
115
104
; CHECK-NEXT: mov w0, #1
116
105
; CHECK-NEXT: str w0, [x6]
117
106
; CHECK-NEXT: ret
107
+ ; CHECK-NEXT: .LBB3_2:
108
+ ; CHECK-NEXT: mov w0, wzr
109
+ ; CHECK-NEXT: ret
118
110
entry:
119
111
%c0 = icmp ule i32 %s0 , %s1
120
112
%c1 = icmp ugt i32 %s2 , %s3
@@ -134,19 +126,17 @@ else:
134
126
define i32 @and_ugt_uge_slt (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
135
127
; CHECK-LABEL: and_ugt_uge_slt:
136
128
; CHECK: // %bb.0: // %entry
137
- ; CHECK-NEXT: cmp w0, w1
138
- ; CHECK-NEXT: ccmp w2, w3, #0, hi
139
- ; CHECK-NEXT: b.hs .LBB4_3
140
- ; CHECK-NEXT: // %bb.1: // %entry
141
- ; CHECK-NEXT: cmp w4, w5
142
- ; CHECK-NEXT: b.lt .LBB4_3
143
- ; CHECK-NEXT: // %bb.2:
144
- ; CHECK-NEXT: mov w0, wzr
145
- ; CHECK-NEXT: ret
146
- ; CHECK-NEXT: .LBB4_3: // %if
129
+ ; CHECK-NEXT: cmp w2, w3
130
+ ; CHECK-NEXT: ccmp w0, w1, #0, hs
131
+ ; CHECK-NEXT: ccmp w4, w5, #8, ls
132
+ ; CHECK-NEXT: b.ge .LBB4_2
133
+ ; CHECK-NEXT: // %bb.1: // %if
147
134
; CHECK-NEXT: mov w0, #1
148
135
; CHECK-NEXT: str w0, [x6]
149
136
; CHECK-NEXT: ret
137
+ ; CHECK-NEXT: .LBB4_2:
138
+ ; CHECK-NEXT: mov w0, wzr
139
+ ; CHECK-NEXT: ret
150
140
entry:
151
141
%c0 = icmp ugt i32 %s0 , %s1
152
142
%c1 = icmp uge i32 %s2 , %s3
@@ -166,19 +156,17 @@ else:
166
156
define i32 @and_uge_slt_sle (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
167
157
; CHECK-LABEL: and_uge_slt_sle:
168
158
; CHECK: // %bb.0: // %entry
169
- ; CHECK-NEXT: cmp w0, w1
170
- ; CHECK-NEXT: ccmp w2, w3, #0, hs
171
- ; CHECK-NEXT: b.lt .LBB5_3
172
- ; CHECK-NEXT: // %bb.1: // %entry
173
- ; CHECK-NEXT: cmp w4, w5
174
- ; CHECK-NEXT: b.le .LBB5_3
175
- ; CHECK-NEXT: // %bb.2:
176
- ; CHECK-NEXT: mov w0, wzr
177
- ; CHECK-NEXT: ret
178
- ; CHECK-NEXT: .LBB5_3: // %if
159
+ ; CHECK-NEXT: cmp w2, w3
160
+ ; CHECK-NEXT: ccmp w0, w1, #0, lt
161
+ ; CHECK-NEXT: ccmp w4, w5, #4, lo
162
+ ; CHECK-NEXT: b.gt .LBB5_2
163
+ ; CHECK-NEXT: // %bb.1: // %if
179
164
; CHECK-NEXT: mov w0, #1
180
165
; CHECK-NEXT: str w0, [x6]
181
166
; CHECK-NEXT: ret
167
+ ; CHECK-NEXT: .LBB5_2:
168
+ ; CHECK-NEXT: mov w0, wzr
169
+ ; CHECK-NEXT: ret
182
170
entry:
183
171
%c0 = icmp uge i32 %s0 , %s1
184
172
%c1 = icmp slt i32 %s2 , %s3
@@ -198,19 +186,17 @@ else:
198
186
define i32 @and_slt_sle_sgt (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
199
187
; CHECK-LABEL: and_slt_sle_sgt:
200
188
; CHECK: // %bb.0: // %entry
201
- ; CHECK-NEXT: cmp w0, w1
202
- ; CHECK-NEXT: ccmp w2, w3, #0, lt
203
- ; CHECK-NEXT: b.le .LBB6_3
204
- ; CHECK-NEXT: // %bb.1: // %entry
205
- ; CHECK-NEXT: cmp w4, w5
206
- ; CHECK-NEXT: b.gt .LBB6_3
207
- ; CHECK-NEXT: // %bb.2:
208
- ; CHECK-NEXT: mov w0, wzr
209
- ; CHECK-NEXT: ret
210
- ; CHECK-NEXT: .LBB6_3: // %if
189
+ ; CHECK-NEXT: cmp w2, w3
190
+ ; CHECK-NEXT: ccmp w0, w1, #0, le
191
+ ; CHECK-NEXT: ccmp w4, w5, #0, ge
192
+ ; CHECK-NEXT: b.le .LBB6_2
193
+ ; CHECK-NEXT: // %bb.1: // %if
211
194
; CHECK-NEXT: mov w0, #1
212
195
; CHECK-NEXT: str w0, [x6]
213
196
; CHECK-NEXT: ret
197
+ ; CHECK-NEXT: .LBB6_2:
198
+ ; CHECK-NEXT: mov w0, wzr
199
+ ; CHECK-NEXT: ret
214
200
entry:
215
201
%c0 = icmp slt i32 %s0 , %s1
216
202
%c1 = icmp sle i32 %s2 , %s3
@@ -230,19 +216,17 @@ else:
230
216
define i32 @and_sle_sgt_sge (i32 %s0 , i32 %s1 , i32 %s2 , i32 %s3 , i32 %s4 , i32 %s5 , i32* %p ) {
231
217
; CHECK-LABEL: and_sle_sgt_sge:
232
218
; CHECK: // %bb.0: // %entry
233
- ; CHECK-NEXT: cmp w0, w1
234
- ; CHECK-NEXT: ccmp w2, w3, #4, le
235
- ; CHECK-NEXT: b.gt .LBB7_3
236
- ; CHECK-NEXT: // %bb.1: // %entry
237
- ; CHECK-NEXT: cmp w4, w5
238
- ; CHECK-NEXT: b.ge .LBB7_3
239
- ; CHECK-NEXT: // %bb.2:
240
- ; CHECK-NEXT: mov w0, wzr
241
- ; CHECK-NEXT: ret
242
- ; CHECK-NEXT: .LBB7_3: // %if
219
+ ; CHECK-NEXT: cmp w2, w3
220
+ ; CHECK-NEXT: ccmp w0, w1, #0, gt
221
+ ; CHECK-NEXT: ccmp w4, w5, #0, gt
222
+ ; CHECK-NEXT: b.lt .LBB7_2
223
+ ; CHECK-NEXT: // %bb.1: // %if
243
224
; CHECK-NEXT: mov w0, #1
244
225
; CHECK-NEXT: str w0, [x6]
245
226
; CHECK-NEXT: ret
227
+ ; CHECK-NEXT: .LBB7_2:
228
+ ; CHECK-NEXT: mov w0, wzr
229
+ ; CHECK-NEXT: ret
246
230
entry:
247
231
%c0 = icmp sle i32 %s0 , %s1
248
232
%c1 = icmp sgt i32 %s2 , %s3
0 commit comments