diff --git a/libavcodec/x86/imdct36_sse.asm b/libavcodec/x86/imdct36_sse.asm index 2b8fe57e0b..95a7c0154c 100644 --- a/libavcodec/x86/imdct36_sse.asm +++ b/libavcodec/x86/imdct36_sse.asm @@ -357,5 +357,7 @@ DEFINE_IMDCT ssse3 %define BUILDINVHIGHLOW BUILDINVHIGHLOW_AVX %define PSHUFD PSHUFD_SSE_AVX +%ifdef HAVE_AVX INIT_AVX DEFINE_IMDCT avx +%endif diff --git a/libavcodec/x86/proresdsp.asm b/libavcodec/x86/proresdsp.asm index d674308c05..f733bdf7cb 100644 --- a/libavcodec/x86/proresdsp.asm +++ b/libavcodec/x86/proresdsp.asm @@ -306,7 +306,9 @@ INIT_XMM idct_put_fn sse2, 16 INIT_XMM idct_put_fn sse4, 16 +%ifdef HAVE_AVX INIT_AVX idct_put_fn avx, 16 +%endif %endif diff --git a/libavcodec/x86/v210-init.c b/libavcodec/x86/v210-init.c index 4dd6d6de8a..425c6284c5 100644 --- a/libavcodec/x86/v210-init.c +++ b/libavcodec/x86/v210-init.c @@ -34,14 +34,14 @@ av_cold void v210_x86_init(V210DecContext *s) if (cpu_flags & AV_CPU_FLAG_SSSE3) s->unpack_frame = ff_v210_planar_unpack_aligned_ssse3; - if (cpu_flags & AV_CPU_FLAG_AVX) + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) s->unpack_frame = ff_v210_planar_unpack_aligned_avx; } else { if (cpu_flags & AV_CPU_FLAG_SSSE3) s->unpack_frame = ff_v210_planar_unpack_unaligned_ssse3; - if (cpu_flags & AV_CPU_FLAG_AVX) + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) s->unpack_frame = ff_v210_planar_unpack_unaligned_avx; } #endif diff --git a/libavcodec/x86/v210.asm b/libavcodec/x86/v210.asm index 344bed0beb..9ce17c2ed5 100644 --- a/libavcodec/x86/v210.asm +++ b/libavcodec/x86/v210.asm @@ -76,10 +76,14 @@ cglobal v210_planar_unpack_%1_%2, 5, 5 INIT_XMM v210_planar_unpack unaligned, ssse3 +%ifdef HAVE_AVX INIT_AVX v210_planar_unpack unaligned, avx +%endif INIT_XMM v210_planar_unpack aligned, ssse3 +%ifdef HAVE_AVX INIT_AVX v210_planar_unpack aligned, avx +%endif diff --git a/libswscale/x86/scale.asm b/libswscale/x86/scale.asm index e8a5e5cd7c..0df1bb82be 100644 --- a/libswscale/x86/scale.asm +++ b/libswscale/x86/scale.asm @@ -667,10 +667,12 @@ yuv2planeX_fn sse4, 9, 7, 5 yuv2planeX_fn sse4, 10, 7, 5 yuv2planeX_fn sse4, 16, 8, 5 +%ifdef HAVE_AVX INIT_AVX yuv2planeX_fn avx, 8, 10, 7 yuv2planeX_fn avx, 9, 7, 5 yuv2planeX_fn avx, 10, 7, 5 +%endif ; %1=outout-bpc, %2=alignment (u/a) %macro yuv2plane1_mainloop 2 @@ -804,8 +806,10 @@ yuv2plane1_fn 16, 6, 3 INIT_XMM sse4 yuv2plane1_fn 16, 5, 3 +%ifdef HAVE_AVX INIT_XMM avx yuv2plane1_fn 8, 5, 5 yuv2plane1_fn 9, 5, 3 yuv2plane1_fn 10, 5, 3 yuv2plane1_fn 16, 5, 3 +%endif diff --git a/libswscale/x86/swscale_mmx.c b/libswscale/x86/swscale_mmx.c index 55dc08af55..9bec37d91b 100644 --- a/libswscale/x86/swscale_mmx.c +++ b/libswscale/x86/swscale_mmx.c @@ -397,7 +397,7 @@ switch(c->dstBpc){ \ c->yuv2plane1 = ff_yuv2plane1_16_sse4; } - if (cpu_flags & AV_CPU_FLAG_AVX) { + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) { ASSIGN_VSCALEX_FUNC(c->yuv2planeX, avx, avx, 1,); ASSIGN_VSCALE_FUNC(c->yuv2plane1, avx, avx, 1); }