3 #include "m512-check.h"
4 #include "avx512f-os-support.h"
7 #define DO_TEST do_test
9 static void test_256 (void);
10 static void test_128 (void);
12 static void test_512 (void);
15 __attribute__ ((noinline
))
31 unsigned int eax
, ebx
, ecx
, edx
;
33 __cpuid (1, eax
, ebx
, ecx
, edx
);
34 return (ecx
& bit_OSXSAVE
) != 0;
40 unsigned int eax
, ebx
, ecx
, edx
;
42 if (!__get_cpuid_count (7, 0, &eax
, &ebx
, &ecx
, &edx
))
45 /* Run AVX512 test only if host has ISA support. */
47 && (ebx
& bit_AVX512F
)
49 && (ebx
& bit_AVX512VL
)
52 && (ebx
& bit_AVX512ER
)
55 && (ebx
& bit_AVX512CD
)
58 && (ebx
& bit_AVX512DQ
)
61 && (ebx
& bit_AVX512BW
)
64 && (ebx
& bit_AVX512IFMA
)
67 && (ecx
& bit_AVX512VBMI
)
70 && (edx
& bit_AVX5124FMAPS
)
73 && (edx
& bit_AVX5124VNNIW
)
75 #ifdef AVX512VPOPCNTDQ
76 && (ecx
& bit_AVX512VPOPCNTDQ
)
79 && (ecx
& bit_AVX512BITALG
)
85 && (ecx
& bit_AVX512VBMI2
)
88 && (ecx
& bit_AVX512VNNI
)
94 && (ecx
& bit_VPCLMULQDQ
)
96 && avx512f_os_support ())
106 printf ("SKIPPED\n");