aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vslideup_vx.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/vslideup_vx.h')
-rw-r--r--riscv/insns/vslideup_vx.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/riscv/insns/vslideup_vx.h b/riscv/insns/vslideup_vx.h
index bf73fcd..063c061 100644
--- a/riscv/insns/vslideup_vx.h
+++ b/riscv/insns/vslideup_vx.h
@@ -1,4 +1,10 @@
//vslideup.vx vd, vs2, rs1
+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);
+
const reg_t offset = RS1;
VI_LOOP_BASE
if (P.VU.vstart < offset && i < offset)