xref: /aosp_15_r20/external/llvm/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; PR2002
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; CHECK: Loop %loop: backedge-taken count is (100 + (-100 smax %n))
5*9880d681SAndroid Build Coastguard Workerdefine void @foo(i8 %n) {
6*9880d681SAndroid Build Coastguard Workerentry:
7*9880d681SAndroid Build Coastguard Worker	br label %loop
8*9880d681SAndroid Build Coastguard Workerloop:
9*9880d681SAndroid Build Coastguard Worker	%i = phi i8 [ -100, %entry ], [ %i.inc, %next ]
10*9880d681SAndroid Build Coastguard Worker	%cond = icmp slt i8 %i, %n
11*9880d681SAndroid Build Coastguard Worker	br i1 %cond, label %next, label %return
12*9880d681SAndroid Build Coastguard Workernext:
13*9880d681SAndroid Build Coastguard Worker        %i.inc = add i8 %i, 1
14*9880d681SAndroid Build Coastguard Worker	br label %loop
15*9880d681SAndroid Build Coastguard Workerreturn:
16*9880d681SAndroid Build Coastguard Worker	ret void
17*9880d681SAndroid Build Coastguard Worker}
18