aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vmsbf_m.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/vmsbf_m.h')
-rw-r--r--riscv/insns/vmsbf_m.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/riscv/insns/vmsbf_m.h b/riscv/insns/vmsbf_m.h
index c7ec7f0..2be6f41 100644
--- a/riscv/insns/vmsbf_m.h
+++ b/riscv/insns/vmsbf_m.h
@@ -11,10 +11,9 @@ reg_t rs2_num = insn.rs2();
bool has_one = false;
for (reg_t i = P.VU.vstart; i < vl; ++i) {
- const int mlen = P.VU.vmlen;
- const int midx = (mlen * i) / 64;
- const int mpos = (mlen * i) % 64;
- const uint64_t mmask = (UINT64_MAX << (64 - mlen)) >> (64 - mlen - mpos);
+ const int midx = i / 64;
+ const int mpos = i % 64;
+ const uint64_t mmask = UINT64_C(1) << mpos; \
bool vs2_lsb = ((P.VU.elt<uint64_t>(rs2_num, midx) >> mpos) & 0x1) == 1;
bool do_mask = (P.VU.elt<uint64_t>(0, midx) >> mpos) & 0x1;