1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -loop-deletion -verify-dom-info -S | FileCheck %s 3 4target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" 5 6; loop1 contains an irreducible cycle, which may loop infinitely. Do not remove 7; the loop. 8define void @irreducible_subloop_no_mustprogress(i1 %c1, i1 %c2, i1 %c3) { 9; CHECK-LABEL: @irreducible_subloop_no_mustprogress( 10; CHECK-NEXT: entry: 11; CHECK-NEXT: br label [[LOOP1:%.*]] 12; CHECK: loop1: 13; CHECK-NEXT: br i1 [[C1:%.*]], label [[LOOP1_BB1:%.*]], label [[IRR_BB1:%.*]] 14; CHECK: loop1.bb1: 15; CHECK-NEXT: br label [[IRR_BB2:%.*]] 16; CHECK: irr.bb1: 17; CHECK-NEXT: br i1 [[C2:%.*]], label [[LOOP1_LATCH:%.*]], label [[IRR_BB2]] 18; CHECK: irr.bb2: 19; CHECK-NEXT: br i1 [[C3:%.*]], label [[LOOP1_LATCH]], label [[IRR_BB1]] 20; CHECK: loop1.latch: 21; CHECK-NEXT: br i1 false, label [[LOOP1_LATCH_LOOP1_CRIT_EDGE:%.*]], label [[EXIT:%.*]] 22; CHECK: loop1.latch.loop1_crit_edge: 23; CHECK-NEXT: unreachable 24; CHECK: exit: 25; CHECK-NEXT: ret void 26; 27entry: 28 br label %loop1 29 30loop1: 31 br i1 %c1, label %loop1.bb1, label %irr.bb1 32 33loop1.bb1: 34 br label %irr.bb2 35 36irr.bb1: 37 br i1 %c2, label %loop1.latch, label %irr.bb2 38 39irr.bb2: 40 br i1 %c3, label %loop1.latch, label %irr.bb1 41 42loop1.latch: 43 br i1 false, label %loop1, label %exit 44 45exit: 46 ret void 47} 48 49define void @irreducible_subloop_with_mustprogress(i1 %c1, i1 %c2, i1 %c3) mustprogress { 50; CHECK-LABEL: @irreducible_subloop_with_mustprogress( 51; CHECK-NEXT: br label [[EXIT:%.*]] 52; CHECK: exit: 53; CHECK-NEXT: ret void 54; 55 br label %loop1 56 57loop1: 58 br i1 %c1, label %loop1.bb1, label %irr.bb1 59 60loop1.bb1: 61 br label %irr.bb2 62 63irr.bb1: 64 br i1 %c2, label %loop1.latch, label %irr.bb2 65 66irr.bb2: 67 br i1 %c3, label %loop1.latch, label %irr.bb1 68 69loop1.latch: 70 br i1 false, label %loop1, label %exit 71 72exit: 73 ret void 74} 75