[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