AArch64/ARM64: add another set of tests from AArch64
[oota-llvm.git] / test / CodeGen / AArch64 / returnaddr.ll
1 ; RUN: llc < %s -mtriple=aarch64-none-linux-gnu  | FileCheck %s
2 ; RUN: llc -o - %s -mtriple=arm64-apple-ios7.0 | FileCheck %s
3
4 define i8* @rt0(i32 %x) nounwind readnone {
5 entry:
6 ; CHECK-LABEL: rt0:
7 ; CHECK: mov x0, x30
8   %0 = tail call i8* @llvm.returnaddress(i32 0)
9   ret i8* %0
10 }
11
12 define i8* @rt2() nounwind readnone {
13 entry:
14 ; CHECK-LABEL: rt2:
15 ; CHECK: ldr x[[reg:[0-9]+]], [x29]
16 ; CHECK: ldr x[[reg]], [x[[reg]]]
17 ; CHECK: ldr x0, [x[[reg]], #8]
18   %0 = tail call i8* @llvm.returnaddress(i32 2)
19   ret i8* %0
20 }
21
22 declare i8* @llvm.returnaddress(i32) nounwind readnone