[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