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

    <tr>
        <th>Summary</th>
        <td>
            Assertion `all_of(ArrayRef(CommonMask).slice(Part * SliceSize, SliceSize), [](int Idx) { return Idx == PoisonMaskElem; }) && "Expected all poisoned elements."' failed.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    The bug was found by FuzzGen IR test generator

Run opt with -passes='function(slp-vectorizer)'
https://godbolt.org/z/ePdMeK31d

Test.ll
```
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #0

define i8 @function_0(i64 %val_i64_57) {
entry_1:
  %val_i64_58 = call i64 @llvm.smax.i64(i64 0, i64 1)
 %val_i1_89 = icmp ule i64 %val_i64_57, %val_i64_58
  %val_i1_95 = icmp sle i64 0, undef
  %val_i1_98 = icmp uge i64 %val_i64_58, %val_i64_58
 %val_i1_99 = icmp ule i64 0, %val_i64_58
  ret i8 0
}
```
Stack dump
```
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=function(slp-vectorizer) <source>
 #0 0x0000000003597b18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3597b18)
 #1 0x000000000359526c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f712b842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f712b8969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007f712b842476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007f712b8287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x00007f712b82871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #7 0x00007f712b839e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #8 0x000000000444b6c6 (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x444b6c6)
 #9 0x000000000444b7c5 llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(llvm::slpvectorizer::BoUpSLP::TreeEntry const&, llvm::ArrayRef<int>) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x444b7c5)
