mbox series

[FFmpeg-devel,PATCHv6,00/31] initial RISC-V CPU extensions

Message ID 5862173.lOV4Wx5bFT@basile.remlab.net
Headers show
Series initial RISC-V CPU extensions | expand

Message

Rémi Denis-Courmont Sept. 26, 2022, 2:52 p.m. UTC
Hi,

This should address all comments from the previous version.

Changes since version 5:
- No longer nest CPU glag checks.
- Remove all forced flags stuff (redundant after previous point).
- Rename CPU flags to make them more legible.
- Simplify/optimise AAC PS stereo interleave using 2-segment loads/stores.

The following changes since commit dd2ea014ef273157fe9a0e928e77841fbbee9b2f:

  libavcodec/qsvenc: fixy typo for min/max qp reset (2022-09-26 16:17:45 +0800)

are available in the Git repository at:

  git.remlab.net:git/ffmpeg.git rv-cpu

for you to fetch changes up to b969ffa8bccd0c94d311404b19abca0de2930c0a:

  lavc/aacpsdsp: RISC-V V stereo_interpolate[0] (2022-09-26 17:47:48 +0300)

----------------------------------------------------------------
Rémi Denis-Courmont (31):
      lavu/cpu: detect RISC-V base extensions
      lavu/riscv: initial common header for assembler macros
      lavc/audiodsp: RISC-V F vector_clipf
      lavc/pixblockdsp: RISC-V I get_pixels
      lavu/cpu: CPU flags for the RISC-V Vector extension
      configure: probe RISC-V Vector extension
      lavu/riscv: fallback macros for SH{1,2,3}ADD
      lavu/floatdsp: RISC-V V vector_fmul_scalar
      lavu/floatdsp: RISC-V V vector_dmul_scalar
      lavu/floatdsp: RISC-V V vector_fmul
      lavu/floatdsp: RISC-V V vector_dmul
      lavu/floatdsp: RISC-V V vector_fmac_scalar
      lavu/floatdsp: RISC-V V vector_dmac_scalar
      lavu/floatdsp: RISC-V V vector_fmul_add
      lavu/floatdsp: RISC-V V butterflies_float
      lavu/floatdsp: RISC-V V vector_fmul_reverse
      lavu/floatdsp: RISC-V V vector_fmul_window
      lavu/floatdsp: RISC-V V scalarproduct_float
      lavu/fixeddsp: RISC-V V butterflies_fixed
      lavc/audiodsp: RISC-V V vector_clip_int32
      lavc/audiodsp: RISC-V V vector_clipf
      lavc/audiodsp: RISC-V V scalarproduct_int16
      lavc/fmtconvert: RISC-V V int32_to_float_fmul_scalar
      lavc/fmtconvert: RISC-V V int32_to_float_fmul_array8
      lavc/vorbisdsp: RISC-V V inverse_coupling
      lavc/aacpsdsp: RISC-V V add_squares
      lavc/aacpsdsp: RISC-V V mul_pair_single
      lavc/aacpsdsp: RISC-V V hybrid_analysis
      lavc/aacpsdsp: RISC-V V hybrid_analysis_ileave
      lavc/aacpsdsp: RISC-V V hybrid_synthesis_deint
      lavc/aacpsdsp: RISC-V V stereo_interpolate[0]

 Makefile                            |   2 +-
 configure                           |  15 ++
 ffbuild/arch.mak                    |   2 +
 libavcodec/aacpsdsp.h               |   1 +
 libavcodec/aacpsdsp_template.c      |   2 +
 libavcodec/audiodsp.c               |   2 +
 libavcodec/audiodsp.h               |   1 +
 libavcodec/fmtconvert.c             |   2 +
 libavcodec/fmtconvert.h             |   1 +
 libavcodec/pixblockdsp.c            |   2 +
 libavcodec/pixblockdsp.h            |   2 +
 libavcodec/riscv/Makefile           |  11 ++
 libavcodec/riscv/aacpsdsp_init.c    |  57 ++++++++
 libavcodec/riscv/aacpsdsp_rvv.S     | 277 ++++++++++++++++++++++++++++++++++++
 libavcodec/riscv/audiodsp_init.c    |  48 +++++++
 libavcodec/riscv/audiodsp_rvf.S     |  49 +++++++
 libavcodec/riscv/audiodsp_rvv.S     |  72 ++++++++++
 libavcodec/riscv/fmtconvert_init.c  |  44 ++++++
 libavcodec/riscv/fmtconvert_rvv.S   |  67 +++++++++
 libavcodec/riscv/pixblockdsp_init.c |  45 ++++++
 libavcodec/riscv/pixblockdsp_rvi.S  |  59 ++++++++
 libavcodec/riscv/vorbisdsp_init.c   |  37 +++++
 libavcodec/riscv/vorbisdsp_rvv.S    |  44 ++++++
 libavcodec/vorbisdsp.c              |   2 +
 libavcodec/vorbisdsp.h              |   1 +
 libavutil/cpu.c                     |  10 ++
 libavutil/cpu.h                     |   9 ++
 libavutil/cpu_internal.h            |   1 +
 libavutil/fixed_dsp.c               |   4 +-
 libavutil/fixed_dsp.h               |   1 +
 libavutil/float_dsp.c               |   2 +
 libavutil/float_dsp.h               |   1 +
 libavutil/riscv/Makefile            |   5 +
 libavutil/riscv/asm.S               |  96 +++++++++++++
 libavutil/riscv/cpu.c               |  75 ++++++++++
 libavutil/riscv/fixed_dsp_init.c    |  38 +++++
 libavutil/riscv/fixed_dsp_rvv.S     |  40 ++++++
 libavutil/riscv/float_dsp_init.c    |  72 ++++++++++
 libavutil/riscv/float_dsp_rvv.S     | 238 +++++++++++++++++++++++++++++++
 tests/checkasm/checkasm.c           |   8 ++
 40 files changed, 1443 insertions(+), 2 deletions(-)
 create mode 100644 libavcodec/riscv/Makefile
 create mode 100644 libavcodec/riscv/aacpsdsp_init.c
 create mode 100644 libavcodec/riscv/aacpsdsp_rvv.S
 create mode 100644 libavcodec/riscv/audiodsp_init.c
 create mode 100644 libavcodec/riscv/audiodsp_rvf.S
 create mode 100644 libavcodec/riscv/audiodsp_rvv.S
 create mode 100644 libavcodec/riscv/fmtconvert_init.c
 create mode 100644 libavcodec/riscv/fmtconvert_rvv.S
 create mode 100644 libavcodec/riscv/pixblockdsp_init.c
 create mode 100644 libavcodec/riscv/pixblockdsp_rvi.S
 create mode 100644 libavcodec/riscv/vorbisdsp_init.c
 create mode 100644 libavcodec/riscv/vorbisdsp_rvv.S
 create mode 100644 libavutil/riscv/Makefile
 create mode 100644 libavutil/riscv/asm.S
 create mode 100644 libavutil/riscv/cpu.c
 create mode 100644 libavutil/riscv/fixed_dsp_init.c
 create mode 100644 libavutil/riscv/fixed_dsp_rvv.S
 create mode 100644 libavutil/riscv/float_dsp_init.c
 create mode 100644 libavutil/riscv/float_dsp_rvv.S

Comments

Lynne Sept. 27, 2022, 12:01 p.m. UTC | #1
Sep 26, 2022, 16:52 by remi@remlab.net:

> Hi,
>
> This should address all comments from the previous version.
>
> Changes since version 5:
> - No longer nest CPU glag checks.
> - Remove all forced flags stuff (redundant after previous point).
> - Rename CPU flags to make them more legible.
> - Simplify/optimise AAC PS stereo interleave using 2-segment loads/stores.
>
> The following changes since commit dd2ea014ef273157fe9a0e928e77841fbbee9b2f:
>
>  libavcodec/qsvenc: fixy typo for min/max qp reset (2022-09-26 16:17:45 +0800)
>
> are available in the Git repository at:
>
>  git.remlab.net:git/ffmpeg.git rv-cpu
>
> for you to fetch changes up to b969ffa8bccd0c94d311404b19abca0de2930c0a:
>
>  lavc/aacpsdsp: RISC-V V stereo_interpolate[0] (2022-09-26 17:47:48 +0300)
>

Pushed, thanks!