[opaque pointer type] Add textual IR support for explicit type parameter to getelemen...
[oota-llvm.git] / test / Transforms / LoopVectorize / reduction.ll
index 5e6b7fa332b2267731302c2773bd1f1f753be156..70c63feea40ec1d88b1f1a68fdb04254a98bb177 100644 (file)
@@ -20,9 +20,9 @@ define i32 @reduction_sum(i32 %n, i32* noalias nocapture %A, i32* noalias nocapt
 .lr.ph:                                           ; preds = %0, %.lr.ph
   %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %0 ]
   %sum.02 = phi i32 [ %9, %.lr.ph ], [ 0, %0 ]
-  %2 = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %3 = load i32* %2, align 4
-  %4 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %4 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %5 = load i32* %4, align 4
   %6 = trunc i64 %indvars.iv to i32
   %7 = add i32 %sum.02, %6
@@ -55,9 +55,9 @@ define i32 @reduction_prod(i32 %n, i32* noalias nocapture %A, i32* noalias nocap
 .lr.ph:                                           ; preds = %0, %.lr.ph
   %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %0 ]
   %prod.02 = phi i32 [ %9, %.lr.ph ], [ 1, %0 ]
-  %2 = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %3 = load i32* %2, align 4
-  %4 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %4 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %5 = load i32* %4, align 4
   %6 = trunc i64 %indvars.iv to i32
   %7 = mul i32 %prod.02, %6
@@ -90,9 +90,9 @@ define i32 @reduction_mix(i32 %n, i32* noalias nocapture %A, i32* noalias nocapt
 .lr.ph:                                           ; preds = %0, %.lr.ph
   %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %0 ]
   %sum.02 = phi i32 [ %9, %.lr.ph ], [ 0, %0 ]
-  %2 = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %3 = load i32* %2, align 4
-  %4 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %4 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %5 = load i32* %4, align 4
   %6 = mul nsw i32 %5, %3
   %7 = trunc i64 %indvars.iv to i32
@@ -123,9 +123,9 @@ define i32 @reduction_mul(i32 %n, i32* noalias nocapture %A, i32* noalias nocapt
 .lr.ph:                                           ; preds = %0, %.lr.ph
   %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %0 ]
   %sum.02 = phi i32 [ %9, %.lr.ph ], [ 19, %0 ]
-  %2 = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %3 = load i32* %2, align 4
-  %4 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %4 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %5 = load i32* %4, align 4
   %6 = trunc i64 %indvars.iv to i32
   %7 = add i32 %3, %6
@@ -158,9 +158,9 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %sum.09 = phi i32 [ %add, %for.body ], [ 120, %entry ]
-  %arrayidx = getelementptr inbounds i32* %in, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %in, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds i32* %coeff, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds i32, i32* %coeff, i64 %indvars.iv
   %1 = load i32* %arrayidx2, align 4
   %mul = mul nsw i32 %1, %0
   %add = add nsw i32 %mul, %sum.09
@@ -191,9 +191,9 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %result.08 = phi i32 [ %and, %for.body ], [ -1, %entry ]
-  %arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %1 = load i32* %arrayidx2, align 4
   %add = add nsw i32 %1, %0
   %and = and i32 %add, %result.08
@@ -223,9 +223,9 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %result.08 = phi i32 [ %or, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %1 = load i32* %arrayidx2, align 4
   %add = add nsw i32 %1, %0
   %or = or i32 %add, %result.08
@@ -255,9 +255,9 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %result.08 = phi i32 [ %xor, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds i32* %B, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv
   %1 = load i32* %arrayidx2, align 4
   %add = add nsw i32 %1, %0
   %xor = xor i32 %add, %result.08
@@ -284,7 +284,7 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %x.05 = phi i32 [ %sub, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
   %sub = sub nsw i32 %0, %x.05
   %indvars.iv.next = add i64 %indvars.iv, 1
@@ -311,7 +311,7 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
   %x.05 = phi i32 [ %sub, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
   %0 = load i32* %arrayidx, align 4
   %sub = sub nsw i32 %x.05, %0
   %indvars.iv.next = add i64 %indvars.iv, 1
@@ -335,9 +335,9 @@ entry:
 for.body:
   %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.inc ]
   %sum.033 = phi float [ %S, %entry ], [ %sum.1, %for.inc ]
-  %arrayidx = getelementptr inbounds float* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds float, float* %A, i64 %indvars.iv
   %0 = load float* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds float* %B, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds float, float* %B, i64 %indvars.iv
   %1 = load float* %arrayidx2, align 4
   %cmp3 = fcmp ogt float %0, %1
   br i1 %cmp3, label %if.then, label %for.inc
@@ -380,9 +380,9 @@ entry:
 for.body:
   %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.inc ]
   %sum.033 = phi float [ %S, %entry ], [ %sum.1, %for.inc ]
-  %arrayidx = getelementptr inbounds float* %A, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds float, float* %A, i64 %indvars.iv
   %0 = load float* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds float* %B, i64 %indvars.iv
+  %arrayidx2 = getelementptr inbounds float, float* %B, i64 %indvars.iv
   %1 = load float* %arrayidx2, align 4
   %cmp3 = fcmp ogt float %0, %1
   br i1 %cmp3, label %if.then, label %for.inc
@@ -427,7 +427,7 @@ for.body:
   %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
   %sum2.09 = phi float [ 0.000000e+00, %entry ], [ %add1, %for.body ]
   %sum.08 = phi float [ %S, %entry ], [ %add, %for.body ]
-  %arrayidx = getelementptr inbounds float* %B, i64 %indvars.iv
+  %arrayidx = getelementptr inbounds float, float* %B, i64 %indvars.iv
   %0 = load float* %arrayidx, align 4
   %add = fadd fast float %sum.08, %0
   %add1 = fadd fast float %sum2.09, %add