Unified · Split
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_abs_pow34_rvv, zve32f, zba | 24 | func ff_abs_pow34_rvv, zve32f, zba |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e32, m8, ta, ma | 27 | vsetvli t0, a2, e32, m8, ta, ma |
| 27 | sub a2, a2, t0 | 28 | sub a2, a2, t0 |
| @@ -39,6 +40,7 @@ func ff_abs_pow34_rvv, zve32f, zba · 11 unmodified lines | |||
| 39 | endfunc | 40 | endfunc |
| 40 | 41 | ||
| 41 | func ff_aac_quant_bands_rvv, zve32f, zba | 42 | func ff_aac_quant_bands_rvv, zve32f, zba |
| 43 | lpad 0 | ||
| 42 | NOHWF fmv.w.x fa0, a6 | 44 | NOHWF fmv.w.x fa0, a6 |
| 43 | NOHWF fmv.w.x fa1, a7 | 45 | NOHWF fmv.w.x fa1, a7 |
| 44 | fcvt.s.w ft0, a5 | 46 | fcvt.s.w ft0, a5 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_ps_add_squares_rvv, zve64f, zba | 23 | func ff_ps_add_squares_rvv, zve64f, zba |
| 24 | lpad 0 | ||
| 24 | li t1, 32 | 25 | li t1, 32 |
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e32, m4, ta, ma | 27 | vsetvli t0, a2, e32, m4, ta, ma |
| @@ -40,6 +41,7 @@ func ff_ps_add_squares_rvv, zve64f, zba · 13 unmodified lines | |||
| 40 | endfunc | 41 | endfunc |
| 41 | 42 | ||
| 42 | func ff_ps_mul_pair_single_rvv, zve32f, zba | 43 | func ff_ps_mul_pair_single_rvv, zve32f, zba |
| 44 | lpad 0 | ||
| 43 | 1: | 45 | 1: |
| 44 | vsetvli t0, a3, e32, m4, ta, ma | 46 | vsetvli t0, a3, e32, m4, ta, ma |
| 45 | vlseg2e32.v v24, (a1) | 47 | vlseg2e32.v v24, (a1) |
| @@ -57,6 +59,7 @@ func ff_ps_mul_pair_single_rvv, zve32f, zba · 11 unmodified lines | |||
| 57 | endfunc | 59 | endfunc |
| 58 | 60 | ||
| 59 | func ff_ps_hybrid_analysis_rvv, zve32f | 61 | func ff_ps_hybrid_analysis_rvv, zve32f |
| 62 | lpad 0 | ||
| 60 | /* We need 26 FP registers, for 20 scratch ones. Spill fs0-fs5. */ | 63 | /* We need 26 FP registers, for 20 scratch ones. Spill fs0-fs5. */ |
| 61 | addi sp, sp, -48 | 64 | addi sp, sp, -48 |
| 62 | .irp n, 0, 1, 2, 3, 4, 5 | 65 | .irp n, 0, 1, 2, 3, 4, 5 |
| @@ -135,6 +138,7 @@ NOHWD flw fs\n, (4 * \n)(sp) · 72 unmodified lines | |||
| 135 | endfunc | 138 | endfunc |
| 136 | 139 | ||
| 137 | func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no zve32f here */, zba | 140 | func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no zve32f here */, zba |
| 141 | lpad 0 | ||
| 138 | slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4) | 142 | slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4) |
| 139 | sh2add a1, a2, a1 | 143 | sh2add a1, a2, a1 |
| 140 | add a0, a0, t0 | 144 | add a0, a0, t0 |
| @@ -208,6 +212,7 @@ func ff_ps_hybrid_synthesis_deint_rvv, zve64x, zba · 67 unmodified lines | |||
| 208 | endfunc | 212 | endfunc |
| 209 | 213 | ||
| 210 | func ff_ps_stereo_interpolate_rvv, zve32f, b | 214 | func ff_ps_stereo_interpolate_rvv, zve32f, b |
| 215 | lpad 0 | ||
| 211 | vsetvli t0, zero, e32, m2, ta, ma | 216 | vsetvli t0, zero, e32, m2, ta, ma |
| 212 | vid.v v24 | 217 | vid.v v24 |
| 213 | flw ft0, (a2) | 218 | flw ft0, (a2) |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_ac3_exponent_min_rvb, zbb | 24 | func ff_ac3_exponent_min_rvb, zbb |
| 25 | lpad 0 | ||
| 25 | beqz a1, 3f | 26 | beqz a1, 3f |
| 26 | 1: | 27 | 1: |
| 27 | addi a2, a2, -1 | 28 | addi a2, a2, -1 |
| @@ -43,6 +44,7 @@ func ff_ac3_exponent_min_rvb, zbb · 15 unmodified lines | |||
| 43 | endfunc | 44 | endfunc |
| 44 | 45 | ||
| 45 | func ff_extract_exponents_rvb, zbb | 46 | func ff_extract_exponents_rvb, zbb |
| 47 | lpad 0 | ||
| 46 | 1: | 48 | 1: |
| 47 | lw t0, (a1) | 49 | lw t0, (a1) |
| 48 | addi a0, a0, 1 | 50 | addi a0, a0, 1 |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_ac3_exponent_min_rvv, zve32x | 24 | func ff_ac3_exponent_min_rvv, zve32x |
| 25 | lpad 0 | ||
| 25 | beqz a1, 3f | 26 | beqz a1, 3f |
| 26 | 1: | 27 | 1: |
| 27 | vsetvli t2, a2, e8, m8, ta, ma | 28 | vsetvli t2, a2, e8, m8, ta, ma |
| @@ -44,6 +45,7 @@ func ff_ac3_exponent_min_rvv, zve32x · 16 unmodified lines | |||
| 44 | endfunc | 45 | endfunc |
| 45 | 46 | ||
| 46 | func ff_float_to_fixed24_rvv, zve32f, zba | 47 | func ff_float_to_fixed24_rvv, zve32f, zba |
| 48 | lpad 0 | ||
| 47 | li t1, 1 << 24 | 49 | li t1, 1 << 24 |
| 48 | fcvt.s.w f0, t1 | 50 | fcvt.s.w f0, t1 |
| 49 | 1: | 51 | 1: |
| @@ -62,6 +64,7 @@ endfunc · 12 unmodified lines | |||
| 62 | 64 | ||
| 63 | #if __riscv_xlen >= 64 | 65 | #if __riscv_xlen >= 64 |
| 64 | func ff_sum_square_butterfly_int32_rvv, zve64x, zba | 66 | func ff_sum_square_butterfly_int32_rvv, zve64x, zba |
| 67 | lpad 0 | ||
| 65 | vsetvli t0, zero, e64, m8, ta, ma | 68 | vsetvli t0, zero, e64, m8, ta, ma |
| 66 | vmv.v.x v0, zero | 69 | vmv.v.x v0, zero |
| 67 | vmv.v.x v8, zero | 70 | vmv.v.x v8, zero |
| @@ -102,6 +105,7 @@ endfunc · 34 unmodified lines | |||
| 102 | #endif | 105 | #endif |
| 103 | 106 | ||
| 104 | func ff_sum_square_butterfly_float_rvv, zve32f, zba | 107 | func ff_sum_square_butterfly_float_rvv, zve32f, zba |
| 108 | lpad 0 | ||
| 105 | vsetvli t0, zero, e32, m8, ta, ma | 109 | vsetvli t0, zero, e32, m8, ta, ma |
| 106 | vmv.v.x v0, zero | 110 | vmv.v.x v0, zero |
| 107 | vmv.v.x v8, zero | 111 | vmv.v.x v8, zero |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_extract_exponents_rvvb, zve32x, zvbb, zba | 24 | func ff_extract_exponents_rvvb, zve32x, zvbb, zba |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e32, m8, ta, ma | 27 | vsetvli t0, a2, e32, m8, ta, ma |
| 27 | vle32.v v8, (a1) | 28 | vle32.v v8, (a1) |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if (__riscv_xlen == 64) | 23 | #if (__riscv_xlen == 64) |
| 24 | func ff_alac_decorrelate_stereo_rvv, zve32x, zba | 24 | func ff_alac_decorrelate_stereo_rvv, zve32x, zba |
| 25 | lpad 0 | ||
| 25 | ld a4, 8(a0) | 26 | ld a4, 8(a0) |
| 26 | ld a0, 0(a0) | 27 | ld a0, 0(a0) |
| 27 | 1: | 28 | 1: |
| @@ -44,6 +45,7 @@ func ff_alac_decorrelate_stereo_rvv, zve32x, zba · 16 unmodified lines | |||
| 44 | endfunc | 45 | endfunc |
| 45 | 46 | ||
| 46 | func ff_alac_append_extra_bits_mono_rvv, zve32x, zba | 47 | func ff_alac_append_extra_bits_mono_rvv, zve32x, zba |
| 48 | lpad 0 | ||
| 47 | ld a0, (a0) | 49 | ld a0, (a0) |
| 48 | ld a1, (a1) | 50 | ld a1, (a1) |
| 49 | 1: | 51 | 1: |
| @@ -62,6 +64,7 @@ func ff_alac_append_extra_bits_mono_rvv, zve32x, zba · 12 unmodified lines | |||
| 62 | endfunc | 64 | endfunc |
| 63 | 65 | ||
| 64 | func ff_alac_append_extra_bits_stereo_rvv, zve32x, zba | 66 | func ff_alac_append_extra_bits_stereo_rvv, zve32x, zba |
| 67 | lpad 0 | ||
| 65 | ld a6, 8(a0) | 68 | ld a6, 8(a0) |
| 66 | ld a0, (a0) | 69 | ld a0, (a0) |
| 67 | ld a7, 8(a1) | 70 | ld a7, 8(a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_vector_clipf_rvf, f | 23 | func ff_vector_clipf_rvf, f |
| 24 | lpad 0 | ||
| 24 | NOHWF fmv.w.x fa0, a3 | 25 | NOHWF fmv.w.x fa0, a3 |
| 25 | NOHWF fmv.w.x fa1, a4 | 26 | NOHWF fmv.w.x fa1, a4 |
| 26 | 1: | 27 | 1: |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_scalarproduct_int16_rvv, zve32x, zba | 23 | func ff_scalarproduct_int16_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | vsetvli t0, zero, e32, m8, ta, ma | 25 | vsetvli t0, zero, e32, m8, ta, ma |
| 25 | vmv.v.x v8, zero | 26 | vmv.v.x v8, zero |
| 26 | vmv.s.x v0, zero | 27 | vmv.s.x v0, zero |
| @@ -56,6 +57,7 @@ func ff_vector_clip_int32_rvv, zve32x, zba · 29 unmodified lines | |||
| 56 | endfunc | 57 | endfunc |
| 57 | 58 | ||
| 58 | func ff_vector_clipf_rvv, zve32f, zba | 59 | func ff_vector_clipf_rvv, zve32f, zba |
| 60 | lpad 0 | ||
| 59 | NOHWF fmv.w.x fa0, a3 | 61 | NOHWF fmv.w.x fa0, a3 |
| 60 | NOHWF fmv.w.x fa1, a4 | 62 | NOHWF fmv.w.x fa1, a4 |
| 61 | 1: | 63 | 1: |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_clear_block_rvv, zve64x | 23 | func ff_clear_block_rvv, zve64x |
| 24 | lpad 0 | ||
| 24 | vsetivli zero, 16, e64, m8, ta, ma | 25 | vsetivli zero, 16, e64, m8, ta, ma |
| 25 | vmv.v.i v0, 0 | 26 | vmv.v.i v0, 0 |
| 26 | vse64.v v0, (a0) | 27 | vse64.v v0, (a0) |
| @@ -29,6 +30,7 @@ func ff_clear_block_rvv, zve64x · 2 unmodified lines | |||
| 29 | endfunc | 30 | endfunc |
| 30 | 31 | ||
| 31 | func ff_clear_blocks_rvv, zve64x | 32 | func ff_clear_blocks_rvv, zve64x |
| 33 | lpad 0 | ||
| 32 | vsetivli zero, 16, e64, m8, ta, ma | 34 | vsetivli zero, 16, e64, m8, ta, ma |
| 33 | vmv.v.i v0, 0 | 35 | vmv.v.i v0, 0 |
| 34 | 36 | ||
| @@ -42,6 +44,7 @@ func ff_clear_blocks_rvv, zve64x · 7 unmodified lines | |||
| 42 | endfunc | 44 | endfunc |
| 43 | 45 | ||
| 44 | func ff_fill_block16_rvv, zve32x | 46 | func ff_fill_block16_rvv, zve32x |
| 47 | lpad 0 | ||
| 45 | vsetivli t0, 16, e8, m1, ta, ma | 48 | vsetivli t0, 16, e8, m1, ta, ma |
| 46 | vmv.v.x v8, a1 | 49 | vmv.v.x v8, a1 |
| 47 | 1: | 50 | 1: |
| @@ -54,6 +57,7 @@ func ff_fill_block16_rvv, zve32x · 6 unmodified lines | |||
| 54 | endfunc | 57 | endfunc |
| 55 | 58 | ||
| 56 | func ff_fill_block8_rvv, zve64x | 59 | func ff_fill_block8_rvv, zve64x |
| 60 | lpad 0 | ||
| 57 | vsetvli t0, zero, e8, m4, ta, ma | 61 | vsetvli t0, zero, e8, m4, ta, ma |
| 58 | vmv.v.x v8, a1 | 62 | vmv.v.x v8, a1 |
| 59 | vsetvli t0, a3, e64, m4, ta, ma | 63 | vsetvli t0, a3, e64, m4, ta, ma |
| @@ -24,6 +24,7 @@ · 23 unmodified lines | |||
| 24 | 24 | ||
| 25 | #if (__riscv_xlen >= 64) | 25 | #if (__riscv_xlen >= 64) |
| 26 | func ff_bswap32_buf_rvb, zba, zbb | 26 | func ff_bswap32_buf_rvb, zba, zbb |
| 27 | lpad 0 | ||
| 27 | bswap32_rvb a0, a1, a2 | 28 | bswap32_rvb a0, a1, a2 |
| 28 | endfunc | 29 | endfunc |
| 29 | #endif | 30 | #endif |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_bswap16_buf_rvv, zve32x, zba | 24 | func ff_bswap16_buf_rvv, zve32x, zba |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e16, m8, ta, ma | 27 | vsetvli t0, a2, e16, m8, ta, ma |
| 27 | vle16.v v8, (a1) | 28 | vle16.v v8, (a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_reorder_pixels_rvv, zve32x, zba | 23 | func ff_reorder_pixels_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | srai a2, a2, 1 | 25 | srai a2, a2, 1 |
| 25 | add t1, a1, a2 | 26 | add t1, a1, a2 |
| 26 | 1: | 27 | 1: |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_flac_lpc16_rvv, zve32x, b | 23 | func ff_flac_lpc16_rvv, zve32x, b |
| 24 | lpad 0 | ||
| 24 | vtype_vli t0, a2, t2, e32, ta, ma | 25 | vtype_vli t0, a2, t2, e32, ta, ma |
| 25 | vsetvl zero, a2, t0 | 26 | vsetvl zero, a2, t0 |
| 26 | vle32.v v8, (a1) | 27 | vle32.v v8, (a1) |
| @@ -46,6 +47,7 @@ endfunc · 19 unmodified lines | |||
| 46 | 47 | ||
| 47 | #if (__riscv_xlen == 64) | 48 | #if (__riscv_xlen == 64) |
| 48 | func ff_flac_lpc32_rvv, zve64x, zba | 49 | func ff_flac_lpc32_rvv, zve64x, zba |
| 50 | lpad 0 | ||
| 49 | addi t2, a2, -16 | 51 | addi t2, a2, -16 |
| 50 | ble t2, zero, ff_flac_lpc32_rvv_simple | 52 | ble t2, zero, ff_flac_lpc32_rvv_simple |
| 51 | vsetivli zero, 1, e64, m1, ta, ma | 53 | vsetivli zero, 1, e64, m1, ta, ma |
| @@ -77,6 +79,7 @@ func ff_flac_lpc32_rvv, zve64x, zba · 25 unmodified lines | |||
| 77 | endfunc | 79 | endfunc |
| 78 | 80 | ||
| 79 | func ff_flac_lpc32_rvv_simple, zve64x, b | 81 | func ff_flac_lpc32_rvv_simple, zve64x, b |
| 82 | lpad 0 | ||
| 80 | vtype_vli t3, a2, t1, e64, ta, ma | 83 | vtype_vli t3, a2, t1, e64, ta, ma |
| 81 | vntypei t2, t3 | 84 | vntypei t2, t3 |
| 82 | vsetvl zero, a2, t3 // e64 | 85 | vsetvl zero, a2, t3 // e64 |
| @@ -105,6 +108,7 @@ func ff_flac_lpc32_rvv_simple, zve64x, b · 22 unmodified lines | |||
| 105 | endfunc | 108 | endfunc |
| 106 | 109 | ||
| 107 | func ff_flac_lpc33_rvv, zve64x, b | 110 | func ff_flac_lpc33_rvv, zve64x, b |
| 111 | lpad 0 | ||
| 108 | vtype_vli t0, a3, t1, e64, ta, ma | 112 | vtype_vli t0, a3, t1, e64, ta, ma |
| 109 | vsetvl zero, a3, t0 | 113 | vsetvl zero, a3, t0 |
| 110 | vmv.s.x v0, zero | 114 | vmv.s.x v0, zero |
| @@ -133,6 +137,7 @@ endfunc · 22 unmodified lines | |||
| 133 | #endif | 137 | #endif |
| 134 | 138 | ||
| 135 | func ff_flac_wasted32_rvv, zve32x, zba | 139 | func ff_flac_wasted32_rvv, zve32x, zba |
| 140 | lpad 0 | ||
| 136 | 1: | 141 | 1: |
| 137 | vsetvli t0, a2, e32, m8, ta, ma | 142 | vsetvli t0, a2, e32, m8, ta, ma |
| 138 | vle32.v v8, (a0) | 143 | vle32.v v8, (a0) |
| @@ -146,6 +151,7 @@ func ff_flac_wasted32_rvv, zve32x, zba · 7 unmodified lines | |||
| 146 | endfunc | 151 | endfunc |
| 147 | 152 | ||
| 148 | func ff_flac_wasted33_rvv, zve64x, zba | 153 | func ff_flac_wasted33_rvv, zve64x, zba |
| 154 | lpad 0 | ||
| 149 | srli t0, a2, 5 | 155 | srli t0, a2, 5 |
| 150 | li t1, 1 | 156 | li t1, 1 |
| 151 | bnez t0, 2f | 157 | bnez t0, 2f |
| @@ -178,6 +184,7 @@ endfunc · 26 unmodified lines | |||
| 178 | 184 | ||
| 179 | #if (__riscv_xlen == 64) | 185 | #if (__riscv_xlen == 64) |
| 180 | func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba | 186 | func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba |
| 187 | lpad 0 | ||
| 181 | ld a0, (a0) | 188 | ld a0, (a0) |
| 182 | ld a2, 8(a1) | 189 | ld a2, 8(a1) |
| 183 | ld a1, (a1) | 190 | ld a1, (a1) |
| @@ -201,6 +208,7 @@ func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba · 17 unmodified lines | |||
| 201 | endfunc | 208 | endfunc |
| 202 | 209 | ||
| 203 | func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba | 210 | func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba |
| 211 | lpad 0 | ||
| 204 | ld a0, (a0) | 212 | ld a0, (a0) |
| 205 | ld a2, 8(a1) | 213 | ld a2, 8(a1) |
| 206 | ld t1, 16(a1) | 214 | ld t1, 16(a1) |
| @@ -234,6 +242,7 @@ func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba · 27 unmodified lines | |||
| 234 | endfunc | 242 | endfunc |
| 235 | 243 | ||
| 236 | func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba | 244 | func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba |
| 245 | lpad 0 | ||
| 237 | ld a0, (a0) | 246 | ld a0, (a0) |
| 238 | ld a2, 8(a1) | 247 | ld a2, 8(a1) |
| 239 | ld t1, 16(a1) | 248 | ld t1, 16(a1) |
| @@ -279,6 +288,7 @@ func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba · 39 unmodified lines | |||
| 279 | endfunc | 288 | endfunc |
| 280 | 289 | ||
| 281 | func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba | 290 | func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba |
| 291 | lpad 0 | ||
| 282 | ld a0, (a0) | 292 | ld a0, (a0) |
| 283 | ld a2, 8(a1) | 293 | ld a2, 8(a1) |
| 284 | ld t1, 16(a1) | 294 | ld t1, 16(a1) |
| @@ -333,6 +343,7 @@ func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba · 48 unmodified lines | |||
| 333 | endfunc | 343 | endfunc |
| 334 | 344 | ||
| 335 | func ff_flac_decorrelate_ls_16_rvv, zve32x, zba | 345 | func ff_flac_decorrelate_ls_16_rvv, zve32x, zba |
| 346 | lpad 0 | ||
| 336 | ld a0, (a0) | 347 | ld a0, (a0) |
| 337 | ld a2, 8(a1) | 348 | ld a2, 8(a1) |
| 338 | ld a1, (a1) | 349 | ld a1, (a1) |
| @@ -357,6 +368,7 @@ func ff_flac_decorrelate_ls_16_rvv, zve32x, zba · 18 unmodified lines | |||
| 357 | endfunc | 368 | endfunc |
| 358 | 369 | ||
| 359 | func ff_flac_decorrelate_rs_16_rvv, zve32x, zba | 370 | func ff_flac_decorrelate_rs_16_rvv, zve32x, zba |
| 371 | lpad 0 | ||
| 360 | ld a0, (a0) | 372 | ld a0, (a0) |
| 361 | ld a2, 8(a1) | 373 | ld a2, 8(a1) |
| 362 | ld a1, (a1) | 374 | ld a1, (a1) |
| @@ -381,6 +393,7 @@ func ff_flac_decorrelate_rs_16_rvv, zve32x, zba · 18 unmodified lines | |||
| 381 | endfunc | 393 | endfunc |
| 382 | 394 | ||
| 383 | func ff_flac_decorrelate_ms_16_rvv, zve32x, zba | 395 | func ff_flac_decorrelate_ms_16_rvv, zve32x, zba |
| 396 | lpad 0 | ||
| 384 | ld a0, (a0) | 397 | ld a0, (a0) |
| 385 | ld a2, 8(a1) | 398 | ld a2, 8(a1) |
| 386 | ld a1, (a1) | 399 | ld a1, (a1) |
| @@ -407,6 +420,7 @@ func ff_flac_decorrelate_ms_16_rvv, zve32x, zba · 20 unmodified lines | |||
| 407 | endfunc | 420 | endfunc |
| 408 | 421 | ||
| 409 | func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba | 422 | func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba |
| 423 | lpad 0 | ||
| 410 | ld a0, (a0) | 424 | ld a0, (a0) |
| 411 | ld a2, 8(a1) | 425 | ld a2, 8(a1) |
| 412 | ld a1, (a1) | 426 | ld a1, (a1) |
| @@ -427,6 +441,7 @@ func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba · 14 unmodified lines | |||
| 427 | endfunc | 441 | endfunc |
| 428 | 442 | ||
| 429 | func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba | 443 | func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba |
| 444 | lpad 0 | ||
| 430 | ld a0, (a0) | 445 | ld a0, (a0) |
| 431 | ld a2, 8(a1) | 446 | ld a2, 8(a1) |
| 432 | ld t1, 16(a1) | 447 | ld t1, 16(a1) |
| @@ -456,6 +471,7 @@ func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba · 23 unmodified lines | |||
| 456 | endfunc | 471 | endfunc |
| 457 | 472 | ||
| 458 | func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba | 473 | func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba |
| 474 | lpad 0 | ||
| 459 | ld a0, (a0) | 475 | ld a0, (a0) |
| 460 | ld a2, 8(a1) | 476 | ld a2, 8(a1) |
| 461 | ld t1, 16(a1) | 477 | ld t1, 16(a1) |
| @@ -494,6 +510,7 @@ func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba · 32 unmodified lines | |||
| 494 | endfunc | 510 | endfunc |
| 495 | 511 | ||
| 496 | func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba | 512 | func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba |
| 513 | lpad 0 | ||
| 497 | ld a0, (a0) | 514 | ld a0, (a0) |
| 498 | ld a2, 8(a1) | 515 | ld a2, 8(a1) |
| 499 | ld t1, 16(a1) | 516 | ld t1, 16(a1) |
| @@ -539,6 +556,7 @@ func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba · 39 unmodified lines | |||
| 539 | endfunc | 556 | endfunc |
| 540 | 557 | ||
| 541 | func ff_flac_decorrelate_ls_32_rvv, zve32x, zba | 558 | func ff_flac_decorrelate_ls_32_rvv, zve32x, zba |
| 559 | lpad 0 | ||
| 542 | ld a0, (a0) | 560 | ld a0, (a0) |
| 543 | ld a2, 8(a1) | 561 | ld a2, 8(a1) |
| 544 | ld a1, (a1) | 562 | ld a1, (a1) |
| @@ -560,6 +578,7 @@ func ff_flac_decorrelate_ls_32_rvv, zve32x, zba · 15 unmodified lines | |||
| 560 | endfunc | 578 | endfunc |
| 561 | 579 | ||
| 562 | func ff_flac_decorrelate_rs_32_rvv, zve32x, zba | 580 | func ff_flac_decorrelate_rs_32_rvv, zve32x, zba |
| 581 | lpad 0 | ||
| 563 | ld a0, (a0) | 582 | ld a0, (a0) |
| 564 | ld a2, 8(a1) | 583 | ld a2, 8(a1) |
| 565 | ld a1, (a1) | 584 | ld a1, (a1) |
| @@ -581,6 +600,7 @@ func ff_flac_decorrelate_rs_32_rvv, zve32x, zba · 15 unmodified lines | |||
| 581 | endfunc | 600 | endfunc |
| 582 | 601 | ||
| 583 | func ff_flac_decorrelate_ms_32_rvv, zve32x, zba | 602 | func ff_flac_decorrelate_ms_32_rvv, zve32x, zba |
| 603 | lpad 0 | ||
| 584 | ld a0, (a0) | 604 | ld a0, (a0) |
| 585 | ld a2, 8(a1) | 605 | ld a2, 8(a1) |
| 586 | ld a1, (a1) | 606 | ld a1, (a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_int32_to_float_fmul_scalar_rvv, zve32f, zba | 23 | func ff_int32_to_float_fmul_scalar_rvv, zve32f, zba |
| 24 | lpad 0 | ||
| 24 | NOHWF fmv.w.x fa0, a2 | 25 | NOHWF fmv.w.x fa0, a2 |
| 25 | NOHWF mv a2, a3 | 26 | NOHWF mv a2, a3 |
| 26 | 1: | 27 | 1: |
| @@ -38,6 +39,7 @@ NOHWF mv a2, a3 · 11 unmodified lines | |||
| 38 | endfunc | 39 | endfunc |
| 39 | 40 | ||
| 40 | func ff_int32_to_float_fmul_array8_rvv, zve32f, zba | 41 | func ff_int32_to_float_fmul_array8_rvv, zve32f, zba |
| 42 | lpad 0 | ||
| 41 | srai a4, a4, 3 | 43 | srai a4, a4, 3 |
| 42 | 44 | ||
| 43 | 1: vsetvli t0, a4, e32, m1, ta, ma | 45 | 1: vsetvli t0, a4, e32, m1, ta, ma |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_g722_apply_qmf_rvv, zve32x | 23 | func ff_g722_apply_qmf_rvv, zve32x |
| 24 | lpad 0 | ||
| 24 | lla t0, qmf_coeffs | 25 | lla t0, qmf_coeffs |
| 25 | vsetivli zero, 12, e16, m2, ta, ma | 26 | vsetivli zero, 12, e16, m2, ta, ma |
| 26 | vlseg2e16.v v28, (a0) | 27 | vlseg2e16.v v28, (a0) |
| @@ -23,6 +23,7 @@ · 22 unmodified lines | |||
| 23 | .option push | 23 | .option push |
| 24 | .option norelax | 24 | .option norelax |
| 25 | func ff_h263_h_loop_filter_rvv, zve32x | 25 | func ff_h263_h_loop_filter_rvv, zve32x |
| 26 | lpad 0 | ||
| 26 | addi a0, a0, -2 | 27 | addi a0, a0, -2 |
| 27 | vsetivli zero, 8, e8, mf2, ta, ma | 28 | vsetivli zero, 8, e8, mf2, ta, ma |
| 28 | vlsseg4e8.v v8, (a0), a1 | 29 | vlsseg4e8.v v8, (a0), a1 |
| @@ -83,6 +84,7 @@ endfunc · 54 unmodified lines | |||
| 83 | .option pop | 84 | .option pop |
| 84 | 85 | ||
| 85 | func ff_h263_v_loop_filter_rvv, zve32x | 86 | func ff_h263_v_loop_filter_rvv, zve32x |
| 87 | lpad 0 | ||
| 86 | sub a4, a0, a1 | 88 | sub a4, a0, a1 |
| 87 | vsetivli zero, 8, e8, mf2, ta, ma | 89 | vsetivli zero, 8, e8, mf2, ta, ma |
| 88 | vle8.v v10, (a0) | 90 | vle8.v v10, (a0) |
| @@ -325,6 +325,7 @@ · 324 unmodified lines | |||
| 325 | ret | 325 | ret |
| 326 | .endm | 326 | .endm |
| 327 | 327 | ||
| 328 | .variant_cc h264_put_chroma_mc_rvv | ||
| 328 | func h264_put_chroma_mc_rvv, zve32x, zba | 329 | func h264_put_chroma_mc_rvv, zve32x, zba |
| 329 | 11: | 330 | 11: |
| 330 | li a7, 3 | 331 | li a7, 3 |
| @@ -334,6 +335,7 @@ func h264_put_chroma_mc_rvv, zve32x, zba · 3 unmodified lines | |||
| 334 | do_chroma_mc put 0 | 335 | do_chroma_mc put 0 |
| 335 | endfunc | 336 | endfunc |
| 336 | 337 | ||
| 338 | .variant_cc h264_avg_chroma_mc_rvv | ||
| 337 | func h264_avg_chroma_mc_rvv, zve32x, zba | 339 | func h264_avg_chroma_mc_rvv, zve32x, zba |
| 338 | 21: | 340 | 21: |
| 339 | li a7, 3 | 341 | li a7, 3 |
| @@ -344,31 +346,37 @@ func h264_avg_chroma_mc_rvv, zve32x, zba · 4 unmodified lines | |||
| 344 | endfunc | 346 | endfunc |
| 345 | 347 | ||
| 346 | func h264_put_chroma_mc8_rvv, zve32x | 348 | func h264_put_chroma_mc8_rvv, zve32x |
| 349 | lpad 0 | ||
| 347 | li t6, 8 | 350 | li t6, 8 |
| 348 | j 11b | 351 | j 11b |
| 349 | endfunc | 352 | endfunc |
| 350 | 353 | ||
| 351 | func h264_put_chroma_mc4_rvv, zve32x | 354 | func h264_put_chroma_mc4_rvv, zve32x |
| 355 | lpad 0 | ||
| 352 | li t6, 4 | 356 | li t6, 4 |
| 353 | j 11b | 357 | j 11b |
| 354 | endfunc | 358 | endfunc |
| 355 | 359 | ||
| 356 | func h264_put_chroma_mc2_rvv, zve32x | 360 | func h264_put_chroma_mc2_rvv, zve32x |
| 361 | lpad 0 | ||
| 357 | li t6, 2 | 362 | li t6, 2 |
| 358 | j 11b | 363 | j 11b |
| 359 | endfunc | 364 | endfunc |
| 360 | 365 | ||
| 361 | func h264_avg_chroma_mc8_rvv, zve32x | 366 | func h264_avg_chroma_mc8_rvv, zve32x |
| 367 | lpad 0 | ||
| 362 | li t6, 8 | 368 | li t6, 8 |
| 363 | j 21b | 369 | j 21b |
| 364 | endfunc | 370 | endfunc |
| 365 | 371 | ||
| 366 | func h264_avg_chroma_mc4_rvv, zve32x | 372 | func h264_avg_chroma_mc4_rvv, zve32x |
| 373 | lpad 0 | ||
| 367 | li t6, 4 | 374 | li t6, 4 |
| 368 | j 21b | 375 | j 21b |
| 369 | endfunc | 376 | endfunc |
| 370 | 377 | ||
| 371 | func h264_avg_chroma_mc2_rvv, zve32x | 378 | func h264_avg_chroma_mc2_rvv, zve32x |
| 379 | lpad 0 | ||
| 372 | li t6, 2 | 380 | li t6, 2 |
| 373 | j 21b | 381 | j 21b |
| 374 | endfunc | 382 | endfunc |
| @@ -37,6 +37,7 @@ · 36 unmodified lines | |||
| 37 | .endm | 37 | .endm |
| 38 | 38 | ||
| 39 | func ff_h264_add_pixels4_8_rvv, zve32x | 39 | func ff_h264_add_pixels4_8_rvv, zve32x |
| 40 | lpad 0 | ||
| 40 | vsetivli zero, 4, e8, mf4, ta, ma | 41 | vsetivli zero, 4, e8, mf4, ta, ma |
| 41 | vlse32.v v8, (a0), a2 | 42 | vlse32.v v8, (a0), a2 |
| 42 | vsetivli zero, 4 * 4, e8, m1, ta, ma | 43 | vsetivli zero, 4 * 4, e8, m1, ta, ma |
| @@ -54,6 +55,7 @@ func ff_h264_add_pixels4_8_rvv, zve32x · 11 unmodified lines | |||
| 54 | endfunc | 55 | endfunc |
| 55 | 56 | ||
| 56 | func ff_h264_add_pixels4_16_rvv, zve64x | 57 | func ff_h264_add_pixels4_16_rvv, zve64x |
| 58 | lpad 0 | ||
| 57 | vsetivli zero, 4, e16, mf2, ta, ma | 59 | vsetivli zero, 4, e16, mf2, ta, ma |
| 58 | vlse64.v v8, (a0), a2 | 60 | vlse64.v v8, (a0), a2 |
| 59 | vsetivli zero, 4 * 4, e16, m2, ta, ma | 61 | vsetivli zero, 4 * 4, e16, m2, ta, ma |
| @@ -71,6 +73,7 @@ func ff_h264_add_pixels4_16_rvv, zve64x · 11 unmodified lines | |||
| 71 | endfunc | 73 | endfunc |
| 72 | 74 | ||
| 73 | func ff_h264_add_pixels8_8_rvv, zve64x | 75 | func ff_h264_add_pixels8_8_rvv, zve64x |
| 76 | lpad 0 | ||
| 74 | li t0, 8 * 8 | 77 | li t0, 8 * 8 |
| 75 | vsetivli zero, 8, e8, mf2, ta, ma | 78 | vsetivli zero, 8, e8, mf2, ta, ma |
| 76 | vlse64.v v8, (a0), a2 | 79 | vlse64.v v8, (a0), a2 |
| @@ -89,6 +92,7 @@ func ff_h264_add_pixels8_8_rvv, zve64x · 12 unmodified lines | |||
| 89 | endfunc | 92 | endfunc |
| 90 | 93 | ||
| 91 | func ff_h264_add_pixels8_16_rvv, zve32x | 94 | func ff_h264_add_pixels8_16_rvv, zve32x |
| 95 | lpad 0 | ||
| 92 | li t0, 8 | 96 | li t0, 8 |
| 93 | vsetivli zero, 8, e16, m1, ta, ma | 97 | vsetivli zero, 8, e16, m1, ta, ma |
| 94 | 1: | 98 | 1: |
| @@ -164,6 +164,7 @@ endfunc · 163 unmodified lines | |||
| 164 | 164 | ||
| 165 | .irp w, 16, 8, 4, 2 | 165 | .irp w, 16, 8, 4, 2 |
| 166 | func ff_h264_weight_pixels\w\()_8_rvv, zve32x | 166 | func ff_h264_weight_pixels\w\()_8_rvv, zve32x |
| 167 | lpad 0 | ||
| 167 | li a6, \w | 168 | li a6, \w |
| 168 | .if \w == 16 | 169 | .if \w == 16 |
| 169 | j ff_h264_weight_pixels_simple_8_rvv | 170 | j ff_h264_weight_pixels_simple_8_rvv |
| @@ -173,6 +174,7 @@ func ff_h264_weight_pixels\w\()_8_rvv, zve32x · 3 unmodified lines | |||
| 173 | endfunc | 174 | endfunc |
| 174 | 175 | ||
| 175 | func ff_h264_biweight_pixels\w\()_8_rvv, zve32x | 176 | func ff_h264_biweight_pixels\w\()_8_rvv, zve32x |
| 177 | lpad 0 | ||
| 176 | li t6, \w | 178 | li t6, \w |
| 177 | .if \w == 16 | 179 | .if \w == 16 |
| 178 | j ff_h264_biweight_pixels_simple_8_rvv | 180 | j ff_h264_biweight_pixels_simple_8_rvv |
| @@ -272,6 +274,7 @@ func ff_h264_loop_filter_luma_8_rvv, zve32x · 93 unmodified lines | |||
| 272 | endfunc | 274 | endfunc |
| 273 | 275 | ||
| 274 | func ff_h264_v_loop_filter_luma_8_rvv, zve32x | 276 | func ff_h264_v_loop_filter_luma_8_rvv, zve32x |
| 277 | lpad 0 | ||
| 275 | vsetivli zero, 4, e32, m1, ta, ma | 278 | vsetivli zero, 4, e32, m1, ta, ma |
| 276 | vle8.v v4, (a4) | 279 | vle8.v v4, (a4) |
| 277 | li t0, 0x01010101 | 280 | li t0, 0x01010101 |
| @@ -299,6 +302,7 @@ func ff_h264_v_loop_filter_luma_8_rvv, zve32x · 21 unmodified lines | |||
| 299 | endfunc | 302 | endfunc |
| 300 | 303 | ||
| 301 | func ff_h264_h_loop_filter_luma_8_rvv, zve32x | 304 | func ff_h264_h_loop_filter_luma_8_rvv, zve32x |
| 305 | lpad 0 | ||
| 302 | vsetivli zero, 4, e32, m1, ta, ma | 306 | vsetivli zero, 4, e32, m1, ta, ma |
| 303 | vle8.v v4, (a4) | 307 | vle8.v v4, (a4) |
| 304 | li t0, 0x01010101 | 308 | li t0, 0x01010101 |
| @@ -313,6 +317,7 @@ func ff_h264_h_loop_filter_luma_8_rvv, zve32x · 8 unmodified lines | |||
| 313 | endfunc | 317 | endfunc |
| 314 | 318 | ||
| 315 | func ff_h264_h_loop_filter_luma_mbaff_8_rvv, zve32x | 319 | func ff_h264_h_loop_filter_luma_mbaff_8_rvv, zve32x |
| 320 | lpad 0 | ||
| 316 | vsetivli zero, 4, e16, mf2, ta, ma | 321 | vsetivli zero, 4, e16, mf2, ta, ma |
| 317 | vle8.v v4, (a4) | 322 | vle8.v v4, (a4) |
| 318 | li t0, 0x0101 | 323 | li t0, 0x0101 |
| @@ -55,6 +55,7 @@ func ff_h264_idct4_rvv, zve32x · 54 unmodified lines | |||
| 55 | endfunc | 55 | endfunc |
| 56 | 56 | ||
| 57 | func ff_h264_idct_add_8_rvv, zve32x | 57 | func ff_h264_idct_add_8_rvv, zve32x |
| 58 | lpad 0 | ||
| 58 | csrwi vxrm, 0 | 59 | csrwi vxrm, 0 |
| 59 | .Lidct_add4_8_rvv: | 60 | .Lidct_add4_8_rvv: |
| 60 | vsetivli zero, 4, e16, mf2, ta, ma | 61 | vsetivli zero, 4, e16, mf2, ta, ma |
| @@ -213,6 +214,7 @@ func ff_h264_idct8_rvv, zve32x · 152 unmodified lines | |||
| 213 | endfunc | 214 | endfunc |
| 214 | 215 | ||
| 215 | func ff_h264_idct8_add_8_rvv, zve32x | 216 | func ff_h264_idct8_add_8_rvv, zve32x |
| 217 | lpad 0 | ||
| 216 | csrwi vxrm, 0 | 218 | csrwi vxrm, 0 |
| 217 | .Lidct8_add_8_rvv: | 219 | .Lidct8_add_8_rvv: |
| 218 | vsetivli zero, 8, e16, m1, ta, ma | 220 | vsetivli zero, 8, e16, m1, ta, ma |
| @@ -405,11 +407,13 @@ endfunc · 186 unmodified lines | |||
| 405 | 407 | ||
| 406 | .irp depth, 9, 10, 12, 14 | 408 | .irp depth, 9, 10, 12, 14 |
| 407 | func ff_h264_idct_add_\depth\()_rvv, zve32x | 409 | func ff_h264_idct_add_\depth\()_rvv, zve32x |
| 410 | lpad 0 | ||
| 408 | li a5, (1 << \depth) - 1 | 411 | li a5, (1 << \depth) - 1 |
| 409 | j ff_h264_idct_add_16_rvv | 412 | j ff_h264_idct_add_16_rvv |
| 410 | endfunc | 413 | endfunc |
| 411 | 414 | ||
| 412 | func ff_h264_idct8_add_\depth\()_rvv, zve32x | 415 | func ff_h264_idct8_add_\depth\()_rvv, zve32x |
| 416 | lpad 0 | ||
| 413 | li a5, (1 << \depth) - 1 | 417 | li a5, (1 << \depth) - 1 |
| 414 | j ff_h264_idct8_add_16_rvv | 418 | j ff_h264_idct8_add_16_rvv |
| 415 | endfunc | 419 | endfunc |
| @@ -417,6 +421,7 @@ endfunc · 1 unmodified line | |||
| 417 | 421 | ||
| 418 | .macro idct_dc_add8 width | 422 | .macro idct_dc_add8 width |
| 419 | func ff_h264_idct\width\()_dc_add_8_rvv, zve64x | 423 | func ff_h264_idct\width\()_dc_add_8_rvv, zve64x |
| 424 | lpad 0 | ||
| 420 | .if \width == 8 | 425 | .if \width == 8 |
| 421 | vsetivli zero, \width, e8, mf2, ta, ma | 426 | vsetivli zero, \width, e8, mf2, ta, ma |
| 422 | .else | 427 | .else |
| @@ -517,11 +522,13 @@ idct_dc_add 8 · 94 unmodified lines | |||
| 517 | 522 | ||
| 518 | .irp depth,9,10,12,14 | 523 | .irp depth,9,10,12,14 |
| 519 | func ff_h264_idct4_dc_add_\depth\()_rvv, zve64x | 524 | func ff_h264_idct4_dc_add_\depth\()_rvv, zve64x |
| 525 | lpad 0 | ||
| 520 | li a5, (1 << \depth) - 1 | 526 | li a5, (1 << \depth) - 1 |
| 521 | j ff_h264_idct4_dc_add_16_rvv | 527 | j ff_h264_idct4_dc_add_16_rvv |
| 522 | endfunc | 528 | endfunc |
| 523 | 529 | ||
| 524 | func ff_h264_idct8_dc_add_\depth\()_rvv, zve64x | 530 | func ff_h264_idct8_dc_add_\depth\()_rvv, zve64x |
| 531 | lpad 0 | ||
| 525 | li a5, (1 << \depth) - 1 | 532 | li a5, (1 << \depth) - 1 |
| 526 | j ff_h264_idct8_dc_add_16_rvv | 533 | j ff_h264_idct8_dc_add_16_rvv |
| 527 | endfunc | 534 | endfunc |
| @@ -534,6 +541,9 @@ endconst · 6 unmodified lines | |||
| 534 | 541 | ||
| 535 | .macro idct4_adds type, depth | 542 | .macro idct4_adds type, depth |
| 536 | func ff_h264_idct_add\type\()_\depth\()_rvv, zve32x, b | 543 | func ff_h264_idct_add\type\()_\depth\()_rvv, zve32x, b |
| 544 | .if \depth == 8 | ||
| 545 | lpad 0 | ||
| 546 | .endif | ||
| 537 | csrwi vxrm, 0 | 547 | csrwi vxrm, 0 |
| 538 | lla t0, ff_h264_scan8 | 548 | lla t0, ff_h264_scan8 |
| 539 | li t1, 32 * (\depth / 8) | 549 | li t1, 32 * (\depth / 8) |
| @@ -609,6 +619,9 @@ idct4_adds 16intra, \depth · 69 unmodified lines | |||
| 609 | 619 | ||
| 610 | #if (__riscv_xlen == 64) | 620 | #if (__riscv_xlen == 64) |
| 611 | func ff_h264_idct8_add4_\depth\()_rvv, zve32x, b | 621 | func ff_h264_idct8_add4_\depth\()_rvv, zve32x, b |
| 622 | .if \depth == 8 | ||
| 623 | lpad 0 | ||
| 624 | .endif | ||
| 612 | csrwi vxrm, 0 | 625 | csrwi vxrm, 0 |
| 613 | addi sp, sp, -48 | 626 | addi sp, sp, -48 |
| 614 | lla t0, ff_h264_scan8 | 627 | lla t0, ff_h264_scan8 |
| @@ -686,17 +699,20 @@ endfunc · 71 unmodified lines | |||
| 686 | 699 | ||
| 687 | .irp depth, 9, 10, 12, 14 | 700 | .irp depth, 9, 10, 12, 14 |
| 688 | func ff_h264_idct_add16_\depth\()_rvv, zve32x | 701 | func ff_h264_idct_add16_\depth\()_rvv, zve32x |
| 702 | lpad 0 | ||
| 689 | li a5, (1 << \depth) - 1 | 703 | li a5, (1 << \depth) - 1 |
| 690 | j ff_h264_idct_add16_16_rvv | 704 | j ff_h264_idct_add16_16_rvv |
| 691 | endfunc | 705 | endfunc |
| 692 | 706 | ||
| 693 | func ff_h264_idct_add16intra_\depth\()_rvv, zve32x | 707 | func ff_h264_idct_add16intra_\depth\()_rvv, zve32x |
| 708 | lpad 0 | ||
| 694 | li a5, (1 << \depth) - 1 | 709 | li a5, (1 << \depth) - 1 |
| 695 | j ff_h264_idct_add16intra_16_rvv | 710 | j ff_h264_idct_add16intra_16_rvv |
| 696 | endfunc | 711 | endfunc |
| 697 | 712 | ||
| 698 | #if (__riscv_xlen == 64) | 713 | #if (__riscv_xlen == 64) |
| 699 | func ff_h264_idct8_add4_\depth\()_rvv, zve32x | 714 | func ff_h264_idct8_add4_\depth\()_rvv, zve32x |
| 715 | lpad 0 | ||
| 700 | li a5, (1 << \depth) - 1 | 716 | li a5, (1 << \depth) - 1 |
| 701 | j ff_h264_idct8_add4_16_rvv | 717 | j ff_h264_idct8_add4_16_rvv |
| 702 | endfunc | 718 | endfunc |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_add_int16_rvv, zve32x, zba | 23 | func ff_add_int16_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | 1: | 25 | 1: |
| 25 | vsetvli t0, a3, e16, m8, ta, ma | 26 | vsetvli t0, a3, e16, m8, ta, ma |
| 26 | vle16.v v16, (a0) | 27 | vle16.v v16, (a0) |
| @@ -37,6 +38,7 @@ func ff_add_int16_rvv, zve32x, zba · 10 unmodified lines | |||
| 37 | endfunc | 38 | endfunc |
| 38 | 39 | ||
| 39 | func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, b | 40 | func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, b |
| 41 | lpad 0 | ||
| 40 | vtype_ivli t1, 4, e8, ta, ma | 42 | vtype_ivli t1, 4, e8, ta, ma |
| 41 | li t0, 4 | 43 | li t0, 4 |
| 42 | vsetvl zero, t0, t1 | 44 | vsetvl zero, t0, t1 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_put_pixels_clamped_rvv, zve64x | 23 | func ff_put_pixels_clamped_rvv, zve64x |
| 24 | lpad 0 | ||
| 24 | li t0, 8 * 8 | 25 | li t0, 8 * 8 |
| 25 | vsetvli zero, t0, e16, m8, ta, ma | 26 | vsetvli zero, t0, e16, m8, ta, ma |
| 26 | vle16.v v24, (a0) | 27 | vle16.v v24, (a0) |
| @@ -35,6 +36,7 @@ func ff_put_pixels_clamped_rvv, zve64x · 8 unmodified lines | |||
| 35 | endfunc | 36 | endfunc |
| 36 | 37 | ||
| 37 | func ff_put_signed_pixels_clamped_rvv, zve64x | 38 | func ff_put_signed_pixels_clamped_rvv, zve64x |
| 39 | lpad 0 | ||
| 38 | li t0, 8 * 8 | 40 | li t0, 8 * 8 |
| 39 | vsetvli zero, t0, e8, m4, ta, ma | 41 | vsetvli zero, t0, e8, m4, ta, ma |
| 40 | vle16.v v24, (a0) | 42 | vle16.v v24, (a0) |
| @@ -47,6 +49,7 @@ func ff_put_signed_pixels_clamped_rvv, zve64x · 6 unmodified lines | |||
| 47 | endfunc | 49 | endfunc |
| 48 | 50 | ||
| 49 | func ff_add_pixels_clamped_rvv, zve64x | 51 | func ff_add_pixels_clamped_rvv, zve64x |
| 52 | lpad 0 | ||
| 50 | vsetivli zero, 8, e8, mf2, ta, ma | 53 | vsetivli zero, 8, e8, mf2, ta, ma |
| 51 | li t0, 8 * 8 | 54 | li t0, 8 * 8 |
| 52 | vlse64.v v16, (a1), a2 | 55 | vlse64.v v16, (a1), a2 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_ict_float_rvv, zve32f, zba | 23 | func ff_ict_float_rvv, zve32f, zba |
| 24 | lpad 0 | ||
| 24 | lla t0, ff_jpeg2000_f_ict_params | 25 | lla t0, ff_jpeg2000_f_ict_params |
| 25 | flw ft0, 0(t0) | 26 | flw ft0, 0(t0) |
| 26 | flw ft1, 4(t0) | 27 | flw ft1, 4(t0) |
| @@ -49,6 +50,7 @@ func ff_ict_float_rvv, zve32f, zba · 22 unmodified lines | |||
| 49 | endfunc | 50 | endfunc |
| 50 | 51 | ||
| 51 | func ff_rct_int_rvv, zve32x, zba | 52 | func ff_rct_int_rvv, zve32x, zba |
| 53 | lpad 0 | ||
| 52 | 1: | 54 | 1: |
| 53 | vsetvli t0, a3, e32, m8, ta, ma | 55 | vsetvli t0, a3, e32, m8, ta, ma |
| 54 | vle32.v v16, (a1) | 56 | vle32.v v16, (a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba | 23 | func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | vsetvli t0, zero, e32, m8, ta, ma | 25 | vsetvli t0, zero, e32, m8, ta, ma |
| 25 | vmv.v.x v0, zero | 26 | vmv.v.x v0, zero |
| 26 | 1: | 27 | 1: |
| @@ -45,6 +46,7 @@ func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba · 18 unmodified lines | |||
| 45 | endfunc | 46 | endfunc |
| 46 | 47 | ||
| 47 | func ff_scalarproduct_and_madd_int32_rvv, zve32x, zba | 48 | func ff_scalarproduct_and_madd_int32_rvv, zve32x, zba |
| 49 | lpad 0 | ||
| 48 | vsetvli t0, zero, e32, m8, ta, ma | 50 | vsetvli t0, zero, e32, m8, ta, ma |
| 49 | vmv.v.x v0, zero | 51 | vmv.v.x v0, zero |
| 50 | 1: | 52 | 1: |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_llvid_add_bytes_rvv, zve32x | 23 | func ff_llvid_add_bytes_rvv, zve32x |
| 24 | lpad 0 | ||
| 24 | 1: | 25 | 1: |
| 25 | vsetvli t0, a2, e8, m8, ta, ma | 26 | vsetvli t0, a2, e8, m8, ta, ma |
| 26 | vle8.v v0, (a1) | 27 | vle8.v v0, (a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_llvidenc_diff_bytes_rvv, zve32x | 23 | func ff_llvidenc_diff_bytes_rvv, zve32x |
| 24 | lpad 0 | ||
| 24 | 1: | 25 | 1: |
| 25 | vsetvli t0, a3, e8, m8, ta, ma | 26 | vsetvli t0, a3, e8, m8, ta, ma |
| 26 | vle8.v v0, (a1) | 27 | vle8.v v0, (a1) |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_lpc_apply_welch_window_rvv, zve64d, zba | 24 | func ff_lpc_apply_welch_window_rvv, zve64d, zba |
| 25 | lpad 0 | ||
| 25 | vsetvli t0, zero, e64, m8, ta, ma | 26 | vsetvli t0, zero, e64, m8, ta, ma |
| 26 | vid.v v0 | 27 | vid.v v0 |
| 27 | addi t2, a1, -1 | 28 | addi t2, a1, -1 |
| @@ -87,6 +88,7 @@ func ff_lpc_apply_welch_window_rvv, zve64d, zba · 59 unmodified lines | |||
| 87 | endfunc | 88 | endfunc |
| 88 | 89 | ||
| 89 | func ff_lpc_compute_autocorr_rvv, zve64d, b | 90 | func ff_lpc_compute_autocorr_rvv, zve64d, b |
| 91 | lpad 0 | ||
| 90 | vtype_vli t1, a2, t2, e64, ta, ma, 1 | 92 | vtype_vli t1, a2, t2, e64, ta, ma, 1 |
| 91 | addi a2, a2, 1 | 93 | addi a2, a2, 1 |
| 92 | li t0, 1 | 94 | li t0, 1 |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | |||
| 27 | .endm | 27 | .endm |
| 28 | 28 | ||
| 29 | func ff_pix_abs16_rvv, zve32x | 29 | func ff_pix_abs16_rvv, zve32x |
| 30 | lpad 0 | ||
| 30 | vsetivli zero, 1, e32, m1, ta, ma | 31 | vsetivli zero, 1, e32, m1, ta, ma |
| 31 | vmv.s.x v0, zero | 32 | vmv.s.x v0, zero |
| 32 | 1: | 33 | 1: |
| @@ -47,6 +48,7 @@ func ff_pix_abs16_rvv, zve32x · 14 unmodified lines | |||
| 47 | endfunc | 48 | endfunc |
| 48 | 49 | ||
| 49 | func ff_pix_abs8_rvv, zve32x | 50 | func ff_pix_abs8_rvv, zve32x |
| 51 | lpad 0 | ||
| 50 | vsetivli zero, 1, e32, m1, ta, ma | 52 | vsetivli zero, 1, e32, m1, ta, ma |
| 51 | vmv.s.x v0, zero | 53 | vmv.s.x v0, zero |
| 52 | 1: | 54 | 1: |
| @@ -67,6 +69,7 @@ func ff_pix_abs8_rvv, zve32x · 14 unmodified lines | |||
| 67 | endfunc | 69 | endfunc |
| 68 | 70 | ||
| 69 | func ff_pix_abs16_x2_rvv, zve32x | 71 | func ff_pix_abs16_x2_rvv, zve32x |
| 72 | lpad 0 | ||
| 70 | csrwi vxrm, 0 | 73 | csrwi vxrm, 0 |
| 71 | vsetivli zero, 1, e32, m1, ta, ma | 74 | vsetivli zero, 1, e32, m1, ta, ma |
| 72 | li t5, 1 | 75 | li t5, 1 |
| @@ -92,6 +95,7 @@ func ff_pix_abs16_x2_rvv, zve32x · 19 unmodified lines | |||
| 92 | endfunc | 95 | endfunc |
| 93 | 96 | ||
| 94 | func ff_pix_abs8_x2_rvv, zve32x | 97 | func ff_pix_abs8_x2_rvv, zve32x |
| 98 | lpad 0 | ||
| 95 | csrwi vxrm, 0 | 99 | csrwi vxrm, 0 |
| 96 | vsetivli zero, 1, e32, m1, ta, ma | 100 | vsetivli zero, 1, e32, m1, ta, ma |
| 97 | li t5, 1 | 101 | li t5, 1 |
| @@ -117,6 +121,7 @@ func ff_pix_abs8_x2_rvv, zve32x · 19 unmodified lines | |||
| 117 | endfunc | 121 | endfunc |
| 118 | 122 | ||
| 119 | func ff_pix_abs16_y2_rvv, zve32x | 123 | func ff_pix_abs16_y2_rvv, zve32x |
| 124 | lpad 0 | ||
| 120 | csrwi vxrm, 0 | 125 | csrwi vxrm, 0 |
| 121 | vsetivli zero, 1, e32, m1, ta, ma | 126 | vsetivli zero, 1, e32, m1, ta, ma |
| 122 | add t1, a2, a3 | 127 | add t1, a2, a3 |
| @@ -142,6 +147,7 @@ func ff_pix_abs16_y2_rvv, zve32x · 19 unmodified lines | |||
| 142 | endfunc | 147 | endfunc |
| 143 | 148 | ||
| 144 | func ff_pix_abs8_y2_rvv, zve32x | 149 | func ff_pix_abs8_y2_rvv, zve32x |
| 150 | lpad 0 | ||
| 145 | csrwi vxrm, 0 | 151 | csrwi vxrm, 0 |
| 146 | vsetivli zero, 1, e32, m1, ta, ma | 152 | vsetivli zero, 1, e32, m1, ta, ma |
| 147 | add t1, a2, a3 | 153 | add t1, a2, a3 |
| @@ -167,6 +173,7 @@ func ff_pix_abs8_y2_rvv, zve32x · 19 unmodified lines | |||
| 167 | endfunc | 173 | endfunc |
| 168 | 174 | ||
| 169 | func ff_sse16_rvv, zve32x | 175 | func ff_sse16_rvv, zve32x |
| 176 | lpad 0 | ||
| 170 | vsetivli t0, 16, e32, m4, ta, ma | 177 | vsetivli t0, 16, e32, m4, ta, ma |
| 171 | vmv.v.x v24, zero | 178 | vmv.v.x v24, zero |
| 172 | vmv.s.x v0, zero | 179 | vmv.s.x v0, zero |
| @@ -189,6 +196,7 @@ func ff_sse16_rvv, zve32x · 16 unmodified lines | |||
| 189 | endfunc | 196 | endfunc |
| 190 | 197 | ||
| 191 | func ff_sse8_rvv, zve32x | 198 | func ff_sse8_rvv, zve32x |
| 199 | lpad 0 | ||
| 192 | vsetivli t0, 8, e32, m2, ta, ma | 200 | vsetivli t0, 8, e32, m2, ta, ma |
| 193 | vmv.v.x v24, zero | 201 | vmv.v.x v24, zero |
| 194 | vmv.s.x v0, zero | 202 | vmv.s.x v0, zero |
| @@ -211,6 +219,7 @@ func ff_sse8_rvv, zve32x · 16 unmodified lines | |||
| 211 | endfunc | 219 | endfunc |
| 212 | 220 | ||
| 213 | func ff_sse4_rvv, zve32x | 221 | func ff_sse4_rvv, zve32x |
| 222 | lpad 0 | ||
| 214 | vsetivli t0, 4, e32, m1, ta, ma | 223 | vsetivli t0, 4, e32, m1, ta, ma |
| 215 | vmv.v.x v24, zero | 224 | vmv.v.x v24, zero |
| 216 | vmv.s.x v0, zero | 225 | vmv.s.x v0, zero |
| @@ -239,6 +248,7 @@ endfunc · 22 unmodified lines | |||
| 239 | .endm | 248 | .endm |
| 240 | 249 | ||
| 241 | .macro vsad_vsse16 type | 250 | .macro vsad_vsse16 type |
| 251 | lpad 0 | ||
| 242 | vsetivli t0, 16, e32, m4, ta, ma | 252 | vsetivli t0, 16, e32, m4, ta, ma |
| 243 | addi a4, a4, -1 | 253 | addi a4, a4, -1 |
| 244 | add t1, a1, a3 | 254 | add t1, a1, a3 |
| @@ -277,6 +287,7 @@ endfunc · 32 unmodified lines | |||
| 277 | .endm | 287 | .endm |
| 278 | 288 | ||
| 279 | .macro vsad_vsse8 type | 289 | .macro vsad_vsse8 type |
| 290 | lpad 0 | ||
| 280 | vsetivli t0, 8, e32, m2, ta, ma | 291 | vsetivli t0, 8, e32, m2, ta, ma |
| 281 | addi a4, a4, -1 | 292 | addi a4, a4, -1 |
| 282 | add t1, a1, a3 | 293 | add t1, a1, a3 |
| @@ -315,6 +326,7 @@ endfunc · 32 unmodified lines | |||
| 315 | .endm | 326 | .endm |
| 316 | 327 | ||
| 317 | .macro vsad_vsse_intra16 type | 328 | .macro vsad_vsse_intra16 type |
| 329 | lpad 0 | ||
| 318 | vsetivli t0, 16, e32, m4, ta, ma | 330 | vsetivli t0, 16, e32, m4, ta, ma |
| 319 | addi a4, a4, -1 | 331 | addi a4, a4, -1 |
| 320 | add t1, a1, a3 | 332 | add t1, a1, a3 |
| @@ -346,6 +358,7 @@ endfunc · 25 unmodified lines | |||
| 346 | .endm | 358 | .endm |
| 347 | 359 | ||
| 348 | .macro vsad_vsse_intra8 type | 360 | .macro vsad_vsse_intra8 type |
| 361 | lpad 0 | ||
| 349 | vsetivli t0, 8, e32, m2, ta, ma | 362 | vsetivli t0, 8, e32, m2, ta, ma |
| 350 | addi a4, a4, -1 | 363 | addi a4, a4, -1 |
| 351 | add t1, a1, a3 | 364 | add t1, a1, a3 |
| @@ -409,6 +422,8 @@ func ff_vsad_intra8_rvv, zve32x · 57 unmodified lines | |||
| 409 | endfunc | 422 | endfunc |
| 410 | 423 | ||
| 411 | func ff_nsse16_rvv, zve32x | 424 | func ff_nsse16_rvv, zve32x |
| 425 | lpad 0 | ||
| 426 | |||
| 412 | .macro squarediff16 | 427 | .macro squarediff16 |
| 413 | vsetivli zero, 16, e8, m1, tu, ma | 428 | vsetivli zero, 16, e8, m1, tu, ma |
| 414 | vle8.v v4, (a1) | 429 | vle8.v v4, (a1) |
| @@ -468,6 +483,8 @@ func ff_nsse16_rvv, zve32x · 53 unmodified lines | |||
| 468 | endfunc | 483 | endfunc |
| 469 | 484 | ||
| 470 | func ff_nsse8_rvv, zve32x | 485 | func ff_nsse8_rvv, zve32x |
| 486 | lpad 0 | ||
| 487 | |||
| 471 | .macro squarediff8 | 488 | .macro squarediff8 |
| 472 | vsetivli zero, 8, e8, mf2, tu, ma | 489 | vsetivli zero, 8, e8, mf2, tu, ma |
| 473 | vle8.v v4, (a1) | 490 | vle8.v v4, (a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_opus_postfilter_rvv, zve32f, b | 23 | func ff_opus_postfilter_rvv, zve32f, b |
| 24 | lpad 0 | ||
| 24 | flw fa0, 0(a2) // g0 | 25 | flw fa0, 0(a2) // g0 |
| 25 | slli t1, a1, 2 | 26 | slli t1, a1, 2 |
| 26 | flw fa1, 4(a2) // g1 | 27 | flw fa1, 4(a2) // g1 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_get_pixels_8_rvi | 23 | func ff_get_pixels_8_rvi |
| 24 | lpad 0 | ||
| 24 | .irp row, 0, 1, 2, 3, 4, 5, 6, 7 | 25 | .irp row, 0, 1, 2, 3, 4, 5, 6, 7 |
| 25 | ld t0, (a1) | 26 | ld t0, (a1) |
| 26 | add a1, a1, a2 | 27 | add a1, a1, a2 |
| @@ -47,6 +48,7 @@ func ff_get_pixels_8_rvi · 20 unmodified lines | |||
| 47 | endfunc | 48 | endfunc |
| 48 | 49 | ||
| 49 | func ff_get_pixels_16_rvi | 50 | func ff_get_pixels_16_rvi |
| 51 | lpad 0 | ||
| 50 | .irp row, 0, 1, 2, 3, 4, 5, 6, 7 | 52 | .irp row, 0, 1, 2, 3, 4, 5, 6, 7 |
| 51 | ld t0, 0(a1) | 53 | ld t0, 0(a1) |
| 52 | ld t1, 8(a1) | 54 | ld t1, 8(a1) |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_get_pixels_8_rvv, zve64x | 23 | func ff_get_pixels_8_rvv, zve64x |
| 24 | lpad 0 | ||
| 24 | vsetivli zero, 8, e8, mf2, ta, ma | 25 | vsetivli zero, 8, e8, mf2, ta, ma |
| 25 | li t0, 8 * 8 | 26 | li t0, 8 * 8 |
| 26 | 1: | 27 | 1: |
| @@ -32,6 +33,7 @@ func ff_get_pixels_8_rvv, zve64x · 5 unmodified lines | |||
| 32 | endfunc | 33 | endfunc |
| 33 | 34 | ||
| 34 | func ff_get_pixels_unaligned_8_rvv, zve64x | 35 | func ff_get_pixels_unaligned_8_rvv, zve64x |
| 36 | lpad 0 | ||
| 35 | andi t1, a1, 7 | 37 | andi t1, a1, 7 |
| 36 | vsetivli zero, 8, e64, m4, ta, ma | 38 | vsetivli zero, 8, e64, m4, ta, ma |
| 37 | li t0, 8 * 8 | 39 | li t0, 8 * 8 |
| @@ -52,6 +54,7 @@ func ff_get_pixels_unaligned_8_rvv, zve64x · 14 unmodified lines | |||
| 52 | endfunc | 54 | endfunc |
| 53 | 55 | ||
| 54 | func ff_diff_pixels_rvv, zve64x | 56 | func ff_diff_pixels_rvv, zve64x |
| 57 | lpad 0 | ||
| 55 | vsetivli zero, 8, e8, mf2, ta, ma | 58 | vsetivli zero, 8, e8, mf2, ta, ma |
| 56 | li t0, 8 * 8 | 59 | li t0, 8 * 8 |
| 57 | vlse64.v v16, (a1), a3 | 60 | vlse64.v v16, (a1), a3 |
| @@ -63,6 +66,7 @@ func ff_diff_pixels_rvv, zve64x · 5 unmodified lines | |||
| 63 | endfunc | 66 | endfunc |
| 64 | 67 | ||
| 65 | func ff_diff_pixels_unaligned_rvv, zve32x | 68 | func ff_diff_pixels_unaligned_rvv, zve32x |
| 69 | lpad 0 | ||
| 66 | vsetivli zero, 8, e8, mf2, ta, ma | 70 | vsetivli zero, 8, e8, mf2, ta, ma |
| 67 | vlsseg8e8.v v16, (a1), a3 | 71 | vlsseg8e8.v v16, (a1), a3 |
| 68 | vlsseg8e8.v v24, (a2), a3 | 72 | vlsseg8e8.v v24, (a2), a3 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_rv34_inv_transform_dc_rvv, zve32x | 23 | func ff_rv34_inv_transform_dc_rvv, zve32x |
| 24 | lpad 0 | ||
| 24 | lh t1, 0(a0) | 25 | lh t1, 0(a0) |
| 25 | li t0, 13 * 13 * 3 | 26 | li t0, 13 * 13 * 3 |
| 26 | mul t2, t0, t1 | 27 | mul t2, t0, t1 |
| @@ -33,6 +34,7 @@ func ff_rv34_inv_transform_dc_rvv, zve32x · 6 unmodified lines | |||
| 33 | endfunc | 34 | endfunc |
| 34 | 35 | ||
| 35 | func ff_rv34_idct_dc_add_rvv, zve32x | 36 | func ff_rv34_idct_dc_add_rvv, zve32x |
| 37 | lpad 0 | ||
| 36 | vsetivli zero, 4, e8, mf4, ta, ma | 38 | vsetivli zero, 4, e8, mf4, ta, ma |
| 37 | vlse32.v v0, (a0), a1 | 39 | vlse32.v v0, (a0), a1 |
| 38 | li t1, 169 | 40 | li t1, 169 |
| @@ -351,21 +351,25 @@ func ff_avg_rv40_chroma_mc_rvv, zve32x, zba · 350 unmodified lines | |||
| 351 | endfunc | 351 | endfunc |
| 352 | 352 | ||
| 353 | func ff_put_rv40_chroma_mc8_rvv, zve32x | 353 | func ff_put_rv40_chroma_mc8_rvv, zve32x |
| 354 | lpad 0 | ||
| 354 | li t6, 8 | 355 | li t6, 8 |
| 355 | j 11b | 356 | j 11b |
| 356 | endfunc | 357 | endfunc |
| 357 | 358 | ||
| 358 | func ff_put_rv40_chroma_mc4_rvv, zve32x | 359 | func ff_put_rv40_chroma_mc4_rvv, zve32x |
| 360 | lpad 0 | ||
| 359 | li t6, 4 | 361 | li t6, 4 |
| 360 | j 11b | 362 | j 11b |
| 361 | endfunc | 363 | endfunc |
| 362 | 364 | ||
| 363 | func ff_avg_rv40_chroma_mc8_rvv, zve32x | 365 | func ff_avg_rv40_chroma_mc8_rvv, zve32x |
| 366 | lpad 0 | ||
| 364 | li t6, 8 | 367 | li t6, 8 |
| 365 | j 21b | 368 | j 21b |
| 366 | endfunc | 369 | endfunc |
| 367 | 370 | ||
| 368 | func ff_avg_rv40_chroma_mc4_rvv, zve32x | 371 | func ff_avg_rv40_chroma_mc4_rvv, zve32x |
| 372 | lpad 0 | ||
| 369 | li t6, 4 | 373 | li t6, 4 |
| 370 | j 21b | 374 | j 21b |
| 371 | endfunc | 375 | endfunc |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_sbr_sum64x5_rvv, zve32f, zba | 23 | func ff_sbr_sum64x5_rvv, zve32f, zba |
| 24 | lpad 0 | ||
| 24 | li a5, 64 | 25 | li a5, 64 |
| 25 | addi a1, a0, 64 * 4 | 26 | addi a1, a0, 64 * 4 |
| 26 | addi a2, a0, 128 * 4 | 27 | addi a2, a0, 128 * 4 |
| @@ -50,6 +51,7 @@ func ff_sbr_sum64x5_rvv, zve32f, zba · 23 unmodified lines | |||
| 50 | endfunc | 51 | endfunc |
| 51 | 52 | ||
| 52 | func ff_sbr_sum_square_rvv, zve32f, zba | 53 | func ff_sbr_sum_square_rvv, zve32f, zba |
| 54 | lpad 0 | ||
| 53 | vsetvli t0, zero, e32, m8, ta, ma | 55 | vsetvli t0, zero, e32, m8, ta, ma |
| 54 | slli a1, a1, 1 | 56 | slli a1, a1, 1 |
| 55 | vmv.v.x v8, zero | 57 | vmv.v.x v8, zero |
| @@ -69,6 +71,7 @@ NOHWF fmv.x.w a0, fa0 · 13 unmodified lines | |||
| 69 | endfunc | 71 | endfunc |
| 70 | 72 | ||
| 71 | func ff_sbr_autocorrelate_rvv, zve32f | 73 | func ff_sbr_autocorrelate_rvv, zve32f |
| 74 | lpad 0 | ||
| 72 | vsetvli t0, zero, e32, m4, ta, ma | 75 | vsetvli t0, zero, e32, m4, ta, ma |
| 73 | vmv.v.x v0, zero | 76 | vmv.v.x v0, zero |
| 74 | flw fa0, (a0) | 77 | flw fa0, (a0) |
| @@ -158,6 +161,7 @@ func ff_sbr_autocorrelate_rvv, zve32f · 83 unmodified lines | |||
| 158 | endfunc | 161 | endfunc |
| 159 | 162 | ||
| 160 | func ff_sbr_hf_gen_rvv, zve32f, zba | 163 | func ff_sbr_hf_gen_rvv, zve32f, zba |
| 164 | lpad 0 | ||
| 161 | NOHWF fmv.w.x fa0, a4 | 165 | NOHWF fmv.w.x fa0, a4 |
| 162 | NOHWF mv a4, a5 | 166 | NOHWF mv a4, a5 |
| 163 | NOHWF mv a5, a6 | 167 | NOHWF mv a5, a6 |
| @@ -208,6 +212,7 @@ NOHWF mv a5, a6 · 44 unmodified lines | |||
| 208 | endfunc | 212 | endfunc |
| 209 | 213 | ||
| 210 | func ff_sbr_hf_g_filt_rvv, zve32f, zba | 214 | func ff_sbr_hf_g_filt_rvv, zve32f, zba |
| 215 | lpad 0 | ||
| 211 | li t1, 40 * 2 * 4 | 216 | li t1, 40 * 2 * 4 |
| 212 | sh3add a1, a4, a1 | 217 | sh3add a1, a4, a1 |
| 213 | 1: | 218 | 1: |
| @@ -273,15 +278,18 @@ endfunc · 59 unmodified lines | |||
| 273 | .endm | 278 | .endm |
| 274 | 279 | ||
| 275 | func ff_sbr_hf_apply_noise_0_rvv, zve32f, b | 280 | func ff_sbr_hf_apply_noise_0_rvv, zve32f, b |
| 281 | lpad 0 | ||
| 276 | hf_apply_noise 0 | 282 | hf_apply_noise 0 |
| 277 | endfunc | 283 | endfunc |
| 278 | 284 | ||
| 279 | func ff_sbr_hf_apply_noise_3_rvv, zve32f, b | 285 | func ff_sbr_hf_apply_noise_3_rvv, zve32f, b |
| 286 | lpad 0 | ||
| 280 | not a4, a4 // invert parity of kx | 287 | not a4, a4 // invert parity of kx |
| 281 | // fall through | 288 | // fall through |
| 282 | endfunc | 289 | endfunc |
| 283 | 290 | ||
| 284 | func ff_sbr_hf_apply_noise_1_rvv, zve32f, b | 291 | func ff_sbr_hf_apply_noise_1_rvv, zve32f, b |
| 292 | lpad 0 | ||
| 285 | vsetvli t0, zero, e32, m4, ta, ma | 293 | vsetvli t0, zero, e32, m4, ta, ma |
| 286 | vid.v v4 | 294 | vid.v v4 |
| 287 | vxor.vx v4, v4, a4 | 295 | vxor.vx v4, v4, a4 |
| @@ -290,5 +298,6 @@ func ff_sbr_hf_apply_noise_1_rvv, zve32f, b · 2 unmodified lines | |||
| 290 | endfunc | 298 | endfunc |
| 291 | 299 | ||
| 292 | func ff_sbr_hf_apply_noise_2_rvv, zve32f, b | 300 | func ff_sbr_hf_apply_noise_2_rvv, zve32f, b |
| 301 | lpad 0 | ||
| 293 | hf_apply_noise 2 | 302 | hf_apply_noise 2 |
| 294 | endfunc | 303 | endfunc |
| @@ -37,6 +37,7 @@ · 36 unmodified lines | |||
| 37 | .endm | 37 | .endm |
| 38 | 38 | ||
| 39 | func ff_startcode_find_candidate_rvb, zbb | 39 | func ff_startcode_find_candidate_rvb, zbb |
| 40 | lpad 0 | ||
| 40 | add a1, a0, a1 | 41 | add a1, a0, a1 |
| 41 | 42 | ||
| 42 | // Potentially unaligned head | 43 | // Potentially unaligned head |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | |||
| 27 | #include "libavutil/riscv/asm.S" | 27 | #include "libavutil/riscv/asm.S" |
| 28 | 28 | ||
| 29 | func ff_startcode_find_candidate_rvv, zve32x | 29 | func ff_startcode_find_candidate_rvv, zve32x |
| 30 | lpad 0 | ||
| 30 | mv t0, a0 | 31 | mv t0, a0 |
| 31 | 1: | 32 | 1: |
| 32 | vsetvli t1, a1, e8, m8, ta, ma | 33 | vsetvli t1, a1, e8, m8, ta, ma |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_ssd_int8_vs_int16_rvv, zve32x, zba | 23 | func ff_ssd_int8_vs_int16_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | vsetvli t0, zero, e32, m8, ta, ma | 25 | vsetvli t0, zero, e32, m8, ta, ma |
| 25 | vmv.v.x v24, zero | 26 | vmv.v.x v24, zero |
| 26 | 1: | 27 | 1: |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_decorrelate_ls_rvv, zve32x, zba | 24 | func ff_decorrelate_ls_rvv, zve32x, zba |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e32, m8, ta, ma | 27 | vsetvli t0, a2, e32, m8, ta, ma |
| 27 | sub a2, a2, t0 | 28 | sub a2, a2, t0 |
| @@ -36,6 +37,7 @@ func ff_decorrelate_ls_rvv, zve32x, zba · 8 unmodified lines | |||
| 36 | endfunc | 37 | endfunc |
| 37 | 38 | ||
| 38 | func ff_decorrelate_sr_rvv, zve32x, zba | 39 | func ff_decorrelate_sr_rvv, zve32x, zba |
| 40 | lpad 0 | ||
| 39 | 1: | 41 | 1: |
| 40 | vsetvli t0, a2, e32, m8, ta, ma | 42 | vsetvli t0, a2, e32, m8, ta, ma |
| 41 | vle32.v v0, (a0) | 43 | vle32.v v0, (a0) |
| @@ -50,6 +52,7 @@ func ff_decorrelate_sr_rvv, zve32x, zba · 8 unmodified lines | |||
| 50 | endfunc | 52 | endfunc |
| 51 | 53 | ||
| 52 | func ff_decorrelate_sm_rvv, zve32x, zba | 54 | func ff_decorrelate_sm_rvv, zve32x, zba |
| 55 | lpad 0 | ||
| 53 | 1: | 56 | 1: |
| 54 | vsetvli t0, a2, e32, m8, ta, ma | 57 | vsetvli t0, a2, e32, m8, ta, ma |
| 55 | vle32.v v8, (a1) | 58 | vle32.v v8, (a1) |
| @@ -68,6 +71,7 @@ func ff_decorrelate_sm_rvv, zve32x, zba · 12 unmodified lines | |||
| 68 | endfunc | 71 | endfunc |
| 69 | 72 | ||
| 70 | func ff_decorrelate_sf_rvv, zve32x, zba | 73 | func ff_decorrelate_sf_rvv, zve32x, zba |
| 74 | lpad 0 | ||
| 71 | csrwi vxrm, 0 | 75 | csrwi vxrm, 0 |
| 72 | 1: | 76 | 1: |
| 73 | vsetvli t0, a2, e32, m8, ta, ma | 77 | vsetvli t0, a2, e32, m8, ta, ma |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_restore_rgb_planes_rvv, zve32x, zba | 23 | func ff_restore_rgb_planes_rvv, zve32x, zba |
| 24 | lpad 0 | ||
| 24 | li t1, -0x80 | 25 | li t1, -0x80 |
| 25 | sub a3, a3, a6 | 26 | sub a3, a3, a6 |
| 26 | sub a4, a4, a6 | 27 | sub a4, a4, a6 |
| @@ -53,6 +54,7 @@ func ff_restore_rgb_planes_rvv, zve32x, zba · 26 unmodified lines | |||
| 53 | endfunc | 54 | endfunc |
| 54 | 55 | ||
| 55 | func ff_restore_rgb_planes10_rvv, zve32x, zba | 56 | func ff_restore_rgb_planes10_rvv, zve32x, zba |
| 57 | lpad 0 | ||
| 56 | li t1, -0x200 | 58 | li t1, -0x200 |
| 57 | li t2, 0x3FF | 59 | li t2, 0x3FF |
| 58 | sub a3, a3, a6 | 60 | sub a3, a3, a6 |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_put_pixels8x8_rvi | 24 | func ff_put_pixels8x8_rvi |
| 25 | lpad 0 | ||
| 25 | .rept 8 | 26 | .rept 8 |
| 26 | ld t0, (a1) | 27 | ld t0, (a1) |
| 27 | sd t0, (a0) | 28 | sd t0, (a0) |
| @@ -33,6 +34,7 @@ func ff_put_pixels8x8_rvi · 5 unmodified lines | |||
| 33 | endfunc | 34 | endfunc |
| 34 | 35 | ||
| 35 | func ff_put_pixels16x16_rvi | 36 | func ff_put_pixels16x16_rvi |
| 37 | lpad 0 | ||
| 36 | .rept 16 | 38 | .rept 16 |
| 37 | ld t0, (a1) | 39 | ld t0, (a1) |
| 38 | ld t1, 8(a1) | 40 | ld t1, 8(a1) |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | #include "libavutil/riscv/asm.S" | 22 | #include "libavutil/riscv/asm.S" |
| 23 | 23 | ||
| 24 | func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba | 24 | func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba |
| 25 | lpad 0 | ||
| 25 | lh t2, (a2) | 26 | lh t2, (a2) |
| 26 | vsetivli zero, 8, e8, mf2, ta, ma | 27 | vsetivli zero, 8, e8, mf2, ta, ma |
| 27 | vlse64.v v0, (a0), a1 | 28 | vlse64.v v0, (a0), a1 |
| @@ -44,6 +45,7 @@ func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba · 16 unmodified lines | |||
| 44 | endfunc | 45 | endfunc |
| 45 | 46 | ||
| 46 | func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba | 47 | func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba |
| 48 | lpad 0 | ||
| 47 | lh t2, (a2) | 49 | lh t2, (a2) |
| 48 | vsetivli zero, 8, e8, mf2, ta, ma | 50 | vsetivli zero, 8, e8, mf2, ta, ma |
| 49 | vlse32.v v0, (a0), a1 | 51 | vlse32.v v0, (a0), a1 |
| @@ -68,6 +70,7 @@ func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba · 18 unmodified lines | |||
| 68 | endfunc | 70 | endfunc |
| 69 | 71 | ||
| 70 | func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba | 72 | func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba |
| 73 | lpad 0 | ||
| 71 | lh t2, (a2) | 74 | lh t2, (a2) |
| 72 | vsetivli zero, 4, e8, mf4, ta, ma | 75 | vsetivli zero, 4, e8, mf4, ta, ma |
| 73 | vlse64.v v0, (a0), a1 | 76 | vlse64.v v0, (a0), a1 |
| @@ -91,6 +94,7 @@ func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba · 17 unmodified lines | |||
| 91 | endfunc | 94 | endfunc |
| 92 | 95 | ||
| 93 | func ff_vc1_inv_trans_4x4_dc_rvv, zve32x | 96 | func ff_vc1_inv_trans_4x4_dc_rvv, zve32x |
| 97 | lpad 0 | ||
| 94 | lh t2, (a2) | 98 | lh t2, (a2) |
| 95 | vsetivli zero, 4, e8, mf4, ta, ma | 99 | vsetivli zero, 4, e8, mf4, ta, ma |
| 96 | vlse32.v v0, (a0), a1 | 100 | vlse32.v v0, (a0), a1 |
| @@ -203,6 +207,7 @@ func ff_vc1_inv_trans_4_rvv, zve32x · 106 unmodified lines | |||
| 203 | endfunc | 207 | endfunc |
| 204 | 208 | ||
| 205 | func ff_vc1_inv_trans_8x8_rvv, zve32x | 209 | func ff_vc1_inv_trans_8x8_rvv, zve32x |
| 210 | lpad 0 | ||
| 206 | csrwi vxrm, 0 | 211 | csrwi vxrm, 0 |
| 207 | vsetivli zero, 8, e16, m1, ta, ma | 212 | vsetivli zero, 8, e16, m1, ta, ma |
| 208 | addi a1, a0, 1 * 8 * 2 | 213 | addi a1, a0, 1 * 8 * 2 |
| @@ -240,6 +245,7 @@ func ff_vc1_inv_trans_8x8_rvv, zve32x · 31 unmodified lines | |||
| 240 | endfunc | 245 | endfunc |
| 241 | 246 | ||
| 242 | func ff_vc1_inv_trans_8x4_rvv, zve32x | 247 | func ff_vc1_inv_trans_8x4_rvv, zve32x |
| 248 | lpad 0 | ||
| 243 | csrwi vxrm, 0 | 249 | csrwi vxrm, 0 |
| 244 | vsetivli zero, 4, e16, mf2, ta, ma | 250 | vsetivli zero, 4, e16, mf2, ta, ma |
| 245 | vlseg8e16.v v0, (a2) | 251 | vlseg8e16.v v0, (a2) |
| @@ -285,6 +291,7 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 39 unmodified lines | |||
| 285 | endfunc | 291 | endfunc |
| 286 | 292 | ||
| 287 | func ff_vc1_inv_trans_4x8_rvv, zve32x | 293 | func ff_vc1_inv_trans_4x8_rvv, zve32x |
| 294 | lpad 0 | ||
| 288 | li a3, 8 * 2 | 295 | li a3, 8 * 2 |
| 289 | csrwi vxrm, 0 | 296 | csrwi vxrm, 0 |
| 290 | vsetivli zero, 8, e16, m1, ta, ma | 297 | vsetivli zero, 8, e16, m1, ta, ma |
| @@ -359,6 +366,7 @@ func ff_vc1_inv_trans_4x8_rvv, zve32x · 68 unmodified lines | |||
| 359 | endfunc | 366 | endfunc |
| 360 | 367 | ||
| 361 | func ff_vc1_inv_trans_4x4_rvv, zve32x | 368 | func ff_vc1_inv_trans_4x4_rvv, zve32x |
| 369 | lpad 0 | ||
| 362 | li a3, 8 * 2 | 370 | li a3, 8 * 2 |
| 363 | csrwi vxrm, 0 | 371 | csrwi vxrm, 0 |
| 364 | vsetivli zero, 4, e16, mf2, ta, ma | 372 | vsetivli zero, 4, e16, mf2, ta, ma |
| @@ -422,12 +430,14 @@ endfunc · 57 unmodified lines | |||
| 422 | .endm | 430 | .endm |
| 423 | 431 | ||
| 424 | func ff_avg_pixels16x16_rvv, zve32x | 432 | func ff_avg_pixels16x16_rvv, zve32x |
| 433 | lpad 0 | ||
| 425 | li t0, 16 | 434 | li t0, 16 |
| 426 | vsetivli zero, 16, e8, m1, ta, ma | 435 | vsetivli zero, 16, e8, m1, ta, ma |
| 427 | j 1f | 436 | j 1f |
| 428 | endfunc | 437 | endfunc |
| 429 | 438 | ||
| 430 | func ff_avg_pixels8x8_rvv, zve32x | 439 | func ff_avg_pixels8x8_rvv, zve32x |
| 440 | lpad 0 | ||
| 431 | li t0, 8 | 441 | li t0, 8 |
| 432 | vsetivli zero, 8, e8, mf2, ta, ma | 442 | vsetivli zero, 8, e8, mf2, ta, ma |
| 433 | 1: | 443 | 1: |
| @@ -446,6 +456,7 @@ func ff_avg_pixels8x8_rvv, zve32x · 12 unmodified lines | |||
| 446 | endfunc | 456 | endfunc |
| 447 | 457 | ||
| 448 | func ff_vc1_unescape_buffer_rvv, zve32x | 458 | func ff_vc1_unescape_buffer_rvv, zve32x |
| 459 | lpad 0 | ||
| 449 | vsetivli zero, 2, e8, m1, ta, ma | 460 | vsetivli zero, 2, e8, m1, ta, ma |
| 450 | vmv.v.i v8, -1 | 461 | vmv.v.i v8, -1 |
| 451 | li t4, 1 | 462 | li t4, 1 |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | |||
| 21 | #include "libavutil/riscv/asm.S" | 21 | #include "libavutil/riscv/asm.S" |
| 22 | 22 | ||
| 23 | func ff_vorbis_inverse_coupling_rvv, zve32f, zba | 23 | func ff_vorbis_inverse_coupling_rvv, zve32f, zba |
| 24 | lpad 0 | ||
| 24 | fmv.w.x ft0, zero | 25 | fmv.w.x ft0, zero |
| 25 | 1: | 26 | 1: |
| 26 | vsetvli t0, a2, e32, m4, ta, ma | 27 | vsetvli t0, a2, e32, m4, ta, ma |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_vp7_luma_dc_wht_rvv, zve32x, zba | 24 | func ff_vp7_luma_dc_wht_rvv, zve32x, zba |
| 25 | lpad 0 | ||
| 25 | li a2, 4 * 16 * 2 | 26 | li a2, 4 * 16 * 2 |
| 26 | li a7, 16 * 2 | 27 | li a7, 16 * 2 |
| 27 | jal t0, 1f | 28 | jal t0, 1f |
| @@ -99,6 +100,7 @@ func ff_vp7_luma_dc_wht_rvv, zve32x, zba · 71 unmodified lines | |||
| 99 | endfunc | 100 | endfunc |
| 100 | 101 | ||
| 101 | func ff_vp7_idct_add_rvv, zve32x | 102 | func ff_vp7_idct_add_rvv, zve32x |
| 103 | lpad 0 | ||
| 102 | jal t0, 1b | 104 | jal t0, 1b |
| 103 | csrwi vxrm, 2 | 105 | csrwi vxrm, 2 |
| 104 | vsetvli zero, zero, e8, mf4, ta, ma | 106 | vsetvli zero, zero, e8, mf4, ta, ma |
| @@ -130,6 +132,7 @@ endfunc · 25 unmodified lines | |||
| 130 | 132 | ||
| 131 | .irp type, y, uv | 133 | .irp type, y, uv |
| 132 | func ff_vp7_idct_dc_add4\type\()_rvv, zve32x | 134 | func ff_vp7_idct_dc_add4\type\()_rvv, zve32x |
| 135 | lpad 0 | ||
| 133 | li t0, 32 | 136 | li t0, 32 |
| 134 | vsetivli zero, 4, e16, mf2, ta, ma | 137 | vsetivli zero, 4, e16, mf2, ta, ma |
| 135 | li t1, 23170 | 138 | li t1, 23170 |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_put_vp8_pixels16_rvi | 24 | func ff_put_vp8_pixels16_rvi |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | addi a4, a4, -1 | 27 | addi a4, a4, -1 |
| 27 | ld t0, (a2) | 28 | ld t0, (a2) |
| @@ -36,6 +37,7 @@ func ff_put_vp8_pixels16_rvi · 8 unmodified lines | |||
| 36 | endfunc | 37 | endfunc |
| 37 | 38 | ||
| 38 | func ff_put_vp8_pixels8_rvi | 39 | func ff_put_vp8_pixels8_rvi |
| 40 | lpad 0 | ||
| 39 | 1: | 41 | 1: |
| 40 | addi a4, a4, -1 | 42 | addi a4, a4, -1 |
| 41 | ld t0, (a2) | 43 | ld t0, (a2) |
| @@ -49,6 +51,7 @@ endfunc · 7 unmodified lines | |||
| 49 | #endif | 51 | #endif |
| 50 | 52 | ||
| 51 | func ff_put_vp8_pixels4_rvi | 53 | func ff_put_vp8_pixels4_rvi |
| 54 | lpad 0 | ||
| 52 | 1: | 55 | 1: |
| 53 | addi a4, a4, -1 | 56 | addi a4, a4, -1 |
| 54 | lw t0, (a2) | 57 | lw t0, (a2) |
| @@ -45,6 +45,7 @@ · 44 unmodified lines | |||
| 45 | 45 | ||
| 46 | #if __riscv_xlen >= 64 | 46 | #if __riscv_xlen >= 64 |
| 47 | func ff_vp8_luma_dc_wht_rvv, zve64x | 47 | func ff_vp8_luma_dc_wht_rvv, zve64x |
| 48 | lpad 0 | ||
| 48 | vsetivli zero, 1, e64, m1, ta, ma | 49 | vsetivli zero, 1, e64, m1, ta, ma |
| 49 | vlseg4e64.v v4, (a1) | 50 | vlseg4e64.v v4, (a1) |
| 50 | vsetivli zero, 4, e16, mf2, ta, ma | 51 | vsetivli zero, 4, e16, mf2, ta, ma |
| @@ -99,6 +100,7 @@ endfunc · 48 unmodified lines | |||
| 99 | #endif | 100 | #endif |
| 100 | 101 | ||
| 101 | func ff_vp8_idct_add_rvv, zve32x | 102 | func ff_vp8_idct_add_rvv, zve32x |
| 103 | lpad 0 | ||
| 102 | csrwi vxrm, 0 | 104 | csrwi vxrm, 0 |
| 103 | vsetivli zero, 4, e16, mf2, ta, ma | 105 | vsetivli zero, 4, e16, mf2, ta, ma |
| 104 | addi a3, a1, 1 * 4 * 2 | 106 | addi a3, a1, 1 * 4 * 2 |
| @@ -158,6 +160,7 @@ func ff_vp8_idct_add_rvv, zve32x · 53 unmodified lines | |||
| 158 | endfunc | 160 | endfunc |
| 159 | 161 | ||
| 160 | func ff_vp8_idct_dc_add_rvv, zve32x | 162 | func ff_vp8_idct_dc_add_rvv, zve32x |
| 163 | lpad 0 | ||
| 161 | lh a3, (a1) | 164 | lh a3, (a1) |
| 162 | addi a3, a3, 4 | 165 | addi a3, a3, 4 |
| 163 | srai a3, a3, 3 | 166 | srai a3, a3, 3 |
| @@ -182,6 +185,7 @@ func ff_vp78_idct_dc_add_rvv, zve32x · 18 unmodified lines | |||
| 182 | endfunc | 185 | endfunc |
| 183 | 186 | ||
| 184 | func ff_vp8_idct_dc_add4y_rvv, zve32x | 187 | func ff_vp8_idct_dc_add4y_rvv, zve32x |
| 188 | lpad 0 | ||
| 185 | li t0, 32 | 189 | li t0, 32 |
| 186 | vsetivli zero, 4, e16, mf2, ta, ma | 190 | vsetivli zero, 4, e16, mf2, ta, ma |
| 187 | li t1, 4 - (128 << 3) | 191 | li t1, 4 - (128 << 3) |
| @@ -217,6 +221,7 @@ func ff_vp78_idct_dc_add4y_rvv, zve32x · 29 unmodified lines | |||
| 217 | endfunc | 221 | endfunc |
| 218 | 222 | ||
| 219 | func ff_vp8_idct_dc_add4uv_rvv, zve32x | 223 | func ff_vp8_idct_dc_add4uv_rvv, zve32x |
| 224 | lpad 0 | ||
| 220 | li t0, 32 | 225 | li t0, 32 |
| 221 | vsetivli zero, 4, e16, mf2, ta, ma | 226 | vsetivli zero, 4, e16, mf2, ta, ma |
| 222 | li t1, 4 - (128 << 3) | 227 | li t1, 4 - (128 << 3) |
| @@ -265,6 +270,7 @@ endfunc · 42 unmodified lines | |||
| 265 | 270 | ||
| 266 | .macro put_vp8_bilin_h_v type mn | 271 | .macro put_vp8_bilin_h_v type mn |
| 267 | func ff_put_vp8_bilin4_\type\()_rvv, zve32x | 272 | func ff_put_vp8_bilin4_\type\()_rvv, zve32x |
| 273 | lpad 0 | ||
| 268 | vsetvlstatic8 4 | 274 | vsetvlstatic8 4 |
| 269 | .Lbilin_\type: | 275 | .Lbilin_\type: |
| 270 | li t1, 8 | 276 | li t1, 8 |
| @@ -310,6 +316,7 @@ put_vp8_bilin_h_v h a5 · 39 unmodified lines | |||
| 310 | put_vp8_bilin_h_v v a6 | 316 | put_vp8_bilin_h_v v a6 |
| 311 | 317 | ||
| 312 | func ff_put_vp8_bilin4_hv_rvv, zve32x | 318 | func ff_put_vp8_bilin4_hv_rvv, zve32x |
| 319 | lpad 0 | ||
| 313 | vsetvlstatic8 4 | 320 | vsetvlstatic8 4 |
| 314 | .Lbilin_hv: | 321 | .Lbilin_hv: |
| 315 | li t3, 8 | 322 | li t3, 8 |
| @@ -335,16 +342,19 @@ endfunc · 19 unmodified lines | |||
| 335 | 342 | ||
| 336 | .irp len,16,8 | 343 | .irp len,16,8 |
| 337 | func ff_put_vp8_bilin\len\()_h_rvv, zve32x | 344 | func ff_put_vp8_bilin\len\()_h_rvv, zve32x |
| 345 | lpad 0 | ||
| 338 | vsetvlstatic8 \len | 346 | vsetvlstatic8 \len |
| 339 | j .Lbilin_h | 347 | j .Lbilin_h |
| 340 | endfunc | 348 | endfunc |
| 341 | 349 | ||
| 342 | func ff_put_vp8_bilin\len\()_v_rvv, zve32x | 350 | func ff_put_vp8_bilin\len\()_v_rvv, zve32x |
| 351 | lpad 0 | ||
| 343 | vsetvlstatic8 \len | 352 | vsetvlstatic8 \len |
| 344 | j .Lbilin_v | 353 | j .Lbilin_v |
| 345 | endfunc | 354 | endfunc |
| 346 | 355 | ||
| 347 | func ff_put_vp8_bilin\len\()_hv_rvv, zve32x | 356 | func ff_put_vp8_bilin\len\()_hv_rvv, zve32x |
| 357 | lpad 0 | ||
| 348 | vsetvlstatic8 \len | 358 | vsetvlstatic8 \len |
| 349 | j .Lbilin_hv | 359 | j .Lbilin_hv |
| 350 | endfunc | 360 | endfunc |
| @@ -441,6 +451,7 @@ endconst · 90 unmodified lines | |||
| 441 | 451 | ||
| 442 | .macro epel len size type | 452 | .macro epel len size type |
| 443 | func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x, zba | 453 | func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x, zba |
| 454 | lpad 0 | ||
| 444 | epel_filter \size \type t | 455 | epel_filter \size \type t |
| 445 | vsetvlstatic8 \len | 456 | vsetvlstatic8 \len |
| 446 | 1: | 457 | 1: |
| @@ -456,6 +467,7 @@ endfunc · 9 unmodified lines | |||
| 456 | 467 | ||
| 457 | .macro epel_hv len hsize vsize | 468 | .macro epel_hv len hsize vsize |
| 458 | func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x, zba | 469 | func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x, zba |
| 470 | lpad 0 | ||
| 459 | #if __riscv_xlen == 64 | 471 | #if __riscv_xlen == 64 |
| 460 | addi sp, sp, -48 | 472 | addi sp, sp, -48 |
| 461 | .irp n,0,1,2,3,4,5 | 473 | .irp n,0,1,2,3,4,5 |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_v_32x32_rvi, zba | 24 | func ff_v_32x32_rvi, zba |
| 25 | lpad 0 | ||
| 25 | ld t0, (a3) | 26 | ld t0, (a3) |
| 26 | ld t1, 8(a3) | 27 | ld t1, 8(a3) |
| 27 | ld t2, 16(a3) | 28 | ld t2, 16(a3) |
| @@ -43,6 +44,7 @@ func ff_v_32x32_rvi, zba · 15 unmodified lines | |||
| 43 | endfunc | 44 | endfunc |
| 44 | 45 | ||
| 45 | func ff_v_16x16_rvi, zba | 46 | func ff_v_16x16_rvi, zba |
| 47 | lpad 0 | ||
| 46 | ld t0, (a3) | 48 | ld t0, (a3) |
| 47 | ld t1, 8(a3) | 49 | ld t1, 8(a3) |
| 48 | .rept 8 | 50 | .rept 8 |
| @@ -58,6 +60,7 @@ func ff_v_16x16_rvi, zba · 9 unmodified lines | |||
| 58 | endfunc | 60 | endfunc |
| 59 | 61 | ||
| 60 | func ff_v_8x8_rvi, zba | 62 | func ff_v_8x8_rvi, zba |
| 63 | lpad 0 | ||
| 61 | ld t0, (a3) | 64 | ld t0, (a3) |
| 62 | .rept 4 | 65 | .rept 4 |
| 63 | add a7, a0, a1 | 66 | add a7, a0, a1 |
| @@ -91,6 +91,7 @@ · 90 unmodified lines | |||
| 91 | 91 | ||
| 92 | .macro func_dc name size type n restore ext | 92 | .macro func_dc name size type n restore ext |
| 93 | func ff_\()\name\()_\()\size\()x\size\()_rvv, \ext | 93 | func ff_\()\name\()_\()\size\()x\size\()_rvv, \ext |
| 94 | lpad 0 | ||
| 94 | .if \size == 8 | 95 | .if \size == 8 |
| 95 | dc_e64 \type \size \n \restore | 96 | dc_e64 \type \size \n \restore |
| 96 | .else | 97 | .else |
| @@ -119,6 +120,7 @@ func_dc dc_top 16 top 4 1 zve32x · 22 unmodified lines | |||
| 119 | func_dc dc_top 8 top 3 0 zve64x | 120 | func_dc dc_top 8 top 3 0 zve64x |
| 120 | 121 | ||
| 121 | func ff_h_32x32_rvv, zve32x | 122 | func ff_h_32x32_rvv, zve32x |
| 123 | lpad 0 | ||
| 122 | li t0, 32 | 124 | li t0, 32 |
| 123 | addi a2, a2, 31 | 125 | addi a2, a2, 31 |
| 124 | vsetvli zero, t0, e8, m2, ta, ma | 126 | vsetvli zero, t0, e8, m2, ta, ma |
| @@ -139,6 +141,7 @@ func ff_h_32x32_rvv, zve32x · 14 unmodified lines | |||
| 139 | endfunc | 141 | endfunc |
| 140 | 142 | ||
| 141 | func ff_h_16x16_rvv, zve32x | 143 | func ff_h_16x16_rvv, zve32x |
| 144 | lpad 0 | ||
| 142 | addi a2, a2, 15 | 145 | addi a2, a2, 15 |
| 143 | vsetivli zero, 16, e8, m1, ta, ma | 146 | vsetivli zero, 16, e8, m1, ta, ma |
| 144 | 147 | ||
| @@ -157,6 +160,7 @@ func ff_h_16x16_rvv, zve32x · 12 unmodified lines | |||
| 157 | endfunc | 160 | endfunc |
| 158 | 161 | ||
| 159 | func ff_h_8x8_rvv, zve32x | 162 | func ff_h_8x8_rvv, zve32x |
| 163 | lpad 0 | ||
| 160 | addi a2, a2, 7 | 164 | addi a2, a2, 7 |
| 161 | vsetivli zero, 8, e8, mf2, ta, ma | 165 | vsetivli zero, 8, e8, mf2, ta, ma |
| 162 | 166 | ||
| @@ -190,6 +194,7 @@ endfunc · 27 unmodified lines | |||
| 190 | .endm | 194 | .endm |
| 191 | 195 | ||
| 192 | func ff_tm_32x32_rvv, zve32x | 196 | func ff_tm_32x32_rvv, zve32x |
| 197 | lpad 0 | ||
| 193 | lbu a4, -1(a3) | 198 | lbu a4, -1(a3) |
| 194 | li t5, 32 | 199 | li t5, 32 |
| 195 | 200 | ||
| @@ -244,6 +249,7 @@ func ff_tm_16x16_rvv, zve32x · 48 unmodified lines | |||
| 244 | endfunc | 249 | endfunc |
| 245 | 250 | ||
| 246 | func ff_tm_8x8_rvv, zve32x | 251 | func ff_tm_8x8_rvv, zve32x |
| 252 | lpad 0 | ||
| 247 | vsetivli zero, 8, e16, m1, ta, ma | 253 | vsetivli zero, 8, e16, m1, ta, ma |
| 248 | vle8.v v8, (a3) | 254 | vle8.v v8, (a3) |
| 249 | vzext.vf2 v28, v8 | 255 | vzext.vf2 v28, v8 |
| @@ -269,6 +275,7 @@ func ff_tm_8x8_rvv, zve32x · 19 unmodified lines | |||
| 269 | endfunc | 275 | endfunc |
| 270 | 276 | ||
| 271 | func ff_tm_4x4_rvv, zve32x | 277 | func ff_tm_4x4_rvv, zve32x |
| 278 | lpad 0 | ||
| 272 | vsetivli zero, 4, e16, mf2, ta, ma | 279 | vsetivli zero, 4, e16, mf2, ta, ma |
| 273 | vle8.v v8, (a3) | 280 | vle8.v v8, (a3) |
| 274 | vzext.vf2 v28, v8 | 281 | vzext.vf2 v28, v8 |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #if __riscv_xlen >= 64 | 23 | #if __riscv_xlen >= 64 |
| 24 | func ff_copy64_rvi | 24 | func ff_copy64_rvi |
| 25 | lpad 0 | ||
| 25 | 1: | 26 | 1: |
| 26 | addi a4, a4, -1 | 27 | addi a4, a4, -1 |
| 27 | ld t0, (a2) | 28 | ld t0, (a2) |
| @@ -48,6 +49,7 @@ func ff_copy64_rvi · 20 unmodified lines | |||
| 48 | endfunc | 49 | endfunc |
| 49 | 50 | ||
| 50 | func ff_copy32_rvi | 51 | func ff_copy32_rvi |
| 52 | lpad 0 | ||
| 51 | 1: | 53 | 1: |
| 52 | addi a4, a4, -1 | 54 | addi a4, a4, -1 |
| 53 | ld t0, (a2) | 55 | ld t0, (a2) |
| @@ -66,6 +68,7 @@ func ff_copy32_rvi · 12 unmodified lines | |||
| 66 | endfunc | 68 | endfunc |
| 67 | 69 | ||
| 68 | func ff_copy16_rvi | 70 | func ff_copy16_rvi |
| 71 | lpad 0 | ||
| 69 | 1: | 72 | 1: |
| 70 | addi a4, a4, -1 | 73 | addi a4, a4, -1 |
| 71 | ld t0, (a2) | 74 | ld t0, (a2) |
| @@ -80,6 +83,7 @@ func ff_copy16_rvi · 8 unmodified lines | |||
| 80 | endfunc | 83 | endfunc |
| 81 | 84 | ||
| 82 | func ff_copy8_rvi | 85 | func ff_copy8_rvi |
| 86 | lpad 0 | ||
| 83 | 1: | 87 | 1: |
| 84 | addi a4, a4, -1 | 88 | addi a4, a4, -1 |
| 85 | ld t0, (a2) | 89 | ld t0, (a2) |
| @@ -93,6 +97,7 @@ endfunc · 7 unmodified lines | |||
| 93 | #endif | 97 | #endif |
| 94 | 98 | ||
| 95 | func ff_copy4_rvi | 99 | func ff_copy4_rvi |
| 100 | lpad 0 | ||
| 96 | 1: | 101 | 1: |
| 97 | addi a4, a4, -1 | 102 | addi a4, a4, -1 |
| 98 | lw t0, (a2) | 103 | lw t0, (a2) |
| @@ -38,6 +38,7 @@ · 37 unmodified lines | |||
| 38 | 38 | ||
| 39 | .macro copy_avg len | 39 | .macro copy_avg len |
| 40 | func ff_vp9_avg\len\()_rvv, zve32x | 40 | func ff_vp9_avg\len\()_rvv, zve32x |
| 41 | lpad 0 | ||
| 41 | csrwi vxrm, 0 | 42 | csrwi vxrm, 0 |
| 42 | vsetvlstatic8 \len, t0, 64 | 43 | vsetvlstatic8 \len, t0, 64 |
| 43 | 1: | 44 | 1: |