On Tue, Jul 12, 2016 at 01:38:03PM +0200, Alexandra Hájková wrote: > --- /dev/null > +++ b/libavcodec/x86/hevc_idct.asm > @@ -0,0 +1,107 @@ > +; 8-bit > +INIT_MMX mmxext > +IDCT_DC_NL 4, 8 > +IDCT_DC 8, 2, 8 > + > +INIT_XMM sse2 > +IDCT_DC_NL 8, 8 > +IDCT_DC 16, 4, 8 > +IDCT_DC 32, 16, 8 > + > +%if HAVE_AVX2_EXTERNAL > +INIT_YMM avx2 > +IDCT_DC 16, 2, 8 > +IDCT_DC 32, 8, 8 > +%endif ;HAVE_AVX2_EXTERNAL > + > +; 10-bit > +INIT_MMX mmxext > +IDCT_DC_NL 4, 10 > +IDCT_DC 8, 2, 10 > + > +INIT_XMM sse2 > +IDCT_DC_NL 8, 10 > +IDCT_DC 16, 4, 10 > +IDCT_DC 32, 16, 10 > + > +%if HAVE_AVX2_EXTERNAL > +INIT_YMM avx2 > +IDCT_DC 16, 2, 10 > +IDCT_DC 32, 8, 10
IMO more compact: INIT_MMX mmxext IDCT_DC_NL 4, 8 IDCT_DC_NL 4, 10 IDCT_DC 8, 2, 8 IDCT_DC 8, 2, 10 INIT_XMM sse2 IDCT_DC_NL 8, 8 IDCT_DC_NL 8, 10 IDCT_DC 16, 4, 8 IDCT_DC 16, 4, 10 IDCT_DC 32, 16, 8 IDCT_DC 32, 16, 10 %if HAVE_AVX2_EXTERNAL INIT_YMM avx2 IDCT_DC 16, 2, 8 IDCT_DC 16, 2, 10 IDCT_DC 32, 8, 8 IDCT_DC 32, 8, 10 %endif ;HAVE_AVX2_EXTERNAL or INIT_MMX mmxext IDCT_DC_NL 4, 8 IDCT_DC 8, 2, 8 IDCT_DC_NL 4, 10 IDCT_DC 8, 2, 10 INIT_XMM sse2 IDCT_DC_NL 8, 8 IDCT_DC 16, 4, 8 IDCT_DC 32, 16, 8 IDCT_DC_NL 8, 10 IDCT_DC 16, 4, 10 IDCT_DC 32, 16, 10 %if HAVE_AVX2_EXTERNAL INIT_YMM avx2 IDCT_DC 16, 2, 8 IDCT_DC 32, 8, 8 IDCT_DC 16, 2, 10 IDCT_DC 32, 8, 10 %endif ;HAVE_AVX2_EXTERNAL if you prefer keeping the bit depths together. > --- a/libavcodec/x86/hevcdsp_init.c > +++ b/libavcodec/x86/hevcdsp_init.c > @@ -45,6 +45,39 @@ LFC_FUNCS(uint8_t, 10) > +#define idct_dc_proto(size, bitd, opt) \ > + void ff_hevc_idct_ ## size ## _dc_add_ ## bitd ## _ ## > opt(uint8_t *dst, int16_t *coeffs, ptrdiff_t stride) random 17 spaces indentation > +idct_dc_proto(4, 8,mmxext); > +idct_dc_proto(8, 8,mmxext); > +idct_dc_proto(16,8, sse2); > +idct_dc_proto(32,8, sse2); > + > +idct_dc_proto(32,8, avx2); spaces after ',' Diego _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
