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

    <tr>
        <th>Summary</th>
        <td>
            slpvectorizer crash
        </td>
    </tr>

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

    <tr>
      <th>Assignees</th>
      <td>
            alexey-bataev
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ye-luo
      </td>
    </tr>
</table>

<pre>
    Failure starts by
```
commit 2faacf61a50e7f23fd10927cbbb98c59799bfcd0
Author: Alexey Bataev <a.bataev@outlook.com>
Date:   Thu Dec 9 10:34:08 2021 -0800

    [SLP]Improve shuffles cost estimation where possible.
    
    Improved/fixed cost modeling for shuffles by providing masks, improved
    cost model for non-identity insertelements.
    
    Differential Revision: https://reviews.llvm.org/D115462
```
remains failing today in e7d1cc923ee3449a6c0a0d8717bc947fd26a8f5a

Source and commandline in [bug.zip](https://github.com/llvm/llvm-project/files/8994798/bug.zip)
```
clang++: /home/yeluo/opt/llvm-clang/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:7740: llvm::Value* llvm::slpvectorizer::BoUpSLP::createBuildVector(llvm::ArrayRef<llvm::Value*>): Assertion `any_of(VectorizableTree, [VL](const std::unique_ptr<TreeEntry> &TE) { return TE->State == TreeEntry::NeedToGather && TE->isSame(VL); }) && "Non-matching gather node."' failed.


1.      <eof> parser at end of file
2.      Optimizer
 #0 0x000055fc8e3ff024 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055fc8e3fc784 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fb6b791b420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007fb6b73b800b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007fb6b7397859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007fb6b7397729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007fb6b7397729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007fb6b73a8fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x000055fc8e6c905a llvm::slpvectorizer::BoUpSLP::createBuildVector(llvm::ArrayRef<llvm::Value*>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2edf05a)
 #9 0x000055fc8e6ca286 llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::ArrayRef<llvm::Value*>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee0286)
#10 0x000055fc8e6cacc9 llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee0cc9)
#11 0x000055fc8e6ca31b llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::ArrayRef<llvm::Value*>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee031b)
#12 0x000055fc8e6cbe70 llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee1e70)
#13 0x000055fc8e6ca31b llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::ArrayRef<llvm::Value*>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee031b)
#14 0x000055fc8e6cb51c llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee151c)
#15 0x000055fc8e6ca31b llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::ArrayRef<llvm::Value*>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee031b)
#16 0x000055fc8e6cb51c llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::slpvectorizer::BoUpSLP::TreeEntry*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ee151c)
#17 0x000055fc8e6e2f8a 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>>, std::vector<std::pair<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u>>, std::allocator<std::pair<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u>>>>>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2ef8f8a)
#18 0x000055fc8e6e5a28 llvm::slpvectorizer::BoUpSLP::vectorizeTree() (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2efba28)
#19 0x000055fc8e6f6c6c llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2f0cc6c)
#20 0x000055fc8e6fb588 bool tryToVectorizeSequence<llvm::Value>(llvm::SmallVectorImpl<llvm::Value*>&, llvm::function_ref<unsigned int (llvm::Value*)>, llvm::function_ref<bool (llvm::Value*, llvm::Value*)>, llvm::function_ref<bool (llvm::Value*, llvm::Value*)>, llvm::function_ref<bool (llvm::ArrayRef<llvm::Value*>, bool)>, bool) (.constprop.0) SLPVectorizer.cpp:0:0
#21 0x000055fc8e6fcaaf llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2f12aaf)
#22 0x000055fc8e700953 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
#23 0x000055fc8e7017cc llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2f177cc)
#24 0x000055fc8f71da86 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x3f33a86)
#25 0x000055fc8dacbeca llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x22e1eca)
#26 0x000055fc8cbdd446 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x13f3446)
#27 0x000055fc8dacaa06 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x22e0a06)
#28 0x000055fc8cbdde46 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x13f3e46)
#29 0x000055fc8dac8a2f llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x22dea2f)
#30 0x000055fc8e7c3d5f (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>>&) (.constprop.0) BackendUtil.cpp:0:0
#31 0x000055fc8e7c6028 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x2fdc028)
#32 0x000055fc8f6b4bab clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x3ecabab)
#33 0x000055fc904f92b9 clang::ParseAST(clang::Sema&, bool, bool) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x4d0f2b9)
#34 0x000055fc8f6b3638 clang::CodeGenAction::ExecuteAction() (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x3ec9638)
#35 0x000055fc8ef59909 clang::FrontendAction::Execute() (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x376f909)
#36 0x000055fc8eee48ae clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x36fa8ae)
#37 0x000055fc8f038c93 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x384ec93)
#38 0x000055fc8c7eafcf cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0x1000fcf)
#39 0x000055fc8c7e42e8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#40 0x000055fc8c7e770d clang_main(int, char**) (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0xffd70d)
#41 0x00007fb6b7399083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#42 0x000055fc8c7e3ede _start (/home/yeluo/opt/llvm-clang/build_mirror_offload_main/bin/clang+++0xff9ede)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltz27gO_jXOCyceibo_5MGx221n2t1Mk_bVQ1GgrVPdlpLcuL_-gJRsi4rSJLt1p6c9HdWxRRLAB3yASIpxmeyvXrM0ayWQumGyqUm8n1mrmbWY-VZ_6Z-8zPO0IVQwxoVvM8-CQFBHJLYV0YDHcRyF3IuCKIoFT_pBi7bZlnLmLMgig3vYk2vWMNiRmbNk81h_n7lW2TZZWX6eo4qZ86obuWINqHGE3G1bsgJOImJbeMdx8cMKCbWoTS6t0OpVdZ_Yn8y869t3NzNv9TavZLlDYNtWiAxqwsu6IVA3ac6atCzIly0g7qqs6zTOYD4QcfzWy0hm9LVI7yHpZORlAllabIgo5Ul8vCeqc5qolpzVn-sZXZL0IOEo8yRCjy_K4jJNoGjSZk_SogbZQAY53qgnTVqlQqDd2J9l5APs0hqxKF9tm6aq8QvaipfEFvhSz7Nsl89LucFbK9v2XJ9OxldCzlA5EcgGZX9TJkyZQyBIbM4j6gA4rhsxn1vMSsLADmIeuYFIqM9C4bFhGG7LVnIgrFD-ynP8izJBScPgxO1m_jWtMEAzGpo2b9Jm28aaCPS1Mrz_c4ku_A_wRkcBXY1_wwiVRyF-O8ij0TRxM1Yg-Gt1oZNwwLbMAf_sIWtL_FtWzUFN33es82BJGuPnnWRFjXHLlRWfsEMp069KHpLu-FPOeVWhuiBwFWmJloAoncUnlrXYe3irzqrdcWB367r8WCkS6x9cAmbDdZtmSacA_XYavZCS7T-AwJx6qEXlE_pFJWCtiKVYj55hxX5dChRzMJgh_-8kgCIshujTuy46vCyQqnWTdFLbIv27hXXVoJVL1f1V0cg96kCv-ndKE5kF10RC08qC3L26xKbbBm3HhF_hRQZjlLw_AZK78g_WYB4qEXj1o9L6lqkghWiJsv8aBa-0_K7XjNI_MW0wj_lWsXXTySgwqebYNqOBJjIk8yEtu08b76HIJaAH0PSKSfQMYVgZkK6lIIphXU-qev5VYb3QkekycEYdi1j3Fv7zPMFDcISwqEtuZFo0iJZ_RoZwuE03BcveKOqDCtiuTBMVEMTQNdU9RSz9_yjbHsnmQeiSsTDU9KQg2gsKROzHQWTHLrXIei2x_pUS1rLBTuGR1fehv_bdS0zT9v5yU7RdQ9VskXvJvC7nFuaPdW-7KOWYaUqNY6hxYizIMZEsrYHo3ETSqsRGYfzy9uvbr8H18SedOzb-qDUK_DKfq1_7OoFK5Ray7b67sdPWoGWqrCnRc45YPRs_7JMlrmlJFIReRFhcaqTPs6RJOm_oUVpJqJQEJyXeWEmAcdhAs-7sXtewUZV7vVMJ-Fy9GE6FPytZktcbzjrVnmLpIjzp9qd0r4tsrQauk1IV8H-nMgr6R-xRZ2DqxEqf-M8gDleU8TVlHJwj-AZlQoPiPo8sj_3Ictjb__RjQDtynadSlhLrpdB-Vl5Wbfpz-HBRYCkkAtEYcKMRXEZD_wVwj41dff6JoIKFSE6PXaxd1hgqThy-C9SnRp4eLF2JPS9sRGXAtsewHTv-RSKMSAyodAQ1hsD69SJsIyoDtvP7RNgdR9iz-S8YYURlwPZ-nwj7v2eEAxM2UBG-ZNrxOOz3rOonIpMhxiXV6e5tzrJsovdbXGjJlqsFWj-Gtpocw8ErKGpAbY_qaQs1mYaE6AXC1NC3hSgfHa7XKGOlCTS4kjKl3LD0cbCGESitE3hcRO4O4I93qm9J--euG-nFwSXOc3-U6uOlFqznpboIkckG1UczbPBwzvkvqH52ADHTSk4ARnNm4XN_WKKMrZYbVtfdbawsd-Wx4V1aNy-sxMvnOUmFdEnisszO7BmBU03fqGJ0NMUWsReG2hRior-Fv1soOEyAVUjDSXK_zavsce_4poNEW2jmr6V26TDtiaHglFPRAy-PhGggjwxeTuyi_Swin0Otni_mLyVmrrfZKllWapclIlMbiYPNHcWC0YpDcMbE0_lx5PNyq_Z63xbXWBI_G0CuWZ3y_vbiRQlx3kSwKSI0EsFciQSWFXnO0y6QbaFJPsT8uo_uA4bfcpYx-WpXZu2gxJ_a75jcQHPcENbP1uk-79JYMrmf7LFYfIC6zZr6Qcu7sqwmh6zKPC3Us6wr0GOBdd3mlbJ4yfj2YfsK1I48JNfphM5-u1O_IPmAHeXnV3naNGrb8TBnm1dMNs-mqjOKkx3wZ5RyjNPzYrQoWLav0_o9K9gGzMfzcdCPeAwLO0BkBkWNpZQI7IQZOz_DmZVC_l69EpoGYNLygcuM5hsJNcgdJJ1roP5nDlPX_2QkHOE4zNyYosbqLmE8Bj6c-2vvf8vs38uDlIKNDjI8aCwaeZwkrvs9uHw2z_8_JQYBtTEnMF5GQINRSjBmDQOKAWwzuCsPZqpALRJW6SXQlBO6AS9yQT_kxzDaQnyGA8Ixo-GFjD4gXj7Tbd-Lkie3PUbInzoWiowwImM0ImPIqHhGlZiKwC_sOUoTQMcMPTd6Fx1wJ_GEMoEVZbHPy7YmBcuhrhguBfVJALzUjE6dB8jjbP8Gsuownf_QFsPp301aqVMuagegs6RfIfDPUCSLY3mePh5w8o9kX9bVF5k2sK4bCSw3BiUgGE5-15hc0MATA087Kk-rvcMF1l9tU7XN67TjyHN0jkaNtnDGK7XeFx-bNJuc_I7e5gfct7DsDJypItEL6bSavl6lbFOUdZPy-lWx0aHQ2Add3gBLQN4Ck3z7l570q3NOhdr6GHddYgX7A4onenULlic6vcNvU10Gk9RGpsVGLYkn6mO_6vi5WHXe1UHCLXOPyzEWsMKP3ZjFEy5Zonvb_JCi3RkQveTMdJJ-LNIRaRa3dzimgfvm_FNtnCWi1Qas4XovslwR0TgawrpR523QRtPoW1xqGvtqP2J_zU0sgdYZ5rujqDi-E04kUU_ULonvgbcNHLh75u1S9HmENhlGmy-vhBdFluHz11IR4pheQ6vPb2_gCzTHsNd8AwXghgxMJ-cVll-p9teZ3sSc8vPjAM_Oe18wNNnAZMynheWEPHKMUt9Zf4K2U68jHiB5AP3cr8qc0EVGOQYWc2ocABNcEM7tXtL0xiffMnl4GBz2PM17h1dM54Zko-losQEpGkFyKYTkEJOlfaeLzTd3xR_i0yxLZLp7ZO_LtUZKg8BKOk4cPNm_qFOytVvO7BkhEjRh6Bj3MEU5nCqLrNAh67U6xLXWR8LXLzlXxmt1Akyf5Ou-6kYtR58wc1yqPk_q6chFDiRAOsVn9UOEeo5-WKjzfpAQfeRVAknavIKBmw4nii-SKyeJnIhdNGmTwZWxJU64ZPX2opXZ1YtPNad13epjzZ5PPftiexUkluPZPBIhjcB1AoELdsdzQyp8GsaRdZGxGLL6auZdz7zVRXpFLUotnwZ2RNGZ89gRSLbIjRIv4o5nzVxLHfDOjsfBL-SVtiFuNzU2ZmndnM6KX-B6S73MAS2fUqZP71_2J_YpVSqZPtt_tYdLjMuFBnClrf8vyDXziw">