Unified · Split
| @@ -161,6 +161,7 @@ func ff_vc1_inv_trans_8_rvv, zve32x · 160 unmodified lines | ||
| 161 | 161 | vsll.vi v23, v7, 4 |
| 162 | 162 | vsub.vv v20, v20, v21 |
| 163 | 163 | vsub.vv v22, v22, v23 |
| 164 | + srli t2, t1, 2 | |
| 164 | 165 | vadd.vv v0, v28, v16 |
| 165 | 166 | vadd.vv v19, v20, v22 # t4 |
| 166 | 167 | vadd.vv v1, v29, v17 |
| @@ -170,6 +171,14 @@ func ff_vc1_inv_trans_8_rvv, zve32x · 3 unmodified lines | ||
| 170 | 171 | vsub.vv v5, v30, v18 |
| 171 | 172 | vsub.vv v6, v29, v17 |
| 172 | 173 | 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 | |
| 178 | +1: | |
| 179 | + .irp n,0,1,2,3,4,5,6,7 | |
| 180 | + vssra.vx v\n, v\n, t1 | |
| 181 | + .endr | |
| 173 | 182 | jr t0 |
| 174 | 183 | endfunc |
| 175 | 184 | |
| @@ -216,35 +225,22 @@ func ff_vc1_inv_trans_8x8_rvv, zve32x · 40 unmodified lines | ||
| 216 | 225 | addi a7, a0, 7 * 8 * 2 |
| 217 | 226 | vle16.v v6, (a6) |
| 218 | 227 | vle16.v v7, (a7) |
| 228 | + li t1, 3 | |
| 219 | 229 | 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 | 230 | vsseg8e16.v v0, (a0) |
| 224 | 231 | .irp n,0,1,2,3,4,5,6,7 |
| 225 | 232 | vle16.v v\n, (a\n) |
| 226 | 233 | .endr |
| 234 | + li t1, 7 | |
| 227 | 235 | 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 | 236 | vse16.v v0, (a0) |
| 243 | − vssra.vi v2, v2, 7 | |
| 244 | 237 | vse16.v v1, (a1) |
| 245 | − vssra.vi v3, v3, 7 | |
| 246 | 238 | vse16.v v2, (a2) |
| 247 | 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 | 244 | ret |
| 249 | 245 | endfunc |
| 250 | 246 | |
| @@ -252,6 +248,7 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 1 unmodified line | ||
| 252 | 248 | csrwi vxrm, 0 |
| 253 | 249 | vsetivli zero, 4, e16, mf2, ta, ma |
| 254 | 250 | vlseg8e16.v v0, (a2) |
| 251 | + li t1, 3 | |
| 255 | 252 | jal t0, ff_vc1_inv_trans_8_rvv |
| 256 | 253 | vsseg8e16.v v0, (a2) |
| 257 | 254 | addi a3, a2, 1 * 8 * 2 |
| @@ -262,10 +259,6 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 4 unmodified lines | ||
| 262 | 259 | addi a5, a2, 3 * 8 * 2 |
| 263 | 260 | vle16.v v2, (a4) |
| 264 | 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 | 262 | li t1, 7 |
| 270 | 263 | jal t0, ff_vc1_inv_trans_4_rvv |
| 271 | 264 | add a3, a1, a0 |
| @@ -320,33 +313,21 @@ func ff_vc1_inv_trans_4x8_rvv, zve32x · 48 unmodified lines | ||
| 320 | 313 | addi t1, a2, 7 * 8 * 2 |
| 321 | 314 | vle16.v v6, (t6) |
| 322 | 315 | vle16.v v7, (t1) |
| 323 | − | |
| 316 | + li t1, 7 | |
| 324 | 317 | jal t0, ff_vc1_inv_trans_8_rvv |
| 325 | − vadd.vi v4, v4, 1 | |
| 326 | 318 | 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 | 319 | vle8.v v8, (a0) |
| 344 | − add t6, a1, t5 | |
| 320 | + add t1, a1, t0 | |
| 345 | 321 | vle8.v v9, (t0) |
| 322 | + add t2, a1, t1 | |
| 346 | 323 | vle8.v v10, (t1) |
| 324 | + add t3, a1, t2 | |
| 347 | 325 | vle8.v v11, (t2) |
| 326 | + add t4, a1, t3 | |
| 348 | 327 | vle8.v v12, (t3) |
| 328 | + add t5, a1, t4 | |
| 349 | 329 | vle8.v v13, (t4) |
| 330 | + add t6, a1, t5 | |
| 350 | 331 | vle8.v v14, (t5) |
| 351 | 332 | vle8.v v15, (t6) |
| 352 | 333 | vsetvli zero, zero, e8, mf4, ta, ma |