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

    <tr>
        <th>Summary</th>
        <td>
            Cached disposition of [...] is incorrect: cached Variant, actual Invariant with -verifyscev and indvars,simple-loop-unswitch
        </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: f33173acd6875
Reproduce with: ```opt -passes="indvars,simple-loop-unswitch" bbi-75413.ll -o /dev/null -verify-scev```
Result:
```
Cached disposition of {0,+,1}<nuw><%for.body.lr.ph> for loop Loop at depth 1 containing: %for.body.lr.ph.lr.ph<header>,%if.end7<latch>
 is incorrect: cached Variant, actual Invariant
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=indvars,simple-loop-unswitch bbi-75413.ll -o /dev/null -verify-scev
 #0 0x0000000002e5b773 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (../../main-github/llvm/build-all/bin/opt+0x2e5b773)
 #1 0x0000000002e5948e llvm::sys::RunSignalHandlers() (../../main-github/llvm/build-all/bin/opt+0x2e5948e)
 #2 0x0000000002e5baf6 SignalHandler(int) (../../main-github/llvm/build-all/bin/opt+0x2e5baf6)
 #3 0x00007f084d8cb630 __restore_rt (/lib64/libpthread.so.0+0xf630)
 #4 0x00007f084b012387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007f084b013a78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x0000000001ea9ccc llvm::ScalarEvolution::verify() const (../../main-github/llvm/build-all/bin/opt+0x1ea9ccc)
 #7 0x0000000003827bcb llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../../main-github/llvm/build-all/bin/opt+0x3827bcb)
 #8 0x00000000031d000d llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../../main-github/llvm/build-all/bin/opt+0x31d000d)
 #9 0x000000000266a71c llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../../main-github/llvm/build-all/bin/opt+0x266a71c)
#10 0x0000000000af0d7d 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>&) (../../main-github/llvm/build-all/bin/opt+0xaf0d7d)
#11 0x000000000266e9fe llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../../main-github/llvm/build-all/bin/opt+0x266e9fe)
#12 0x0000000000af0b5d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../../main-github/llvm/build-all/bin/opt+0xaf0b5d)
#13 0x00000000026699cc llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../../main-github/llvm/build-all/bin/opt+0x26699cc)
#14 0x0000000000721cd9 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+0x721cd9)
#15 0x00000000007311c1 main (../../main-github/llvm/build-all/bin/opt+0x7311c1)
#16 0x00007f084affe555 __libc_start_main (/lib64/libc.so.6+0x22555)
#17 0x000000000071a940 _start (../../main-github/llvm/build-all/bin/opt+0x71a940)
Abort (core dumped)
```
[bbi-75413.ll.gz](https://github.com/llvm/llvm-project/files/9917320/bbi-75413.ll.gz)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzlWMlu4zgQ_Rr5QljQTungg7MY05huTNAJ-mpQImVzmhYFknI68_VTlOREdJx0tsFsQSDLXKpevXoqmVVKercQYr9DldztuPHiJarjOMQxqWiW49QLLrxg-ZW1StKuYuiWm61d5GXB8C9bg-Yt0ZppL77woog3dE-U9qJzzXetYHMhZTvvGg1bqy0sQGXJ5zhNwtgXAs0l8qIVZXu4Np0d2DPF67u5rmDs4OUAQ3fCYhy-Hs2ek2rLKKJct1Jzw2WDZI08fBYAFi86g2vo4QsvPm-6Wy--hBsvSmup_BJY8IXyWwjtEsEIspjRZ3shBlHWmi0KgaLGEN7wZtMzcLz3YOF8ywhlynqwflNe-6yhGCYEsQzAeI8XcY14U0mlWNUTXw0BfCOKk8bAZkQq0xGBPjX7cazfePX5cnl9iXRXQsYQQWW3QYq1UhlkJNoa02rLUbSC_w3kqyt9yC58sYkeP-aQ0N-t32jFte4gedEKkYZaRKKjDJktQ5UieotKUn03ilTMH9xfGxhAtNu195kIYKq4UnKjyA4Rtel2rDEWBPJ9MNxfdkDdfIDzAKXsuKBzIoS95w1cXT09L6bXKGmg3IviAAU_gsNfxNIS4xj1cCCaeKnv9HBzpXhj-lhvbPBelD8sUuR2LbVRjEAQmc0UtwkrwH7-lohBncGPEQuYeQAbHoEtkpydAvu1a675piHiF8ihYJax_APwWHcOnuiYPFJnyPEMHj-ICzDt-I5H37gO8oTmVZlBLtdrxbSRiq1B_X3QK8HLLBk-4bmFHFFfSz_o7dawxzGaTI2WQRjFOUaKcM0eW6usnay3E2ewzjGUHhmKCc4RKeUpWFNDGNY5hrIpxSEjRVVVk5RfV0QQdbmXorMlbhgchD7mHMqUNu9if_TqwMJTWHEe4bIqJ7BWXVNZPDfSVs0reH6XlLSQmPGB6RrnATosH5-eh4klKOlOc_2FNGRji-j5iU22smbvldgYgxNk7gQZUrjSCTjKoP6LsTxAiF8kZeI0RCeop8lxll2BlJnaMzqQYGvyG6hB_avtn0r6wKlDeuHUlCwjOJwKvif6OWD_OZJGDu5Jsu8B560VkDqg-COU-deR-39T9pASJ2fhkbBZUU9f3pCjTrAbecDx06I5bHhVjOOWj5KljcAJMTqWZZm-TpaHmM5fSMxHyeqemKdF9TfTPZDpsB0fCaooqpdUylMc_7u5GWN3yEkcKeIorGgxgQYRWH6ueMsEb9yf89cGfutvvrL6lA4fBXkDBxxmvsBhrbezPDX7mZeKqLtPTS0_wbnl8SopxW-daTuz4uKEkXdNPxHOUilyZ0enWXlYe1yzTy7vKRTdhjeP1kNu1gaADd8GeL_C-e25Vd_s71bO1GFdaWde_Pk-DQ0KcSSUuhKCCl6FyJp9n6PejuMomx4WSF2zNE3hKGOPBmttiDLrg9cnDw5RBHsco9hFH5IigfNRb-59-HtL966WhzNNBaeuvg3AJlXKbcl46dn0iO5v_vDSC9j66h5FDTq3LYqiCHEcBRbjkd0DghlbhFmGYxwmRTaji5gWcUFmhhvBFk-0iNIzH4hJL97QkekbYodOg200jE2U59oWs06JxdvbNGmO03C2XcRVFJIkDjCJcRmQgpY5UFNnNMA4LdN4JkjJhF5AeF4UNewW9SbgHkKd8UUURFEYBlGQJUma-XGRZHlSFHkdFmWAAy8JGChF-BaHL9VmpvpO4bzsNhomBddGP0xCYeCbhrHeHdgnndlKtdjx74SJrRQ71sx6_4se_5_PIS3q">