|
|
@ -35,6 +35,11 @@ extern void ff_vector_fmac_scalar_avx(float *dst, const float *src, float mul, |
|
|
|
extern void ff_vector_fmul_scalar_sse(float *dst, const float *src, float mul, |
|
|
|
extern void ff_vector_fmul_scalar_sse(float *dst, const float *src, float mul, |
|
|
|
int len); |
|
|
|
int len); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern void ff_vector_dmul_scalar_sse2(double *dst, const double *src, |
|
|
|
|
|
|
|
double mul, int len); |
|
|
|
|
|
|
|
extern void ff_vector_dmul_scalar_avx(double *dst, const double *src, |
|
|
|
|
|
|
|
double mul, int len); |
|
|
|
|
|
|
|
|
|
|
|
void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) |
|
|
|
void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int mm_flags = av_get_cpu_flags(); |
|
|
|
int mm_flags = av_get_cpu_flags(); |
|
|
@ -44,8 +49,12 @@ void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) |
|
|
|
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse; |
|
|
|
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse; |
|
|
|
fdsp->vector_fmul_scalar = ff_vector_fmul_scalar_sse; |
|
|
|
fdsp->vector_fmul_scalar = ff_vector_fmul_scalar_sse; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (EXTERNAL_SSE2(mm_flags)) { |
|
|
|
|
|
|
|
fdsp->vector_dmul_scalar = ff_vector_dmul_scalar_sse2; |
|
|
|
|
|
|
|
} |
|
|
|
if (EXTERNAL_AVX(mm_flags)) { |
|
|
|
if (EXTERNAL_AVX(mm_flags)) { |
|
|
|
fdsp->vector_fmul = ff_vector_fmul_avx; |
|
|
|
fdsp->vector_fmul = ff_vector_fmul_avx; |
|
|
|
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_avx; |
|
|
|
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_avx; |
|
|
|
|
|
|
|
fdsp->vector_dmul_scalar = ff_vector_dmul_scalar_avx; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|