[clang] [llvm] [X86] Add WinCall Calling Convention and x86_64apx-windows(-gnu/-msvc) triplets (PR #215585)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 11 12:58:58 PDT 2026
================
@@ -164,6 +164,9 @@ bool X86TargetInfo::initFeatureMap(
for (const char *Sub :
{"egpr", "push2pop2", "ppx", "ndd", "ccmp", "nf", "zu", "jmpabs"})
setFeatureEnabled(Features, Sub, true);
+ // APX (EVEX) implies AVX-512, and WinCall expects every instruction to be
+ // EVEX-encoded so that no vzeroupper is needed at WinCall boundaries.
+ setFeatureEnabled(Features, "avx512f", true);
----------------
Andarwinux wrote:
> Very bad. we should avoid floating point registers as much as possible. Many kernels have strict rules on banning floating point registers. Plus fp registers can have latency issues and others. Always just use GPRs before using MM registers.
On recent AVX-512 CPUs, ZMM instructions no longer cause throttling as they did in the past.
> Many kernels have strict rules on banning floating point registers.
I thought x86_64apx is a usermode ABI?
https://github.com/llvm/llvm-project/pull/215585
More information about the llvm-commits
mailing list