diff options
Diffstat (limited to 'llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll')
| -rw-r--r-- | llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll | 47 |
1 files changed, 12 insertions, 35 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll b/llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll index 5b405a030a1..2843e627b3c 100644 --- a/llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll +++ b/llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll @@ -108,29 +108,6 @@ for.end: ; preds = %for.body !3 = !{!3, !4} !4 = !{!"llvm.loop.unroll.full"} -; #pragma clang loop unroll(full) -; Loop should be fully unrolled, even for optsize. -; -; CHECK-LABEL: @loop64_with_full_optsize( -; CHECK-NOT: br i1 -define void @loop64_with_full_optsize(i32* nocapture %a) optsize { -entry: - br label %for.body - -for.body: ; preds = %for.body, %entry - %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] - %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv - %0 = load i32, i32* %arrayidx, align 4 - %inc = add nsw i32 %0, 1 - store i32 %inc, i32* %arrayidx, align 4 - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond = icmp eq i64 %indvars.iv.next, 64 - br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !3 - -for.end: ; preds = %for.body - ret void -} - ; #pragma clang loop unroll_count(4) ; Loop should be unrolled 4 times. ; @@ -194,14 +171,14 @@ for.end: ; preds = %for.body, %entry ; should be duplicated (original and 4x unrolled). ; ; CHECK-LABEL: @runtime_loop_with_count4( -; CHECK: for.body +; CHECK: for.body.prol: ; CHECK: store +; CHECK-NOT: store +; CHECK: br i1 +; CHECK: for.body ; CHECK: store ; CHECK: store ; CHECK: store -; CHECK-NOT: store -; CHECK: br i1 -; CHECK: for.body.epil: ; CHECK: store ; CHECK-NOT: store ; CHECK: br i1 @@ -310,6 +287,10 @@ for.end: ; preds = %for.body ; (original and 8x). ; ; CHECK-LABEL: @runtime_loop_with_enable( +; CHECK: for.body.prol: +; CHECK: store +; CHECK-NOT: store +; CHECK: br i1 ; CHECK: for.body: ; CHECK: store i32 ; CHECK: store i32 @@ -321,10 +302,6 @@ for.end: ; preds = %for.body ; CHECK: store i32 ; CHECK-NOT: store i32 ; CHECK: br i1 -; CHECK: for.body.epil: -; CHECK: store -; CHECK-NOT: store -; CHECK: br i1 define void @runtime_loop_with_enable(i32* nocapture %a, i32 %b) { entry: %cmp3 = icmp sgt i32 %b, 0 @@ -351,13 +328,13 @@ for.end: ; preds = %for.body, %entry ; should be duplicated (original and 3x unrolled). ; ; CHECK-LABEL: @runtime_loop_with_count3( -; CHECK: for.body -; CHECK: store -; CHECK: store +; CHECK: for.body.prol: ; CHECK: store ; CHECK-NOT: store ; CHECK: br i1 -; CHECK: for.body.epil: +; CHECK: for.body +; CHECK: store +; CHECK: store ; CHECK: store ; CHECK-NOT: store ; CHECK: br i1 |

