<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62569>62569</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLVM 13.0.1: X86 DAG->DAG Instruction Selection bug
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kpamnany
</td>
</tr>
</table>
<pre>
Encountered in Julia 1.8.5 which uses `LLVM: libLLVM-13.0.1 (ORCJIT, skylake-avx512)`.
Reduced by `bugpoint` to:
```bash
$ cat bugpoint-reduced-simplified.ll
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "text"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define hidden void @julia__find_newlines_genericNOT._84137() #0 {
top:
%0 = call <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8> <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 10, i8 91, i8 92, i8 93, i8 15, i8 16, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 10, i8 91, i8 92, i8 93, i8 15, i8 16>, <32 x i8> zeroinitializer)
%res.i61 = icmp eq <32 x i8> zeroinitializer, %0
%res.i = xor <32 x i1> %res.i61, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
%1 = bitcast <32 x i1> %res.i to i32
%2 = xor i32 %1, -1
%3 = call i32 @llvm.cttz.i32(i32 %2, i1 false)
ret void
}
; Function Attrs: nounwind readnone
declare <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8>, <32 x i8>) #1
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare i32 @llvm.cttz.i32(i32, i1 immarg) #2
attributes #0 = { "target-features"="+cx16,-sse3,-pclmul,-ssse3,-fma,-sse4.1,-sse4.2,-movbe,-popcnt,-aes,-xsave,-avx,-f16c,-rdrnd,-fsgsbase,-bmi,-avx2,-bmi2,-rtm,-avx512f,-avx512dq,-rdseed,-adx,-avx512ifma,-clflushopt,-clwb,-avx512pf,-avx512er,-avx512cd,-sha,-avx512bw,-avx512vl,-prefetchwt1,-avx512vbmi,-pku,-waitpkg,-avx512vbmi2,-shstk,-gfni,-vaes,-vpclmulqdq,-avx512vnni,-avx512bitalg,-avx512vpopcntdq,-rdpid,-cldemote,-movdiri,-movdir64b,-enqcmd,-avx512vp2intersect,-serialize,-tsxldtrk,-pconfig,-amx-bf16,-amx-tile,-amx-int8,-sahf,-lzcnt,-sse4a,-prfchw,-xop,-lwp,-fma4,-tbm,-mwaitx,-xsaveopt,-xsavec,-xsaves,-clzero,-wbnoinvd,-avx512bf16,-ptwrite,+sse2,+mmx,+fxsr,+64bit,+cx8" }
attributes #1 = { nounwind readnone }
attributes #2 = { nofree nosync nounwind readnone speculatable willreturn }
!llvm.module.flags = !{!0}
!0 = !{i32 2, !"Debug Info Version", i32 3}
```
Which produces:
```bash
$ llc bugpoint-reduced-simplified.ll
LLVM ERROR: Do not know how to split the result of this operator!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc bugpoint-reduced-simplified.ll
1. Running pass 'Function Pass Manager' on module 'bugpoint-reduced-simplified.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@julia__find_newlines_genericNOT._84137'
#0 0x00007fa20ae3fd01 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3fd01)
#1 0x00007fa20ae3da3e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3da3e)
#2 0x00007fa20ae40236 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe40236)
#3 0x00007fa209842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fa209896a7c __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
#5 0x00007fa209896a7c __pthread_kill_internal ./nptl/./nptl/pthread_kill.c:78:10
#6 0x00007fa209896a7c pthread_kill ./nptl/./nptl/pthread_kill.c:89:10
#7 0x00007fa209842476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007fa2098287f3 abort ./stdlib/./stdlib/abort.c:81:7
#9 0x00007fa20ad7a723 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd7a723)
#10 0x00007fa20ad7a556 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd7a556)
#11 0x00007fa20b580ca7 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x1580ca7)
#12 0x00007fa20b5671ae (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x15671ae)
#13 0x00007fa20b56acef llvm::SelectionDAG::LegalizeTypes() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x156acef)
#14 0x00007fa20b658180 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x1658180)
#15 0x00007fa20b6579f8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x16579f8)
#16 0x00007fa20b655587 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x1655587)
#17 0x00007fa20d5f7a3d (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x35f7a3d)
#18 0x00007fa20b1c62be llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x11c62be)
#19 0x00007fa20af7a3c0 llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf7a3c0)
#20 0x00007fa20af819b3 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf819b3)
#21 0x00007fa20af7af66 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf7af66)
#22 0x0000000000410223 main (/usr/lib/llvm-14/bin/llc+0x410223)
#23 0x00007fa209829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#24 0x00007fa209829e40 call_init ./csu/../csu/libc-start.c:128:20
#25 0x00007fa209829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#26 0x000000000040b065 _start (/usr/lib/llvm-14/bin/llc+0x40b065)
Aborted (core dumped)
```
Cc: @vchuravy
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWd1y27oRfhr6BiMNCf5f-EK2rDRnkibjZE57pwHBpYQjEGQAUJLz9B38SCIVp3F1Tqc3zWSIJYj99sMCWOxaRCm2EQD3QfoQpMs7MuhtJ-93PWkFES93VVe_3D8J2g1Cg4QaMYF-GzgjKJoX8xQdtoxu0aBAoSALP3z4_WMQLxBnlRFnUTwP5xEKcPHp-fG3918D_IjU7oWTHczI_phGOMBlkIXzIFwG4cI9n6EeKNSoejGQ1bDpOyZ0kIVId0HsBwVZ6P5XRG19F04QJRqdNGbSAc0Ua3vOGgb1nHM_Nn5AH7t64PB-iYJ4iQKc_zu9igY4d6qqGySFdcM4CNKC18YajjrA2I3RRG5Ao5powslLN-jTKJi1QbyAWY_zMIgXMbYP8xpNX42UJfYxYyehKYxShIuZKIyQnXSyZPYlwsW1fS1Zz88Mj0W2zpLZIHaiO4gZZ2I4zjZiOGu5Zw0NE4C2rK5BoH3HahQk4R9mzdfrhol6LeDAmQC13oAAyejfP32dr4skivPAcChRgOMQBfmDJ9P152VDKMBpaBlRwjkK4scYoyNiRRA_GTuc79v5scjmZH_E815th2ZeGdjpwPiRFSgy24kVCPs29m3i29S3mW9z3xa-LX0bhddCeYIuT9jlCTw6oUYn2P85jfjJyFMPfQfZMcE0I5x9B2mO2WUBJKg5yyK7DIy2PYJvv1J_tAt3jWERjp28aEd2ec4mPDEWIS0HsJT_L_7FYvw0Wha3qBXTlCj9k2VBukMsxiMtfF5IFmMLYwzMotGQ-HJo7Rh_VKnW3-cGDBdeFXtuDeEKRvtOgrbRxMeafDkOOiYerwZBNesEWmgtlblGRDeIAxM1kkBq0Qk4RSjKiYQbg8cPZ8VHrOgtfBoJgESnXgT9kR1SPdCBE00qDujAOJegBymmrH_uPe841rZEbjyrSWgmWktWDdpctjbEmsCeP9jrx0b8WQNEDxKUienx0jzxAz3aUDVTCkz0mPWUtwN3Pb6raYkfkcyjs2QIzdpuX4FV63oqtJGIwX-cHRXZ2y9kf7QgUUZNK2spatuhNqoiyo6pWuaHYv9qW6lb351GuLmI9TeHpAAsFKmPl4_M06W84YPadr12b4fqMqYfgdn45WVq4dSWXLqqw0XeW7_0EhrQdHvQ0eiTn0K_G0xzIEz3u830O3bgSu-MsGmE1dh7h-2d57-5yXktIdiICtOEjzGd00_e6FntZlpD22nwy1MzyS5illgvgPhG23qMhJnJ4BRQ6y0F0sV286LVkdda7tzu6ETDHIf2OKsat3mMrBmHk8yELiwO2VpP8-9-c5idQ5wTG7q1rj12vR1y6P1eS6zRyi59axx5PO8nv5hWpmdJuWmbW8n6vhIdE_vR9E40e32QzHomwA9KAXZS2x6d0ByVdFKWVEw7kR5N5oTOIWl6zKLzMfvxwP9EBY9UbooY6Do84sjGi9amrPOGk43yaV1k8iwchT9qhKMRJuhgd4tHAcZLqIYNei-aDv0OUrFO2FDxaINTfIE6Jdnu9R821-9lZ9Jj9atUnHP6plTcFAro6fn507MJscsOiU4jk6KibXcwV5XqOdNIbwFJUAPXqGuQ3jKFuh4k0Z00cxpN_fOHp8WXJ6SGqmUaEUMCSeg7qQ3aVuvecserAK82TG-Hak67NsAr42LfzHrZ_WGPyoopNZgNuEJEmPKH8qEGS4dKoraoInSnJaHgi5gvmtAdqof2kvWGc2T_fZbdRpIWEbkZWhDaXipv9VPkQZ4HIZjYoJ4os9ny8zX12XR8JIJsTMDLUSeQ2y-_Km44D3Du2eOfWPlnkaHl4t0siJ-Wi3fovVBaDs7uF-BgJW-0OREyJdPbKwdfXrmbLTyGYRjmDcEhgbipwwjZ1YkXQbxQL8oJnyUT2vr7q1mAABeXQZIc1p3SEkgbYJd6mwBlLtXCLDKrArzyJdGoFFqdS9dkrjpzGT6ER8fgksvYqDClWJMYXqP4PIgvbCMI_xsRNQepziXSDSyMkQkLPGWRhDjOboK2mhPoeAxdFglOcfgGaGpAMwtqVSaYyRSzzEhO0Xrd660JiOsd43xttiWYw0HsHpoHeCV6zQO8GoljjTkN4kViKuQ8u5hK32LKXIiC8LcayW3RHV6MZK8ZGau9Fbkor5Dza-8neYY2yu4kC-pEA2vfXlQNvQlSfafYMcArSZgCi43zIF6MPFNMoXGRNzEilQmPFkrXbn0nL_a7oxoZT1zgyskWrHOS4_iWLeg0z9vFHLHwGjpNb9rdTnMCPTm-VVqElOS3QEdOdYKNp9hZHhG4DduqTrDjK2xCoRmFnXMoXi7euZ4PsLFp3teXHv5E7ImcqQmXyWmusrSIivAnXN5_Ae56H7sa3oFYiPqpZdrQvJ2TMznhlF5xysum-CUn17vg_IEoRh94R3dqcpecr1jaCaXtdXIrY0Nowji7YpymRf5LxnIQn8RHQrdMwInchPEP3_4EZcNoQnkSnOq0yUlc34IdO9UJ9iQ6VRHNcDW-V6_mZVKekUdedcVf4ANHY8JzGvbMPOh4868-G2qnZOy_ztDZHxPE0-DZFFFZxW8g6P4oPt1Lvutmctb2hFx07b0my0bkOGwIffE53oXm-7a_7P-_lqJlMKF4iuLuXxKFGMeoJUx4_MEUkt6KrRiiJMCrign7Tl0GZLUmsFdpFS7rMkTrtcmc1koTqdeUcL62hswNTNXw4yXv04jXlObbIF6k_teBs9Xk2iokof1b3poJpq8NOdGgzyy6vfcjbEBxeAFNXwOdTOW1WbwKHucmAUov2NnU-2EVZilyqP-J_63e2f8Lk8SADVW0k2BrNBiFn2m1-2iIoSAJ93Q7SLJ_QXf1fVyXcUnu4D7KihiXSZKXd9v7OsYRhYZWNErDuqnLMsyLssqqGsoKJ_iO3eMQx2EaplGc5Gk5B1oUNYE4L0NCME6CJISWMD63ZX4nN3e27LzPcJqVd5xUwJX9iQ5jAQdkP5qSPV3eyXs7_WrYqCAJOVNaXVA00xzubYntfoszc3pLLWdK0rtB8vvb62XL_V8BAAD__5xoOQQ">