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

    <tr>
        <th>Summary</th>
        <td>
            ScalarEvolution.cpp:11334: [...] Assertion `isAvailableAtLoopEntry(LHS, L) && "LHS is not available at Loop Entry"' failed.
        </td>
    </tr>

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

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

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

<pre>
    llvm commit: e661185fb3e5
Reproduce with: ```opt -passes="loop-mssa(loop-deletion,simple-loop-unswitch<nontrivial;trivial>),loop(indvars)" bbi-75601.ll -o /dev/null```
Result:
```
opt: ../lib/Analysis/ScalarEvolution.cpp:11334: bool llvm::ScalarEvolution::isLoopEntryGuardedByCond(const llvm::Loop *, ICmpInst::Predicate, const llvm::SCEV *, const llvm::SCEV *): Assertion `isAvailableAtLoopEntry(LHS, L) && "LHS is not available at Loop Entry"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ../../main-github/llvm/build-all/bin/opt -passes=loop-mssa(loop-deletion,simple-loop-unswitch<nontrivial;trivial>),loop(indvars) bbi-75601.ll -o /dev/null
 #0 0x0000000002e63883 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (../../main-github/llvm/build-all/bin/opt+0x2e63883)
 #1 0x0000000002e6159e llvm::sys::RunSignalHandlers() (../../main-github/llvm/build-all/bin/opt+0x2e6159e)
 #2 0x0000000002e63c06 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f1aa2068630 __restore_rt sigaction.c:0:0
 #4 0x00007f1a9f7af387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007f1a9f7b0a78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00007f1a9f7a81a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00007f1a9f7a8252 (/lib64/libc.so.6+0x2f252)
 #8 0x0000000001e9edeb llvm::ScalarEvolution::isLoopEntryGuardedByCond(llvm::Loop const*, llvm::CmpInst::Predicate, llvm::SCEV const*, llvm::SCEV const*) (../../main-github/llvm/build-all/bin/opt+0x1e9edeb)
 #9 0x0000000002b6dc6e (anonymous namespace)::IndVarSimplify::run(llvm::Loop*) IndVarSimplify.cpp:0:0
#10 0x0000000002b6adb0 llvm::IndVarSimplifyPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (../../main-github/llvm/build-all/bin/opt+0x2b6adb0)
#11 0x00000000031d6f9d llvm::detail::PassModel<llvm::Loop, llvm::IndVarSimplifyPass, 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&) crtstuff.c:0:0
#12 0x000000000383083f llvm::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&) (../../main-github/llvm/build-all/bin/opt+0x383083f)
#13 0x0000000003830543 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&) (../../main-github/llvm/build-all/bin/opt+0x3830543)
#14 0x000000000382fb78 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&) (../../main-github/llvm/build-all/bin/opt+0x382fb78)
#15 0x00000000031a46ed llvm::detail::PassModel<llvm::Loop, llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, 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&) crtstuff.c:0:0
#16 0x00000000038316ad llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../../main-github/llvm/build-all/bin/opt+0x38316ad)
#17 0x00000000031d629d llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) crtstuff.c:0:0
#18 0x00000000026704ec llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../../main-github/llvm/build-all/bin/opt+0x26704ec)
#19 0x0000000000af3f7d 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>&) crtstuff.c:0:0
#20 0x00000000026747ce llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../../main-github/llvm/build-all/bin/opt+0x26747ce)
#21 0x0000000000af3d5d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) crtstuff.c:0:0
#22 0x000000000266f79c llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../../main-github/llvm/build-all/bin/opt+0x266f79c)
#23 0x0000000000722c49 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) (../../main-github/llvm/build-all/bin/opt+0x722c49)
#24 0x0000000000732301 main (../../main-github/llvm/build-all/bin/opt+0x732301)
#25 0x00007f1a9f79b555 __libc_start_main (/lib64/libc.so.6+0x22555)
#26 0x000000000071b8b0 _start (../../main-github/llvm/build-all/bin/opt+0x71b8b0)
Abort (core dumped)
```
[bbi-75601.ll.gz](https://github.com/llvm/llvm-project/files/9958401/bbi-75601.ll.gz)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWtty2zYQ_RrpBSMNCYq3Bz0ost146jSeyE0fNSAJymggggVAp-rXdwFKMkHLt8hpEyceWRcCuzh79mBBkMxEsZlyfrNGuVivmR4EM0SjyPeTsMwCGg68k4E3-0BrKYomp-gz09emzyDy2peoNRrVRCmqBsHJAGMuRD1aK0UGOLHfC8qpZqIa4Lli65rTkT3cVAqc5eBtXolKS3bDCB8Eb_bfTgc4BRvTGVyxqrghUtljGGUZG8Vh5PljztFIoAE-K-gNvFcN53tsO_Cq4Saw9mevFfCbeMZjMOYsg_dZRfhGMRjqbJETTuTpjeCNiWCc1zV09v0gmBijTAiODHnGeTDr9W4PMnUBAZxCgJtfGiILWrzZzEVVQEi5qJTu2JuOEMkMgkbn83V9Ds1ty6WkBcuJpqapb7aYn37cmd3flhrAM0iTNNhM_pia3RDGScbpTO9BAq6Ltwvj6wKMwDaCF3xgOIqYQpXQiOzsENHIot6a4gGOUQmNtBi39F5enM4Wp0g1GYgLEZQ1KyRpLaRGWqBrrWtlkOIzeK1AW002BiGaXJgY2o8RiO9Pmmv4yZRqqMkMIlWBWJXzpqBIX1OUS6KuUUbyT1qSnG6HX2g4gIpmXe_z70FTeinFSpI1InLVrGml1V4D9m1NWDVq4dxCyRrGixEBfcF3BnI-c7X_1YX_iOptdHAs8JD3t7f7wzQKkiToaEJt1E5VrNKWoStDmYG97yTJ56VQWlKythKYA9m6FUTyJTwN8Bvv7y0WE94erN8D64cpPQT2Q1Mt2Aqm5lvIPKeGkOQF8JjhHDy4T17uRcgZ2ebEctEeVtuy4Nn_vaNg6ygufUKwFyURJGa5lFRpIekSJoBiK5K3deWu-aRjnpYxKYMkRpIwRZGN3BSraNJ-5mMlxpENKQCGYyeg0HWUeSROEMnMDHzQUQz9HEdRD1HikwgCIramLM2sX2bkEXgYbCPHa9z3ikP8iAvo4bhIuinzaUoLmh1RlnsF2ZbUbXm9bbq_PPeK72HzXtNxMt6G7HCSOjLOoiKPbGYIlJzNWjRQyMmaqtrO-7QFdV4VH4lcmFLFys22DjTVHUq2kN3udyeBmdxeDwYpMq9Dg-viEqT00KiRy-FunX5HKrKCaRnM-wbz3uIKta4qINk7y_bMQBnPpuhGz7Jw-16--70uQAHSNh1Zllqe9vk0RDplMvCLqEyLzvgF1TD_tmoEGt8JWHweYeQA-U47qBpm9g3dBk_VV6b_ZbgHT69EQrnUSjdl2V8djBycVSpIAi8Jyo6v97WpdMRVwN18BqfddBvZPImHbz_zC1atOG3ryQFwShftgaZifzV0WWs3iP5sgoUhp2af8J3S0g25oCUBq6U9OaWvOuz965468FMGP5AMvqPSP-9VZXOiKe02lbTbyaPPMLYrhnOGEfSXlHASvNLl4Q8gSjT2msdvsB27bHfw3_fZwrFygGw7cpi4csBlBtvG1ymHHzrzNrFO5kN3q0EmET12q_Ea1PJzb_QNaf6hvVHUW8h82E13fJ01lb3odiUMAqPMWUFqLeRhbnbdn8XP3mgb99Hl2cTgTNK4fz0AP_N6wG1c8yeR81Ly71Jznx5fiPOHROJcM8RR7E1o_oSCdZi1byTeo645tRQ4GnOuIXqkDMr4JTT21bh9XRLFXk-ikzjv3hkBuhtOr8TO6aOVrDV4FuCtyUspzETQVRj2-worwucpbBfT_InEvJREbom5TyAvwPZD4nBvU0VRGadPqV-H-Prf4zxOVTZ0R1XOTtaLMc4naQcaRGDouWQ15axyb3sutGTV6gMtD0nqTpBXRK6ofkfya-tndqj1gmWSyM15VYrzdc3v9hKCv2903egzxg84Oar5nnBmUpKNOdrNym3ffik92N1SyJsVq-70h9wsNQBrf7XwfmXm3tr9vT5SyUpG5a6febTi6Z_HaahViCOhiSsh0JTnI-P2uIGsH2eg3t3ZNAvDEC2X5pbnUmki9XI36v03RDHYOE4jF72fJZmHWnfH4bee9kPNdjeRcyGpfciCdk5S3cdsBuGb7tML49U_g_AETJ_9BEgJOjcPgKRpmEwMmWd9vzsEQzr1oyhOUjhBngyLaVCkQUqGmmlOp4882QNwx8BQePKfPjIzbCSffvkzMWGSRMnweuplSYS9IvcIzjMvIB5OsyjzsiL1vQyENgQglKspBAnjV_Qzsi4MlvBkyKbYw9j3vcSLJrEfjDNS-jikeZEEZQgCGEw8CsLhY4NjLORqKO0TZKOsWSlo5ExpddsIdYKtKkrtcOCfNPpayOmafSKUXwu-ptXQjj-1-P8Fd6bdCw">