[mlir] Update Ch-2.md (#121379)
[llvm-project.git] / llvm / test / Transforms / Inline / infinite-loop-two-predecessors.ll
blob50e33824876e42f68bfb19b9fdf13e5d8f217f42
1 ; RUN: opt -S -o - %s -passes=inline | FileCheck %s
3 define void @f1(i1 %arg) {
4 bb.0:
5   br i1 false, label %bb.2, label %bb.1
7 bb.1:                                             ; preds = %bb.0
8   br label %bb.2
10 bb.2:                                             ; preds = %bb.0, %bb.1
11   %tmp0 = phi i1 [ true, %bb.1 ], [ false, %bb.0 ]
12   br i1 %tmp0, label %bb.4, label %bb.3
14 bb.3:                                             ; preds = %bb.3, %bb.3
15   br i1 %arg, label %bb.3, label %bb.3
17 bb.4:                                             ; preds = %bb.2
18   ret void
21 define void @f2() {
22 bb.0:
23   call void @f1(i1 1)
24   ret void
27 ; f1 should be inlined into f2 and simplified/collapsed to nothing.
29 ; CHECK-LABEL: define void @f2() {
30 ; CHECK-NEXT:  bb.0:
31 ; CHECK-NEXT:    ret void
32 ; CHECK-NEXT:  }