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