<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJztWltz2jgY_TXwoglj5PsDD5Qms5lttpkmm31kZFsGbWXJK8lJs79-P9ncZEgg23S2zZYBA5Z0vss5-rCQM1k8Tji_r1Auq4qZgT9FAQlwTnHoJcnAez_wpp9orWTR5BQ9MLOELt1pJGuDzriU9ZmiSnKOziQa4IuC3sNRNHAiy9hZFERxMuK8G7RG1A03GyQAsoZHIxjHWQbHW0WELqWqNHy5yQknCj58AFufWlPXROtRXtcwLPIiO_hesgKsJ0RI8VjJRiNBKqprktMBTq0pf7od333P4RPNzbXUmmWcXt6BtcRmY9sdIKcDPHsp8k1FOL8U2qgmN0yKOzAjFaBE3RA01Zoq24IGkTfAYwswk8IAxOVd1y-CN3whG1Eg8yCRTTSw1HZBUvBHdHkHHQY4RiVhnBajLpnXH86nN-dINxnwiQjKmgVStJbKICPR0phaWx_xBTyhTY9swCOpFvAdETDGRM6bgiKzpChXRC9RRvLPRkG8KxM3Bk6goqnqDYUeNKXXSi4UqRBRi6aiwlhDYJ_x4gzSYe0xAcd_oxvo4HvI--KtHziPvaz00ZYu_ai7D9eKCdP6eKtaknY4VeRhLoEWSqo2yTMI1wAnluCDng7wO-_LypjlbuPN2PUmoklED3nzqRE3bCEI_wWSy6myGjvBYIvnGMT98Ms4Qg40QK6i6U6vp4jXvjZA_gooLkkR-WkcR5Da-VxRDRqlcxCKZgvS6naU7w8PdoePPUL8JEaKME1RG5qdwlHQvecjLUdRG5IfQT8noLAHlJE4QSSzSn0WKIZ-DlDUA_LHJIKASDvH5nZ2zDNyxD1cwiAHNe6j4hAfgYAeDkTiUEbGkAH60lKiGvFR2JN7taktTSk6WBV7nKWuI15Jkgy5aFuIjd0DFtspsz05BZU9aqaviCALEKA_6w-Y9czAvBQFUcV6ZPdToC2yf76Hf2SE2_f66ve6IMbOg-j4DOuSsKHLzmi3wJRJOs6LHQMFNSClVY2BPF3JgvITQt7JrNN2DTOOqnu6iozqb5zb10ksIL0RfeTKaNOUZb_IWSk41d0PoiQNyh2sj7WtjsRlf59P_3yXbiuZk_Lw_TN_w8SC065YHHBOm6I70Qj2V0PntXGD6M8kuPLJqb0I_EHTshtyQUsCo-ZQG6ihbzlstPN6qhT8VML_SQk_Uv2f9Upzt1qzyxZia_sp1xCr3wXnGgL3fzjC2H-jPwJ_MLOUjbFYv8HawYZG91fQP5ImTuAb6HT49nt8xzlc9b9Nvt84tZY5h9rAXQ5EOaZfuxx4C3L4uYb5jkT93Bom7JWmNA92F_0XjWj_47mV1gOrzGlBaiPV4dysu78oP5tBq7iPz0LrpDMLo96iPPHCl83CreOzk6J_LX3vxI6eVNwrZfU5GcROAn0aQwZPKEmH0_a9BPz8fztdkI6MnL_ivMyLCX4NGX277L01GaY9GWY5JjuGIOENp7dyDXq0HnUDXuTwasjJIrIu7ooIO38QgoQCnL5MRGunZydG_loi2ET-tAReIZ_P0I_HPfqjNDjlOvlQwv77QI8JxwbnCAe7wklzz8c7tsFFm4BrVlPOhLtjdWMUE4tPtDykmr0obolaUHNF8mWLMz3U-oFliqjHS1HKy6rm-72k5B8bUzfmgvEDIF_V_EQ4U6XIoz27m_Zt3349hFzPDRjqvnXmfmWieK7XHVWsZFSt-2W25ej7EbI7Kh2u_V6RoIUXoIowcQSp7egg9Xba0igMQzSf212nuTZEmfka9uk9KQxjHNCwJ8U4iHPUwR0L1XbdYE3tRt3upv4gfLe7bzta_D0I3wOiu-W8YGbZZKNcVtZXS1X3dlYr-SfNwdRFCbqx-_5xEkTjKLaO9HA38bTH2yXTCJ6St7wyg9podLd7DQpq71uwzd1mtEalkhXStEbYw94IvaOlVHbDm5h219vZnC45WQA6ZCI2SNFcLgT7mxajYTHxi9RPyZA0ZinVpGKfCeVLySsqho3ikxcHzrRu2shDf4yT4XJCoyID6tMi9ElJ8zCMgjEuKCV-EuZlRoecZJTrCaR-gLGgD6iFsLcFhO-HX-8Bm0CCsDe2jyAM_VGS4jQax1lMSUgK4g0Cj4IG-eYmgqFqbyc5s3cWQCNn2mzvMBhCjWMLQWnrMHhomOF0snc_QMsb1R1t3-JOiWEb56QN8h-lD9Mo>53128</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            opt -loop-reroll crashes with Assertion `!LoopControlIV && "Found two loop control only IV"' 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: 4a42ce25088
Reproduce with:
 opt -loop-reroll -o /dev/null bbi-64678.ll

Result:
opt: ../lib/Transforms/Scalar/LoopRerollPass.cpp:606: void (anonymous namespace)::LoopReroll::collectPossibleIVs(llvm::Loop *, (anonymous namespace)::LoopReroll::SmallInstructionVector &): Assertion `!LoopControlIV && "Found two loop control only IV"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: build-all/bin/opt -loop-reroll -o /dev/null bbi-64678.ll
 #0 0x0000000002c70bf3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x2c70bf3)
 #1 0x0000000002c6e86e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x2c6e86e)
 #2 0x0000000002c70f76 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fad63977630 __restore_rt sigaction.c:0:0
 #4 0x00007fad610aa387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007fad610aba78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00007fad610a31a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00007fad610a3252 (/lib64/libc.so.6+0x2f252)
 #8 0x0000000002a1387e (anonymous namespace)::LoopReroll::runOnLoop(llvm::Loop*) LoopRerollPass.cpp:0:0
 #9 0x0000000002a0fa8b llvm::LoopRerollPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (build-all/bin/opt+0x2a0fa8b)
