diff options
| author | David L Kreitzer <david.l.kreitzer@intel.com> | 2016-04-05 12:19:35 +0000 |
|---|---|---|
| committer | David L Kreitzer <david.l.kreitzer@intel.com> | 2016-04-05 12:19:35 +0000 |
| commit | 188de5ae69402c84ac40b2d5aed587b8454c75a8 (patch) | |
| tree | 10b82140b6ba036e96c8d7e292b443c0d2d4ab31 /llvm/test/Transforms/LoopUnroll/PowerPC | |
| parent | 849045f2aaa5302f931b4fea3448d7af76e6b4f0 (diff) | |
| download | bcm5719-llvm-188de5ae69402c84ac40b2d5aed587b8454c75a8.tar.gz bcm5719-llvm-188de5ae69402c84ac40b2d5aed587b8454c75a8.zip | |
Adds the ability to use an epilog remainder loop during loop unrolling and makes
this the default behavior.
Patch by Evgeny Stupachenko (evstupac@gmail.com).
Differential Revision: http://reviews.llvm.org/D18158
llvm-svn: 265388
Diffstat (limited to 'llvm/test/Transforms/LoopUnroll/PowerPC')
| -rw-r--r-- | llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll b/llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll index e9aa1acd5fe..bf2b9cf40dd 100644 --- a/llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll +++ b/llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll @@ -1,4 +1,5 @@ -; RUN: opt < %s -S -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -loop-unroll | FileCheck %s +; RUN: opt < %s -S -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -loop-unroll | FileCheck %s -check-prefix=EPILOG +; RUN: opt < %s -S -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 -loop-unroll -unroll-runtime-epilog=false | FileCheck %s -check-prefix=PROLOG define void @unroll_opt_for_size() nounwind optsize { entry: br label %loop @@ -13,11 +14,17 @@ exit: ret void } -; CHECK-LABEL: @unroll_opt_for_size -; CHECK: add -; CHECK-NEXT: add -; CHECK-NEXT: add -; CHECK: icmp +; EPILOG-LABEL: @unroll_opt_for_size +; EPILOG: add +; EPILOG-NEXT: add +; EPILOG-NEXT: add +; EPILOG: icmp + +; PROLOG-LABEL: @unroll_opt_for_size +; PROLOG: add +; PROLOG-NEXT: add +; PROLOG-NEXT: add +; PROLOG: icmp define i32 @test(i32* nocapture %a, i32 %n) nounwind uwtable readonly { entry: @@ -40,8 +47,13 @@ for.end: ; preds = %for.body, %entry ret i32 %sum.0.lcssa } -; CHECK-LABEL: @test -; CHECK: for.body.prol{{.*}}: -; CHECK: for.body: -; CHECK: br i1 %exitcond.7, label %for.end.loopexit{{.*}}, label %for.body +; EPILOG-LABEL: @test +; EPILOG: for.body: +; EPILOG: br i1 %niter.ncmp.7, label %for.end.loopexit{{.*}}, label %for.body +; EPILOG: for.body.epil{{.*}}: + +; PROLOG-LABEL: @test +; PROLOG: for.body.prol{{.*}}: +; PROLOG: for.body: +; PROLOG: br i1 %exitcond.7, label %for.end.loopexit{{.*}}, label %for.body |

