[llvm] [VectorUtils] Improve mask*All(Ones|Zero)OrUndef (NFC) (PR #168388)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 17 07:39:03 PST 2025
https://github.com/artagnon created https://github.com/llvm/llvm-project/pull/168388
Use PatternMatch to improve code.
>From 9383ad6ad60e7f13f412536918b480c6d3c57032 Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Mon, 17 Nov 2025 15:31:25 +0000
Subject: [PATCH] [VectorUtils] Improve mask*All(Ones|Zero)OrUndef (NFC)
Use PatternMatch to improve code.
---
llvm/lib/Analysis/VectorUtils.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp
index 530fa9518f40e..b011dcafa1aec 100644
--- a/llvm/lib/Analysis/VectorUtils.cpp
+++ b/llvm/lib/Analysis/VectorUtils.cpp
@@ -1263,7 +1263,7 @@ bool llvm::maskIsAllZeroOrUndef(Value *Mask) {
auto *ConstMask = dyn_cast<Constant>(Mask);
if (!ConstMask)
return false;
- if (ConstMask->isNullValue() || isa<UndefValue>(ConstMask))
+ if (match(ConstMask, m_CombineOr(m_Zero(), m_Undef())))
return true;
if (isa<ScalableVectorType>(ConstMask->getType()))
return false;
@@ -1272,7 +1272,7 @@ bool llvm::maskIsAllZeroOrUndef(Value *Mask) {
E = cast<FixedVectorType>(ConstMask->getType())->getNumElements();
I != E; ++I) {
if (auto *MaskElt = ConstMask->getAggregateElement(I))
- if (MaskElt->isNullValue() || isa<UndefValue>(MaskElt))
+ if (match(MaskElt, m_CombineOr(m_Zero(), m_Undef())))
continue;
return false;
}
@@ -1289,7 +1289,7 @@ bool llvm::maskIsAllOneOrUndef(Value *Mask) {
auto *ConstMask = dyn_cast<Constant>(Mask);
if (!ConstMask)
return false;
- if (ConstMask->isAllOnesValue() || isa<UndefValue>(ConstMask))
+ if (match(ConstMask, m_CombineOr(m_AllOnes(), m_Undef())))
return true;
if (isa<ScalableVectorType>(ConstMask->getType()))
return false;
@@ -1298,7 +1298,7 @@ bool llvm::maskIsAllOneOrUndef(Value *Mask) {
E = cast<FixedVectorType>(ConstMask->getType())->getNumElements();
I != E; ++I) {
if (auto *MaskElt = ConstMask->getAggregateElement(I))
- if (MaskElt->isAllOnesValue() || isa<UndefValue>(MaskElt))
+ if (match(MaskElt, m_CombineOr(m_AllOnes(), m_Undef())))
continue;
return false;
}
@@ -1315,7 +1315,7 @@ bool llvm::maskContainsAllOneOrUndef(Value *Mask) {
auto *ConstMask = dyn_cast<Constant>(Mask);
if (!ConstMask)
return false;
- if (ConstMask->isAllOnesValue() || isa<UndefValue>(ConstMask))
+ if (match(ConstMask, m_CombineOr(m_AllOnes(), m_Undef())))
return true;
if (isa<ScalableVectorType>(ConstMask->getType()))
return false;
@@ -1324,7 +1324,7 @@ bool llvm::maskContainsAllOneOrUndef(Value *Mask) {
E = cast<FixedVectorType>(ConstMask->getType())->getNumElements();
I != E; ++I) {
if (auto *MaskElt = ConstMask->getAggregateElement(I))
- if (MaskElt->isAllOnesValue() || isa<UndefValue>(MaskElt))
+ if (match(MaskElt, m_CombineOr(m_AllOnes(), m_Undef())))
return true;
}
return false;
More information about the llvm-commits
mailing list