; RUN: opt < %s -indvars -instcombine -S | not grep {\[sz\]ext}
; ModuleID = '<stdin>'
;extern int *a, *b, *c, *d, *e, *f;  /* 64 bit */
;extern int K[256];
;void foo () {
;  int i;
;  for (i=0; i<23647; i++) {
;    a[(i&15)] = b[i&15]+c[i&15];
;    a[(i+1)&15] = b[(i+1)&15]+c[(i+1)&15];
;    a[(i+2)&15] = b[(i+2)&15]+c[(i+2)&15];
;    d[i&15] = e[i&15]+f[i&15] +K[i];
;    d[(i+1)&15] = e[(i+1)&15]+f[(i+1)&15]+K[i+1];
;    d[(i+2)&15] = e[(i+2)&15]+f[(i+2)&15]+K[i+2];
;  }
;}
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-n32:64"
target triple = "x86_64-apple-darwin9.6"
@a = external global i32*		; <i32**> [#uses=3]
@b = external global i32*		; <i32**> [#uses=3]
@c = external global i32*		; <i32**> [#uses=3]
@d = external global i32*		; <i32**> [#uses=3]
@e = external global i32*		; <i32**> [#uses=3]
@f = external global i32*		; <i32**> [#uses=3]
@K = external global [256 x i32]		; <[256 x i32]*> [#uses=3]

define void @foo() nounwind {
bb1.thread:
	br label %bb1

bb1:		; preds = %bb1, %bb1.thread
	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %116, %bb1 ]		; <i32> [#uses=22]
	%0 = load i32** @a, align 8		; <i32*> [#uses=1]
	%1 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%2 = load i32** @b, align 8		; <i32*> [#uses=1]
	%3 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%4 = zext i32 %3 to i64		; <i64> [#uses=1]
	%5 = getelementptr i32* %2, i64 %4		; <i32*> [#uses=1]
	%6 = load i32* %5, align 1		; <i32> [#uses=1]
	%7 = load i32** @c, align 8		; <i32*> [#uses=1]
	%8 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%9 = zext i32 %8 to i64		; <i64> [#uses=1]
	%10 = getelementptr i32* %7, i64 %9		; <i32*> [#uses=1]
	%11 = load i32* %10, align 1		; <i32> [#uses=1]
	%12 = add i32 %11, %6		; <i32> [#uses=1]
	%13 = zext i32 %1 to i64		; <i64> [#uses=1]
	%14 = getelementptr i32* %0, i64 %13		; <i32*> [#uses=1]
	store i32 %12, i32* %14, align 1
	%15 = load i32** @a, align 8		; <i32*> [#uses=1]
	%16 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%17 = and i32 %16, 15		; <i32> [#uses=1]
	%18 = load i32** @b, align 8		; <i32*> [#uses=1]
	%19 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%20 = and i32 %19, 15		; <i32> [#uses=1]
	%21 = zext i32 %20 to i64		; <i64> [#uses=1]
	%22 = getelementptr i32* %18, i64 %21		; <i32*> [#uses=1]
	%23 = load i32* %22, align 1		; <i32> [#uses=1]
	%24 = load i32** @c, align 8		; <i32*> [#uses=1]
	%25 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%26 = and i32 %25, 15		; <i32> [#uses=1]
	%27 = zext i32 %26 to i64		; <i64> [#uses=1]
	%28 = getelementptr i32* %24, i64 %27		; <i32*> [#uses=1]
	%29 = load i32* %28, align 1		; <i32> [#uses=1]
	%30 = add i32 %29, %23		; <i32> [#uses=1]
	%31 = zext i32 %17 to i64		; <i64> [#uses=1]
	%32 = getelementptr i32* %15, i64 %31		; <i32*> [#uses=1]
	store i32 %30, i32* %32, align 1
	%33 = load i32** @a, align 8		; <i32*> [#uses=1]
	%34 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%35 = and i32 %34, 15		; <i32> [#uses=1]
	%36 = load i32** @b, align 8		; <i32*> [#uses=1]
	%37 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%38 = and i32 %37, 15		; <i32> [#uses=1]
	%39 = zext i32 %38 to i64		; <i64> [#uses=1]
	%40 = getelementptr i32* %36, i64 %39		; <i32*> [#uses=1]
	%41 = load i32* %40, align 1		; <i32> [#uses=1]
	%42 = load i32** @c, align 8		; <i32*> [#uses=1]
	%43 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%44 = and i32 %43, 15		; <i32> [#uses=1]
	%45 = zext i32 %44 to i64		; <i64> [#uses=1]
	%46 = getelementptr i32* %42, i64 %45		; <i32*> [#uses=1]
	%47 = load i32* %46, align 1		; <i32> [#uses=1]
	%48 = add i32 %47, %41		; <i32> [#uses=1]
	%49 = zext i32 %35 to i64		; <i64> [#uses=1]
	%50 = getelementptr i32* %33, i64 %49		; <i32*> [#uses=1]
	store i32 %48, i32* %50, align 1
	%51 = load i32** @d, align 8		; <i32*> [#uses=1]
	%52 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%53 = load i32** @e, align 8		; <i32*> [#uses=1]
	%54 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%55 = zext i32 %54 to i64		; <i64> [#uses=1]
	%56 = getelementptr i32* %53, i64 %55		; <i32*> [#uses=1]
	%57 = load i32* %56, align 1		; <i32> [#uses=1]
	%58 = load i32** @f, align 8		; <i32*> [#uses=1]
	%59 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
	%60 = zext i32 %59 to i64		; <i64> [#uses=1]
	%61 = getelementptr i32* %58, i64 %60		; <i32*> [#uses=1]
	%62 = load i32* %61, align 1		; <i32> [#uses=1]
	%63 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
	%64 = getelementptr [256 x i32]* @K, i64 0, i64 %63		; <i32*> [#uses=1]
	%65 = load i32* %64, align 4		; <i32> [#uses=1]
	%66 = add i32 %62, %57		; <i32> [#uses=1]
	%67 = add i32 %66, %65		; <i32> [#uses=1]
	%68 = zext i32 %52 to i64		; <i64> [#uses=1]
	%69 = getelementptr i32* %51, i64 %68		; <i32*> [#uses=1]
	store i32 %67, i32* %69, align 1
	%70 = load i32** @d, align 8		; <i32*> [#uses=1]
	%71 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%72 = and i32 %71, 15		; <i32> [#uses=1]
	%73 = load i32** @e, align 8		; <i32*> [#uses=1]
	%74 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%75 = and i32 %74, 15		; <i32> [#uses=1]
	%76 = zext i32 %75 to i64		; <i64> [#uses=1]
	%77 = getelementptr i32* %73, i64 %76		; <i32*> [#uses=1]
	%78 = load i32* %77, align 1		; <i32> [#uses=1]
	%79 = load i32** @f, align 8		; <i32*> [#uses=1]
	%80 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%81 = and i32 %80, 15		; <i32> [#uses=1]
	%82 = zext i32 %81 to i64		; <i64> [#uses=1]
	%83 = getelementptr i32* %79, i64 %82		; <i32*> [#uses=1]
	%84 = load i32* %83, align 1		; <i32> [#uses=1]
	%85 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
	%86 = sext i32 %85 to i64		; <i64> [#uses=1]
	%87 = getelementptr [256 x i32]* @K, i64 0, i64 %86		; <i32*> [#uses=1]
	%88 = load i32* %87, align 4		; <i32> [#uses=1]
	%89 = add i32 %84, %78		; <i32> [#uses=1]
	%90 = add i32 %89, %88		; <i32> [#uses=1]
	%91 = zext i32 %72 to i64		; <i64> [#uses=1]
	%92 = getelementptr i32* %70, i64 %91		; <i32*> [#uses=1]
	store i32 %90, i32* %92, align 1
	%93 = load i32** @d, align 8		; <i32*> [#uses=1]
	%94 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%95 = and i32 %94, 15		; <i32> [#uses=1]
	%96 = load i32** @e, align 8		; <i32*> [#uses=1]
	%97 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%98 = and i32 %97, 15		; <i32> [#uses=1]
	%99 = zext i32 %98 to i64		; <i64> [#uses=1]
	%100 = getelementptr i32* %96, i64 %99		; <i32*> [#uses=1]
	%101 = load i32* %100, align 1		; <i32> [#uses=1]
	%102 = load i32** @f, align 8		; <i32*> [#uses=1]
	%103 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%104 = and i32 %103, 15		; <i32> [#uses=1]
	%105 = zext i32 %104 to i64		; <i64> [#uses=1]
	%106 = getelementptr i32* %102, i64 %105		; <i32*> [#uses=1]
	%107 = load i32* %106, align 1		; <i32> [#uses=1]
	%108 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
	%109 = sext i32 %108 to i64		; <i64> [#uses=1]
	%110 = getelementptr [256 x i32]* @K, i64 0, i64 %109		; <i32*> [#uses=1]
	%111 = load i32* %110, align 4		; <i32> [#uses=1]
	%112 = add i32 %107, %101		; <i32> [#uses=1]
	%113 = add i32 %112, %111		; <i32> [#uses=1]
	%114 = zext i32 %95 to i64		; <i64> [#uses=1]
	%115 = getelementptr i32* %93, i64 %114		; <i32*> [#uses=1]
	store i32 %113, i32* %115, align 1
	%116 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
	%117 = icmp sgt i32 %116, 23646		; <i1> [#uses=1]
	br i1 %117, label %return, label %bb1

return:		; preds = %bb1
	ret void
}
