forked from OSchip/llvm-project
Update Polly tests to handle explicitly typed gep changes in LLVM
llvm-svn: 230784
This commit is contained in:
parent
218b783192
commit
bad3ff207f
|
|
@ -20,7 +20,7 @@ entry:
|
|||
|
||||
for.i:
|
||||
%indvar = phi i64 [ 0, %entry ], [ %indvar.next, %merge ]
|
||||
%scevgep = getelementptr i64* %A, i64 %indvar
|
||||
%scevgep = getelementptr i64, i64* %A, i64 %indvar
|
||||
%cmp = icmp eq i64 %indvar, 3
|
||||
br i1 %cmp, label %then, label %else
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ for.inc: ; preds = %for.body, %for.inc
|
|||
%sum.12 = phi i32 [ %mul, %for.body ], [ %add4, %for.inc ]
|
||||
%indvars.iv1 = phi i64 [ 0, %for.body ], [ %1, %for.inc ]
|
||||
%0 = add i64 %indvars.iv23, %indvars.iv1
|
||||
%arrayidx = getelementptr i32* %A, i64 %0
|
||||
%arrayidx = getelementptr i32, i32* %A, i64 %0
|
||||
%tmp5 = load i32* %arrayidx, align 4
|
||||
%add4 = add nsw i32 %tmp5, %sum.12
|
||||
%1 = add nuw nsw i64 %indvars.iv1, 1
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ for.inc.lr.ph: ; preds = %entry
|
|||
for.inc: ; preds = %for.inc.lr.ph, %for.inc
|
||||
%sum.03 = phi i32 [ 0, %for.inc.lr.ph ], [ %add, %for.inc ]
|
||||
%indvars.iv2 = phi i64 [ 0, %for.inc.lr.ph ], [ %indvars.iv.next, %for.inc ]
|
||||
%arrayidx = getelementptr i32* %A, i64 %indvars.iv2
|
||||
%arrayidx = getelementptr i32, i32* %A, i64 %indvars.iv2
|
||||
%tmp1 = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp1, %sum.03
|
||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv2, 1
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ entry:
|
|||
|
||||
for.body.1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %for.body.1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1, align 4
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 200
|
||||
|
|
@ -29,7 +29,7 @@ exit.1:
|
|||
|
||||
for.body.2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %for.body.2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2, align 4
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 200
|
||||
|
|
@ -40,7 +40,7 @@ exit.2:
|
|||
|
||||
for.body.3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %for.body.3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
store i32 7, i32* %arrayidx.3, align 4
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
%exitcond.3 = icmp ne i64 %indvar.next.3, 200
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ entry:
|
|||
|
||||
for.body.1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %for.body.1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1, align 4
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 200
|
||||
|
|
@ -30,9 +30,9 @@ exit.1:
|
|||
|
||||
for.body.2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %for.body.2 ]
|
||||
%arrayidx.2.a = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2.a = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%val = load i32* %arrayidx.2.a, align 4
|
||||
%arrayidx.2.b = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
%arrayidx.2.b = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
store i32 %val, i32* %arrayidx.2.b, align 4
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 200
|
||||
|
|
@ -43,8 +43,8 @@ exit.2:
|
|||
|
||||
for.body.3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %for.body.3 ]
|
||||
%arrayidx.3.a = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.b = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.a = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.b = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.3
|
||||
store i32 5, i32* %arrayidx.3.a, align 4
|
||||
store i32 5, i32* %arrayidx.3.b, align 4
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -30,7 +30,7 @@ exit.1:
|
|||
|
||||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 10
|
||||
|
|
@ -41,7 +41,7 @@ exit.2:
|
|||
|
||||
S3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %S3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
store i32 7, i32* %arrayidx.3
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
%exitcond.3 = icmp ne i64 %indvar.next.3, 200
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ entry:
|
|||
|
||||
for.body.1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %for.body.1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1, align 4
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 200
|
||||
|
|
@ -32,7 +32,7 @@ exit.1:
|
|||
|
||||
for.body.2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %for.body.2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2, align 4
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 50
|
||||
|
|
@ -43,7 +43,7 @@ exit.2:
|
|||
|
||||
for.body.3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %for.body.3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%val = load i32* %arrayidx.3, align 4
|
||||
%add = add nsw i32 %val, 5
|
||||
store i32 %add, i32* %arrayidx.3, align 4
|
||||
|
|
@ -58,7 +58,7 @@ for.body.4:
|
|||
%indvar.4 = phi i64 [ 0, %exit.3 ], [ %indvar.next.4, %for.body.4 ]
|
||||
%indvar.plus = add i64 %indvar.4, 100
|
||||
%trunc = trunc i64 %indvar.plus to i32
|
||||
%arrayidx.4 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.plus
|
||||
%arrayidx.4 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.plus
|
||||
store i32 %trunc, i32* %arrayidx.4, align 4
|
||||
%indvar.next.4 = add i64 %indvar.4, 1
|
||||
%exitcond.4 = icmp ne i64 %indvar.next.4, 10
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ for.cond:
|
|||
|
||||
S1:
|
||||
%rem = srem i32 %i.0, 2
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %rem
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %rem
|
||||
store i32 %i.0, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -46,7 +46,7 @@ for.cond.2:
|
|||
br i1 %exitcond.2, label %S2, label %for.end
|
||||
|
||||
S2:
|
||||
%arrayidx.2 = getelementptr inbounds i32* %A, i32 %i.2
|
||||
%arrayidx.2 = getelementptr inbounds i32, i32* %A, i32 %i.2
|
||||
store i32 %i.2, i32* %arrayidx.2, align 4
|
||||
br label %for.inc.2
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%rem = srem i32 %i.0, 2
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %rem
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %rem
|
||||
store i32 %i.0, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ entry:
|
|||
%A = alloca [200 x i32], align 16
|
||||
%B = alloca [200 x i32], align 16
|
||||
|
||||
%A.zero = getelementptr [200 x i32]* %A, i64 0, i64 0
|
||||
%A.zero = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 0
|
||||
store i32 1, i32* %A.zero, align 4
|
||||
|
||||
br label %for.body.1
|
||||
|
|
@ -24,10 +24,10 @@ for.body.1:
|
|||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %for.body.1 ]
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
|
||||
%A.current.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%A.current.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%val1.1 = load i32* %A.current.1, align 4
|
||||
%val2.1 = mul i32 %val1.1, 2
|
||||
%A.next.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.next.1
|
||||
%A.next.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.next.1
|
||||
store i32 %val2.1, i32* %A.next.1, align 4
|
||||
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -39,10 +39,10 @@ exit.1:
|
|||
for.body.2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %for.body.2 ]
|
||||
|
||||
%B.current.2 = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
%B.current.2 = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
%val1.2 = load i32* %B.current.2, align 4
|
||||
%val2.2 = mul i32 %val1.2, 2
|
||||
%A.current.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%A.current.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 %val2.2, i32* %A.current.2, align 4
|
||||
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -30,7 +30,7 @@ exit.1:
|
|||
|
||||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 10
|
||||
|
|
@ -41,7 +41,7 @@ exit.2:
|
|||
|
||||
S3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %S3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
store i32 7, i32* %arrayidx.3
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
%exitcond.3 = icmp ne i64 %indvar.next.3, 200
|
||||
|
|
|
|||
|
|
@ -22,13 +22,13 @@ do.body: ; preds = %do.cond42, %entry
|
|||
|
||||
do.body1: ; preds = %do.cond36, %do.body
|
||||
%indvar1 = phi i64 [ %indvar.next2, %do.cond36 ], [ 0, %do.body ] ; <i64> [#uses=3]
|
||||
%arrayidx5 = getelementptr [36 x [49 x double]]* @C, i64 0, i64 %indvar3, i64 %indvar1 ; <double*> [#uses=2]
|
||||
%arrayidx5 = getelementptr [36 x [49 x double]], [36 x [49 x double]]* @C, i64 0, i64 %indvar3, i64 %indvar1 ; <double*> [#uses=2]
|
||||
br label %do.body2
|
||||
|
||||
do.body2: ; preds = %do.cond, %do.body1
|
||||
%indvar = phi i64 [ %indvar.next, %do.cond ], [ 0, %do.body1 ] ; <i64> [#uses=3]
|
||||
%arrayidx13 = getelementptr [36 x [49 x double]]* @A, i64 0, i64 %indvar3, i64 %indvar ; <double*> [#uses=1]
|
||||
%arrayidx22 = getelementptr [36 x [49 x double]]* @B, i64 0, i64 %indvar, i64 %indvar1 ; <double*> [#uses=1]
|
||||
%arrayidx13 = getelementptr [36 x [49 x double]], [36 x [49 x double]]* @A, i64 0, i64 %indvar3, i64 %indvar ; <double*> [#uses=1]
|
||||
%arrayidx22 = getelementptr [36 x [49 x double]], [36 x [49 x double]]* @B, i64 0, i64 %indvar, i64 %indvar1 ; <double*> [#uses=1]
|
||||
%tmp6 = load double* %arrayidx5 ; <double> [#uses=1]
|
||||
%mul = fmul double 1.000000e+00, %tmp6 ; <double> [#uses=1]
|
||||
%tmp14 = load double* %arrayidx13 ; <double> [#uses=1]
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ for.body3: ; preds = %for.cond1
|
|||
%mul = mul nsw i32 %j.0, %i.0
|
||||
%mul4 = shl nsw i32 %j.0, 1
|
||||
%add = add nsw i32 %i.0, %mul4
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %add
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %add
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add5 = add nsw i32 %tmp, %mul
|
||||
store i32 %add5, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -33,20 +33,20 @@ for.cond: ; preds = %for.inc, %entry
|
|||
br i1 %exitcond, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%sub = add nsw i32 %i.0, -1
|
||||
%arrayidx1 = getelementptr inbounds i32* %A, i32 %sub
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i32 %sub
|
||||
%tmp1 = load i32* %arrayidx1, align 4
|
||||
%add = add nsw i32 %tmp, %tmp1
|
||||
%arrayidx2 = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
store i32 %add, i32* %arrayidx2, align 4
|
||||
%sub4 = add nsw i32 %i.0, -2
|
||||
%arrayidx5 = getelementptr inbounds i32* %A, i32 %sub4
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i32 %sub4
|
||||
%tmp2 = load i32* %arrayidx5, align 4
|
||||
%add6 = add nsw i32 %add, %tmp2
|
||||
%sub7 = add nsw i32 %i.0, -1
|
||||
%arrayidx8 = getelementptr inbounds i32* %A, i32 %sub7
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i32 %sub7
|
||||
store i32 %add6, i32* %arrayidx8, align 4
|
||||
%tmp3 = load i32* %sum, align 4
|
||||
%add9 = add nsw i32 %tmp3, %i.0
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 3
|
||||
%add4 = add nsw i32 %i.0, %j.0
|
||||
%arrayidx5 = getelementptr inbounds i32* %sum, i32 %add4
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %sum, i32 %add4
|
||||
store i32 %add, i32* %arrayidx5, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ for.cond1: ; preds = %for.inc8, %for.body
|
|||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%add = add nsw i32 %i.0, %j.0
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %add
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %add
|
||||
%tmp3 = load i32* %arrayidx, align 4
|
||||
%tmp4 = load i32* %sum, align 4
|
||||
%add4 = add nsw i32 %tmp4, %tmp3
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ for.cond1: ; preds = %for.inc8, %for.body
|
|||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%add = add nsw i32 %i.0, %j.0
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %add
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %add
|
||||
%tmp3 = load i32* %arrayidx, align 4
|
||||
%tmp4 = load i32* %sum, align 4
|
||||
%add4 = add nsw i32 %tmp4, %tmp3
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ for.inc: ; preds = %for.inc, %for.body
|
|||
%indvars.iv1 = phi i64 [ 0, %for.body ], [ %1, %for.inc ]
|
||||
%sum.12.reload = load i32* %sum.12.reg2mem
|
||||
%0 = add i64 %indvars.iv23, %indvars.iv1
|
||||
%arrayidx = getelementptr i32* %A, i64 %0
|
||||
%arrayidx = getelementptr i32, i32* %A, i64 %0
|
||||
%tmp5 = load i32* %arrayidx, align 4
|
||||
%add4 = add nsw i32 %tmp5, %sum.12.reload
|
||||
%1 = add nuw nsw i64 %indvars.iv1, 1
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%sub = sub nsw i32 99, %i.0
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %sub
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %sub
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
%arrayidx1 = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
store i32 %add, i32* %arrayidx1, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %sums, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sums, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 5
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
@ -42,11 +42,11 @@ for.body3: ; preds = %for.cond1
|
|||
br i1 %cmp5, label %if.then, label %if.end
|
||||
|
||||
if.then: ; preds = %for.body3
|
||||
%arrayidx6 = getelementptr inbounds i32* %sums, i32 %i.0
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %sums, i32 %i.0
|
||||
%tmp2 = load i32* %arrayidx6, align 4
|
||||
%sub7 = sub nsw i32 %N, %i.0
|
||||
%add8 = add nsw i32 %sub7, %j.0
|
||||
%arrayidx9 = getelementptr inbounds i32* %escape, i32 %add8
|
||||
%arrayidx9 = getelementptr inbounds i32, i32* %escape, i32 %add8
|
||||
store i32 %tmp2, i32* %arrayidx9, align 4
|
||||
br label %if.end
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ for.body: ; preds = %for.cond
|
|||
br label %S0
|
||||
|
||||
S0: ; preds = %for.body
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
store i32 0, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ for.body7: ; preds = %for.cond5
|
|||
|
||||
S1: ; preds = %for.body7
|
||||
%add = add nsw i32 %i1.0, %j.0
|
||||
%arrayidx8 = getelementptr inbounds i32* %sum, i32 %add
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %sum, i32 %add
|
||||
%tmp = load i32* %arrayidx8, align 4
|
||||
%add9 = add nsw i32 %tmp, %i1.0
|
||||
store i32 %add9, i32* %arrayidx8, align 4
|
||||
|
|
@ -95,10 +95,10 @@ for.body19: ; preds = %for.cond17
|
|||
|
||||
S2: ; preds = %for.body19
|
||||
%add20 = add nsw i32 %i16.0, 1
|
||||
%arrayidx21 = getelementptr inbounds i32* %sum, i32 %add20
|
||||
%arrayidx21 = getelementptr inbounds i32, i32* %sum, i32 %add20
|
||||
%tmp4 = load i32* %arrayidx21, align 4
|
||||
%mul = mul nsw i32 %tmp4, 3
|
||||
%arrayidx22 = getelementptr inbounds i32* %sum, i32 %i16.0
|
||||
%arrayidx22 = getelementptr inbounds i32, i32* %sum, i32 %i16.0
|
||||
store i32 %mul, i32* %arrayidx22, align 4
|
||||
br label %for.inc23
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ for.body: ; preds = %for.cond
|
|||
|
||||
S1: ; preds = %for.body
|
||||
%add = add nsw i32 %i.0, 1
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %add
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %add
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add1 = add nsw i32 %tmp, 42
|
||||
store i32 %add1, i32* %arrayidx, align 4
|
||||
|
|
@ -56,7 +56,7 @@ for.body4: ; preds = %for.cond2
|
|||
|
||||
S2: ; preds = %for.body4
|
||||
%mul = mul nsw i32 %i.0, %j.0
|
||||
%arrayidx5 = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
%tmp2 = load i32* %arrayidx5, align 4
|
||||
%add6 = add nsw i32 %tmp2, %mul
|
||||
store i32 %add6, i32* %arrayidx5, align 4
|
||||
|
|
@ -71,7 +71,7 @@ for.end: ; preds = %for.cond2
|
|||
|
||||
S3: ; preds = %for.end
|
||||
%add7 = add nsw i32 %i.0, 1
|
||||
%arrayidx8 = getelementptr inbounds i32* %sum, i32 %add7
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %sum, i32 %add7
|
||||
%tmp3 = load i32* %arrayidx8, align 4
|
||||
%add9 = add nsw i32 %tmp3, 7
|
||||
store i32 %add9, i32* %arrayidx8, align 4
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ for.body: ; preds = %for.cond
|
|||
|
||||
S1: ; preds = %for.body
|
||||
%add = add nsw i32 %i.0, 1
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %add
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %add
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add1 = add nsw i32 %tmp, 42
|
||||
store i32 %add1, i32* %arrayidx, align 4
|
||||
|
|
@ -57,7 +57,7 @@ for.body4: ; preds = %for.cond2
|
|||
S2: ; preds = %for.body4
|
||||
%mul = mul nsw i32 %i.0, %j.0
|
||||
%sub = sub nsw i32 %i.0, %j.0
|
||||
%arrayidx5 = getelementptr inbounds i32* %sum, i32 %sub
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %sum, i32 %sub
|
||||
%tmp2 = load i32* %arrayidx5, align 4
|
||||
%add6 = add nsw i32 %tmp2, %mul
|
||||
store i32 %add6, i32* %arrayidx5, align 4
|
||||
|
|
@ -72,7 +72,7 @@ for.end: ; preds = %for.cond2
|
|||
|
||||
S3: ; preds = %for.end
|
||||
%sub7 = add nsw i32 %i.0, -1
|
||||
%arrayidx8 = getelementptr inbounds i32* %sum, i32 %sub7
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %sum, i32 %sub7
|
||||
%tmp3 = load i32* %arrayidx8, align 4
|
||||
%add9 = add nsw i32 %tmp3, 7
|
||||
store i32 %add9, i32* %arrayidx8, align 4
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ for.body: ; preds = %for.cond
|
|||
br label %S1
|
||||
|
||||
S1: ; preds = %for.body
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 42
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
@ -55,7 +55,7 @@ for.body3: ; preds = %for.cond1
|
|||
|
||||
S2: ; preds = %for.body3
|
||||
%mul = mul nsw i32 %i.0, %j.0
|
||||
%arrayidx4 = getelementptr inbounds i32* %sum, i32 %j.0
|
||||
%arrayidx4 = getelementptr inbounds i32, i32* %sum, i32 %j.0
|
||||
%tmp2 = load i32* %arrayidx4, align 4
|
||||
%add5 = add nsw i32 %tmp2, %mul
|
||||
store i32 %add5, i32* %arrayidx4, align 4
|
||||
|
|
@ -69,7 +69,7 @@ for.end: ; preds = %for.cond1
|
|||
br label %S3
|
||||
|
||||
S3: ; preds = %for.end
|
||||
%arrayidx6 = getelementptr inbounds i32* %sum, i32 %i.0
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %sum, i32 %i.0
|
||||
%tmp3 = load i32* %arrayidx6, align 4
|
||||
%add7 = add nsw i32 %tmp3, 7
|
||||
store i32 %add7, i32* %arrayidx6, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.body3: ; preds = %for.cond1
|
|||
br label %S1
|
||||
|
||||
S1: ; preds = %for.body3
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %j.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %j.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 42
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
@ -66,7 +66,7 @@ for.body6: ; preds = %for.cond4
|
|||
|
||||
S2: ; preds = %for.body6
|
||||
%mul = mul nsw i32 %i.0, %j.1
|
||||
%arrayidx7 = getelementptr inbounds i32* %sum, i32 %j.1
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %sum, i32 %j.1
|
||||
%tmp3 = load i32* %arrayidx7, align 4
|
||||
%add8 = add nsw i32 %tmp3, %mul
|
||||
store i32 %add8, i32* %arrayidx7, align 4
|
||||
|
|
|
|||
|
|
@ -40,17 +40,17 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
for.body3: ; preds = %for.cond1
|
||||
%add = add nsw i32 %i.0, %j.0
|
||||
%sub = add nsw i32 %add, -1
|
||||
%arrayidx = getelementptr inbounds i32* %Values, i32 %sub
|
||||
%arrayidx = getelementptr inbounds i32, i32* %Values, i32 %sub
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%arrayidx4 = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp2 = load i32* %arrayidx4, align 4
|
||||
%add5 = add nsw i32 %tmp2, %tmp
|
||||
store i32 %add5, i32* %arrayidx4, align 4
|
||||
%add6 = add nsw i32 %i.0, %j.0
|
||||
%add7 = add nsw i32 %add6, 42
|
||||
%arrayidx8 = getelementptr inbounds i32* %Values, i32 %add7
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %Values, i32 %add7
|
||||
%tmp3 = load i32* %arrayidx8, align 4
|
||||
%arrayidx9 = getelementptr inbounds i32* %B, i32 %j.0
|
||||
%arrayidx9 = getelementptr inbounds i32, i32* %B, i32 %j.0
|
||||
%tmp4 = load i32* %arrayidx9, align 4
|
||||
%add10 = add nsw i32 %tmp4, %tmp3
|
||||
store i32 %add10, i32* %arrayidx9, align 4
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -30,7 +30,7 @@ exit.1:
|
|||
|
||||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 10
|
||||
|
|
@ -41,7 +41,7 @@ exit.2:
|
|||
|
||||
S3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %S3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
store i32 7, i32* %arrayidx.3
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
%exitcond.3 = icmp ne i64 %indvar.next.3, 200
|
||||
|
|
@ -92,7 +92,7 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 2, i32* %arrayidx.1
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -103,7 +103,7 @@ exit.1:
|
|||
|
||||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 10
|
||||
|
|
@ -114,8 +114,8 @@ exit.2:
|
|||
|
||||
S3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %S3 ]
|
||||
%arrayidx.3.a = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.b = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.a = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3.b = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.3
|
||||
%val = load i32* %arrayidx.3.a
|
||||
store i32 %val, i32* %arrayidx.3.b
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
|
|
@ -169,8 +169,8 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1.a = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1.b = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.1
|
||||
%arrayidx.1.a = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1.b = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.1
|
||||
%val = load i32* %arrayidx.1.a
|
||||
store i32 %val, i32* %arrayidx.1.b
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
|
|
@ -182,7 +182,7 @@ exit.1:
|
|||
|
||||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%arrayidx.2 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
%arrayidx.2 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.2
|
||||
store i32 5, i32* %arrayidx.2
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
%exitcond.2 = icmp ne i64 %indvar.next.2, 10
|
||||
|
|
@ -193,7 +193,7 @@ exit.2:
|
|||
|
||||
S3:
|
||||
%indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %S3 ]
|
||||
%arrayidx.3 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
%arrayidx.3 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.3
|
||||
store i32 10, i32* %arrayidx.3
|
||||
%indvar.next.3 = add i64 %indvar.3, 1
|
||||
%exitcond.3 = icmp ne i64 %indvar.next.3, 200
|
||||
|
|
@ -245,7 +245,7 @@ entry:
|
|||
|
||||
S1:
|
||||
%indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
|
||||
%arrayidx.1 = getelementptr [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
%arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
|
||||
store i32 10, i32* %arrayidx.1
|
||||
%indvar.next.1 = add i64 %indvar.1, 1
|
||||
%exitcond.1 = icmp ne i64 %indvar.next.1, 100
|
||||
|
|
@ -257,8 +257,8 @@ exit.1:
|
|||
S2:
|
||||
%indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %S2 ]
|
||||
%sum = add i64 %indvar.2, %p
|
||||
%arrayidx.2.a = getelementptr [200 x i32]* %A, i64 0, i64 %sum
|
||||
%arrayidx.2.b = getelementptr [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
%arrayidx.2.a = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %sum
|
||||
%arrayidx.2.b = getelementptr [200 x i32], [200 x i32]* %B, i64 0, i64 %indvar.2
|
||||
%val = load i32* %arrayidx.2.a
|
||||
store i32 %val, i32* %arrayidx.2.b
|
||||
%indvar.next.2 = add i64 %indvar.2, 1
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.j:
|
|||
; CHECK: %init.loadarray = load i64* %init.s2a
|
||||
; CHECK: %init_plus_two = add i64 %init.loadarray, 2
|
||||
; SCALARACCESS: %init_plus_two = add i64 %init, 2
|
||||
%scevgep = getelementptr i64* %A, i64 %indvar.j
|
||||
%scevgep = getelementptr i64, i64* %A, i64 %indvar.j
|
||||
store i64 %init_plus_two, i64* %scevgep
|
||||
%indvar.j.next = add nsw i64 %indvar.j, 1
|
||||
%exitcond.j = icmp eq i64 %indvar.j.next, %N
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ for.j:
|
|||
|
||||
; SCALARACCESS: %init_2 = load i64* %init_ptr
|
||||
; SCALARACCESS: %init_sum = add i64 %init, %init_2
|
||||
%scevgep = getelementptr i64* %A, i64 %indvar.j
|
||||
%scevgep = getelementptr i64, i64* %A, i64 %indvar.j
|
||||
store i64 %init_sum, i64* %scevgep
|
||||
%indvar.j.next = add nsw i64 %indvar.j, 1
|
||||
%exitcond.j = icmp eq i64 %indvar.j.next, %N
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ for.j:
|
|||
; The scalar evolution of %init_plus_two is (2 + %init). So we have a
|
||||
; non-trivial scalar evolution referring to a value in the same basic block.
|
||||
; We want to ensure that this scalar is not translated into a memory copy.
|
||||
%scevgep = getelementptr i64* %A, i64 %indvar.j
|
||||
%scevgep = getelementptr i64, i64* %A, i64 %indvar.j
|
||||
store i64 %init_plus_two, i64* %scevgep
|
||||
%indvar.j.next = add nsw i64 %indvar.j, 1
|
||||
%exitcond.j = icmp eq i64 %indvar.j.next, %N
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ for.cond:
|
|||
br i1 %exitcond, label %for.body, label %return
|
||||
|
||||
for.body:
|
||||
%arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%float = uitofp i64 %indvar to float
|
||||
store float %float, float* %arrayidx
|
||||
br label %for.inc
|
||||
|
|
@ -87,31 +87,31 @@ for.cond:
|
|||
br i1 %exitcond, label %for.body.a, label %return
|
||||
|
||||
for.body.a:
|
||||
%arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%scalar = load float* %arrayidx
|
||||
br label %for.body.b
|
||||
|
||||
; CHECK: for.body.a:
|
||||
; CHECK: %arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; CHECK: %arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; CHECK: %scalar = load float* %arrayidx
|
||||
; CHECK: store float %scalar, float* %scalar.s2a
|
||||
; CHECK: br label %for.body.b
|
||||
|
||||
; SCALARACCESS: for.body.a:
|
||||
; SCALARACCESS: %arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; SCALARACCESS: %arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; SCALARACCESS: %scalar = load float* %arrayidx
|
||||
; SCALARACCESS-NOT: store
|
||||
; SCALARACCESS: br label %for.body.b
|
||||
|
||||
for.body.b:
|
||||
%arrayidx2 = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx2 = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%float = uitofp i64 %indvar to float
|
||||
%sum = fadd float %scalar, %float
|
||||
store float %sum, float* %arrayidx2
|
||||
br label %for.inc
|
||||
|
||||
; CHECK: for.body.b:
|
||||
; CHECK: %arrayidx2 = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; CHECK: %arrayidx2 = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; CHECK: %float = uitofp i64 %indvar to float
|
||||
; CHECK: %scalar.loadarray = load float* %scalar.s2a
|
||||
; CHECK: %sum = fadd float %scalar.loadarray, %float
|
||||
|
|
@ -119,7 +119,7 @@ for.body.b:
|
|||
; CHECK: br label %for.inc
|
||||
|
||||
; SCALARACCESS: for.body.b:
|
||||
; SCALARACCESS: %arrayidx2 = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; SCALARACCESS: %arrayidx2 = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
; SCALARACCESS: %float = uitofp i64 %indvar to float
|
||||
; SCALARACCESS-NOT: load
|
||||
; SCALARACCESS: %sum = fadd float %scalar, %float
|
||||
|
|
@ -159,7 +159,7 @@ for.head:
|
|||
br label %for.body
|
||||
|
||||
for.body:
|
||||
%arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%scalar = load float* %arrayidx
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -219,7 +219,7 @@ for.cond:
|
|||
br i1 %exitcond, label %for.body, label %return
|
||||
|
||||
for.body:
|
||||
%arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
store float %scalar, float* %arrayidx
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -253,7 +253,7 @@ for.cond:
|
|||
br i1 %exitcond, label %for.body, label %return
|
||||
|
||||
for.body:
|
||||
%arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
store float %scalar, float* %arrayidx
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ for.cond: ; preds = %for.inc, %entry
|
|||
br i1 %exitcond3, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv1
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv1
|
||||
store i32 1, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -38,10 +38,10 @@ for.cond2: ; preds = %for.inc9, %for.end
|
|||
br i1 %exitcond, label %for.body4, label %for.end11
|
||||
|
||||
for.body4: ; preds = %for.cond2
|
||||
%arrayidx6 = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||
%tmp = load i32* %arrayidx6, align 4
|
||||
%mul = shl nsw i32 %tmp, 1
|
||||
%arrayidx8 = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||
store i32 %mul, i32* %arrayidx8, align 4
|
||||
br label %for.inc9
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ loop.j:
|
|||
br i1 %exitcond.j, label %loop.body, label %loop.i.backedge
|
||||
|
||||
loop.body:
|
||||
%scevgep = getelementptr [1024 x [1024 x i32] ]* @A, i64 0, i64 %j, i64 %i
|
||||
%scevgep = getelementptr [1024 x [1024 x i32] ], [1024 x [1024 x i32] ]* @A, i64 0, i64 %j, i64 %i
|
||||
store i32 1, i32* %scevgep
|
||||
br label %loop.j.backedge
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ loop.j:
|
|||
br i1 %exitcond.j, label %loop.body, label %loop.i.backedge
|
||||
|
||||
loop.body:
|
||||
%scevgep = getelementptr [1024 x [1024 x i32] ]* @A, i64 0, i64 %j, i64 %i
|
||||
%scevgep = getelementptr [1024 x [1024 x i32] ], [1024 x [1024 x i32] ]* @A, i64 0, i64 %j, i64 %i
|
||||
store i32 1, i32* %scevgep
|
||||
br label %loop.j.backedge
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ loop.j:
|
|||
br i1 %exitcond.j, label %loop.body, label %loop.i.backedge
|
||||
|
||||
loop.body:
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 %j
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %j
|
||||
store i32 1, i32* %scevgep
|
||||
br label %loop.j.backedge
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ loop.j:
|
|||
br i1 %exitcond.j, label %loop.body, label %loop.i.backedge
|
||||
|
||||
loop.body:
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 %i
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %i
|
||||
store i32 1, i32* %scevgep
|
||||
br label %loop.j.backedge
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ start:
|
|||
|
||||
loop.header:
|
||||
%i = phi i64 [ 0, %start ], [ %i.next, %loop.backedge ]
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 0
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 0
|
||||
%exitcond = icmp ne i64 %i, %n
|
||||
br i1 %exitcond, label %loop.body, label %ret
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ start:
|
|||
|
||||
loop.header:
|
||||
%i = phi i64 [ 0, %start ], [ %i.next, %loop.backedge ]
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 %i
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %i
|
||||
%exitcond = icmp ne i64 %i, %n
|
||||
br i1 %exitcond, label %loop.body, label %ret
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ start:
|
|||
|
||||
loop.header:
|
||||
%i = phi i64 [ 0, %start ], [ %i.next, %loop.backedge ]
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 %i
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %i
|
||||
%exitcond = icmp ne i64 %i, %n
|
||||
br i1 %exitcond, label %loop.body, label %ret
|
||||
|
||||
|
|
|
|||
|
|
@ -32,10 +32,10 @@ for.body.preheader: ; preds = %entry
|
|||
|
||||
for.body: ; preds = %for.body.preheader, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
|
||||
%arrayidx = getelementptr inbounds float* %B, i64 %indvars.iv
|
||||
%arrayidx = getelementptr inbounds float, float* %B, i64 %indvars.iv
|
||||
%tmp = load float* %arrayidx, align 4, !tbaa !1
|
||||
%conv = fptosi float %tmp to i32
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
store i32 %conv, i32* %arrayidx2, align 4, !tbaa !5
|
||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
|
||||
%lftr.wideiv1 = trunc i64 %indvars.iv.next to i32
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ for.body.preheader: ; preds = %entry
|
|||
|
||||
for.body: ; preds = %for.body.preheader, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
|
||||
%arrayidx = getelementptr inbounds [1024 x i32]* @B, i64 0, i64 %indvars.iv
|
||||
%arrayidx = getelementptr inbounds [1024 x i32], [1024 x i32]* @B, i64 0, i64 %indvars.iv
|
||||
%tmp = load i32* %arrayidx, align 4, !tbaa !5
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
store i32 %tmp, i32* %arrayidx2, align 4, !tbaa !5
|
||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
|
||||
%lftr.wideiv1 = trunc i64 %indvars.iv.next to i32
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ for.body.preheader: ; preds = %entry
|
|||
|
||||
for.body: ; preds = %for.body.preheader, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
|
||||
%arrayidx = getelementptr inbounds [1024 x float]* @B, i64 0, i64 %indvars.iv
|
||||
%arrayidx = getelementptr inbounds [1024 x float], [1024 x float]* @B, i64 0, i64 %indvars.iv
|
||||
%tmp = load float* %arrayidx, align 4, !tbaa !1
|
||||
%conv = fptosi float %tmp to i32
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @A, i64 0, i64 %indvars.iv
|
||||
store i32 %conv, i32* %arrayidx2, align 4, !tbaa !5
|
||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
|
||||
%lftr.wideiv1 = trunc i64 %indvars.iv.next to i32
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@ entry:
|
|||
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %Int1, i64 %indvars.iv
|
||||
%arrayidx = getelementptr inbounds i32, i32* %Int1, i64 %indvars.iv
|
||||
%tmp = load i32* %arrayidx, align 4, !tbaa !0
|
||||
%arrayidx2 = getelementptr inbounds i32* %Int0, i64 %indvars.iv
|
||||
%arrayidx2 = getelementptr inbounds i32, i32* %Int0, i64 %indvars.iv
|
||||
store i32 %tmp, i32* %arrayidx2, align 4, !tbaa !0
|
||||
%arrayidx4 = getelementptr inbounds float* %Float1, i64 %indvars.iv
|
||||
%arrayidx4 = getelementptr inbounds float, float* %Float1, i64 %indvars.iv
|
||||
%tmp1 = load float* %arrayidx4, align 4, !tbaa !4
|
||||
%arrayidx6 = getelementptr inbounds float* %Float0, i64 %indvars.iv
|
||||
%arrayidx6 = getelementptr inbounds float, float* %Float0, i64 %indvars.iv
|
||||
store float %tmp1, float* %arrayidx6, align 4, !tbaa !4
|
||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
|
||||
%exitcond = icmp eq i64 %indvars.iv.next, 1024
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%idxprom = sext i32 %c to i64
|
||||
%arrayidx = getelementptr inbounds i32* %B, i64 %idxprom
|
||||
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %idxprom
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||
store i32 %tmp, i32* %arrayidx2, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ for.cond: ; preds = %for.inc, %entry
|
|||
for.body: ; preds = %for.cond
|
||||
%sub = add nsw i32 %c, -10
|
||||
%idxprom = sext i32 %sub to i64
|
||||
%arrayidx = getelementptr inbounds i32* %B, i64 %idxprom
|
||||
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %idxprom
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%arrayidx1 = getelementptr inbounds i32* %B, i64 5
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %B, i64 5
|
||||
%tmp1 = load i32* %arrayidx1, align 4
|
||||
%add = add nsw i32 %tmp, %tmp1
|
||||
%arrayidx3 = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||
store i32 %add, i32* %arrayidx3, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -28,11 +28,11 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%add4 = add nsw i32 %i.0, 8
|
||||
%arrayidx5 = getelementptr inbounds i32* %A, i32 %add4
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i32 %add4
|
||||
store i32 %add, i32* %arrayidx5, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -20,17 +20,17 @@ for.cond: ; preds = %for.inc, %entry
|
|||
br i1 %cmp, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%add1 = add nsw i32 %i.0, 7
|
||||
%arrayidx2 = getelementptr inbounds i32* %A, i32 %add1
|
||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add1
|
||||
store i32 %add, i32* %arrayidx2, align 4
|
||||
%arrayidx3 = getelementptr inbounds i32* %B, i32 %i.0
|
||||
%arrayidx3 = getelementptr inbounds i32, i32* %B, i32 %i.0
|
||||
%tmp1 = load i32* %arrayidx3, align 4
|
||||
%add4 = add nsw i32 %tmp1, 1
|
||||
%add5 = add nsw i32 %i.0, 5
|
||||
%arrayidx6 = getelementptr inbounds i32* %B, i32 %add5
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %B, i32 %add5
|
||||
store i32 %add4, i32* %arrayidx6, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -28,11 +28,11 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%add4 = add nsw i32 %i.0, %c
|
||||
%arrayidx5 = getelementptr inbounds i32* %A, i32 %add4
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i32 %add4
|
||||
store i32 %add, i32* %arrayidx5, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -28,12 +28,12 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%add4 = add nsw i32 %i.0, %c
|
||||
%add5 = add nsw i32 %add4, %v
|
||||
%arrayidx6 = getelementptr inbounds i32* %A, i32 %add5
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %add5
|
||||
store i32 %add, i32* %arrayidx6, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%sub = sub nsw i32 %N, %i.0
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %sub
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %sub
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%arrayidx1 = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
store i32 %add, i32* %arrayidx1, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -28,12 +28,12 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %j.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %j.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = mul nsw i32 %tmp, 3
|
||||
%add5 = add nsw i32 %add, 2
|
||||
%sub = add nsw i32 %i.0, -3
|
||||
%arrayidx6 = getelementptr inbounds i32* %A, i32 %sub
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %sub
|
||||
store i32 %add5, i32* %arrayidx6, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -26,38 +26,38 @@ for.cond: ; preds = %for.inc, %entry
|
|||
for.body: ; preds = %for.cond
|
||||
%mul = shl nsw i32 %i.0, 1
|
||||
%sub = sub nsw i32 100, %mul
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %sub
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %sub
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, 1
|
||||
%arrayidx1 = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
store i32 %add, i32* %arrayidx1, align 4
|
||||
%tmp1 = mul i32 %i.0, -3
|
||||
%sub3 = add i32 %tmp1, 100
|
||||
%arrayidx4 = getelementptr inbounds i32* %B, i32 %sub3
|
||||
%arrayidx4 = getelementptr inbounds i32, i32* %B, i32 %sub3
|
||||
%tmp2 = load i32* %arrayidx4, align 4
|
||||
%add5 = add nsw i32 %tmp2, 1
|
||||
%arrayidx6 = getelementptr inbounds i32* %B, i32 %i.0
|
||||
%arrayidx6 = getelementptr inbounds i32, i32* %B, i32 %i.0
|
||||
store i32 %add5, i32* %arrayidx6, align 4
|
||||
%mul7 = shl nsw i32 %i.0, 2
|
||||
%sub8 = sub nsw i32 100, %mul7
|
||||
%arrayidx9 = getelementptr inbounds i32* %C, i32 %sub8
|
||||
%arrayidx9 = getelementptr inbounds i32, i32* %C, i32 %sub8
|
||||
%tmp3 = load i32* %arrayidx9, align 4
|
||||
%add10 = add nsw i32 %tmp3, 1
|
||||
%arrayidx11 = getelementptr inbounds i32* %C, i32 %i.0
|
||||
%arrayidx11 = getelementptr inbounds i32, i32* %C, i32 %i.0
|
||||
store i32 %add10, i32* %arrayidx11, align 4
|
||||
%tmp4 = mul i32 %i.0, -5
|
||||
%sub13 = add i32 %tmp4, 100
|
||||
%arrayidx14 = getelementptr inbounds i32* %D, i32 %sub13
|
||||
%arrayidx14 = getelementptr inbounds i32, i32* %D, i32 %sub13
|
||||
%tmp5 = load i32* %arrayidx14, align 4
|
||||
%add15 = add nsw i32 %tmp5, 1
|
||||
%arrayidx16 = getelementptr inbounds i32* %D, i32 %i.0
|
||||
%arrayidx16 = getelementptr inbounds i32, i32* %D, i32 %i.0
|
||||
store i32 %add15, i32* %arrayidx16, align 4
|
||||
%tmp6 = mul i32 %i.0, -6
|
||||
%sub18 = add i32 %tmp6, 100
|
||||
%arrayidx19 = getelementptr inbounds i32* %E, i32 %sub18
|
||||
%arrayidx19 = getelementptr inbounds i32, i32* %E, i32 %sub18
|
||||
%tmp7 = load i32* %arrayidx19, align 4
|
||||
%add20 = add nsw i32 %tmp7, 1
|
||||
%arrayidx21 = getelementptr inbounds i32* %E, i32 %i.0
|
||||
%arrayidx21 = getelementptr inbounds i32, i32* %E, i32 %i.0
|
||||
store i32 %add20, i32* %arrayidx21, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ for.cond4: ; preds = %for.inc, %for.body3
|
|||
for.body6: ; preds = %for.cond4
|
||||
%tmp = mul nsw i32 %j.0, %M
|
||||
%arrayidx.sum = add i32 %tmp, %k.0
|
||||
%arrayidx7 = getelementptr inbounds i32* %sum, i32 %arrayidx.sum
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %sum, i32 %arrayidx.sum
|
||||
%tmp1 = load i32* %arrayidx7, align 4
|
||||
%xor = xor i32 %tmp1, %j.0
|
||||
store i32 %xor, i32* %arrayidx7, align 4
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %cmp2, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %sum, i32 %j.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %sum, i32 %j.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%xor = xor i32 %tmp, %j.0
|
||||
store i32 %xor, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -28,20 +28,20 @@ for.cond: ; preds = %for.inc, %entry
|
|||
br i1 %exitcond, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%sub = add nsw i32 %i.0, -1
|
||||
%arrayidx1 = getelementptr inbounds i32* %A, i32 %sub
|
||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i32 %sub
|
||||
%tmp1 = load i32* %arrayidx1, align 4
|
||||
%add = add nsw i32 %tmp, %tmp1
|
||||
%arrayidx2 = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
store i32 %add, i32* %arrayidx2, align 4
|
||||
%sub4 = add nsw i32 %i.0, -2
|
||||
%arrayidx5 = getelementptr inbounds i32* %A, i32 %sub4
|
||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i32 %sub4
|
||||
%tmp2 = load i32* %arrayidx5, align 4
|
||||
%add6 = add nsw i32 %add, %tmp2
|
||||
%sub7 = add nsw i32 %i.0, -1
|
||||
%arrayidx8 = getelementptr inbounds i32* %A, i32 %sub7
|
||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i32 %sub7
|
||||
store i32 %add6, i32* %arrayidx8, align 4
|
||||
%tmp3 = load i32* %sum, align 4
|
||||
%add9 = add nsw i32 %tmp3, %i.0
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ for.body5: ; preds = %for.cond2
|
|||
|
||||
S1: ; preds = %for.body5
|
||||
%add6 = add nsw i32 %i1.0, 1
|
||||
%arrayidx7 = getelementptr inbounds i32* %A, i32 %add6
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
|
||||
store i32 1, i32* %arrayidx7, align 4
|
||||
br label %for.inc8
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ for.body5: ; preds = %for.cond2
|
|||
|
||||
S1: ; preds = %for.body5
|
||||
%add6 = add nsw i32 %i1.0, 1
|
||||
%arrayidx7 = getelementptr inbounds i32* %A, i32 %add6
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
|
||||
store i32 1, i32* %arrayidx7, align 4
|
||||
br label %for.inc8
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ for.body5: ; preds = %for.cond2
|
|||
|
||||
S1: ; preds = %for.body5
|
||||
%add6 = add nsw i32 %i1.0, 1
|
||||
%arrayidx7 = getelementptr inbounds i32* %A, i32 %add6
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
|
||||
store i32 1, i32* %arrayidx7, align 4
|
||||
br label %for.inc8
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ for.body5: ; preds = %for.cond2
|
|||
|
||||
S1: ; preds = %for.body5
|
||||
%add6 = add nsw i32 %i1.0, 1
|
||||
%arrayidx7 = getelementptr inbounds i32* %A, i32 %add6
|
||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
|
||||
store i32 1, i32* %arrayidx7, align 4
|
||||
br label %for.inc8
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
br i1 %exitcond, label %for.body3, label %for.end
|
||||
|
||||
for.body3: ; preds = %for.cond1
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.cond4: ; preds = %for.inc, %for.body3
|
|||
br i1 %exitcond, label %for.body6, label %for.end
|
||||
|
||||
for.body6: ; preds = %for.cond4
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.cond4: ; preds = %for.inc, %for.body3
|
|||
br i1 %exitcond, label %for.body6, label %for.end
|
||||
|
||||
for.body6: ; preds = %for.cond4
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.cond4: ; preds = %for.inc, %for.body3
|
|||
br i1 %exitcond, label %for.body6, label %for.end
|
||||
|
||||
for.body6: ; preds = %for.cond4
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.cond4: ; preds = %for.inc, %for.body3
|
|||
br i1 %exitcond, label %for.body6, label %for.end
|
||||
|
||||
for.body6: ; preds = %for.cond4
|
||||
%arrayidx = getelementptr inbounds i32* %A, i32 %i.0
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.0
|
||||
%tmp = load i32* %arrayidx, align 4
|
||||
%add = add nsw i32 %tmp, %i.0
|
||||
store i32 %add, i32* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ for.cond: ; preds = %for.body, %entry
|
|||
br i1 %cmp, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i16* %B, i64 0
|
||||
%arrayidx = getelementptr inbounds i16, i16* %B, i64 0
|
||||
%load = load i16* %arrayidx
|
||||
%add10 = add nsw i16 %load, 1
|
||||
%arrayidx13 = getelementptr inbounds i16* %A, i64 %indvar
|
||||
%arrayidx13 = getelementptr inbounds i16, i16* %A, i64 %indvar
|
||||
store i16 %add10, i16* %arrayidx13, align 2
|
||||
%inc = add nsw i64 %indvar, 1
|
||||
br label %for.cond
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ for.j:
|
|||
%subscript0 = mul i64 %offset0, %m
|
||||
%offset1 = add nsw i64 %j, %q
|
||||
%subscript1 = add i64 %offset1, %subscript0
|
||||
%idx = getelementptr inbounds double* %A, i64 %subscript1
|
||||
%idx = getelementptr inbounds double, double* %A, i64 %subscript1
|
||||
store double 1.0, double* %idx
|
||||
br label %for.j.inc
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ for.j.1:
|
|||
%offset1.1 = add nsw i64 %j.1, %q
|
||||
%subscript1.1 = add i64 %offset1.1, %subscript0.1
|
||||
%subscript1.2 = sub i64 %subscript1.1, 100
|
||||
%idx.1 = getelementptr inbounds double* %A, i64 %subscript1.2
|
||||
%idx.1 = getelementptr inbounds double, double* %A, i64 %subscript1.2
|
||||
store double 1.0, double* %idx.1
|
||||
br label %for.j.inc.1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ for.cond: ; preds = %for.body, %entry
|
|||
br i1 %cmp, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i16* %B, i64 0
|
||||
%arrayidx = getelementptr inbounds i16, i16* %B, i64 0
|
||||
%load = load i16* %arrayidx
|
||||
%add10 = add nsw i16 %load, 1
|
||||
%arrayidx13 = getelementptr inbounds i16* %A, i64 %indvar
|
||||
%arrayidx13 = getelementptr inbounds i16, i16* %A, i64 %indvar
|
||||
store i16 %add10, i16* %arrayidx13, align 2
|
||||
%inc = add nsw i64 %indvar, 1
|
||||
br label %for.cond
|
||||
|
|
|
|||
|
|
@ -37,44 +37,44 @@ bb32: ; preds = %bb27
|
|||
br label %bb37
|
||||
|
||||
bb34: ; preds = %bb35
|
||||
%0 = getelementptr inbounds [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%1 = getelementptr inbounds [18 x [32 x double]]* undef, i64 0, i64 0 ; <[32 x double]*> [#uses=1]
|
||||
%2 = getelementptr inbounds [32 x double]* %1, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%3 = getelementptr inbounds [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%0 = getelementptr inbounds [36 x double], [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%1 = getelementptr inbounds [18 x [32 x double]], [18 x [32 x double]]* undef, i64 0, i64 0 ; <[32 x double]*> [#uses=1]
|
||||
%2 = getelementptr inbounds [32 x double], [32 x double]* %1, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%3 = getelementptr inbounds [36 x double], [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
|
||||
%4 = sub nsw i32 17, %k.4 ; <i32> [#uses=1]
|
||||
%5 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
|
||||
%6 = getelementptr inbounds [2 x [18 x [32 x double]]]* %5, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
|
||||
%5 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]], [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
|
||||
%6 = getelementptr inbounds [2 x [18 x [32 x double]]], [2 x [18 x [32 x double]]]* %5, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
|
||||
%7 = sext i32 %4 to i64 ; <i64> [#uses=1]
|
||||
%8 = getelementptr inbounds [18 x [32 x double]]* %6, i64 0, i64 %7 ; <[32 x double]*> [#uses=1]
|
||||
%9 = getelementptr inbounds [32 x double]* %8, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%8 = getelementptr inbounds [18 x [32 x double]], [18 x [32 x double]]* %6, i64 0, i64 %7 ; <[32 x double]*> [#uses=1]
|
||||
%9 = getelementptr inbounds [32 x double], [32 x double]* %8, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%10 = load double* %9, align 8 ; <double> [#uses=0]
|
||||
%11 = fsub double 0.000000e+00, undef ; <double> [#uses=1]
|
||||
%12 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 0 ; <double*> [#uses=1]
|
||||
%12 = getelementptr inbounds double, double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 0 ; <double*> [#uses=1]
|
||||
store double %11, double* %12, align 8
|
||||
%13 = add nsw i32 %k.4, 9 ; <i32> [#uses=1]
|
||||
%14 = add nsw i32 %k.4, 18 ; <i32> [#uses=1]
|
||||
%15 = getelementptr inbounds [4 x [36 x double]]* @win193, i64 0, i64 0 ; <[36 x double]*> [#uses=1]
|
||||
%15 = getelementptr inbounds [4 x [36 x double]], [4 x [36 x double]]* @win193, i64 0, i64 0 ; <[36 x double]*> [#uses=1]
|
||||
%16 = sext i32 %14 to i64 ; <i64> [#uses=1]
|
||||
%17 = getelementptr inbounds [36 x double]* %15, i64 0, i64 %16 ; <double*> [#uses=1]
|
||||
%17 = getelementptr inbounds [36 x double], [36 x double]* %15, i64 0, i64 %16 ; <double*> [#uses=1]
|
||||
%18 = load double* %17, align 8 ; <double> [#uses=0]
|
||||
%19 = sext i32 %k.4 to i64 ; <i64> [#uses=1]
|
||||
%20 = getelementptr inbounds [18 x [32 x double]]* undef, i64 0, i64 %19 ; <[32 x double]*> [#uses=1]
|
||||
%20 = getelementptr inbounds [18 x [32 x double]], [18 x [32 x double]]* undef, i64 0, i64 %19 ; <[32 x double]*> [#uses=1]
|
||||
%21 = sext i32 %band.2 to i64 ; <i64> [#uses=1]
|
||||
%22 = getelementptr inbounds [32 x double]* %20, i64 0, i64 %21 ; <double*> [#uses=1]
|
||||
%22 = getelementptr inbounds [32 x double], [32 x double]* %20, i64 0, i64 %21 ; <double*> [#uses=1]
|
||||
%23 = load double* %22, align 8 ; <double> [#uses=0]
|
||||
%24 = sext i32 %39 to i64 ; <i64> [#uses=1]
|
||||
%25 = getelementptr inbounds [4 x [36 x double]]* @win193, i64 0, i64 %24 ; <[36 x double]*> [#uses=1]
|
||||
%26 = getelementptr inbounds [36 x double]* %25, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%25 = getelementptr inbounds [4 x [36 x double]], [4 x [36 x double]]* @win193, i64 0, i64 %24 ; <[36 x double]*> [#uses=1]
|
||||
%26 = getelementptr inbounds [36 x double], [36 x double]* %25, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%27 = load double* %26, align 8 ; <double> [#uses=0]
|
||||
%28 = sub nsw i32 17, %k.4 ; <i32> [#uses=1]
|
||||
%29 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
|
||||
%30 = getelementptr inbounds [2 x [18 x [32 x double]]]* %29, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
|
||||
%29 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]], [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
|
||||
%30 = getelementptr inbounds [2 x [18 x [32 x double]]], [2 x [18 x [32 x double]]]* %29, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
|
||||
%31 = sext i32 %28 to i64 ; <i64> [#uses=1]
|
||||
%32 = getelementptr inbounds [18 x [32 x double]]* %30, i64 0, i64 %31 ; <[32 x double]*> [#uses=1]
|
||||
%33 = getelementptr inbounds [32 x double]* %32, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%32 = getelementptr inbounds [18 x [32 x double]], [18 x [32 x double]]* %30, i64 0, i64 %31 ; <[32 x double]*> [#uses=1]
|
||||
%33 = getelementptr inbounds [32 x double], [32 x double]* %32, i64 0, i64 0 ; <double*> [#uses=1]
|
||||
%34 = load double* %33, align 8 ; <double> [#uses=0]
|
||||
%35 = sext i32 %13 to i64 ; <i64> [#uses=1]
|
||||
%36 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 %35 ; <double*> [#uses=1]
|
||||
%36 = getelementptr inbounds double, double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 %35 ; <double*> [#uses=1]
|
||||
store double 0.000000e+00, double* %36, align 8
|
||||
%37 = sub nsw i32 %k.4, 1 ; <i32> [#uses=1]
|
||||
br label %bb35
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ bb5: ; preds = %bb4
|
|||
unreachable
|
||||
|
||||
bb6: ; preds = %bb4
|
||||
%1 = getelementptr inbounds i8* undef, i64 %0 ; <i8*> [#uses=0]
|
||||
%1 = getelementptr inbounds i8, i8* undef, i64 %0 ; <i8*> [#uses=0]
|
||||
ret void
|
||||
|
||||
return: ; preds = %bb, %entry
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ bb: ; preds = %bb4
|
|||
br label %bb2
|
||||
|
||||
bb1: ; preds = %bb2
|
||||
%1 = getelementptr inbounds double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%2 = getelementptr inbounds double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%3 = getelementptr inbounds double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%1 = getelementptr inbounds double*, double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%2 = getelementptr inbounds double*, double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%3 = getelementptr inbounds double*, double** %A, i64 0 ; <double**> [#uses=0]
|
||||
%4 = sext i32 %j.0 to i64 ; <i64> [#uses=1]
|
||||
%5 = getelementptr inbounds double** %A, i64 %4 ; <double**> [#uses=1]
|
||||
%5 = getelementptr inbounds double*, double** %A, i64 %4 ; <double**> [#uses=1]
|
||||
%6 = load double** %5, align 8 ; <double*> [#uses=0]
|
||||
%7 = add nsw i32 %j.0, 1 ; <i32> [#uses=1]
|
||||
br label %bb2
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ define i32 @main() nounwind {
|
|||
|
||||
; <label>:1 ; preds = %12, %0
|
||||
%indvar = phi i64 [ %indvar.next, %12 ], [ 0, %0 ] ; <i64> [#uses=4]
|
||||
%scevgep = getelementptr [100 x i32]* @A, i64 0, i64 %indvar ; <i32*> [#uses=3]
|
||||
%scevgep = getelementptr [100 x i32], [100 x i32]* @A, i64 0, i64 %indvar ; <i32*> [#uses=3]
|
||||
%i.0 = trunc i64 %indvar to i32 ; <i32> [#uses=3]
|
||||
%exitcond = icmp ne i64 %indvar, 100 ; <i1> [#uses=1]
|
||||
br i1 %exitcond, label %2, label %13
|
||||
|
|
@ -76,7 +76,7 @@ define i32 @main() nounwind {
|
|||
; <label>:13 ; preds = %1
|
||||
fence seq_cst
|
||||
%14 = sext i32 undef to i64 ; <i64> [#uses=1]
|
||||
%15 = getelementptr inbounds i32* getelementptr inbounds ([100 x i32]* @A, i32 0, i32 0), i64 %14 ; <i32*> [#uses=1]
|
||||
%15 = getelementptr inbounds i32, i32* getelementptr inbounds ([100 x i32]* @A, i32 0, i32 0), i64 %14 ; <i32*> [#uses=1]
|
||||
%16 = load i32* %15 ; <i32> [#uses=1]
|
||||
ret i32 %16
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ bb20: ; preds = %bb34
|
|||
br i1 false, label %bb21, label %bb23
|
||||
|
||||
bb21: ; preds = %bb20
|
||||
%0 = getelementptr inbounds [2 x float]* %x, i64 undef ; <[2 x float]*> [#uses=1]
|
||||
%0 = getelementptr inbounds [2 x float], [2 x float]* %x, i64 undef ; <[2 x float]*> [#uses=1]
|
||||
store [2 x float]* %0, [2 x float]** %d.1.reg2mem
|
||||
br label %bb23
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ bb23: ; preds = %bb21, %bb20
|
|||
br i1 undef, label %bb29, label %bb34
|
||||
|
||||
bb29: ; preds = %bb23
|
||||
%1 = getelementptr inbounds [2 x float]* %d.1.reload, i64 undef ; <[2 x float]*> [#uses=0]
|
||||
%1 = getelementptr inbounds [2 x float], [2 x float]* %d.1.reload, i64 undef ; <[2 x float]*> [#uses=0]
|
||||
br label %bb34
|
||||
|
||||
bb34: ; preds = %bb29, %bb23, %entry
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bb20:
|
|||
br label %bb22
|
||||
|
||||
bb21: ; preds = %bb22
|
||||
%r_addr.1.moved.to.bb21 = getelementptr i16* %r, i64 0
|
||||
%r_addr.1.moved.to.bb21 = getelementptr i16, i16* %r, i64 0
|
||||
store i16 0, i16* %r_addr.1.moved.to.bb21, align 2
|
||||
%indvar.next = add i64 %indvar, 1
|
||||
br label %bb22
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ for.cond: ; preds = %for.body, %entry
|
|||
br i1 %cmp, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds [2048 x i64]* @b, i64 0, i64 %indvar
|
||||
%arrayidx = getelementptr inbounds [2048 x i64], [2048 x i64]* @b, i64 0, i64 %indvar
|
||||
store i64 1, i64* %arrayidx
|
||||
%inc = add nsw i64 %indvar, 1
|
||||
br label %for.cond
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ entry:
|
|||
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %0, i64 %indvars.iv, !dbg !21
|
||||
%arrayidx = getelementptr inbounds i32, i32* %0, i64 %indvars.iv, !dbg !21
|
||||
%1 = load i32* %arrayidx, align 4, !dbg !21, !tbaa !30
|
||||
%add = add nsw i32 %1, 1, !dbg !21
|
||||
store i32 %add, i32* %arrayidx, align 4, !dbg !21, !tbaa !30
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ for.body3: ; preds = %for.cond1
|
|||
%tmp = add nsw i64 %indvars.iv3, %indvars.iv
|
||||
%tmp7 = shl nsw i64 %indvars.iv3, 9
|
||||
%tmp8 = add nsw i64 %tmp7, %indvars.iv
|
||||
%arrayidx = getelementptr inbounds i32* %A, i64 %tmp8
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %tmp8
|
||||
%tmp9 = trunc i64 %tmp to i32
|
||||
store i32 %tmp9, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ loop.header:
|
|||
br i1 %exitcond, label %loop.body, label %ret
|
||||
|
||||
loop.body:
|
||||
%scevgep = getelementptr [1024 x i32]* @A, i64 0, i64 %i
|
||||
%scevgep = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %i
|
||||
store i32 1, i32* %scevgep
|
||||
br label %loop.backedge
|
||||
|
||||
|
|
@ -61,10 +61,10 @@ loop.header:
|
|||
loop.body:
|
||||
%loadoffset1 = mul nsw i64 %i, 2
|
||||
%loadoffset2 = add nsw i64 %loadoffset1, 1
|
||||
%scevgepload = getelementptr [1024 x i32]* @A, i64 0, i64 %loadoffset2
|
||||
%scevgepload = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %loadoffset2
|
||||
%val = load i32* %scevgepload
|
||||
%storeoffset = mul i64 %i, 2
|
||||
%scevgepstore = getelementptr [1024 x i32]* @A, i64 0, i64 %storeoffset
|
||||
%scevgepstore = getelementptr [1024 x i32], [1024 x i32]* @A, i64 0, i64 %storeoffset
|
||||
store i32 %val, i32* %scevgepstore
|
||||
br label %loop.backedge
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ for.cond: ; preds = %for.inc, %entry
|
|||
br i1 %cmp, label %for.body, label %for.end
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||
%tmp = trunc i64 %indvars.iv to i32
|
||||
store i32 %tmp, i32* %arrayidx, align 8
|
||||
br label %for.inc
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ entry:
|
|||
for.cond: ; preds = %for.inc, %entry
|
||||
%tmp1 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
|
||||
%tmp = add i32 %tmp1, -1
|
||||
%arrayidx4 = getelementptr [100 x i32]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x i32]* @A, i32 0, i32 %tmp1
|
||||
%arrayidx4 = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %tmp1
|
||||
%exitcond = icmp ne i32 %tmp1, 12
|
||||
br i1 %exitcond, label %for.body, label %for.end
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ entry:
|
|||
for.cond: ; preds = %for.inc, %entry
|
||||
%tmp1 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
|
||||
%tmp = add i32 %tmp1, -1
|
||||
%arrayidx4 = getelementptr [100 x i32]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x i32]* @A, i32 0, i32 %tmp1
|
||||
%arrayidx4 = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %tmp1
|
||||
%exitcond = icmp ne i32 %tmp1, 12
|
||||
br i1 %exitcond, label %for.body, label %for.end
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ entry:
|
|||
for.cond: ; preds = %for.inc, %entry
|
||||
%tmp1 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
|
||||
%tmp = add i32 %tmp1, -1
|
||||
%arrayidx4 = getelementptr [100 x float]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x float]* @A, i32 0, i32 %tmp1
|
||||
%arrayidx4 = getelementptr [100 x float], [100 x float]* @A, i32 0, i32 %tmp
|
||||
%arrayidx = getelementptr [100 x float], [100 x float]* @A, i32 0, i32 %tmp1
|
||||
%exitcond = icmp ne i32 %tmp1, 12
|
||||
br i1 %exitcond, label %for.body, label %for.end
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
for.body3: ; preds = %for.cond1
|
||||
%mul = shl nsw i32 %i.0, 5
|
||||
%add = add nsw i32 %mul, %j.0
|
||||
%arrayidx = getelementptr inbounds [1040 x i32]* @A, i32 0, i32 %add
|
||||
%arrayidx = getelementptr inbounds [1040 x i32], [1040 x i32]* @A, i32 0, i32 %add
|
||||
store i32 100, i32* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ for.end6: ; preds = %for.cond
|
|||
; WITHCONST: %[[MUL2:[._a-zA-Z0-9]+]] = mul nsw i64 2, %[[IVIn]]
|
||||
; WITHCONST: %[[SUM1:[._a-zA-Z0-9]+]] = add nsw i64 %[[MUL1]], %[[MUL2]]
|
||||
; WITHCONST: %[[SUM2:[._a-zA-Z0-9]+]] = add nsw i64 %[[SUM1]], 5
|
||||
; WITHCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr i32* getelementptr inbounds ([1040 x i32]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM2]]
|
||||
; WITHCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr i32, i32* getelementptr inbounds ([1040 x i32]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM2]]
|
||||
; WITHCONST: store i32 100, i32* %[[ACC]]
|
||||
|
||||
; WITHOUTCONST: %[[IVOut:polly.indvar[0-9]*]] = phi i64 [ 0, %polly.loop_preheader{{[0-9]*}} ], [ %polly.indvar_next{{[0-9]*}}, %polly.{{[._a-zA-Z0-9]*}} ]
|
||||
|
|
@ -71,5 +71,5 @@ for.end6: ; preds = %for.cond
|
|||
; WITHOUTCONST: %[[MUL1:[._a-zA-Z0-9]+]] = mul nsw i64 16, %[[IVOut]]
|
||||
; WITHOUTCONST: %[[MUL2:[._a-zA-Z0-9]+]] = mul nsw i64 2, %[[IVIn]]
|
||||
; WITHOUTCONST: %[[SUM1:[._a-zA-Z0-9]+]] = add nsw i64 %[[MUL1]], %[[MUL2]]
|
||||
; WITHOUTCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr i32* getelementptr inbounds ([1040 x i32]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM1]]
|
||||
; WITHOUTCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr i32, i32* getelementptr inbounds ([1040 x i32]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM1]]
|
||||
; WITHOUTCONST: store i32 100, i32* %[[ACC]]
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ for.cond1: ; preds = %for.inc, %for.body
|
|||
for.body3: ; preds = %for.cond1
|
||||
%mul = shl nsw i32 %i.0, 5
|
||||
%add = add nsw i32 %mul, %j.0
|
||||
%arrayidx = getelementptr inbounds [1040 x float]* @A, i32 0, i32 %add
|
||||
%arrayidx = getelementptr inbounds [1040 x float], [1040 x float]* @A, i32 0, i32 %add
|
||||
store float 100.0, float* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ for.end6: ; preds = %for.cond
|
|||
; WITHCONST: %[[MUL2:[._a-zA-Z0-9]+]] = mul nsw i64 2, %[[IVIn]]
|
||||
; WITHCONST: %[[SUM1:[._a-zA-Z0-9]+]] = add nsw i64 %[[MUL1]], %[[MUL2]]
|
||||
; WITHCONST: %[[SUM2:[._a-zA-Z0-9]+]] = add nsw i64 %[[SUM1]], 5
|
||||
; WITHCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr float* getelementptr inbounds ([1040 x float]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM2]]
|
||||
; WITHCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr float, float* getelementptr inbounds ([1040 x float]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM2]]
|
||||
; WITHCONST: store float 1.000000e+02, float* %[[ACC]]
|
||||
|
||||
; WITHOUTCONST: %[[IVOut:polly.indvar[0-9]*]] = phi i64 [ 0, %polly.loop_preheader{{[0-9]*}} ], [ %polly.indvar_next{{[0-9]*}}, %polly.{{[._a-zA-Z0-9]*}} ]
|
||||
|
|
@ -67,5 +67,5 @@ for.end6: ; preds = %for.cond
|
|||
; WITHOUTCONST: %[[MUL1:[._a-zA-Z0-9]+]] = mul nsw i64 16, %[[IVOut]]
|
||||
; WITHOUTCONST: %[[MUL2:[._a-zA-Z0-9]+]] = mul nsw i64 2, %[[IVIn]]
|
||||
; WITHOUTCONST: %[[SUM1:[._a-zA-Z0-9]+]] = add nsw i64 %[[MUL1]], %[[MUL2]]
|
||||
; WITHOUTCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr float* getelementptr inbounds ([1040 x float]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM1]]
|
||||
; WITHOUTCONST: %[[ACC:[._a-zA-Z0-9]*]] = getelementptr float, float* getelementptr inbounds ([1040 x float]* @A, i{{(32|64)}} 0, i{{(32|64)}} 0), i64 %[[SUM1]]
|
||||
; WITHOUTCONST: store float 1.000000e+02, float* %[[ACC]]
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%tmp = shl nsw i64 %indvars.iv, 1
|
||||
%arrayidx = getelementptr inbounds i32* %B, i64 %tmp
|
||||
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %tmp
|
||||
%tmp4 = load i32* %arrayidx, align 4
|
||||
%tmp5 = shl nsw i64 %indvars.iv, 1
|
||||
%arrayidx3 = getelementptr inbounds i32* %A, i64 %tmp5
|
||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %tmp5
|
||||
store i32 %tmp4, i32* %arrayidx3, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ entry:
|
|||
|
||||
for.cond: ; preds = %for.inc, %entry
|
||||
%0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
|
||||
%arrayidx = getelementptr [100 x i32]* @A, i32 0, i32 %0
|
||||
%arrayidx = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %0
|
||||
%exitcond1 = icmp ne i32 %0, 12
|
||||
br i1 %exitcond1, label %for.body, label %for.end
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ for.end: ; preds = %for.cond
|
|||
|
||||
for.cond4: ; preds = %for.inc11, %for.end
|
||||
%1 = phi i32 [ 0, %for.end ], [ %inc13, %for.inc11 ]
|
||||
%arrayidx10 = getelementptr [100 x i32]* @B, i32 0, i32 %1
|
||||
%arrayidx10 = getelementptr [100 x i32], [100 x i32]* @B, i32 0, i32 %1
|
||||
%exitcond = icmp ne i32 %1, 12
|
||||
br i1 %exitcond, label %for.body7, label %for.end14
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ entry:
|
|||
|
||||
for.cond: ; preds = %for.inc, %entry
|
||||
%0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
|
||||
%arrayidx = getelementptr [100 x i32]* @A, i32 0, i32 %0
|
||||
%arrayidx = getelementptr [100 x i32], [100 x i32]* @A, i32 0, i32 %0
|
||||
%exitcond1 = icmp ne i32 %0, 12
|
||||
br i1 %exitcond1, label %for.body, label %for.end
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ for.end: ; preds = %for.cond
|
|||
|
||||
for.cond4: ; preds = %for.inc11, %for.end
|
||||
%1 = phi i32 [ 0, %for.end ], [ %inc13, %for.inc11 ]
|
||||
%arrayidx10 = getelementptr [100 x i32]* @B, i32 0, i32 %1
|
||||
%arrayidx10 = getelementptr [100 x i32], [100 x i32]* @B, i32 0, i32 %1
|
||||
%exitcond = icmp ne i32 %1, 12
|
||||
br i1 %exitcond, label %for.body7, label %for.end14
|
||||
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
; stride zero for B
|
||||
; stride one for A
|
||||
;
|
||||
; CHECK: %polly.access.B = getelementptr i32* %B, i64 0
|
||||
; CHECK: %polly.access.B = getelementptr i32, i32* %B, i64 0
|
||||
; CHECK: %[[BC:[._a-zA-Z0-9]*]] = bitcast i32* %polly.access.B to <1 x i32>*
|
||||
; CHECK: %[[LD:[._a-zA-Z0-9]*]] = load <1 x i32>* %[[BC]], align 8
|
||||
; CHECK: %[[SV:[._a-zA-Z0-9]*]] = shufflevector <1 x i32> %[[LD]], <1 x i32> %[[LD]], <16 x i32> zeroinitializer
|
||||
;
|
||||
; CHECK: %polly.access.A = getelementptr i32* %A, i64 0
|
||||
; CHECK: %polly.access.A = getelementptr i32, i32* %A, i64 0
|
||||
; CHECK: %[[VP:[._a-zA-Z0-9]*]] = bitcast i32* %polly.access.A to <16 x i32>*
|
||||
; CHECK: store <16 x i32> %[[SV]], <16 x i32>* %[[VP]], align 8
|
||||
;
|
||||
|
|
@ -31,10 +31,10 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%tmp = shl nsw i64 %indvars.iv, 1
|
||||
%arrayidx = getelementptr inbounds i32* %B, i64 %tmp
|
||||
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %tmp
|
||||
%tmp4 = load i32* %arrayidx, align 4
|
||||
%tmp5 = shl nsw i64 %indvars.iv, 1
|
||||
%arrayidx3 = getelementptr inbounds i32* %A, i64 %tmp5
|
||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %tmp5
|
||||
store i32 %tmp4, i32* %arrayidx3, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ for.i:
|
|||
for.j:
|
||||
%indvar.j = phi i64 [ %indvar.j.next, %for.j], [ 0, %for.i ]
|
||||
%sum = add i64 %indvar.j, %indvar.i
|
||||
%scevgep = getelementptr [1024 x float]* @A, i64 0, i64 %sum
|
||||
%scevgep = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %sum
|
||||
store float 0.0, float *%scevgep
|
||||
%indvar.j.next = add i64 %indvar.j, 1
|
||||
%exitcond.j = icmp slt i64 %indvar.j.next, 1024
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
; AST: for (int c0 = 0; c0 <= 1023; c0 += 1)
|
||||
; AST: Stmt_for_i(c0);
|
||||
|
||||
; IR: getelementptr inbounds { [1024 x double]* }* %polly.par.userContext, i32 0, i32 0
|
||||
; IR: getelementptr inbounds { [1024 x double]* }, { [1024 x double]* }* %polly.par.userContext, i32 0, i32 0
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
|
@ -21,7 +21,7 @@ for.cond1.preheader:
|
|||
|
||||
for.i:
|
||||
%indvar.i = phi i64 [ %indvar.i.next, %for.i ], [ 0, %for.cond1.preheader ]
|
||||
%getelementptr = getelementptr [1024 x double]* %B, i64 %extern, i64 %indvar.i
|
||||
%getelementptr = getelementptr [1024 x double], [1024 x double]* %B, i64 %extern, i64 %indvar.i
|
||||
store double 0.000000e+00, double* %getelementptr
|
||||
%indvar.i.next = add i64 %indvar.i, 1
|
||||
%exitcond.i = icmp ne i64 %indvar.i.next, 1024
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ entry:
|
|||
|
||||
for.body:
|
||||
%indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds i64** %tmp, i64 0
|
||||
%arrayidx = getelementptr inbounds i64*, i64** %tmp, i64 0
|
||||
%tmp1 = load i64** %arrayidx, align 8
|
||||
%arrayidx.2 = getelementptr inbounds i64* %tmp1, i64 %indvar
|
||||
%arrayidx.2 = getelementptr inbounds i64, i64* %tmp1, i64 %indvar
|
||||
store i64 1, i64* %arrayidx.2, align 4
|
||||
%indvar.next = add nsw i64 %indvar, 1
|
||||
%cmp = icmp slt i64 %indvar.next, %cols
|
||||
|
|
@ -48,13 +48,13 @@ end:
|
|||
define void @bar(i64 %cols, i8* noalias %call) {
|
||||
entry:
|
||||
%tmp = bitcast i8* %call to i64**
|
||||
%arrayidx = getelementptr inbounds i64** %tmp, i64 0
|
||||
%arrayidx = getelementptr inbounds i64*, i64** %tmp, i64 0
|
||||
br label %for.body
|
||||
|
||||
for.body:
|
||||
%indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ]
|
||||
%tmp1 = load i64** %arrayidx, align 8
|
||||
%arrayidx.2 = getelementptr inbounds i64* %tmp1, i64 %indvar
|
||||
%arrayidx.2 = getelementptr inbounds i64, i64* %tmp1, i64 %indvar
|
||||
store i64 1, i64* %arrayidx.2, align 4
|
||||
%indvar.next = add nsw i64 %indvar, 1
|
||||
%cmp = icmp slt i64 %indvar.next, %cols
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
; IR-LABEL: polly.start:
|
||||
; IR-NEXT: %0 = bitcast { float* }* %polly.par.userContext to i8*
|
||||
; IR-NEXT: call void @llvm.lifetime.start(i64 8, i8* %0)
|
||||
; IR-NEXT: %1 = getelementptr inbounds { float* }* %polly.par.userContext, i32 0, i32 0
|
||||
; IR-NEXT: %1 = getelementptr inbounds { float* }, { float* }* %polly.par.userContext, i32 0, i32 0
|
||||
; IR-NEXT: store float* %A, float** %1
|
||||
; IR-NEXT: %polly.par.userContext1 = bitcast { float* }* %polly.par.userContext to i8*
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ for.cond: ; preds = %for.inc, %entry
|
|||
|
||||
for.body: ; preds = %for.cond
|
||||
%conv = sitofp i64 %i.0 to float
|
||||
%arrayidx = getelementptr inbounds float* %A, i64 %i.0
|
||||
%arrayidx = getelementptr inbounds float, float* %A, i64 %i.0
|
||||
store float %conv, float* %arrayidx, align 4
|
||||
br label %for.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -26,17 +26,17 @@
|
|||
; IR: %polly.par.userContext = alloca { i64, i64 }
|
||||
; IR: %[[R0:[0-9]+]] = bitcast { i64, i64 }* %polly.par.userContext to i8*
|
||||
; IR-NEXT: call void @llvm.lifetime.start(i64 16, i8* %[[R0]])
|
||||
; IR-NEXT: %[[R1:[0-9]+]] = getelementptr inbounds { i64, i64 }* %polly.par.userContext, i32 0, i32 0
|
||||
; IR-NEXT: %[[R1:[0-9]+]] = getelementptr inbounds { i64, i64 }, { i64, i64 }* %polly.par.userContext, i32 0, i32 0
|
||||
; IR-NEXT: store i64 %n, i64* %[[R1]]
|
||||
; IR-NEXT: %[[R2:[0-9]+]] = getelementptr inbounds { i64, i64 }* %polly.par.userContext, i32 0, i32 1
|
||||
; IR-NEXT: %[[R2:[0-9]+]] = getelementptr inbounds { i64, i64 }, { i64, i64 }* %polly.par.userContext, i32 0, i32 1
|
||||
; IR-NEXT: store i64 %polly.indvar, i64* %[[R2]]
|
||||
; IR-NEXT: %polly.par.userContext1 = bitcast { i64, i64 }* %polly.par.userContext to i8*
|
||||
|
||||
; IR-LABEL: @loop_references_outer_ids.polly.subfn(i8* %polly.par.userContext)
|
||||
; IR: %polly.par.userContext1 = bitcast i8* %polly.par.userContext to { i64, i64 }*
|
||||
; IR-NEXT: %[[R3:[0-9]+]] = getelementptr inbounds { i64, i64 }* %polly.par.userContext1, i32 0, i32 0
|
||||
; IR-NEXT: %[[R3:[0-9]+]] = getelementptr inbounds { i64, i64 }, { i64, i64 }* %polly.par.userContext1, i32 0, i32 0
|
||||
; IR-NEXT: %[[R4:[0-9]+]] = load i64* %[[R3]]
|
||||
; IR-NEXT: %[[R5:[0-9]+]] = getelementptr inbounds { i64, i64 }* %polly.par.userContext1, i32 0, i32 1
|
||||
; IR-NEXT: %[[R5:[0-9]+]] = getelementptr inbounds { i64, i64 }, { i64, i64 }* %polly.par.userContext1, i32 0, i32 1
|
||||
; IR-NEXT: %[[R6:[0-9]+]] = load i64* %[[R5]]
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
|
@ -73,7 +73,7 @@ for.body6: ; preds = %for.cond4
|
|||
%add7 = add nsw i64 %i.0, %j.0
|
||||
%add8 = add nsw i64 %add7, %k.0
|
||||
%conv = sitofp i64 %add8 to float
|
||||
%arrayidx = getelementptr inbounds [100 x float]* @A, i64 0, i64 %j.0
|
||||
%arrayidx = getelementptr inbounds [100 x float], [100 x float]* @A, i64 0, i64 %j.0
|
||||
%tmp = load float* %arrayidx, align 4
|
||||
%add9 = fadd float %tmp, %conv
|
||||
store float %add9, float* %arrayidx, align 4
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ sw.bb3:
|
|||
for.body:
|
||||
%i.16 = phi i32 [ %inc04, %for.body ], [ 0, %sw.bb3 ]
|
||||
%idxprom11 = sext i32 %i.16 to i64
|
||||
%arrayidx12 = getelementptr inbounds double* %tmp, i64 %idxprom11
|
||||
%arrayidx12 = getelementptr inbounds double, double* %tmp, i64 %idxprom11
|
||||
store double 1.0, double* %arrayidx12, align 8
|
||||
%inc04 = add nsw i32 %i.16, 1
|
||||
%cmp7 = icmp slt i32 %inc04, %sendcount
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ for.one:
|
|||
while.body:
|
||||
%indvar = phi i64 [ %sub42, %while.body ], [ %i.1, %for.one ]
|
||||
%sub42 = add nsw i64 %indvar, -1
|
||||
%arrayidx44 = getelementptr inbounds [258 x i64]* @cum_freq, i64 0, i64 %sub42
|
||||
%arrayidx44 = getelementptr inbounds [258 x i64], [258 x i64]* @cum_freq, i64 0, i64 %sub42
|
||||
store i64 1, i64* %arrayidx44, align 4
|
||||
%cmp40 = icmp sgt i64 %sub42, 0
|
||||
br i1 %cmp40, label %while.body, label %while.end
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
; IR-NEXT: br label %polly.stmt.S
|
||||
|
||||
; IR-LABEL: polly.stmt.S:
|
||||
; IR-NEXT: %[[gep:[._a-zA-Z0-9]*]] = getelementptr [1024 x float]* {{.*}}, i64 0, i64 %polly.indvar
|
||||
; IR-NEXT: %[[gep:[._a-zA-Z0-9]*]] = getelementptr [1024 x float], [1024 x float]* {{.*}}, i64 0, i64 %polly.indvar
|
||||
; IR-NEXT: store float 1.000000e+00, float* %[[gep]]
|
||||
; IR-NEXT: %polly.indvar_next = add nsw i64 %polly.indvar, 1
|
||||
; IR-NEXT: %polly.adjust_ub = sub i64 %polly.par.UBAdjusted, 1
|
||||
|
|
@ -101,7 +101,7 @@ entry:
|
|||
|
||||
for.i:
|
||||
%indvar = phi i64 [ %indvar.next, %for.inc], [ 0, %entry ]
|
||||
%scevgep = getelementptr [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%scevgep = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 %indvar
|
||||
%exitcond = icmp ne i64 %indvar, 1024
|
||||
br i1 %exitcond, label %S, label %exit
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue