x86: Add high bitdepth loopfilter AVX2 asm

This commit is contained in:
Ronald S. Bultje
2021-05-05 00:25:55 +02:00
committed by Henrik Gramner
co-authored by Henrik Gramner
parent 87aa815cfa
commit 24b1a4adb3
3 changed files with 1198 additions and 1 deletions
+1
View File
@@ -215,6 +215,7 @@ if is_asm_enabled
libdav1d_sources_asm += files(
'x86/cdef16_avx2.asm',
'x86/ipred16_avx2.asm',
'x86/loopfilter16_avx2.asm',
'x86/looprestoration16_avx2.asm',
'x86/mc16_avx2.asm',
'x86/cdef16_sse.asm',
File diff suppressed because it is too large Load Diff
+9 -1
View File
@@ -36,6 +36,7 @@ decl_loopfilter_sb_fn(dav1d_lpf_v_sb_uv_##ext)
decl_loopfilter_sb_fns(ssse3);
decl_loopfilter_sb_fns(avx2);
decl_loopfilter_sb_fns(16bpc_avx2);
COLD void bitfn(dav1d_loop_filter_dsp_init_x86)(Dav1dLoopFilterDSPContext *const c) {
const unsigned flags = dav1d_get_cpu_flags();
@@ -51,10 +52,17 @@ COLD void bitfn(dav1d_loop_filter_dsp_init_x86)(Dav1dLoopFilterDSPContext *const
if (!(flags & DAV1D_X86_CPU_FLAG_AVX2)) return;
#if BITDEPTH == 8 && ARCH_X86_64
#if ARCH_X86_64
#if BITDEPTH == 8
c->loop_filter_sb[0][0] = dav1d_lpf_h_sb_y_avx2;
c->loop_filter_sb[0][1] = dav1d_lpf_v_sb_y_avx2;
c->loop_filter_sb[1][0] = dav1d_lpf_h_sb_uv_avx2;
c->loop_filter_sb[1][1] = dav1d_lpf_v_sb_uv_avx2;
#else
c->loop_filter_sb[0][0] = dav1d_lpf_h_sb_y_16bpc_avx2;
c->loop_filter_sb[0][1] = dav1d_lpf_v_sb_y_16bpc_avx2;
c->loop_filter_sb[1][0] = dav1d_lpf_h_sb_uv_16bpc_avx2;
c->loop_filter_sb[1][1] = dav1d_lpf_v_sb_uv_16bpc_avx2;
#endif
#endif
}