1; RUN: llvm-reduce --delta-passes=basic-blocks --test %python --test-arg %p/remove-bbs-sequence.py %s -o %t
2; RUN: cat %t | FileCheck %s
3
4; The interestingness test is that the CFG contains a loop. Verify that the
5; unnecessary bb2 and bb3 are removed while still maintaining a loop.
6
7define void @main() {
8  bb0:
9    br label %bb1
10  bb1:
11    br label %bb2
12  bb2:
13    br label %bb3
14  bb3:
15    %phi = phi i32 [ undef, %bb2 ]
16    br label %bb4
17  bb4:
18    br label %bb1
19}
20
21; CHECK:define void @main() {
22; CHECK-NEXT: bb0:
23; CHECK-NEXT:   br label %bb1
24; CHECK-EMPTY:
25; CHECK-NEXT: bb1:
26; CHECK-NEXT:   br label %bb4
27; CHECK-EMPTY:
28; CHECK-NEXT: bb4:
29; CHECK-NEXT:   br label %bb1
30; CHECK-NEXT:}
31