d294f2cf1abaf80021478fd54512ac31a000ff9c
[oota-llvm.git] / test / CodeGen / ARM / call-noret.ll
1 ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=cortex-a8   | FileCheck %s -check-prefix=ARM
2 ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=swift       | FileCheck %s -check-prefix=SWIFT
3 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=T2
4 ; rdar://8979299
5
6 define void @t1() noreturn nounwind ssp {
7 entry:
8 ; ARM: t1:
9 ; ARM: mov lr, pc
10 ; ARM: b _bar
11
12 ; SWIFT: t1:
13 ; SWIFT: mov lr, pc
14 ; SWIFT: b _bar
15
16 ; T2: t1:
17 ; T2: blx _bar
18   tail call void @bar() noreturn nounwind
19   unreachable
20 }
21
22 define void @t2() noreturn nounwind ssp {
23 entry:
24 ; ARM: t2:
25 ; ARM: mov lr, pc
26 ; ARM: b _t1
27
28 ; SWIFT: t2:
29 ; SWIFT: mov lr, pc
30 ; SWIFT: b _t1
31
32 ; T2: t2:
33 ; T2: mov lr, pc
34 ; T2: b.w _t1
35   tail call void @t1() noreturn nounwind
36   unreachable
37 }
38
39 declare void @bar() noreturn