aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2023-02-20 02:21:22 -0800
committerlibyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-02-22 21:19:08 +0000
commit88b050f337cc0ca2a51800fe7bf4737222c87344 (patch)
treea4ffa708c5e32fb6b0baffa42823098784bee677 /include
parent2bdc210be9eb11ded16bf3ef1f6cadb0d4dcb0c2 (diff)
downloadlibyuv-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.h3
-rw-r--r--include/libyuv/version.h2
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_