aboutsummaryrefslogtreecommitdiff
path: root/source/scale_argb.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2022-01-13 23:26:03 -0800
committerlibyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-01-14 09:17:33 +0000
commit90ffd5cba97a10fd606ded4580b7fbcba070f868 (patch)
tree74d7c5894345133820cd4599b5752ad4cac998cc /source/scale_argb.cc
parentcdd62da6703947d29f471d6d0a92d1b4f325df79 (diff)
downloadlibyuv-90ffd5cba97a10fd606ded4580b7fbcba070f868.tar.gz
I420ToARGB for AVX512
On Skylake Xeon AVX512 I420ToARGB_Opt (2050 ms) AVX2 I420ToARGB_Opt (2533 ms) SSSE3 I420ToARGB_Opt (3688 ms) Bug: libyuv:911 Change-Id: I2214cc15dec24b06541895ca59d88990edbb2216 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3382100 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Diffstat (limited to 'source/scale_argb.cc')
-rw-r--r--source/scale_argb.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/scale_argb.cc b/source/scale_argb.cc
index 66b69d8f..ddad6db7 100644
--- a/source/scale_argb.cc
+++ b/source/scale_argb.cc
@@ -611,6 +611,14 @@ static void ScaleYUVToARGBBilinearUp(int src_width,
}
}
#endif
+#if defined(HAS_I422TOARGBROW_AVX512BW)
+ if (TestCpuFlag(kCpuHasAVX512BW | kCpuHasAVX512VL) == (kCpuHasAVX512BW | kCpuHasAVX512VL)) {
+ I422ToARGBRow = I422ToARGBRow_Any_AVX512BW;
+ if (IS_ALIGNED(src_width, 32)) {
+ I422ToARGBRow = I422ToARGBRow_AVX512BW;
+ }
+ }
+#endif
#if defined(HAS_I422TOARGBROW_NEON)
if (TestCpuFlag(kCpuHasNEON)) {
I422ToARGBRow = I422ToARGBRow_Any_NEON;