Skip to content

Commit a276fdf

Browse files
committed
fixup! [SCEV] Fix exit condition for recursive loop guard collection
Add test
1 parent 057a47a commit a276fdf

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-max-iterations=0 -scalar-evolution-classify-expressions=0 2>&1 | FileCheck %s
2+
3+
declare void @llvm.assume(i1)
4+
5+
define void @pr120442() {
6+
; CHECK-LABEL: 'pr120442'
7+
; CHECK-NEXT: Determining loop execution counts for: @pr120442
8+
; CHECK-NEXT: Loop %bb2: backedge-taken count is i32 0
9+
; CHECK-NEXT: Loop %bb2: constant max backedge-taken count is i32 0
10+
; CHECK-NEXT: Loop %bb2: symbolic max backedge-taken count is i32 0
11+
; CHECK-NEXT: Loop %bb2: Trip multiple is 1
12+
; CHECK-NEXT: Loop %bb1: <multiple exits> Unpredictable backedge-taken count.
13+
; CHECK-NEXT: Loop %bb1: Unpredictable constant max backedge-taken count.
14+
; CHECK-NEXT: Loop %bb1: Unpredictable symbolic max backedge-taken count.
15+
bb:
16+
call void @llvm.assume(i1 false)
17+
call void @llvm.assume(i1 false)
18+
br label %bb6
19+
20+
bb1:
21+
br label %bb2
22+
23+
bb2:
24+
%phi = phi i32 [ %add, %bb2 ], [ 0, %bb1 ]
25+
%add = add i32 %phi, 1
26+
%icmp = icmp ugt i32 %add, 0
27+
br i1 %icmp, label %bb1, label %bb2
28+
29+
bb5:
30+
br i1 false, label %bb6, label %bb5
31+
32+
bb6:
33+
%phi7 = phi i32 [ 0, %bb5 ], [ 0, %bb ]
34+
br label %bb1
35+
}

0 commit comments

Comments
 (0)