<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/111325>111325</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SDAG][X86] Assertion `C.getZExtValue() != 0 && C.getZExtValue() != maxUIntN(VT.getScalarSizeInBits()) && "Both cases that could cause potential overflows should have " "already been handled."' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:X86,
crash-on-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
Reproducer:
```
; bin/llc test.ll -o -
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define i64 @test(i64 %conv133.i, i1 %cond) {
entry:
%mul.i.i = mul i64 %conv133.i, 4294967295
%conv135.i = and i64 %mul.i.i, 4294967295
%xor130.1.i = select i1 %cond, i64 %conv135.i, i64 4294967295
ret i64 %xor130.1.i
}
```
```
llc: /home/dtcxzyw/WorkSpace/Projects/compilers/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:48566: llvm::SDValue combineMul(llvm::SDNode*, llvm::SelectionDAG&, llvm::TargetLowering::DAGCombinerInfo&, const llvm::X86Subtarget&): Assertion `C.getZExtValue() != 0 && C.getZExtValue() != maxUIntN(VT.getScalarSizeInBits()) && "Both cases that could cause potential overflows should have " "already been handled."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: bin/llc reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@test'
#0 0x000070e103213fc2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.20.0git+0x213fc2)
#1 0x000070e103210e8f llvm::sys::RunSignalHandlers() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.20.0git+0x210e8f)
#2 0x000070e103210fd5 SignalHandler(int) Signals.cpp:0:0
#3 0x000070e102842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000070e1028969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000070e1028969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000070e1028969fc pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000070e102842476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000070e1028287f3 abort ./stdlib/abort.c:81:7
#9 0x000070e10282871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000070e102839e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x000070e109e7fcb0 combineMul(llvm::SDNode*, llvm::SelectionDAG&, llvm::TargetLowering::DAGCombinerInfo&, llvm::X86Subtarget const&) X86ISelLowering.cpp:0:0
#12 0x000070e105b5d6ea (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x000070e105b5eff3 (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#14 0x000070e105b619c7 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOptLevel) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x1619c7)
#15 0x000070e105dd2940 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d2940)
#16 0x000070e105dd5fc7 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d5fc7)
#17 0x000070e105dd7779 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d7779)
#18 0x000070e105dcbb2a llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3cbb2a)
#19 0x000070e1052401c6 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCodeGen.so.20.0git+0x4401c6)
#20 0x000070e10370a638 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30a638)
#21 0x000070e10370ac51 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30ac51)
#22 0x000070e10370b597 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30b597)
#23 0x000056cf5d581747 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#24 0x000056cf5d574c45 main (bin/llc+0x14c45)
#25 0x000070e102829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x000070e102829e40 call_init ./csu/../csu/libc-start.c:128:20
#27 0x000070e102829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x000056cf5d575aa5 _start (bin/llc+0x15aa5)
Aborted (core dumped)
```
llvm version: b672071ba51ef6b64651a62bcfaf78bdfdb7d3d4
Related commit: https://github.com/llvm/llvm-project/commit/1bc87c9f3cb20a51191f522bf4d69338ad6bb4e6
cc @RKSimon
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWVFz4ygS_jXkhbJLQhKSHvygxOO51GV2U_He3tS9uBAgmwsCFaBMsr_-CiQ7ksfJzezDzlzd1ESRgP66v6ZpGkKsFXvF-Qpk1yBbX5HeHbRZMUef_3j5clVr9rJ64J3RrKfcgKQC0RpEFcDR-H_4TK5hLRRAGykpdNy6pZRwoeFi6HfE7LmDjDgiyYvuHQTJGgKE-KIFScUXHcojkFQJCg__Gc8__RtOw2MhTi8xKkBSxahYNEU0vqnQhI_iOF1s_TCEZqY4IzrJj2Y8F3iH00WvHpX-ohZSqP55sVf9SWp4Mt4IxaHAKQRp5GkCVIQvlFGtnuIkWQqAbqCIxyYGUAlBfj3Ic-XMy8mH0I9pe7kUSxEMaXsJL6GlqExLnKMyGwVPA7JRkih2lBwBL8r5_mdt4iRaxqOk5ZJTNzP4Zm5ENlLC6QVAw91x9Cvw6LJ8fTlW5p9SUpB4SpuDbjlAmzH0ANr8U5vHbUeob703-t-cOgvQhuq2E5IbG8LtqV10Q9_46X-JGqDNb2GmAdp8LvDwvN1yeae_cCPUfkm7DiRVWmTYxwoMokkFkmq7_p3InkOq21oo_qmXABXT7l804wBV3iuT5uBIodW6-ggQnncOphxVD23r6uPNoMHcqkaPMlQr6yaSnwu87Ws3UsEAld7YylpuvDIIcHSz3HP3rw_PLpgNfKyXEKDYT28EgxCG7w1qyfM_bpX7BaDi99_8uC0lkpit-IPfqmvhne6HDxIBDSB0rd0BUmK5he5AHKS6lwxS0lsOO-24coJIqJ-4aaT-YqE9hAEH8sS9uP8h0nDCXmDNuYIHopjkbOmXHMphQ0T4CjFyf_eh2n6Atq9b4SCBdb-HhnfaOOg0PDjXWe8ttAFosxfu0NdLqttJPMyjRFjbcx89w7pRVPaMQ3fgkBpiD7Am9NEZQvmofusIfYSsb7vT2o2WMPy7N3pvSAuJ2fctV87bMcmEhvu0yZZSDmLxKPbQKyXUHnbEWghQvulViB147xs-EUX23Hg3aAVbzXqfqVA-QUP5aBt6A_FzgeG6-rgAyYd19RHeKutMP-g4ReqooDkqByg_pbX8lGqSCEbPURRFecTjKEFx0lA0iVD7YoeXeyOUC776zYRFO1k0hnzZaesMJ-0Y6EK5IaCKP7n07-5-_3Sc27oXkgG0GTy_XJ5ygBS1H7ftOx8tS6uXKFpGe-EAuo6eBy4-tE9k4zOyES-aS2QferUVe0Xk30LcGntaUj-Ujzd3xged82lYBmeW-y1smIuh2Y6ZMQo_J6BkCoSKFGUoGtkOpo176GTv9B3U24iDdUFkZlw6xyxx2VC423Xu4BPD7lFIuRNtJ7lfWiTEqHeF6pwEaDMdtvSbSOrLghy_4mffgq8cN4rId5HzUFNMvIEvIU_F3oUryjO4_Ny5aY7h3ob5CEjD6zEW7ItlvPNB02krngHaGCIsD9go90XPK3Qxh0ZF3iSQ1D53BijHhukLTYN1vvSarP_yK4S4hjsld1ITtmO6JWKYF6ECXd_c2j0lA1wc596kcdr9EovmgEnJS_x9oRRETqHkMWfrtuR5Q-vox-zgl_fuYWMfdnB4uRSZLDjPaLZyszpjmBPvJaK0eml1b6EiLbdDUim_smhoGD3wFv0STiQum5GcmcGbJvluMx56NTNh7L3jT1x-kxXp3AoclzR_a-qmGt7ROp2pqnrgtpc-J58FxY1m_CNXv3buZOxflOInlM7zfBz4z-J_luoyxlCZRm84yIfejFyl2IdWuBD2f-Um9g7DJBCYMcRnDLPmzRB4ZTi0VlJeEyvotdT00c5i4lR5Tdfnz8Df05vxz8_453le_lf-ple_qk-EHoTiR6oz_l_1_TQO8PxmDijmDqB1jcg7Drjje0Jf_tfdEFjO3DDbjjOURjHF8E0m_kAx8cFF8j-E9Zh7zgmngc-UMJqfP_KI4KSYEN7ce47HM9PPSdXwryY20JjxjM950iz-Bp6fwvlwHs1j04_nSLN4xhGdcayzcprE5WTNTtjett1rPvs5mXoiM6bHuinDtMlYVsR5msNR52nK6IGYUHKcVR2DHuX483FLkpJerIxQOteTpzTNYCjJASpONxFD2eD7ZkaeHZBQycoI7na-2N5ZR4zbUSLl7lThU9t_fQYZTzmXhJYHkFTZeCF70orPtfI0gkFGKOHOFQ2vHn0R0IdDRbj4RRM_5JdAZ1QusbgInuS-js1esYszH2eEZHBAveBl33vycuWPVZz5YVQbHm6ROHudhLO70fFK9KmFT9xYn6iSCtY4R1Ee1ySLeYNrnOIsJhjVtCFNXtSsYXXOEpYO0g9cEq-R6rYVzst_9wXZKIo2cU2LnJZNQmsUkSyOy7jJEKqblOEySQrCcF2nfJxbSiFIo4e_b0WrFbxiq4SVSUmu-CrOUYEwRii_OqwiyhBGCclKlBUM5ymL6wSRhjCOo5LHV2KFIpTGfi7jLI_yZREVOSeEZ3mZJjTGII14S4RceruX2uyvwpXeKo7jBGVXktRc2vAXDYRqQh-5YsNxLFwu3gCEwkXfQqvFE5GC-eZsfWVWYwLYW5BGUlhnXzU44WT4K8nW18nZGmTXHjBb__9cxl71Rq7-_G3rODtPK_SfAAAA__-qXNw9">