[llvm] Reland: [LV]: Teach LV to recursively (de)interleave. (PR #122989)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 20 07:22:17 PST 2025
fhahn wrote:
> > Hello, It seems that this patch broke sve vls bots: https://lab.llvm.org/buildbot/#/builders/143/builds/4795 https://lab.llvm.org/buildbot/#/builders/4/builds/4602 Could you please look at this ?
>
> This looks like the loop vectoriser cost model assert firing. FYI @fhahn.
>
> ```
> clang: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/llvm/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:7644: VectorizationFactor llvm::LoopVectorizationPlanner::computeBestVF(): Assertion `(BestFactor.Width == LegacyVF.Width || planContainsAdditionalSimplifications(getPlanFor(BestFactor.Width), CostCtx, OrigLoop) || planContainsAdditionalSimplifications(getPlanFor(LegacyVF.Width), CostCtx, OrigLoop)) && " VPlan cost model and legacy cost model disagreed"' failed.
> PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
> ```
>
> It's only a bug when building with asserts and just indicates the legacy and new vplan cost models do not agree. I guess this is another example that needs adding to `planContainsAdditionalSimplifications` or something like that?
It sounds like this somehow introduced a divergence between the cost for interleave groups in the legacy and VPlan cost model. Without seeing the test case it's difficult to tell as the cost computations didn't really change in the patch AFAICT, but I suspect the divergence should be fixed
https://github.com/llvm/llvm-project/pull/122989
More information about the llvm-commits
mailing list