@@ -44,19 +44,19 @@ define i32 @icmp64_sge_0(i64 %x, i64 %y, i32 %a, i32 %b, i1 %c) {
44
44
; CHECKV7M-NEXT: ldrd r2, r0, [sp]
45
45
; CHECKV7M-NEXT: beq .LBB0_2
46
46
; CHECKV7M-NEXT: @ %bb.1: @ %then
47
- ; CHECKV7M-NEXT: cmp.w r3, #-1
47
+ ; CHECKV7M-NEXT: cmp r3, #0
48
48
; CHECKV7M-NEXT: mov r3, r0
49
- ; CHECKV7M-NEXT: it gt
50
- ; CHECKV7M-NEXT: movgt r3, r2
51
- ; CHECKV7M-NEXT: cmp.w r1, #-1
52
- ; CHECKV7M-NEXT: it gt
53
- ; CHECKV7M-NEXT: movgt r0, r2
49
+ ; CHECKV7M-NEXT: it ge
50
+ ; CHECKV7M-NEXT: movge r3, r2
51
+ ; CHECKV7M-NEXT: cmp r1, #0
52
+ ; CHECKV7M-NEXT: it ge
53
+ ; CHECKV7M-NEXT: movge r0, r2
54
54
; CHECKV7M-NEXT: add r0, r3
55
55
; CHECKV7M-NEXT: bx lr
56
56
; CHECKV7M-NEXT: .LBB0_2: @ %else
57
- ; CHECKV7M-NEXT: cmp.w r1, #-1
58
- ; CHECKV7M-NEXT: it gt
59
- ; CHECKV7M-NEXT: movgt r0, r2
57
+ ; CHECKV7M-NEXT: cmp r1, #0
58
+ ; CHECKV7M-NEXT: it ge
59
+ ; CHECKV7M-NEXT: movge r0, r2
60
60
; CHECKV7M-NEXT: bx lr
61
61
;
62
62
; CHECKV7A-LABEL: icmp64_sge_0:
@@ -66,19 +66,19 @@ define i32 @icmp64_sge_0(i64 %x, i64 %y, i32 %a, i32 %b, i1 %c) {
66
66
; CHECKV7A-NEXT: lsls r2, r2, #31
67
67
; CHECKV7A-NEXT: beq .LBB0_2
68
68
; CHECKV7A-NEXT: @ %bb.1: @ %then
69
- ; CHECKV7A-NEXT: cmp.w r3, #-1
69
+ ; CHECKV7A-NEXT: cmp r3, #0
70
70
; CHECKV7A-NEXT: mov r2, r0
71
- ; CHECKV7A-NEXT: it gt
72
- ; CHECKV7A-NEXT: movgt r2, r12
73
- ; CHECKV7A-NEXT: cmp.w r1, #-1
74
- ; CHECKV7A-NEXT: it gt
75
- ; CHECKV7A-NEXT: movgt r0, r12
71
+ ; CHECKV7A-NEXT: it ge
72
+ ; CHECKV7A-NEXT: movge r2, r12
73
+ ; CHECKV7A-NEXT: cmp r1, #0
74
+ ; CHECKV7A-NEXT: it ge
75
+ ; CHECKV7A-NEXT: movge r0, r12
76
76
; CHECKV7A-NEXT: add r0, r2
77
77
; CHECKV7A-NEXT: bx lr
78
78
; CHECKV7A-NEXT: .LBB0_2: @ %else
79
- ; CHECKV7A-NEXT: cmp.w r1, #-1
80
- ; CHECKV7A-NEXT: it gt
81
- ; CHECKV7A-NEXT: movgt r0, r12
79
+ ; CHECKV7A-NEXT: cmp r1, #0
80
+ ; CHECKV7A-NEXT: it ge
81
+ ; CHECKV7A-NEXT: movge r0, r12
82
82
; CHECKV7A-NEXT: bx lr
83
83
br i1 %c , label %then , label %else
84
84
then:
@@ -135,19 +135,19 @@ define i32 @icmp64_sgt_m1(i64 %x, i64 %y, i32 %a, i32 %b, i1 %c) {
135
135
; CHECKV7M-NEXT: ldrd r2, r0, [sp]
136
136
; CHECKV7M-NEXT: beq .LBB1_2
137
137
; CHECKV7M-NEXT: @ %bb.1: @ %then
138
- ; CHECKV7M-NEXT: cmp.w r3, #-1
138
+ ; CHECKV7M-NEXT: cmp r3, #0
139
139
; CHECKV7M-NEXT: mov r3, r0
140
- ; CHECKV7M-NEXT: it gt
141
- ; CHECKV7M-NEXT: movgt r3, r2
142
- ; CHECKV7M-NEXT: cmp.w r1, #-1
143
- ; CHECKV7M-NEXT: it gt
144
- ; CHECKV7M-NEXT: movgt r0, r2
140
+ ; CHECKV7M-NEXT: it ge
141
+ ; CHECKV7M-NEXT: movge r3, r2
142
+ ; CHECKV7M-NEXT: cmp r1, #0
143
+ ; CHECKV7M-NEXT: it ge
144
+ ; CHECKV7M-NEXT: movge r0, r2
145
145
; CHECKV7M-NEXT: add r0, r3
146
146
; CHECKV7M-NEXT: bx lr
147
147
; CHECKV7M-NEXT: .LBB1_2: @ %else
148
- ; CHECKV7M-NEXT: cmp.w r3, #-1
149
- ; CHECKV7M-NEXT: it gt
150
- ; CHECKV7M-NEXT: movgt r0, r2
148
+ ; CHECKV7M-NEXT: cmp r3, #0
149
+ ; CHECKV7M-NEXT: it ge
150
+ ; CHECKV7M-NEXT: movge r0, r2
151
151
; CHECKV7M-NEXT: bx lr
152
152
;
153
153
; CHECKV7A-LABEL: icmp64_sgt_m1:
@@ -157,19 +157,19 @@ define i32 @icmp64_sgt_m1(i64 %x, i64 %y, i32 %a, i32 %b, i1 %c) {
157
157
; CHECKV7A-NEXT: lsls r2, r2, #31
158
158
; CHECKV7A-NEXT: beq .LBB1_2
159
159
; CHECKV7A-NEXT: @ %bb.1: @ %then
160
- ; CHECKV7A-NEXT: cmp.w r3, #-1
160
+ ; CHECKV7A-NEXT: cmp r3, #0
161
161
; CHECKV7A-NEXT: mov r2, r0
162
- ; CHECKV7A-NEXT: it gt
163
- ; CHECKV7A-NEXT: movgt r2, r12
164
- ; CHECKV7A-NEXT: cmp.w r1, #-1
165
- ; CHECKV7A-NEXT: it gt
166
- ; CHECKV7A-NEXT: movgt r0, r12
162
+ ; CHECKV7A-NEXT: it ge
163
+ ; CHECKV7A-NEXT: movge r2, r12
164
+ ; CHECKV7A-NEXT: cmp r1, #0
165
+ ; CHECKV7A-NEXT: it ge
166
+ ; CHECKV7A-NEXT: movge r0, r12
167
167
; CHECKV7A-NEXT: add r0, r2
168
168
; CHECKV7A-NEXT: bx lr
169
169
; CHECKV7A-NEXT: .LBB1_2: @ %else
170
- ; CHECKV7A-NEXT: cmp.w r3, #-1
171
- ; CHECKV7A-NEXT: it gt
172
- ; CHECKV7A-NEXT: movgt r0, r12
170
+ ; CHECKV7A-NEXT: cmp r3, #0
171
+ ; CHECKV7A-NEXT: it ge
172
+ ; CHECKV7A-NEXT: movge r0, r12
173
173
; CHECKV7A-NEXT: bx lr
174
174
br i1 %c , label %then , label %else
175
175
then:
@@ -227,19 +227,19 @@ define i32 @icmp32_sge_0(i32 %x, i32 %y, i32 %a, i32 %b, i1 %c) {
227
227
; CHECKV7M-NEXT: lsls r3, r3, #31
228
228
; CHECKV7M-NEXT: beq .LBB2_2
229
229
; CHECKV7M-NEXT: @ %bb.1: @ %then
230
- ; CHECKV7M-NEXT: cmp.w r1, #-1
230
+ ; CHECKV7M-NEXT: cmp r1, #0
231
231
; CHECKV7M-NEXT: mov r1, r12
232
- ; CHECKV7M-NEXT: it gt
233
- ; CHECKV7M-NEXT: movgt r1, r2
234
- ; CHECKV7M-NEXT: cmp.w r0, #-1
235
- ; CHECKV7M-NEXT: it gt
236
- ; CHECKV7M-NEXT: movgt r12, r2
232
+ ; CHECKV7M-NEXT: it ge
233
+ ; CHECKV7M-NEXT: movge r1, r2
234
+ ; CHECKV7M-NEXT: cmp r0, #0
235
+ ; CHECKV7M-NEXT: it ge
236
+ ; CHECKV7M-NEXT: movge r12, r2
237
237
; CHECKV7M-NEXT: add.w r0, r12, r1
238
238
; CHECKV7M-NEXT: bx lr
239
239
; CHECKV7M-NEXT: .LBB2_2: @ %else
240
- ; CHECKV7M-NEXT: cmp.w r0, #-1
241
- ; CHECKV7M-NEXT: it gt
242
- ; CHECKV7M-NEXT: movgt r12, r2
240
+ ; CHECKV7M-NEXT: cmp r0, #0
241
+ ; CHECKV7M-NEXT: it ge
242
+ ; CHECKV7M-NEXT: movge r12, r2
243
243
; CHECKV7M-NEXT: mov r0, r12
244
244
; CHECKV7M-NEXT: bx lr
245
245
;
@@ -250,19 +250,19 @@ define i32 @icmp32_sge_0(i32 %x, i32 %y, i32 %a, i32 %b, i1 %c) {
250
250
; CHECKV7A-NEXT: lsls r3, r3, #31
251
251
; CHECKV7A-NEXT: beq .LBB2_2
252
252
; CHECKV7A-NEXT: @ %bb.1: @ %then
253
- ; CHECKV7A-NEXT: cmp.w r1, #-1
253
+ ; CHECKV7A-NEXT: cmp r1, #0
254
254
; CHECKV7A-NEXT: mov r1, r12
255
- ; CHECKV7A-NEXT: it gt
256
- ; CHECKV7A-NEXT: movgt r1, r2
257
- ; CHECKV7A-NEXT: cmp.w r0, #-1
258
- ; CHECKV7A-NEXT: it gt
259
- ; CHECKV7A-NEXT: movgt r12, r2
255
+ ; CHECKV7A-NEXT: it ge
256
+ ; CHECKV7A-NEXT: movge r1, r2
257
+ ; CHECKV7A-NEXT: cmp r0, #0
258
+ ; CHECKV7A-NEXT: it ge
259
+ ; CHECKV7A-NEXT: movge r12, r2
260
260
; CHECKV7A-NEXT: add.w r0, r12, r1
261
261
; CHECKV7A-NEXT: bx lr
262
262
; CHECKV7A-NEXT: .LBB2_2: @ %else
263
- ; CHECKV7A-NEXT: cmp.w r0, #-1
264
- ; CHECKV7A-NEXT: it gt
265
- ; CHECKV7A-NEXT: movgt r12, r2
263
+ ; CHECKV7A-NEXT: cmp r0, #0
264
+ ; CHECKV7A-NEXT: it ge
265
+ ; CHECKV7A-NEXT: movge r12, r2
266
266
; CHECKV7A-NEXT: mov r0, r12
267
267
; CHECKV7A-NEXT: bx lr
268
268
br i1 %c , label %then , label %else
@@ -321,19 +321,19 @@ define i32 @icmp32_sgt_m1(i32 %x, i32 %y, i32 %a, i32 %b, i1 %c) {
321
321
; CHECKV7M-NEXT: lsls r3, r3, #31
322
322
; CHECKV7M-NEXT: beq .LBB3_2
323
323
; CHECKV7M-NEXT: @ %bb.1: @ %then
324
- ; CHECKV7M-NEXT: cmp.w r1, #-1
324
+ ; CHECKV7M-NEXT: cmp r1, #0
325
325
; CHECKV7M-NEXT: mov r1, r12
326
- ; CHECKV7M-NEXT: it gt
327
- ; CHECKV7M-NEXT: movgt r1, r2
328
- ; CHECKV7M-NEXT: cmp.w r0, #-1
329
- ; CHECKV7M-NEXT: it gt
330
- ; CHECKV7M-NEXT: movgt r12, r2
326
+ ; CHECKV7M-NEXT: it ge
327
+ ; CHECKV7M-NEXT: movge r1, r2
328
+ ; CHECKV7M-NEXT: cmp r0, #0
329
+ ; CHECKV7M-NEXT: it ge
330
+ ; CHECKV7M-NEXT: movge r12, r2
331
331
; CHECKV7M-NEXT: add.w r0, r12, r1
332
332
; CHECKV7M-NEXT: bx lr
333
333
; CHECKV7M-NEXT: .LBB3_2: @ %else
334
- ; CHECKV7M-NEXT: cmp.w r1, #-1
335
- ; CHECKV7M-NEXT: it gt
336
- ; CHECKV7M-NEXT: movgt r12, r2
334
+ ; CHECKV7M-NEXT: cmp r1, #0
335
+ ; CHECKV7M-NEXT: it ge
336
+ ; CHECKV7M-NEXT: movge r12, r2
337
337
; CHECKV7M-NEXT: mov r0, r12
338
338
; CHECKV7M-NEXT: bx lr
339
339
;
@@ -344,19 +344,19 @@ define i32 @icmp32_sgt_m1(i32 %x, i32 %y, i32 %a, i32 %b, i1 %c) {
344
344
; CHECKV7A-NEXT: lsls r3, r3, #31
345
345
; CHECKV7A-NEXT: beq .LBB3_2
346
346
; CHECKV7A-NEXT: @ %bb.1: @ %then
347
- ; CHECKV7A-NEXT: cmp.w r1, #-1
347
+ ; CHECKV7A-NEXT: cmp r1, #0
348
348
; CHECKV7A-NEXT: mov r1, r12
349
- ; CHECKV7A-NEXT: it gt
350
- ; CHECKV7A-NEXT: movgt r1, r2
351
- ; CHECKV7A-NEXT: cmp.w r0, #-1
352
- ; CHECKV7A-NEXT: it gt
353
- ; CHECKV7A-NEXT: movgt r12, r2
349
+ ; CHECKV7A-NEXT: it ge
350
+ ; CHECKV7A-NEXT: movge r1, r2
351
+ ; CHECKV7A-NEXT: cmp r0, #0
352
+ ; CHECKV7A-NEXT: it ge
353
+ ; CHECKV7A-NEXT: movge r12, r2
354
354
; CHECKV7A-NEXT: add.w r0, r12, r1
355
355
; CHECKV7A-NEXT: bx lr
356
356
; CHECKV7A-NEXT: .LBB3_2: @ %else
357
- ; CHECKV7A-NEXT: cmp.w r1, #-1
358
- ; CHECKV7A-NEXT: it gt
359
- ; CHECKV7A-NEXT: movgt r12, r2
357
+ ; CHECKV7A-NEXT: cmp r1, #0
358
+ ; CHECKV7A-NEXT: it ge
359
+ ; CHECKV7A-NEXT: movge r12, r2
360
360
; CHECKV7A-NEXT: mov r0, r12
361
361
; CHECKV7A-NEXT: bx lr
362
362
br i1 %c , label %then , label %else
0 commit comments