The changeset allows VLA outer loop vectorization as well as
- fixes incorrect handling of a loopnest during HCFG VPlan construction
- adds vec remark when outer loop was successfully vectorized
Paths
| Differential D149479
[LV] Enable scalable outer loop vectorization Needs ReviewPublic Authored by nikolaypanchenko on Apr 28 2023, 1:05 PM.
Details
Diff Detail
Event TimelineHerald added subscribers: llvm-commits, • pcwang-thead, alextsao1999 and 2 others. · View Herald Transcript
Comment Actions @nikolaypanchenko, thank you for this patch! Sorry to bother you, but will you update the revision (to support scalable vectorization factors)? I have written a patch myself with the same intention (although it works slightly differently, I also modified determineVPlanVF), not knowing that this revision already exists, so if you do not have the resources for this at the moment, I could present an alternative one, but only if you are ok with that of course. Comment Actions
@iamlouk this patch addressed 3 different problems: outerloop vectorization for scalable vectors; vec-report for outerloop and stability fix for outerloop; As @fhahn suggested, I split last 2 into their own review: D150696 and D150700. Comment Actions
Thank you! Here is the review: D157484 , I will happily rebase it in order to add a call to reportVectorization once that patch of yours is commited.
Revision Contents
Diff 518029 llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
llvm/test/Transforms/LoopVectorize/RISCV/outer_loop_scalable.ll
llvm/test/Transforms/LoopVectorize/X86/outer_loop_no_scalable.ll
llvm/test/Transforms/LoopVectorize/outer_loop_test3.ll
|
Could this improvement be split off as a separate patch? It also looks like LVL & LVP are unused?