ffmpeg/libavutil
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
..
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2023-07-12 15:35:37 +02:00
2024-03-10 13:51:37 +01:00
2024-03-04 17:45:00 +01:00
2022-09-13 16:50:43 -03:00
2022-11-06 08:26:50 +01:00
2024-03-31 00:08:43 +01:00
2023-11-18 19:55:42 +01:00
2023-09-02 02:49:06 +02:00
2024-03-15 12:51:15 +01:00
2023-09-07 00:42:10 +02:00
2024-05-28 03:48:04 +02:00
2024-05-04 21:31:33 -03:00
2022-10-17 09:56:47 +02:00
2024-06-01 18:05:58 +03:00
2024-06-01 18:05:58 +03:00
2023-09-07 00:42:10 +02:00
2023-09-07 00:42:10 +02:00
2023-09-07 00:42:10 +02:00
2024-03-31 00:08:43 +01:00
2024-01-16 01:34:57 +01:00
2022-10-17 09:51:47 +02:00
2023-09-07 00:42:10 +02:00
2024-03-31 00:08:43 +01:00
2023-09-01 23:59:10 +02:00
2023-08-08 09:46:11 +02:00
2023-08-08 09:46:11 +02:00