[FFmpeg-devel] [PATCH 2/6] avcodec/x86/hevc_mc: add qpel_h8_8_avx512icl and qpel_hv8_8_avx512icl

Henrik Gramner henrik at gramner.com
Thu Mar 10 17:22:29 EET 2022


On Wed, Feb 23, 2022 at 9:58 AM <jianhua.wu-at-intel.com at ffmpeg.org> wrote:
> +%macro HEVC_PUT_HEVC_QPEL_AVX512ICL 2
> [...]
> +    vpmovdw             xm6, m6
> +    movu             [dstq], xm6

vpmovdw can take a memory operand as dst directly:
vpmovdw          [dstq], m6

(the same applies to the hv function)

> +%macro HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 2
> +cglobal hevc_put_hevc_qpel_hv%1_%2, 6, 7, 8, dst, src, srcstride, height, mx, my, tmp

This functions uses 27(?) vector registers but only specifies 8, so it
will break on Windows unless corrected.

> +        if (EXTERNAL_AVX512ICL(cpu_flags)) {
> +            c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_avx512icl;
> +            c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl;
> +        }

Needs an ARCH_X86_64 guard as the code is 64-bit only.


More information about the ffmpeg-devel mailing list