lavc/riscv: require B or zba explicitly

This commit is contained in:
Rémi Denis-Courmont 2024-07-22 20:23:50 +03:00
parent 7f97344bfb
commit 187d4d066a
29 changed files with 129 additions and 83 deletions

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_abs_pow34_rvv, zve32f func ff_abs_pow34_rvv, zve32f, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
sub a2, a2, t0 sub a2, a2, t0
@ -38,7 +38,7 @@ func ff_abs_pow34_rvv, zve32f
ret ret
endfunc endfunc
func ff_aac_quant_bands_rvv, zve32f func ff_aac_quant_bands_rvv, zve32f, zba
NOHWF fmv.w.x fa0, a6 NOHWF fmv.w.x fa0, a6
NOHWF fmv.w.x fa1, a7 NOHWF fmv.w.x fa1, a7
fcvt.s.w ft0, a5 fcvt.s.w ft0, a5

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_ps_add_squares_rvv, zve64f func ff_ps_add_squares_rvv, zve64f, zba
li t1, 32 li t1, 32
1: 1:
vsetvli t0, a2, e32, m4, ta, ma vsetvli t0, a2, e32, m4, ta, ma
@ -39,7 +39,7 @@ func ff_ps_add_squares_rvv, zve64f
ret ret
endfunc endfunc
func ff_ps_mul_pair_single_rvv, zve32f func ff_ps_mul_pair_single_rvv, zve32f, zba
1: 1:
vsetvli t0, a3, e32, m4, ta, ma vsetvli t0, a3, e32, m4, ta, ma
vlseg2e32.v v24, (a1) vlseg2e32.v v24, (a1)
@ -134,7 +134,7 @@ NOHWD flw fs\n, (4 * \n)(sp)
.purgem filter .purgem filter
endfunc endfunc
func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no needs for zve32f here */ func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no zve32f here */, zba
slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4) slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4)
sh2add a1, a2, a1 sh2add a1, a2, a1
add a0, a0, t0 add a0, a0, t0
@ -169,7 +169,7 @@ func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no needs for zve32f here */
ret ret
endfunc endfunc
func ff_ps_hybrid_synthesis_deint_rvv, zve64x func ff_ps_hybrid_synthesis_deint_rvv, zve64x, zba
slli t0, a2, 5 + 1 + 2 slli t0, a2, 5 + 1 + 2
sh2add a0, a2, a0 sh2add a0, a2, a0
add a1, a1, t0 add a1, a1, t0
@ -207,7 +207,7 @@ func ff_ps_hybrid_synthesis_deint_rvv, zve64x
ret ret
endfunc endfunc
func ff_ps_stereo_interpolate_rvv, zve32f, zbb func ff_ps_stereo_interpolate_rvv, zve32f, b
vsetvli t0, zero, e32, m2, ta, ma vsetvli t0, zero, e32, m2, ta, ma
vid.v v24 vid.v v24
flw ft0, (a2) flw ft0, (a2)

View file

@ -43,7 +43,7 @@ func ff_ac3_exponent_min_rvv, zve32x
ret ret
endfunc endfunc
func ff_float_to_fixed24_rvv, zve32f func ff_float_to_fixed24_rvv, zve32f, zba
li t1, 1 << 24 li t1, 1 << 24
fcvt.s.w f0, t1 fcvt.s.w f0, t1
1: 1:
@ -61,7 +61,7 @@ func ff_float_to_fixed24_rvv, zve32f
endfunc endfunc
#if __riscv_xlen >= 64 #if __riscv_xlen >= 64
func ff_sum_square_butterfly_int32_rvv, zve64x func ff_sum_square_butterfly_int32_rvv, zve64x, zba
vsetvli t0, zero, e64, m8, ta, ma vsetvli t0, zero, e64, m8, ta, ma
vmv.v.x v0, zero vmv.v.x v0, zero
vmv.v.x v8, zero vmv.v.x v8, zero
@ -101,7 +101,7 @@ func ff_sum_square_butterfly_int32_rvv, zve64x
endfunc endfunc
#endif #endif
func ff_sum_square_butterfly_float_rvv, zve32f func ff_sum_square_butterfly_float_rvv, zve32f, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
vmv.v.x v0, zero vmv.v.x v0, zero
vmv.v.x v8, zero vmv.v.x v8, zero

