89
;------------------------------------------------------------------------------
90
; void ff_vector_fmul_scalar(float *dst, const float *src, float mul, int len)
91
;------------------------------------------------------------------------------
93
%macro VECTOR_FMUL_SCALAR 0
95
cglobal vector_fmul_scalar, 3,3,2, dst, src, len
97
cglobal vector_fmul_scalar, 4,4,3, dst, src, mul, len
105
lea lenq, [lend*4-mmsize]
118
;------------------------------------------------------------------------------
119
; void ff_vector_dmul_scalar(double *dst, const double *src, double mul,
121
;------------------------------------------------------------------------------
123
%macro VECTOR_DMUL_SCALAR 0
125
cglobal vector_dmul_scalar, 3,4,3, dst, src, mul, len, lenaddr
128
cglobal vector_dmul_scalar, 3,3,3, dst, src, len
130
cglobal vector_dmul_scalar, 4,4,3, dst, src, mul, len
133
VBROADCASTSD m0, mulm
138
vinsertf128 ymm2, ymm2, xmm2, 1
144
vinsertf128 ymm0, ymm0, xmm0, 1
148
lea lenq, [lend*8-2*mmsize]
150
mulpd m1, m0, [srcq+lenq ]
151
mulpd m2, m0, [srcq+lenq+mmsize]
152
mova [dstq+lenq ], m1
153
mova [dstq+lenq+mmsize], m2
89
161
%if HAVE_AVX_EXTERNAL