Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LCSSA / pr44320.ll
blob1bc831b0c8d9bd6509c7bedf7582d37fcad3d171
1 ; RUN: opt -passes="verify<scalar-evolution>,lcssa,verify<scalar-evolution>" -verify-scev-strict -S -disable-output %s
3 ; The first SCEV verification is required because it queries SCEV and populates
4 ; SCEV caches. Second SCEV verification checks if the caches are in valid state.
6 ; Check that the second SCEV verification doesn't fail.
7 define void @test(ptr %arg, ptr %arg1, i1 %arg2, i1 %arg3) {
8 bb:
9   br label %bb6
11 bb5:
12   br label %bb6
14 bb6:
15   br label %bb7
17 bb7:
18   %tmp = load i32, ptr %arg
19   %tmp8 = load i32, ptr %arg1
20   %tmp9 = add i32 %tmp8, %tmp
21   %tmp10 = icmp sgt i32 %tmp9, %tmp
22   br i1 %tmp10, label %bb11, label %bb17
24 bb11:
25   br i1 %arg3, label %bb12, label %bb14
27 bb12:
28   br label %bb13
30 bb13:
31   br label %bb17
33 bb14:
34   br label %bb15
36 bb15:
37   %tmp16 = add nsw i32 %tmp, 1
38   ret void
40 bb17:
41   %tmp18 = phi i32 [ 0, %bb7 ], [ %tmp8, %bb13 ]
42   br i1 %arg2, label %bb24, label %bb19
44 bb19:
45   br label %bb20
47 bb20:
48   %tmp21 = phi i32 [ %tmp22, %bb20 ], [ 0, %bb19 ]
49   %tmp22 = add nuw nsw i32 %tmp21, 1
50   %tmp23 = icmp slt i32 %tmp22, %tmp18
51   br i1 %tmp23, label %bb20, label %bb5
53 bb24:
54   ret void