View file

@ -21,7 +21,7 @@
#include "config.h" #include "config.h"
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_extract_exponents_rvvb, zve32x, zvbb func ff_extract_exponents_rvvb, zve32x, zvbb, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
vle32.v v8, (a1) vle32.v v8, (a1)

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
#if (__riscv_xlen == 64) #if (__riscv_xlen == 64)
func ff_alac_decorrelate_stereo_rvv, zve32x func ff_alac_decorrelate_stereo_rvv, zve32x, zba
ld a4, 8(a0) ld a4, 8(a0)
ld a0, 0(a0) ld a0, 0(a0)
1: 1:
@ -43,7 +43,7 @@ func ff_alac_decorrelate_stereo_rvv, zve32x
ret ret
endfunc endfunc
func ff_alac_append_extra_bits_mono_rvv, zve32x func ff_alac_append_extra_bits_mono_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a1, (a1) ld a1, (a1)
1: 1:
@ -61,7 +61,7 @@ func ff_alac_append_extra_bits_mono_rvv, zve32x
ret ret
endfunc endfunc
func ff_alac_append_extra_bits_stereo_rvv, zve32x func ff_alac_append_extra_bits_stereo_rvv, zve32x, zba
ld a6, 8(a0) ld a6, 8(a0)
ld a0, (a0) ld a0, (a0)
ld a7, 8(a1) ld a7, 8(a1)

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_scalarproduct_int16_rvv, zve32x func ff_scalarproduct_int16_rvv, zve32x, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
vmv.v.x v8, zero vmv.v.x v8, zero
vmv.s.x v0, zero vmv.s.x v0, zero
@ -40,7 +40,7 @@ func ff_scalarproduct_int16_rvv, zve32x
ret ret
endfunc endfunc
func ff_vector_clip_int32_rvv, zve32x func ff_vector_clip_int32_rvv, zve32x, zba
1: 1:
vsetvli t0, a4, e32, m8, ta, ma vsetvli t0, a4, e32, m8, ta, ma
vle32.v v8, (a1) vle32.v v8, (a1)
@ -55,7 +55,7 @@ func ff_vector_clip_int32_rvv, zve32x
ret ret
endfunc endfunc
func ff_vector_clipf_rvv, zve32f func ff_vector_clipf_rvv, zve32f, zba
NOHWF fmv.w.x fa0, a3 NOHWF fmv.w.x fa0, a3
NOHWF fmv.w.x fa1, a4 NOHWF fmv.w.x fa1, a4
1: 1:

View file

@ -23,7 +23,7 @@
#include "libavutil/riscv/bswap_rvb.S" #include "libavutil/riscv/bswap_rvb.S"
#if (__riscv_xlen >= 64) #if (__riscv_xlen >= 64)
func ff_bswap32_buf_rvb, zbb func ff_bswap32_buf_rvb, zba, zbb
bswap32_rvb a0, a1, a2 bswap32_rvb a0, a1, a2
endfunc endfunc
#endif #endif

View file

@ -21,7 +21,7 @@
#include "config.h" #include "config.h"
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_bswap16_buf_rvv, zve32x func ff_bswap16_buf_rvv, zve32x, zba
1: 1:
vsetvli t0, a2, e16, m8, ta, ma vsetvli t0, a2, e16, m8, ta, ma
vle16.v v8, (a1) vle16.v v8, (a1)

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_reorder_pixels_rvv, zve32x func ff_reorder_pixels_rvv, zve32x, zba
srai a2, a2, 1 srai a2, a2, 1
add t1, a1, a2 add t1, a1, a2
1: 1:

View file

