xref: /aosp_15_r20/external/llvm/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -scalar-evolution \
2*9880d681SAndroid Build Coastguard Worker; RUN:   -scalar-evolution-max-iterations=0 | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker; PR2621
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine i32 @a() nounwind  {
6*9880d681SAndroid Build Coastguard Workerentry:
7*9880d681SAndroid Build Coastguard Worker	br label %bb1
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerbb:
10*9880d681SAndroid Build Coastguard Worker	trunc i32 %i.0 to i16
11*9880d681SAndroid Build Coastguard Worker	add i16 %0, %x16.0
12*9880d681SAndroid Build Coastguard Worker	add i32 %i.0, 1
13*9880d681SAndroid Build Coastguard Worker	br label %bb1
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerbb1:
16*9880d681SAndroid Build Coastguard Worker	%i.0 = phi i32 [ 0, %entry ], [ %2, %bb ]
17*9880d681SAndroid Build Coastguard Worker	%x16.0 = phi i16 [ 0, %entry ], [ %1, %bb ]
18*9880d681SAndroid Build Coastguard Worker	icmp ult i32 %i.0, 888888
19*9880d681SAndroid Build Coastguard Worker	br i1 %3, label %bb, label %bb2
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerbb2:
22*9880d681SAndroid Build Coastguard Worker	zext i16 %x16.0 to i32
23*9880d681SAndroid Build Coastguard Worker	ret i32 %4
24*9880d681SAndroid Build Coastguard Worker}
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker; CHECK: Exits: 20028
27*9880d681SAndroid Build Coastguard Worker
28