diff options
Diffstat (limited to 'riscv/insns/vslideup_vi.h')
-rw-r--r-- | riscv/insns/vslideup_vi.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/riscv/insns/vslideup_vi.h b/riscv/insns/vslideup_vi.h index 4135b20..64b4aca 100644 --- a/riscv/insns/vslideup_vi.h +++ b/riscv/insns/vslideup_vi.h @@ -1,8 +1,10 @@ // vslideup.vi vd, vs2, rs1 -if (insn.v_vm() == 0) +require((insn.rs2() & (P.VU.vlmul - 1)) == 0); +require((insn.rd() & (P.VU.vlmul - 1)) == 0); +require(insn.rd() != insn.rs2()); +if (P.VU.vlmul > 1 && insn.v_vm() == 0) require(insn.rd() != 0); -VI_CHECK_SS const reg_t offset = insn.v_zimm5(); VI_LOOP_BASE if (P.VU.vstart < offset && i < offset) |