[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / Inline / inline_negative_result.ll
blob8dd185ca6d35bcc910f782d1de9b41ab115275dc
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -inline -S | FileCheck %s
4 ; PR42084
6 define 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]]
14 entry:
15   br label %for.cond
17 for.cond:
18   tail call void (...) @g()
19   br label %for.cond
22 define internal fastcc void @func3() {
23 ; CHECK-LABEL: @func3(
24 ; CHECK-NEXT:  entry:
25 ; CHECK-NEXT:    tail call fastcc void @func4()
26 ; CHECK-NEXT:    unreachable
28 entry:
29   tail call fastcc void @func4()
30   unreachable
33 define internal fastcc void @func2() {
34 ; CHECK-LABEL: @func2(
35 ; CHECK-NEXT:  entry:
36 ; CHECK-NEXT:    tail call fastcc void @func3()
37 ; CHECK-NEXT:    unreachable
39 entry:
40   tail call fastcc void @func3()
41   unreachable
44 define internal fastcc void @func1() {
45 ; CHECK-LABEL: @func1(
46 ; CHECK-NEXT:  entry:
47 ; CHECK-NEXT:    tail call fastcc void @func2()
48 ; CHECK-NEXT:    unreachable
50 entry:
51   tail call fastcc void @func2()
52   unreachable
55 define i32 @main() {
56 ; CHECK-LABEL: @main(
57 ; CHECK-NEXT:  entry:
58 ; CHECK-NEXT:    tail call fastcc void @func1()
59 ; CHECK-NEXT:    unreachable
61 entry:
62   tail call fastcc void @func1()
63   unreachable
66 declare void @g(...)