<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/98663>98663</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang-19 crashed: Assertion `Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP register!"' failed. with `vectorcall` attribute
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
iamanonymouscs
</td>
</tr>
</table>
<pre>
Clang-19 with attribute `vectorcall` enabled.
Compiler explorer(assertion trunck): https://godbolt.org/z/Y5MexoG68
```
$cat mutant.c
__attribute__((vectorcall)) void a(char, long double) {}
$clang-19 mutant.c
mutant.c:1:40: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
1 | __attribute__((vectorcall)) void a(char, long double) {}
| ^
mutant.c:1:53: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
1 | __attribute__((vectorcall)) void a(char, long double) {}
| ^
clang-19: /root/llvm-project/llvm/lib/Target/X86/X86FloatingPoint.cpp:317: unsigned int getFPReg(const llvm::MachineOperand&): Assertion `Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP register!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/lib/llvm-19/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name mutant.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/code/reduce -fcoverage-compilation-dir=/home/code/reduce -resource-dir /usr/lib/llvm-19/lib/clang/19 -internal-isystem /usr/lib/llvm-19/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/mutant-d50567.o -x c mutant.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'mutant.c'.
4. Running pass 'X86 FP Stackifier' on function '@a'
#0 0x00007f39e1884e86 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xe9ee86)
#1 0x00007f39e1882a60 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xe9ca60)
#2 0x00007f39e188554b (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xe9f54b)
#3 0x00007f39e04c6520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f39e46d7e63 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x3cf1e63)
#5 0x00007f39e46d681c (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x3cf081c)
#6 0x00007f39e1c60be8 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x127abe8)
#7 0x00007f39e19d24f4 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xfec4f4)
#8 0x00007f39e19d7d73 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xff1d73)
#9 0x00007f39e19d2c4e llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xfecc4e)
#10 0x00007f39ea2866de clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ddf6de)
#11 0x00007f39ea622ae2 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x217bae2)
#12 0x00007f39e90c5929 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc1e929)
#13 0x00007f39eb115995 clang::FrontendAction::Execute() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2c6e995)
#14 0x00007f39eb086424 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2bdf424)
#15 0x00007f39eb19213e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2ceb13e)
#16 0x00005640e4191ee3 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-19/bin/clang+0x11ee3)
#17 0x00005640e418ef05 (/usr/lib/llvm-19/bin/clang+0xef05)
#18 0x00005640e418e0cb clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-19/bin/clang+0xe0cb)
#19 0x00005640e419c366 main (/usr/lib/llvm-19/bin/clang+0x1c366)
#20 0x00007f39e04add90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#21 0x00007f39e04ade40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#22 0x00005640e418cb95 _start (/usr/lib/llvm-19/bin/clang+0xcb95)
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 19.0.0 (++20240709031326+e42f760b6551-1~exp1~20240709151424.1795)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/mutant-e45fc0.c
clang: note: diagnostic msg: /tmp/mutant-e45fc0.sh
clang: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWUtv47qS_jXMhqAhUe9FFo4ddzfQPQmSnMesDIoqyTwtkRqSSqdncX77gJT8kJN-pE_mXuAGgW2RxaqvivWgiswY0UiAS5RcoWR9wQa7U_pSsI5JJb92ajDcXJSq-nq5aplsSFjgL8LuMLNWi3KwgFEaPAK3SnPWtigNMEhWtlAtULBGwXL8XKmuFy1oDE99qzRoRHNmDGgrlMRWD5J_RrRA0RLvrO0NipaIbhDdNKoqVWsXSjeIbv4X0c1_J5_gSb1L81P-KA2m__GRxpxZ3A2WSbvg4-B2ewC93SKaI5qfAKcFogV-VKLCDNGc75hGdIVbJRtcqaFswc2j7Apl65lkGvO9ZebyDk_RMkTRMg6cdl-YlkI27qfqhLVCNtjuAPdMsw4saCxZB1hIzHA9SO7tU0EtpPA_hcEMr2iE4cmCNG4IJVfkD04jchgyKJkwYoxxiFG2wm-tPfZ_jjNKrl9UOIn-0xXeb7xTDtGNVsoiumnbx470Wv0FfP_ovkSJ6OaB6Qbc6J95On5uWsWcUW6VcLbrexQtozBzLAfpg7PCQlrcgN3c3kHjwCppLPZ8oyWKlp8Y3wkJNz1oJitE0ymSlocAQ2lwBw1G0TWK1tjJ9gs3twH25Ckep1dn0-l-GlF6_dQDt1DhzS3W0AhjXRSHiFJEM1wzcYz524_Xy_trbIayExYzXA4N1tArbbFV5wEu7G4oF1x1J7aaW1AYM4BBdIOZdMbg7VCBdyKumdnhkvHPVjMObgd7Db1WHIyBChs16HHYrWTGKC6Y00EPEhuuRW8nyPeW8c-4Gjpn_3EoWIxbfqtVo1mHmW6GDqQ103YPRh_21SMOC0Q3pZCIbrxnYMJ5iInVom8BP-XpNo1Jz0kr5PBEGjlgAp2wRJV_YeJEV0JjRjCphHEplNQaABPeAtOEGUtKqJUG4vQFWR3pvPRH0KIWoP0wZ7oij6wdgLjwMph0TEhSi3YcOKQqTDoNreLM-QnpVAUt7gXHpBectPAILabjgzCkF4BJV7vAJb3zV9AoWrO2xaTumN0R0FoqTOq6J1xJtycWRWslMamlIloNshKyIY4Wk877sR5cTBLWCmYcznqQX4SsiHWaGRStKSbWRw3h_eCsSNIYEztI8AMNSNAOcAXl0DSg3ZRPOOumKjGp_TjhvgCNWlbCwUZ0s1MduM1SlfvSUA0cMKm5egTNGnjNIg2jrzm6bzvH-OydA9FNWGDijShZS4T5aix0P7_WBcYUCt_jojhrf5LUC2g4R3QzOevBU53EENHNYvH84wXa59JcqtaSP5c6kb7A5_urXy8Ckxq0Vpq0wqUlZ_26kQN3keOKCIrW8YIuQkxq81n0RFWa8B3wz0RI0nS194xWaVIJ1khlrODOX1lVaSMaTNbb7bvVavt--fv1dv3H8m5Dt6vNh-3y_hOK1iEmyiGyXY_oZow-UiVBkmYLhckT5menh3DKPihagapRdO0qpgGNmcUu-FWNXTSPxHQiXqkKxojwTjtORtPk3SBdYOCeGYMRzTb7anvrBj4xyRqX0TOsJO5UNbTgqA6oaDalyvgb_P7MU1cbfCb1mWjidajqiGYoDpj7GisqolGAg6cgCIKsjgoI8zyGPD0pbearGX_caiGtZ_0wZvr8SKTZl60yVgPrfLlauYLpy7er-t_N096BpylRfvz4-6eFUYuwWASIXgVPUADkvpweAIdngClLg5cA3w3yXjSSte-ZrFrQxoN5E0ycpcEMEz3DlCRx-RaC6iQuZ4KiU0FBzNOEBpOgkc8LuaAVJXd8U880pgmdg49PecZplUEa_XPwEa9DSKOZpORMUpqH_E0kBXnIZ5LS2YbwNCghf35g2wegi7_Jkwd5I_fDMx8_DqZv4kUhzVgJ-Qx1NkNdVDSu4xPUm1sHdJ8n_sV4a-BxHc_g5mdwsyqLfgLuJ5_aZmD3Q28EtQ6rbO55xblleQwnUFtoGP86Jboj6A9d3x6A_38CBs5jOAB2SW6WlhnN07QCPJ49PIDrTtir8Rh6M9h-sO615Di9PlbIa9kICVNePiF5D6wCfQ9M891N71zFYH8gfE7qqto7kD-gGl-tfkD0kcnmJZKjae-tFrK5g3o-vLf48ozhZITl5OynSz5IqwcjHuEO6pW0t1ajaHWcfqynoN-IFu79kcW9n9EVNrYaZwYp_meAbX-20tW7_osWFrb7qneyqIKaDa3dVtCChR8sdC-E1y-rtFLSDJ2r4stf8bLx3Zj3_TztVFWdVnNfm1VUllLKgH4Pz-g-vqo-aCbNeED_TYozJ1zeP6yUtPBkfzFQXlaBhlnJgM5UmBXgIuBJQYtTFW7d0W15_zAHeA8dm_yvVKo9fr8VVB5C4RsdR6SzCl6GYVIUySnSjXYmOzj0GOxPwAcLv3iA-YYVeQpFkcywzU4CZZCnMY3neWBsIn6QxjLJYYZuH4H5t5V5Uy8oqzqm8Qx_MrdtQcNonjRHpEc1Hqf37jnqZ2q-ZQBSDmUYzQNwf1pJ0jiAOCxCgAhzHm47JuZ1Z6k1--pyY7TiO6b3KXS5TyKzMbry_bWfhj-92ros4RDMIGZziDnUQfIqlm7BjGN-zjHg5bhZe7X9S8SolNdhOU_vD0q1U345KSWvU9QJnaEqzraCR2mKHZ7X2c8tO-VLg_nBnVVV8cqDOy2qIpjxDM95Qhzg7dYt2xrLtN2eAP9pKRDPpdCzfeJlkeCR_6ts4tYdGO-jDfuGwNhrZWUL2CoMY5RirrqOSVdU8T00HUjrYxX76op9G1aD7xhC9R3GYyewnjLRnuvUL8XV4GUa_6bomA4GMHn0YwBYnKSIScJv5SDtMLGdOhfYhfdi2tArRK9oQOMgC4ogCiPnlVcQ0zpLgzJNkpCEf8NTH_69JwqTMKbxIsxODDT1qaPlS23LiWSngVXYtwwdYa-MeBqnfOZqW6jWQv-wWTq3m1TuzLLExx4L7oyf2bvEP_g_ubaZWtTLh4fl6j1-eH-NNzcfP9788eG_3uHNh4_X9_jhxg9f_fYO313f3tw9HBrDty-1mHPjgv-bbeYDgQbs261QYWYPLH9G_7PmEcRJzYN9u-jXGZjda7fgrTZif2d3UV1GVREV7AIuw4wGeRDHIb3YXSZ5lGcxz6MwzxOW1VkZRBRCiEPK04zxC3E5OnFIwyyMonAR0ZCnWRJFeVRwSBIUB9Ax0S6czy2Ubi78ZcJlkadpdNGyElrj7z4plfAF-0lEKUrWF_rS-2k5NAbFQSuMNUcuVtgWjlei_h4Cqn_Tpct4I_vsHvZw_XUx6Pby129dRls9XtL_CwAA__9lERGD">