Commit fc7d0d82 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/x86/hevcdsp_init: fix SSE4 checks

Found-by: 's avatarJames Almer <jamrial@gmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 7be230b5
......@@ -346,43 +346,31 @@ void ff_hevcdsp_init_x86(HEVCDSPContext *c, const int bit_depth)
int mm_flags = av_get_cpu_flags();
if (bit_depth == 8) {
if (EXTERNAL_MMX(mm_flags)) {
if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
if (EXTERNAL_MMXEXT(mm_flags)) {
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 8);
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 8);
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 8);
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 8);
if (EXTERNAL_SSSE3(mm_flags) && ARCH_X86_64) {
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 8);
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 8);
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 8);
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 8);
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 8);
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 8);
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 8);
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 8);
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 8);
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 8);
}
}
}
} else if (bit_depth == 10) {
if (EXTERNAL_MMX(mm_flags)) {
if (EXTERNAL_MMXEXT(mm_flags) && ARCH_X86_64) {
if (EXTERNAL_SSSE3(mm_flags)) {
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 10);
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 10);
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 10);
if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 10);
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 10);
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 10);
}
EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h, 10);
EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v, 10);
EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv, 10);
}
QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h, 10);
QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v, 10);
QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv, 10);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment