diff options
| author | Anton Blanchard <antonb@tenstorrent.com> | 2025-04-14 21:30:06 +0000 |
|---|---|---|
| committer | Alistair Francis <alistair.francis@wdc.com> | 2025-05-19 13:39:25 +1000 |
| commit | 2669b696e243b64f8ea1a6468dcee255de99f08d (patch) | |
| tree | d80ff426a406ccb7aee56821921a303bfac1f4a8 | |
| parent | 8539a1244bf240d28917effb88a140eb58e45e88 (diff) | |
| download | focaccia-qemu-2669b696e243b64f8ea1a6468dcee255de99f08d.tar.gz focaccia-qemu-2669b696e243b64f8ea1a6468dcee255de99f08d.zip | |
target/riscv: Fix vslidedown with rvv_ta_all_1s
vslidedown always zeroes elements past vl, where it should use the tail policy. Signed-off-by: Anton Blanchard <antonb@tenstorrent.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20250414213006.3509058-1-antonb@tenstorrent.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Cc: qemu-stable@nongnu.org
Diffstat (limited to '')
| -rw-r--r-- | target/riscv/vector_helper.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 3aec9a7731..5dc1c10012 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -5133,9 +5133,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; \ |