[llvm] [LV] Convert gather loads with invariant stride into strided loads (PR #147297)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 1 03:29:29 PDT 2025
================
@@ -4204,3 +4212,184 @@ void VPlanTransforms::addBranchWeightToMiddleTerminator(
MDB.createBranchWeights({1, VectorStep - 1}, /*IsExpected=*/false);
MiddleTerm->addMetadata(LLVMContext::MD_prof, BranchWeights);
}
+
+static std::pair<VPValue *, VPValue *> matchStridedStart(VPValue *CurIndex) {
+ // TODO: Support VPWidenPointerInductionRecipe.
+ if (auto *WidenIV = dyn_cast<VPWidenIntOrFpInductionRecipe>(CurIndex))
+ return {WidenIV, WidenIV->getStepValue()};
+
+ auto *WidenR = dyn_cast<VPWidenRecipe>(CurIndex);
+ if (!WidenR || !CurIndex->getUnderlyingValue())
----------------
fhahn wrote:
Why do we require an underlying value?
https://github.com/llvm/llvm-project/pull/147297
More information about the llvm-commits
mailing list