diff options
-rw-r--r-- | riscv/insns/viota_m.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/riscv/insns/viota_m.h b/riscv/insns/viota_m.h index 69c0d20..d5b5fbc 100644 --- a/riscv/insns/viota_m.h +++ b/riscv/insns/viota_m.h @@ -7,9 +7,13 @@ reg_t rd_num = insn.rd(); reg_t rs1_num = insn.rs1(); reg_t rs2_num = insn.rs2(); require(P.VU.vstart == 0); -require_noover(rd_num, P.VU.vflmul, rs2_num, 1); require_vm; require_align(rd_num, P.VU.vflmul); +if ((P.VU.vflmul / P.VU.vsew) < 1) { + require_noover(rd_num, P.VU.vflmul, rs2_num, 1); +} else { + require_noover_widen(rd_num, P.VU.vflmul, rs2_num, 1); +} int cnt = 0; for (reg_t i = 0; i < vl; ++i) { |