xref: /llvm-project/llvm/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll (revision 50153213c80286c6c91da4612aaf234cc6438c63)
1; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-max-iterations=0 2>&1 | FileCheck %s
2; PR2607
3
4define i32 @b(i32 %x, i32 %y) nounwind {
5entry:
6	%cmp2 = icmp slt i32 %y, %x
7	%cond3 = select i1 %cmp2, i32 %y, i32 %x
8	%cmp54 = icmp slt i32 %cond3, -2147483632
9	br i1 %cmp54, label %forinc, label %afterfor
10
11forinc:		; preds = %forinc, %entry
12	%j.01 = phi i32 [ %dec, %forinc ], [ -2147483632, %entry ]
13	%dec = add i32 %j.01, -1
14	%cmp = icmp slt i32 %y, %x
15	%cond = select i1 %cmp, i32 %y, i32 %x
16	%cmp5 = icmp sgt i32 %dec, %cond
17	br i1 %cmp5, label %forinc, label %afterfor
18
19afterfor:		; preds = %forinc, %entry
20	%j.0.lcssa = phi i32 [ -2147483632, %entry ], [ %dec, %forinc ]
21	ret i32 %j.0.lcssa
22}
23
24; CHECK: backedge-taken count is (-2147483633 + (-1 * (%{{[xy]}} smin %{{[xy]}})))
25
26