X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fx86%2Ffft_init.c;h=928f1dcda72c729c49366c6bc6ea2d354e8fe927;hb=c11157c09a11ad3f80ace4dc6832eef7067db72a;hp=337f32d6f7974ba696427f3fc61399348cc052e1;hpb=a38eadd7e93de69a060b68891466d82e626623ba;p=ffmpeg diff --git a/libavcodec/x86/fft_init.c b/libavcodec/x86/fft_init.c index 337f32d6f79..928f1dcda72 100644 --- a/libavcodec/x86/fft_init.c +++ b/libavcodec/x86/fft_init.c @@ -17,9 +17,11 @@ */ #include "config.h" + #include "libavutil/attributes.h" #include "libavutil/cpu.h" #include "libavutil/x86/cpu.h" + #include "fft.h" av_cold void ff_fft_init_x86(FFTContext *s) @@ -31,28 +33,27 @@ av_cold void ff_fft_init_x86(FFTContext *s) #if ARCH_X86_32 if (EXTERNAL_AMD3DNOW(cpu_flags)) { - /* 3DNow! for K6-2/3 */ s->imdct_calc = ff_imdct_calc_3dnow; s->imdct_half = ff_imdct_half_3dnow; s->fft_calc = ff_fft_calc_3dnow; } + if (EXTERNAL_AMD3DNOWEXT(cpu_flags)) { - /* 3DNowEx for K7 */ s->imdct_calc = ff_imdct_calc_3dnowext; s->imdct_half = ff_imdct_half_3dnowext; s->fft_calc = ff_fft_calc_3dnowext; } -#endif +#endif /* ARCH_X86_32 */ + if (EXTERNAL_SSE(cpu_flags)) { - /* SSE for P3/P4/K8 */ s->imdct_calc = ff_imdct_calc_sse; s->imdct_half = ff_imdct_half_sse; s->fft_permute = ff_fft_permute_sse; s->fft_calc = ff_fft_calc_sse; s->fft_permutation = FF_FFT_PERM_SWAP_LSBS; } + if (EXTERNAL_AVX_FAST(cpu_flags) && s->nbits >= 5) { - /* AVX for SB */ s->imdct_half = ff_imdct_half_avx; s->fft_calc = ff_fft_calc_avx; s->fft_permutation = FF_FFT_PERM_AVX;