From 2bdc210be9eb11ded16bf3ef1f6cadb0d4dcb0c2 Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Mon, 13 Feb 2023 10:52:58 -0800 Subject: MergeUV_AVX512BW for I420ToNV12 On Skylake Xeon 640x360 100000 iterations AVX512 MergeUVPlane_Opt (1196 ms) AVX2 MergeUVPlane_Opt (1565 ms) SSE2 MergeUVPlane_Opt (1780 ms) Pixel 7 MergeUVPlane_Opt (1177 ms) Bug: None Change-Id: If47d4fa957cf27781bba5fd6a2f0bf554101a5c6 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4242247 Commit-Queue: Frank Barchard Reviewed-by: richard winterton --- source/planar_functions.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/planar_functions.cc') diff --git a/source/planar_functions.cc b/source/planar_functions.cc index e08a44f6..0f89d269 100644 --- a/source/planar_functions.cc +++ b/source/planar_functions.cc @@ -599,6 +599,14 @@ void MergeUVPlane(const uint8_t* src_u, } } #endif +#if defined(HAS_MERGEUVROW_AVX512BW) + if (TestCpuFlag(kCpuHasAVX512BW)) { + MergeUVRow = MergeUVRow_Any_AVX512BW; + if (IS_ALIGNED(width, 32)) { + MergeUVRow = MergeUVRow_AVX512BW; + } + } +#endif #if defined(HAS_MERGEUVROW_NEON) if (TestCpuFlag(kCpuHasNEON)) { MergeUVRow = MergeUVRow_Any_NEON; -- cgit v1.2.3