@@ -130,8 +130,8 @@ define i64 @func2(i64 %x, i64 %y) nounwind {
130130; CHECK-T15TE-NEXT: bics r4, r1
131131; CHECK-T15TE-NEXT: asrs r1, r3, #31
132132; 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
135135; CHECK-T15TE-NEXT: bmi .LBB1_2
136136; CHECK-T15TE-NEXT: @ %bb.1:
137137; CHECK-T15TE-NEXT: movs r0, r2
@@ -151,28 +151,28 @@ define i64 @func2(i64 %x, i64 %y) nounwind {
151151}
152152
153153define 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
176176;
177177; CHECK-T2NODSP-LABEL: func16:
178178; CHECK-T2NODSP: @ %bb.0:
@@ -210,6 +210,29 @@ define signext i16 @func16(i16 signext %x, i16 signext %y) nounwind {
210210; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #16
211211; CHECK-ARMBASEDSP-NEXT: bx lr
212212;
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+ ;
213236; CHECK-ARMDSP-LABEL: func16:
214237; CHECK-ARMDSP: @ %bb.0:
215238; CHECK-ARMDSP-NEXT: qadd16 r0, r0, r1
@@ -220,22 +243,22 @@ define signext i16 @func16(i16 signext %x, i16 signext %y) nounwind {
220243}
221244
222245define 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
239262;
240263; CHECK-T2NODSP-LABEL: func8:
241264; CHECK-T2NODSP: @ %bb.0:
@@ -266,6 +289,23 @@ define signext i8 @func8(i8 signext %x, i8 signext %y) nounwind {
266289; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #24
267290; CHECK-ARMBASEDSP-NEXT: bx lr
268291;
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+ ;
269309; CHECK-ARMDSP-LABEL: func8:
270310; CHECK-ARMDSP: @ %bb.0:
271311; CHECK-ARMDSP-NEXT: qadd8 r0, r0, r1
@@ -276,22 +316,22 @@ define signext i8 @func8(i8 signext %x, i8 signext %y) nounwind {
276316}
277317
278318define 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
295335;
296336; CHECK-T2NODSP-LABEL: func3:
297337; CHECK-T2NODSP: @ %bb.0:
@@ -324,6 +364,23 @@ define signext i4 @func3(i4 signext %x, i4 signext %y) nounwind {
324364; CHECK-ARMBASEDSP-NEXT: asr r0, r0, #28
325365; CHECK-ARMBASEDSP-NEXT: bx lr
326366;
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+ ;
327384; CHECK-ARMDSP-LABEL: func3:
328385; CHECK-ARMDSP: @ %bb.0:
329386; CHECK-ARMDSP-NEXT: lsl r0, r0, #28
0 commit comments