libyuv/unit_test
George Steed a038cda7b8 [AArch64] Enable detection of additional architecture features
In particular there are a few extensions that are interesting for us:

* FEAT_DotProd adds 4-way dot-product instructions which are useful in
  e.g. ARGBToY.

* FEAT_I8MM adds additional mixed-sign dot-product instructions which
  could be useful in e.g. ARGBToUV.

* FEAT_SVE and FEAT_SVE2 add support for the Scalable Vector Extension,
  which adds an array of new instructions including new widening loads
  and narrowing stores for dealing with mixed-width integer arithmetic
  efficiently and predication for avoiding the need for "any" cleanup
  loops.

This commit simply adds support for detecting the presence of these
features by extending the existing /proc/cpuinfo parsing, splitting it
into separate Arm and AArch64 functions for simplicity.

Since we have no space left in the bitset entries between Arm and X86
entries, we reuse some of the X86 entries for new AArch64 extensions.
This doesn't seem obviously problematic as long as we avoid setting
kCpuHasX86.

Bug: libyuv:973
Bug: libyuv:977
Change-Id: I8e256225fe12a4ba5da24460f54061e16eab6c57
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5378150
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-04-05 17:48:22 +00:00
..
testdata [AArch64] Enable detection of additional architecture features 2024-04-05 17:48:22 +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_argb_test.cc YUY2ToARGBMatrix and UYVYToARGBMatrix added to allow any color matrix 2024-01-19 21:21:37 +00:00
convert_test.cc AVX10 cpuid detect added 2024-01-10 00:08:22 +00:00
cpu_test.cc [AArch64] Enable detection of additional architecture features 2024-04-05 17:48:22 +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_plane_test.cc Split scale_test and scale_plane_test to allow building on small devices 2023-12-09 18:39:41 +00:00
scale_rgb_test.cc Enable 256x144 scale tests for libyuv 2022-07-13 11:08:29 +00:00
scale_test.cc Split scale_test and scale_plane_test to allow building on small devices 2023-12-09 18:39:41 +00:00
scale_uv_test.cc cpuid for arm/mips/riscv initialize buffer 2023-04-27 22:46:27 +00:00
unit_test.cc Add AMXINT8 cpu detect 2024-02-15 21:44:47 +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