xref: /llvm-project/llvm/test/CodeGen/ARM/arm-returnaddr.ll (revision 755d45be4329f99407b49b9dc122cbe5374876c1)
1; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s
2; RUN: llc < %s -mtriple=thumbv6-apple-darwin
3; rdar://8015977
4; rdar://8020118
5
6define arm_apcscc i8* @rt0(i32 %x) nounwind readnone {
7entry:
8; CHECK: rt0:
9; CHECK: mov r0, lr
10  %0 = tail call i8* @llvm.returnaddress(i32 0)
11  ret i8* %0
12}
13
14define arm_apcscc i8* @rt2() nounwind readnone {
15entry:
16; CHECK: rt2:
17; CHECK: ldr r0, [r7]
18; CHECK: ldr r0, [r0]
19; CHECK: ldr r0, [r0, #4]
20  %0 = tail call i8* @llvm.returnaddress(i32 2)
21  ret i8* %0
22}
23
24declare i8* @llvm.returnaddress(i32) nounwind readnone
25