![]() At the moment LV runs LoopSimplify and reconstructs LCSSA form after generating the main vector loop and before generating the epilogue vector loop. In practice, this adds a new exit block for the scalar loop because the middle block now also branches to the original exit block of the scalar loop. It also requires adding a new LCSSA phi in the newly created exit block. This complicates things when modeling exit values in VPlan, because we would need to update the VPlan for the epilogue loop to update the newly created LCSSA phi node. But none of that should be necessary, as all analysis requiring loop-simplify form is already done at this point and LCSSA form of the original loop is not broken. Reviewed By: bmahjour Differential Revision: https://reviews.llvm.org/D125810 |
||
---|---|---|
.. | ||
interleave_IC.ll | ||
interleaved-pointer-runtime-check-unprofitable.ll | ||
large-loop-rdx.ll | ||
lit.local.cfg | ||
massv-altivec.ll | ||
massv-calls.ll | ||
massv-nobuiltin.ll | ||
massv-unsupported.ll | ||
optimal-epilog-vectorization-profitability.ll | ||
optimal-epilog-vectorization.ll | ||
pr30990.ll | ||
pr41179.ll | ||
reg-usage.ll | ||
small-loop-rdx.ll | ||
stride-vectorization.ll | ||
vectorize-bswap.ll | ||
vectorize-only-for-real.ll | ||
vsx-tsvc-s173.ll | ||
widened-massv-call.ll | ||
widened-massv-vfabi-attr.ll |