xref: /llvm-project/llvm/test/Transforms/Inline/inline_negative_result.ll (revision e5369823bc0655806469724335d0ca5a4c17d8c7)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -passes=inline -S | FileCheck %s
3
4; PR42084
5
6define internal fastcc void @func4() {
7; CHECK-LABEL: @func4(
8; CHECK-NEXT:  entry:
9; CHECK-NEXT:    br label [[FOR_COND:%.*]]
10; CHECK:       for.cond:
11; CHECK-NEXT:    tail call void (...) @g()
12; CHECK-NEXT:    br label [[FOR_COND]]
13;
14entry:
15  br label %for.cond
16
17for.cond:
18  tail call void (...) @g()
19  br label %for.cond
20}
21
22define internal fastcc void @func3() {
23; CHECK-LABEL: @func3(
24; CHECK-NEXT:  entry:
25; CHECK-NEXT:    tail call fastcc void @func4()
26; CHECK-NEXT:    unreachable
27;
28entry:
29  tail call fastcc void @func4()
30  unreachable
31}
32
33define internal fastcc void @func2() {
34; CHECK-LABEL: @func2(
35; CHECK-NEXT:  entry:
36; CHECK-NEXT:    tail call fastcc void @func3()
37; CHECK-NEXT:    unreachable
38;
39entry:
40  tail call fastcc void @func3()
41  unreachable
42}
43
44define internal fastcc void @func1() {
45; CHECK-LABEL: @func1(
46; CHECK-NEXT:  entry:
47; CHECK-NEXT:    tail call fastcc void @func2()
48; CHECK-NEXT:    unreachable
49;
50entry:
51  tail call fastcc void @func2()
52  unreachable
53}
54
55define i32 @main() {
56; CHECK-LABEL: @main(
57; CHECK-NEXT:  entry:
58; CHECK-NEXT:    tail call fastcc void @func1()
59; CHECK-NEXT:    unreachable
60;
61entry:
62  tail call fastcc void @func1()
63  unreachable
64}
65
66declare void @g(...)
67