| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
| ; RUN: opt < %s -passes=inline -S | FileCheck %s | |
| ; PR42084 | |
| define internal fastcc void @func4() { | |
| ; CHECK-LABEL: @func4( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: br label [[FOR_COND:%.*]] | |
| ; CHECK: for.cond: | |
| ; CHECK-NEXT: tail call void (...) @g() | |
| ; CHECK-NEXT: br label [[FOR_COND]] | |
| ; | |
| entry: | |
| br label %for.cond | |
| for.cond: | |
| tail call void (...) @g() | |
| br label %for.cond | |
| } | |
| define internal fastcc void @func3() { | |
| ; CHECK-LABEL: @func3( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: tail call fastcc void @func4() | |
| ; CHECK-NEXT: unreachable | |
| ; | |
| entry: | |
| tail call fastcc void @func4() | |
| unreachable | |
| } | |
| define internal fastcc void @func2() { | |
| ; CHECK-LABEL: @func2( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: tail call fastcc void @func3() | |
| ; CHECK-NEXT: unreachable | |
| ; | |
| entry: | |
| tail call fastcc void @func3() | |
| unreachable | |
| } | |
| define internal fastcc void @func1() { | |
| ; CHECK-LABEL: @func1( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: tail call fastcc void @func2() | |
| ; CHECK-NEXT: unreachable | |
| ; | |
| entry: | |
| tail call fastcc void @func2() | |
| unreachable | |
| } | |
| define i32 @main() { | |
| ; CHECK-LABEL: @main( | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: tail call fastcc void @func1() | |
| ; CHECK-NEXT: unreachable | |
| ; | |
| entry: | |
| tail call fastcc void @func1() | |
| unreachable | |
| } | |
| declare void @g(...) |