libyuv/unit_test
Frank Barchard 331c361581 AVX-VNNI detect
- Add kCpuHasAVXVNNI flag
- Remove deprecated GFNI detect to make space.

Meteor Lake has AVX-VNNI but not AVX512
~/intelsde/sde -mtl -- blaze-bin/third_party/libyuv/libyuv_test --gunit_filter=*CpuHas
doyuv3

Note: Google Test filter = *CpuHas
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from LibYUVBaseTest
[ RUN      ] LibYUVBaseTest.TestCpuHas
Cpu Flags 0x203ff1
Has X86 0x10
Has SSE2 0x20
Has SSSE3 0x40
Has SSE41 0x80
Has SSE42 0x100
Has AVX 0x200
Has AVX2 0x400
Has ERMS 0x800
Has FMA3 0x1000
Has F16C 0x2000
Has AVX512BW 0x0
Has AVX512VL 0x0
Has AVX512VNNI 0x0
Has AVX512VBMI 0x0
Has AVX512VBMI2 0x0
Has AVX512VBITALG 0x0
Has AVX512VPOPCNTDQ 0x0
HAS AVXVNNI 0x200000
Has AVXVNNIINT8 0x0


AVX-VNNI detect

- Add kCpuHasAVXVNNI flag
- Remove deprecated GFNI detect to make space.

https://bugs.chromium.org/p/libyuv/issues/detail?id=967

Meteor Lake has AVX-VNNI but not AVX512
~/intelsde/sde -mtl -- blaze-bin/third_party/libyuv/libyuv_test --gunit_filter=*CpuHas
doyuv3
Note: Google Test filter = *CpuHas
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from LibYUVBaseTest
[ RUN      ] LibYUVBaseTest.TestCpuHas
Cpu Flags 0x203ff1
Has X86 0x10
Has SSE2 0x20
Has SSSE3 0x40
Has SSE41 0x80
Has SSE42 0x100
Has AVX 0x200
Has AVX2 0x400
Has ERMS 0x800
Has FMA3 0x1000
Has F16C 0x2000
Has AVX512BW 0x0
Has AVX512VL 0x0
Has AVX512VNNI 0x0
Has AVX512VBMI 0x0
Has AVX512VBMI2 0x0
Has AVX512VBITALG 0x0
Has AVX512VPOPCNTDQ 0x0
HAS AVXVNNI 0x200000
Has AVXVNNIINT8 0x0

Running on all cpus the following report avx-vnni
grep 'AVXVNNI 0x2' */*
adl/libyuv64.txt:HAS AVXVNNI 0x200000
gnr/libyuv64.txt:HAS AVXVNNI 0x200000
grr/libyuv64.txt:HAS AVXVNNI 0x200000
mtl/libyuv64.txt:HAS AVXVNNI 0x200000
rpl/libyuv64.txt:HAS AVXVNNI 0x200000
spr/libyuv64.txt:HAS AVXVNNI 0x200000
srf/libyuv64.txt:HAS AVXVNNI 0x200000

while these support avx512 vnni
grep 'VNNI 0x1' */*
clx/libyuv64.txt:Has AVX512VNNI 0x10000
cpx/libyuv64.txt:Has AVX512VNNI 0x10000
gnr/libyuv64.txt:Has AVX512VNNI 0x10000
icl/libyuv64.txt:Has AVX512VNNI 0x10000
icx/libyuv64.txt:Has AVX512VNNI 0x10000
spr/libyuv64.txt:Has AVX512VNNI 0x10000
tgl/libyuv64.txt:Has AVX512VNNI 0x10000

and these support avx-vnni-int8
grep AVXVNNIINT8.0x4 */*
grr/libyuv64.txt:Has AVXVNNIINT8 0x400000
srf/libyuv64.txt:Has AVXVNNIINT8 0x400000

Bug: libyuv:967
Change-Id: I84cd71d1b320e7c284173eb695fc1d3b72d14ddb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4912017
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2023-10-05 21:24:09 +00:00
..
testdata Add riscv cpu info detection. 2023-04-06 15:58:29 +00:00
basictypes_test.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
color_test.cc YUY2ToNV12 using YUY2ToY and YUY2ToNVUV 2022-09-30 22:41:21 +00:00
compare_test.cc fix compare row test for avx2 which does 64 bytes per loop 2021-04-06 22:37:25 +00:00
convert_test.cc Add macro for I012ToAB30Matrix 2023-06-02 01:05:40 +00:00
cpu_test.cc AVX-VNNI detect 2023-10-05 21:24:09 +00:00
cpu_thread_test.cc clamp C functions use compare 2020-07-16 22:03:34 +00:00
math_test.cc Disable tests via macro that refer to row.h 2019-08-20 18:44:36 +00:00
planar_test.cc ARGBAttenuate use (a + b + 255) >> 8 2023-06-16 21:37:53 +00:00
rotate_argb_test.cc Add 10 bit rotate methods. 2023-01-04 21:10:01 +00:00
rotate_test.cc Transpose 4x4 for SSE2 and AVX2 2023-03-03 17:46:23 +00:00
scale_argb_test.cc Enable 256x144 scale tests for libyuv 2022-07-13 11:08:29 +00:00
scale_rgb_test.cc Enable 256x144 scale tests for libyuv 2022-07-13 11:08:29 +00:00
scale_test.cc Fix warnings for missing prototypes 2023-06-30 17:46:56 +00:00
scale_uv_test.cc cpuid for arm/mips/riscv initialize buffer 2023-04-27 22:46:27 +00:00
unit_test.cc AVX-VNNI detect 2023-10-05 21:24:09 +00:00
unit_test.h I422Rotate take stride for temporary buffers 2023-01-04 23:11:52 +00:00
video_common_test.cc Add support for AR64 format 2021-03-13 20:55:21 +00:00