Message ID | CAEa-L+uwoDKFNTQuHnx0h6mnDpGyXV=q7gRUqiw9jDwLzeC3eA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,1/2] lavc/blockdsp: R-V V clear_block | expand |
Context | Check | Description |
---|---|---|
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
andriy/configure_x86 | warning | Failed to apply patch |
You should probably use an assembler macro to repeat the code.
Ok, updated it in the reply Rémi Denis-Courmont <remi@remlab.net> 于2024年2月2日周五 04:13写道: > You should probably use an assembler macro to repeat the code. > > > -- > レミ・デニ-クールモン > http://www.remlab.net/ > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
Le perjantaina 2. helmikuuta 2024, 3.14.39 EET flow gg a écrit :
> Ok, updated it in the reply
Sorry I meant directive, not macro. .rept is just fine here.
ok, updated it in the reply Rémi Denis-Courmont <remi@remlab.net> 于2024年2月13日周二 03:49写道: > Le perjantaina 2. helmikuuta 2024, 3.14.39 EET flow gg a écrit : > > Ok, updated it in the reply > > Sorry I meant directive, not macro. .rept is just fine here. > > -- > レミ・デニ-クールモン > http://www.remlab.net/ > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
From 91236c12365de8a39250ceee07a6234a1735ae77 Mon Sep 17 00:00:00 2001 From: sunyuechi <sunyuechi@iscas.ac.cn> Date: Thu, 1 Feb 2024 15:41:09 +0800 Subject: [PATCH 2/2] lavc/blockdsp: R-V V clear_blocks C908: blockdsp.clear_blocks_c: 128.2 blockdsp.clear_blocks_rvv_i64: 102.5 --- libavcodec/riscv/blockdsp_init.c | 2 ++ libavcodec/riscv/blockdsp_rvv.S | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libavcodec/riscv/blockdsp_init.c b/libavcodec/riscv/blockdsp_init.c index 5370418687..59b2f9d47b 100644 --- a/libavcodec/riscv/blockdsp_init.c +++ b/libavcodec/riscv/blockdsp_init.c @@ -26,6 +26,7 @@ #include "libavcodec/blockdsp.h" void ff_clear_block_rvv(int16_t *block); +void ff_clear_blocks_rvv(int16_t *block); av_cold void ff_blockdsp_init_riscv(BlockDSPContext *c) { @@ -34,6 +35,7 @@ av_cold void ff_blockdsp_init_riscv(BlockDSPContext *c) if (flags & AV_CPU_FLAG_RVV_I64 && ff_get_rv_vlenb() >= 16) { c->clear_block = ff_clear_block_rvv; + c->clear_blocks = ff_clear_blocks_rvv; } #endif } diff --git a/libavcodec/riscv/blockdsp_rvv.S b/libavcodec/riscv/blockdsp_rvv.S index e85697613a..19b1ecdbef 100644 --- a/libavcodec/riscv/blockdsp_rvv.S +++ b/libavcodec/riscv/blockdsp_rvv.S @@ -27,3 +27,21 @@ func ff_clear_block_rvv, zve64x ret endfunc + +func ff_clear_blocks_rvv, zve64x + vsetivli zero, 16, e64, m8, ta, ma + vmv.v.i v0, 0 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + + ret +endfunc -- 2.43.0