[llvm] [LV] Fix cost misaligned when gather/scatter w/ addr is uniform. (PR #157387)

Elvis Wang via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 9 04:48:07 PDT 2025


================
@@ -6905,6 +6905,17 @@ static bool planContainsAdditionalSimplifications(VPlan &Plan,
       if (isa<VPPartialReductionRecipe>(&R))
         return true;
 
+      // The VPlan-based cost model can analyze if recipes are scalar
+      // recursively, but legacy cost model cannot.
+      if (auto *WidenMemR = dyn_cast<VPWidenMemoryRecipe>(&R)) {
+        auto *AddrI = dyn_cast<Instruction>(
+            getLoadStorePointerOperand(&WidenMemR->getIngredient()));
+        if (WidenMemR && AddrI &&
+            vputils::isSingleScalar(WidenMemR->getAddr()) !=
+                CostCtx.isLegacyUniformAfterVectorization(AddrI, VF))
+          return true;
+      }
----------------
ElvisWang123 wrote:

Oops, missed that. Updated, thanks!

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


More information about the llvm-commits mailing list