1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -passes=ipsccp -S %s | FileCheck %s 3 4declare i1 @cond() 5 6define i32 @test() { 7; CHECK-LABEL: @test( 8; CHECK-NEXT: entry: 9; CHECK-NEXT: br label [[LOOP:%.*]] 10; CHECK: loop: 11; CHECK-NEXT: [[C_1:%.*]] = call i1 @cond() 12; CHECK-NEXT: br i1 [[C_1]], label [[LOOP]], label [[LATCH_2:%.*]] 13; CHECK: latch.2: 14; CHECK-NEXT: [[C_2:%.*]] = call i1 @cond() 15; CHECK-NEXT: br i1 [[C_2]], label [[LOOP]], label [[EXIT:%.*]] 16; CHECK: exit: 17; CHECK-NEXT: ret i32 0 18; 19entry: 20 br label %loop 21 22loop: 23 %p = phi i32 [ undef, %entry ], [ 0, %latch.2 ], [ %p, %loop] 24 %c.1 = call i1 @cond() 25 br i1 %c.1, label %loop, label %latch.2 26 27latch.2: 28 %c.2 = call i1 @cond() 29 br i1 %c.2, label %loop, label %exit 30 31exit: 32 ret i32 %p 33} 34