| ; RUN: llc -mtriple=arm64-apple-ios7.0 -o - %s | FileCheck %s |
| |
| @global = global [20 x i64] zeroinitializer, align 8 |
| |
| ; The following function has enough locals to need some restoring, but not a |
| ; frame record. In an intermediate frame refactoring, prologue and epilogue were |
| ; inconsistent about how much to move SP. |
| define void @test_stack_no_frame() { |
| ; CHECK: test_stack_no_frame |
| ; CHECK: sub sp, sp, #[[STACKSIZE:[0-9]+]] |
| %local = alloca [20 x i64] |
| %val = load volatile [20 x i64], [20 x i64]* @global, align 8 |
| store volatile [20 x i64] %val, [20 x i64]* %local, align 8 |
| |
| %val2 = load volatile [20 x i64], [20 x i64]* %local, align 8 |
| store volatile [20 x i64] %val2, [20 x i64]* @global, align 8 |
| |
| ; CHECK: add sp, sp, #[[STACKSIZE]] |
| ret void |
| } |