Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / ARM / arm-returnaddr.ll
blob0045145e319c02b9585ef206ba09e9281599adee
1 ; RUN: llc < %s -mtriple=arm-apple-ios | FileCheck %s
2 ; RUN: llc < %s -mtriple=thumbv6-apple-ios | FileCheck %s
3 ; RUN: llc < %s -mtriple=arm-apple-ios -regalloc=basic | FileCheck %s
4 ; RUN: llc < %s -mtriple=thumbv6-apple-ios -regalloc=basic | FileCheck %s
5 ; rdar://8015977
6 ; rdar://8020118
8 define ptr @rt0(i32 %x) nounwind readnone {
9 entry:
10 ; CHECK-LABEL: rt0:
11 ; CHECK: mov r0, lr
12   %0 = tail call ptr @llvm.returnaddress(i32 0)
13   ret ptr %0
16 define ptr @rt2() nounwind readnone {
17 entry:
18 ; CHECK-LABEL: rt2:
19 ; CHECK: ldr r[[R0:[0-9]+]], [r7]
20 ; CHECK: ldr r0, [r[[R0]]]
21 ; CHECK: ldr r0, [r[[R0]], #4]
22   %0 = tail call ptr @llvm.returnaddress(i32 2)
23   ret ptr %0
26 declare ptr @llvm.returnaddress(i32) nounwind readnone