@ -0,0 +1,48 @@
/*
* Copyright © 2024 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
*/
#define VILL -0x8000
.data
ff_vtype_e8:
ff_vtype_e8_1:
.half VILL
ff_vtype_e8_2:
.half VILL
ff_vtype_e8_4:
.half VILL
ff_vtype_e8_8:
.half VILL
ff_vtype_e8_16:
.half VILL
ff_vtype_e8_32:
.half VILL
ff_vtype_e16:
ff_vtype_e16_1:
.half VILL
ff_vtype_e16_2:
.half VILL
ff_vtype_e16_4:
.half VILL
ff_vtype_e16_8:
.half VILL
ff_vtype_e16_16:
.half VILL

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_flac_lpc16_rvv, zve32x, zbb func ff_flac_lpc16_rvv, zve32x, b
vtype_vli t0, a2, t2, e32, ta, ma vtype_vli t0, a2, t2, e32, ta, ma
vsetvl zero, a2, t0 vsetvl zero, a2, t0
vle32.v v8, (a1) vle32.v v8, (a1)
@ -45,7 +45,7 @@ func ff_flac_lpc16_rvv, zve32x, zbb
endfunc endfunc
#if (__riscv_xlen == 64) #if (__riscv_xlen == 64)
func ff_flac_lpc32_rvv, zve64x func ff_flac_lpc32_rvv, zve64x, zba
addi t2, a2, -16 addi t2, a2, -16
ble t2, zero, ff_flac_lpc32_rvv_simple ble t2, zero, ff_flac_lpc32_rvv_simple
vsetivli zero, 1, e64, m1, ta, ma vsetivli zero, 1, e64, m1, ta, ma
@ -76,7 +76,7 @@ func ff_flac_lpc32_rvv, zve64x
ret ret
endfunc endfunc
func ff_flac_lpc32_rvv_simple, zve64x, zbb func ff_flac_lpc32_rvv_simple, zve64x, b
vtype_vli t3, a2, t1, e64, ta, ma vtype_vli t3, a2, t1, e64, ta, ma
vntypei t2, t3 vntypei t2, t3
vsetvl zero, a2, t3 // e64 vsetvl zero, a2, t3 // e64
@ -104,7 +104,7 @@ func ff_flac_lpc32_rvv_simple, zve64x, zbb
ret ret
endfunc endfunc
func ff_flac_lpc33_rvv, zve64x, zbb func ff_flac_lpc33_rvv, zve64x, b
vtype_vli t0, a3, t1, e64, ta, ma vtype_vli t0, a3, t1, e64, ta, ma
vsetvl zero, a3, t0 vsetvl zero, a3, t0
vmv.s.x v0, zero vmv.s.x v0, zero
@ -132,7 +132,7 @@ func ff_flac_lpc33_rvv, zve64x, zbb
endfunc endfunc
#endif #endif
func ff_flac_wasted32_rvv, zve32x func ff_flac_wasted32_rvv, zve32x, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
vle32.v v8, (a0) vle32.v v8, (a0)
@ -145,7 +145,7 @@ func ff_flac_wasted32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_wasted33_rvv, zve64x func ff_flac_wasted33_rvv, zve64x, zba
srli t0, a2, 5 srli t0, a2, 5
li t1, 1 li t1, 1
bnez t0, 2f bnez t0, 2f
@ -177,7 +177,7 @@ func ff_flac_wasted33_rvv, zve64x
endfunc endfunc
#if (__riscv_xlen == 64) #if (__riscv_xlen == 64)
func ff_flac_decorrelate_indep2_16_rvv, zve32x func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -200,7 +200,7 @@ func ff_flac_decorrelate_indep2_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep4_16_rvv, zve32x func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -233,7 +233,7 @@ func ff_flac_decorrelate_indep4_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep6_16_rvv, zve32x func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -278,7 +278,7 @@ func ff_flac_decorrelate_indep6_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep8_16_rvv, zve32x func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -332,9 +332,7 @@ func ff_flac_decorrelate_indep8_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_ls_16_rvv, zve32x, zba
func ff_flac_decorrelate_ls_16_rvv, zve32x
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -358,7 +356,7 @@ func ff_flac_decorrelate_ls_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_rs_16_rvv, zve32x func ff_flac_decorrelate_rs_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -382,7 +380,7 @@ func ff_flac_decorrelate_rs_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_ms_16_rvv, zve32x func ff_flac_decorrelate_ms_16_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -408,7 +406,7 @@ func ff_flac_decorrelate_ms_16_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep2_32_rvv, zve32x func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -428,7 +426,7 @@ func ff_flac_decorrelate_indep2_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep4_32_rvv, zve32x func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -457,7 +455,7 @@ func ff_flac_decorrelate_indep4_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep6_32_rvv, zve32x func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -495,7 +493,7 @@ func ff_flac_decorrelate_indep6_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_indep8_32_rvv, zve32x func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld t1, 16(a1) ld t1, 16(a1)
@ -540,7 +538,7 @@ func ff_flac_decorrelate_indep8_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_ls_32_rvv, zve32x func ff_flac_decorrelate_ls_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -561,7 +559,7 @@ func ff_flac_decorrelate_ls_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_rs_32_rvv, zve32x func ff_flac_decorrelate_rs_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)
@ -582,7 +580,7 @@ func ff_flac_decorrelate_rs_32_rvv, zve32x
ret ret
endfunc endfunc
func ff_flac_decorrelate_ms_32_rvv, zve32x func ff_flac_decorrelate_ms_32_rvv, zve32x, zba
ld a0, (a0) ld a0, (a0)
ld a2, 8(a1) ld a2, 8(a1)
ld a1, (a1) ld a1, (a1)

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_int32_to_float_fmul_scalar_rvv, zve32f func ff_int32_to_float_fmul_scalar_rvv, zve32f, zba
NOHWF fmv.w.x fa0, a2 NOHWF fmv.w.x fa0, a2
NOHWF mv a2, a3 NOHWF mv a2, a3
1: 1:
@ -37,7 +37,7 @@ NOHWF mv a2, a3
ret ret
endfunc endfunc
func ff_int32_to_float_fmul_array8_rvv, zve32f func ff_int32_to_float_fmul_array8_rvv, zve32f, zba
srai a4, a4, 3 srai a4, a4, 3
1: vsetvli t0, a4, e32, m1, ta, ma 1: vsetvli t0, a4, e32, m1, ta, ma

