[clang] [llvm] [X86] Add WinCall Calling Convention and x86_64apx-windows(-gnu/-msvc) triplets (PR #215585)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 11 12:48:13 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);
----------------
trcrsired wrote:
"What do you think about pass i128/i256/i512 (_BitInt) arguments via XMM/YMM/ZMM?"
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. Just use GPRs when we can.
https://github.com/llvm/llvm-project/pull/215585
More information about the cfe-commits
mailing list