Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SCCP / phi-cycle.ll
blob814fe174d4b391617e2107c8e84f2f4175c1c9a9
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -passes=ipsccp -S %s | FileCheck %s
4 declare i1 @cond()
6 define 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
19 entry:
20   br label %loop
22 loop:
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
27 latch.2:
28   %c.2 = call i1 @cond()
29   br i1 %c.2, label %loop, label %exit
31 exit:
32   ret i32 %p