blob: 3326d361c07f07111e522e48d10dc655a1402df5 [file] [log] [blame]
Matthias Braun4682ac62017-05-05 22:04:05 +00001; RUN: llc -o - %s | FileCheck %s
2target triple="arm--"
3
4@glob = external global i32*
5
6declare void @bar(i32*, [20000 x i8]* byval)
7
8; CHECK-LABEL: foo:
9; We should see the stack getting additional alignment
10; CHECK: sub sp, sp, #16
11; CHECK: bic sp, sp, #31
12; And a base pointer getting used.
13; CHECK: mov r6, sp
14; Which is passed to the call
Tim Northover4bf394b2018-12-07 13:43:55 +000015; CHECK: mov r0, r6
Matthias Braun4682ac62017-05-05 22:04:05 +000016; CHECK: bl bar
17define void @foo([20000 x i8]* %addr) {
18 %tmp = alloca [4 x i32], align 32
19 %tmp0 = getelementptr [4 x i32], [4 x i32]* %tmp, i32 0, i32 0
20 call void @bar(i32* %tmp0, [20000 x i8]* byval %addr)
21 ret void
22}
23