diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/basic.ll | 87 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/complex_reroll.ll | 41 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/indvar_with_ext.ll | 18 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/nonconst_lb.ll | 34 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/ptrindvar.ll | 4 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopReroll/reduction.ll | 12 |
6 files changed, 120 insertions, 76 deletions
diff --git a/llvm/test/Transforms/LoopReroll/basic.ll b/llvm/test/Transforms/LoopReroll/basic.ll index 096b17b303c..6e2f2fcabf1 100644 --- a/llvm/test/Transforms/LoopReroll/basic.ll +++ b/llvm/test/Transforms/LoopReroll/basic.ll @@ -79,11 +79,12 @@ for.body: ; preds = %entry, %for.body ; CHECK: for.body: ; CHECK: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] +; CHECK: %0 = trunc i64 %indvar to i32 ; CHECK: %call = tail call i32 @foo(i32 0) #1 ; CHECK: %arrayidx = getelementptr inbounds i32, i32* %x, i64 %indvar ; CHECK: store i32 %call, i32* %arrayidx, align 4 ; CHECK: %indvar.next = add i64 %indvar, 1 -; CHECK: %exitcond = icmp eq i64 %indvar, 1499 +; CHECK: %exitcond = icmp eq i32 %0, 1499 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK: ret @@ -205,15 +206,16 @@ for.body: ; preds = %entry, %for.body ; CHECK: for.body: ; CHECK: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] +; CHECK: %0 = trunc i64 %indvar to i32 ; CHECK: %arrayidx = getelementptr inbounds float, float* %b, i64 %indvar -; CHECK: %0 = load float, float* %arrayidx, align 4 -; CHECK: %mul = fmul float %0, %alpha +; CHECK: %1 = load float, float* %arrayidx, align 4 +; CHECK: %mul = fmul float %1, %alpha ; CHECK: %arrayidx2 = getelementptr inbounds float, float* %a, i64 %indvar -; CHECK: %1 = load float, float* %arrayidx2, align 4 -; CHECK: %add = fadd float %1, %mul +; CHECK: %2 = load float, float* %arrayidx2, align 4 +; CHECK: %add = fadd float %2, %mul ; CHECK: store float %add, float* %arrayidx2, align 4 ; CHECK: %indvar.next = add i64 %indvar, 1 -; CHECK: %exitcond = icmp eq i64 %indvar, 3199 +; CHECK: %exitcond = icmp eq i32 %0, 3199 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK: ret @@ -302,18 +304,19 @@ for.body: ; preds = %entry, %for.body ; CHECK: for.body: ; CHECK: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] +; CHECK: %0 = trunc i64 %indvar to i32 ; CHECK: %arrayidx = getelementptr inbounds i32, i32* %ip, i64 %indvar -; CHECK: %0 = load i32, i32* %arrayidx, align 4 -; CHECK: %idxprom1 = sext i32 %0 to i64 +; CHECK: %1 = load i32, i32* %arrayidx, align 4 +; CHECK: %idxprom1 = sext i32 %1 to i64 ; CHECK: %arrayidx2 = getelementptr inbounds float, float* %b, i64 %idxprom1 -; CHECK: %1 = load float, float* %arrayidx2, align 4 -; CHECK: %mul = fmul float %1, %alpha +; CHECK: %2 = load float, float* %arrayidx2, align 4 +; CHECK: %mul = fmul float %2, %alpha ; CHECK: %arrayidx4 = getelementptr inbounds float, float* %a, i64 %indvar -; CHECK: %2 = load float, float* %arrayidx4, align 4 -; CHECK: %add = fadd float %2, %mul +; CHECK: %3 = load float, float* %arrayidx4, align 4 +; CHECK: %add = fadd float %3, %mul ; CHECK: store float %add, float* %arrayidx4, align 4 ; CHECK: %indvar.next = add i64 %indvar, 1 -; CHECK: %exitcond = icmp eq i64 %indvar, 3199 +; CHECK: %exitcond = icmp eq i32 %0, 3199 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK: ret @@ -374,8 +377,8 @@ for.body: ; preds = %for.body, %entry ; CHECK: %arrayidx6 = getelementptr inbounds i32, i32* %x, i64 %0 ; CHECK: store i32 %call, i32* %arrayidx6, align 4 ; CHECK: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 -; CHECK: %exitcond2 = icmp eq i64 %0, 1505 -; CHECK: br i1 %exitcond2, label %for.end, label %for.body +; CHECK: %exitcond1 = icmp eq i64 %indvars.iv, 1499 +; CHECK: br i1 %exitcond1, label %for.end, label %for.body for.end: ; preds = %for.body ret void @@ -434,8 +437,8 @@ for.body: ; preds = %for.body, %entry ; CHECK: %arrayidx6 = getelementptr inbounds i32, i32* %x, i64 %0 ; CHECK: store i32 %call, i32* %arrayidx6, align 4 ; CHECK: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 -; CHECK: %exitcond2 = icmp eq i64 %indvars.iv, 1499 -; CHECK: br i1 %exitcond2, label %for.end, label %for.body +; CHECK: %exitcond1 = icmp eq i64 %indvars.iv, 1499 +; CHECK: br i1 %exitcond1, label %for.end, label %for.body for.end: ; preds = %for.body ret void @@ -481,7 +484,7 @@ for.body: ; preds = %for.body, %entry ; CHECK: %arrayidx = getelementptr inbounds i32, i32* %x, i64 %0 ; CHECK: store i32 %call, i32* %arrayidx, align 4 ; CHECK: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 -; CHECK: %exitcond1 = icmp eq i64 %0, 1502 +; CHECK: %exitcond1 = icmp eq i64 %indvars.iv, 1499 ; CHECK: br i1 %exitcond1, label %for.end, label %for.body for.end: ; preds = %for.body @@ -599,8 +602,8 @@ for.body: ; preds = %for.body, %entry ; CHECK-NEXT: %scevgep = getelementptr i32, i32* %x, i64 %indvars.iv ; CHECK-NEXT: store i32 %call, i32* %scevgep, align 4 ; CHECK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 -; CHECK-NEXT: %exitcond2 = icmp eq i32* %scevgep, %scevgep1 -; CHECK-NEXT: br i1 %exitcond2, label %for.end, label %for.body +; CHECK-NEXT: %exitcond1 = icmp eq i64 %indvars.iv, 1499 +; CHECK-NEXT: br i1 %exitcond1, label %for.end, label %for.body for.end: ; preds = %for.body ret void @@ -738,6 +741,50 @@ for.end: ret void } +define void @pointer_bitcast_baseinst(i16* %arg, i8* %arg1, i64 %arg2) { +; CHECK-LABEL: @pointer_bitcast_baseinst( +; CHECK: bb3: +; CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %bb3 ], [ 0, %bb ] +; CHECK-NEXT: %4 = shl i64 %indvar, 3 +; CHECK-NEXT: %5 = add i64 %4, 1 +; CHECK-NEXT: %tmp5 = shl nuw i64 %5, 1 +; CHECK-NEXT: %tmp6 = getelementptr i8, i8* %arg1, i64 %tmp5 +; CHECK-NEXT: %tmp7 = bitcast i8* %tmp6 to <8 x i16>* +; CHECK-NEXT: %tmp8 = load <8 x i16>, <8 x i16>* %tmp7, align 2 +; CHECK-NEXT: %tmp13 = getelementptr i16, i16* %arg, i64 %5 +; CHECK-NEXT: %tmp14 = bitcast i16* %tmp13 to <8 x i16>* +; CHECK-NEXT: store <8 x i16> %tmp8, <8 x i16>* %tmp14, align 2 +; CHECK-NEXT: %indvar.next = add i64 %indvar, 1 +; CHECK-NEXT: %exitcond = icmp eq i64 %indvar, %3 +; CHECK-NEXT: br i1 %exitcond, label %bb19, label %bb3 +bb: + br label %bb3 + +bb3: ; preds = %bb3, %bb + %tmp = phi i64 [ 1, %bb ], [ %tmp17, %bb3 ] + %tmp4 = add nuw i64 %tmp, 8 + %tmp5 = shl nuw i64 %tmp, 1 + %tmp6 = getelementptr i8, i8* %arg1, i64 %tmp5 + %tmp7 = bitcast i8* %tmp6 to <8 x i16>* + %tmp8 = load <8 x i16>, <8 x i16>* %tmp7, align 2 + %tmp9 = shl i64 %tmp4, 1 + %tmp10 = getelementptr i8, i8* %arg1, i64 %tmp9 + %tmp11 = bitcast i8* %tmp10 to <8 x i16>* + %tmp12 = load <8 x i16>, <8 x i16>* %tmp11, align 2 + %tmp13 = getelementptr i16, i16* %arg, i64 %tmp + %tmp14 = bitcast i16* %tmp13 to <8 x i16>* + store <8 x i16> %tmp8, <8 x i16>* %tmp14, align 2 + %tmp15 = getelementptr i16, i16* %arg, i64 %tmp4 + %tmp16 = bitcast i16* %tmp15 to <8 x i16>* + store <8 x i16> %tmp12, <8 x i16>* %tmp16, align 2 + %tmp17 = add nuw nsw i64 %tmp, 16 + %tmp18 = icmp eq i64 %tmp17, %arg2 + br i1 %tmp18, label %bb19, label %bb3 + +bb19: ; preds = %bb3 + ret void +} + attributes #0 = { nounwind uwtable } attributes #1 = { nounwind } diff --git a/llvm/test/Transforms/LoopReroll/complex_reroll.ll b/llvm/test/Transforms/LoopReroll/complex_reroll.ll index 3a2c7221578..7dea5b7b3f8 100644 --- a/llvm/test/Transforms/LoopReroll/complex_reroll.ll +++ b/llvm/test/Transforms/LoopReroll/complex_reroll.ll @@ -10,15 +10,15 @@ entry: while.body: ;CHECK-LABEL: while.body: -;CHECK-NEXT: %indvar = phi i32 [ %indvar.next, %while.body ], [ 0, %entry ] -;CHECK-NEXT: %buf.021 = phi i8* [ getelementptr inbounds ([16 x i8], [16 x i8]* @aaa, i64 0, i64 0), %entry ], [ %add.ptr, %while.body ] +;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %while.body ], [ 0, %entry ] ;CHECK-NEXT: %sum44.020 = phi i64 [ 0, %entry ], [ %add, %while.body ] -;CHECK-NEXT: [[T2:%[0-9]+]] = load i8, i8* %buf.021, align 1 +;CHECK-NEXT: %0 = trunc i64 %indvar to i32 +;CHECK-NEXT: %scevgep = getelementptr [16 x i8], [16 x i8]* @aaa, i64 0, i64 %indvar +;CHECK-NEXT: [[T2:%[0-9]+]] = load i8, i8* %scevgep, align 1 ;CHECK-NEXT: %conv = zext i8 [[T2]] to i64 ;CHECK-NEXT: %add = add i64 %conv, %sum44.020 -;CHECK-NEXT: %add.ptr = getelementptr inbounds i8, i8* %buf.021, i64 1 -;CHECK-NEXT: %indvar.next = add i32 %indvar, 1 -;CHECK-NEXT: %exitcond = icmp eq i32 %indvar, 1 +;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 +;CHECK-NEXT: %exitcond = icmp eq i32 %0, 15 ;CHECK-NEXT: br i1 %exitcond, label %while.end, label %while.body %dec22 = phi i32 [ 4, %entry ], [ %dec, %while.body ] @@ -67,14 +67,14 @@ for.cond.cleanup: for.body: ;CHECK-LABEL: for.body: -;CHECK-NEXT: %indvar = phi i32 [ %indvar.next, %for.body ], [ 0, %for.body.lr.ph ] +;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %for.body.lr.ph ] ;CHECK-NEXT: %S.addr.011 = phi i32 [ %S, %for.body.lr.ph ], [ %add, %for.body ] -;CHECK-NEXT: %a.addr.010 = phi i32* [ %a, %for.body.lr.ph ], [ %incdec.ptr1, %for.body ] -;CHECK-NEXT: %4 = load i32, i32* %a.addr.010, align 4 -;CHECK-NEXT: %add = add nsw i32 %4, %S.addr.011 -;CHECK-NEXT: %incdec.ptr1 = getelementptr inbounds i32, i32* %a.addr.010, i64 1 -;CHECK-NEXT: %indvar.next = add i32 %indvar, 1 -;CHECK-NEXT: %exitcond = icmp eq i32 %indvar, %3 +;CHECK-NEXT: %4 = trunc i64 %indvar to i32 +;CHECK-NEXT: %scevgep = getelementptr i32, i32* %a, i64 %indvar +;CHECK-NEXT: %5 = load i32, i32* %scevgep, align 4 +;CHECK-NEXT: %add = add nsw i32 %5, %S.addr.011 +;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 +;CHECK-NEXT: %exitcond = icmp eq i32 %4, %3 ;CHECK-NEXT: br i1 %exitcond, label %for.cond.for.cond.cleanup_crit_edge, label %for.body %i.012 = phi i32 [ 0, %for.body.lr.ph ], [ %add3, %for.body ] @@ -101,14 +101,15 @@ while.body.preheader: ; preds = %entry while.body: ; preds = %while.body.preheader, %while.body ;CHECK-LABEL: while.body: -;CHECK-NEXT: %indvar = phi i32 [ %indvar.next, %while.body ], [ 0, %while.body.preheader ] +;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %while.body ], [ 0, %while.body.preheader ] ;CHECK-NEXT: %S.012 = phi i32 [ %add, %while.body ], [ undef, %while.body.preheader ] -;CHECK-NEXT: %buf.addr.011 = phi i32* [ %add.ptr, %while.body ], [ %buf, %while.body.preheader ] -;CHECK-NEXT: %4 = load i32, i32* %buf.addr.011, align 4 -;CHECK-NEXT: %add = add nsw i32 %4, %S.012 -;CHECK-NEXT: %add.ptr = getelementptr inbounds i32, i32* %buf.addr.011, i64 -1 -;CHECK-NEXT: %indvar.next = add i32 %indvar, 1 -;CHECK-NEXT: %exitcond = icmp eq i32 %indvar, %3 +;CHECK-NEXT: %4 = trunc i64 %indvar to i32 +;CHECK-NEXT: %5 = mul i64 %indvar, -1 +;CHECK-NEXT: %scevgep = getelementptr i32, i32* %buf, i64 %5 +;CHECK-NEXT: %6 = load i32, i32* %scevgep, align 4 +;CHECK-NEXT: %add = add nsw i32 %6, %S.012 +;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 +;CHECK-NEXT: %exitcond = icmp eq i32 %4, %3 ;CHECK-NEXT: br i1 %exitcond, label %while.end.loopexit, label %while.body %i.013 = phi i32 [ %sub, %while.body ], [ %len, %while.body.preheader ] diff --git a/llvm/test/Transforms/LoopReroll/indvar_with_ext.ll b/llvm/test/Transforms/LoopReroll/indvar_with_ext.ll index 7aae61433ae..59d5ea5ff87 100644 --- a/llvm/test/Transforms/LoopReroll/indvar_with_ext.ll +++ b/llvm/test/Transforms/LoopReroll/indvar_with_ext.ll @@ -14,18 +14,16 @@ while.body.preheader: while.body: ;CHECK-LABEL: while.body: -;CHECK-NEXT: %indvars.iv.i423 = phi i64 [ %indvars.iv.next.i424, %while.body ], [ 0, %while.body.preheader ] -;CHECK-NEXT: [[T1:%[0-9]+]] = trunc i64 %indvars.iv.i423 to i32 -;CHECK-NEXT: %arrayidx62.i = getelementptr inbounds float, float* %arrayidx200, i64 %indvars.iv.i423 +;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %while.body ], [ 0, %while.body.preheader ] +;CHECK-NEXT: %arrayidx62.i = getelementptr inbounds float, float* %arrayidx200, i64 %indvar ;CHECK-NEXT: %t1 = load float, float* %arrayidx62.i, align 4 -;CHECK-NEXT: %arrayidx64.i = getelementptr inbounds float, float* %arrayidx164, i64 %indvars.iv.i423 +;CHECK-NEXT: %arrayidx64.i = getelementptr inbounds float, float* %arrayidx164, i64 %indvar ;CHECK-NEXT: %t2 = load float, float* %arrayidx64.i, align 4 ;CHECK-NEXT: %mul65.i = fmul fast float %t2, %t22 ;CHECK-NEXT: %add66.i = fadd fast float %mul65.i, %t1 ;CHECK-NEXT: store float %add66.i, float* %arrayidx62.i, align 4 -;CHECK-NEXT: %indvars.iv.next.i424 = add i64 %indvars.iv.i423, 1 -;CHECK-NEXT: [[T2:%[0-9]+]] = sext i32 [[T1]] to i64 -;CHECK-NEXT: %exitcond = icmp eq i64 [[T2]], %{{[0-9]+}} +;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 +;CHECK-NEXT: %exitcond = icmp eq i64 %indvar, %{{[0-9]+}} ;CHECK-NEXT: br i1 %exitcond, label %while.end.loopexit, label %while.body %indvars.iv.i423 = phi i64 [ %indvars.iv.next.i424, %while.body ], [ 0, %while.body.preheader ] @@ -69,7 +67,7 @@ for.body.preheader: ; preds = %entry for.body: ; preds = %for.body.preheader, %for.body -;CHECK: for.body: +;CHECK-LABEL: for.body: ;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %for.body.preheader ] ;CHECK-NEXT: %arrayidx = getelementptr inbounds i32, i32* %y, i64 %indvar ;CHECK-NEXT: [[T1:%[0-9]+]] = load i32, i32* %arrayidx, align 4 @@ -111,7 +109,7 @@ for.body.preheader: ; preds = %entry for.body: ; preds = %for.body.preheader, %for.body -;CHECK: for.body: +;CHECK-LABEL: for.body: ;CHECK: %add12 = add i8 %i.022, 2 ;CHECK-NEXT: %conv = sext i8 %add12 to i32 ;CHECK-NEXT: %cmp = icmp slt i32 %conv, %n @@ -153,7 +151,7 @@ for.body.preheader: ; preds = %entry for.body: ; preds = %for.body.preheader, %for.body -;CHECK: for.body: +;CHECK-LABEL: for.body: ;CHECK-NEXT: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %for.body.preheader ] ;CHECK-NEXT: %arrayidx = getelementptr inbounds i32, i32* %y, i64 %indvar ;CHECK-NEXT: [[T1:%[0-9]+]] = load i32, i32* %arrayidx, align 4 diff --git a/llvm/test/Transforms/LoopReroll/nonconst_lb.ll b/llvm/test/Transforms/LoopReroll/nonconst_lb.ll index d3c9385a33b..d52cc1211b8 100644 --- a/llvm/test/Transforms/LoopReroll/nonconst_lb.ll +++ b/llvm/test/Transforms/LoopReroll/nonconst_lb.ll @@ -53,20 +53,19 @@ for.end: ; preds = %for.body, %entry ; CHECK: %1 = sub i32 %0, %m ; CHECK: %2 = lshr i32 %1, 2 ; CHECK: %3 = shl i32 %2, 2 -; CHECK: %4 = add i32 %m, %3 -; CHECK: %5 = add i32 %4, 3 +; CHECK: %4 = add i32 %3, 3 ; CHECK: br label %for.body ; CHECK: for.body: ; preds = %for.body, %for.body.preheader ; CHECK: %indvar = phi i32 [ 0, %for.body.preheader ], [ %indvar.next, %for.body ] -; CHECK: %6 = add i32 %m, %indvar -; CHECK: %arrayidx = getelementptr inbounds i32, i32* %B, i32 %6 -; CHECK: %7 = load i32, i32* %arrayidx, align 4 -; CHECK: %mul = shl nsw i32 %7, 2 -; CHECK: %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %6 +; CHECK: %5 = add i32 %m, %indvar +; CHECK: %arrayidx = getelementptr inbounds i32, i32* %B, i32 %5 +; CHECK: %6 = load i32, i32* %arrayidx, align 4 +; CHECK: %mul = shl nsw i32 %6, 2 +; CHECK: %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %5 ; CHECK: store i32 %mul, i32* %arrayidx2, align 4 ; CHECK: %indvar.next = add i32 %indvar, 1 -; CHECK: %exitcond = icmp eq i32 %6, %5 +; CHECK: %exitcond = icmp eq i32 %indvar, %4 ; CHECK: br i1 %exitcond, label %for.end.loopexit, label %for.body ;void daxpy_ur(int n,float da,float *dx,float *dy) @@ -133,20 +132,19 @@ for.end: ; preds = %for.body, %entry ; CHECK: %1 = sub i32 %0, %rem ; CHECK: %2 = lshr i32 %1, 2 ; CHECK: %3 = shl i32 %2, 2 -; CHECK: %4 = add i32 %rem, %3 -; CHECK: %5 = add i32 %4, 3 +; CHECK: %4 = add i32 %3, 3 ; CHECK: br label %for.body ; CHECK: for.body: ; CHECK: %indvar = phi i32 [ 0, %for.body.preheader ], [ %indvar.next, %for.body ] -; CHECK: %6 = add i32 %rem, %indvar -; CHECK: %arrayidx = getelementptr inbounds float, float* %dy, i32 %6 -; CHECK: %7 = load float, float* %arrayidx, align 4 -; CHECK: %arrayidx1 = getelementptr inbounds float, float* %dx, i32 %6 -; CHECK: %8 = load float, float* %arrayidx1, align 4 -; CHECK: %mul = fmul float %8, %da -; CHECK: %add = fadd float %7, %mul +; CHECK: %5 = add i32 %rem, %indvar +; CHECK: %arrayidx = getelementptr inbounds float, float* %dy, i32 %5 +; CHECK: %6 = load float, float* %arrayidx, align 4 +; CHECK: %arrayidx1 = getelementptr inbounds float, float* %dx, i32 %5 +; CHECK: %7 = load float, float* %arrayidx1, align 4 +; CHECK: %mul = fmul float %7, %da +; CHECK: %add = fadd float %6, %mul ; CHECK: store float %add, float* %arrayidx, align 4 ; CHECK: %indvar.next = add i32 %indvar, 1 -; CHECK: %exitcond = icmp eq i32 %6, %5 +; CHECK: %exitcond = icmp eq i32 %indvar, %4 ; CHECK: br i1 %exitcond, label %for.end.loopexit, label %for.body diff --git a/llvm/test/Transforms/LoopReroll/ptrindvar.ll b/llvm/test/Transforms/LoopReroll/ptrindvar.ll index 05852bdca9e..0a319ad3525 100644 --- a/llvm/test/Transforms/LoopReroll/ptrindvar.ll +++ b/llvm/test/Transforms/LoopReroll/ptrindvar.ll @@ -17,7 +17,7 @@ while.body: ;CHECK-NEXT: %4 = load i32, i32* %scevgep, align 4 ;CHECK-NEXT: %add = add nsw i32 %4, %S.011 ;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 -;CHECK-NEXT: %exitcond = icmp eq i32* %scevgep, %scevgep5 +;CHECK-NEXT: %exitcond = icmp eq i64 %indvar, %3 ;CHECK-NEXT: br i1 %exitcond, label %while.end.loopexit, label %while.body %S.011 = phi i32 [ %add2, %while.body ], [ undef, %while.body.preheader ] @@ -57,7 +57,7 @@ while.body: ;CHECK-NEXT: %5 = load i32, i32* %scevgep, align 4 ;CHECK-NEXT: %add = add nsw i32 %5, %S.011 ;CHECK-NEXT: %indvar.next = add i64 %indvar, 1 -;CHECK-NEXT: %exitcond = icmp eq i32* %scevgep, %scevgep5 +;CHECK-NEXT: %exitcond = icmp eq i64 %indvar, %3 ;CHECK-NEXT: br i1 %exitcond, label %while.end.loopexit, label %while.body %S.011 = phi i32 [ %add2, %while.body ], [ undef, %while.body.preheader ] diff --git a/llvm/test/Transforms/LoopReroll/reduction.ll b/llvm/test/Transforms/LoopReroll/reduction.ll index 191518514b8..b1e92478f26 100644 --- a/llvm/test/Transforms/LoopReroll/reduction.ll +++ b/llvm/test/Transforms/LoopReroll/reduction.ll @@ -35,10 +35,10 @@ for.body: ; preds = %entry, %for.body ; CHECK: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] ; CHECK: %r.029 = phi i32 [ 0, %entry ], [ %add, %for.body ] ; CHECK: %arrayidx = getelementptr inbounds i32, i32* %x, i64 %indvar -; CHECK: %0 = load i32, i32* %arrayidx, align 4 -; CHECK: %add = add nsw i32 %0, %r.029 +; CHECK: %1 = load i32, i32* %arrayidx, align 4 +; CHECK: %add = add nsw i32 %1, %r.029 ; CHECK: %indvar.next = add i64 %indvar, 1 -; CHECK: %exitcond = icmp eq i64 %indvar, 399 +; CHECK: %exitcond = icmp eq i32 %0, 399 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK: ret @@ -80,10 +80,10 @@ for.body: ; preds = %entry, %for.body ; CHECK: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] ; CHECK: %r.029 = phi float [ 0.000000e+00, %entry ], [ %add, %for.body ] ; CHECK: %arrayidx = getelementptr inbounds float, float* %x, i64 %indvar -; CHECK: %0 = load float, float* %arrayidx, align 4 -; CHECK: %add = fadd float %0, %r.029 +; CHECK: %1 = load float, float* %arrayidx, align 4 +; CHECK: %add = fadd float %1, %r.029 ; CHECK: %indvar.next = add i64 %indvar, 1 -; CHECK: %exitcond = icmp eq i64 %indvar, 399 +; CHECK: %exitcond = icmp eq i32 %0, 399 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK: ret |

