[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / Inline / infinite-loop-two-predecessors.ll
blobaa07315eb081a727047308b2def4d786637c7818
1 ; RUN: opt -S -o - %s -inline | FileCheck %s
3 define void @f1() {
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 undef, 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()
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:  }