[x264-devel] x86: AVX2 high bit-depth predict_4x4_h

Henrik Gramner git at videolan.org
Tue Apr 23 23:37:08 CEST 2013


x264 | branch: master | Henrik Gramner <henrik at gramner.com> | Tue Apr 16 23:27:08 2013 +0200| [16f3261076c7159aeea902e68ca064c6d0a2cfd8] | committer: Jason Garrett-Glaser

x86: AVX2 high bit-depth predict_4x4_h

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=16f3261076c7159aeea902e68ca064c6d0a2cfd8
---

 common/x86/predict-a.asm |   10 ++++++++++
 common/x86/predict-c.c   |    3 +++
 common/x86/predict.h     |    1 +
 3 files changed, 14 insertions(+)

diff --git a/common/x86/predict-a.asm b/common/x86/predict-a.asm
index f255ef1..028936c 100644
--- a/common/x86/predict-a.asm
+++ b/common/x86/predict-a.asm
@@ -216,6 +216,16 @@ cextern pw_pixel_max
 %endmacro
 
 ;-----------------------------------------------------------------------------
+; void predict_4x4_h( pixel *src )
+;-----------------------------------------------------------------------------
+%if HIGH_BIT_DEPTH
+INIT_XMM avx2
+cglobal predict_4x4_h, 1,1
+    PRED_H_4ROWS 4, 0
+    RET
+%endif
+
+;-----------------------------------------------------------------------------
 ; void predict_4x4_ddl( pixel *src )
 ;-----------------------------------------------------------------------------
 %macro PREDICT_4x4_DDL 0
diff --git a/common/x86/predict-c.c b/common/x86/predict-c.c
index 871e8af..e9b8336 100644
--- a/common/x86/predict-c.c
+++ b/common/x86/predict-c.c
@@ -587,6 +587,9 @@ void x264_predict_4x4_init_mmx( int cpu, x264_predict_t pf[12] )
     pf[I_PRED_4x4_HD]  = x264_predict_4x4_hd_avx;
     pf[I_PRED_4x4_VL]  = x264_predict_4x4_vl_avx;
     pf[I_PRED_4x4_VR]  = x264_predict_4x4_vr_avx;
+    if( !(cpu&X264_CPU_AVX2) )
+        return;
+    pf[I_PRED_4x4_H]  = x264_predict_4x4_h_avx2;
 #else
     pf[I_PRED_4x4_VR]  = x264_predict_4x4_vr_mmx2;
     if( !(cpu&X264_CPU_SSSE3) )
diff --git a/common/x86/predict.h b/common/x86/predict.h
index 8f10721..2df0975 100644
--- a/common/x86/predict.h
+++ b/common/x86/predict.h
@@ -117,6 +117,7 @@ void x264_predict_8x8_filter_mmx2( uint8_t *src, uint8_t edge[36], int i_neighbo
 void x264_predict_8x8_filter_sse2( uint16_t *src, uint16_t edge[36], int i_neighbor, int i_filters );
 void x264_predict_8x8_filter_ssse3( pixel *src, pixel edge[36], int i_neighbor, int i_filters );
 void x264_predict_8x8_filter_avx( uint16_t *src, uint16_t edge[36], int i_neighbor, int i_filters );
+void x264_predict_4x4_h_avx2( uint16_t *src );
 void x264_predict_4x4_ddl_mmx2( pixel *src );
 void x264_predict_4x4_ddl_sse2( uint16_t *src );
 void x264_predict_4x4_ddl_avx( uint16_t *src );



More information about the x264-devel mailing list