diff options
author | Frank Barchard <fbarchard@chromium.org> | 2018-03-07 16:06:27 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2018-03-08 02:38:21 +0000 |
commit | 1d509f2178748b22b7eed0b8b76377991646b20a (patch) | |
tree | b1d985213af564f27937c3be62f7833bad5c0fcb /source/convert_from_argb.cc | |
parent | 3009890c11340af704e6367af0ce6e1d2b65864c (diff) | |
download | libyuv-1d509f2178748b22b7eed0b8b76377991646b20a.tar.gz |
ARGBToRGB24_AVX2 version
AVX2 port of SSSE3 conversion to output 24 bit RGB
Bug: libyuv:778
Test: LibYUVConvertTest.NV21ToRGB24_Opt
Change-Id: I14f7815522d1b790ecd2bb39d9a3441e803b694a
Reviewed-on: https://chromium-review.googlesource.com/953303
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'source/convert_from_argb.cc')
-rw-r--r-- | source/convert_from_argb.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/convert_from_argb.cc b/source/convert_from_argb.cc index 16b83845..37adb5e7 100644 --- a/source/convert_from_argb.cc +++ b/source/convert_from_argb.cc @@ -879,6 +879,14 @@ int ARGBToRGB24(const uint8_t* src_argb, } } #endif +#if defined(HAS_ARGBTORGB24ROW_AVX2) + if (TestCpuFlag(kCpuHasAVX2)) { + ARGBToRGB24Row = ARGBToRGB24Row_Any_AVX2; + if (IS_ALIGNED(width, 32)) { + ARGBToRGB24Row = ARGBToRGB24Row_AVX2; + } + } +#endif #if defined(HAS_ARGBTORGB24ROW_NEON) if (TestCpuFlag(kCpuHasNEON)) { ARGBToRGB24Row = ARGBToRGB24Row_Any_NEON; @@ -937,6 +945,14 @@ int ARGBToRAW(const uint8_t* src_argb, } } #endif +#if defined(HAS_ARGBTORAWROW_AVX2) + if (TestCpuFlag(kCpuHasAVX2)) { + ARGBToRAWRow = ARGBToRAWRow_Any_AVX2; + if (IS_ALIGNED(width, 32)) { + ARGBToRAWRow = ARGBToRAWRow_AVX2; + } + } +#endif #if defined(HAS_ARGBTORAWROW_NEON) if (TestCpuFlag(kCpuHasNEON)) { ARGBToRAWRow = ARGBToRAWRow_Any_NEON; |