summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Analysis/VectorUtils.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp
index c639f36c512..272c665ace1 100644
--- a/llvm/lib/Analysis/VectorUtils.cpp
+++ b/llvm/lib/Analysis/VectorUtils.cpp
@@ -712,7 +712,9 @@ void InterleavedAccessInfo::analyzeInterleaving() {
// create a group for B, we continue with the bottom-up algorithm to ensure
// we don't break any of B's dependences.
InterleaveGroup *Group = nullptr;
- if (isStrided(DesB.Stride)) {
+ // TODO: Ignore B if it is in a predicated block. This restriction can be
+ // relaxed in the future once we handle masked interleaved groups.
+ if (isStrided(DesB.Stride) && !isPredicated(B->getParent())) {
Group = getInterleaveGroup(B);
if (!Group) {
LLVM_DEBUG(dbgs() << "LV: Creating an interleave group with:" << *B
OpenPOWER on IntegriCloud