diff options
author | James Almer <jamrial@gmail.com> | 2024-05-31 16:47:08 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2024-06-03 22:14:55 -0300 |
commit | a14440867c6059890ce34750d1aeba5f0f6fd57b (patch) | |
tree | 469ed5b9979e99ff281a707407c20512e3a0992c /libavutil/x86/float_dsp_init.c | |
parent | 7413b81e50c61d6d7d0743d6e2284fc7ecc64b0e (diff) | |
download | ffmpeg-a14440867c6059890ce34750d1aeba5f0f6fd57b.tar.gz |
x86/float_dsp: add SSE2 and AVX versions of scalarproduct_double
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil/x86/float_dsp_init.c')
-rw-r--r-- | libavutil/x86/float_dsp_init.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavutil/x86/float_dsp_init.c b/libavutil/x86/float_dsp_init.c index 093bce9b94..6cf0b4a277 100644 --- a/libavutil/x86/float_dsp_init.c +++ b/libavutil/x86/float_dsp_init.c @@ -73,6 +73,9 @@ void ff_vector_fmul_reverse_avx2(float *dst, const float *src0, float ff_scalarproduct_float_sse(const float *v1, const float *v2, int order); float ff_scalarproduct_float_fma3(const float *v1, const float *v2, int order); +double ff_scalarproduct_double_sse2(const double *v1, const double *v2, size_t order); +double ff_scalarproduct_double_avx(const double *v1, const double *v2, size_t order); + void ff_butterflies_float_sse(float *restrict src0, float *restrict src1, int len); av_cold void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) @@ -93,6 +96,7 @@ av_cold void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) fdsp->vector_dmul = ff_vector_dmul_sse2; fdsp->vector_dmac_scalar = ff_vector_dmac_scalar_sse2; fdsp->vector_dmul_scalar = ff_vector_dmul_scalar_sse2; + fdsp->scalarproduct_double = ff_scalarproduct_double_sse2; } if (EXTERNAL_AVX_FAST(cpu_flags)) { fdsp->vector_fmul = ff_vector_fmul_avx; @@ -102,6 +106,7 @@ av_cold void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) fdsp->vector_dmac_scalar = ff_vector_dmac_scalar_avx; fdsp->vector_fmul_add = ff_vector_fmul_add_avx; fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_avx; + fdsp->scalarproduct_double = ff_scalarproduct_double_avx; } if (EXTERNAL_AVX2_FAST(cpu_flags)) { fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_avx2; |