From 1ec477fffe31a65f2e2e6d2f3a53322cca018403 Mon Sep 17 00:00:00 2001 From: Haochen Gui Date: Tue, 17 Jun 2025 08:24:51 +0000 Subject: [PATCH] Bypass masked-off elements for viota * riscv/insns/viota_m.h: Bypass masked-off elements. --- riscv/insns/viota_m.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/riscv/insns/viota_m.h b/riscv/insns/viota_m.h index 49c804c2..00155db8 100644 --- a/riscv/insns/viota_m.h +++ b/riscv/insns/viota_m.h @@ -21,23 +21,22 @@ for (reg_t i = 0; i < vl; ++i) { } } - bool use_ori = (insn.v_vm() == 0) && !do_mask; + // Bypass masked-off elements + if ((insn.v_vm() == 0) && !do_mask) + continue; + switch (sew) { case e8: - P.VU.elt(rd_num, i, true) = use_ori ? - P.VU.elt(rd_num, i) : cnt; + P.VU.elt(rd_num, i, true) = cnt; break; case e16: - P.VU.elt(rd_num, i, true) = use_ori ? - P.VU.elt(rd_num, i) : cnt; + P.VU.elt(rd_num, i, true) = cnt; break; case e32: - P.VU.elt(rd_num, i, true) = use_ori ? - P.VU.elt(rd_num, i) : cnt; + P.VU.elt(rd_num, i, true) = cnt; break; default: - P.VU.elt(rd_num, i, true) = use_ori ? - P.VU.elt(rd_num, i) : cnt; + P.VU.elt(rd_num, i, true) = cnt; break; }