1*9880d681SAndroid Build Coastguard Worker; This is a test case for the expression analysis code, not really indvars. 2*9880d681SAndroid Build Coastguard Worker; It was assuming any constant of int type was a ConstantInteger. 3*9880d681SAndroid Build Coastguard Worker; 4*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -indvars 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker@X = global i32 7 ; <i32*> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdefine void @test(i32 %A) { 9*9880d681SAndroid Build Coastguard Worker; <label>:0 10*9880d681SAndroid Build Coastguard Worker br label %Loop 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard WorkerLoop: ; preds = %Loop, %0 13*9880d681SAndroid Build Coastguard Worker %IV = phi i32 [ %A, %0 ], [ %IVNext, %Loop ] ; <i32> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker %IVNext = add i32 %IV, ptrtoint (i32* @X to i32) ; <i32> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker br label %Loop 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Worker 18