diff options
author | Frank Barchard <fbarchard@google.com> | 2017-11-06 12:29:30 -0800 |
---|---|---|
committer | Frank Barchard <fbarchard@google.com> | 2017-11-07 00:56:37 +0000 |
commit | 522fd699e6753edb810bccb3e75d620237e2da45 (patch) | |
tree | 5f595e37ac35a92b35c24ae42821d50708d18989 /util/cpuid.c | |
parent | afa98e1f0870af15fb4125eb5beda6727df35ad6 (diff) | |
download | libyuv-522fd699e6753edb810bccb3e75d620237e2da45.tar.gz |
AVX512 feature detects for cnl and icl
Key instruction sets added for each microarchitecture:
AVX512BW, AVX512VL, AVX512DQ - skylake server or later
AVX512_VBMI, AVX512_IFMA - cannon lake or later
AVX512_BITALG, AVX512_VBMI2, AVX512_VPOPCNTDQ, AVX512_VNNI, GFNI, VAES, VPCLMULQDQ - ice lake or later
Bug: libyuv:752
Test: ~/intelsde/sde -icl -- out/Release/libyuv_unittest --gtest_filter=*Cpu*
Change-Id: I9ee28904c90009d66721b9f805a440c5fc2da122
Reviewed-on: https://chromium-review.googlesource.com/755617
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'util/cpuid.c')
-rw-r--r-- | util/cpuid.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/util/cpuid.c b/util/cpuid.c index 1e007a3e..9ff618e0 100644 --- a/util/cpuid.c +++ b/util/cpuid.c @@ -79,20 +79,32 @@ int main(int argc, const char* argv[]) { int has_sse42 = TestCpuFlag(kCpuHasSSE42); int has_avx = TestCpuFlag(kCpuHasAVX); int has_avx2 = TestCpuFlag(kCpuHasAVX2); - int has_avx3 = TestCpuFlag(kCpuHasAVX3); int has_erms = TestCpuFlag(kCpuHasERMS); int has_fma3 = TestCpuFlag(kCpuHasFMA3); - int has_f16c = TestCpuFlag(kCpuHasF16C); + int has_f16c = TestCpuFlag(kCpuHasF16C); + int has_gfni = TestCpuFlag(kCpuHasGFNI); + int has_avx512bw = TestCpuFlag(kCpuHasAVX512BW); + int has_avx512vl = TestCpuFlag(kCpuHasAVX512VL); + int has_avx512vbmi = TestCpuFlag(kCpuHasAVX512VBMI); + int has_avx512vbmi2 = TestCpuFlag(kCpuHasAVX512VBMI2); + int has_avx512vbitalg = TestCpuFlag(kCpuHasAVX512VBITALG); + int has_avx512vpopcntdq = TestCpuFlag(kCpuHasAVX512VPOPCNTDQ); printf("Has SSE2 %x\n", has_sse2); printf("Has SSSE3 %x\n", has_ssse3); printf("Has SSE4.1 %x\n", has_sse41); printf("Has SSE4.2 %x\n", has_sse42); printf("Has AVX %x\n", has_avx); printf("Has AVX2 %x\n", has_avx2); - printf("Has AVX3 %x\n", has_avx3); printf("Has ERMS %x\n", has_erms); printf("Has FMA3 %x\n", has_fma3); printf("Has F16C %x\n", has_f16c); + printf("Has GFNI %x\n", has_gfni); + printf("Has AVX512BW %x\n", has_avx512bw); + printf("Has AVX512VL %x\n", has_avx512vl); + printf("Has AVX512VBMI %x\n", has_avx512vbmi); + printf("Has AVX512VBMI2 %x\n", has_avx512vbmi2); + printf("Has AVX512VBITALG %x\n", has_avx512vbitalg); + printf("Has AVX512VPOPCNTDQ %x\n", has_avx512vpopcntdq); } return 0; } |