[FFmpeg-devel] [PATCH 3/3] riscv: add float vector-scalar multiplication

Rémi Denis-Courmont remi at remlab.net
Sat Sep 3 22:34:20 EEST 2022


Le lauantaina 3. syyskuuta 2022, 22.11.26 EEST Lynne a écrit :
> > diff --git a/libavutil/riscv/float_dsp_rvv.S
> > b/libavutil/riscv/float_dsp_rvv.S new file mode 100644
> > index 0000000000..54ea1d9d6d
> > --- /dev/null
> > +++ b/libavutil/riscv/float_dsp_rvv.S
> > @@ -0,0 +1,60 @@
> > +/*
> > + * This file is part of FFmpeg.
> > + *
> > + * FFmpeg is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU Lesser General Public
> > + * License as published by the Free Software Foundation; either
> > + * version 2.1 of the License, or (at your option) any later version.
> > + *
> > + * FFmpeg is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * Lesser General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU Lesser General Public
> > + * License along with FFmpeg; if not, write to the Free Software
> > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> > 02110-1301 USA + */
> > +
> > +#include "config.h"
> > +#include "asm.h"
> > +
> > +        .option  arch, +v
> > +
> > +func ff_vector_fmul_scalar_rvv
> > +#if !defined (__riscv_float_abi_soft)
> > +        srli     a2, a2, 2
> > +#else
> > +        fmv.w.x  fa0, a2
> > +        srli     a2, a3, 2
> > +#endif
> 
> Can't this be handled by a macro, like it's done by arm64 and x86?

Err, from a quick glance, the float DSP code for AArch64 just assumes a 
hardware floating ABI, and has no conditionals, so I'm not sure what you mean 
by that. Do you mean something like VFP/NOVFP on AArch32?

-- 
雷米‧德尼-库尔蒙
http://www.remlab.net/





More information about the ffmpeg-devel mailing list