T-Head C908: add_hfyu_left_pred_bgr32_c: 237.5 add_hfyu_left_pred_bgr32_rvv_i32: 173.5 (before) add_hfyu_left_pred_bgr32_rvv_i32: 110.0 (after)
Showing the changes to libavcodec (2 of 2 files). Show all
Unified · Split
| @@ -35,7 +35,8 @@ av_cold void ff_huffyuvdsp_init_riscv(HuffYUVDSPContext *c, · 34 unmodified lines | |||
| 35 | 35 | ||
| 36 | if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { | 36 | if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { |
| 37 | c->add_int16 = ff_add_int16_rvv; | 37 | c->add_int16 = ff_add_int16_rvv; |
| 38 | c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv; | 38 | if (flags & AV_CPU_FLAG_RVB_BASIC) |
| 39 | c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv; | ||
| 39 | } | 40 | } |
| 40 | #endif | 41 | #endif |
| 41 | } | 42 | } |
| @@ -36,8 +36,10 @@ func ff_add_int16_rvv, zve32x · 35 unmodified lines | |||
| 36 | ret | 36 | ret |
| 37 | endfunc | 37 | endfunc |
| 38 | 38 | ||
| 39 | func ff_add_hfyu_left_pred_bgr32_rvv, zve32x | 39 | func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, zbb |
| 40 | vsetivli zero, 4, e8, m1, ta, ma | 40 | vtype_ivli t1, 4, e8, ta, ma |
| 41 | li t0, 4 | ||
| 42 | vsetvl zero, t0, t1 | ||
| 41 | vle8.v v8, (a3) | 43 | vle8.v v8, (a3) |
| 42 | sh2add a2, a2, a1 | 44 | sh2add a2, a2, a1 |
| 43 | 1: | 45 | 1: |