================
@@ -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:
> > 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-only ABI?
not a usermode-only abi. it should apply to uefi, cygwin/msys, win kernel etc
too i think. but i haven't yet finished it. plus other x86_64 os may use the
calling convention too in some specific windows related code
https://github.com/llvm/llvm-project/pull/215585
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits