Matthias Braun | 4682ac6 | 2017-05-05 22:04:05 +0000 | [diff] [blame] | 1 | ; RUN: llc -o - %s | FileCheck %s |
| 2 | target triple="arm--" |
| 3 | |
| 4 | @glob = external global i32* |
| 5 | |
| 6 | declare 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 Northover | 4bf394b | 2018-12-07 13:43:55 +0000 | [diff] [blame] | 15 | ; CHECK: mov r0, r6 |
Matthias Braun | 4682ac6 | 2017-05-05 22:04:05 +0000 | [diff] [blame] | 16 | ; CHECK: bl bar |
| 17 | define 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 | |