• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -o - %s | FileCheck %s
2target triple="arm--"
3
4@glob = external global i32*
5
6declare void @bar(i32*, [20000 x i8]* 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([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([20000 x i8]) %addr)
21  ret void
22}
23
24