<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/193315>193315</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `all_of(Bundles, [](const ScheduleBundle *Bundle) { return Bundle->isScheduled(); }) && "must be scheduled at this point"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TatyanaDoubts
</td>
</tr>
</table>
<pre>
To reproduce run opt with the test below (-passes=slp-vectorizer -slp-threshold=-99999):
```llvm
; ModuleID = './reduced.ll'
source_filename = "./reduced.ll"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
target triple = "x86_64-unknown-linux-gnu"
define void @wombat(i32 %arg) #0 gc "statepoint-example" {
bb:
%lshr = lshr i32 0, %arg
%add = add i32 %lshr, 1
%shl = shl i32 0, 0
%or = or i32 %shl, 0
%ashr = ashr i32 %or, 1
br label %bb1
bb1: ; preds = %bb
br i1 false, label %bb2, label %bb4
bb2: ; preds = %bb4, %bb1
%phi = phi i32 [ %add, %bb1 ], [ %or8, %bb4 ]
%phi3 = phi i32 [ %ashr, %bb1 ], [ %ashr10, %bb4 ]
ret void
bb4: ; preds = %bb1
%phi5 = phi i32 [ %add, %bb1 ]
%phi6 = phi i32 [ %or, %bb1 ]
%lshr7 = lshr i32 %phi5, 0
%or8 = or i32 %lshr7, 0
%or9 = or i32 %phi6, 0
%ashr10 = ashr i32 %or9, 0
br label %bb2
}
attributes #0 = { "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,-amx-fp8,+xsaves,-avx512fp16,-usermsr,-sm4,-egpr,+sse4.1,-avx10.1,-avx512ifma,+xsave,+sse4.2,-tsxldtrk,-sm3,-ptwrite,-widekl,-movrs,+invpcid,+64bit,+xsavec,-avx512vpopcntdq,+cmov,-avx512vp2intersect,+avx512cd,+movbe,-avxvnniint8,-ccmp,-amx-int8,-kl,-sha512,-avxvnni,+rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,+avx512vl,-uintr,-cf,-jmpabs,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,-zu,-ndd,+xsaveopt,+rdrnd,+avx512f,-amx-bf16,-avx512bf16,-avx512vnni,-push2pop2,+cx8,+avx512bw,+sse3,+pku,-nf,-amx-tf32,-amx-avx512,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-ppx,-wbnoinvd,-enqcmd,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,-avx10.2,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,+clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-amx-movrs,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,+avx512dq,-sse4a,-avx512f" }
```
Reproducer: https://godbolt.org/z/nf66coxqK
Stack dump:
```
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=slp-vectorizer -slp-threshold=-99999 <source>
1. Running pass "function(slp-vectorizer)" on module "<source>"
2. Running pass "slp-vectorizer" on function "wombat"
#0 0x0000000005ca66e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5ca66e8)
#1 0x0000000005ca3514 llvm::sys::RunSignalHandlers() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5ca3514)
#2 0x0000000005ca368a SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x000076d6efe42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000076d6efe969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x000076d6efe42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x000076d6efe287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x000076d6efe2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x000076d6efe39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000000003978d05 llvm::slpvectorizer::BoUpSLP::scheduleBlock(llvm::slpvectorizer::BoUpSLP const&, llvm::slpvectorizer::BoUpSLP::BlockScheduling*) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3978d05)
#10 0x00000000039d0eaa llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::SmallDenseSet<llvm::Value*, 4u, llvm::DenseMapInfo<llvm::Value*, void>> const&, llvm::Instruction*, llvm::ArrayRef<std::tuple<llvm::WeakTrackingVH, unsigned int, bool, bool>>) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x39d0eaa)
#11 0x00000000039d5714 llvm::slpvectorizer::BoUpSLP::vectorizeTree() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x39d5714)
#12 0x00000000039f9286 llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x39f9286)
#13 0x00000000039fd99c bool tryToVectorizeSequence<llvm::Value>(llvm::SmallVectorImpl<llvm::Value*>&, llvm::function_ref<bool (llvm::Value*, llvm::Value*)>, llvm::function_ref<bool (llvm::ArrayRef<llvm::Value*>, llvm::Value*)>, llvm::function_ref<bool (llvm::ArrayRef<llvm::Value*>, bool)>, bool, llvm::slpvectorizer::BoUpSLP&) (.constprop.0) SLPVectorizer.cpp:0:0
#14 0x00000000039fec2c llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x39fec2c)
#15 0x0000000003a082c6 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (.part.0) SLPVectorizer.cpp:0:0
#16 0x0000000003a08d1b llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3a08d1b)
#17 0x0000000003215ede llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3215ede)
#18 0x0000000005a08d86 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5a08d86)
#19 0x0000000000f312ae llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xf312ae)
#20 0x0000000005a07f16 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5a07f16)
#21 0x000000000096728e llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x96728e)
#22 0x0000000005a0a8e6 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5a0a8e6)
#23 0x000000000097137a llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x97137a)
#24 0x000000000096541f optMain (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x96541f)
#25 0x000076d6efe29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#26 0x000076d6efe29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#27 0x000000000095a905 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x95a905)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWl1zozjW_jXKjQoXCIzhIhd20pnpmu6arnbefi9TAoStiZDUknCc_PotSWA-4uzEs5mq3Ul124DO53OeI4Qw1pruOCHXYLkBy9sr3Jq9UNf32Dxjjm9FWxh9VYjq-fpeQEWkElVbEqhaDoU08ImaPTR7Ag3RBhaEiScIUBZIrDXRIL7VTAYHUhqh6AtRMLDnZq-I3gtWgfg2yO0fQDmI1yBcgzT0_xg7NPY83sCvomoZ-XwLQXwLAVotALpTxIZRLRgDaAXCtRatKslDTRnhuCGdKJqLIhCuDVY7YmCFDWb4WbSmFyZBA-I1CSRahSBex8h92NNoemqP0sR9BPR0EKEMxOsIZUGdhd0Rd5fSXj1Ngq27TO3lQKJ-IOv-x8iPoUmoRlHJTjkds_QhTYKWP3LxxANGeXsMdrz1KiBcV6SmnMCDoBUESfgkmgIbgDIaIwjQEqsdQDkEKA7hrrQWtcGGSEG5CcgRN5IRgBAEqw0I10XhCwOtKtN75cJwB9ZeCNBNb7QTwlXlZOx359KKW8Gol9F75mTs98lM2I8K70SoXl_v2UQA93HgPg6nNbgoFGS4IMxeL4rI42IP4jW0lJKKVLoDdFkUvQ6NYI2ZJtbQSB_NzpPeHnrDXtKh4l27kOWeunH77QJebjqwBlkIlrfuzI8JlZ3GEjc22IrPGutgPmvNDkbhGYOKGMeVPinLZ3jR3xkExnkv35f4oJCeUxDz1MJ1T63VlJOd1xmlshmnnOJMJp_J2FheES8Kz1AvH8Sm3HM9ubr14GJjFC1aQ7RvPwfXyqaHfKsHNcGmVUTbZo5v7SfaSFWX-yeAboKSVaQRxvIToA0-HLsDK28PNN7X_kiWrGlt0wRHIf2lUpWxZXKAm2NQy8xfPWp8cOoBPhyXEaplZFMOWk1Uoy3mgW4snwOyk6pzo0myiDqdKDwdLiNE6waPDI_knWujj6wy6tGbje2XNE-KupSCJ1qRRxd0Iw6qy4nygyxp5U_SpKBmZL8cPB-kkCU31c8u20YcxoOIckOUJqU5gbeMUNnZbcShIJ34gXNKuckc4GUje8j6az5CvcfLCI1UvCFlms5-dTw5cmL2nkdMl1xFFXVWiKKY0Rfn--CL9rNPoQvduWspN64YpS1w8EcjcdEBVLKatXovpDOusJ3HnWQjy_Lo-wygTdHQPhND2VAZe3FXczrN3pPAM8Ufv7T2k_fmHPzep027UrwaR1336kXdmXKXp2cdbIFs9R5JIVGX0DEbmyqeTrHGHbkffSwnJ6YemO2VvGCtd7rAPseSvRAlHP5PmBpbnYA9db3BXkoPmt7joURpUrjwpBN-Krig_FC5XuA_y6bqMuGkFPxAlDNgisbplILXdNcHVQp7Vz32iZwyKY8nPKJwgU6V6uPvm8lzu5MceqyO0lEHFNRg5lyqSqq2Z8dT0XG8OfknqC-bJqQaFaRzHUhFamLK_YkyfUNa064Zg7rByVTT46eN6-6Dn5QCi7V8dFHpXRdAfdRqXGFH-MDOEng0Efk1yO14Uehn0e_9KlS5O9XeGKntIgXdAXS3E1UhmFkIu8q5ewHojtdpWorjz9-89tbg8hFWbSNnK04QrsMFCPNvSuwUbiBWu7Yh3Gh3k0d3jux3tpKUERWQo2RCEWWvMcx3gV3xKkMF14FRLX8E6K6g3CvCQFgTWEp73hrZmoWGwRZeulCGIL7xa10QfwLhOrIRf285p3wHrS17L6lbXtpAAMqmVu0yGyEoOGzcmhq628zIoFtConM254acld6RFeiXmcjfmOMQhsew_1uWOE1JBt2qPl6DeK2ftT_4pig3rij3CpcEoGwQUvjpQWijCG4AcndiN7fZxWv2H1YEoE147MKysPigo1nQ8TJKzgX9veVbuuOY_Yp5xYhtjexj47Keh7jQPK40w3ASgV3fuxkCarqjvBYPBqC1PXdrO3uYdxp6UUpL_tD99w7izsEqrVJSkwQtUdhlw2gB0F331DF62rAD5UKLRepidipDxMnUYJ7mdQmlJTSuHh4pY5dZd_qD9eU83GSVwp126V0adrJKB8Pp1DDKVnUMcSGUucysUxzMrl6ZjYqLDUbFYDCbGoxzkqeXGXQqg8F8zLA4X2VVuBwzn8lR97tLG_F_cvvlWzde7omdUTZMlI-THn5bE5aCa9M19vtdORdb74_yXUftD-q8LnOPi50QwikuVUgwviDY0-C9ItO5bdtgxm4J12RLDIhvhpEfmLWka96knYLjFL5i-ZnX4k0l1_HxJxB_egPiz1wb1Xb3iPV0bK0Ufv5OantfMJW_ZlrJyMTd_xPs5utHync_frUWWu42kirYTUOFEOz07YL50DK5QgxlimZlWq6mE_eFZfrYUG0wQ6hoGmqdoywdhbr98u3HKdRvWHd3HKOe78Vp4Au1Vc3OVu0MJyz272wxTxVfvA_EwGU5YBDPMKjyvHRO4TTPLfnZEl6SM2nZnObt5PU-N5K9jcOsFfolzINy4LkYJobHjXXuav4K3T81eVmx_nZXXbEnZxewxbFk4SYaqYRchG6lMWbxbL1hCZDMCEBKVP55E5zCuNljyvVn_vp2s8Galt3l9eV5fBDbbToD25eTZHGYofIdHa9a7pg8zu7utLKf0XhbYobVp4Ng7dlZ_d5tL90rzHUtVONuH-dlvtBCYfV8VmK9_k50y4x-NfJFCHlW5VY0lGMjlJ9Z5wa1bhtpI77B5f71-C1pMK9ItaFnfP4uDW3oC7bq30mD1eOnhhpjS9UvCRYSK_M-RqbzIlVR8a4iva9Aa47Zs6b6K-Z4Z-l3c0apm58-jok-jYGJq0mSKFqSioyCrIjBlHXPZVjrr6Ii7HyoU_a9Aucv5W7__Q-A6mEbQM0mD2cW8skN3QH57wL8B2PVoTFgNXnMCOs4QvgjCPi3YfwPro0H_1QaFM5ovKqjMY39W9h70cdjIV9XWBqhzmfrFS7KtVP5G1i4chvPfaqTp4UwT1cou4yFfW437wToLyDwFon-e2D1uA2oohmBcEbeMw-ew_KfAlGHwoBRPGXeKopX4-0E1TrafKOSMMpnGwZGUb6za_kztHuVrF_MfcXl3tn5s6WeX2nOpYRgv7vN6jv3xuhDh99I5-wDi8OEtTvKX8_JZ7YrTvvf8Y3_EcQYRmtr01JW2Tqm3XPP3KqQ5sG4jQu30HRZ_EbdK643pX4QRWtKVC832QC5-PvjutRxbGBgMpv7lklUQyHNV0z5x80M1urgc7Zdi_Iqv3B32akMBufbtDlJQvjwYHUetMHKPDRDOu92QZKRi9UUpyXOwyX0xj8MJmfUu-zfOhmi3AMTqfxvq_yeNojXcPv5l-2nX36AcH3TuYSKmFZxYmkPozifvc26qq7jKo9zfEWuo9UqzcIExcur_XWZ47heoTypqwhXdViFWV7HCJNVHEd1El3RaxSiNExQhMIkXi4XJV6iOq9IGlY1KUgOkpA0mLKFbYaFULsrqnVLrqM8jqPllfv9g-5_UqaurVRQtDsNkpBRbfSgZ6hh5HrdQwVBGmLGHkQNULZpecXca0ToTQGUuX0GuO23m50EBGjtj1zfrDYdMNBfDED8iepepfLbeyDeuLeLrtFSgFIIEGpa9yM22O9mVxAbaPZUQ-nfqiOAVrDGlJFqcdUqdj17-UjNvi0WpWgsu-w84b8CqcQf7qcHdw4nDdBdB9XhGv0rAAD__xFV6MI">