aboutsummaryrefslogtreecommitdiff
path: root/source/convert_from_argb.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2018-03-09 15:20:40 -0800
committerFrank Barchard <fbarchard@chromium.org>2018-03-10 02:04:48 +0000
commit83aa7512c1d2de46f1378279029d80a213dba67e (patch)
tree16c6aaab7ccab7a7ac39c3e4545d9dd3cb5e3478 /source/convert_from_argb.cc
parent004954c96976eff9954cbc98fac421565b971723 (diff)
downloadlibyuv-83aa7512c1d2de46f1378279029d80a213dba67e.tar.gz
AVX512 VMBI version of ARGBToRGB24
Use VMBI instructions but on AVX2 registers to avoid clockrate change. Bug: libyuv:778 Test: LibYUVConvertTest.NV21ToRGB24_Opt Change-Id: Id4f8ad1e0e142a380c8a46c5eab90ce145a10edd Reviewed-on: https://chromium-review.googlesource.com/956609 Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'source/convert_from_argb.cc')
-rw-r--r--source/convert_from_argb.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/convert_from_argb.cc b/source/convert_from_argb.cc
index 37adb5e7..2a36d6d8 100644
--- a/source/convert_from_argb.cc
+++ b/source/convert_from_argb.cc
@@ -887,6 +887,14 @@ int ARGBToRGB24(const uint8_t* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTORGB24ROW_AVX512VBMI)
+ if (TestCpuFlag(kCpuHasAVX512VBMI)) {
+ ARGBToRGB24Row = ARGBToRGB24Row_Any_AVX512VBMI;
+ if (IS_ALIGNED(width, 32)) {
+ ARGBToRGB24Row = ARGBToRGB24Row_AVX512VBMI;
+ }
+ }
+#endif
#if defined(HAS_ARGBTORGB24ROW_NEON)
if (TestCpuFlag(kCpuHasNEON)) {
ARGBToRGB24Row = ARGBToRGB24Row_Any_NEON;