1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
2 ; RUN: llc -mtriple=arm--none-eabi < %s | FileCheck %s
4 %type_80 = type [20 x i32]
6 declare void @func_80(ptr, ptr byval(%type_80))
8 define void @test_80() {
9 ; CHECK-LABEL: test_80:
11 ; CHECK-NEXT: .save {r11, lr}
12 ; CHECK-NEXT: push {r11, lr}
13 ; CHECK-NEXT: .pad #152
14 ; CHECK-NEXT: sub sp, sp, #152
15 ; CHECK-NEXT: add r0, sp, #72
16 ; CHECK-NEXT: ldr r1, .LCPI0_0
17 ; CHECK-NEXT: add r0, r0, #12
18 ; CHECK-NEXT: mov r2, sp
19 ; CHECK-NEXT: .LBB0_1: @ =>This Inner Loop Header: Depth=1
20 ; CHECK-NEXT: ldr r3, [r0], #4
21 ; CHECK-NEXT: subs r1, r1, #4
22 ; CHECK-NEXT: str r3, [r2], #4
23 ; CHECK-NEXT: bne .LBB0_1
24 ; CHECK-NEXT: @ %bb.2:
25 ; CHECK-NEXT: add r3, sp, #72
26 ; CHECK-NEXT: mov r0, #0
27 ; CHECK-NEXT: ldm r3, {r1, r2, r3}
28 ; CHECK-NEXT: bl func_80
29 ; CHECK-NEXT: add sp, sp, #152
30 ; CHECK-NEXT: pop {r11, lr}
31 ; CHECK-NEXT: mov pc, lr
32 ; CHECK-NEXT: .p2align 2
33 ; CHECK-NEXT: @ %bb.3:
34 ; CHECK-NEXT: .LCPI0_0:
35 ; CHECK-NEXT: .long 68 @ 0x44
37 call void @func_80(ptr null, ptr %a)
41 %type_4000 = type [1000 x i32]
43 declare void @func_4000(ptr, ptr byval(%type_4000))
45 define void @test_4000() {
46 ; CHECK-LABEL: test_4000:
48 ; CHECK-NEXT: .save {r11, lr}
49 ; CHECK-NEXT: push {r11, lr}
50 ; CHECK-NEXT: .pad #4000
51 ; CHECK-NEXT: sub sp, sp, #4000
52 ; CHECK-NEXT: sub sp, sp, #920
53 ; CHECK-NEXT: sub sp, sp, #3072
54 ; CHECK-NEXT: add lr, sp, #3072
55 ; CHECK-NEXT: ldr r1, .LCPI1_0
56 ; CHECK-NEXT: add r0, lr, #920
57 ; CHECK-NEXT: mov r2, sp
58 ; CHECK-NEXT: add r0, r0, #12
59 ; CHECK-NEXT: .LBB1_1: @ =>This Inner Loop Header: Depth=1
60 ; CHECK-NEXT: ldr r3, [r0], #4
61 ; CHECK-NEXT: subs r1, r1, #4
62 ; CHECK-NEXT: str r3, [r2], #4
63 ; CHECK-NEXT: bne .LBB1_1
64 ; CHECK-NEXT: @ %bb.2:
65 ; CHECK-NEXT: ldr r1, [sp, #3992]
66 ; CHECK-NEXT: mov r0, #0
67 ; CHECK-NEXT: ldr r2, [sp, #3996]
68 ; CHECK-NEXT: ldr r3, [sp, #4000]
69 ; CHECK-NEXT: bl func_4000
70 ; CHECK-NEXT: add sp, sp, #920
71 ; CHECK-NEXT: add sp, sp, #3072
72 ; CHECK-NEXT: add sp, sp, #4000
73 ; CHECK-NEXT: pop {r11, lr}
74 ; CHECK-NEXT: mov pc, lr
75 ; CHECK-NEXT: .p2align 2
76 ; CHECK-NEXT: @ %bb.3:
77 ; CHECK-NEXT: .LCPI1_0:
78 ; CHECK-NEXT: .long 3988 @ 0xf94
79 %a = alloca %type_4000
80 call void @func_4000(ptr null, ptr %a)