[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