Frank Barchard 44d9bc68f2 STOREAR30 remove initial shift by 4
- reduced shifts to isolate 10 bits
- permi2w instead of packlwd to combine words (ARG) (GB) into ARGB
- vpternlogd to combine A,R,G into 1 register

Saphhire Rapids 10000 iterations of 1280x720P:
Conversion Kernel     │   Was     │    Now     │  Speedup
──────────────────────┼────────────────────────┼────────────────
I420ToAR30_Opt        │  1675 ms  │   1568 ms  │    +7.1%
H420ToAR30_Opt        │  1632 ms  │   1555 ms  │    +5.2%
I210ToAR30_Opt        │  2459 ms  │   2167 ms  │   +13.5%
P010ToAR30_Opt        │  2054 ms  │   1926 ms  │    +6.6%
P016ToAR30_Opt        │  2043 ms  │   1938 ms  │    +5.4%
Total Test Suite Time │ 9,866 ms  │  9,155 ms  │    +7.8% overall

Bug: None
Change-Id: I7972f98408a65a2bb51c506145e4c0c63824c424
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8259796
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2026-08-21 11:57:41 -07:00
..
basic_types.h Disable old int types by default. 2018-07-09 21:16:47 +00:00
compare_row.h Deprecate MIPS and MSA support. 2025-10-16 12:20:40 -07:00
compare.h Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
convert_argb.h Add ABGR versions of the ArgbConstants structures 2026-03-17 17:28:51 -07:00
convert_from_argb.h Export the ARGBToNV21Matrix() function 2026-08-05 19:19:46 -07:00
convert_from.h Add 10/12 bit YUV To YUV functions 2021-02-25 23:16:54 +00:00
convert.h Unittests use ASSERT instead of EXPECT 2026-05-11 19:10:47 -07:00
cpu_id.h add bmm detect and vdpphps in util/cpuid 2026-06-09 14:52:48 -07:00
cpu_support.h Make RGBToY a 1 pass avx512bw 2026-08-03 17:53:19 -07:00
loongson_intrinsics.h RAWToJ400 faster version for ARM 2022-03-18 07:22:36 +00:00
mjpeg_decoder.h add YUV24 and AYUV formats 2019-03-05 02:53:56 +00:00
planar_functions.h Replace RAWToY/RGB24ToY with RGBToYMatrix 2026-04-21 17:11:14 -07:00
rotate_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_row.h Deprecate MIPS and MSA support. 2025-10-16 12:20:40 -07:00
rotate.h Add 10 bit rotate methods. 2023-01-04 21:10:01 +00:00
row_sve.h ARGBToYMatrixRow_SVE2 fix for ARGBToI400 2026-08-16 16:31:32 -07:00
row.h STOREAR30 remove initial shift by 4 2026-08-21 11:57:41 -07:00
scale_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_rgb.h RGBScale function using 3 steps: RGB24ToARGB, ARGBScale, ARGBToRGB24 2022-03-19 01:44:06 +00:00
scale_row.h I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
scale_uv.h add yuvconvstants util 2021-02-12 19:45:16 +00:00
scale.h Add NV24 scaling support to libyuv 2024-12-12 02:46:11 -08:00
version.h STOREAR30 remove initial shift by 4 2026-08-21 11:57:41 -07:00
video_common.h Add support for AR64 format 2021-03-13 20:55:21 +00:00