ffmpeg/libavutil/riscv
Rémi Denis-Courmont 324899b748 lavu/riscv: use Zbb REV8 at run-time
This adds runtime support to use Zbb REV8 for 32- and 64-bit byte-wise
swaps. The result is about five times slower than if targetting Zbb
statically, but still a lot faster than the default bespoke C code or a
call to GCC run-time functions.

For 16-bit swap, this is however unsurprisingly a lot worse, and so this
sticks to the baseline. In fact, even using REV8 statically does not
seem to be beneficial in that case.

         Zbb static    Zbb dynamic   I baseline
bswap16:  0.668184765   3.340764069   0.668029012
bswap32:  0.668174014   3.340763319   9.353855435
bswap64:  0.668221765   3.340496313  14.698672283
(seconds for 1 billion iterations on a SiFive-U74 core)
2024-06-11 20:12:37 +03:00
..
asm.S riscv: allow passing addend to vtype_vli macro 2024-05-30 18:30:52 +03:00
bswap_rvb.S
bswap.h lavu/riscv: use Zbb REV8 at run-time 2024-06-11 20:12:37 +03:00
cpu_common.c riscv: probe for Zbb extension at load time 2024-06-11 20:12:37 +03:00
cpu.c lavu/riscv: fix parsing the unaligned access capability 2024-05-15 20:04:08 +03:00
cpu.h riscv: probe for Zbb extension at load time 2024-06-11 20:12:37 +03:00
fixed_dsp_init.c
fixed_dsp_rvv.S
float_dsp_init.c lavu/float_dsp: R-V V scalarproduct_double 2024-05-31 22:22:43 +03:00
float_dsp_rvv.S lavu/float_dsp: R-V V scalarproduct_double 2024-05-31 22:22:43 +03:00
intmath.h
lls_init.c lavu/lls: R-V V update_lls 2024-06-01 18:05:58 +03:00
lls_rvv.S lavu/lls: R-V V update_lls 2024-06-01 18:05:58 +03:00
Makefile riscv: probe for Zbb extension at load time 2024-06-11 20:12:37 +03:00
timer.h