View file

@ -325,7 +325,7 @@
ret ret
.endm .endm
func h264_put_chroma_mc_rvv, zve32x func h264_put_chroma_mc_rvv, zve32x, zba
11: 11:
li a7, 3 li a7, 3
blt a3, a7, 12f blt a3, a7, 12f
@ -334,7 +334,7 @@ func h264_put_chroma_mc_rvv, zve32x
do_chroma_mc put 0 do_chroma_mc put 0
endfunc endfunc
func h264_avg_chroma_mc_rvv, zve32x func h264_avg_chroma_mc_rvv, zve32x, zba
21: 21:
li a7, 3 li a7, 3
blt a3, a7, 22f blt a3, a7, 22f

View file

@ -298,7 +298,7 @@ func ff_h264_idct8_add_8_rvv, zve32x
ret ret
endfunc endfunc
func ff_h264_idct8_add_16_rvv, zve32x func ff_h264_idct8_add_16_rvv, zve32x, zba
csrwi vxrm, 0 csrwi vxrm, 0
.Lidct8_add_16_rvv: .Lidct8_add_16_rvv:
li a4, 8 li a4, 8

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_add_int16_rvv, zve32x func ff_add_int16_rvv, zve32x, zba
1: 1:
vsetvli t0, a3, e16, m8, ta, ma vsetvli t0, a3, e16, m8, ta, ma
vle16.v v16, (a0) vle16.v v16, (a0)
@ -36,7 +36,7 @@ func ff_add_int16_rvv, zve32x
ret ret
endfunc endfunc
func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, zbb func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, b
vtype_ivli t1, 4, e8, ta, ma vtype_ivli t1, 4, e8, ta, ma
li t0, 4 li t0, 4
vsetvl zero, t0, t1 vsetvl zero, t0, t1

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_ict_float_rvv, zve32f func ff_ict_float_rvv, zve32f, zba
lla t0, ff_jpeg2000_f_ict_params lla t0, ff_jpeg2000_f_ict_params
flw ft0, 0(t0) flw ft0, 0(t0)
flw ft1, 4(t0) flw ft1, 4(t0)
@ -48,7 +48,7 @@ func ff_ict_float_rvv, zve32f
ret ret
endfunc endfunc
func ff_rct_int_rvv, zve32x func ff_rct_int_rvv, zve32x, zba
1: 1:
vsetvli t0, a3, e32, m8, ta, ma vsetvli t0, a3, e32, m8, ta, ma
vle32.v v16, (a1) vle32.v v16, (a1)

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_scalarproduct_and_madd_int16_rvv, zve32x func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
vmv.v.x v0, zero vmv.v.x v0, zero
1: 1:
@ -44,7 +44,7 @@ func ff_scalarproduct_and_madd_int16_rvv, zve32x
ret ret
endfunc endfunc
func ff_scalarproduct_and_madd_int32_rvv, zve32x func ff_scalarproduct_and_madd_int32_rvv, zve32x, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
vmv.v.x v0, zero vmv.v.x v0, zero
1: 1:

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
#if __riscv_xlen >= 64 #if __riscv_xlen >= 64
func ff_lpc_apply_welch_window_rvv, zve64d func ff_lpc_apply_welch_window_rvv, zve64d, zba
vsetvli t0, zero, e64, m8, ta, ma vsetvli t0, zero, e64, m8, ta, ma
vid.v v0 vid.v v0
addi t2, a1, -1 addi t2, a1, -1
@ -86,7 +86,7 @@ func ff_lpc_apply_welch_window_rvv, zve64d
ret ret
endfunc endfunc
func ff_lpc_compute_autocorr_rvv, zve64d, zbb func ff_lpc_compute_autocorr_rvv, zve64d, b
vtype_vli t1, a2, t2, e64, ta, ma, 1 vtype_vli t1, a2, t2, e64, ta, ma, 1
addi a2, a2, 1 addi a2, a2, 1
li t0, 1 li t0, 1

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_opus_postfilter_rvv, zve32f, zbb func ff_opus_postfilter_rvv, zve32f, b
flw fa0, 0(a2) // g0 flw fa0, 0(a2) // g0
slli t1, a1, 2 slli t1, a1, 2
flw fa1, 4(a2) // g1 flw fa1, 4(a2) // g1

