1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-11-23 21:54:53 +02:00

pixblockdsp: avoid segments on R-V V get_pixels_unaligned

On SpacemiT X86, before:
get_pixels_unaligned_rvv_i32:                          172.4 ( 0.37x)
...after:
get_pixels_unaligned_rvv_i32:                           34.4 ( 1.84x)
This commit is contained in:
Rémi Denis-Courmont
2025-10-05 15:16:03 +03:00
parent e3b0d58394
commit c17d304e1f

View File

@@ -33,17 +33,22 @@ endfunc
func ff_get_pixels_unaligned_8_rvv, zve32x
lpad 0
li t2, 8
vsetivli zero, 8, e8, mf2, ta, ma
vlsseg8e8.v v16, (a1), a2
1:
add t1, a1, a2
vle8.v v16, (a1)
addi t0, a0, 2 * 8
vle8.v v17, (t1)
addi t2, t2, -2
vwcvtu.x.x.v v8, v16
vwcvtu.x.x.v v9, v17
vwcvtu.x.x.v v10, v18
vwcvtu.x.x.v v11, v19
vwcvtu.x.x.v v12, v20
vwcvtu.x.x.v v13, v21
vwcvtu.x.x.v v14, v22
vwcvtu.x.x.v v15, v23
vsseg8e16.v v8, (a0)
vse16.v v8, (a0)
add a1, t1, a2
vse16.v v9, (t0)
addi a0, t0, 2 * 8
bnez t2, 1b
ret
endfunc