On 20/01/2025 00:04, Krzysztof Pyrkosz via ffmpeg-devel wrote: > --- > libavutil/aarch64/float_dsp_neon.S | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/libavutil/aarch64/float_dsp_neon.S b/libavutil/aarch64/float_dsp_neon.S > index 35e2715b87..b21f34c084 100644 > --- a/libavutil/aarch64/float_dsp_neon.S > +++ b/libavutil/aarch64/float_dsp_neon.S > @@ -40,18 +40,17 @@ function ff_vector_fmul_neon, export=1 > endfunc > > function ff_vector_fmac_scalar_neon, export=1 > - mov x3, #-32 > 1: subs w2, w2, #16 > - ld1 {v16.4s, v17.4s}, [x0], #32 > - ld1 {v18.4s, v19.4s}, [x0], x3 > - ld1 {v4.4s, v5.4s}, [x1], #32 > - ld1 {v6.4s, v7.4s}, [x1], #32 > + ldp q16, q17, [x0] > + ldp q4, q5, [x1], #32 > fmla v16.4s, v4.4s, v0.s[0] > fmla v17.4s, v5.4s, v0.s[0] > + stp q16, q17, [x0], #32 > + ldp q18, q19, [x0] > + ldp q6, q7, [x1], #32 > fmla v18.4s, v6.4s, v0.s[0] > fmla v19.4s, v7.4s, v0.s[0] > - st1 {v16.4s, v17.4s}, [x0], #32 > - st1 {v18.4s, v19.4s}, [x0], #32 > + stp q18, q19, [x0], #32 > b.ne 1b > ret > endfunc LGTM. ldp/stp are underrated instructions, they let you ignore the consecutive requirement of ld1/st1 when moving 2 vectors at a time. Will push soon.