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

index 15bb0755e162a927d3446f4e6da87796838abdcd..a0ec5e58de4c6688be52a52c720562ec36f43921 100644 (file)
@@ -215,6 +215,16 @@ cextern pw_pixel_max
 %endif
 %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 )
 ;-----------------------------------------------------------------------------
index 58b8660b69cefbf94ed8bc224c7379eb663204dd..4960d83b176875ba26317a25a6e3e40131e80091 100644 (file)
@@ -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) )
index 8f1072114ad1cfce2440b692b9b1f7d59b2f89a4..2df097505023f5ae8b574221a36239e73e659d26 100644 (file)
@@ -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 );