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

    <tr>
        <th>Summary</th>
        <td>
            Assertion `Idx >= 0 && "Invalid basic block argument!"' 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 Run opt with -passes='loop-bound-split'

https://godbolt.org/z/G98jGEe9x

```console
opt: /root/llvm-project/llvm/include/llvm/IR/Instructions.h:2922: llvm::Value* llvm::PHINode::getIncomingValueForBlock(const llvm::BasicBlock*) const: Assertion `Idx >= 0 && "Invalid basic block argument!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=loop-bound-split <source>
 #0 0x000055969948eddf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x390addf)
 #1 0x000055969948c504 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fc66ce8f420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007fc66c95c00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007fc66c93b859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007fc66c93b729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007fc66c94cfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x000055969a14d422 llvm::hasProcessableCondition(llvm::Loop const&, llvm::ScalarEvolution&, llvm::ICmpInst*, llvm::(anonymous namespace)::ConditionInfo&, bool) LoopBoundSplit.cpp:0:0
 #8 0x000055969a14e51e llvm::splitLoopBound(llvm::Loop&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::ScalarEvolution&, llvm::LPMUpdater&) LoopBoundSplit.cpp:0:0
 #9 0x000055969a150db0 llvm::LoopBoundSplitPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x45ccdb0)
#10 0x00005596996b57c6 llvm::detail::PassModel<llvm::Loop, llvm::LoopBoundSplitPass, llvm::PreservedAnalyses, 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+0x3b317c6)
#11 0x000055969a19c2ff 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+0x46182ff)
#12 0x000055969a19c506 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+0x4618506)
#13 0x000055969a19d91d 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+0x461991d)
#14 0x000055969a19eb76 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x461ab76)
#15 0x00005596996b25d6 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+0x3b2e5d6)
#16 0x0000559696d23bfd 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+0x119fbfd)
#17 0x0000559698d7e540 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x31fa540)
#18 0x0000559696d09a76 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+0x1185a76)
#19 0x0000559698d7c13d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x31f813d)
#20 0x000055969688c955 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+0xd08955)
#21 0x00005596967a2047 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xc1e047)
#22 0x00007fc66c93d083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#23 0x000055969687e33e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xcfa33e)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1z4ygW_TX4hbILgT4f_OA4cY9rO7OpJDv76EICyUxj0ALqTvrXbyE5tqQ4vc6Op6qnp6vS7hJwD_eee7hCSNRaUSnO5yC6AtH1hDZuq838kbpnqui1bnJnJ7lmz_PHLYd5U8Ev1MJSN4rB_Bmumq9fP3AF1_fQcetgxRU31GkD0DVAi-73vlFQ1w5-EW4LBxfTmlrLLSDXACdS63qae-SpraVwACd9lK1ztQVkAfAK4FWlWa6lm2lTAbz6CvDqQ5b-_uGGZ099IxCj7q_QymrJu1ZdO0AWEOCV0doBvJLy825aG_07L14uAV4JVciG8WPD-t7_KOtMUzihlZ1tAVngDGMP1w4iC0AWv1HZcID7TXe_rH_VjHcXFXdrVeidUFU7dKXNldTFJ4BT76fr2V1RK4p95wLgDLYD_HQLa7nxXkAQozV7goDcAHINEQQ4BjiGAOO1-kylYDD3KDD3MJCaqtlx5QAOAMYAJ7CkQnI267i5-3izeLiBtsl3wkHaptzwWhsHnYajJAi3bfJZoXdHjkZUCmsbbgFeQaoY3DMK3ZbDwlC7hTktPjlDC76f_sHR4hNkza72s7RNaAZQdmd0Zeju4L3dJ9CnEq8KvauF5GbKn2qpDTe-TVJVTekLS3bqTKM-AbzKheoM4VR7CFrX_rpxdeNmFk4ferIcaxICsrS6MQX3bLfuQYAJgugJIYSiKIuzLEw5Y2UvifbZ7lVghHJtiI8-ZoDT4yBDv2y0dYbTXZvAJRQ-SRkEOP2DgQJ8hZ5IhihjJcDZ0e9g5HcRoRA-iEpR-QtVTHr8dO9G12xnRe1Tg9p_ByC8B0rKIo4LnpYhRnCzMdw6bfjGuH0UUuQAr57SeBOHUylU8zStVNN11G5rOGUzq2eo9TgIQ4wG_pLBNFlUIJRDQ4XlZ-AXHjlukUOCUD5ADofIJE-jDNJcn-V5DxnjNMoGyNEYOTnk9GzMBA8x4yFmWJQsfh8mISWLB5hJXws0CFmIcU_DW2rvjC64tTSXfKkVE15tAwl_1LreF6hOwceuh4JKam4-a9l0ZqP-9XJXr1vDxbAD4JQqrZ53urFQ0R23dbtysq774MhalXqPmmstvWK9O1d-7T74pXtauOkoah4FvL9yveUB51Wwr8K49kXd3_8eDeever1Jz8_z2fl4d_uvmlHn12N8bmjZMLQIsRyNnDlC3FG7r1GmeZ3UVw4tFJXPVthbqmjFDSDLscE47gdHFaOGvVjec9tIZz0yuTnJ1Dcsvk3OhQpmGBUFy48FyNfLYaGP8ygp4p4rjDsq5L7WU2tvNePyDHJGeRj03xluufnM9zxw-ydn4jJp8HuRn2rq335zEiRFPFBTMFyhWYHLElrHOk907fHoUD-v1UBu-mLxojuLxe9fNw9CVZJ3hemEcweeGiX-0_BN7YZBjNfiUquC-43_X5SWfsiMl7SRbsO45I7_0GEf_t6oIj9l8DeSwV_oxrEcVeXu2MA_utLDFu9yW5U4SHFZDm4ueHxziVD8g94p_i3cVjftPv1Xbts9lN8m_dx2dMqI0HDbQUbKYFnAflBl_BTBXgRZFrCBCMKRCHie9MvDqlHtEeej9gF4SSwYrZ02p6l9Gf4ueg9Ge9ouGS_Nk6Hoo9GTG47Y-57cjiEuz-LpUg9xfZbeUvb3RT_JMY_YkP64T3_MMMlLdgH636pVp0e_g-a_b_aCICvzclgsBmeDKUt4FPaPkm41ayR_1C8-_c9y0Rm8K969ycW1GpQ0CoeHPOlQqyijyftKxUt4yzM5upTYjhy9JbXvh_ggSCM6qtHZSGZFQM7ZmJyi-0ehiQRlGpDBasSDQ8g4TYssinpemqYV152ouRRq-JLpwRmhqntenhLnq3gfqam4u6XFtsVZnOr9KHJDzfNalXq9q-XrUVrLf7bv1lZCngD5Q91vhLMwhj771sHJmedENpVQr-q7rt3Gab1f0918_xCKfWvUb9yIUnDzMq576XDu_xfTB0NpFkUDeQxOFeOEYhQmcEeFutScRcBRmAzmxKOXXAylBG42UuTFxjpq3KbnwLmvvUKUksEsZCj8hBPCYYd_sdhKSgg_zLrcI0HDXWMUZ4AsYECy0dcFEzYnLCMZnfB5ECdZlCQIJZPtPMlYnrE0CEocBjhMcIgZJSmLUR5igoKJmGOECSL-sSxAKJ6lNMniMIhIUCZhEqUgRHxHhZx5Ic60qSbtK_V5HMRRNJE059K2H29grPgX2HYCjEF0PTFzbzPNm8qCEElhnT2iOOEkn1_6I4JJY-T8__9IoA3qvwEAAP__ToLSng">