]> granicus.if.org Git - libx264/commitdiff
x86: AVX2 high bit-depth pixel_ssd
authorHenrik Gramner <henrik@gramner.com>
Tue, 16 Apr 2013 21:27:50 +0000 (23:27 +0200)
committerFiona Glaser <fiona@x264.com>
Tue, 23 Apr 2013 21:36:37 +0000 (14:36 -0700)
common/pixel.c
common/x86/pixel-a.asm

index 473ee07db0b7652db7c122945e184bb1c299a1f6..5c94a7fa9549c25fc82ccd920766ab98243a143c 100644 (file)
@@ -989,6 +989,7 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf )
     }
     if( cpu&X264_CPU_AVX2 )
     {
+        INIT2( ssd, _avx2 );
         INIT2( sad, _avx2 );
         INIT2_NAME( sad_aligned, sad, _avx2 );
         INIT2( sad_x3, _avx2 );
index 9d861fb2b250c12ffb9fc9dc2f823ef378d4538b..992e0652ca660e789644d0be9a0ea8ce143c194a 100644 (file)
@@ -150,7 +150,7 @@ cextern hsub_mul
 
 %if HIGH_BIT_DEPTH
 ;-----------------------------------------------------------------------------
-; int pixel_ssd_MxN( uint16_t *, intptr_t, uint16_t *, intptr_t )
+; int pixel_ssd_WxH( uint16_t *, intptr_t, uint16_t *, intptr_t )
 ;-----------------------------------------------------------------------------
 %macro SSD_ONE 2
 cglobal pixel_ssd_%1x%2, 4,7,6
@@ -210,7 +210,7 @@ cglobal pixel_ssd_%1x%2, 4,7,6
     jg .loop
 %endif
     HADDD   m0, m5
-    movd   eax, m0
+    movd   eax, xm0
     RET
 %endmacro
 
@@ -229,6 +229,9 @@ SSD_ONE     8,  8
 SSD_ONE     8, 16
 SSD_ONE    16,  8
 SSD_ONE    16, 16
+INIT_YMM avx2
+SSD_ONE    16,  8
+SSD_ONE    16, 16
 %endif ; HIGH_BIT_DEPTH
 
 %if HIGH_BIT_DEPTH == 0