diff --git a/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp b/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp index ae6fb8e3e9cf5..7921a6fa0411e 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp @@ -62,9 +62,10 @@ bool vputils::isHeaderMask(const VPValue *V, const VPlan &Plan) { VPValue *A, *B; - auto m_CanonicalScalarIVSteps = - m_ScalarIVSteps(m_Specific(Plan.getVectorLoopRegion()->getCanonicalIV()), - m_One(), m_Specific(&Plan.getVF())); + auto m_CanonicalScalarIVSteps = m_ScalarIVSteps( + m_CombineOr(m_CanonicalIV(), + m_DerivedIV(m_ZeroInt(), m_CanonicalIV(), m_One())), + m_One(), m_Specific(&Plan.getVF())); if (match(V, m_ActiveLaneMask(m_VPValue(A), m_VPValue(B), m_One()))) return B == Plan.getTripCount() && diff --git a/llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll b/llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll index e8bd502d09b0b..211f71da21f24 100644 --- a/llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll +++ b/llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll @@ -1,6 +1,6 @@ ; REQUIRES: asserts -; RUN: opt -mcpu=cortex-m55 -passes=loop-vectorize -disable-output -debug-only=loop-vectorize,vplan -vectorizer-consider-reg-pressure=false %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPRESSURE -; RUN: opt -mcpu=cortex-m55 -passes=loop-vectorize -disable-output -debug-only=loop-vectorize,vplan -vectorizer-consider-reg-pressure=true %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PRESSURE +; RUN: opt -mcpu=cortex-m55 -passes=loop-vectorize -disable-output -debug-only=loop-vectorize,vplan -vplan-verify-each -vectorizer-consider-reg-pressure=false %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPRESSURE +; RUN: opt -mcpu=cortex-m55 -passes=loop-vectorize -disable-output -debug-only=loop-vectorize,vplan -vplan-verify-each -vectorizer-consider-reg-pressure=true %s 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PRESSURE target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" target triple = "thumbv8.1m.main-unknown-none-eabihf"