#10 0x000000000449069e llvm::InstructionCost llvm::slpvectorizer::BoUpSLP::processBuildVector<llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator, llvm::InstructionCost, llvm::TargetTransformInfo, llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP, llvm::SmallPtrSetImpl<llvm::Value*>>(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::TargetTransformInfo&, llvm::ArrayRef<llvm::Value*>&, llvm::slpvectorizer::BoUpSLP&, llvm::SmallPtrSetImpl<llvm::Value*>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x449069e)
#11 0x00000000044920aa llvm::slpvectorizer::BoUpSLP::getEntryCost(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::ArrayRef<llvm::Value*>, llvm::SmallPtrSetImpl<llvm::Value*>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44920aa)
#12 0x00000000044a6d83 llvm::slpvectorizer::BoUpSLP::getTreeCost(llvm::ArrayRef<llvm::Value*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44a6d83)
#13 0x00000000044aeeff llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44aeeff)
#14 0x00000000044b245d bool llvm::SLPVectorizerPass::vectorizeCmpInsts<std::reverse_iterator<llvm::CmpInst* const*>>(llvm::iterator_range<std::reverse_iterator<llvm::CmpInst* const*>>, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44b245d)
#15 0x00000000044b282b llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&)::'lambda2'(bool)::operator()(bool) const SLPVectorizer.cpp:0:0
#16 0x00000000044b4dad llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44b4dad)
#17 0x00000000044b84d1 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
#18 0x00000000044b8e33 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x44b8e33)
#19 0x000000000379edfe llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x379edfe)
#20 0x0000000000d83a4d 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>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xd83a4d)
#21 0x0000000002f36dbe llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2f36dbe)
#22 0x0000000000d67e8e llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xd67e8e)
#23 0x0000000002f34d6c llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2f34d6c)
#24 0x0000000000895cca llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x895cca)
#25 0x000000000079c483 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x79c483)
#26 0x00007f712b829d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007f712b829e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x000000000088af1e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x88af1e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWltv2zoS_jXMC2FDomRdHvLgXHw2OC1OUGf7alDiyOGGIgWSai6_fkFKcUzbaeLWwDnYLdI4FjnfzPfNjESapsbwtQQ4R7MLNLs6o729V_r8jtpnKumV6itrzirFns_v7gFX_Ro_UoMb1UuGq2e86F9e_gCJb75hC8biNUjQ1CqNoisUzYff33qJVWfxI7f3eNJRY8Cg5AqRvOllbbmSiBRGdJMfUFul-QtoREpE8sH83trOoGSOyAKRxVqxSgk7VXqNyOIFkQXcsq_wZxKzbZ93YOxUiPFSFo0__q2leg0WM2qpoM-qtxglVxgRApMWJXOY8CxFyTxLJ00RoWQek2IiC_dHhpJ5QoaxZUwKREgAaTXvBLzCPRXZKksnvXyQ6lFOBJf902Qt-43V-Du5wItRCDy3VjuyWKqaClHR-gFL1WgALJV5ljWWqpePXDJsOqh7QS2tBOBHLoQG22uJW2iVfkakkEqCE9J7YVALqgHzLMUojYT40U5NS5-mjiwp_O9L7F9KjEgSbYfIoOESMC-c6WvSVtFghxGZ_aBixbN0Ncu9eX4x2IG0-nkVu-T59ziYW3ihHM2fRIWjMS4cb7hsUOJVUXoQXrcd7sVIL4znMnS6G0m8KmdvGGbE8F57yaA5ML_Y8rne91m853ML4kDY0buharBO-9eU5FcHy3ppXbGwvu0ODkdTFJW3Wq01bTHV674FaX2pIbJQnUVkUau24wL0BJ46obRrw0UtqFxPXM9ql3QzsbqXD4gsKi4HQzxRDoJ2nXvf2663U4Mny61W_1mfY5RcGtXrGlByvREqiXD0FL3-S2ZlXsUFdvXhiimZm2cz_HGrubSe-p2mNSBSvE3S9HGljNVAW0QyX0fSDvVd_CZpRC6ipzGs7bpM4p24ZySr8ZKvJRX_opIJh1-MYQyXzbTuOpTMI_9_A0RGoLzJY1IVKZmRaAxc8AqRxXh72bqtuIF6atQ08-F5kyC4JMQss7KpcWfvNVC2euBCHOfA2wcO0t2g0zzDa-N5Hht8mmcB9izEJkXeJJhWStvjkL1hgJztIcfV0ZhxFWDmIWZSQpkdh-lNAsxiu7bSNK2yOjtVLY9wgb9y119ez7Z7UHRbnewvXah_d8svt8Ob5X3fNAIulbHXxvLWrwv8CGUsaNSPkO40wLV7luBaSWPHZn6zn2tNn79Bg5JL11rJ9QmbfOS9Ecb1eBQKU0ZZCVvh3Ehjde_veI78EZJ1WtVgzEXPBfvuJ6Lk8jcVD5TaCS0cvPOrmDtNpWmUbm9ko97V-e3idyp6QGTuZb_8HNlg3rKlQtxavQR703biXXCH_ztFM_8E2_cL6x3C2ec5Z79G29mdsJp9sQbVHO9UM4koPaJm12C9zEM9nTBBx1Xb3yWnUyuQk4Ry0owVyXFyOmH21PxYjROy8kEHrJIdVgBNs63-l9vvG1a31IyrM6uf79Rm4As_mtNRvVUpJU4rg2MZyJCGMlQknTHv92MtNrFftp27DRu38LVsXKrCD9AGVtyO--dtRUYDROZvnbJ_P3w1XWkq13AK8G3xL6jh9YVQ9cNen36QlxPmw8sd5GO2m4-CVMek4p5yaW7kSKw4Cd_hEiK5oG3FKEEkR6QYi3MYVN2YCeJ3D5vRIQU4CHt_e-CIZzvEU0bZ3038hIl2dIJE5zt8i5TFH_PVvfQPg22Ci81mdPeBXFNB9fUPJfph_DMLhoNzvvBKU_18cMZ8_g1ML6zZG_miVHfQ5Eq1XLpycQ-GfUBj-rbzKzpa3--PX0FLJQN2wQ_4_KuzvOUv1Jl_g5bqh-uWW-uyNR8zOu2ottPIb1g_rstiN0-QJJ_K0-dyNJdUPBtuvlJJ1xDeyTZGp3_KexpBPQZ7oyQvgTXbWwAGlnIxfkRBjfmqGIjD0YY1uKdPMHyrwYD-AWzQAcyvqeN-_vmyj6puy06CnVfEioSm7ASy-7k_4_arMv__Zm_ITZC8YKNBmiRj1XbPfFWsF3CnXkNySZkz2m0-NtglPBgcRXc0OTXZkUzAloSlmuVQHHeHeKV3-UmNTlVrbxq9V2n_HOEHWQPdk50qS1lWf6LVD6n9v6LSqEIgU7CTiYpyVtfbu37d-9q65R0ILsPP1ZdWc7l2-7YDtbnHd1gSfaX1vcf5aME0rNd2Zykl_vJHCwsuDoD81vA7dA5uTr0mol9zuXd3V51dWbeMHxZW3t-fXLKfzfoOmjcc9Ou8YRtw7OvJ6mSogqBMgg1WlJd1WiS4pVyeyucAGfjc_Ty-ZOWRRx_eJMDMdzEhjfBq5cxWxlJtV1ukPu0F0tBLETZVQZsY8IB_shx50I3X1xM9C9pvEoAN5-zDmQtK5nh588fy-o_vw_TL0TEeDouBuRlxUu4cGZ6x84SVSUnP4DzOozSJyqwgZ_fndVWldZGzglRpBbTKgM4iyhJGszqmSXzGz0lE0iiOkrgkMSHTlBHKmojEMTRJSgClEbSUi6k_7FV6fcaN6eE8z4pZdCZoBcL4byMQIuER-0FECJpdnelzZzOp-rVBaSS4seYNxXIr4Hz-Kh9GWUSFWKkGkWLTyqS4VG2r5FdqHhApp0Zwf2Z4OyRojpfuwpK_-AfB1pvSH87670gM53f4hj2NZ92jlu4KRskVSq7wreJm8HItoEXJBUb51dCoGSIZRoRcP3VQu3RRIXDn5wPDIMCfy04dZZLjhnIBbHrWa3G-80UIbu_7alqr1tWlu78ML5NOq_9A7arMa2cQWXht_xsAAP__dQ1gww">