[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