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

    <tr>
        <th>Summary</th>
        <td>
            opt -passes=indvars -verify-indvars crashes in ScalarEvolution::getRangeRef
        </td>
    </tr>

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

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

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

<pre>
    On this test case:
```ll
define void @f() {
bb:
  %i = load i32, ptr addrspace(7) null
  br label %bb1
bb1:
  %i2 = phi i32 [ 0, %bb ], [ %i3, %bb1 ]
  %i3 = add i32 %i2, 1
  %i4 = icmp ult i32 %i3, %i
  br i1 %i4, label %bb1, label %bb5
bb5:
  ret void
}
```
I get: `opt -passes=indvars -verify-indvars -o /dev/null r.ll`:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/jayfoad2/llvm-debug/bin/opt -passes=indvars -verify-indvars -o /dev/null r.ll
 #0 0x000055c15938718a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/jayfoad2/git/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:11
 #1 0x000055c15938733b PrintStackTraceSignalHandler(void*) /home/jayfoad2/git/llvm-project/llvm/lib/Support/Unix/Signals.inc:676:1
 #2 0x000055c1593858a6 llvm::sys::RunSignalHandlers() /home/jayfoad2/git/llvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x000055c159387b55 SignalHandler(int) /home/jayfoad2/git/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f927bc69520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x000055c155a7b24c llvm::Value::getType() const /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/Value.h:255:34
 #6 0x000055c157c2e021 llvm::SCEVUnknown::getType() const /home/jayfoad2/git/llvm-project/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:600:27
 #7 0x000055c157bd6129 llvm::SCEV::getType() const /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:409:5
 #8 0x000055c157bf1e03 llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:6591:44
 #9 0x000055c157bf30c3 llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:6771:19
