Message ID | 20250126072056.4004912-6-antonb@tenstorrent.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | target/riscv: Fix some RISC-V instruction corner cases | expand |
Hi Anton, The vext_check_slide function affects the vslide[up|down].v[x|i]/vfslide1[up|down].vf/vslide1[up|down].vx instructions than the vslide1down.vx instruction alone. Therefore, it would be more appropriate to update the commit message to provide a clearer information. (PS:perhaps, using the “vector slide instructions” to replace the specified vslide1down.vx instruction would be better.) The patch 06 also has the same issue. Thanks, Max On 2025/1/26 3:20 PM, Anton Blanchard wrote: > Signed-off-by: Anton Blanchard <antonb@tenstorrent.com> > --- > target/riscv/insn_trans/trans_rvv.c.inc | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_trans/trans_rvv.c.inc > index f5ba1c4280..a873536eea 100644 > --- a/target/riscv/insn_trans/trans_rvv.c.inc > +++ b/target/riscv/insn_trans/trans_rvv.c.inc > @@ -609,6 +609,7 @@ static bool vext_check_slide(DisasContext *s, int vd, int vs2, > { > bool ret = require_align(vs2, s->lmul) && > require_align(vd, s->lmul) && > + require_vm(vm, vs2) && > require_vm(vm, vd); > if (is_over) { > ret &= (vd != vs2);
diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_trans/trans_rvv.c.inc index f5ba1c4280..a873536eea 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -609,6 +609,7 @@ static bool vext_check_slide(DisasContext *s, int vd, int vs2, { bool ret = require_align(vs2, s->lmul) && require_align(vd, s->lmul) && + require_vm(vm, vs2) && require_vm(vm, vd); if (is_over) { ret &= (vd != vs2);
Signed-off-by: Anton Blanchard <antonb@tenstorrent.com> --- target/riscv/insn_trans/trans_rvv.c.inc | 1 + 1 file changed, 1 insertion(+)