1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; PR1533 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@array = weak global [101 x i32] zeroinitializer, align 32 ; <[100 x i32]*> [#uses=1] 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; CHECK: Loop %bb: backedge-taken count is 100 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdefine void @loop(i32 %x) { 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker br label %bb 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerbb: ; preds = %bb, %entry 13*9880d681SAndroid Build Coastguard Worker %i.01.0 = phi i32 [ 100, %entry ], [ %tmp4, %bb ] ; <i32> [#uses=2] 14*9880d681SAndroid Build Coastguard Worker %tmp1 = getelementptr [101 x i32], [101 x i32]* @array, i32 0, i32 %i.01.0 ; <i32*> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker store i32 %x, i32* %tmp1 16*9880d681SAndroid Build Coastguard Worker %tmp4 = add i32 %i.01.0, -1 ; <i32> [#uses=2] 17*9880d681SAndroid Build Coastguard Worker %tmp7 = icmp sgt i32 %tmp4, -1 ; <i1> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker br i1 %tmp7, label %bb, label %return 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %bb 21*9880d681SAndroid Build Coastguard Worker ret void 22*9880d681SAndroid Build Coastguard Worker} 23