1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -S -o - -structurizecfg < %s | FileCheck %s 3 4define void @test1(i1 %arg) { 5; CHECK-LABEL: @test1( 6; CHECK-NEXT: entry: 7; CHECK-NEXT: %arg.inv = xor i1 %arg, true 8; CHECK-NEXT: br label %loop 9; CHECK: Flow: 10; CHECK-NEXT: br label %Flow1 11; CHECK: loop: 12; CHECK-NEXT: %ctr = phi i32 [ 0, %entry ], [ %0, %Flow1 ] 13; CHECK-NEXT: %ctr.next = add i32 %ctr, 1 14; CHECK-NEXT: br i1 %arg.inv, label %loop.a, label %Flow1 15; CHECK: loop.a: 16; CHECK-NEXT: br i1 %arg.inv, label %loop.b, label %Flow 17; CHECK: loop.b: 18; CHECK-NEXT: br label %Flow 19; CHECK: Flow1: 20; CHECK-NEXT: %0 = phi i32 [ %ctr.next, %Flow ], [ undef, %loop ] 21; CHECK-NEXT: %1 = phi i1 [ false, %Flow ], [ true, %loop ] 22; CHECK-NEXT: br i1 %1, label %exit, label %loop 23; CHECK: exit: 24; CHECK-NEXT: ret void 25; 26entry: 27 br label %loop 28 29loop: 30 %ctr = phi i32 [ 0, %entry ], [ %ctr.next, %loop.a ], [ %ctr.next, %loop.b ] 31 %ctr.next = add i32 %ctr, 1 32 br i1 %arg, label %exit, label %loop.a 33 34loop.a: 35 br i1 %arg, label %loop, label %loop.b 36 37loop.b: 38 br label %loop 39 40exit: 41 ret void 42} 43