aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/riscv/flacdsp_rvv.S
diff options
context:
space:
mode:
authorRémi Denis-Courmont <remi@remlab.net>2024-06-06 22:21:30 +0300
committerRémi Denis-Courmont <remi@remlab.net>2024-06-07 17:53:05 +0300
commitc3dbbb316ee44b1685b6437756a23a545fb31fb1 (patch)
tree5b1d00c539c61573df60292412afa4a62570d344 /libavcodec/riscv/flacdsp_rvv.S
parent5939f7228a23ac2e02259612bc174cdacbe04ac1 (diff)
downloadffmpeg-c3dbbb316ee44b1685b6437756a23a545fb31fb1.tar.gz
lavc/flacdsp: fix sign extension in R-V V wasted33
We need to use either VWCVT.X.X.V or VSEXT.VF2. The later is preferable to avoid changing VTYPE.
Diffstat (limited to 'libavcodec/riscv/flacdsp_rvv.S')
-rw-r--r--libavcodec/riscv/flacdsp_rvv.S5
1 files changed, 2 insertions, 3 deletions
diff --git a/libavcodec/riscv/flacdsp_rvv.S b/libavcodec/riscv/flacdsp_rvv.S
index ea42f8bea4..1724aee9d7 100644
--- a/libavcodec/riscv/flacdsp_rvv.S
+++ b/libavcodec/riscv/flacdsp_rvv.S
@@ -163,12 +163,11 @@ func ff_flac_wasted33_rvv, zve64x
ret
2: // Pessimistic case: wasted >= 32
- vsetvli t0, a3, e32, m4, ta, ma
+ vsetvli t0, a3, e64, m8, ta, ma
vle32.v v8, (a1)
sub a3, a3, t0
- vwcvtu.x.x.v v16, v8
+ vsext.vf2 v16, v8
sh2add a1, t0, a1
- vsetvli zero, zero, e64, m8, ta, ma
vsll.vx v16, v16, a2
vse64.v v16, (a0)
sh3add a0, t0, a0