diff options
author | Frank Barchard <fbarchard@google.com> | 2018-03-09 15:20:40 -0800 |
---|---|---|
committer | Frank Barchard <fbarchard@chromium.org> | 2018-03-10 02:04:48 +0000 |
commit | 83aa7512c1d2de46f1378279029d80a213dba67e (patch) | |
tree | 16c6aaab7ccab7a7ac39c3e4545d9dd3cb5e3478 /source/convert_from_argb.cc | |
parent | 004954c96976eff9954cbc98fac421565b971723 (diff) | |
download | libyuv-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.cc | 8 |
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; |