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

    <tr>
        <th>Summary</th>
        <td>
            [loop-reduce] Assertion `L->isRecursivelyLCSSAForm(LAR.DT, LI) && "Loops must remain in LCSSA form!"' 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>
    This bug was found by Azul FuzzGen IR test generator.
Run opt with -passes='loop-reduce'

https://godbolt.org/z/7WaE9hWWf

```console
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=loop-reduce <source>
 #0 0x00005618ab052b0f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x398fb0f)
 #1 0x00005618ab050234 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f6665809420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f66652d600b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007f66652b5859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007f66652b5729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007f66652c6fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x00005618abdff22e void llvm::detail::UniqueFunctionBase<void, llvm::StringRef, llvm::Any>::CallImpl<llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)::'lambda'(llvm::StringRef, llvm::Any)>(void*, llvm::StringRef, llvm::Any&) LoopPassManager.cpp:0:0
 #8 0x00005618abdff982 bool llvm::PassInstrumentation::runBeforePass<llvm::Loop, llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>(llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&> const&, llvm::Loop const&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x473c982)
 #9 0x00005618abe00251 std::optional<llvm::PreservedAnalyses> llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runSinglePass<llvm::Loop, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>>(llvm::Loop&, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, llvm::PassInstrumentation&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x473d251)
#10 0x00005618abe00766 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x473d766)
#11 0x00005618abe01b7d 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+0x473eb7d)
#12 0x00005618abe02de6 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x473fde6)
#13 0x00005618ab3b0a16 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+0x3ceda16)
#14 0x00005618a884a7fa 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+0x11877fa)
#15 0x00005618aa88ea52 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x31cba52)
#16 0x00005618a8830d76 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+0x116dd76)
#17 0x00005618aa88c65a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x31c965a)
#18 0x00005618a83b4665 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) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xcf1665)
#19 0x00005618a82caf77 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xc07f77)
#20 0x00007f66652b7083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#21 0x00005618a83a62be _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xce32be)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVFz4ygS_jX4hbILgYSkBz94kvgudcldKsnePLqQQDa3GHSAZpL59VdITiIcZ9aZddXNZrfKiWVoPro_vm4kwZyTay3EHGSfQHY-YZ3fGDu_Z_6RaXZuusq7SWX44_x-Ix2sujX8yhxsTKc5rB7h4lun4LL79u1vQsPLW-iF83AttLDMGzsD6BygxW2noWk9_Cr9Bk5b5pxwgJwDnCtj2qkVvKsFwPlgPfzfeN86QBYALwFerg2vjPIzY9cAL78BvMw_s4ty8_lzMx4EKBo-tdHOKDG03nlW_wp5t20DXt-EZgCVN9asLdtCZtfdVmgfpoMAL03rAV7WZttKJexUPLTKWGFDm2J6PQ3-Wy-NdlNvO_0rwMtK6mEgnJoAwdo2_O582_mZg9O7UdijmCEgZ850thaAXAyeQYAJgugBIYQymhSsQhmuUAOV-rIN_pOFe3TDxY2V2vfR3VsWGCxejCz7ujLOW8G2AFOAz6DUHuASAlz8zhgB_oQeSFk0FWoALl_8Tvb8Rpik8E6uNVN_Z5qrgF_s3Bia3axuw6qg_u8ZCO-A8oZSmhWoTDGCq5UVzhsrVtbvolCyAnj5UNAVTadK6u5hutbd0NH6jRWMz5yZod7jJE0xivwl0TSYU4QqaJl04gj8OiDTHjklCFURchojV1mRlZBV5ijPR8gYF1kZIWf7yPnzmh6NmeMYk8aYNW04fR8mIQ2nEWYeaYE3DcYCfjGSj4TMhWdSDde_aPnfTiw7XQfVfWJOAHIW7IN0X4bceSv1-lY0cfNCP4YM6q_PmFKX21YBcvZi8AR8b66MaW-YcwvOWm_sLls6HWXPk_kudcYTMfXopLtmmq2FPThH8AT3bPTNocyxbcVZqHDjSb4TSxh7AXAxELA4moN-WvgU4s7JwzlW7C9QWWBYGaNGkAHkUjtv-_rIhuB2fH0SjbEiWEQkhLljv8arHMzPjK5F639j1PeIfm0dWu4805xZ_jTyVrhOeRc4CVy-wzy2vbn-peXMh-LVI_UL82HDg2Hr9K_NjGlHXeVwfarNJM1JXRY4KiBlpE-BEM4S6Dwf_DFtwGNxkt9Y4YT9InZBh932Yk_Nx_H9067Oc_bdSb1Wb2ffM09dX1ZXrY-D-GCijULmomGd8isulPDiQ4f9_BkXpMEl-pcM_mQyeM-tyg_5e2BL-DGXo65D9xjDFnO6zYXjLHneXMKDCtrfXHJKP-hO8Vn6jel8wPqncP5meAx9o2D8IdRzUmXklEbKSPaUkVQ5_6DK-EsEOxGIKueRCPCeCDAX4_Lwf3mYPGG8DRex6EkUL6kQS-h3nuCuDReHH6_j-N7mKd4BXt22_xBLbyn756Kf1IKzJKY_HdNfFCnLG3YC-t-qVYet30Hzn3f1kqTI84ZFq5eNV48VhWAZHvl5bXinxL158uk3y8Uw4F3x7oacXKtJXbEMR9HSWKsE8fx9peIpvLMjOTqV2F44ektqPw_xSUI5z-Mike_JrKYZOyLZD9H9UWgiSV3SLM7G6LVmQaqU0mzkpe16cd3IViipxTHvY9-I957ZtfDXrN70OItDvVeyssw-XurG9G-kX1kZo_7VHxItpToA8ru633pNbC17DK3Rm7PAierWUr-q76b1K2_MLqeH-f4hNf-e1b-FlY0U9smuCj1Hf59MH3WTUJpF8ojeKha4Zk2ewy2T-mRzorzJ8_GcGO0d2eSoIHC1UrKqV84z61cjB449xElRQaJZklj4jOJKwAH_ZLEJgivxPOvZDgla4TurBQdkARNS7p3FTvic8JKUbCLmCc3zMsvzMp9s5nVZZowwnOe8pGWTYkoIpSlvCsYzxrKJnGOECSIoTcpQAWcp4gQx1CCeFAkTNUiR2DKpZkGIM2PXE-lcJ-Y0SQo8UawSyvUn2xhr8RX2nQBjkJ1P7DyMmVbd2oEUKem8e0Hx0qv-SHx8Pp2dw8UTQxBQdDUF5CI8r9SddfKLUI9XZ3d3i6WxW4CLq8Xt7Pw-iPrqcpA0BZhCgHG4F3Zw2zkPrehXXmrYD4VNPzYJLuIcNkwqwWeTzqr53nG49JuumtVmG4QRknD4mrbW_EfUYZn7WB3Ay56L_wUAAP__FZf6vA">