diff options
author | Dave.Wen <dave.wen@sifive.com> | 2019-04-08 18:45:19 -0700 |
---|---|---|
committer | Dave.Wen <dave.wen@sifive.com> | 2019-04-08 18:45:19 -0700 |
commit | 92e9732e10a11f967aad6ba73f061d8af92a80a2 (patch) | |
tree | 32f311838ad852738021d753111c965a0f417200 /riscv/insns/vmulh_vx.h | |
parent | 24b18623b2fddfdd633a337b2d9e23caea9f4c89 (diff) | |
download | spike-92e9732e10a11f967aad6ba73f061d8af92a80a2.zip spike-92e9732e10a11f967aad6ba73f061d8af92a80a2.tar.gz spike-92e9732e10a11f967aad6ba73f061d8af92a80a2.tar.bz2 |
fixed: xext, vmulh[u]_v[vx], vsne_vi
Diffstat (limited to 'riscv/insns/vmulh_vx.h')
-rw-r--r-- | riscv/insns/vmulh_vx.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/riscv/insns/vmulh_vx.h b/riscv/insns/vmulh_vx.h index a7bf7aa..1898950 100644 --- a/riscv/insns/vmulh_vx.h +++ b/riscv/insns/vmulh_vx.h @@ -1,5 +1,9 @@ // vmulh +reg_t vsew = STATE.VU.vsew; +uint64_t lo_mask = ((uint64_t)1 << vsew) - 1; + VI_VX_LOOP ({ - vd = vsext((rs1 * vs2) >> (sew/2), sew); + int64_t result = (int64_t)rs1 * (int64_t)vs2; + vd = (result >> sew) & lo_mask; }) |