On 2024/3/15 1:56, Daniel Henrique Barboza wrote:
The helper isn't setting env->vstart = 0 after its execution, as it is
expected from every vector instruction that completes successfully.

Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com>

Reviewed-by: LIU Zhiwei <zhiwei_...@linux.alibaba.com>

Zhiwei

---
  target/riscv/vector_helper.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c
index fe56c007d5..ca79571ae2 100644
--- a/target/riscv/vector_helper.c
+++ b/target/riscv/vector_helper.c
@@ -4781,6 +4781,7 @@ void HELPER(NAME)(void *vd, void *v0, target_ulong s1, 
void *vs2,         \
          }                                                                 \
          *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(i - offset));          \
      }                                                                     \
+    env->vstart = 0;                                                      \
      /* set tail elements to 1s */                                         \
      vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz);              \
  }

Reply via email to