; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s

; CHECK: %tmp3 = sext i8 %tmp2 to i32
; CHECK: -->  (sext i8 {0,+,1}<%bb1> to i32)   Exits: -1
; CHECK: %tmp4 = mul i32 %tmp3, %i.02
; CHECK: -->  ((sext i8 {0,+,1}<%bb1> to i32) * {0,+,1}<%bb>)   Exits: {0,+,-1}<%bb>

; These sexts are not foldable.

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64"

@table = common global [32 x [256 x i32]] zeroinitializer, align 32		; <[32 x [256 x i32]]*> [#uses=2]

define i32 @main() nounwind {
entry:
	br i1 false, label %bb5, label %bb.nph3

bb.nph3:		; preds = %entry
	br label %bb

bb:		; preds = %bb4, %bb.nph3
	%i.02 = phi i32 [ %tmp10, %bb4 ], [ 0, %bb.nph3 ]		; <i32> [#uses=3]
	br i1 false, label %bb3, label %bb.nph

bb.nph:		; preds = %bb
	br label %bb1

bb1:		; preds = %bb2, %bb.nph
	%j.01 = phi i32 [ %tmp8, %bb2 ], [ 0, %bb.nph ]		; <i32> [#uses=3]
	%tmp2 = trunc i32 %j.01 to i8		; <i8> [#uses=1]
	%tmp3 = sext i8 %tmp2 to i32		; <i32> [#uses=1]
	%tmp4 = mul i32 %tmp3, %i.02		; <i32> [#uses=1]
	%tmp5 = sext i32 %i.02 to i64		; <i64> [#uses=1]
	%tmp6 = sext i32 %j.01 to i64		; <i64> [#uses=1]
	%tmp7 = getelementptr [32 x [256 x i32]]* @table, i64 0, i64 %tmp5, i64 %tmp6		; <i32*> [#uses=1]
	store i32 %tmp4, i32* %tmp7, align 4
	%tmp8 = add i32 %j.01, 1		; <i32> [#uses=2]
	br label %bb2

bb2:		; preds = %bb1
	%phitmp1 = icmp sgt i32 %tmp8, 255		; <i1> [#uses=1]
	br i1 %phitmp1, label %bb2.bb3_crit_edge, label %bb1

bb2.bb3_crit_edge:		; preds = %bb2
	br label %bb3

bb3:		; preds = %bb2.bb3_crit_edge, %bb
	%tmp10 = add i32 %i.02, 1		; <i32> [#uses=2]
	br label %bb4

bb4:		; preds = %bb3
	%phitmp = icmp sgt i32 %tmp10, 31		; <i1> [#uses=1]
	br i1 %phitmp, label %bb4.bb5_crit_edge, label %bb

bb4.bb5_crit_edge:		; preds = %bb4
	br label %bb5

bb5:		; preds = %bb4.bb5_crit_edge, %entry
	%tmp12 = load i32* getelementptr ([32 x [256 x i32]]* @table, i64 0, i64 9, i64 132), align 16		; <i32> [#uses=1]
	%tmp13 = icmp eq i32 %tmp12, -1116		; <i1> [#uses=1]
	br i1 %tmp13, label %bb7, label %bb6

bb6:		; preds = %bb5
	call void @abort() noreturn nounwind
	unreachable

bb7:		; preds = %bb5
	br label %return

return:		; preds = %bb7
	ret i32 0
}

declare void @abort() noreturn nounwind