View file

@ -332,7 +332,7 @@
ret ret
.endm .endm
func ff_put_rv40_chroma_mc_rvv, zve32x func ff_put_rv40_chroma_mc_rvv, zve32x, zba
11: 11:
li a7, 3 li a7, 3
blt a3, a7, 12f blt a3, a7, 12f
@ -341,7 +341,7 @@ func ff_put_rv40_chroma_mc_rvv, zve32x
do_chroma_mc put 0 do_chroma_mc put 0
endfunc endfunc
func ff_avg_rv40_chroma_mc_rvv, zve32x func ff_avg_rv40_chroma_mc_rvv, zve32x, zba
21: 21:
li a7, 3 li a7, 3
blt a3, a7, 22f blt a3, a7, 22f

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_sbr_sum64x5_rvv, zve32f func ff_sbr_sum64x5_rvv, zve32f, zba
li a5, 64 li a5, 64
addi a1, a0, 64 * 4 addi a1, a0, 64 * 4
addi a2, a0, 128 * 4 addi a2, a0, 128 * 4
@ -49,7 +49,7 @@ func ff_sbr_sum64x5_rvv, zve32f
ret ret
endfunc endfunc
func ff_sbr_sum_square_rvv, zve32f func ff_sbr_sum_square_rvv, zve32f, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
slli a1, a1, 1 slli a1, a1, 1
vmv.v.x v8, zero vmv.v.x v8, zero
@ -157,7 +157,7 @@ func ff_sbr_autocorrelate_rvv, zve32f
ret ret
endfunc endfunc
func ff_sbr_hf_gen_rvv, zve32f func ff_sbr_hf_gen_rvv, zve32f, zba
NOHWF fmv.w.x fa0, a4 NOHWF fmv.w.x fa0, a4
NOHWF mv a4, a5 NOHWF mv a4, a5
NOHWF mv a5, a6 NOHWF mv a5, a6
@ -207,7 +207,7 @@ NOHWF mv a5, a6
ret ret
endfunc endfunc
func ff_sbr_hf_g_filt_rvv, zve32f func ff_sbr_hf_g_filt_rvv, zve32f, zba
li t1, 40 * 2 * 4 li t1, 40 * 2 * 4
sh3add a1, a4, a1 sh3add a1, a4, a1
1: 1:
@ -272,16 +272,16 @@ endfunc
ret ret
.endm .endm
func ff_sbr_hf_apply_noise_0_rvv, zve32f, zbb func ff_sbr_hf_apply_noise_0_rvv, zve32f, b
hf_apply_noise 0 hf_apply_noise 0
endfunc endfunc
func ff_sbr_hf_apply_noise_3_rvv, zve32f, zbb func ff_sbr_hf_apply_noise_3_rvv, zve32f, b
not a4, a4 // invert parity of kx not a4, a4 // invert parity of kx
// fall through // fall through
endfunc endfunc
func ff_sbr_hf_apply_noise_1_rvv, zve32f, zbb func ff_sbr_hf_apply_noise_1_rvv, zve32f, b
vsetvli t0, zero, e32, m4, ta, ma vsetvli t0, zero, e32, m4, ta, ma
vid.v v4 vid.v v4
vxor.vx v4, v4, a4 vxor.vx v4, v4, a4
@ -289,6 +289,6 @@ func ff_sbr_hf_apply_noise_1_rvv, zve32f, zbb
hf_apply_noise 1 hf_apply_noise 1
endfunc endfunc
func ff_sbr_hf_apply_noise_2_rvv, zve32f, zbb func ff_sbr_hf_apply_noise_2_rvv, zve32f, b
hf_apply_noise 2 hf_apply_noise 2
endfunc endfunc

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_ssd_int8_vs_int16_rvv, zve32x func ff_ssd_int8_vs_int16_rvv, zve32x, zba
vsetvli t0, zero, e32, m8, ta, ma vsetvli t0, zero, e32, m8, ta, ma
vmv.v.x v24, zero vmv.v.x v24, zero
1: 1:

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_decorrelate_ls_rvv, zve32x func ff_decorrelate_ls_rvv, zve32x, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
sub a2, a2, t0 sub a2, a2, t0
@ -35,7 +35,7 @@ func ff_decorrelate_ls_rvv, zve32x
ret ret
endfunc endfunc
func ff_decorrelate_sr_rvv, zve32x func ff_decorrelate_sr_rvv, zve32x, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
vle32.v v0, (a0) vle32.v v0, (a0)
@ -49,7 +49,7 @@ func ff_decorrelate_sr_rvv, zve32x
ret ret
endfunc endfunc
func ff_decorrelate_sm_rvv, zve32x func ff_decorrelate_sm_rvv, zve32x, zba
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma
vle32.v v8, (a1) vle32.v v8, (a1)
@ -67,7 +67,7 @@ func ff_decorrelate_sm_rvv, zve32x
ret ret
endfunc endfunc
func ff_decorrelate_sf_rvv, zve32x func ff_decorrelate_sf_rvv, zve32x, zba
csrwi vxrm, 0 csrwi vxrm, 0
1: 1:
vsetvli t0, a2, e32, m8, ta, ma vsetvli t0, a2, e32, m8, ta, ma

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_restore_rgb_planes_rvv, zve32x func ff_restore_rgb_planes_rvv, zve32x, zba
li t1, -0x80 li t1, -0x80
sub a3, a3, a6 sub a3, a3, a6
sub a4, a4, a6 sub a4, a4, a6
@ -52,7 +52,7 @@ func ff_restore_rgb_planes_rvv, zve32x
ret ret
endfunc endfunc
func ff_restore_rgb_planes10_rvv, zve32x func ff_restore_rgb_planes10_rvv, zve32x, zba
li t1, -0x200 li t1, -0x200
li t2, 0x3FF li t2, 0x3FF
sub a3, a3, a6 sub a3, a3, a6

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_vc1_inv_trans_8x8_dc_rvv, zve64x func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba
lh t2, (a2) lh t2, (a2)
vsetivli zero, 8, e8, mf2, ta, ma vsetivli zero, 8, e8, mf2, ta, ma
vlse64.v v0, (a0), a1 vlse64.v v0, (a0), a1
@ -43,7 +43,7 @@ func ff_vc1_inv_trans_8x8_dc_rvv, zve64x
ret ret
endfunc endfunc
func ff_vc1_inv_trans_4x8_dc_rvv, zve32x func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba
lh t2, (a2) lh t2, (a2)
vsetivli zero, 8, e8, mf2, ta, ma vsetivli zero, 8, e8, mf2, ta, ma
vlse32.v v0, (a0), a1 vlse32.v v0, (a0), a1
@ -67,7 +67,7 @@ func ff_vc1_inv_trans_4x8_dc_rvv, zve32x
ret ret
endfunc endfunc
func ff_vc1_inv_trans_8x4_dc_rvv, zve64x func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba
lh t2, (a2) lh t2, (a2)
vsetivli zero, 4, e8, mf4, ta, ma vsetivli zero, 4, e8, mf4, ta, ma
vlse64.v v0, (a0), a1 vlse64.v v0, (a0), a1

