summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2019-11-21 14:03:28 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2019-11-21 14:06:10 +0000
commit901cd3b3f62d0c700e5d2c3f97eff97d634bec5e (patch)
tree4fa4571bbafc1e9fbfa4bd4bbbaf3ebe2b03a5fc /llvm/test/Transforms/LoopVectorize
parent8cf8ec40a1fee9706237d30385e78e1de214d8f7 (diff)
downloadbcm5719-llvm-901cd3b3f62d0c700e5d2c3f97eff97d634bec5e.tar.gz
bcm5719-llvm-901cd3b3f62d0c700e5d2c3f97eff97d634bec5e.zip
[LV] PreferPredicateOverEpilog respecting option
Follow-up of cb47b8783: don't query TTI->preferPredicateOverEpilogue when option -prefer-predicate-over-epilog is set to false, i.e. when we prefer not to predicate the loop. Differential Revision: https://reviews.llvm.org/D70382
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize')
-rw-r--r--llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll b/llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
index 2b8d9314ba8..ac2b65036fe 100644
--- a/llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
+++ b/llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
@@ -30,6 +30,18 @@
; RUN: -enable-arm-maskedldst=true -S < %s | \
; RUN: FileCheck %s -check-prefixes=CHECK,PREFER-FOLDING
+; RUN: opt -mtriple=thumbv8.1m.main-arm-eabihf -mattr=+mve.fp \
+; RUN: -prefer-predicate-over-epilog=false \
+; RUN: -disable-mve-tail-predication=false -loop-vectorize \
+; RUN: -enable-arm-maskedldst=true -S < %s | \
+; RUN: FileCheck %s -check-prefixes=CHECK,NO-FOLDING
+
+; RUN: opt -mtriple=thumbv8.1m.main-arm-eabihf -mattr=+mve.fp \
+; RUN: -prefer-predicate-over-epilog=true \
+; RUN: -disable-mve-tail-predication=false -loop-vectorize \
+; RUN: -enable-arm-maskedldst=true -S < %s | \
+; RUN: FileCheck %s -check-prefixes=CHECK,FOLDING-OPT
+
define void @prefer_folding(i32* noalias nocapture %A, i32* noalias nocapture readonly %B, i32* noalias nocapture readonly %C) #0 {
; CHECK-LABEL: prefer_folding(
; PREFER-FOLDING: vector.body:
@@ -186,6 +198,12 @@ define void @narrowing_load_not_allowed(i8* noalias nocapture %A, i8* noalias no
; PREFER-FOLDING-NOT: llvm.masked.load
; PREFER-FOLDING-NOT: llvm.masked.store
; PREFER-FOLDING: br i1 %{{.*}}, label %{{.*}}, label %vector.body
+
+; FOLDING-OPT: vector.body:
+; FOLDING-OPT call <8 x i16> @llvm.masked.load.v8i16.p0v8i16
+; FOLDING-OPT call <8 x i8> @llvm.masked.load.v8i8.p0v8i8
+; FOLDING-OPT call void @llvm.masked.store.v8i8.p0v8i8
+; FOLDING-OPT: br i1 %{{.*}}, label %{{.*}}, label %vector.body
entry:
br label %for.body
OpenPOWER on IntegriCloud