[x265] [PATCH] asm: pixel_avg_32x(64,32,24,8)

dnyaneshwar at multicorewareinc.com dnyaneshwar at multicorewareinc.com
Tue Nov 12 05:56:13 CET 2013


# HG changeset patch
# User Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
# Date 1384232121 -19800
#      Tue Nov 12 10:25:21 2013 +0530
# Node ID 3a959b3acee23d60e96d2261a6c10207c1b7347c
# Parent  1ca01c82609fbb173a665c31adf07c429806d4f1
asm: pixel_avg_32x(64,32,24,8)

diff -r 1ca01c82609f -r 3a959b3acee2 source/common/x86/asm-primitives.cpp
--- a/source/common/x86/asm-primitives.cpp	Mon Nov 11 15:46:00 2013 +0530
+++ b/source/common/x86/asm-primitives.cpp	Tue Nov 12 10:25:21 2013 +0530
@@ -118,7 +118,11 @@
     p.sa8d_inter[LUMA_16x64] = cmp < 16, 64, 16, 16, x265_pixel_sa8d_16x16_ ## cpu >
 
 #define PIXEL_AVG(cpu) \
+    p.pixelavg_pp[LUMA_32x64] = x265_pixel_avg_32x64_ ## cpu; \
+    p.pixelavg_pp[LUMA_32x32] = x265_pixel_avg_32x32_ ## cpu; \
+    p.pixelavg_pp[LUMA_32x24] = x265_pixel_avg_32x24_ ## cpu; \
     p.pixelavg_pp[LUMA_32x16] = x265_pixel_avg_32x16_ ## cpu; \
+    p.pixelavg_pp[LUMA_32x8 ] = x265_pixel_avg_32x8_ ## cpu; \
     p.pixelavg_pp[LUMA_16x64] = x265_pixel_avg_16x64_ ## cpu; \
     p.pixelavg_pp[LUMA_16x32] = x265_pixel_avg_16x32_ ## cpu; \
     p.pixelavg_pp[LUMA_16x16] = x265_pixel_avg_16x16_ ## cpu; \
diff -r 1ca01c82609f -r 3a959b3acee2 source/common/x86/mc-a.asm
--- a/source/common/x86/mc-a.asm	Mon Nov 11 15:46:00 2013 +0530
+++ b/source/common/x86/mc-a.asm	Tue Nov 12 10:25:21 2013 +0530
@@ -727,11 +727,19 @@
 AVGH 16, 4
 
 AVG_FUNC 32, movq, movq
+AVGH 32, 32
+AVGH 32, 24
 AVGH 32, 16
+AVGH 32, 8
 
 INIT_XMM sse2
 AVG_FUNC 32, movdqu, movdqa
+AVGH 32, 64
+AVGH 32, 32
+AVGH 32, 24
 AVGH 32, 16
+AVGH 32, 8
+
 AVG_FUNC 16, movdqu, movdqa
 AVGH 16, 64
 AVGH 16, 32
@@ -743,7 +751,12 @@
 AVGH  8,  8
 AVGH  8,  4
 INIT_XMM ssse3
+AVGH 32, 64
+AVGH 32, 32
+AVGH 32, 24
 AVGH 32, 16
+AVGH 32, 8
+
 AVGH 16, 64
 AVGH 16, 32
 AVGH 16, 16
@@ -761,7 +774,11 @@
 INIT_XMM avx2
 ; TODO: active AVX2 after debug
 ;AVG_FUNC 32, movdqu, movdqa
+;AVGH 32, 64
+;AVGH 32, 32
+;AVGH 32, 24
 ;AVGH 32, 16
+;AVGH 32, 8
 AVG_FUNC 16, movdqu, movdqa
 AVGH 16, 16
 AVGH 16,  8
diff -r 1ca01c82609f -r 3a959b3acee2 source/common/x86/pixel.h
--- a/source/common/x86/pixel.h	Mon Nov 11 15:46:00 2013 +0530
+++ b/source/common/x86/pixel.h	Tue Nov 12 10:25:21 2013 +0530
@@ -238,7 +238,11 @@
     void func ## _mmx2 args; \
     void func ## _sse2 args; \
     void func ## _ssse3 args;
+DECL_SUF(x265_pixel_avg_32x64, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
+DECL_SUF(x265_pixel_avg_32x32, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
+DECL_SUF(x265_pixel_avg_32x24, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_32x16, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
+DECL_SUF(x265_pixel_avg_32x8,  (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_16x64, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_16x32, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_16x16, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))


More information about the x265-devel mailing list