]> git.sesse.net Git - x264/commitdiff
x86: Don't use explicitly aligned versions of SAD on AVX CPUs
authorHenrik Gramner <henrik@gramner.com>
Fri, 3 May 2013 21:06:10 +0000 (23:06 +0200)
committerFiona Glaser <fiona@x264.com>
Fri, 17 May 2013 16:26:49 +0000 (09:26 -0700)
On modern CPUs movdqu isn't slower than movdqa when used on aligned data and using the same code in both cases saves cache.

This was already done for the high bit-depth AVX2 implementation but the aligned version still exists as dead code so remove that.

common/pixel.c
common/x86/pixel.h
common/x86/sad16-a.asm

index 2b5e4317bbcc294112d5f83614f6d877abf527ad..f5db938bbae72cd624ed080645fad7f926c76ce2 100644 (file)
@@ -966,6 +966,7 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf )
     }
     if( cpu&X264_CPU_AVX )
     {
+        INIT5_NAME( sad_aligned, sad, _ssse3 ); /* AVX-capable CPUs doesn't benefit from an aligned version */
         INIT_ADS( _avx );
         INIT6( satd, _avx );
         pixf->satd[PIXEL_4x16] = x264_pixel_satd_4x16_avx;
@@ -1234,6 +1235,7 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf )
 
     if( cpu&X264_CPU_AVX )
     {
+        INIT2_NAME( sad_aligned, sad, _sse2 ); /* AVX-capable CPUs doesn't benefit from an aligned version */
         INIT8( satd, _avx );
         INIT7( satd_x3, _avx );
         INIT7( satd_x4, _avx );
index 0571d74d8af38725dd6ad457c24d4ad7b1d0d623..aca996ad0334f186d20ab29e4f1a37140559d3c7 100644 (file)
@@ -53,7 +53,6 @@ DECL_X1( sad, sse2_aligned )
 DECL_X1( sad, ssse3 )
 DECL_X1( sad, ssse3_aligned )
 DECL_X1( sad, avx2 )
-DECL_X1( sad, avx2_aligned )
 DECL_X4( sad, mmx2 )
 DECL_X4( sad, sse2 )
 DECL_X4( sad, sse3 )
index 8c48723a6a486c369a51a62c1ec36da747e62495..7606da381596d1c103acda5257ba2f0597d694ea 100644 (file)
@@ -205,9 +205,6 @@ SAD  8,  8
 INIT_YMM avx2
 SAD 16, 16
 SAD 16,  8
-INIT_YMM avx2, aligned
-SAD 16, 16
-SAD 16,  8
 
 ;=============================================================================
 ; SAD x3/x4