We need to use either VWCVT.X.X.V or VSEXT.VF2. The later is preferable to avoid changing VTYPE.
Unified · Split
| @@ -163,12 +163,11 @@ func ff_flac_wasted33_rvv, zve64x · 162 unmodified lines | |||
| 163 | ret | 163 | ret |
| 164 | 164 | ||
| 165 | 2: // Pessimistic case: wasted >= 32 | 165 | 2: // Pessimistic case: wasted >= 32 |
| 166 | vsetvli t0, a3, e32, m4, ta, ma | 166 | vsetvli t0, a3, e64, m8, ta, ma |
| 167 | vle32.v v8, (a1) | 167 | vle32.v v8, (a1) |
| 168 | sub a3, a3, t0 | 168 | sub a3, a3, t0 |
| 169 | vwcvtu.x.x.v v16, v8 | 169 | vsext.vf2 v16, v8 |
| 170 | sh2add a1, t0, a1 | 170 | sh2add a1, t0, a1 |
| 171 | vsetvli zero, zero, e64, m8, ta, ma | ||
| 172 | vsll.vx v16, v16, a2 | 171 | vsll.vx v16, v16, a2 |
| 173 | vse64.v v16, (a0) | 172 | vse64.v v16, (a0) |
| 174 | sh3add a0, t0, a0 | 173 | sh3add a0, t0, a0 |