diff options
Diffstat (limited to 'test/CodeGen/ARM64/redzone.ll')
-rw-r--r-- | test/CodeGen/ARM64/redzone.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/ARM64/redzone.ll b/test/CodeGen/ARM64/redzone.ll new file mode 100644 index 0000000..b89d7b1 --- /dev/null +++ b/test/CodeGen/ARM64/redzone.ll @@ -0,0 +1,18 @@ +; RUN: llc < %s -march=arm64 -arm64-redzone | FileCheck %s + +define i32 @foo(i32 %a, i32 %b) nounwind ssp { +; CHECK-LABEL: foo: +; CHECK-NOT: sub sp, sp +; CHECK: ret + %a.addr = alloca i32, align 4 + %b.addr = alloca i32, align 4 + %x = alloca i32, align 4 + store i32 %a, i32* %a.addr, align 4 + store i32 %b, i32* %b.addr, align 4 + %tmp = load i32* %a.addr, align 4 + %tmp1 = load i32* %b.addr, align 4 + %add = add nsw i32 %tmp, %tmp1 + store i32 %add, i32* %x, align 4 + %tmp2 = load i32* %x, align 4 + ret i32 %tmp2 +} |