Browse Source

Simplfy vfmv_v_f (#884)

pull/885/head
Yueh-Ting (eop) Chen 4 years ago
committed by GitHub
parent
commit
65ef13629a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 33
      riscv/insns/vfmv_v_f.h

33
riscv/insns/vfmv_v_f.h

@ -1,31 +1,4 @@
// vfmv_vf vd, vs1
require_align(insn.rd(), P.VU.vflmul);
VI_VFP_COMMON
switch(P.VU.vsew) {
case e16:
for (reg_t i=P.VU.vstart->read(); i<vl; ++i) {
auto &vd = P.VU.elt<float16_t>(rd_num, i, true);
auto rs1 = f16(READ_FREG(rs1_num));
vd = rs1;
}
break;
case e32:
for (reg_t i=P.VU.vstart->read(); i<vl; ++i) {
auto &vd = P.VU.elt<float32_t>(rd_num, i, true);
auto rs1 = f32(READ_FREG(rs1_num));
vd = rs1;
}
break;
case e64:
for (reg_t i=P.VU.vstart->read(); i<vl; ++i) {
auto &vd = P.VU.elt<float64_t>(rd_num, i, true);
auto rs1 = f64(READ_FREG(rs1_num));
vd = rs1;
}
break;
}
P.VU.vstart->write(0);
VI_VF_MERGE_LOOP({
vd = rs1;
})

Loading…
Cancel
Save