summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopUnroll/AArch64
diff options
context:
space:
mode:
authorEvgeny Stupachenko <evstupac@gmail.com>2016-04-27 03:04:54 +0000
committerEvgeny Stupachenko <evstupac@gmail.com>2016-04-27 03:04:54 +0000
commit23ce61b66334b78ce7a0dd48c24fbf407ca12d8b (patch)
treeefea78cc6444d7653d38307f6734f96e4b3f412f /llvm/test/Transforms/LoopUnroll/AArch64
parentc67651dd70b740765cdb809aa0c87236a7eedc1a (diff)
downloadbcm5719-llvm-23ce61b66334b78ce7a0dd48c24fbf407ca12d8b.tar.gz
bcm5719-llvm-23ce61b66334b78ce7a0dd48c24fbf407ca12d8b.zip
The patch fixes PR27392.
Summary: It is incorrect to compare TripCount (which is BECount + 1) with extraiters (or Count) to check if we should enter unrolled loop or not, because TripCount can potentially overflow (when BECount is max unsigned integer). While comparing BECount with (Count - 1) is overflow safe and therefore correct. Reviewer: hfinkel Differential Revision: http://reviews.llvm.org/D19256 From: Evgeny Stupachenko <evstupac@gmail.com> llvm-svn: 267662
Diffstat (limited to 'llvm/test/Transforms/LoopUnroll/AArch64')
-rw-r--r--llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll10
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll b/llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll
index 98c9819a63d..ebb9444d07a 100644
--- a/llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll
+++ b/llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll
@@ -4,16 +4,14 @@
; Tests for unrolling loops with run-time trip counts
; EPILOG: %xtraiter = and i32 %n
-; EPILOG: %lcmp.mod = icmp ne i32 %xtraiter, %n
-; EPILOG: br i1 %lcmp.mod, label %for.body.preheader.new, label %for.end.loopexit.unr-lcssa
+; EPILOG: for.body:
+; EPILOG: %lcmp.mod = icmp ne i32 %xtraiter, 0
+; EPILOG: br i1 %lcmp.mod, label %for.body.epil.preheader, label %for.end.loopexit
+; EPILOG: for.body.epil:
; PROLOG: %xtraiter = and i32 %n
; PROLOG: %lcmp.mod = icmp ne i32 %xtraiter, 0
; PROLOG: br i1 %lcmp.mod, label %for.body.prol.preheader, label %for.body.prol.loopexit
-
-; EPILOG: for.body:
-; EPILOG: for.body.epil:
-
; PROLOG: for.body.prol:
; PROLOG: for.body:
OpenPOWER on IntegriCloud