; RUN: opt < %s -indvars -S > %t
; RUN: grep {\[%\]tmp7 = icmp eq i8 -28, -28} %t
; RUN: grep {\[%\]tmp8 = icmp eq i8 63, 63} %t
; PR4477

; Indvars should compute the exit values in loop.

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
target triple = "i386-pc-linux-gnu"
	%struct.cc70a02__complex_integers__complex_type = type { i8, i8 }
@.str = internal constant [13 x i8] c"fc70a00.adb\00\00", align 1		; <[13 x i8]*> [#uses=1]

define void @_ada_cc70a02() {
entry:
	br label %bb1.i

bb1.i:		; preds = %bb2.i, %entry
	%indvar.i = phi i32 [ 0, %entry ], [ %indvar.next.i, %bb2.i ]		; <i32> [#uses=2]
	%result.0.i = phi i16 [ 0, %entry ], [ %ins36.i, %bb2.i ]		; <i16> [#uses=2]
	%tmp38.i = trunc i16 %result.0.i to i8		; <i8> [#uses=2]
	%tmp = add i8 %tmp38.i, 96		; <i8> [#uses=1]
	%tmp1 = icmp ugt i8 %tmp, -56		; <i1> [#uses=1]
	br i1 %tmp1, label %bb.i.i, label %bb1.i.i

bb.i.i:		; preds = %bb1.i
	tail call void @__gnat_rcheck_12(i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 24) noreturn
	unreachable

bb1.i.i:		; preds = %bb1.i
	%tmp41.i = lshr i16 %result.0.i, 8		; <i16> [#uses=1]
	%tmp42.i = trunc i16 %tmp41.i to i8		; <i8> [#uses=2]
	%tmp2 = add i8 %tmp42.i, 109		; <i8> [#uses=1]
	%tmp3 = icmp ugt i8 %tmp2, -56		; <i1> [#uses=1]
	br i1 %tmp3, label %bb2.i.i, label %cc70a02__complex_integers__Oadd.153.exit.i

bb2.i.i:		; preds = %bb1.i.i
	tail call void @__gnat_rcheck_12(i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 24) noreturn
	unreachable

cc70a02__complex_integers__Oadd.153.exit.i:		; preds = %bb1.i.i
	%tmp4 = add i8 %tmp38.i, -4		; <i8> [#uses=2]
	%tmp5 = add i8 %tmp42.i, 9		; <i8> [#uses=2]
	%tmp25.i = zext i8 %tmp4 to i16		; <i16> [#uses=1]
	%tmp33.i = zext i8 %tmp5 to i16		; <i16> [#uses=1]
	%tmp34.i = shl i16 %tmp33.i, 8		; <i16> [#uses=1]
	%ins36.i = or i16 %tmp34.i, %tmp25.i		; <i16> [#uses=1]
	%tmp6 = icmp eq i32 %indvar.i, 6		; <i1> [#uses=1]
	br i1 %tmp6, label %cc70a02__complex_multiplication.170.exit, label %bb2.i

bb2.i:		; preds = %cc70a02__complex_integers__Oadd.153.exit.i
	%indvar.next.i = add i32 %indvar.i, 1		; <i32> [#uses=1]
	br label %bb1.i

cc70a02__complex_multiplication.170.exit:		; preds = %cc70a02__complex_integers__Oadd.153.exit.i
	%tmp7 = icmp eq i8 %tmp4, -28		; <i1> [#uses=1]
	%tmp8 = icmp eq i8 %tmp5, 63		; <i1> [#uses=1]
	%or.cond = and i1 %tmp8, %tmp7		; <i1> [#uses=1]
	br i1 %or.cond, label %return, label %bb1

bb1:		; preds = %cc70a02__complex_multiplication.170.exit
	tail call void @exit(i32 1)
	ret void

return:		; preds = %cc70a02__complex_multiplication.170.exit
	ret void
}

declare fastcc void @cc70a02__complex_integers__complex.164(%struct.cc70a02__complex_integers__complex_type* noalias nocapture sret, i8 signext, i8 signext) nounwind

declare fastcc void @cc70a02__complex_integers__Osubtract.149(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4)

declare fastcc void @cc70a02__complex_integers__Oadd.153(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4, %struct.cc70a02__complex_integers__complex_type* byval align 4)

declare fastcc void @cc70a02__complex_multiplication.170(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4)

declare void @__gnat_rcheck_12(i8*, i32) noreturn

declare void @exit(i32)
