1 ; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s 2 3 define 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 20 define 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