diff options
author | Frank Barchard <fbarchard@google.com> | 2023-02-20 02:21:22 -0800 |
---|---|---|
committer | libyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-02-22 21:19:08 +0000 |
commit | 88b050f337cc0ca2a51800fe7bf4737222c87344 (patch) | |
tree | a4ffa708c5e32fb6b0baffa42823098784bee677 /include | |
parent | 2bdc210be9eb11ded16bf3ef1f6cadb0d4dcb0c2 (diff) | |
download | libyuv-88b050f337cc0ca2a51800fe7bf4737222c87344.tar.gz |
MergeUV AVX512BW use assembly
- Convert MergeUVRow_AVX512BW to assembly
- Enable MergeUVRow_AVX512BW for Windows with clangcl
- MergeUVRow_AVX2 use vpmovzxbw and vpsllw
- MergeUVRow_16_AVX2 use vpmovzxbw and vpsllw with different shift for U and V
AMD Zen 4 640x360 100000 iterations
Was
AVX512 MergeUVPlane_Opt (884 ms)
AVX2 MergeUVPlane_Opt (945 ms)
AVX2 MergeUVPlane_16_Opt (2167 ms)
Now
AVX512 MergeUVPlane_Opt (865 ms)
AVX2 MergeUVPlane_Opt (943 ms)
SSE2 MergeUVPlane_Opt (973 ms)
AVX2 MergeUVPlane_16_Opt (2102 ms)
Bug: None
Change-Id: I658ada2a75d44c3f93be8bd3ed96f83d5fa2ab8d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4271230
Reviewed-by: Fritz Koenig <frkoenig@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/libyuv/row.h | 3 | ||||
-rw-r--r-- | include/libyuv/version.h | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/include/libyuv/row.h b/include/libyuv/row.h index e1837169..ff6ffe47 100644 --- a/include/libyuv/row.h +++ b/include/libyuv/row.h @@ -402,9 +402,8 @@ extern "C" { // The following are available for AVX512 clang x86 platforms: // TODO(fbarchard): Port to GCC and Visual C // TODO(fbarchard): re-enable HAS_ARGBTORGB24ROW_AVX512VBMI. Issue libyuv:789 -// TODO(fbarchard): Port MERGEUV to assembly #if !defined(LIBYUV_DISABLE_X86) && \ - (defined(__x86_64__) || defined(__i386__)) && (defined(CLANG_HAS_AVX512) && !defined(_MSC_VER)) + (defined(__x86_64__) || defined(__i386__)) && defined(CLANG_HAS_AVX512) #define HAS_ARGBTORGB24ROW_AVX512VBMI #define HAS_MERGEUVROW_AVX512BW #endif diff --git a/include/libyuv/version.h b/include/libyuv/version.h index 3e877f38..42f81662 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 1860 +#define LIBYUV_VERSION 1861 #endif // INCLUDE_LIBYUV_VERSION_H_ |