[FFmpeg-devel] [PATCH 09/31] lavu/floatdsp: RISC-V V vector_dmul_scalar

Rémi Denis-Courmont remi at remlab.net
Mon Sep 26 12:42:57 EEST 2022


Le 26 septembre 2022 09:53:19 GMT+03:00, Lynne <dev at lynne.ee> a écrit :
>Sep 25, 2022, 16:25 by remi at remlab.net:
>
>> From: Rémi Denis-Courmont <remi at remlab.net>
>>
>> ---
>>  libavutil/riscv/float_dsp_init.c |  9 ++++++++-
>>  libavutil/riscv/float_dsp_rvv.S  | 17 +++++++++++++++++
>>  2 files changed, 25 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
>> index de567c50d2..b829c0f736 100644
>> --- a/libavutil/riscv/float_dsp_init.c
>> +++ b/libavutil/riscv/float_dsp_init.c
>> @@ -28,12 +28,19 @@
>>  void ff_vector_fmul_scalar_rvv(float *dst, const float *src, float mul,
>>  int len);
>>  
>> +void ff_vector_dmul_scalar_rvv(double *dst, const double *src, double mul,
>> +                                int len);
>> +
>>  av_cold void ff_float_dsp_init_riscv(AVFloatDSPContext *fdsp)
>>  {
>>  #if HAVE_RVV
>>  int flags = av_get_cpu_flags();
>>  
>> -    if (flags & AV_CPU_FLAG_RV_ZVE32F)
>> +    if (flags & AV_CPU_FLAG_RV_ZVE32F) {
>>  fdsp->vector_fmul_scalar = ff_vector_fmul_scalar_rvv;
>> +
>> +        if (flags & AV_CPU_FLAG_RV_ZVE64D)
>> +            fdsp->vector_dmul_scalar = ff_vector_dmul_scalar_rvv;
>> +    }
>>
>
>You don't need to put doubles in the same branch as floats,
>it's just extra indentation as one implies the other anyway. 

Well, the idea was to skip an useless check if Zve32f is unsupported. As this is a cold path, I don't really mind either way though.

Note the same construct is used elsewhere. On top of my head, audiodsp and aacpsdsp.

Thanks for the review.


More information about the ffmpeg-devel mailing list