<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62607>62607</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[instcombine] Assertion `!Ty->isIntOrIntVectorTy(1) && "i1 divide not removed?"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</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 -passes='instcombine'
Reproducer: https://godbolt.org/z/3qqGave4c
Stack dump:
```console
opt: /root/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp:1099: llvm::Instruction* llvm::InstCombinerImpl::commonIDivTransforms(llvm::BinaryOperator&): Assertion `!Ty->isIntOrIntVectorTy(1) && "i1 divide not removed?"' 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=instcombine <source>
#0 0x00005556bfc2800f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x363700f)
#1 0x00005556bfc25734 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f0b7564d420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f0b7511a00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007f0b750f9859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007f0b750f9729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007f0b7510afd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x00005556bf7dfcfa llvm::InstCombinerImpl::commonIDivTransforms(llvm::BinaryOperator&) (.part.0) InstCombineMulDivRem.cpp:0:0
#8 0x00005556bf7dfe89 llvm::InstCombinerImpl::visitUDiv(llvm::BinaryOperator&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x31eee89)
#9 0x00005556bf71e737 llvm::InstCombinerImpl::run() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x312d737)
#10 0x00005556bf7225ac combineInstructionsOverFunction(llvm::Function&, llvm::InstructionWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) InstructionCombining.cpp:0:0
#11 0x00005556bf723785 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3132785)
#12 0x00005556bfe4abc6 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3859bc6)
#13 0x00005556bd43414d 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+0xe4314d)
#14 0x00005556bf524d1d llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2f33d1d)
#15 0x00005556bd4188a6 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+0xe278a6)
#16 0x00005556bf522cad llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2f31cad)
#17 0x00005556bcf86415 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+0x995415)
#18 0x00005556bce99d76 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x8a8d76)
#19 0x00007f0b750fb083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#20 0x00005556bcf799ee _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x9889ee)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWF1v2zgW_TXMC2GDIvX54Ac3jmeDnSBB4p19NCjxyuZGIlWScuP--gUlJ5Ucp3U7HmA_AAeOpXsPzz33kKLIrZUbBTBD0ScULa5467bazFbc7bniC93mzl7lWuxnqy3gvN3gL9ziUrdK4HyPl-3Xr7-BwreP2IF1eAMKDHfaILJAZP7YKqwbh79It8WThlsLFrEFoolU1hW6zqUCRJM--pADjdGiLcAgNsdb5xqL2BzRJaLLjRa5rtxUmw2iy6-ILtnnz7_xHYTFEOLJ8eIZi7ZufGZ_Iyb9p9DK6gr6q7pxfhBEl0Zrh-iyqnb1pDH6X1C8_vRfMkd0uTJc2VKb2iK6vFXWXb_yH_66a6uF3D1CPS0aP3xAssyP0UGxOWJzH2zawkmtED2-cUAxt3VT9VcLXdda3S7kbkgg_Zb2SSpu9vfNQXgaI9qNOLcWjB8F-8ppsNpPELuR9la5e3Or3B9QOG1We0TTANEMd5kxRpTKAAu5kwKw0g4bqPUOBGJLRCmiCS65rEBMewkffr-ZP91g2-a1dJh3FjHQaOOw08ftk27b5tNC1wNtx4pLa1vwAmOuBJaqqFoB2G0BF4bbLc558ewML2D6YavJFJHsweiN4TXmZtPWoJw99Nl3nC4LXTeyAjOBl6bSBoy_VnG1mfBX0ezEmVY9I7rMpeoT8UR7CN40_nfrmtZNLZ48DZw9sDVG7Nrq1hSA2E3PDCPKCCYvhBASRVGclwVNCSkHHrB72__zYKRyXXUrX-6o44Z_WWvrDPC6a9o1lsr1LUz_ZI2IfiIvLGYJIaX30Rvv4Ih3lLAQP8mN4tXfuBKVx08PNPrL9jADSPf3BkQPQElJ8iSKQxFSgtdrA9ZpA2vjDlX0k-4ljddxOKmkal8mG9X2Nxq3NcDF1Oop6RgHYUjJiC8bDRMEnJAcGy4tnIFfeOS4Qw4ZIfkIORwhkzJLowzzXJ_FfIBMaRplI-ToGDl56-nZmAkdY8ZjHQgvRfxzmIyVIh5hJiMvJKIsSv7XrGOe6bThxvk-Z_g76-yRy9JjipBmP6S4k1a6fyzk7ixeF5lpAQCk445lY-oBJCz5IXXTqo7SBZlRkbDkjZlfAsZrV0JpxAt8WO4GTzV7vwOzbNXhETeQ8tvFbtU6-Uz8pzbPlbTuXcx8_gi2rZxFdH50x9q2bnzyNS-28C5zxc0G3O8yN9zsb1WpP4h4M-bJmIWupfIWWBl4P8Z942Qtv3LP4hFqbp5vaukcmHeRnypdPC8NfG5BFQc6RwU9GF3KCp7aun5j3IW0qtuuiX7BH6b8rnXzFtjPlIOgvVmk2ryfKb6pwVFTWZJGp-32wK0duu2Mvs4Vr_ZW2juu-Mbv6K5PJLGbS08qRpM0GlmXjqqEkOdFPOApwHF5mEq-zDstoDrN9p1vh-ocdREsmB2IXgWwv6aN__wXiJ5GWV7EI9HZUHQRsjAIxQVE72K_V9uvyvz_2z0IWRCKUfPC0YyJaCiCYfPutGgrWOlXSr4pc8Eb_4g8WXCf8FPlHlIuXSwtGRPBuNpobNUgTfnPrQ-v5V2fqdGlvPZNo4-c9p8jPNAk5eMlIj5yGS24OGOqn1L7f0UlWrKg4GN7jnbcRZnGYTB8SJu289aDbKDqTiQGhT05I9XmEcpT3vxgI3THi22HM__BRqrbgL6L0rq6716Pl7I6AfKnbn9QztwYvvdXhw3qNKnajVTvVnfduLXT-jCl-_H-LpX4XtQfYGQpwbzG5f7O2d8X80eWRWEw3t2M3nYKyDKRxLjmUl1qzJSnIhnP3OzoZTUnKcPrtX93XFvHjVsPCJz7-hqSlA1HoWRs_CTLAHCPfzE90zTzG_rDqNcHJGzAtUaBQGyOA5YdnSNeiRkTGcv4FcyCOGVRxNIouNrO0iJICiCRIHHIMxoGNMxFEJMwKnJO0_xKziihjEQkDVhEomAKDFgelTzIaZDRGFBIoOaymnojTrXZXHWnYrOYxiS5qngOlX09rzWz7gAtbzcWhcS_N9lvaU66qjvZHZ62Rou__GTwqjXV7NeP_ro6_x0AAP__MT4F8w">