SuccessChanges

Summary

  1. [LV] Apply sink-after & interleave-groups as VPlan transformations (details)
Commit 7f152543e4ff91f2ce8578a1b3b3ec18f580345a by gil.rapaport
[LV] Apply sink-after & interleave-groups as VPlan transformations
(NFCI)
This recommits 11ed1c0239fd51fd2f064311dc7725277ed0a994 (reverted in
9f08ce0d2197d4f163dfa4633eae2347ce8fc881 for failing an assert) with a
fix: tryToWidenMemory() now first checks if the widening decision is to
interleave, thus maintaining previous behavior where
tryToInterleaveMemory() was called first, giving priority to interleave
decisions over widening/scalarization. This commit adds the test case
that exposed this bug as a LIT.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was addedllvm/test/Transforms/LoopVectorize/interleaved-accesses-uniform-load.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll