1; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s
2
3define i32 @slt_trip_count_with_range(i32 *%ptr0, i32 *%ptr1) {
4; CHECK-LABEL: slt_trip_count_with_range
5 entry:
6  %limit = load i32, i32* %ptr0, !range !0
7  br label %loop
8
9 loop:
10; CHECK: Loop %loop: max backedge-taken count is 98
11  %index = phi i32 [ 0, %entry ], [ %index.inc, %loop ]
12  %index.inc = add i32 %index, 1
13  %continue = icmp slt i32 %index.inc, %limit
14  br i1 %continue, label %loop, label %loop.exit
15
16 loop.exit:
17  ret i32 0
18}
19
20define i32 @ult_trip_count_with_range(i32 *%ptr0, i32 *%ptr1) {
21; CHECK-LABEL: ult_trip_count_with_range
22 entry:
23  %limit = load i32, i32* %ptr0, !range !0
24  br label %loop
25
26 loop:
27; CHECK: Loop %loop: max backedge-taken count is 98
28  %index = phi i32 [ 0, %entry ], [ %index.inc, %loop ]
29  %index.inc = add i32 %index, 1
30  %continue = icmp ult i32 %index.inc, %limit
31  br i1 %continue, label %loop, label %loop.exit
32
33 loop.exit:
34  ret i32 0
35}
36
37!0 = !{i32 1, i32 100}
38