View file

@ -20,7 +20,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
func ff_vorbis_inverse_coupling_rvv, zve32f func ff_vorbis_inverse_coupling_rvv, zve32f, zba
fmv.w.x ft0, zero fmv.w.x ft0, zero
1: 1:
vsetvli t0, a2, e32, m4, ta, ma vsetvli t0, a2, e32, m4, ta, ma

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
#if __riscv_xlen >= 64 #if __riscv_xlen >= 64
func ff_vp7_luma_dc_wht_rvv, zve32x func ff_vp7_luma_dc_wht_rvv, zve32x, zba
li a2, 4 * 16 * 2 li a2, 4 * 16 * 2
li a7, 16 * 2 li a7, 16 * 2
jal t0, 1f jal t0, 1f

View file

@ -440,7 +440,7 @@ endconst
.endm .endm
.macro epel len size type .macro epel len size type
func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x, zba
epel_filter \size \type t epel_filter \size \type t
vsetvlstatic8 \len vsetvlstatic8 \len
1: 1:
@ -455,7 +455,7 @@ endfunc
.endm .endm
.macro epel_hv len hsize vsize .macro epel_hv len hsize vsize
func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x, zba
#if __riscv_xlen == 64 #if __riscv_xlen == 64
addi sp, sp, -48 addi sp, sp, -48
.irp n,0,1,2,3,4,5 .irp n,0,1,2,3,4,5

View file

@ -21,7 +21,7 @@
#include "libavutil/riscv/asm.S" #include "libavutil/riscv/asm.S"
#if __riscv_xlen >= 64 #if __riscv_xlen >= 64
func ff_v_32x32_rvi func ff_v_32x32_rvi, zba
ld t0, (a3) ld t0, (a3)
ld t1, 8(a3) ld t1, 8(a3)
ld t2, 16(a3) ld t2, 16(a3)
@ -42,7 +42,7 @@ func ff_v_32x32_rvi
ret ret
endfunc endfunc
func ff_v_16x16_rvi func ff_v_16x16_rvi, zba
ld t0, (a3) ld t0, (a3)
ld t1, 8(a3) ld t1, 8(a3)
.rept 8 .rept 8
@ -57,7 +57,7 @@ func ff_v_16x16_rvi
ret ret
endfunc endfunc
func ff_v_8x8_rvi func ff_v_8x8_rvi, zba
ld t0, (a3) ld t0, (a3)
.rept 4 .rept 4
add a7, a0, a1 add a7, a0, a1