[llvm] [VPlan] Extract reverse mask from reverse accesses (PR #155579)

Mel Chen via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 31 01:19:58 PDT 2026


================
@@ -3799,9 +3815,29 @@ InstructionCost VPWidenMemoryRecipe::computeCost(ElementCount VF,
     // TODO: Using the original IR may not be accurate.
     // Currently, ARM will use the underlying IR to calculate gather/scatter
     // instruction cost.
-    assert(!Reverse &&
-           "Inconsecutive memory access should not have the order.");
+#ifndef NDEBUG
+    auto IsReverse = [this]() {
+      // Check if mask is reversed
+      if (VPValue *Mask = getMask())
+        if (match(Mask, m_Reverse(m_VPValue())))
+          return true;
+
+      // For loads, check if the single user is a reverse operation
----------------
Mel-Chen wrote:

c4b9848f66df8d2b280129e4549c701a17afd5d6

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


More information about the llvm-commits mailing list