From: James Almer Date: Wed, 9 Apr 2014 06:33:06 +0000 (-0300) Subject: x86: XOP pixel_sad_{x3, x4} high bit-depth X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a5831aa256b3161f898d2577d2eb8daa838d88d2;p=libx264 x86: XOP pixel_sad_{x3, x4} high bit-depth --- diff --git a/common/pixel.c b/common/pixel.c index 78356c9d..17a01428 100644 --- a/common/pixel.c +++ b/common/pixel.c @@ -1021,6 +1021,8 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf ) } if( cpu&X264_CPU_XOP ) { + INIT5( sad_x3, _xop ); + INIT5( sad_x4, _xop ); pixf->ssd_nv12_core = x264_pixel_ssd_nv12_core_xop; pixf->var[PIXEL_16x16] = x264_pixel_var_16x16_xop; pixf->var[PIXEL_8x8] = x264_pixel_var_8x8_xop; diff --git a/common/x86/pixel.h b/common/x86/pixel.h index 0ff68bab..7342a9b9 100644 --- a/common/x86/pixel.h +++ b/common/x86/pixel.h @@ -56,6 +56,7 @@ DECL_X4( sad, mmx2 ) DECL_X4( sad, sse2 ) DECL_X4( sad, sse3 ) DECL_X4( sad, ssse3 ) +DECL_X4( sad, xop ) DECL_X4( sad, avx ) DECL_X4( sad, avx2 ) DECL_X1( ssd, mmx ) diff --git a/common/x86/sad16-a.asm b/common/x86/sad16-a.asm index ebfe9b5c..5b5e9c8a 100644 --- a/common/x86/sad16-a.asm +++ b/common/x86/sad16-a.asm @@ -519,6 +519,19 @@ SAD_X 4, 16, 8 SAD_X 4, 8, 16 SAD_X 4, 8, 8 SAD_X 4, 8, 4 +INIT_XMM xop +%define XMM_REGS 7 +SAD_X 3, 16, 16 +SAD_X 3, 16, 8 +SAD_X 3, 8, 16 +SAD_X 3, 8, 8 +SAD_X 3, 8, 4 +%define XMM_REGS 9 +SAD_X 4, 16, 16 +SAD_X 4, 16, 8 +SAD_X 4, 8, 16 +SAD_X 4, 8, 8 +SAD_X 4, 8, 4 INIT_YMM avx2 %define XMM_REGS 7 SAD_X 3, 16, 16