It would be one thing if Intel did this while AMD had processors that worked on it.. but they didn't. And code cannot tell the future. That's why we have programmers. They're supposed to change the code when it needs to be changed.
It would be one thing if Intel did this while AMD had processors that worked on it.. but they didn't. And code cannot tell the future. That's why we have programmers. They're supposed to change the code when it needs to be changed.
This is false. Zen was introduced in Q1 2017, before that patch was written and it already implemented all the useful parts of the Skylake instruction set (and also the SHA extension not implemented by Skylake). The fact that the CPU vendor should not be used when testing for CPU features was already discussed a lot, many years ago, so someone of the library maintainers should have noticed this bug and removed the inappropriate test.
About AMD not supporting yet AVX-512, that is far less annoying than the fact that Intel does not support AVX-512 yet in any of their CPUs which are actually competitive in their target market (Ice Lake is worse than Comet Lake, Cascade Lake is worse than Epyc 2).
Only Knights Landing, Knights Mill, Skylake Server, Cascade Lake, Cannon Lake and Ice Lake support AVX-512.
What is called "Skylake Server" in the Intel documents, includes products sold under various names, i.e. Xeon Scalable, Xeon W, Xeon D-2xxx and Skylake-X (HEDT).
I assume that you were thinking about Skylake X, but those processors are a very small fraction of a percent in comparison with all the processors using the Skylake microarchitecture, which were sold since 2015 until now, so one should never use "Skylake" to speak about "Skylake Server" a.k.a. "Skylake X", because this is very misleading.
In this case it doesn't need to, I believe. There are ways to find out at runtime which instruction sets are supported, in a vendor-agnostic way.