<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122580>122580</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86][ISel] Assertion `(LZ + TZ) < Known.getBitWidth() && "Illegal shifted mask"' 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: https://godbolt.org/z/eqMMqPavq
```
; bin/llc reduced.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"
@g_180 = external global i8
@g_1032 = external global [2 x i32]
define i32 @test(ptr %0) {
entry:
%.b577 = load i1, ptr @g_180, align 4
%1 = select i1 %.b577, i32 1, i32 878456582
store i32 0, ptr @g_1032, align 4
%.b576 = load i1, ptr @g_180, align 4
%2 = select i1 %.b576, i32 1, i32 878456582
%or542.1.i = or i32 %2, %1
store i32 0, ptr @g_1032, align 4
%.b575 = load i1, ptr @g_180, align 4
%3 = select i1 %.b575, i32 1, i32 878456582
%or542.2.i = or i32 %3, %or542.1.i
%or542.3.i = or i32 %or542.2.i, 1
store i32 %or542.3.i, ptr %0, align 4
%4 = load i32, ptr %0, align 4
%div.i1796.i = sdiv i32 %4, 1096912269
%5 = tail call i32 @llvm.ctpop.i32(i32 %div.i1796.i)
ret i32 %5
}
```
```
llc: /root/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:32177: llvm::SDValue LowerCTPOP(llvm::SDValue, const llvm::X86Subtarget&, llvm::SelectionDAG&): Assertion `(LZ + TZ) < Known.getBitWidth() && "Illegal shifted mask"' 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/llc -o /app/output.s <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@test'
#0 0x0000000003ca0728 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3ca0728)
#1 0x0000000003c9e12c SignalHandler(int) Signals.cpp:0:0
#2 0x0000713ac9442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x0000713ac94969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x0000713ac9442476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x0000713ac94287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x0000713ac942871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#7 0x0000713ac9439e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#8 0x000000000204f30f LowerCTPOP(llvm::SDValue, llvm::X86Subtarget const&, llvm::SelectionDAG&) X86ISelLowering.cpp:0:0
#9 0x000000000218da52 llvm::X86TargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x218da52)
#10 0x0000000003938110 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (.part.0) LegalizeDAG.cpp:0:0
#11 0x000000000393bc16 llvm::SelectionDAG::Legalize() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x393bc16)
#12 0x0000000003a53dcd llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a53dcd)
#13 0x0000000003a574b9 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a574b9)
#14 0x0000000003a58760 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a58760)
#15 0x0000000003a4910f llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a4910f)
#16 0x0000000002bda179 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#17 0x00000000031e250f llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31e250f)
#18 0x00000000031e28c1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31e28c1)
#19 0x00000000031e3161 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31e3161)
#20 0x000000000089fc50 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#21 0x0000000000788a0e main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x788a0e)
#22 0x0000713ac9429d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x0000713ac9429e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x0000000000896525 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x896525)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWN9z4ygS_mvIC2UVQr8f_CDHcW7qkpvUZmpval9SCGGZCwYNoEwyf_0VSLYkxzuT7KW2bivrkRD99fe1mm4QMYY3krElSFYgWV-Qzu6UXtaWPv94-X5Rqfpl-Rtrtao7yjSISriztjUgKgHeALxpVF0pYQOlG4A3PwDesG-3t9_uyNM3gEqQouEPlSBawYpLgDdCUKiZA6wDIeBCwQVApSW6YRbWxBJBXlRnIYjWEGDMFnsQlWzR4gyBqIyw_3G34fzWXaWx_1nw40WIcxCVIc4X2xwNV9IPpQfzNF7cu2kYjzys5q1gBw7PefqQxotOPkr1XS4El93zopFdb-L-YtQ8hDnyBuzZMi2JgI1QFRGQ58cZKMJnp4BkheEz5BEGybqHrNmWS-aGIIiRZcYCnLdWQ4ATBHABQbYCqGTS6hf3PlAJ3aOgSrLM-xCK1JCHAF9CbzZQdPdE8EbC-GAT-vmGCUYt5OERxk11_sPDRZ7lcZImuVMNjVW654fmPlCEzzhxiOk7iAGc4PO80p_zctOUTmIchAH3CEr3YcSJJ-YU_0UByfsEROcFJG8VgF8JiAYBR4Fzg-iVwRHIGXrZE91Tu6Man16v1McT5X14fjK55k8BD7MiHeiYmj8dHMaeCCrSIsQ4LQ4mfWQt4QJSIsQh74V42gfUtqoNvNt8QJl4ALgH0cwefCRuCWXr0xI0uRaCumoG8EYrZX1VetovWq3-w-jh1v3DK4A3X3xNAHjzNU_730_3TNyo70xz2QS0bX0pCbPMYXrTqARReb_-nYiOQT_z8svd5zuA81ePXTyoksZOLL_m6X1X2cGvT_iJnc8nruS6vPYPC-e2NIZpNwqdQpzf_AEBXsEvf_haEV3Cf7raFTTMrrj9N6_tDriaV0APkboy90kI1hABzY5vLavhnphHV-JwBreEC1YHAJV3N1fl_RU0XbXnFhJYdQ3UrFXaQqtO2wO3u64KqNpPQjoPNDemYwbgDSSyhlxS0dUM2h2DVBOzgxWhj1YTypzve0voI6y7fdtXPBQAVNxp1Wiyh0Q33Z5Ja4YXq1qHT9W-5YLpBXtuhdJMuzFBZLMgh4CZhdWdfAR4MzaohXIQpG0dUGfbzgbGRdGoTlMGoiuAytB5_62TkssGtsQYCHC26aR_N_DODdwSSRrnM4NKwr2qO9dUcDZDwpnThs-hfc1TuC6vFyC6WpfX8JM0Vnc9_jELBvDtwbGDPzSMrC9EEYLoGR3-iyhBGc4nGWVeTH9xp7m0PspfXMxn6arJ9wdlrGZkP6Qkl7ZPoPx_DDfAK_Q80BqWM8BROCddsBBTeM8bScQ_iKyFA88HDv2wGdYi8v_3KHhAycKI0CKOcYLRQLlf3UNznzR194AGRgWpJ-ZNRlrRHLBIiy2Frd1pRuqHRy7E-9C9_Ygen9KNsxQ2xst7L-04S0fgZA6M82wbQVK5dfsuWG84wqavYMPq3YBhNQJmc8CoYEX6PkBvMgLm0zTCKN5GaPuGkny-GPeV-g0lGZ7vEtPMLGbEwrwmCZ677RvPAaIf9nefW6ZJv_h_xf4Mtb7bfNCyHYj38Xardl5riigPQ7_giFTyZa86AyXZM9P6-lK8JnnjehD_wQa5w93n9kTqv1TNAC6HAhS0RNvA74sPFuvy-iTojl14wq6iYfpn0ZoROHbLjyl2vecxanjGiyRRTes_4eXSqh-9VDW7ZrKU9dWeW_-CP5RkT2MkGZ2QzOKq-CXJfrQUYkUMpyuh6KOZvctjyxzX1kdKcCRHCfGJhDxL0S8l6E5-lreE7rhkB7YzCa-efbAGx3LUkMw1xEWItj_R4DKYvvx_KPFcRyXprARWNQmzaUKdkHFbqomMs_xfE5-UhjN4Z0pENgtvyHAyC-_mztkddnbvpvMhcexJjXHMTynnNHwD5Vu_IZ2__2Hoo-nmNBzpFid0ozCd0hWThJ0Q_7Rvx_X4d5B2tI6k8ayvobzY0gTBwcExkHRHtO9K5bwL39z8fnuppGXPhwInBH2de3jWnlCW5wQxuCdcfpSsHnJUdbI9xkVdvHN77E1GwOgUkMUIPjw4mwdjibYPEzlvdsHiiYv45E2kCU5gD_5RYepBe5eHA6Zles8lcSfj79zuYL8pd6fN-0_X91fXvwNUXg4uoWa205LV7nEYFdPPDxf1MqqLqCAXbBlmUZpkWYLSi92SxjmJWb5NizDHdURrRlO63W7TaJtWLKsv-BIjnKAwDFEa5TgNaooYC6sqDQmqabIFMWJ7wkXgv5so3Vz48_UyxDjJ0YUgFRPGf-zF2J2smaz7naY_5l8CjP2pe6Hk4okIXrvhZH2hl_7UXnWNATES3FgzerDcCv8B2cEka5CsfONM1n_PJ4mLTovlX__sMETmaYn_GwAA__-tEb8r">