[llvm] [LV] Don't require scalar epilogue for unsupported IAG with tail (PR #96544)
Kolya Panchenko via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 25 10:51:52 PDT 2024
nikolaypanchenko wrote:
> That's a great discovery. Here's another possible approach. Perhaps we could directly invalidate groups where the WideningDecision is not `CM_Interleave` within `LoopVectorizationCostModel::setCostBasedWideningDecision`. The relevant implementation can be referenced from `InterleavedAccessInfo::invalidateGroupsRequiringScalarEpilogue()`.
I was considering that option too, but groups are constructed for entire loop and one group can be valid with one VF, but not valid with the other.
That said, invalidation is illegal when VPlans with and without interleaved groups are in flight. Only when specific VPlan is selected, invalidation can take place.
https://github.com/llvm/llvm-project/pull/96544
More information about the llvm-commits
mailing list