History

lavc/vc1dsp: factor R-V V inv_trans_8 code

Rémi Denis-Courmont committed 2 years ago

Commit 2c900d41 parent 2902ed21 file · +23 −42Browse files

Showing the changes to libavcodec (1 of 1 file). Show all

Unified · Split

libavcodec/riscv/vc1dsp_rvv.S+23−42
@@ -161,6 +161,7 @@ func ff_vc1_inv_trans_8_rvv, zve32x · 160 unmodified lines
161 vsll.vi v23, v7, 4161 vsll.vi v23, v7, 4
162 vsub.vv v20, v20, v21162 vsub.vv v20, v20, v21
163 vsub.vv v22, v22, v23163 vsub.vv v22, v22, v23
164 srli t2, t1, 2
164 vadd.vv v0, v28, v16165 vadd.vv v0, v28, v16
165 vadd.vv v19, v20, v22 # t4166 vadd.vv v19, v20, v22 # t4
166 vadd.vv v1, v29, v17167 vadd.vv v1, v29, v17
@@ -170,6 +171,14 @@ func ff_vc1_inv_trans_8_rvv, zve32x · 3 unmodified lines
170 vsub.vv v5, v30, v18171 vsub.vv v5, v30, v18
171 vsub.vv v6, v29, v17172 vsub.vv v6, v29, v17
172 vsub.vv v7, v28, v16173 vsub.vv v7, v28, v16
174 beqz t2, 1f # faster than 4x add t2=zero
175 .irp n,4,5,6,7
176 vadd.vi v\n, v\n, 1
177 .endr
1781:
179 .irp n,0,1,2,3,4,5,6,7
180 vssra.vx v\n, v\n, t1
181 .endr
173 jr t0182 jr t0
174endfunc183endfunc
175 184
@@ -216,35 +225,22 @@ func ff_vc1_inv_trans_8x8_rvv, zve32x · 40 unmodified lines
216 addi a7, a0, 7 * 8 * 2225 addi a7, a0, 7 * 8 * 2
217 vle16.v v6, (a6)226 vle16.v v6, (a6)
218 vle16.v v7, (a7)227 vle16.v v7, (a7)
228 li t1, 3
219 jal t0, ff_vc1_inv_trans_8_rvv229 jal t0, ff_vc1_inv_trans_8_rvv
220 .irp n,0,1,2,3,4,5,6,7
221 vssra.vi v\n, v\n, 3
222 .endr
223 vsseg8e16.v v0, (a0)230 vsseg8e16.v v0, (a0)
224 .irp n,0,1,2,3,4,5,6,7231 .irp n,0,1,2,3,4,5,6,7
225 vle16.v v\n, (a\n)232 vle16.v v\n, (a\n)
226 .endr233 .endr
234 li t1, 7
227 jal t0, ff_vc1_inv_trans_8_rvv235 jal t0, ff_vc1_inv_trans_8_rvv
228 vadd.vi v4, v4, 1
229 vadd.vi v5, v5, 1
230 vssra.vi v4, v4, 7
231 vssra.vi v5, v5, 7
232 vse16.v v4, (a4)
233 vadd.vi v6, v6, 1
234 vse16.v v5, (a5)
235 vadd.vi v7, v7, 1
236 vssra.vi v6, v6, 7
237 vssra.vi v7, v7, 7
238 vse16.v v6, (a6)
239 vssra.vi v0, v0, 7
240 vse16.v v7, (a7)
241 vssra.vi v1, v1, 7
242 vse16.v v0, (a0)236 vse16.v v0, (a0)
243 vssra.vi v2, v2, 7
244 vse16.v v1, (a1)237 vse16.v v1, (a1)
245 vssra.vi v3, v3, 7
246 vse16.v v2, (a2)238 vse16.v v2, (a2)
247 vse16.v v3, (a3)239 vse16.v v3, (a3)
240 vse16.v v4, (a4)
241 vse16.v v5, (a5)
242 vse16.v v6, (a6)
243 vse16.v v7, (a7)
248 ret244 ret
249endfunc245endfunc
250 246
@@ -252,6 +248,7 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 1 unmodified line
252 csrwi vxrm, 0248 csrwi vxrm, 0
253 vsetivli zero, 4, e16, mf2, ta, ma249 vsetivli zero, 4, e16, mf2, ta, ma
254 vlseg8e16.v v0, (a2)250 vlseg8e16.v v0, (a2)
251 li t1, 3
255 jal t0, ff_vc1_inv_trans_8_rvv252 jal t0, ff_vc1_inv_trans_8_rvv
256 vsseg8e16.v v0, (a2)253 vsseg8e16.v v0, (a2)
257 addi a3, a2, 1 * 8 * 2254 addi a3, a2, 1 * 8 * 2
@@ -262,10 +259,6 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 4 unmodified lines
262 addi a5, a2, 3 * 8 * 2259 addi a5, a2, 3 * 8 * 2
263 vle16.v v2, (a4)260 vle16.v v2, (a4)
264 vle16.v v3, (a5)261 vle16.v v3, (a5)
265 .irp n,0,1,2,3
266 # shift 4 vectors of 8 elems after transpose instead of 8 of 4
267 vssra.vi v\n, v\n, 3
268 .endr
269 li t1, 7262 li t1, 7
270 jal t0, ff_vc1_inv_trans_4_rvv263 jal t0, ff_vc1_inv_trans_4_rvv
271 add a3, a1, a0264 add a3, a1, a0
@@ -320,33 +313,21 @@ func ff_vc1_inv_trans_4x8_rvv, zve32x · 48 unmodified lines
320 addi t1, a2, 7 * 8 * 2313 addi t1, a2, 7 * 8 * 2
321 vle16.v v6, (t6)314 vle16.v v6, (t6)
322 vle16.v v7, (t1)315 vle16.v v7, (t1)
323 316 li t1, 7
324 jal t0, ff_vc1_inv_trans_8_rvv317 jal t0, ff_vc1_inv_trans_8_rvv
325 vadd.vi v4, v4, 1
326 add t0, a1, a0318 add t0, a1, a0
327 vadd.vi v5, v5, 1
328 vadd.vi v6, v6, 1
329 add t1, a1, t0
330 vadd.vi v7, v7, 1
331 vssra.vi v0, v0, 7
332 add t2, a1, t1
333 vssra.vi v1, v1, 7
334 vssra.vi v2, v2, 7
335 add t3, a1, t2
336 vssra.vi v3, v3, 7
337 vssra.vi v4, v4, 7
338 add t4, a1, t3
339 vssra.vi v5, v5, 7
340 vssra.vi v6, v6, 7
341 add t5, a1, t4
342 vssra.vi v7, v7, 7
343 vle8.v v8, (a0)319 vle8.v v8, (a0)
344 add t6, a1, t5320 add t1, a1, t0
345 vle8.v v9, (t0)321 vle8.v v9, (t0)
322 add t2, a1, t1
346 vle8.v v10, (t1)323 vle8.v v10, (t1)
324 add t3, a1, t2
347 vle8.v v11, (t2)325 vle8.v v11, (t2)
326 add t4, a1, t3
348 vle8.v v12, (t3)327 vle8.v v12, (t3)
328 add t5, a1, t4
349 vle8.v v13, (t4)329 vle8.v v13, (t4)
330 add t6, a1, t5
350 vle8.v v14, (t5)331 vle8.v v14, (t5)
351 vle8.v v15, (t6)332 vle8.v v15, (t6)
352 vsetvli zero, zero, e8, mf4, ta, ma333 vsetvli zero, zero, e8, mf4, ta, ma

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t