; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
; RUN: opt < %s -analyze -enable-new-pm=0 -scalar-evolution -scalar-evolution-classify-expressions=0 | FileCheck %s
; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-classify-expressions=0 2>&1 | FileCheck %s

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"

	%struct.complex = type { float, float }
	%struct.element = type { i32, i32 }
	%struct.node = type { %struct.node*, %struct.node*, i32 }
@seed = external global i64		; <i64*> [#uses=0]
@_2E_str = external constant [18 x i8], align 1		; <[18 x i8]*> [#uses=0]
@_2E_str1 = external constant [4 x i8], align 1		; <[4 x i8]*> [#uses=0]
@value = external global float		; <float*> [#uses=0]
@fixed = external global float		; <float*> [#uses=0]
@floated = external global float		; <float*> [#uses=0]
@permarray = external global [11 x i32], align 32		; <[11 x i32]*> [#uses=0]
@pctr = external global i32		; <i32*> [#uses=0]
@tree = external global %struct.node*		; <%struct.node**> [#uses=0]
@stack = external global [4 x i32], align 16		; <[4 x i32]*> [#uses=0]
@cellspace = external global [19 x %struct.element], align 32		; <[19 x %struct.element]*> [#uses=0]
@freelist = external global i32		; <i32*> [#uses=0]
@movesdone = external global i32		; <i32*> [#uses=0]
@ima = external global [41 x [41 x i32]], align 32		; <[41 x [41 x i32]]*> [#uses=0]
@imb = external global [41 x [41 x i32]], align 32		; <[41 x [41 x i32]]*> [#uses=0]
@imr = external global [41 x [41 x i32]], align 32		; <[41 x [41 x i32]]*> [#uses=0]
@rma = external global [41 x [41 x float]], align 32		; <[41 x [41 x float]]*> [#uses=0]
@rmb = external global [41 x [41 x float]], align 32		; <[41 x [41 x float]]*> [#uses=0]
@rmr = external global [41 x [41 x float]], align 32		; <[41 x [41 x float]]*> [#uses=0]
@piececount = external global [4 x i32], align 16		; <[4 x i32]*> [#uses=0]
@class = external global [13 x i32], align 32		; <[13 x i32]*> [#uses=0]
@piecemax = external global [13 x i32], align 32		; <[13 x i32]*> [#uses=0]
@puzzl = external global [512 x i32], align 32		; <[512 x i32]*> [#uses=0]
@p = external global [13 x [512 x i32]], align 32		; <[13 x [512 x i32]]*> [#uses=0]
@n = external global i32		; <i32*> [#uses=0]
@kount = external global i32		; <i32*> [#uses=0]
@sortlist = external global [5001 x i32], align 32		; <[5001 x i32]*> [#uses=0]
@biggest = external global i32		; <i32*> [#uses=0]
@littlest = external global i32		; <i32*> [#uses=0]
@top = external global i32		; <i32*> [#uses=0]
@z = external global [257 x %struct.complex], align 32		; <[257 x %struct.complex]*> [#uses=0]
@w = external global [257 x %struct.complex], align 32		; <[257 x %struct.complex]*> [#uses=0]
@e = external global [130 x %struct.complex], align 32		; <[130 x %struct.complex]*> [#uses=0]
@zr = external global float		; <float*> [#uses=0]
@zi = external global float		; <float*> [#uses=0]

declare void @Initrand() nounwind

declare i32 @Rand() nounwind

declare void @Try(i32, i32*, i32*, i32*, i32*, i32*) nounwind

declare i32 @puts(i8* nocapture) nounwind

declare void @Queens(i32) nounwind

declare i32 @printf(i8* nocapture, ...) nounwind

declare i32 @main() nounwind

declare void @Doit() nounwind

declare void @Doit_bb7([15 x i32]*, [17 x i32]*, [9 x i32]*) nounwind

define void @Doit_bb7_2E_i([9 x i32]* %x1, [15 x i32]* %c, [17 x i32]* %b, [9 x i32]* %a, i32* %q, i32* %x1.sub, i32* %b9, i32* %a10, i32* %c11) nounwind {
; CHECK-LABEL: 'Doit_bb7_2E_i'
; CHECK-NEXT:  Determining loop execution counts for: @Doit_bb7_2E_i
; CHECK-NEXT:  Loop %bb7.i: Unpredictable backedge-taken count.
; CHECK-NEXT:  Loop %bb7.i: max backedge-taken count is 8
; CHECK-NEXT:  Loop %bb7.i: Unpredictable predicated backedge-taken count.
;
newFuncRoot:
  br label %bb7.i

Try.exit.exitStub:		; preds = %bb7.i
  ret void

bb.i:		; preds = %bb7.i
  %tmp = add i32 %j.0.i, 1		; <i32> [#uses=5]
  store i32 0, i32* %q, align 4
  %tmp1 = sext i32 %tmp to i64		; <i64> [#uses=1]
  %tmp2 = getelementptr [9 x i32], [9 x i32]* %a, i64 0, i64 %tmp1		; <i32*> [#uses=1]
  %tmp3 = load i32, i32* %tmp2, align 4		; <i32> [#uses=1]
  %tmp4 = icmp eq i32 %tmp3, 0		; <i1> [#uses=1]
  br i1 %tmp4, label %bb.i.bb7.i.backedge_crit_edge, label %bb1.i

bb1.i:		; preds = %bb.i
  %tmp5 = add i32 %j.0.i, 2		; <i32> [#uses=1]
  %tmp6 = sext i32 %tmp5 to i64		; <i64> [#uses=1]
  %tmp7 = getelementptr [17 x i32], [17 x i32]* %b, i64 0, i64 %tmp6		; <i32*> [#uses=1]
  %tmp8 = load i32, i32* %tmp7, align 4		; <i32> [#uses=1]
  %tmp9 = icmp eq i32 %tmp8, 0		; <i1> [#uses=1]
  br i1 %tmp9, label %bb1.i.bb7.i.backedge_crit_edge, label %bb2.i

bb2.i:		; preds = %bb1.i
  %tmp10 = sub i32 7, %j.0.i		; <i32> [#uses=1]
  %tmp11 = sext i32 %tmp10 to i64		; <i64> [#uses=1]
  %tmp12 = getelementptr [15 x i32], [15 x i32]* %c, i64 0, i64 %tmp11		; <i32*> [#uses=1]
  %tmp13 = load i32, i32* %tmp12, align 4		; <i32> [#uses=1]
  %tmp14 = icmp eq i32 %tmp13, 0		; <i1> [#uses=1]
  br i1 %tmp14, label %bb2.i.bb7.i.backedge_crit_edge, label %bb3.i

bb3.i:		; preds = %bb2.i
  %tmp15 = getelementptr [9 x i32], [9 x i32]* %x1, i64 0, i64 1		; <i32*> [#uses=1]
  store i32 %tmp, i32* %tmp15, align 4
  %tmp16 = sext i32 %tmp to i64		; <i64> [#uses=1]
  %tmp17 = getelementptr [9 x i32], [9 x i32]* %a, i64 0, i64 %tmp16		; <i32*> [#uses=1]
  store i32 0, i32* %tmp17, align 4
  %tmp18 = add i32 %j.0.i, 2		; <i32> [#uses=1]
  %tmp19 = sext i32 %tmp18 to i64		; <i64> [#uses=1]
  %tmp20 = getelementptr [17 x i32], [17 x i32]* %b, i64 0, i64 %tmp19		; <i32*> [#uses=1]
  store i32 0, i32* %tmp20, align 4
  %tmp21 = sub i32 7, %j.0.i		; <i32> [#uses=1]
  %tmp22 = sext i32 %tmp21 to i64		; <i64> [#uses=1]
  %tmp23 = getelementptr [15 x i32], [15 x i32]* %c, i64 0, i64 %tmp22		; <i32*> [#uses=1]
  store i32 0, i32* %tmp23, align 4
  call void @Try(i32 2, i32* %q, i32* %b9, i32* %a10, i32* %c11, i32* %x1.sub) nounwind
  %tmp24 = load i32, i32* %q, align 4		; <i32> [#uses=1]
  %tmp25 = icmp eq i32 %tmp24, 0		; <i1> [#uses=1]
  br i1 %tmp25, label %bb5.i, label %bb3.i.bb7.i.backedge_crit_edge

bb5.i:		; preds = %bb3.i
  %tmp26 = sext i32 %tmp to i64		; <i64> [#uses=1]
  %tmp27 = getelementptr [9 x i32], [9 x i32]* %a, i64 0, i64 %tmp26		; <i32*> [#uses=1]
  store i32 1, i32* %tmp27, align 4
  %tmp28 = add i32 %j.0.i, 2		; <i32> [#uses=1]
  %tmp29 = sext i32 %tmp28 to i64		; <i64> [#uses=1]
  %tmp30 = getelementptr [17 x i32], [17 x i32]* %b, i64 0, i64 %tmp29		; <i32*> [#uses=1]
  store i32 1, i32* %tmp30, align 4
  %tmp31 = sub i32 7, %j.0.i		; <i32> [#uses=1]
  %tmp32 = sext i32 %tmp31 to i64		; <i64> [#uses=1]
  %tmp33 = getelementptr [15 x i32], [15 x i32]* %c, i64 0, i64 %tmp32		; <i32*> [#uses=1]
  store i32 1, i32* %tmp33, align 4
  br label %bb7.i.backedge

bb7.i.backedge:		; preds = %bb3.i.bb7.i.backedge_crit_edge, %bb2.i.bb7.i.backedge_crit_edge, %bb1.i.bb7.i.backedge_crit_edge, %bb.i.bb7.i.backedge_crit_edge, %bb5.i
  br label %bb7.i

bb7.i:		; preds = %bb7.i.backedge, %newFuncRoot
  %j.0.i = phi i32 [ 0, %newFuncRoot ], [ %tmp, %bb7.i.backedge ]		; <i32> [#uses=8]
  %tmp34 = load i32, i32* %q, align 4		; <i32> [#uses=1]
  %tmp35 = icmp eq i32 %tmp34, 0		; <i1> [#uses=1]
  %tmp36 = icmp ne i32 %j.0.i, 8		; <i1> [#uses=1]
  %tmp37 = and i1 %tmp35, %tmp36		; <i1> [#uses=1]
  br i1 %tmp37, label %bb.i, label %Try.exit.exitStub

bb.i.bb7.i.backedge_crit_edge:		; preds = %bb.i
  br label %bb7.i.backedge

bb1.i.bb7.i.backedge_crit_edge:		; preds = %bb1.i
  br label %bb7.i.backedge

bb2.i.bb7.i.backedge_crit_edge:		; preds = %bb2.i
  br label %bb7.i.backedge

bb3.i.bb7.i.backedge_crit_edge:		; preds = %bb3.i
  br label %bb7.i.backedge
}
