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

; CHECK: %tmp3 = sext i8 %tmp2 to i32
; CHECK: -->  (sext i8 {0,+,1}<%bb1> to i32){{ U: [^ ]+ S: [^ ]+}}{{ *}}Exits: -1
; CHECK: %tmp4 = mul i32 %tmp3, %i.02
; CHECK: -->  ((sext i8 {0,+,1}<%bb1> to i32) * {0,+,1}<%bb>){{ U: [^ ]+ S: [^ ]+}}{{ *}}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]], [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, i32* getelementptr ([32 x [256 x i32]], [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
