[llvm] [SLP]Initial support for (masked)loads + compress and (masked)interleaved (PR #132099)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 4 06:55:03 PDT 2025


alexey-bataev wrote:

> Hi!
> 
> Could this be the cause of clang-aarch64-sve-vls-2stage failure ? https://lab.llvm.org/buildbot/#/builders/4/builds/6023
> 
> ```
> clang: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/llvm/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:12938: auto llvm::slpvectorizer::BoUpSLP::getEntryCost(const TreeEntry *, ArrayRef<Value *>, SmallPtrSetImpl<Value *> &)::(anonymous class)::operator()(InstructionCost) const: Assertion `IsVectorized && "Expected to be vectorized"' failed.
> 
>  #0 0x0000bd5856bb64c0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x81e64c0)
>  #1 0x0000bd5856bb43ec llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x81e43ec)
>  #2 0x0000bd5856b1aed4 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
>  #3 0x0000e439c64788f8 (linux-vdso.so.1+0x8f8)
>  #4 0x0000e439c5ecf1f0 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
>  #5 0x0000e439c5e8a67c gsignal ./signal/../sysdeps/posix/raise.c:27:6
>  #6 0x0000e439c5e77130 abort ./stdlib/abort.c:81:7
>  #7 0x0000e439c5e83fd4 __assert_fail_base ./assert/assert.c:91:7
>  #8 0x0000e439c5e8404c (/lib/aarch64-linux-gnu/libc.so.6+0x3404c)
>  #9 0x0000bd5858457080 llvm::InstructionCost llvm::function_ref<llvm::InstructionCost (llvm::InstructionCost)>::callback_fn<llvm::slpvectorizer::BoUpSLP::getEntryCost(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::ArrayRef<llvm::Value*>, llvm::SmallPtrSetImpl<llvm::Value*>&)::$_16>(long, llvm::InstructionCost) SLPVectorizer.cpp:0:0
> #10 0x0000bd58583bc314 llvm::slpvectorizer::BoUpSLP::getEntryCost(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::ArrayRef<llvm::Value*>, llvm::SmallPtrSetImpl<llvm::Value*>&)::$_2::operator()(llvm::function_ref<llvm::InstructionCost (unsigned int)>, llvm::function_ref<llvm::InstructionCost (llvm::InstructionCost)>) const SLPVectorizer.cpp:0:0
> #11 0x0000bd58583b7d00 llvm::slpvectorizer::BoUpSLP::getEntryCost(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::ArrayRef<llvm::Value*>, llvm::SmallPtrSetImpl<llvm::Value*>&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x99e7d00)
> #12 0x0000bd58583c1ed0 llvm::slpvectorizer::BoUpSLP::getTreeCost(llvm::ArrayRef<llvm::Value*>, llvm::InstructionCost) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x99f1ed0)
> #13 0x0000bd58583f54d8 llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a254d8)
> #14 0x0000bd58583f6290 llvm::SLPVectorizerPass::tryToVectorize(llvm::Instruction*, llvm::slpvectorizer::BoUpSLP&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a26290)
> #15 0x0000bd58583f8ddc llvm::SLPVectorizerPass::vectorizeRootInstruction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a28ddc)
> #16 0x0000bd58583eeb0c llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a1eb0c)
> #17 0x0000bd58583ec324 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a1c324)
> #18 0x0000bd58583eb8a0 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x9a1b8a0)
> #19 0x0000bd58565e2358 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls-2stage/stage2.install/bin/clang+0x7c12358)
> ```

Maybe, could you try to provide a reproducer? I don't have the access to arm-based machines and cannot reproduce it locally

https://github.com/llvm/llvm-project/pull/132099


More information about the llvm-commits mailing list