xref: /aosp_15_r20/external/llvm/test/Transforms/IndVarSimplify/2003-04-16-ExprAnalysis.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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