summaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/vp9dsp_init_16bpp_template.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2015-09-17 22:49:58 -0300
committerJames Almer <jamrial@gmail.com>2015-09-18 12:28:55 -0300
commit2f9ab159607fd088f8ced1e603da14d203fbfffe (patch)
treee71a4dc9b9be22331adead60f70a2f472e698236 /libavcodec/x86/vp9dsp_init_16bpp_template.c
parent85c343faade5d20d3b336b0cd16e69eb928d256a (diff)
downloadffmpeg-streaming-2f9ab159607fd088f8ced1e603da14d203fbfffe.zip
ffmpeg-streaming-2f9ab159607fd088f8ced1e603da14d203fbfffe.tar.gz
x86/vp9: add avx2 subpel MC SIMD for 10/12bpp
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/x86/vp9dsp_init_16bpp_template.c')
-rw-r--r--libavcodec/x86/vp9dsp_init_16bpp_template.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/libavcodec/x86/vp9dsp_init_16bpp_template.c b/libavcodec/x86/vp9dsp_init_16bpp_template.c
index 3e2737b..a1ce212 100644
--- a/libavcodec/x86/vp9dsp_init_16bpp_template.c
+++ b/libavcodec/x86/vp9dsp_init_16bpp_template.c
@@ -33,16 +33,31 @@ extern const int16_t ff_filters_16bpp[3][15][4][16];
decl_mc_funcs(4, sse2, int16_t, 16, BPC);
decl_mc_funcs(8, sse2, int16_t, 16, BPC);
+decl_mc_funcs(16, avx2, int16_t, 16, BPC);
mc_rep_funcs(16, 8, 16, sse2, int16_t, 16, BPC);
mc_rep_funcs(32, 16, 32, sse2, int16_t, 16, BPC);
mc_rep_funcs(64, 32, 64, sse2, int16_t, 16, BPC);
+mc_rep_funcs(32, 16, 32, avx2, int16_t, 16, BPC);
+mc_rep_funcs(64, 32, 64, avx2, int16_t, 16, BPC);
filters_8tap_2d_fn2(put, 16, BPC, 2, sse2, sse2, 16bpp)
filters_8tap_2d_fn2(avg, 16, BPC, 2, sse2, sse2, 16bpp)
+filters_8tap_2d_fn(put, 64, 32, BPC, 2, avx2, 16bpp)
+filters_8tap_2d_fn(avg, 64, 32, BPC, 2, avx2, 16bpp)
+filters_8tap_2d_fn(put, 32, 32, BPC, 2, avx2, 16bpp)
+filters_8tap_2d_fn(avg, 32, 32, BPC, 2, avx2, 16bpp)
+filters_8tap_2d_fn(put, 16, 32, BPC, 2, avx2, 16bpp)
+filters_8tap_2d_fn(avg, 16, 32, BPC, 2, avx2, 16bpp)
filters_8tap_1d_fn3(put, BPC, sse2, sse2, 16bpp)
filters_8tap_1d_fn3(avg, BPC, sse2, sse2, 16bpp)
+filters_8tap_1d_fn2(put, 64, BPC, avx2, 16bpp)
+filters_8tap_1d_fn2(avg, 64, BPC, avx2, 16bpp)
+filters_8tap_1d_fn2(put, 32, BPC, avx2, 16bpp)
+filters_8tap_1d_fn2(avg, 32, BPC, avx2, 16bpp)
+filters_8tap_1d_fn2(put, 16, BPC, avx2, 16bpp)
+filters_8tap_1d_fn2(avg, 16, BPC, avx2, 16bpp)
#endif /* HAVE_YASM */
@@ -56,6 +71,13 @@ av_cold void INIT_FUNC(VP9DSPContext *dsp)
init_subpel3(1, avg, BPC, sse2);
}
+ if (EXTERNAL_AVX2(cpu_flags)) {
+ init_subpel3_32_64(0, put, BPC, avx2);
+ init_subpel3_32_64(1, avg, BPC, avx2);
+ init_subpel2(2, 0, 16, put, BPC, avx2);
+ init_subpel2(2, 1, 16, avg, BPC, avx2);
+ }
+
#endif /* HAVE_YASM */
ff_vp9dsp_init_16bpp_x86(dsp);
OpenPOWER on IntegriCloud