mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
lavc/audiodsp: RISC-V V vector_clipf
This commit is contained in:
parent
27da9514c3
commit
f127a5d29d
@ -28,6 +28,7 @@ void ff_vector_clipf_rvf(float *dst, const float *src, int len, float min, float
|
||||
|
||||
void ff_vector_clip_int32_rvv(int32_t *dst, const int32_t *src, int32_t min,
|
||||
int32_t max, unsigned int len);
|
||||
void ff_vector_clipf_rvv(float *dst, const float *src, int len, float min, float max);
|
||||
|
||||
av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c)
|
||||
{
|
||||
@ -38,5 +39,7 @@ av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c)
|
||||
#if HAVE_RVV
|
||||
if (flags & AV_CPU_FLAG_RVV_I32)
|
||||
c->vector_clip_int32 = ff_vector_clip_int32_rvv;
|
||||
if (flags & AV_CPU_FLAG_RVV_F32)
|
||||
c->vector_clipf = ff_vector_clipf_rvv;
|
||||
#endif
|
||||
}
|
||||
|
@ -34,3 +34,20 @@ func ff_vector_clip_int32_rvv, zve32x
|
||||
|
||||
ret
|
||||
endfunc
|
||||
|
||||
func ff_vector_clipf_rvv, zve32f
|
||||
NOHWF fmv.w.x fa0, a3
|
||||
NOHWF fmv.w.x fa1, a4
|
||||
1:
|
||||
vsetvli t0, a2, e32, m1, ta, ma
|
||||
vle32.v v8, (a1)
|
||||
sub a2, a2, t0
|
||||
vfmax.vf v8, v8, fa0
|
||||
sh2add a1, t0, a1
|
||||
vfmin.vf v8, v8, fa1
|
||||
vse32.v v8, (a0)
|
||||
sh2add a0, t0, a0
|
||||
bnez a2, 1b
|
||||
|
||||
ret
|
||||
endfunc
|
||||
|
Loading…
x
Reference in New Issue
Block a user