lavc/audiodsp: drop R-V F vector_clipf
This is now firmly slower than C. SiFive-U74 (cycles): audiodsp.vector_clipf_c: 31.2 audiodsp.vector_clipf_rvf: 39.5
This commit is contained in:
		
							parent
							
								
									c48213b2dc
								
							
						
					
					
						commit
						2f083fd581
					
				| @ -9,7 +9,6 @@ RVVB-OBJS-$(CONFIG_AC3DSP) += riscv/ac3dsp_rvvb.o | ||||
| OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_init.o | ||||
| RVV-OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_rvv.o | ||||
| OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_init.o | ||||
| RV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvf.o | ||||
| RVV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvv.o | ||||
| OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_init.o | ||||
| RVV-OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_rvv.o | ||||
|  | ||||
| @ -24,8 +24,6 @@ | ||||
| #include "libavutil/cpu.h" | ||||
| #include "libavcodec/audiodsp.h" | ||||
| 
 | ||||
| void ff_vector_clipf_rvf(float *dst, const float *src, int len, float min, float max); | ||||
| 
 | ||||
| int32_t ff_scalarproduct_int16_rvv(const int16_t *v1, const int16_t *v2, int len); | ||||
| void ff_vector_clip_int32_rvv(int32_t *dst, const int32_t *src, int32_t min, | ||||
|                               int32_t max, unsigned int len); | ||||
| @ -33,12 +31,9 @@ void ff_vector_clipf_rvv(float *dst, const float *src, int len, float min, float | ||||
| 
 | ||||
| av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c) | ||||
| { | ||||
| #if HAVE_RV | ||||
| #if HAVE_RVV | ||||
|     int flags = av_get_cpu_flags(); | ||||
| 
 | ||||
|     if (flags & AV_CPU_FLAG_RVF) | ||||
|         c->vector_clipf = ff_vector_clipf_rvf; | ||||
| #if HAVE_RVV | ||||
|     if (flags & AV_CPU_FLAG_RVB_ADDR) { | ||||
|         if (flags & AV_CPU_FLAG_RVV_I32) { | ||||
|             c->scalarproduct_int16 = ff_scalarproduct_int16_rvv; | ||||
| @ -48,5 +43,4 @@ av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c) | ||||
|             c->vector_clipf = ff_vector_clipf_rvv; | ||||
|     } | ||||
| #endif | ||||
| #endif | ||||
| } | ||||
|  | ||||
| @ -1,50 +0,0 @@ | ||||
| /* | ||||
|  * Copyright © 2022 Rémi Denis-Courmont. | ||||
|  * | ||||
|  * 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 "libavutil/riscv/asm.S" | ||||
| 
 | ||||
| func ff_vector_clipf_rvf, f | ||||
|         lpad    0 | ||||
| NOHWF   fmv.w.x fa0, a3 | ||||
| NOHWF   fmv.w.x fa1, a4 | ||||
| 1: | ||||
|         flw     ft0,   (a1) | ||||
|         flw     ft1,  4(a1) | ||||
|         fmax.s  ft0, ft0, fa0 | ||||
|         flw     ft2,  8(a1) | ||||
|         fmax.s  ft1, ft1, fa0 | ||||
|         flw     ft3, 12(a1) | ||||
|         fmax.s  ft2, ft2, fa0 | ||||
|         addi    a2, a2, -4 | ||||
|         fmax.s  ft3, ft3, fa0 | ||||
|         addi    a1, a1, 16 | ||||
|         fmin.s  ft0, ft0, fa1 | ||||
|         fmin.s  ft1, ft1, fa1 | ||||
|         fsw     ft0,   (a0) | ||||
|         fmin.s  ft2, ft2, fa1 | ||||
|         fsw     ft1,  4(a0) | ||||
|         fmin.s  ft3, ft3, fa1 | ||||
|         fsw     ft2,  8(a0) | ||||
|         fsw     ft3, 12(a0) | ||||
|         addi    a0, a0, 16 | ||||
|         bnez    a2, 1b | ||||
| 
 | ||||
|         ret | ||||
| endfunc | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user