1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -scalar-evolution 2>/dev/null 2*9880d681SAndroid Build Coastguard Worker; PR2433 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i32 @main1(i32 %argc, i8** %argv) nounwind { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb10, label %bb23 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerbb10: ; preds = %bb10, %entry 9*9880d681SAndroid Build Coastguard Worker %accum.03 = phi i64 [ %tmp14, %bb10 ], [ 0, %entry ] ; <i64> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker %i.02 = phi i32 [ %tmp16, %bb10 ], [ 0, %entry ] ; <i32> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker %d.1.01 = phi i64 [ %tmp5.i, %bb10 ], [ 0, %entry ] ; <i64> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker %tmp5.i = add i64 %d.1.01, 1 ; <i64> [#uses=2] 13*9880d681SAndroid Build Coastguard Worker %tmp14 = add i64 %accum.03, %tmp5.i ; <i64> [#uses=2] 14*9880d681SAndroid Build Coastguard Worker %tmp16 = add i32 %i.02, 1 ; <i32> [#uses=2] 15*9880d681SAndroid Build Coastguard Worker %tmp20 = icmp slt i32 %tmp16, 0 ; <i1> [#uses=1] 16*9880d681SAndroid Build Coastguard Worker br i1 %tmp20, label %bb10, label %bb23 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerbb23: ; preds = %bb10, %entry 19*9880d681SAndroid Build Coastguard Worker %accum.0.lcssa = phi i64 [ 0, %entry ], [ %tmp14, %bb10 ] ; <i64> [#uses=0] 20*9880d681SAndroid Build Coastguard Worker ret i32 0 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdefine i32 @main2(i32 %argc, i8** %argv) { 24*9880d681SAndroid Build Coastguard Workerentry: 25*9880d681SAndroid Build Coastguard Worker %tmp8 = tail call i32 @atoi( i8* null ) nounwind readonly ; <i32> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb9, label %bb21 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerbb9: ; preds = %bb9, %entry 29*9880d681SAndroid Build Coastguard Worker %accum.03 = phi i64 [ %tmp12, %bb9 ], [ 0, %entry ] ; <i64> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker %i.02 = phi i32 [ %tmp14, %bb9 ], [ 0, %entry ] ; <i32> [#uses=1] 31*9880d681SAndroid Build Coastguard Worker %d.1.01 = phi i64 [ %tmp4.i, %bb9 ], [ 0, %entry ] ; <i64> [#uses=1] 32*9880d681SAndroid Build Coastguard Worker %tmp4.i = add i64 %d.1.01, 1 ; <i64> [#uses=2] 33*9880d681SAndroid Build Coastguard Worker %tmp12 = add i64 %accum.03, %tmp4.i ; <i64> [#uses=2] 34*9880d681SAndroid Build Coastguard Worker %tmp14 = add i32 %i.02, 1 ; <i32> [#uses=2] 35*9880d681SAndroid Build Coastguard Worker %tmp18 = icmp slt i32 %tmp14, %tmp8 ; <i1> [#uses=1] 36*9880d681SAndroid Build Coastguard Worker br i1 %tmp18, label %bb9, label %bb21 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerbb21: ; preds = %bb9, %entry 39*9880d681SAndroid Build Coastguard Worker %accum.0.lcssa = phi i64 [ 0, %entry ], [ %tmp12, %bb9 ] ; <i64> [#uses=0] 40*9880d681SAndroid Build Coastguard Worker ret i32 0 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdeclare i32 @atoi(i8*) nounwind readonly 44