1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -fix-irreducible -S | FileCheck %s 3 4define dso_local void @tre_tnfa_run_backtrack() { 5; CHECK-LABEL: @tre_tnfa_run_backtrack( 6; CHECK-NEXT: entry: 7; CHECK-NEXT: br label [[RETRY:%.*]] 8; CHECK: retry: 9; CHECK-NEXT: br label [[IRR_GUARD:%.*]] 10; CHECK: while.body248: 11; CHECK-NEXT: br i1 undef, label [[IF_THEN250:%.*]], label [[IF_END275:%.*]] 12; CHECK: if.then250: 13; CHECK-NEXT: br label [[FOR_COND264:%.*]] 14; CHECK: for.cond264: 15; CHECK-NEXT: br i1 undef, label [[FOR_BODY267:%.*]], label [[IRR_GUARD]] 16; CHECK: for.body267: 17; CHECK-NEXT: br label [[FOR_COND264]] 18; CHECK: if.end275: 19; CHECK-NEXT: br label [[FOR_COND342:%.*]] 20; CHECK: for.cond342: 21; CHECK-NEXT: br i1 undef, label [[FOR_BODY345:%.*]], label [[FOR_END580:%.*]] 22; CHECK: for.body345: 23; CHECK-NEXT: br label [[FOR_COND342]] 24; CHECK: for.end580: 25; CHECK-NEXT: br label [[IRR_GUARD]] 26; CHECK: backtrack: 27; CHECK-NEXT: br i1 undef, label [[IF_THEN595:%.*]], label [[IF_ELSE629:%.*]] 28; CHECK: if.then595: 29; CHECK-NEXT: br label [[FOR_COND616:%.*]] 30; CHECK: for.cond616: 31; CHECK-NEXT: br i1 undef, label [[FOR_BODY619:%.*]], label [[FOR_END626:%.*]] 32; CHECK: for.body619: 33; CHECK-NEXT: br label [[FOR_COND616]] 34; CHECK: for.end626: 35; CHECK-NEXT: br label [[IRR_GUARD]] 36; CHECK: if.else629: 37; CHECK-NEXT: br label [[RETRY]] 38; CHECK: irr.guard: 39; CHECK-NEXT: [[GUARD_BACKTRACK:%.*]] = phi i1 [ true, [[FOR_END580]] ], [ true, [[FOR_COND264]] ], [ undef, [[RETRY]] ], [ false, [[FOR_END626]] ] 40; CHECK-NEXT: br i1 [[GUARD_BACKTRACK]], label [[BACKTRACK:%.*]], label [[WHILE_BODY248:%.*]] 41; 42entry: 43 br label %retry 44 45retry: 46 br i1 undef, label %backtrack, label %while.body248 47 48while.body248: ; preds = %for.end626, %retry 49 br i1 undef, label %if.then250, label %if.end275 50 51if.then250: ; preds = %while.body248 52 br label %for.cond264 53 54for.cond264: ; preds = %for.body267, %if.then250 55 br i1 undef, label %for.body267, label %backtrack 56 57for.body267: ; preds = %for.cond264 58 br label %for.cond264 59 60if.end275: ; preds = %while.body248 61 br label %for.cond342 62 63for.cond342: ; preds = %for.body345, %if.end275 64 br i1 undef, label %for.body345, label %for.end580 65 66for.body345: ; preds = %for.cond342 67 br label %for.cond342 68 69for.end580: ; preds = %for.cond342 70 br label %backtrack 71 72backtrack: ; preds = %for.end580, %for.cond264, %retry 73 br i1 undef, label %if.then595, label %if.else629 74 75if.then595: ; preds = %backtrack 76 br label %for.cond616 77 78for.cond616: ; preds = %for.body619, %if.then595 79 br i1 undef, label %for.body619, label %for.end626 80 81for.body619: ; preds = %for.cond616 82 br label %for.cond616 83 84for.end626: ; preds = %for.cond616 85 br label %while.body248 86 87if.else629: ; preds = %backtrack 88 br label %retry 89} 90