Browse Source

Simplify vwmulsu_vv and vwmulsu_vx (#861)

Leverage macro VI_WIDE_OP_AND_ASSIGN_MIX
pull/880/head
Yueh-Ting (eop) Chen 4 years ago
committed by GitHub
parent
commit
49289b07b4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      riscv/insns/vwmulsu_vv.h
  2. 12
      riscv/insns/vwmulsu_vx.h

12
riscv/insns/vwmulsu_vv.h

@ -2,15 +2,5 @@
VI_CHECK_DSS(true);
VI_VV_LOOP_WIDEN
({
switch(P.VU.vsew) {
case e8:
P.VU.elt<uint16_t>(rd_num, i, true) = (int16_t)(int8_t)vs2 * (int16_t)(uint8_t)vs1;
break;
case e16:
P.VU.elt<uint32_t>(rd_num, i, true) = (int32_t)(int16_t)vs2 * (int32_t)(uint16_t)vs1;
break;
default:
P.VU.elt<uint64_t>(rd_num, i, true) = (int64_t)(int32_t)vs2 * (int64_t)(uint32_t)vs1;
break;
}
VI_WIDE_OP_AND_ASSIGN_MIX(vs2, vs1, 0, *, +, uint, int, uint)
})

12
riscv/insns/vwmulsu_vx.h

@ -2,15 +2,5 @@
VI_CHECK_DSS(false);
VI_VX_LOOP_WIDEN
({
switch(P.VU.vsew) {
case e8:
P.VU.elt<uint16_t>(rd_num, i, true) = (int16_t)(int8_t)vs2 * (int16_t)(uint8_t)rs1;
break;
case e16:
P.VU.elt<uint32_t>(rd_num, i, true) = (int32_t)(int16_t)vs2 * (int32_t)(uint16_t)rs1;
break;
default:
P.VU.elt<uint64_t>(rd_num, i, true) = (int64_t)(int32_t)vs2 * (int64_t)(uint32_t)rs1;
break;
}
VI_WIDE_OP_AND_ASSIGN_MIX(vs2, rs1, 0, *, +, uint, int, uint)
})

Loading…
Cancel
Save