aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/riscv/bswapdsp_rvv.S
diff options
context:
space:
mode:
authorRĂ©mi Denis-Courmont <remi@remlab.net>2022-10-02 14:55:01 +0300
committerLynne <dev@lynne.ee>2022-10-05 08:26:19 +0200
commit2abafd7307d5ba31cc6492539caf0da15dd808a5 (patch)
treec59f97a721580cacf4c277b3b22bc13216b9612b /libavcodec/riscv/bswapdsp_rvv.S
parentd7528af4df169dea0af080f33e41f292a6eba99c (diff)
downloadffmpeg-2abafd7307d5ba31cc6492539caf0da15dd808a5.tar.gz
lavc/bswapdsp: RISC-V V bswap16_buf
Diffstat (limited to 'libavcodec/riscv/bswapdsp_rvv.S')
-rw-r--r--libavcodec/riscv/bswapdsp_rvv.S17
1 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/riscv/bswapdsp_rvv.S b/libavcodec/riscv/bswapdsp_rvv.S
index 7ea747b3ce..ef2999c1be 100644
--- a/libavcodec/riscv/bswapdsp_rvv.S
+++ b/libavcodec/riscv/bswapdsp_rvv.S
@@ -43,3 +43,20 @@ func ff_bswap32_buf_rvv, zve32x
ret
endfunc
+
+func ff_bswap16_buf_rvv, zve32x
+ li t2, 2
+ addi t1, a0, 1
+1:
+ vsetvli t0, a2, e8, m1, ta, ma
+ vlseg2e8.v v8, (a1)
+ sub a2, a2, t0
+ sh1add a1, t0, a1
+ vsse8.v v8, (t1), t2
+ sh1add t1, t0, t1
+ vsse8.v v9, (a0), t2
+ sh1add a0, t0, a0
+ bnez a2, 1b
+
+ ret
+endfunc