#10 0x0000000002f891cd llvm::detail::PassModel<llvm::Loop, llvm::LoopRerollPass, 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
#11 0x000000000346894f 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&) (build-all/bin/opt+0x346894f)
#12 0x0000000003468573 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&) (build-all/bin/opt+0x3468573)
#13 0x0000000003467c38 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&) (build-all/bin/opt+0x3467c38)
#14 0x0000000002f6c2ed 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
#15 0x0000000003469c4b llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x3469c4b)
#16 0x0000000002f8805d llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) crtstuff.c:0:0
#17 0x00000000023e7805 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x23e7805)
#18 0x0000000000b07a2d 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
#19 0x00000000023ebc2a llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x23ebc2a)
#20 0x00000000007a429d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) crtstuff.c:0:0
#21 0x00000000023e6948 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x23e6948)
#22 0x000000000079c032 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) (build-all/bin/opt+0x79c032)
#23 0x00000000007aed04 main (build-all/bin/opt+0x7aed04)
#24 0x00007fad61096555 __libc_start_main (/lib64/libc.so.6+0x22555)
#25 0x000000000079747c _start (build-all/bin/opt+0x79747c)
Abort

[bbi-64678.ll.gz](https://github.com/llvm/llvm-project/files/7846167/bbi-64678.ll.gz)

This is old, it starts crashing with old builds from sep 2020. Before that the -loop-reroll flag isn't recognized.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltz2jgU_jXwogljfPcDD5Qms5lttkySzT4ysi2DtrLkleSk6a_vkc3FMiSQbTrbZsuAAeuc79w-HSzkVOSPE8buS5SJsqR64E2Rj303I27gxPHAeT9wptekkiKvM4IeqF6BSHsaiUqjMyZEdSaJFIyhM4EG7kVO7uHIaziRpvQs9MMoHjHWKm0QVc30FgmAjOHRCPQYTeF4KzFXhZClgi83GWZYwocPYOu6MTXHSo2yqgK10AmN8r2gOViPMRf8sRS1QhyXRFU4IwM3Maa86U6__Z7BJ5LpuVCKpoxc3oG12GRjJw6Q04E7eynyTYkZu-RKyzrTVPA7MCMkoIStCpoqRaQZQYPQGbhjAzATXAPE5V0rF8KbeyFqniP9IJBJNFSpEUGCs0d0eQcCAzdCBaaM5KM2mfMP59Obc6TqFOqJMErrJZKkElIjLdBK60oZH90LeMKYGpmAR0Iu4TvCYIzyjNU5QXpFUCaxWqEUZ5-0hHjXJm40nEB5XVbbEjowlMylWEpcIiyXdUm4NobAPmX5GaTD2KMcjv-GNyDgOcj57GwebhY5aeGhXbnUo2o_zCXluvHxVjZF6tRU4oeFgLIQXDZJnkG4GmpiCnzQ04H7zvm8NmZqt_VmbHsTkjgkh7y5rvkNXXLMfoPkMiINx04w2OBZBt1--EUUIgsaINfRtKc3U8RpXlsgbw0UFTgPvSSKQkjtYiGJAo6SBRBF0SVueDvK9tX9rvrYwdiLIyQxVQQ1oZkpHPrtezZSYhQ2IXkhyFkBBT2gFEcxwqlh6rNAEchZQGEPyBvjEALCzRxbmNmxSPER99wClCzUqI_qBu4RCJCwIGKrZHgMGSAvbSWy5h-5ObnXm5rWlKCDXbFXs8R2xClwnCIbbQextXvAYjNldienwLJHRdUV5ngJBPRmfYVZzwzMS55jmW80258CZZC98z38Ixq27PzqzyrH2syD8PgMa5OwLZeZ0XaDKeJknOUdAznRQKV1j4E8XYmcsBNC7mTWGpvDjCPynqwjI-o75_Z1EgtIb4QfmdRK10XRb3KGClZ39_wwTvyig_WxMt0R29Xfr6d33i23ocxJefjxK39D-ZKRtlkccE7pvD1Rc_pPTRaVtoPozyS48smIuQj8SdPSDTknBQatBfQGoslbDht1Xk-1gl9M-D8x4Wfq_7Nea25Xa2bZgk1vP-UaYv27YF1DuP0fjiDy3uiPwF9Ur0StDdYfsHYwoZH9FfTPxIkT6g3ltOrt9eodZXDV_zbr_cZLaypnlda3lwNh5pJvXQ68BTr8WsP8QKR-bg0T9FpTkvndRf9FzZv_eG6F8cAwc5rjSgt5ODcb8RflZ6u0jvv4LDROWrMw7C3KYyd42SzcOT47KfrX4ncndvQk414pq8_RILIS6JEIMnhCSzqcth8l4Of_22mDtGhk_RXnpE6E3deg0ffL3lujYdKjYZq5uGMIEl4zcis2oEf7UavwIofXKieTyLjYJZFr_UEIFPLd5GUk2jg9OzHy1yLBNvKnKfAK-Xym_O64V_4w8U-5Tj6UsP8-0GPEMcFZxHFt4iSZ47kd2-CiScCcVoRRbu9Y3WhJ-fKaFIdYsxfFLZZLoq9wtmpwpodGP9BUYvl4yQtxWVZsX0oI9rHWVa0vKDsA8k3DT4QzlRI_mrPdtO9k-_0Qcr3QYKj91pr7nfL8Oak7ImlBidzIpWbk6PuRYreltGrt9ZoEyR0flZjyI0iNoIXU22lLwiAI0GJhdp0WSmOpFxvYp_ekXNCxQIMeFSM_ylALdyxUI7rFmpqNuu6m_iB41923HS2_DIL3gGhvOS-pXtXpKBOl8dWUqn07q6T4m2Rg6qIA3ph9_yj2w3EYGUd6uNt4muPtiioET8GaulKNmmhUu3sNDGruWzDD7Wa0QoUUJVKkQq7jOiP0jhRCmg1vrJtdb2tzumB4CeiQiUgjSTKx5PQLyUfDfOLliZfgoaaakcnernZjnajW-PfY7x_Wkk1enF2qVN2kN_DGbjxcTfKAYFy4JMa5nyTjwk_HWZjFwKYo8fMkHzKcEqYmUF-wz8kDaiCML8H7IZ1ADl1nbB5-EHijOHGTcBylEcEBzrEz8B0CNGXb-wyGsrnj5MzcfACDjCq9uwlhCG2QLjkhjTnAx7VeCTkp6SdM2EqwkvBhY3_S-P8VOZi9Mw">