summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnton Blanchard <antonb@tenstorrent.com>2024-10-30 15:35:38 +1100
committerAlistair Francis <alistair.francis@wdc.com>2024-10-31 13:51:24 +1000
commitc128d39edeff337220fc536a3e935bcba01ecb49 (patch)
tree634ca0cf07bae6531a78c4dbb2b0eae1e60f6187
parentfd16cfb2995e9196b579d8885145c4247dfa6058 (diff)
downloadfocaccia-qemu-c128d39edeff337220fc536a3e935bcba01ecb49.tar.gz
focaccia-qemu-c128d39edeff337220fc536a3e935bcba01ecb49.zip
target/riscv: Fix vcompress with rvv_ta_all_1s
vcompress packs vl or less fields into vd, so the tail starts after the
last packed field. This could be more clearly expressed in the ISA,
but for now this thread helps to explain it:

https://github.com/riscv/riscv-v-spec/issues/796

Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241030043538.939712-1-antonb@tenstorrent.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-rw-r--r--target/riscv/vector_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c
index 072bd444b1..ccb32e6122 100644
--- a/target/riscv/vector_helper.c
+++ b/target/riscv/vector_helper.c
@@ -5132,7 +5132,7 @@ void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2,               \
     }                                                                     \
     env->vstart = 0;                                                      \
     /* set tail elements to 1s */                                         \
-    vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz);              \
+    vext_set_elems_1s(vd, vta, num * esz, total_elems * esz);             \
 }
 
 /* Compress into vd elements of vs2 where vs1 is enabled */