]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/AArch64/arm64-stack-no-frame.ll
Vendor import of llvm RELEASE_350/final tag r216957 (effectively, 3.5.0 release):
[FreeBSD/FreeBSD.git] / test / CodeGen / AArch64 / arm64-stack-no-frame.ll
1 ; RUN: llc -mtriple=arm64-apple-ios7.0 -o - %s | FileCheck %s
2
3 @global = global [20 x i64] zeroinitializer, align 8
4
5 ; The following function has enough locals to need some restoring, but not a
6 ; frame record. In an intermediate frame refactoring, prologue and epilogue were
7 ; inconsistent about how much to move SP.
8 define void @test_stack_no_frame() {
9 ; CHECK: test_stack_no_frame
10 ; CHECK: sub sp, sp, #[[STACKSIZE:[0-9]+]]
11   %local = alloca [20 x i64]
12   %val = load volatile [20 x i64]* @global, align 8
13   store volatile [20 x i64] %val, [20 x i64]* %local, align 8
14
15   %val2 = load volatile [20 x i64]* %local, align 8
16   store volatile [20 x i64] %val2, [20 x i64]* @global, align 8
17
18 ; CHECK: add sp, sp, #[[STACKSIZE]]
19   ret void
20 }