Frank Barchard 969c96cfb4 BlendPlaneRow_AVX512BW and NEON
CPU / Architecture                 Before (C) After (NEON) Improvement
----------------------------------------------------------------------
Cortex-A53 (Pixel 2 XL Little)        3248 ms       792 ms       4.10x
Cortex-A73 (Pixel 2 XL Big)            432 ms       392 ms       1.10x
Cortex-A55 (Pixel 7 Little)            780 ms       563 ms       1.39x
Cortex-A78 (Pixel 7 Mid)               254 ms       170 ms       1.49x
Cortex-X1 (Pixel 7 Big)                158 ms       129 ms       1.22x
Cortex-A510 (Galaxy S22 Little)        816 ms       441 ms       1.85x
Cortex-A710 (Galaxy S22 Mid)           270 ms       129 ms       2.09x
Cortex-X2 (Galaxy S22 Big)             116 ms        80 ms       1.45x
Cortex-A510 (Galaxy S23 Little)        723 ms       373 ms       1.94x
Cortex-A715 (Galaxy S23 Mid)           183 ms       119 ms       1.54x
Cortex-X3 (Galaxy S23 Big)             122 ms        72 ms       1.69x
Lumix C1 Pro (PD2509 Little)           246 ms       156 ms       1.58x
Lumix C1 Premium (PD2509 Mid)          211 ms       112 ms       1.88x
Lumix C1 Ultra (PD2509 Big)             82 ms        50 ms       1.64x
Oryon-v3M (OnePlus Mid)                233 ms       150 ms       1.55x
Oryon-v3L (OnePlus Big)                103 ms        85 ms       1.21x

On Icelake
Function (1280x720)           C     SSSE3     AVX2   AVX-512BW    Gain
----------------------------------------------------------------------
BlendPlane               901 ms    165 ms   135 ms      115 ms   1.17x
I420Blend               1398 ms    287 ms   198 ms      187 ms   1.06x


Bug: 546077674
Change-Id: I189c44cc757c0e26838a7b6fdb2db1cbe5f96f20
TAG=agy
CONV=0f82c25c-616e-4bb3-beeb-981decb0f40c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8297264
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2026-08-26 17:45:34 -07:00
..
compare_common.cc clang-tidy applied 2021-04-01 21:42:47 +00:00
compare_gcc.cc ARGBToJ444 use 256 for fixed point scale UV 2025-02-27 13:04:15 -08:00
compare_neon64.cc BGRAToI420 use BgraConstants for a direct conversion using AVX512BW 2026-06-08 12:21:47 -07:00
compare_neon.cc Apply format with no code changes 2025-02-24 23:57:01 -08:00
compare_win.cc BGRAToI420 use BgraConstants for a direct conversion using AVX512BW 2026-06-08 12:21:47 -07:00
compare.cc Don't coalesce rows if width*height would overflow 2026-05-29 11:57:47 -07:00
convert_argb.cc STORERGB24 macros for avx512 2026-08-18 14:18:47 -07:00
convert_from_argb.cc Revert "Add the ARGBToRGB565Row_SSE2() function back" 2026-08-17 14:43:10 -07:00
convert_from.cc Harden I21xToI420 against oversize heights 2026-08-08 12:11:18 -07:00
convert_jpeg.cc PlaneScale, UVScale and ARGBScale test 3x and 4x down sample. 2020-10-28 20:41:59 +00:00
convert_to_argb.cc Fix Coverity Control flow issues (DEADCODE) 2026-07-01 10:39:22 -07:00
convert_to_i420.cc Fix int negation overflow in ConvertToARGB/I420 2026-06-05 12:34:38 -07:00
convert.cc I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
cpu_id.cc add bmm detect and vdpphps in util/cpuid 2026-06-09 14:52:48 -07:00
mjpeg_decoder.cc Document why MJPEG databuf size cannot overflow 2026-08-06 12:25:21 -07:00
mjpeg_validate.cc Update to r1732 for more robust jpeg 2019-07-01 22:32:36 +00:00
planar_functions.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
rotate_any.cc Check rotate_any.cc and scale_any.cc for overflows 2026-08-24 11:40:53 -07:00
rotate_argb.cc SVE2 row functions needed for multipass image functions 2026-08-06 12:40:26 -07:00
rotate_common.cc Remove redundant #include <stddef.h> 2026-05-28 17:10:22 -07:00
rotate_gcc.cc Use ptrdiff_t for buffer offsets 2026-04-28 18:21:42 -07:00
rotate_lsx.cc [AArch64] Use full vectors in TransposeWx{8 => 16}_NEON 2024-05-21 07:46:42 +00:00
rotate_neon64.cc Fix integer overflow in multiplications of stride 2026-05-28 14:12:37 -07:00
rotate_neon.cc Fix integer overflow in multiplications of stride 2026-05-28 14:12:37 -07:00
rotate_sme.cc [AArch64] Re-enable SME only for Linux and new versions of Clang 2024-09-23 09:29:53 +00:00
rotate_win.cc BGRAToI420 use BgraConstants for a direct conversion using AVX512BW 2026-06-08 12:21:47 -07:00
rotate.cc SVE2 row functions needed for multipass image functions 2026-08-06 12:40:26 -07:00
row_any.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
row_common.cc Add AVX2 row functions for RGB565, ARGB1555, and ARGB4444 2026-08-24 19:41:39 -07:00
row_gcc.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
row_lasx.cc Change all 1 use wrappers to matrix calls 2026-07-31 17:29:30 -07:00
row_lsx.cc Change all 1 use wrappers to matrix calls 2026-07-31 17:29:30 -07:00
row_neon64.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
row_neon.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
row_rvv.cc I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
row_sme.cc I410ToI420 use 1 step HalfWidthRow function for UV 2026-08-10 18:19:25 -07:00
row_sve.cc AArch64: Avoid INCP in {YUY2,UYVY}ToUVRow_SVE2 2026-08-19 11:25:07 -07:00
row_win.cc BlendPlaneRow_AVX512BW and NEON 2026-08-26 17:45:34 -07:00
scale_any.cc Check rotate_any.cc and scale_any.cc for overflows 2026-08-24 11:40:53 -07:00
scale_argb.cc Scale*BilinearUp: Add invariants assertions and simplify loop 2026-08-13 14:20:11 -07:00
scale_common.cc Fix potential int overflows in ScaleFilterReduce() 2026-08-25 18:53:17 -07:00
scale_gcc.cc Refactor multi-stage SSSE3 scalers into single asm blocks 2026-08-24 18:05:48 -07:00
scale_lsx.cc DetilePlane and unittest for NEON 2022-01-31 20:05:55 +00:00
scale_neon64.cc Apply format with no code changes 2025-02-24 23:57:01 -08:00
scale_neon.cc Apply format with no code changes 2025-02-24 23:57:01 -08:00
scale_rgb.cc Fix Coverity Control flow issues (DEADCODE) 2026-07-01 10:39:22 -07:00
scale_rvv.cc Replace RAWToY/RGB24ToY with RGBToYMatrix 2026-04-21 17:11:14 -07:00
scale_sme.cc Apply clang format 2025-01-02 13:31:20 -08:00
scale_uv.cc Scale*BilinearUp: Add invariants assertions and simplify loop 2026-08-13 14:20:11 -07:00
scale_win.cc BGRAToI420 use BgraConstants for a direct conversion using AVX512BW 2026-06-08 12:21:47 -07:00
scale.cc Fix same-width vertical point upsampling 2026-08-24 19:28:50 -07:00
test.sh Optimze ABGRToI420 for AVX2 2020-06-04 18:24:45 +00:00
video_common.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00