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)
Unified · Split
| @@ -35,7 +35,8 @@ av_cold void ff_huffyuvdsp_init_riscv(HuffYUVDSPContext *c, · 34 unmodified lines | ||
| 35 | 35 | |
| 36 | 36 | if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { |
| 37 | 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 | 41 | #endif |
| 41 | 42 | } |
| @@ -36,8 +36,10 @@ func ff_add_int16_rvv, zve32x · 35 unmodified lines | ||
| 36 | 36 | ret |
| 37 | 37 | endfunc |
| 38 | 38 | |
| 39 | −func ff_add_hfyu_left_pred_bgr32_rvv, zve32x | |
| 40 | − vsetivli zero, 4, e8, m1, ta, ma | |
| 39 | +func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, zbb | |
| 40 | + vtype_ivli t1, 4, e8, ta, ma | |
| 41 | + li t0, 4 | |
| 42 | + vsetvl zero, t0, t1 | |
| 41 | 43 | vle8.v v8, (a3) |
| 42 | 44 | sh2add a2, a2, a1 |
| 43 | 45 | 1: |