<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/86798>86798</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang crashes at -O3 on x86_64-linux-gnu: Assertion `(getOperandEntry(E, I)->State == TreeEntry::NeedToGather || MinBWs.contains(getOperandEntry(E, I))) && "Expected item in MinBWs."' failed 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zhendongsu
      </td>
    </tr>
</table>

<pre>
    Compiler Explorer: https://godbolt.org/z/5G1zd3r5j

```
[552] % clangtk -v
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 1103a2a337e90d8c7cc417b89e43c7a33aaea21e)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
[553] %
[553] % clangtk -O3 small.c
clang-19: /local/suz-local/software/clangbuild/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:11929: llvm::Value* llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*, bool): Assertion `(getOperandEntry(E, I)->State == TreeEntry::NeedToGather || MinBWs.contains(getOperandEntry(E, I))) && "Expected item in MinBWs."' 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.
Stack dump:
0. Program arguments: /local/suz-local/software/local/clang-trunk/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name small.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/local/suz-local/software/emitesting/bugs/20240327-clangtk-m64-O3-Weverything-pipe-fPIC-build-120032/delta -fcoverage-compilation-dir=/local/suz-local/software/emitesting/bugs/20240327-clangtk-m64-O3-Weverything-pipe-fPIC-build-120032/delta -resource-dir /local/suz-local/software/local/clang-trunk/lib/clang/19 -I /usr/local/include -I /local/suz-local/software/local/include -internal-isystem /local/suz-local/software/local/clang-trunk/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/small-c848b1.o -x c small.c
1. <eof> parser at end of file
2.      Optimizer
 #0 0x0000555921b1beef llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3fd8eef)
 #1 0x0000555921b19414 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f9a4975a420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f9a4916100b raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f9a49140859 abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f9a49140729 get_sysdep_segment_value /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f9a49140729 _nl_load_domain /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f9a49151fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x0000555923379aae llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x5836aae)
 #9 0x000055592338e9b6 llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::MapVector<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u>, llvm::DenseMap<llvm::Value*, unsigned int, llvm::DenseMapInfo<llvm::Value*, void>, llvm::detail::DenseMapPair<llvm::Value*, unsigned int>>, llvm::SmallVector<std::pair<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u>>, 0u>> const&, llvm::SmallVectorImpl<std::pair<llvm::Value*, llvm::Value*>>&, llvm::Instruction*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x584b9b6)
#10 0x0000555923391f6c llvm::slpvectorizer::BoUpSLP::vectorizeTree() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x584ef6c)
#11 0x000055592339eca3 llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x585bca3)
#12 0x00005559233a2f09 llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x585ff09)
#13 0x00005559233a84d7 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
#14 0x00005559233a8fd3 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x5865fd3)
#15 0x0000555922ec8b76 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x5385b76)
#16 0x000055591f17419d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x163119d)
#17 0x00005559214dbacd llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3998acd)
#18 0x000055591f156eb6 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x1613eb6)
#19 0x00005559214d99fd llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x39969fd)
#20 0x0000555921da1468 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) BackendUtil.cpp:0:0
#21 0x0000555921da4780 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) BackendUtil.cpp:0:0
#22 0x0000555921da4df9 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4261df9)
#23 0x00005559223e3bfa clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x48a0bfa)
#24 0x00005559241179cc clang::ParseAST(clang::Sema&, bool, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x65d49cc)
#25 0x00005559223e2f88 clang::CodeGenAction::ExecuteAction() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x489ff88)
#26 0x000055592266e7c9 clang::FrontendAction::Execute() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4b2b7c9)
#27 0x00005559225f605e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4ab305e)
#28 0x00005559227557d6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4c127d6)
#29 0x000055591ed6313c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x122013c)
#30 0x000055591ed5c24a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#31 0x000055591ed5fc9e clang_main(int, char**, llvm::ToolContext const&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x121cc9e)
#32 0x000055591ec7177b main (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x112e77b)
#33 0x00007f9a49142083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#34 0x000055591ed5bd1e _start (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x1218d1e)
clangtk: error: unable to execute command: Aborted
clangtk: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 1103a2a337e90d8c7cc417b89e43c7a33aaea21e)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
clangtk: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clangtk: note: diagnostic msg: /tmp/small-561f07.c
clangtk: note: diagnostic msg: /tmp/small-561f07.sh
clangtk: note: diagnostic msg:

********************
[554] %
[554] % cat small.c
int a, b, c, d[20];
char e, f;
short g(short h) { return a < 0 ? h : h < a; }
int main() {
  int j;
  for (; b; b++) {
    for (; j < 1; j++)
      while (c)
        while (f)
          ;
    for (e = 8; e; e--)
      d[e + e] = g(d[e + e]);
  }
  return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsO91u2zizT6PcEDQkSrKki1w4dtwGSL8ETXb30qDIkc1WInVIKk369AekZMdynJ92E5w9i2_hdWWS8z-cGZETaoxYS4DTID0L0sUJ7exG6dOfG5BcybXpTkrFH07nqmlFDRqd37e10qCDeIY21rYmiGcBWQZkuVa8VLWdKL0OyPJnQJbpp-gnj3X6LQgXQTgbvqfh8Ol_pmdpSoJ0gQKSIlZTubbfEb7rZ_1vdAfaCCVRVEzCSbgWFgUkPyAu7KYrJ0w1AVnW9d32H9xq9Q2YnTioKApjSmgcZ1CEPGcZY0mUlXkBScwyGseUAiURBKToyd9SvQbrRL3Pp6tpgjv5XaofEtdCdvd4Lbth3UYD5ahRHGq3ulVG3PdTF9JYWtfAF8LrzPGlGK0DsjTdT7x7VpX9QTXsTXvZsdWd_B6QZSlkj3CpOskRo5ILTi2gT_M5Ej0RaoWSA5HOaIdLlE45jAVkOYjwyDpZRuEH4IzeH-dgjhuogVng78LffMdZ09VWOKh4hiZBfBYkYTNNDki-tMj7cDz48JGhR7e-ipFpaF1P2J5_46h4m2f41WUnan7g3Xs-74W_1VSaSunGBGT5JzCrtPjpMNxcXu9-6glr2yCeRVFBPAMeRTwL4tmftO4gIPtDpm7vdpD90Jn6o725vO5_7CZvNUBA8rdDOoBzafVDQGYBmaNSqTroOZoZA9oZGLl4QfI12KsWNJV8AMjPHcRFQAocxOc31pkziBdBvECPaD2V_wDwW_WJ2g1oFGTzIJujL0Ke_WUmTElLhTQvE-g_KCDTgExRQMj5fdu7hrDQICG36AJCApKhiooa-KS38_Xl-ezmHJmubIRFFJXdGmlolbbIqsM4-kooC8hSGNOBsy2ikiMhWd1xQHYDiGlqNqik7LvVlIFjvtXQasXAGODIqE73ww6SGqOYoE4I3UlkmBatHVi-sZR9R7xrnI_0Q-EEXWu11rRBVK-7BqQ1fzembceiAmHGIoStFm0NzwZchKERFqvyG8KOOS40ohhhLgwta8CVBkCY1UA1psbiEiqlATuNgOQIN1RIXIkasKQNbHcjwo0Gx6RzNuzjOGoFQ7gVDNdwBzUi_Q9hcCsA4abStAHcKiGtc-uFVBIQrhpqNxi0lgrhqmqxcy5NmQ3ihZIIV1Jh7SKjkGvs1iLcMCWN1Z3bIpjWghowCFed_CEkx9ZJZYJ4QRC2Ph1h1nZOPXiaIGw7CX5gDRK045hD2a3XoN2UkOsgXqx5iXDlxzHzebwXk7uMtHjdeE7hYKxDRpZlt3aOR0KShDHJ8BDacDNN8FWM_4I70A9248RrRQu4ur6YYx-zcETCMCYBWXKoLUW4YuoONF3DP4orDf0ecYz8tmf3YdiPuZRTIHyxl6AGkO2-7efeSGcH5P1O0hoL82BcBHovXl8j8owQLyx9NSGT5WTy9OvI2qfU4N49sKdUh6VH8LwM_eskfFrHFWitNK6Fi_DO4tVadgwPtWsQL5IJmUQIV-a7aLHiGrMNsO9YSLxuKr8baqUxF3QtlbGCGYR3eRPXSrWjAVO3CFeUc23EGuHFavVpPl99nv15vlr8Nfu6JKv58mI1u_kSxIsIYeW4tk3rHMKFPMzyJC-jiUL4HrFxURJNUBDPQVVBfI5aqg1oRC1y4VNVyMXOfh2ZIP_fVWtF45O7H0YBiUMU3odhGKZpWpCojEqAar-YeDD9w7UW0vpMc9unq726QdMfK2WsBtr4pOtKPtun4Px9Mk5AzsL7uOI5QLWr-R370QH7RRIl6EasJa0_U8lr0AHJB276YTMUU6H_f4eIDIiyqqBJkaU0ISFarTQYqzSstN0K47fIEYevRdla_3YxMWoSeo6jJCHhiN94RCaaRmFYIk2FAeSDY18xrmtRMvyj0w9nd7ufZBK7_We8FNudZx4Mh9ZF1E6K-37gznMjO_fTo56wIJ6lkasgHzlJxpwkYZ4WiJbKS_o2TizvteGhPJHcEckeiaSHRDJSoDXYVc_3ysDa1SarO1fGvpWukLb2fkN5Y9aM9qTT0BWi-SPt6THaK1mvHOCKK1df_D2SReacKE4eaWZjmmlU8ekbHIc5l5n2Th5XfDpymXzfxeM4KyiF_8ty_513dZrHU0phJHIxFjmHopy-i8hfaNu_VQXx_OlLlBPycfTGRdojqy-GGtDlih6GdEF8PgZegDTwhbbP0umkP83hfag8BnohK_Us-J0S_AlRDpaKeozlmornhR0xEZ8_QThWgbG8H25fwvn7Cuyph8Mz8sX2kE-OIr1o2vo32NqNDiQPCBxy9_7-npRF-bjFXRILx_5eRNWU_Q1__xCmoZqyEdPRAdPAaLxvqP0DjGtqhjrC6odbtZu4FM7Eext0pjV9-ArVcTse-ucLiunN-lEhKy0ZjUfaIGNtUFKFxeva2HE_31AhzYU8qxX7PtLIGTWCDcOzXxL_A8SuqrAYiR0fiJ0nPHtdbN1Jv3n35Vx2cth0hzue0Zrq8ztVd3sh43G-P_rdHaT5sHl8zaUoNdUPR1fMZl_BdLU1T2YulWqPgixUIyS1Svfb7hChMV3TOo7nlG2ezi-goZIDPxNHaA6Fun_P_goN1d_PG2Gtq2a3IWnSUm1dnVmgY2eFe-Wts1NyaKeKv2Gz6k6-zUYzSesHI8wXKukaxlF4BzQE2_d3y2la8fFuTPfFJcDyMps-kyidtF_664BjTI9d8YmafksL7vP_R71xnpbZOF9N99QbVVGWRAV_B_X6tS-J-Lva_vdbKZrGUVTwkZWy0btxwkvK9q30RfGuhlu1Zc1pf8Zp68u1Y4L3AL8k9gDyQULHRZFTNhY6H7tmOoXy13b-Vsr5G1X1G7p4zrP-cQqOplEMB7VqceBVRVHxN-zhY2r9l2krLoppUY3ckYyP1ziNkmnuyFKp5EOjOoMkbcC0_kit6Ll0qX5mDDRl_fAZ6nZb233t5H5dcC1aqIV0BX9_JDyUi_76ZLYLmLvXo06K_-lg1dqxTjT9sWp_aGFhtT3C2wPiUNGutisONVh4BXD_heo1srdK1VedbTu7FL1fvIXmAdQ-wac6mCtpumZXMw2jf1hRH62RSHRgqyTLw9-11f74P85A76EscqgsXhX7aJ0CBiS9wcZaWDwenp_LtffiQyt-BspB3wDVbHPlC2kzOhPYWzpXHD6BfGVV_xLwyqJLKtfHluwVgVYLuXbvqEdyxFDJv2Tv_aMGqzsj7uArVHNprw8Mf1cNZbjz9Rt_ozGY7x_pMu8bTBMyjXg1etkko5dNEkNcVvQlvno38tcA_vWwv7f8Q4oDZ5zd3M6VtHBvPyQvJDkNy4qORBm9jyVRlBWM7YtyTbWB2c3tmNEbaOjoZOOjTjimKU8KNjrvIemB9kmV50c24eDofRC4B9ZZ2Pr-BxxMJXlRVXk-YnQ6YnQ6hYyNQtNSO2PvtuQ-px_DY0nKjI1deVSbk7SahimMldl38fmmNMnguD6fF-pD_JiWcZjCSI7R5QTJ0jTj01Ea6Dl-FOduaN0Yc_9E3A8JKSwiGR9Vs2S_mo2AT-MoZoixaNVQIZ87mWQbqrfJYXsoOR7bntB_hBgRIWEUj_bm6BY3Ap4yklC01f08uvVBIn_pFP2pTAdpz-EYouReYiwQ1-LumVOn0e2sY6tixeDlW_0Otx-OulfW4bndM0TfW6MRY8XIsWMyYp1lUZaVaLgyfFfaEYEsK0e0Dy6JExLmMVqtalGylbFU29Wv3F0y021vi_tHP-nx-FvMOCHu-5F8cmC1kkeAesLvr_ic73XxDs1AQTxDvkfDPXSSljUgqxD0_oyYahoquW87LJW2wJ-H7tuSqyE4bkGHlj_EO4-4v1J3snUGEL7zYwBI7EWr4r9tzs-0Oe-pXSpXT87QY2sMaowP8YNz_Y3PXmP60KM5u72dzT-j28_naHl1eXn118V_PqHlxeX5Dbq98sNnf3xCX8-vr77e7ni4PtZjmRsXVJ7ts9wt0IB86yFwRO0O5VsUcNjUk06jKsxGzcW_h8FsftkK72WL9CxNk6e91Mmul5racbuSkBZRX7T6mO--eJCekTBIF0F8NgjiEpE_EKh2Y2ajtEVrZwf_tPE5IDtDGmynJaIoiOcoREG8RBvk_-DBj9AgPkNBtngkP6SdAX7oOEBu5tuOGkKV0j7SxWeo7L_Imf-MoEbrvnmCkX_crX5cidCPjajBrWYHE3tT1ZMphPbY2hH0rdPI0wX_hfEBpNOrQ-kWOHPEC6--8bA_xdhh3-kJbdUa7mZ3c7u_CTnhpzEv4oKewGmURVGakCmJTjaneUrSoiyymKUZTyCdwjQsypgDy3hRsvhEnG6bPyMSh1E-KRJekBTiMuZxTsM0SEJoqKgnLl5OlF6f-C7q03yaFflJTUuojf8jGEKGXkgSpIsTferjq28wTcJaGGseMVhhazjto7fvvAaDqPX9gEqiJ105_4qOdnTS6fr091vWvb7_NwAA__8nFyLd">