================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to