[x264-devel] x86: AVX2 high bit-depth predict_4x4_h
Henrik Gramner
git at videolan.org
Tue Apr 23 23:29:25 CEST 2013
x264 | branch: master | Henrik Gramner <henrik at gramner.com> | Tue Apr 16 23:27:08 2013 +0200| [fcc1b490dc085f302e02267231f7fcad0ea8cee3] | committer: Jason Garrett-Glaser
x86: AVX2 high bit-depth predict_4x4_h
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=fcc1b490dc085f302e02267231f7fcad0ea8cee3
---
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