xref: /llvm-project/llvm/test/CodeGen/ARM/alloca-align.ll (revision bed1c7f061aa12417aa081e334afdba45767b938)
1; RUN: llc -o - %s | FileCheck %s
2target triple="arm--"
3
4@glob = external global ptr
5
6declare void @bar(ptr, ptr byval([20000 x i8]))
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
15; CHECK: mov r0, r6
16; CHECK: bl bar
17define void @foo(ptr %addr) {
18  %tmp = alloca [4 x i32], align 32
19  call void @bar(ptr %tmp, ptr byval([20000 x i8]) %addr)
20  ret void
21}
22
23