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 | OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_init.o | ||||||
| RVV-OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_rvv.o | RVV-OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_rvv.o | ||||||
| OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_init.o | OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_init.o | ||||||
| RV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvf.o |  | ||||||
| RVV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvv.o | RVV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvv.o | ||||||
| OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_init.o | OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_init.o | ||||||
| RVV-OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_rvv.o | RVV-OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_rvv.o | ||||||
|  | |||||||
| @ -24,8 +24,6 @@ | |||||||
| #include "libavutil/cpu.h" | #include "libavutil/cpu.h" | ||||||
| #include "libavcodec/audiodsp.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); | 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, | void ff_vector_clip_int32_rvv(int32_t *dst, const int32_t *src, int32_t min, | ||||||
|                               int32_t max, unsigned int len); |                               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) | av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c) | ||||||
| { | { | ||||||
| #if HAVE_RV | #if HAVE_RVV | ||||||
|     int flags = av_get_cpu_flags(); |     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_RVB_ADDR) { | ||||||
|         if (flags & AV_CPU_FLAG_RVV_I32) { |         if (flags & AV_CPU_FLAG_RVV_I32) { | ||||||
|             c->scalarproduct_int16 = ff_scalarproduct_int16_rvv; |             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; |             c->vector_clipf = ff_vector_clipf_rvv; | ||||||
|     } |     } | ||||||
| #endif | #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