diff options
author | Rémi Denis-Courmont <remi@remlab.net> | 2024-07-25 17:33:12 +0300 |
---|---|---|
committer | Rémi Denis-Courmont <remi@remlab.net> | 2024-07-28 17:37:21 +0300 |
commit | bbfc0ac9cacbfbddd94ffc92ef904b7854cb88ad (patch) | |
tree | 82848157452ce41bdc10a787df0119b36e68b150 | |
parent | e42a0763b71ccb5b970ad17eb5129c064db36899 (diff) | |
download | ffmpeg-bbfc0ac9cacbfbddd94ffc92ef904b7854cb88ad.tar.gz |
lavc/riscv: don't set vxrm if unnecessary
While narrowing clip is nominally a rounding operation, the rounding mode
has no arithmetic consequence if the right shift is by zero bits.
-rw-r--r-- | libavcodec/riscv/h263dsp_rvv.S | 5 | ||||
-rw-r--r-- | libavcodec/riscv/vp8dsp_rvv.S | 1 |
2 files changed, 2 insertions, 4 deletions
diff --git a/libavcodec/riscv/h263dsp_rvv.S b/libavcodec/riscv/h263dsp_rvv.S index c78483926a..e9cb4ec07b 100644 --- a/libavcodec/riscv/h263dsp_rvv.S +++ b/libavcodec/riscv/h263dsp_rvv.S @@ -31,14 +31,13 @@ func ff_h263_h_loop_filter_rvv, zve32x vssseg4e8.v v8, (a0), a1 ret 1: - csrwi vxrm, 0 -2: auipc t1, %pcrel_hi(ff_h263_loop_filter_strength) + auipc t1, %pcrel_hi(ff_h263_loop_filter_strength) vwsubu.vv v14, v10, v9 # p2 - p1 add t1, t1, a2 vwsubu.vv v12, v8, v11 # p0 - p3 vsetvli zero, zero, e16, m1, ta, mu vsll.vi v14, v14, 2 - lbu t1, %pcrel_lo(2b)(t1) # strength + lbu t1, %pcrel_lo(1b)(t1) # strength vadd.vv v16, v12, v14 # Divide by 8 toward 0. v16 is a signed 10-bit value at this point. vsrl.vi v18, v16, 16 - 3 # v18 = (v16 < 0) ? 7 : 0 diff --git a/libavcodec/riscv/vp8dsp_rvv.S b/libavcodec/riscv/vp8dsp_rvv.S index 839d228b0f..6ff443fbe6 100644 --- a/libavcodec/riscv/vp8dsp_rvv.S +++ b/libavcodec/riscv/vp8dsp_rvv.S @@ -169,7 +169,6 @@ endfunc # a3 = DC func ff_vp78_idct_dc_add_rvv, zve32x - csrwi vxrm, 0 vsetivli zero, 4, e8, mf4, ta, ma sh zero, (a1) vlse32.v v8, (a0), a2 |