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

    <tr>
        <th>Summary</th>
        <td>
            Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' 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=loop-mssa(simple-loop-unswitch<nontrivial>,lnicm<no-allowspeculation>)'

https://godbolt.org/z/h15Y3e1Go
```
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=loop-mssa(simple-loop-unswitch<nontrivial>,lnicm<no-allowspeculation>) <source>
 #0 0x0000000003573c98 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3573c98)
 #1 0x00000000035713ec SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f3ff6010420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f3ff5ad300b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007f3ff5ab2859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007f3ff5ab2729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007f3ff5ac3fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x0000000002ef8bc0 llvm::Value::~Value() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2ef8bc0)
 #8 0x0000000002ef8c2a llvm::Value::deleteValue() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2ef8c2a)
 #9 0x0000000002e2f7e0 llvm::Instruction::eraseFromParent() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2e2f7e0)
#10 0x000000000333c75c llvm::sinkRegion(llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::TargetLibraryInfo*, llvm::TargetTransformInfo*, llvm::Loop*, llvm::MemorySSAUpdater&, llvm::ICFLoopSafetyInfo*, llvm::SinkAndHoistLICMFlags&, llvm::OptimizationRemarkEmitter*, llvm::Loop*) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x333c75c)
#11 0x000000000333cba0 llvm::sinkRegionForLoopNest(llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::TargetLibraryInfo*, llvm::TargetTransformInfo*, llvm::Loop*, llvm::MemorySSAUpdater&, llvm::ICFLoopSafetyInfo*, llvm::SinkAndHoistLICMFlags&, llvm::OptimizationRemarkEmitter*) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x333cba0)
#12 0x000000000333d112 (anonymous namespace)::LoopInvariantCodeMotion::runOnLoop(llvm::Loop*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::TargetLibraryInfo*, llvm::TargetTransformInfo*, llvm::ScalarEvolution*, llvm::MemorySSA*, llvm::OptimizationRemarkEmitter*, bool) (.part.0) LICM.cpp:0:0
#13 0x000000000333fffd llvm::LNICMPass::run(llvm::LoopNest&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x333fffd)
#14 0x000000000378ce8e llvm::detail::PassModel<llvm::LoopNest, llvm::LNICMPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::LoopNest&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x378ce8e)
#15 0x00000000042ac6c5 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x42ac6c5)
#16 0x00000000042ad113 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x42ad113)
#17 0x00000000042ae1c2 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x42ae1c2)
#18 0x000000000378bb3e llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x378bb3e)
#19 0x0000000000d6d2fd 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+0xd6d2fd)
#20 0x0000000002ec759e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2ec759e)
#21 0x0000000000d517be 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+0xd517be)
#22 0x0000000002ec554c llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2ec554c)
#23 0x000000000089038a 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+0x89038a)
#24 0x0000000000797c1d main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x797c1d)
#25 0x00007f3ff5ab4083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#26 0x00000000008855de _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x8855de)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltT4zgW_jXOiyopW44vechDCKSH2qabIkxv7VPq2D5OtMiSS5KB8LC_fUt2ACsJ27CTrumaaQpIosu5fN-nY1sKaM3WAnHqRWdedD6Axmykmt6C2YKAc9lkRg8yWWyntxskWbMmD6BJKRtRkGxLFs3T0ycU5PKGGNSGrFGgAiOV5597_qz7f9MIImtDHpjZEI8mwxq0Ru2F51zKelhpDR5NNatqjsO2qRH6gZl844VzIYVR7J4B98ILj865YHnVtg-Bc_mga8wbDoZJ0Q6YeDTpO98YU2svnHl04dHFWhaZ5GYk1dqjiyePLjZB9K8Qg09yNyn2d7_tx6WB_I4UTVVbE22TP_L8ybWSawUVAbVuKhTGeiAeXcjaeHSRy6pmHNUQH2suFSrbxkGshzZxZWPVQ6MacefRRcZEN5EMpTUBdW0_N6ZuzEiT4ZL8WLyIF861bFSO9nObIvFo6BP_0X_-CaMkzCcp4fy-skCEM73V3ZtrxYRpYbpVkKNH09dBCh5WUhuFUHk09uicMGFalzT9g2B59Mx_3IVlSX-JO9iLOwgxJ0u2FsB_A1Fwaz_dhdE161FeW3r99u_FEN0ZSsqwLGM_8MfUJ6uVQm2kwpUyuyw4yzy6eEzjVTweciaax-FaNF1HbTYKoRhpOfLbiIPxmPpOvGHfTQRF6PsZUcA0vsN-bi3HreWxnehYHruWM5pGEwKZfFfkPcvUTnQsR_uWkxdO320zoa7N2LWZh2URf8xmaKc4NpO-FiiWaZb7PQ1_A95g9_Y_3Xvr7mTq3Dl0Ikr3I8opHI-oQI4Gf1BYOQUnrIkbFi0T7AN1KbRRTd7VDNuACjQulKyuQaFdS6cNsPX_EqBd1G41CsM8ifJ-NWLi7gbXNr5-_TmX1a1C_CILPAONXjh_7TsDzfIzLvO7tgzObHV67Z3NblA33OiDns9S1peilAcd57Jiwl76rMuD3ltQazSfWaZAbY_O70bcKhC6lKo6OsY6P2i8wkqq7XI5-70uwFikY3fA5XxhJy6hRHPc95KJu5kofpNMm8-X86sFh7U-sPO1NqxiT-214wYrUHcXFTOtx7fiPF2p7zh3RBHsiyID_6goFlLZiL6gNr_08Wfp46RSyMCtD3RPCkUQUOsPhBTbSjaaCKhQ1-0dyqTP1D0oBsLMZYFX8rXCqUZ8FR2c6XfwPbkWZlo3VW1jmUO--VFaWebAQV3cS960ab8pm4Oe79WBTEq-43tUgzL23mdCrG4O77QseeEeeWVZFn0Uv1zOr65B6xdmDjjpVvaeHGcC-FYzfQUC1qic1d0Ruc_V0oAoQBXPM194jdsaEH9ohjv2-qq_-k65FixazloYO3AmaY4p9kIp0ADju5t30PpKFsgPwOkQnR-lwWm-VqhR3eMOAtQ_mITTMBBe_BLToZg6rThiivpiGlPI4zzqs28F9C5Ifn4h_JOZzTP_190T92Ht_xvKYse6I4t4TxZFEIR_UVn8EsFOBJZjRwTJnggwyGkvlEUj2kfGW2kTsJKYFVAbqY5D-zz8Q_C-TNrBdsp8bTpOvunehTXLwo9dWF9TnL8Lp1NdaPsovaXsnwv-HboO_M4mhV_EBXVuE_9f-N-qVcdHfwDmvy97HTd98qjv7jDlSTTpr50rWTQcb-VzSN-tFt2ED6W7m3LqZHfJONkGrlSjIMk-Vime05u_E6NTae0Vo7eU9vMA38Hq4E73VBZF4_wdS_0Y2n8VlHYoODA5D9x-OvHDtL8LrZpWW9esRs6Ee6SzNIqJ9Q2Wx7R5kG-3D3EF-aa18719jMuq5oejpORf29OwBeNHjPyh7jfSmSkFW9vaJ6jFhDdrJg6qu6zNyki5W9Kdv38wUfyvUd9QsZKheh7X7Zp89PVkOulU4MjE2Ujwk0mSBwWpgIlT-exMOj73j5bGfhqS1YqzLF9pA8qsegG897DJGnG8xO4CSKOoQNLZPxmerdEXr88HxgZVu_WHRXccrtsjSC-ckeXlp-XFp2_d8PnOMVFoGiWwsCOCcLJ3SD0opmExCScwwGkQTyaTNKBpNNhM8zFEkJZZjuGkLFOgNPEnyThKaR6kcToesCn1aRgEwThI_IBGowKghCyMoSwTPyzBG_tYAeMjq9-RVOsB07rBaUJpGg84ZMh1-6UBSgU-kLbTo9SLzgdqaucMs2atvbHPmTb61YphhuN09gwf8WK_so8rDDh7wmLVaFxhVZvty6FS7NGYeJT-rlEThS3_DxsUBMg98AYJ06RAbZTcYuHRwEZBE1IC41iMBo3i070vATCzabJRLisrFbs8u5dhreS_MbfEt-lojy7adP8bAAD__w_1Vh8">