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