Currently we build a VPlan with VPRecipes for each vectorization factor
in the inner loop vectorizer, but we always drop all built plans except
the one with the VF selected by the legacy cost model, without using
them at all. This means we do unnecessary work in the inner loop
vectorizer and I think it is also slightly surprising for people looking
at the code.
As far as I understand, the plan is to evolve VPlan native vectorization
of outer and inner loops in the "VPlan native" path, without impactingThis first step separates VPInstruction-based and VPRecipe-based
the existing inner loop vectorizer.VPlan creation, So simplifying the code path in thewhich should make it easier to migrate to VPInstruction
inner loop vectorizer should not hinder any VPlan work.
I think it also helps to decouple the VPlan native path and the legacy ILV
slightly morebased code-gen step by step.