<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61720>61720</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
SPIRV::SPIRVBinary::validate assertion crashed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
thenumbernine
</td>
</tr>
</table>
<pre>
Hello, I crashed llvm, and it asked me to submit a bug, so here it is:
```
>> llvm-spirv "cache/0c2c3f7472583358/bc/solver.bc" -o "cache/0c2c3f7472583358/spv/solver.spv"
llvm-spirv: ./lib/SPIRV/libSPIRV/SPIRVInstruction.h:636: virtual void SPIRV::SPIRVBinary::validate() const: Assertion `(Op1Ty->isTypeInt() || Op2Ty->isTypeFloat()) && "Invalid type for Binary instruction"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llvm-spirv cache/0c2c3f7472583358/bc/solver.bc -o cache/0c2c3f7472583358/spv/solver.spv
1. Running pass 'LLVMToSPIRV' on module 'cache/0c2c3f7472583358/bc/solver.bc'.
#0 0x00007fd268451a61 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe51a61)
#1 0x00007fd26844f78e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe4f78e)
#2 0x00007fd268451f96 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe51f96)
#3 0x00007fd266e3bcf0 (/lib/x86_64-linux-gnu/libc.so.6+0x3bcf0)
#4 0x00007fd266e9226b __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007fd266e9226b __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x00007fd266e9226b pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x00007fd266e3bc46 raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007fd266e227fc abort ./stdlib/abort.c:81:7
#9 0x00007fd266e2271b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007fd266e33596 (/lib/x86_64-linux-gnu/libc.so.6+0x33596)
#11 0x00007fd26e14fa4f SPIRV::SPIRVBinary::validate() const ./build/lib/SPIRV/./lib/SPIRV/libSPIRV/SPIRVInstruction.h:636:7
#12 0x00007fd26e245054 SPIRV::SPIRVInstTemplateBase::create(spv::Op, SPIRV::SPIRVType*, unsigned int, std::vector<unsigned int, std::allocator<unsigned int>> const&, SPIRV::SPIRVBasicBlock*, SPIRV::SPIRVModule*) ./build/lib/SPIRV/./lib/SPIRV/libSPIRV/SPIRVInstruction.h:207:0
#13 0x00007fd26e2541e3 SPIRV::SPIRVModuleImpl::addBinaryInst(spv::Op, SPIRV::SPIRVType*, SPIRV::SPIRVValue*, SPIRV::SPIRVValue*, SPIRV::SPIRVBasicBlock*) ./build/lib/SPIRV/./lib/SPIRV/libSPIRV/SPIRVModule.cpp:1352:0
#14 0x00007fd26e1b2401 SPIRV::LLVMToSPIRVBase::transBinaryInst(llvm::BinaryOperator*, SPIRV::SPIRVBasicBlock*) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:1030:22
#15 0x00007fd26e1b6994 SPIRV::LLVMToSPIRVBase::transValueWithoutDecoration(llvm::Value*, SPIRV::SPIRVBasicBlock*, bool, SPIRV::LLVMToSPIRVBase::FuncTransMode) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:1674:20
#16 0x00007fd26e1af065 SPIRV::LLVMToSPIRVBase::transValue(llvm::Value*, SPIRV::SPIRVBasicBlock*, bool, SPIRV::LLVMToSPIRVBase::FuncTransMode) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:1011:40
#17 0x00007fd26e1c8ba3 llvm::ilist_node_base<false>::getNext() const /usr/lib/llvm-14/include/llvm/ADT/ilist_node_base.h:29:45
#18 0x00007fd26e1c8ba3 llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>>::getNext() /usr/lib/llvm-14/include/llvm/ADT/ilist_node.h:67:66
#19 0x00007fd26e1c8ba3 llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>::operator++() /usr/lib/llvm-14/include/llvm/ADT/ilist_iterator.h:157:25
#20 0x00007fd26e1c8ba3 SPIRV::LLVMToSPIRVBase::transFunction(llvm::Function*) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:3976:21
#21 0x00007fd26e1cb4c8 SPIRV::LLVMToSPIRVBase::translate() ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:4040:17
#22 0x00007fd26e1ae20c SPIRV::LLVMToSPIRVBase::runLLVMToSPIRV(llvm::Module&) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:170:1
#23 0x00007fd26858d306 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf8d306)
#24 0x00007fd26e1ce31c llvm::writeSpirv(llvm::Module*, SPIRV::TranslatorOpts const&, std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) ./build/lib/SPIRV/./lib/SPIRV/SPIRVWriter.cpp:4895:19
#25 0x000055d9813dfc86 convertLLVMToSPIRV ./build/tools/llvm-spirv/./tools/llvm-spirv/llvm-spirv.cpp:328:3
#26 0x000055d9813dfc86 main ./build/tools/llvm-spirv/./tools/llvm-spirv/llvm-spirv.cpp:730:30
#27 0x00007fd266e23510 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#28 0x00007fd266e235c9 call_init ./csu/../csu/libc-start.c:128:20
#29 0x00007fd266e235c9 __libc_start_main ./csu/../csu/libc-start.c:368:5
#30 0x000055d9813e0605 (/usr/bin/llvm-spirv-14+0x26605)
Aborted (core dumped)
```
Here's how the bytecode was compiled:
```
>> clang -v -Xclang -finclude-default-header --target=spirv64-unknown-unknown -emit-llvm -c -o "cache/0c2c3f7472583358/bc/solver.bc" "cache/0c2c3f7472583358/src/solver.clcpp"
Ubuntu clang version 15.0.6
Target: spirv64-unknown-unknown
Thread model: posix
InstalledDir: /usr/bin
(in-process)
"/usr/lib/llvm-15/bin/clang" -cc1 -triple spirv64-unknown-unknown -Wspir-compat -no-opaque-pointers -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name solver.clcpp -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -fno-verbose-asm -mconstructor-aliases -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/home/chris/Projects/lua/hydro-cl -resource-dir /usr/lib/llvm-15/lib/clang/15.0.6 -fdebug-compilation-dir=/home/chris/Projects/lua/hydro-cl -ferror-limit 19 -finclude-default-header -fdeclare-opencl-builtins -fgnuc-version=4.2.1 -fno-threadsafe-statics -fcolor-diagnostics -finclude-default-header -o cache/0c2c3f7472583358/bc/solver.bc -x clcpp cache/0c2c3f7472583358/src/solver.clcpp
clang -cc1 version 15.0.6 based upon LLVM 15.0.6 default target x86_64-pc-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/llvm-15/lib/clang/15.0.6/include
/usr/include
End of search list.
```
The code that was being compiled is 12000 lines long, idk if you want me to post that as well.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWd9z46iT_2uUFwqXhH7ZD3nwJHFtqnZupnZyu_fmQtCyuSDQAXKS__4KJFuS45lJMrMP3yqXJUHTfLrpXwC1VuwUwHWUf4ry2yvaub02124PqmsqMEoouKo0f7n-A6TUEblB94gZavfAkZSHxrdQxZFwiNpH4KgB5DSyXdX4JlR1O09iNdqDAU8mbJSuo_g2io__RTz8-s_0LkrvAnNsW2EOKCKEUbaHiGxiRlhal1lJ8mWa5suIbCoWkY3V8gBm4d8JwvonQ2x7GMeED9LPPU4apWu0iMhGiioim29f7__6u_86vobnvbLOdMwJrRb7KF0XaeEHHoRxHZXooAVH_YB0HaXr8PpJKGpe-oYDlYJTBxFZRmSFmFbWeQZra8F4rsirhSy_tMnDC47SO2EfXlq4V24YEZU3UXmDvrRk2r-Rmg4UgYgUESm8Tu5VmBG5lxZQrQ3qwSAxyuF1QUpUUyGBL3q1fP3zbv3tbraoyECrjfNrvXeuDWtKNhHZ7ITbd9WC6cbrK1hIeODW6P8F5iKyEdZ2YCOy6S1HMdlxQG4PvWWhirJHZyiDYfpvjrJHxLumPVlOvIji1Vejd4Y2iJpd14ByHsTUbt5sNN5i3mMuAULiIfzVKSXUDrXUWhSR8s8___78oAcbKZFWqNG8k-D73mHD5SA5ikgao_g5juO4rDkpllme0CLpXS-YkH2x_ctXI5QLqnrwuovIciQy9GmrrTNAm2AMN0h4E_KmsTwZ-fOy2BYZlkJ1z3inur7DS4STbGH1IonIp_gZAgJvWieIyRxiVpdLuATxr059EztF5R9UcQnGHq34AyjCJDMU5FxR9ar4oID1qpixTqesC0grVsdvYM080yIwDUNmPLM5zxUhRYW229btDVC-fRRSbkXTSvCmTUMw8AFJtU5GZDMlW7AoXWdZlK7LYuSfv4W_cmAUlT_kXC6jdJ3EI-fiEufpsB-yW67O2JWvlJsVyFBhIfCxwWIislmErxfLofXBo9VWPEdkEygDZ1L6EDwyXs4ZE1LWDNHKh63AyvF-8UJTjy3x8o4cVq84JBXaKrmVmvIt1w0V_aoIFYT1zY3dMdqzS5LSQxoW3TtKfCZrmr_JRqeG5IecDMnznHkfJFlNs_rdWSdIUXVC8ldJ76NpsBwhzlwTSJbHefYKoufyAE0rqYNP1ELfxQz0UH3gDS1fWh_Azkf7vBeRte_qVChqeB_kbpB1fBAcmNMmSm--S0Gl1IxeIOqLkj5B9xH0lYapFeyT1OxxgHFO8DlkgtC5-q3qJrG3snhUdzpXd54lkH4Hzn3TykF0znsjuQ8yvkPf511_U9l9pO9Mg7-mpF68BWt90ZCkOZmrKJs7TUWyOJkCmiTy0RadocrOlDQmub75SwsmmM-_IGF4_mOEA3MUK05jv_5klCs_k6tYrbK3yRVW5h_h9rpzt8C0oX05OJHxHYt3gyqt5Rnhxck3nWIPHsBnzeE36KQos-ATo06KuU5oHRf5O3Tyn6eCOPF5LJuooJyrgC0rmk4qNCGFdVulOWyrgOqmptI_7_r-Hbj_gmc3SxgR2XTWnOCEujvJQi4MBf1Y_q9vH3zzfI4-cvlaIMtHnMs34xQhcN2c93FwVAwRLdDp1puxnZHeT7c7N6iXdfriN259yL8k_8cl77NjKFOKUejVW4T26zskpn9X5tedRy3oU3D7FH6_oIyjNEEhSe41QkYzIPEljbzJY70rvYpbY-NvCLrpqvTVDUlGuGcVGKsytnwbXDmWYb-GKosznwqSsegi5CzsAYnZT1GZTs32sBMtHuuX4jdEqDKAHbHOKpZlvuRpXExcQMKOsqF6_Uqt_UwV3YEZixfTqe9j_cAesA4IpmU2OasYGKQJm0B88vJ9C0dHl4CcJ4yHYfW1-dI6OyssT8XofMd-at5u2fNziPBRuq58ztlaZ4TaRekN21MzI_YNW2eocPbY3fv4xZL32O9JfsMyZ8tV7td5osVjfZLnfLVMUl6zZeGlP4BxE8ObTey0lvYYW_rTuX7-ix3jx9Fhid_ApiOG4hKG01buN81ahtIsHXMwOdvnkjRPYrTd-u3d1jpq3JZRKbcnIMx2r3e9w6760qAQS0PxM5H1fA-c5myFwhChhDufp3_1zHFg3u9ig_4mBRU53xYHpjNJLglxkXlaeOZj6D8ddw2LA3ER54MH93mmEmqm75BtPsXPpCji_OSxa7-nB-5HMm0gnB4CHx367Mw5_P8BBiJSWrTXT-E4snpxwDQH9ES9izatkMDH0-uL59ZMUrVD-IDw_wyv9ZAJMYeadtLhPVAOBmHsqNmBi9LbIEiR4U49Kv2kjk-EoREOe1kRZj8_1359FP6Tc3AzGcCkN9zjXuK_q065bpDmAMYKrVCSL-LFULg8DNjX6DvgB7Jw-oMazcGHatSf2oQuX5FQKYHfCuO7Zit8PIJZCoVboxlYOz09IxfLjvxkHgF3uAtgLEHYGdFK-B5ShP_xPdivMHUIK411S_-vA9zqcEJmJwuBKzb96iz4gsYizIWllQRcGwCEmQRqMLUOV1BrA7ii7BEUH-nC8AMYUQtvDFxYRg3HB7_BwIo2YBH2boRrIfsGNF0phBsDIXILrXDQL7KOOsEQbmpDmxP6KL2lUiJc1y1mWjlDmbc5rRCulcZGd4oLtcMNdfu-6QCm0hYwtQ3CTchNvnTUBlMpqA3IeqP0Ccphy6jsZRfPwDEY40ktfqImnI5jDlW324HBrlMhUd3ueBWcpGb6AIbuAPf-1YvDvUXcRmSz1423XbY3wke_r_0dQoi-HfX9L9xozCTCBqzuDAM_9nJRmp--B-vY9PaMcB3w_SqCupdbikY4lKx-4Pg1ByapAaxbUExin3KcUBbheqc6hgd_i9LbbEEWSb8o_TmqpTXgfp1t0J7UBnNBd0rboe17s_7wjuP8QuQZ9Vb2vugR3HMIe97x5oED-X0fR12rFfK5_tg8AEV9OERDidaySZV2TA_Hy6KIkIVPKgRZoIbtUcgoNlwyjgF6Qp_eePr07kf0E7PRLBw5H_cw591vsKrvj5413ymOdH1E5UPJ4gcZ6mEPKCQkt6cuZKUKvIMdcxMSFiUkjmMkhQKLpFbh-lXwRyRq9KI79ESVGy5pW21dz4la9ARSLq74dcpX6YpewXVSlKvlKl1ly6v9dczSLIsznuUpSeMkpjkFlmRxUa_IMqPVlbgmMUnjlJRxnhCyXCRJzFiyKjjLV5RBGWUxNFTIhVfbQpvdVbgGvC6SksRXklYg7fEW2lz3kbbb2SiLQ3wdhznhJFy_5Xwb0dM16nBlfdUZef3x-8qA9f8DAAD__7J8aJg">