Lines 227-237
asm(
Link Here
|
227 |
// macOS's fat binaries support the "x86_64h" sub-architecture and the GNU libc |
227 |
// macOS's fat binaries support the "x86_64h" sub-architecture and the GNU libc |
228 |
// ELF loader also supports a "haswell/" subdir (e.g., /usr/lib/haswell). |
228 |
// ELF loader also supports a "haswell/" subdir (e.g., /usr/lib/haswell). |
229 |
# define ARCH_HASWELL_MACROS (__AVX2__ + __BMI2__ + __FMA__ + __LZCNT__) |
229 |
# define ARCH_HASWELL_MACROS (__AVX2__ + __BMI2__ + __FMA__ + __LZCNT__) |
230 |
# if ARCH_HASWELL_MACROS != 0 |
230 |
# if ARCH_HASWELL_MACROS == 4 |
231 |
# if ARCH_HASWELL_MACROS != 4 |
|
|
232 |
# error "Please enable all x86-64-v3 extensions; you probably want to use -march=haswell or -march=x86-64-v3 instead of -mavx2" |
233 |
# endif |
234 |
static_assert(ARCH_HASWELL_MACROS, "Undeclared identifiers indicate which features are missing."); |
235 |
# define __haswell__ 1 |
231 |
# define __haswell__ 1 |
236 |
# endif |
232 |
# endif |
237 |
# undef ARCH_HASWELL_MACROS |
233 |
# undef ARCH_HASWELL_MACROS |
Lines 243-253
static_assert(ARCH_HASWELL_MACROS, "Undeclared identifiers indicate which featur
Link Here
|
243 |
// with AVX512 support and it includes all of these too. |
239 |
// with AVX512 support and it includes all of these too. |
244 |
// |
240 |
// |
245 |
# define ARCH_SKX_MACROS (__AVX512F__ + __AVX512BW__ + __AVX512CD__ + __AVX512DQ__ + __AVX512VL__) |
241 |
# define ARCH_SKX_MACROS (__AVX512F__ + __AVX512BW__ + __AVX512CD__ + __AVX512DQ__ + __AVX512VL__) |
246 |
# if ARCH_SKX_MACROS != 0 |
242 |
# if ARCH_SKX_MACROS == 5 |
247 |
# if ARCH_SKX_MACROS != 5 |
|
|
248 |
# error "Please enable all x86-64-v4 extensions; you probably want to use -march=skylake-avx512 or -march=x86-64-v4 instead of -mavx512f" |
249 |
# endif |
250 |
static_assert(ARCH_SKX_MACROS, "Undeclared identifiers indicate which features are missing."); |
251 |
# define __skylake_avx512__ 1 |
243 |
# define __skylake_avx512__ 1 |
252 |
# endif |
244 |
# endif |
253 |
# undef ARCH_SKX_MACROS |
245 |
# undef ARCH_SKX_MACROS |
254 |
- |
|
|