@@ -130,8 +130,8 @@ define i64 @func2(i64 %x, i64 %y) nounwind {
130
130
; CHECK-T15TE-NEXT: bics r4, r1
131
131
; CHECK-T15TE-NEXT: asrs r1, r3, #31
132
132
; CHECK-T15TE-NEXT: cmp r4, #0
133
- ; CHECK-T15TE-NEXT: push {r1}
134
- ; CHECK-T15TE-NEXT: pop {r0}
133
+ ; CHECK-T15TE-NEXT: mov r10, r1
134
+ ; CHECK-T15TE-NEXT: mov r0, r10
135
135
; CHECK-T15TE-NEXT: bmi .LBB1_2
136
136
; CHECK-T15TE-NEXT: @ %bb.1:
137
137
; CHECK-T15TE-NEXT: movs r0, r2
@@ -151,28 +151,28 @@ define i64 @func2(i64 %x, i64 %y) nounwind {
151
151
}
152
152
153
153
define signext i16 @func16 (i16 signext %x , i16 signext %y ) nounwind {
154
- ; CHECK-T1 -LABEL: func16:
155
- ; CHECK-T1 : @ %bb.0:
156
- ; CHECK-T1 -NEXT: adds r0, r0, r1
157
- ; CHECK-T1 -NEXT: ldr r1, .LCPI2_0
158
- ; CHECK-T1 -NEXT: cmp r0, r1
159
- ; CHECK-T1 -NEXT: blt .LBB2_2
160
- ; CHECK-T1 -NEXT: @ %bb.1:
161
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
162
- ; CHECK-T1 -NEXT: .LBB2_2:
163
- ; CHECK-T1 -NEXT: ldr r1, .LCPI2_1
164
- ; CHECK-T1 -NEXT: cmp r0, r1
165
- ; CHECK-T1 -NEXT: bgt .LBB2_4
166
- ; CHECK-T1 -NEXT: @ %bb.3:
167
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
168
- ; CHECK-T1 -NEXT: .LBB2_4:
169
- ; CHECK-T1 -NEXT: bx lr
170
- ; CHECK-T1 -NEXT: .p2align 2
171
- ; CHECK-T1 -NEXT: @ %bb.5:
172
- ; CHECK-T1 -NEXT: .LCPI2_0:
173
- ; CHECK-T1 -NEXT: .long 32767 @ 0x7fff
174
- ; CHECK-T1 -NEXT: .LCPI2_1:
175
- ; CHECK-T1 -NEXT: .long 4294934528 @ 0xffff8000
154
+ ; CHECK-T16 -LABEL: func16:
155
+ ; CHECK-T16 : @ %bb.0:
156
+ ; CHECK-T16 -NEXT: adds r0, r0, r1
157
+ ; CHECK-T16 -NEXT: ldr r1, .LCPI2_0
158
+ ; CHECK-T16 -NEXT: cmp r0, r1
159
+ ; CHECK-T16 -NEXT: blt .LBB2_2
160
+ ; CHECK-T16 -NEXT: @ %bb.1:
161
+ ; CHECK-T16 -NEXT: mov r0, r1
162
+ ; CHECK-T16 -NEXT: .LBB2_2:
163
+ ; CHECK-T16 -NEXT: ldr r1, .LCPI2_1
164
+ ; CHECK-T16 -NEXT: cmp r0, r1
165
+ ; CHECK-T16 -NEXT: bgt .LBB2_4
166
+ ; CHECK-T16 -NEXT: @ %bb.3:
167
+ ; CHECK-T16 -NEXT: mov r0, r1
168
+ ; CHECK-T16 -NEXT: .LBB2_4:
169
+ ; CHECK-T16 -NEXT: bx lr
170
+ ; CHECK-T16 -NEXT: .p2align 2
171
+ ; CHECK-T16 -NEXT: @ %bb.5:
172
+ ; CHECK-T16 -NEXT: .LCPI2_0:
173
+ ; CHECK-T16 -NEXT: .long 32767 @ 0x7fff
174
+ ; CHECK-T16 -NEXT: .LCPI2_1:
175
+ ; CHECK-T16 -NEXT: .long 4294934528 @ 0xffff8000
176
176
;
177
177
; CHECK-T2NODSP-LABEL: func16:
178
178
; CHECK-T2NODSP: @ %bb.0:
@@ -210,6 +210,29 @@ define signext i16 @func16(i16 signext %x, i16 signext %y) nounwind {
210
210
; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #16
211
211
; CHECK-ARMBASEDSP-NEXT: bx lr
212
212
;
213
+ ; CHECK-T15TE-LABEL: func16:
214
+ ; CHECK-T15TE: @ %bb.0:
215
+ ; CHECK-T15TE-NEXT: adds r0, r0, r1
216
+ ; CHECK-T15TE-NEXT: ldr r1, .LCPI2_0
217
+ ; CHECK-T15TE-NEXT: cmp r0, r1
218
+ ; CHECK-T15TE-NEXT: blt .LBB2_2
219
+ ; CHECK-T15TE-NEXT: @ %bb.1:
220
+ ; CHECK-T15TE-NEXT: movs r0, r1
221
+ ; CHECK-T15TE-NEXT: .LBB2_2:
222
+ ; CHECK-T15TE-NEXT: ldr r1, .LCPI2_1
223
+ ; CHECK-T15TE-NEXT: cmp r0, r1
224
+ ; CHECK-T15TE-NEXT: bgt .LBB2_4
225
+ ; CHECK-T15TE-NEXT: @ %bb.3:
226
+ ; CHECK-T15TE-NEXT: movs r0, r1
227
+ ; CHECK-T15TE-NEXT: .LBB2_4:
228
+ ; CHECK-T15TE-NEXT: bx lr
229
+ ; CHECK-T15TE-NEXT: .p2align 2
230
+ ; CHECK-T15TE-NEXT: @ %bb.5:
231
+ ; CHECK-T15TE-NEXT: .LCPI2_0:
232
+ ; CHECK-T15TE-NEXT: .long 32767 @ 0x7fff
233
+ ; CHECK-T15TE-NEXT: .LCPI2_1:
234
+ ; CHECK-T15TE-NEXT: .long 4294934528 @ 0xffff8000
235
+ ;
213
236
; CHECK-ARMDSP-LABEL: func16:
214
237
; CHECK-ARMDSP: @ %bb.0:
215
238
; CHECK-ARMDSP-NEXT: qadd16 r0, r0, r1
@@ -220,22 +243,22 @@ define signext i16 @func16(i16 signext %x, i16 signext %y) nounwind {
220
243
}
221
244
222
245
define signext i8 @func8 (i8 signext %x , i8 signext %y ) nounwind {
223
- ; CHECK-T1 -LABEL: func8:
224
- ; CHECK-T1 : @ %bb.0:
225
- ; CHECK-T1 -NEXT: adds r0, r0, r1
226
- ; CHECK-T1 -NEXT: movs r1, #127
227
- ; CHECK-T1 -NEXT: cmp r0, #127
228
- ; CHECK-T1 -NEXT: blt .LBB3_2
229
- ; CHECK-T1 -NEXT: @ %bb.1:
230
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
231
- ; CHECK-T1 -NEXT: .LBB3_2:
232
- ; CHECK-T1 -NEXT: mvns r1, r1
233
- ; CHECK-T1 -NEXT: cmp r0, r1
234
- ; CHECK-T1 -NEXT: bgt .LBB3_4
235
- ; CHECK-T1 -NEXT: @ %bb.3:
236
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
237
- ; CHECK-T1 -NEXT: .LBB3_4:
238
- ; CHECK-T1 -NEXT: bx lr
246
+ ; CHECK-T16 -LABEL: func8:
247
+ ; CHECK-T16 : @ %bb.0:
248
+ ; CHECK-T16 -NEXT: adds r0, r0, r1
249
+ ; CHECK-T16 -NEXT: movs r1, #127
250
+ ; CHECK-T16 -NEXT: cmp r0, #127
251
+ ; CHECK-T16 -NEXT: blt .LBB3_2
252
+ ; CHECK-T16 -NEXT: @ %bb.1:
253
+ ; CHECK-T16 -NEXT: mov r0, r1
254
+ ; CHECK-T16 -NEXT: .LBB3_2:
255
+ ; CHECK-T16 -NEXT: mvns r1, r1
256
+ ; CHECK-T16 -NEXT: cmp r0, r1
257
+ ; CHECK-T16 -NEXT: bgt .LBB3_4
258
+ ; CHECK-T16 -NEXT: @ %bb.3:
259
+ ; CHECK-T16 -NEXT: mov r0, r1
260
+ ; CHECK-T16 -NEXT: .LBB3_4:
261
+ ; CHECK-T16 -NEXT: bx lr
239
262
;
240
263
; CHECK-T2NODSP-LABEL: func8:
241
264
; CHECK-T2NODSP: @ %bb.0:
@@ -266,6 +289,23 @@ define signext i8 @func8(i8 signext %x, i8 signext %y) nounwind {
266
289
; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #24
267
290
; CHECK-ARMBASEDSP-NEXT: bx lr
268
291
;
292
+ ; CHECK-T15TE-LABEL: func8:
293
+ ; CHECK-T15TE: @ %bb.0:
294
+ ; CHECK-T15TE-NEXT: adds r0, r0, r1
295
+ ; CHECK-T15TE-NEXT: movs r1, #127
296
+ ; CHECK-T15TE-NEXT: cmp r0, #127
297
+ ; CHECK-T15TE-NEXT: blt .LBB3_2
298
+ ; CHECK-T15TE-NEXT: @ %bb.1:
299
+ ; CHECK-T15TE-NEXT: movs r0, r1
300
+ ; CHECK-T15TE-NEXT: .LBB3_2:
301
+ ; CHECK-T15TE-NEXT: mvns r1, r1
302
+ ; CHECK-T15TE-NEXT: cmp r0, r1
303
+ ; CHECK-T15TE-NEXT: bgt .LBB3_4
304
+ ; CHECK-T15TE-NEXT: @ %bb.3:
305
+ ; CHECK-T15TE-NEXT: movs r0, r1
306
+ ; CHECK-T15TE-NEXT: .LBB3_4:
307
+ ; CHECK-T15TE-NEXT: bx lr
308
+ ;
269
309
; CHECK-ARMDSP-LABEL: func8:
270
310
; CHECK-ARMDSP: @ %bb.0:
271
311
; CHECK-ARMDSP-NEXT: qadd8 r0, r0, r1
@@ -276,22 +316,22 @@ define signext i8 @func8(i8 signext %x, i8 signext %y) nounwind {
276
316
}
277
317
278
318
define signext i4 @func3 (i4 signext %x , i4 signext %y ) nounwind {
279
- ; CHECK-T1 -LABEL: func3:
280
- ; CHECK-T1 : @ %bb.0:
281
- ; CHECK-T1 -NEXT: adds r0, r0, r1
282
- ; CHECK-T1 -NEXT: movs r1, #7
283
- ; CHECK-T1 -NEXT: cmp r0, #7
284
- ; CHECK-T1 -NEXT: blt .LBB4_2
285
- ; CHECK-T1 -NEXT: @ %bb.1:
286
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
287
- ; CHECK-T1 -NEXT: .LBB4_2:
288
- ; CHECK-T1 -NEXT: mvns r1, r1
289
- ; CHECK-T1 -NEXT: cmp r0, r1
290
- ; CHECK-T1 -NEXT: bgt .LBB4_4
291
- ; CHECK-T1 -NEXT: @ %bb.3:
292
- ; CHECK-T1 -NEXT: {{movs| mov}} r0, r1
293
- ; CHECK-T1 -NEXT: .LBB4_4:
294
- ; CHECK-T1 -NEXT: bx lr
319
+ ; CHECK-T16 -LABEL: func3:
320
+ ; CHECK-T16 : @ %bb.0:
321
+ ; CHECK-T16 -NEXT: adds r0, r0, r1
322
+ ; CHECK-T16 -NEXT: movs r1, #7
323
+ ; CHECK-T16 -NEXT: cmp r0, #7
324
+ ; CHECK-T16 -NEXT: blt .LBB4_2
325
+ ; CHECK-T16 -NEXT: @ %bb.1:
326
+ ; CHECK-T16 -NEXT: mov r0, r1
327
+ ; CHECK-T16 -NEXT: .LBB4_2:
328
+ ; CHECK-T16 -NEXT: mvns r1, r1
329
+ ; CHECK-T16 -NEXT: cmp r0, r1
330
+ ; CHECK-T16 -NEXT: bgt .LBB4_4
331
+ ; CHECK-T16 -NEXT: @ %bb.3:
332
+ ; CHECK-T16 -NEXT: mov r0, r1
333
+ ; CHECK-T16 -NEXT: .LBB4_4:
334
+ ; CHECK-T16 -NEXT: bx lr
295
335
;
296
336
; CHECK-T2NODSP-LABEL: func3:
297
337
; CHECK-T2NODSP: @ %bb.0:
@@ -324,6 +364,23 @@ define signext i4 @func3(i4 signext %x, i4 signext %y) nounwind {
324
364
; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #28
325
365
; CHECK-ARMBASEDSP-NEXT: bx lr
326
366
;
367
+ ; CHECK-T15TE-LABEL: func3:
368
+ ; CHECK-T15TE: @ %bb.0:
369
+ ; CHECK-T15TE-NEXT: adds r0, r0, r1
370
+ ; CHECK-T15TE-NEXT: movs r1, #7
371
+ ; CHECK-T15TE-NEXT: cmp r0, #7
372
+ ; CHECK-T15TE-NEXT: blt .LBB4_2
373
+ ; CHECK-T15TE-NEXT: @ %bb.1:
374
+ ; CHECK-T15TE-NEXT: movs r0, r1
375
+ ; CHECK-T15TE-NEXT: .LBB4_2:
376
+ ; CHECK-T15TE-NEXT: mvns r1, r1
377
+ ; CHECK-T15TE-NEXT: cmp r0, r1
378
+ ; CHECK-T15TE-NEXT: bgt .LBB4_4
379
+ ; CHECK-T15TE-NEXT: @ %bb.3:
380
+ ; CHECK-T15TE-NEXT: movs r0, r1
381
+ ; CHECK-T15TE-NEXT: .LBB4_4:
382
+ ; CHECK-T15TE-NEXT: bx lr
383
+ ;
327
384
; CHECK-ARMDSP-LABEL: func3:
328
385
; CHECK-ARMDSP: @ %bb.0:
329
386
; CHECK-ARMDSP-NEXT: lsl r0, r0, #28
0 commit comments