[llvm] [X86] Fix vectorcalls for fp80, fp16, and bloat16 (PR #203913)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 18:24:32 PDT 2026
zero318 wrote:
Agreed that `x86_fp80` shouldn't try to pass in vector registers. Using x87 registers for those seems like the best option.
- It's fairly common to treat `__vectorcall` on MSVC as a "pass in registers" convention since none of its other available conventions for 32 bit code pass any floating point types in registers.
- Existing behavior for clang's `__vectorcall` ABI already attempted to use x87 registers for fp80, which did compile successfully for some `extern` declarations.
- Using `__regcall` functions on x64 windows tends to force full spill/reload of XMM6-XMM15 because they're considered callee saved in the default `ms_abi` convention and `__vectorcall`. So having `__regcall` as the only x87-capable convention wouldn't be ideal.
https://github.com/llvm/llvm-project/pull/203913
More information about the llvm-commits
mailing list