#10 0x000055c157bf211a llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:6616:23
#11 0x000055c157c2ef53 llvm::ScalarEvolution::getSignedRange(llvm::SCEV const*) /home/jayfoad2/git/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h:986:12
#12 0x000055c157be775f StrengthenNoWrapFlags(llvm::ScalarEvolution*, llvm::SCEVTypes, llvm::ArrayRef<llvm::SCEV const*>, llvm::SCEV::NoWrapFlags) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:2475:21
#13 0x000055c157be5da1 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int)::$_1::operator()(llvm::ArrayRef<llvm::SCEV const*>) const /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:2558:5
#14 0x000055c157bdb8f6 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:2983:34
#15 0x000055c157bd8649 llvm::ScalarEvolution::getTruncateExpr(llvm::SCEV const*, llvm::Type*, unsigned int) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:1195:9
#16 0x000055c157be4b82 llvm::ScalarEvolution::getTruncateOrNoop(llvm::SCEV const*, llvm::Type*) /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:4705:3
#17 0x000055c158fe022a (anonymous namespace)::IndVarSimplify::run(llvm::Loop*) /home/jayfoad2/git/llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:2197:26
#18 0x000055c158fdf627 llvm::IndVarSimplifyPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) /home/jayfoad2/git/llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:2217:7
#19 0x000055c1598ba577 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&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
#20 0x000055c159a1b322 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&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h:411:7
#21 0x000055c159a19d9a 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&) /home/jayfoad2/git/llvm-project/llvm/lib/Transforms/Scalar/LoopPassManager.cpp:166:10
#22 0x000055c159a19711 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&) /home/jayfoad2/git/llvm-project/llvm/lib/Transforms/Scalar/LoopPassManager.cpp:0:32
#23 0x000055c159845617 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&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
#24 0x000055c159a1a6e3 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/jayfoad2/git/llvm-project/llvm/lib/Transforms/Scalar/LoopPassManager.cpp:308:17
#25 0x000055c1598b8ad7 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
#26 0x000055c1588f1e3a llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManager.h:521:33
#27 0x000055c155eff767 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>&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
#28 0x000055c1588f0b85 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/jayfoad2/git/llvm-project/llvm/lib/IR/PassManager.cpp:124:38
#29 0x000055c155eff337 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
#30 0x000055c1588f10ba llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/jayfoad2/git/llvm-project/llvm/include/llvm/IR/PassManager.h:521:33
#31 0x000055c15563cca7 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) /home/jayfoad2/git/llvm-project/llvm/tools/opt/NewPMDriver.cpp:522:3
#32 0x000055c15566ea3a main /home/jayfoad2/git/llvm-project/llvm/tools/opt/opt.cpp:719:12
#33 0x00007f927bc50d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#34 0x00007f927bc50e40 call_init ./csu/../csu/libc-start.c:128:20
#35 0x00007f927bc50e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#36 0x000055c1556353a5 _start (/home/jayfoad2/llvm-debug/bin/opt+0x578f3a5)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW19T47bX_jTiRkNGliz_ueAiC2TKvGXLLJReMrIlJ2odya8ks_DtfyM5iWMnLKFA22V3hhmcWDo6z6NHR8fyCbNWzpUQJ4B-AvTsiLVuoc3Jn-yx0owfFZo_nvymoFtIC52wDpbMCkCmAJ0BNAUJ6v7quvuCi0oqAe-15BDEqAI4AziHIP3U3S-KTV8IAaYSAnIGa804lAQDfAobZyDj3NiGlQLgLPX9VbseAMLCwJoVovbdiyJa241GhnGw3CykNwwB_QSRNx86QUDPwgf6KbQlmztRuLVlhgQzjPPOjDfsG0fbbeLQRpbLBra12zRcW5Vbnsuo6-FvDVAMP9M1KrqFyggXiF1Rn56N5qD7eAHnwgEyhSBBunHwuGHWCgvImVT8nhkLj--FkdXj8eazhgDPuLgHeOaJhmZS197ezix3H69-PZ9en0PbFkvpIINFO4dGNNo46DRcONdY3xXPAJ7NpVu0xaTUS4BndX2__nfcGP2nKB3AM2ltKyzAM8gUh1KVdcsFdAsBS8PsAhas_MsZVopJN_y1Y-VfkLfLZuMgmgCUXxk9N2wJmZm3S6GcDSTg2UIvBcCzlaLx2gEuinYO8KyQCuDZa5jqpgdggiB6QAghSsuI5iRLo4zBAJpMAZnaR9tdXBmpXIBxYzqR940M-3qnrTOCLQFOvCykcmEJ7UMyl26X0DXNsgB4dt02fmYAnv2u5IP_Qs4Vq-1EqhKQaYIwINMo6kFEYxCEFHDkcWfjF6Z4LQzAWVAlnr6jm2ni3ey9xCMvacaSfVR_adXAWbsOSK91c-1f2XgZRigGZEp7_8iYxYJSOKbtXWc2jsiQsnjlUlrlOC3KJKcYwUDHyuBDltwl8XEtVftwPFdtd6OcWD1JAP6EHmJMMQI4723SbZiUpQWOy61puGV1K7rLuXA3j41Y0V9qZd3Lga-CQ__FxReAZ2GUyQKQKaY-XpK4dzDZdjAtsUA42nLw-vT89nf1l9Jf1Xu6OVWsfrTSB7nrktXMnN_runVSq_OHxghrpVY2IEiQD7s47RGkAwQFTyKcjxC8oeudEp72d6X3GOVDvWdDL6tIILLt5dDKxuEvTM3FF1ENQqCH1PkfYsrpc3aCES_-X8KCOoWtCjkNf2XofJaFhOY-64i39JaPeCCo_AF4SFPPQ7QKDH4TQSMecBSxj89DEvltCpOeh2gcfyp6iB6ug78ByLeo-BtQXhCbQkDKs7Dz4h4SHk6tSFNawWtnhJq7hVCf9R-GNbOaze3Q9RHUnak8Pb_18csOv54awx69IsjpUzSQ811L3dXAl_ebdxynft_BUU8SGZFEOYsOmPcp535HGBK3ZHV9K0qnzcWyqZ8hIjmIi5010bUBOL6LukvdCMOcNt12MnDowCl57z0IU5r1m5AnPR5tlUVWJf9l0t-PmjwjW4mQ54aOuMmSOD-AmxvTqpI5sUvQ00G5y0Km_yTgKMr9CtzagJLRAoyLDL8A72_ms9bNixG_H8I4RSG37REOEsOsEghj5vN5prR6XOrWQsWWYnWMslrgF4rfMnMtl00tq8fVE2erBjh_DcBfA-bGMGUrbZY9HJ-rD8ZeKzXKU_8v6XFlQ1y8SnC6xfXQzBWz9lswRitzTfMlU2wuzGBZdx22W_tvrh1TnBm-7vlF2LZ21lves_Kf6TFse3X5e8OZ84-CyT_ENo4822lP9iBfzbOC0XSbbC4ck_Xq1IJZe6m5qJ9hbc8EDe5fGWGFuRcrgnY2_LeeoreZH3L-w8ps_1N3kEOH70I5YRSrQ8KY-VAT9RLDw1MxFhUEY2gdX-cZPsixoah2JULOtxXUD_0Mtf99MV1LNa9FF8b2OLfhqVXy_1tx17ghiPECPdWqFI37bmnZhsxFxdra3XFRCyc-NOzN3xOh5acMfiAZfEe7yekoKl8o60x4-8K6h_w32nH25zje8a29IGw_cRQNMhwcjbafnOfsg-4lf0i30K3ztj4L666611k_WLbyraR4LJjVw2MSjrhQrxk81kwaRR9UMz_l8Zw8kH_s7s8_8fDVXhbTJHrtI9NHENTPZ7zveVm88hkvHgVMlojt1xyzVpU-H7jR6yU25axx2uzne938RZxvOq24_EdiA0HZiAk6OlDJGH9ZdOjBnx7E4Futu23-nloI_9bEvFKdg7PgLKsiQQ5JAffPxIflMHBHsU-fSX_MjAfHzFRUVZq8haDfjfSf6-HZ9ZCN1gMqMrrl_KXmbS1u9NrRZ-N11-FFJKy6vDZW72h4ldHj2Ks46yHnYxUT8jIVrzGeHkjUW8mwJ-opEf4b7L9OgMNCSR-QUXFIQN43Bx-Qu_2BeFiYSRNSlmxbwqYN-ruSjailGpWNOCPVPNTV7Op3B_0NM3PhLlm5CHbG7zrD3V9lYZh5vFCVDu_Hd1ppXf_WuqZ1M1nvMfKq20_A2VuXEDip27lUO5uDbtyd03q17Lvx_k8q_q1Wt8LISgqzblf4Owf__xtq8UPbrkAZ4Nln8fXq8szI-02ooxgPXgsPK2NpkghGGFwyqV47tm7casw0yoc1QZty11VtKUU8R_DurpZFeWcdM-6uZHV9F9yYADwrbQvwbOIv7aPlovHDqMbVq5rTcaduSYRcu39TPK5opUjECIY-Ukk3Hqi79NaPg_VJGUB4o7g_-9mUtA6MDqDsQ7HXOEnzQYHKsBqVJoQSRmFndVWJe2ixeqjHpWlWEUY3FbnXYr45eoXh0NxbLbURoVxe8E3LTUX_ET8hPCc5OxInUZJmJM0zjI8WJ0nEGUl4SjmqeJQWeRkRIaKqzBDNUZIfyROMMEEE5VFCUoQnCJciiygqMEpxnsUgRmLJZD3xCCbazI9Cpf9JEhGEj8KPHWz41QnGSnyF4SbAGNCzI3MSUBft3IIY1dI621tx0tXi5LCC_fALAmGhVPC5ksOj1tQnf__HCwHV_wIAAP__QXX7CA">