[llvm] [VPlan] Simplify EVL strided load match in optimizeMaskToEVL. nfc (PR #211193)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 22 00:50:32 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-vectorizers

Author: Mel Chen (Mel-Chen)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/211193.diff


1 Files Affected:

- (modified) llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp (+5-8) 


``````````diff
diff --git a/llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp b/llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
index cc55d766ba596..fab0765083d6f 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
@@ -154,15 +154,12 @@ static VPRecipeBase *optimizeMaskToEVL(VPValue *HeaderMask,
                                       LoadR->getScalarType(), {}, {}, DL);
   }
 
-  VPValue *Stride;
-  if (match(&CurRecipe, m_Intrinsic<Intrinsic::experimental_vp_strided_load>(
-                            m_VPValue(Addr), m_VPValue(Stride),
-                            m_RemoveMask(HeaderMask, Mask),
-                            m_TruncOrSelf(m_Specific(&Plan->getVF()))))) {
-    if (!Mask)
-      Mask = Plan->getTrue();
+  if (match(&CurRecipe,
+            m_Intrinsic<Intrinsic::experimental_vp_strided_load>(
+                m_VPValue(), m_VPValue(), m_RemoveMask(HeaderMask, Mask),
+                m_TruncOrSelf(m_Specific(&Plan->getVF()))))) {
     auto *NewLoad = cast<VPWidenMemIntrinsicRecipe>(&CurRecipe)->clone();
-    NewLoad->setOperand(2, Mask);
+    NewLoad->setOperand(2, Mask ? Mask : Plan->getTrue());
     NewLoad->setOperand(3, &EVL);
     return NewLoad;
   }

``````````

</details>


https://github.com/llvm/llvm-project/pull/211193


More information about the llvm-commits mailing list