diff options
author | Andrew Waterman <andrew@sifive.com> | 2020-06-25 14:26:53 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-25 14:26:53 -0700 |
commit | 61f0dab33f7e529cc709908840311a8a7dcb23ce (patch) | |
tree | 9cbe4e25c9b67e1d057cc0cabff9123c5a9582fb | |
parent | 958dcdc6fe6ed648444b622bbe667d6d477549ec (diff) | |
parent | 94cac9f5c454b5fab7a521ddd1f4a315b59083d6 (diff) | |
download | spike-61f0dab33f7e529cc709908840311a8a7dcb23ce.zip spike-61f0dab33f7e529cc709908840311a8a7dcb23ce.tar.gz spike-61f0dab33f7e529cc709908840311a8a7dcb23ce.tar.bz2 |
Merge pull request #494 from chihminchao/rvv-fix-2020-06-25
Rvv fix 2020 06 25
-rw-r--r-- | riscv/decode.h | 3 | ||||
-rw-r--r-- | riscv/insns/viota_m.h | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/riscv/decode.h b/riscv/decode.h index 7debeaa..71caa58 100644 --- a/riscv/decode.h +++ b/riscv/decode.h @@ -1863,9 +1863,6 @@ for (reg_t i = 0; i < P.VU.vlmax && P.VU.vl != 0; ++i) { \ #define VI_VFP_LOOP_CMP_BASE \ VI_VFP_COMMON \ for (reg_t i = P.VU.vstart; i < vl; ++i) { \ - float32_t vs2 = P.VU.elt<float32_t>(rs2_num, i); \ - float32_t vs1 = P.VU.elt<float32_t>(rs1_num, i); \ - float32_t rs1 = f32(READ_FREG(rs1_num)); \ VI_LOOP_ELEMENT_SKIP(); \ uint64_t mmask = UINT64_C(1) << mpos; \ uint64_t &vdi = P.VU.elt<uint64_t>(rd_num, midx, true); \ diff --git a/riscv/insns/viota_m.h b/riscv/insns/viota_m.h index 69c0d20..d5b5fbc 100644 --- a/riscv/insns/viota_m.h +++ b/riscv/insns/viota_m.h @@ -7,9 +7,13 @@ reg_t rd_num = insn.rd(); reg_t rs1_num = insn.rs1(); reg_t rs2_num = insn.rs2(); require(P.VU.vstart == 0); -require_noover(rd_num, P.VU.vflmul, rs2_num, 1); require_vm; require_align(rd_num, P.VU.vflmul); +if ((P.VU.vflmul / P.VU.vsew) < 1) { + require_noover(rd_num, P.VU.vflmul, rs2_num, 1); +} else { + require_noover_widen(rd_num, P.VU.vflmul, rs2_num, 1); +} int cnt = 0; for (reg_t i = 0; i < vl; ++i) { |