On Tue, Apr 15, 2025 at 7:31 AM Anton Blanchard <ant...@tenstorrent.com> wrote: > > vslidedown always zeroes elements past vl, where it should use the > tail policy. > > Signed-off-by: Anton Blanchard <ant...@tenstorrent.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > target/riscv/vector_helper.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c > index 67b3bafebb..1012d38c8a 100644 > --- a/target/riscv/vector_helper.c > +++ b/target/riscv/vector_helper.c > @@ -5113,9 +5113,11 @@ void HELPER(NAME)(void *vd, void *v0, target_ulong s1, > void *vs2, \ > } \ > \ > for (i = i_max; i < vl; ++i) { \ > - if (vm || vext_elem_mask(v0, i)) { \ > - *((ETYPE *)vd + H(i)) = 0; \ > + if (!vm && !vext_elem_mask(v0, i)) { \ > + vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \ > + continue; \ > } \ > + *((ETYPE *)vd + H(i)) = 0; \ > } \ > \ > env->vstart = 0; \ > -- > 2.34.1 > >