Browse Source

Merge pull request #2008 from HaochenGui/all-one-agnostic

Bypass masked-off elements for viota
pull/2010/head
Andrew Waterman 1 year ago
committed by GitHub
parent
commit
5cb0a97677
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 17
      riscv/insns/viota_m.h

17
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<uint8_t>(rd_num, i, true) = use_ori ?
P.VU.elt<uint8_t>(rd_num, i) : cnt;
P.VU.elt<uint8_t>(rd_num, i, true) = cnt;
break;
case e16:
P.VU.elt<uint16_t>(rd_num, i, true) = use_ori ?
P.VU.elt<uint16_t>(rd_num, i) : cnt;
P.VU.elt<uint16_t>(rd_num, i, true) = cnt;
break;
case e32:
P.VU.elt<uint32_t>(rd_num, i, true) = use_ori ?
P.VU.elt<uint32_t>(rd_num, i) : cnt;
P.VU.elt<uint32_t>(rd_num, i, true) = cnt;
break;
default:
P.VU.elt<uint64_t>(rd_num, i, true) = use_ori ?
P.VU.elt<uint64_t>(rd_num, i) : cnt;
P.VU.elt<uint64_t>(rd_num, i, true) = cnt;
break;
}

Loading…
Cancel
Save