diff options
Diffstat (limited to 'sysdeps/x86/tst-cpu-features-supports.c')
-rw-r--r-- | sysdeps/x86/tst-cpu-features-supports.c | 184 |
1 files changed, 92 insertions, 92 deletions
diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c index 867ea6b8e8..9d76e6bd3f 100644 --- a/sysdeps/x86/tst-cpu-features-supports.c +++ b/sysdeps/x86/tst-cpu-features-supports.c @@ -20,15 +20,15 @@ #include <stdio.h> int -check_supports (int supports, int usable, const char *supports_name, +check_supports (int supports, int active, const char *supports_name, const char *name) { printf ("Checking %s:\n", name); - printf (" %s: %d\n", name, usable); + printf (" %s: %d\n", name, active); printf (" __builtin_cpu_supports (%s): %d\n", supports_name, supports); - if ((supports != 0) != (usable != 0)) + if ((supports != 0) != (active != 0)) { printf (" *** failure ***\n"); return 1; @@ -37,15 +37,15 @@ check_supports (int supports, int usable, const char *supports_name, return 0; } -#define CHECK_SUPPORTS(str, name) \ +#define CHECK_FEATURE_ACTIVE(str, name) \ check_supports (__builtin_cpu_supports (#str), \ - CPU_FEATURE_USABLE (name), \ - #str, "CPU_FEATURE_USABLE (" #name ")"); + CPU_FEATURE_ACTIVE (name), \ + #str, "CPU_FEATURE_ACTIVE (" #name ")"); -#define CHECK_CPU_SUPPORTS(str, name) \ +#define CHECK_FEATURE_PRESENT(str, name) \ check_supports (__builtin_cpu_supports (#str), \ - HAS_CPU_FEATURE (name), \ - #str, "HAS_CPU_FEATURE (" #name ")"); + CPU_FEATURE_PRESENT (name), \ + #str, "CPU_FEATURE_PRESENT (" #name ")"); static int do_test (int argc, char **argv) @@ -53,140 +53,140 @@ do_test (int argc, char **argv) int fails = 0; #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (adx, ADX); + fails += CHECK_FEATURE_ACTIVE (adx, ADX); #endif #if __GNUC_PREREQ (6, 0) - fails += CHECK_SUPPORTS (aes, AES); + fails += CHECK_FEATURE_ACTIVE (aes, AES); #endif #if __GNUC_PREREQ (11, 1) - fails += CHECK_SUPPORTS (amx-bf16, AMX_BF16); - fails += CHECK_SUPPORTS (amx-int8, AMX_INT8); - fails += CHECK_SUPPORTS (amx-tile, AMX_TILE); + fails += CHECK_FEATURE_ACTIVE (amx-bf16, AMX_BF16); + fails += CHECK_FEATURE_ACTIVE (amx-int8, AMX_INT8); + fails += CHECK_FEATURE_ACTIVE (amx-tile, AMX_TILE); #endif - fails += CHECK_SUPPORTS (avx, AVX); - fails += CHECK_SUPPORTS (avx2, AVX2); + fails += CHECK_FEATURE_ACTIVE (avx, AVX); + fails += CHECK_FEATURE_ACTIVE (avx2, AVX2); #if __GNUC_PREREQ (7, 0) - fails += CHECK_SUPPORTS (avx5124fmaps, AVX512_4FMAPS); - fails += CHECK_SUPPORTS (avx5124vnniw, AVX512_4VNNIW); + fails += CHECK_FEATURE_ACTIVE (avx5124fmaps, AVX512_4FMAPS); + fails += CHECK_FEATURE_ACTIVE (avx5124vnniw, AVX512_4VNNIW); #endif #if __GNUC_PREREQ (10, 0) - fails += CHECK_SUPPORTS (avx512bf16, AVX512_BF16); + fails += CHECK_FEATURE_ACTIVE (avx512bf16, AVX512_BF16); #endif #if __GNUC_PREREQ (8, 0) - fails += CHECK_SUPPORTS (avx512bitalg, AVX512_BITALG); + fails += CHECK_FEATURE_ACTIVE (avx512bitalg, AVX512_BITALG); #endif #if __GNUC_PREREQ (6, 0) - fails += CHECK_SUPPORTS (avx512ifma, AVX512_IFMA); - fails += CHECK_SUPPORTS (avx512vbmi, AVX512_VBMI); + fails += CHECK_FEATURE_ACTIVE (avx512ifma, AVX512_IFMA); + fails += CHECK_FEATURE_ACTIVE (avx512vbmi, AVX512_VBMI); #endif #if __GNUC_PREREQ (8, 0) - fails += CHECK_SUPPORTS (avx512vbmi2, AVX512_VBMI2); - fails += CHECK_SUPPORTS (avx512vnni, AVX512_VNNI); + fails += CHECK_FEATURE_ACTIVE (avx512vbmi2, AVX512_VBMI2); + fails += CHECK_FEATURE_ACTIVE (avx512vnni, AVX512_VNNI); #endif #if __GNUC_PREREQ (10, 0) - fails += CHECK_SUPPORTS (avx512vp2intersect, AVX512_VP2INTERSECT); + fails += CHECK_FEATURE_ACTIVE (avx512vp2intersect, AVX512_VP2INTERSECT); #endif #if __GNUC_PREREQ (7, 0) - fails += CHECK_SUPPORTS (avx512vpopcntdq, AVX512_VPOPCNTDQ); + fails += CHECK_FEATURE_ACTIVE (avx512vpopcntdq, AVX512_VPOPCNTDQ); #endif #if __GNUC_PREREQ (6, 0) - fails += CHECK_SUPPORTS (avx512bw, AVX512BW); - fails += CHECK_SUPPORTS (avx512cd, AVX512CD); - fails += CHECK_SUPPORTS (avx512er, AVX512ER); - fails += CHECK_SUPPORTS (avx512dq, AVX512DQ); + fails += CHECK_FEATURE_ACTIVE (avx512bw, AVX512BW); + fails += CHECK_FEATURE_ACTIVE (avx512cd, AVX512CD); + fails += CHECK_FEATURE_ACTIVE (avx512er, AVX512ER); + fails += CHECK_FEATURE_ACTIVE (avx512dq, AVX512DQ); #endif #if __GNUC_PREREQ (5, 0) - fails += CHECK_SUPPORTS (avx512f, AVX512F); + fails += CHECK_FEATURE_ACTIVE (avx512f, AVX512F); #endif #if __GNUC_PREREQ (6, 0) - fails += CHECK_SUPPORTS (avx512pf, AVX512PF); - fails += CHECK_SUPPORTS (avx512vl, AVX512VL); + fails += CHECK_FEATURE_ACTIVE (avx512pf, AVX512PF); + fails += CHECK_FEATURE_ACTIVE (avx512vl, AVX512VL); #endif #if __GNUC_PREREQ (5, 0) - fails += CHECK_SUPPORTS (bmi, BMI1); - fails += CHECK_SUPPORTS (bmi2, BMI2); + fails += CHECK_FEATURE_ACTIVE (bmi, BMI1); + fails += CHECK_FEATURE_ACTIVE (bmi2, BMI2); #endif #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (cldemote, CLDEMOTE); - fails += CHECK_SUPPORTS (clflushopt, CLFLUSHOPT); - fails += CHECK_SUPPORTS (clwb, CLWB); + fails += CHECK_FEATURE_ACTIVE (cldemote, CLDEMOTE); + fails += CHECK_FEATURE_ACTIVE (clflushopt, CLFLUSHOPT); + fails += CHECK_FEATURE_ACTIVE (clwb, CLWB); #endif - fails += CHECK_SUPPORTS (cmov, CMOV); + fails += CHECK_FEATURE_ACTIVE (cmov, CMOV); #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (cmpxchg16b, CMPXCHG16B); - fails += CHECK_SUPPORTS (cmpxchg8b, CX8); - fails += CHECK_SUPPORTS (enqcmd, ENQCMD); - fails += CHECK_SUPPORTS (f16c, F16C); + fails += CHECK_FEATURE_ACTIVE (cmpxchg16b, CMPXCHG16B); + fails += CHECK_FEATURE_ACTIVE (cmpxchg8b, CX8); + fails += CHECK_FEATURE_ACTIVE (enqcmd, ENQCMD); + fails += CHECK_FEATURE_ACTIVE (f16c, F16C); #endif #if __GNUC_PREREQ (4, 9) - fails += CHECK_SUPPORTS (fma, FMA); - fails += CHECK_SUPPORTS (fma4, FMA4); + fails += CHECK_FEATURE_ACTIVE (fma, FMA); + fails += CHECK_FEATURE_ACTIVE (fma4, FMA4); #endif #if __GNUC_PREREQ (11, 0) - fails += CHECK_CPU_SUPPORTS (fsgsbase, FSGSBASE); - fails += CHECK_SUPPORTS (fxsave, FXSR); + fails += CHECK_FEATURE_PRESENT (fsgsbase, FSGSBASE); + fails += CHECK_FEATURE_ACTIVE (fxsave, FXSR); #endif #if __GNUC_PREREQ (8, 0) - fails += CHECK_SUPPORTS (gfni, GFNI); + fails += CHECK_FEATURE_ACTIVE (gfni, GFNI); #endif #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (hle, HLE); - fails += CHECK_CPU_SUPPORTS (ibt, IBT); - fails += CHECK_SUPPORTS (lahf_lm, LAHF64_SAHF64); - fails += CHECK_CPU_SUPPORTS (lm, LM); - fails += CHECK_SUPPORTS (lwp, LWP); - fails += CHECK_SUPPORTS (lzcnt, LZCNT); -#endif - fails += CHECK_SUPPORTS (mmx, MMX); + fails += CHECK_FEATURE_ACTIVE (hle, HLE); + fails += CHECK_FEATURE_PRESENT (ibt, IBT); + fails += CHECK_FEATURE_ACTIVE (lahf_lm, LAHF64_SAHF64); + fails += CHECK_FEATURE_PRESENT (lm, LM); + fails += CHECK_FEATURE_ACTIVE (lwp, LWP); + fails += CHECK_FEATURE_ACTIVE (lzcnt, LZCNT); +#endif + fails += CHECK_FEATURE_ACTIVE (mmx, MMX); #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (movbe, MOVBE); - fails += CHECK_SUPPORTS (movdiri, MOVDIRI); - fails += CHECK_SUPPORTS (movdir64b, MOVDIR64B); - fails += CHECK_SUPPORTS (osxsave, OSXSAVE); - fails += CHECK_SUPPORTS (pconfig, PCONFIG); - fails += CHECK_SUPPORTS (pku, PKU); -#endif - fails += CHECK_SUPPORTS (popcnt, POPCNT); + fails += CHECK_FEATURE_ACTIVE (movbe, MOVBE); + fails += CHECK_FEATURE_ACTIVE (movdiri, MOVDIRI); + fails += CHECK_FEATURE_ACTIVE (movdir64b, MOVDIR64B); + fails += CHECK_FEATURE_ACTIVE (osxsave, OSXSAVE); + fails += CHECK_FEATURE_ACTIVE (pconfig, PCONFIG); + fails += CHECK_FEATURE_ACTIVE (pku, PKU); +#endif + fails += CHECK_FEATURE_ACTIVE (popcnt, POPCNT); #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (prefetchwt1, PREFETCHWT1); - fails += CHECK_SUPPORTS (ptwrite, PTWRITE); - fails += CHECK_SUPPORTS (rdpid, RDPID); - fails += CHECK_SUPPORTS (rdrnd, RDRAND); - fails += CHECK_SUPPORTS (rdseed, RDSEED); - fails += CHECK_CPU_SUPPORTS (rtm, RTM); - fails += CHECK_SUPPORTS (serialize, SERIALIZE); - fails += CHECK_SUPPORTS (sha, SHA); - fails += CHECK_CPU_SUPPORTS (shstk, SHSTK); -#endif - fails += CHECK_SUPPORTS (sse, SSE); - fails += CHECK_SUPPORTS (sse2, SSE2); - fails += CHECK_SUPPORTS (sse3, SSE3); - fails += CHECK_SUPPORTS (sse4.1, SSE4_1); - fails += CHECK_SUPPORTS (sse4.2, SSE4_2); + fails += CHECK_FEATURE_ACTIVE (prefetchwt1, PREFETCHWT1); + fails += CHECK_FEATURE_ACTIVE (ptwrite, PTWRITE); + fails += CHECK_FEATURE_ACTIVE (rdpid, RDPID); + fails += CHECK_FEATURE_ACTIVE (rdrnd, RDRAND); + fails += CHECK_FEATURE_ACTIVE (rdseed, RDSEED); + fails += CHECK_FEATURE_PRESENT (rtm, RTM); + fails += CHECK_FEATURE_ACTIVE (serialize, SERIALIZE); + fails += CHECK_FEATURE_ACTIVE (sha, SHA); + fails += CHECK_FEATURE_PRESENT (shstk, SHSTK); +#endif + fails += CHECK_FEATURE_ACTIVE (sse, SSE); + fails += CHECK_FEATURE_ACTIVE (sse2, SSE2); + fails += CHECK_FEATURE_ACTIVE (sse3, SSE3); + fails += CHECK_FEATURE_ACTIVE (sse4.1, SSE4_1); + fails += CHECK_FEATURE_ACTIVE (sse4.2, SSE4_2); #if __GNUC_PREREQ (4, 9) - fails += CHECK_SUPPORTS (sse4a, SSE4A); + fails += CHECK_FEATURE_ACTIVE (sse4a, SSE4A); #endif - fails += CHECK_SUPPORTS (ssse3, SSSE3); + fails += CHECK_FEATURE_ACTIVE (ssse3, SSSE3); #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (tbm, TBM); - fails += CHECK_SUPPORTS (tsxldtrk, TSXLDTRK); - fails += CHECK_SUPPORTS (vaes, VAES); + fails += CHECK_FEATURE_ACTIVE (tbm, TBM); + fails += CHECK_FEATURE_ACTIVE (tsxldtrk, TSXLDTRK); + fails += CHECK_FEATURE_ACTIVE (vaes, VAES); #endif #if __GNUC_PREREQ (8, 0) - fails += CHECK_SUPPORTS (vpclmulqdq, VPCLMULQDQ); + fails += CHECK_FEATURE_ACTIVE (vpclmulqdq, VPCLMULQDQ); #endif #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (waitpkg, WAITPKG); - fails += CHECK_SUPPORTS (wbnoinvd, WBNOINVD); + fails += CHECK_FEATURE_ACTIVE (waitpkg, WAITPKG); + fails += CHECK_FEATURE_ACTIVE (wbnoinvd, WBNOINVD); #endif #if __GNUC_PREREQ (4, 9) - fails += CHECK_SUPPORTS (xop, XOP); + fails += CHECK_FEATURE_ACTIVE (xop, XOP); #endif #if __GNUC_PREREQ (11, 0) - fails += CHECK_SUPPORTS (xsave, XSAVE); - fails += CHECK_SUPPORTS (xsavec, XSAVEC); - fails += CHECK_SUPPORTS (xsaveopt, XSAVEOPT); - fails += CHECK_CPU_SUPPORTS (xsaves, XSAVES); + fails += CHECK_FEATURE_ACTIVE (xsave, XSAVE); + fails += CHECK_FEATURE_ACTIVE (xsavec, XSAVEC); + fails += CHECK_FEATURE_ACTIVE (xsaveopt, XSAVEOPT); + fails += CHECK_FEATURE_PRESENT (xsaves, XSAVES); #endif printf ("%d differences between __builtin_cpu_supports and glibc code.\n", |