aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Min Chao <48193236+chihminchao@users.noreply.github.com>2021-08-10 12:08:53 +0800
committerGitHub <noreply@github.com>2021-08-09 21:08:53 -0700
commita31184c3de3fd981b4733b10554215db0e5aa85f (patch)
treef7db684133506a6ce45963bfa50890d1df7081c4
parentdbe45fd4e54bfce90b684f11602f9fd8bbcc0bf0 (diff)
downloadspike-a31184c3de3fd981b4733b10554215db0e5aa85f.zip
spike-a31184c3de3fd981b4733b10554215db0e5aa85f.tar.gz
spike-a31184c3de3fd981b4733b10554215db0e5aa85f.tar.bz2
rvv fix 2021-08-09 (#768)
* rvv: vmadc/vmsbc have been separated into carry and no-carry versions Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com> * rvv: rename file name by opcode name change Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
-rw-r--r--riscv/insns/vcpop_m.h (renamed from riscv/insns/vpopc_m.h)0
-rw-r--r--riscv/insns/vfredusum_vs.h (renamed from riscv/insns/vfredsum_vs.h)0
-rw-r--r--riscv/insns/vfwredusum_vs.h (renamed from riscv/insns/vfwredsum_vs.h)0
-rw-r--r--riscv/insns/vlm_v.h (renamed from riscv/insns/vle1_v.h)0
-rw-r--r--riscv/insns/vmadc_vi.h2
-rw-r--r--riscv/insns/vmadc_vim.h2
-rw-r--r--riscv/insns/vmadc_vv.h2
-rw-r--r--riscv/insns/vmadc_vvm.h2
-rw-r--r--riscv/insns/vmadc_vx.h2
-rw-r--r--riscv/insns/vmadc_vxm.h2
-rw-r--r--riscv/insns/vmsbc_vv.h2
-rw-r--r--riscv/insns/vmsbc_vvm.h2
-rw-r--r--riscv/insns/vmsbc_vx.h2
-rw-r--r--riscv/insns/vmsbc_vxm.h2
-rw-r--r--riscv/insns/vsm_v.h (renamed from riscv/insns/vse1_v.h)0
-rw-r--r--riscv/riscv.mk.in15
16 files changed, 25 insertions, 10 deletions
diff --git a/riscv/insns/vpopc_m.h b/riscv/insns/vcpop_m.h
index c204b2c..c204b2c 100644
--- a/riscv/insns/vpopc_m.h
+++ b/riscv/insns/vcpop_m.h
diff --git a/riscv/insns/vfredsum_vs.h b/riscv/insns/vfredusum_vs.h
index bad7308..bad7308 100644
--- a/riscv/insns/vfredsum_vs.h
+++ b/riscv/insns/vfredusum_vs.h
diff --git a/riscv/insns/vfwredsum_vs.h b/riscv/insns/vfwredusum_vs.h
index 4ef2896..4ef2896 100644
--- a/riscv/insns/vfwredsum_vs.h
+++ b/riscv/insns/vfwredusum_vs.h
diff --git a/riscv/insns/vle1_v.h b/riscv/insns/vlm_v.h
index 6d3f83a..6d3f83a 100644
--- a/riscv/insns/vle1_v.h
+++ b/riscv/insns/vlm_v.h
diff --git a/riscv/insns/vmadc_vi.h b/riscv/insns/vmadc_vi.h
new file mode 100644
index 0000000..37da8ad
--- /dev/null
+++ b/riscv/insns/vmadc_vi.h
@@ -0,0 +1,2 @@
+// vmadc.vi vd, vs2, simm5
+#include "vmadc_vim.h"
diff --git a/riscv/insns/vmadc_vim.h b/riscv/insns/vmadc_vim.h
index afdca7e..9e15b74 100644
--- a/riscv/insns/vmadc_vim.h
+++ b/riscv/insns/vmadc_vim.h
@@ -1,4 +1,4 @@
-// vmadc.vim vd, vs2, simm5
+// vmadc.vim vd, vs2, simm5, v0
VI_XI_LOOP_CARRY
({
auto v0 = P.VU.elt<uint64_t>(0, midx);
diff --git a/riscv/insns/vmadc_vv.h b/riscv/insns/vmadc_vv.h
new file mode 100644
index 0000000..e120fe6
--- /dev/null
+++ b/riscv/insns/vmadc_vv.h
@@ -0,0 +1,2 @@
+// vmadc.vvm vd, vs2, rs1
+#include "vmadc_vvm.h"
diff --git a/riscv/insns/vmadc_vvm.h b/riscv/insns/vmadc_vvm.h
index a5d54c6..1552880 100644
--- a/riscv/insns/vmadc_vvm.h
+++ b/riscv/insns/vmadc_vvm.h
@@ -1,4 +1,4 @@
-// vmadc.vvm vd, vs2, rs1
+// vmadc.vvm vd, vs2, rs1, v0
VI_VV_LOOP_CARRY
({
auto v0 = P.VU.elt<uint64_t>(0, midx);
diff --git a/riscv/insns/vmadc_vx.h b/riscv/insns/vmadc_vx.h
new file mode 100644
index 0000000..39c20b1
--- /dev/null
+++ b/riscv/insns/vmadc_vx.h
@@ -0,0 +1,2 @@
+// vadc.vx vd, vs2, rs1
+#include "vmadc_vxm.h"
diff --git a/riscv/insns/vmadc_vxm.h b/riscv/insns/vmadc_vxm.h
index ca0342e..306f801 100644
--- a/riscv/insns/vmadc_vxm.h
+++ b/riscv/insns/vmadc_vxm.h
@@ -1,4 +1,4 @@
-// vadc.vx vd, vs2, rs1
+// vadc.vx vd, vs2, rs1, v0
VI_XI_LOOP_CARRY
({
auto v0 = P.VU.elt<uint64_t>(0, midx);
diff --git a/riscv/insns/vmsbc_vv.h b/riscv/insns/vmsbc_vv.h
new file mode 100644
index 0000000..a7bbba1
--- /dev/null
+++ b/riscv/insns/vmsbc_vv.h
@@ -0,0 +1,2 @@
+// vmsbc.vv vd, vs2, rs1
+#include "vmsbc_vvm.h"
diff --git a/riscv/insns/vmsbc_vvm.h b/riscv/insns/vmsbc_vvm.h
index ff95464..5f91a1e 100644
--- a/riscv/insns/vmsbc_vvm.h
+++ b/riscv/insns/vmsbc_vvm.h
@@ -1,4 +1,4 @@
-// vmsbc.vvm vd, vs2, rs1
+// vmsbc.vvm vd, vs2, rs1, v0
VI_VV_LOOP_CARRY
({
auto v0 = P.VU.elt<uint64_t>(0, midx);
diff --git a/riscv/insns/vmsbc_vx.h b/riscv/insns/vmsbc_vx.h
new file mode 100644
index 0000000..cc6b927
--- /dev/null
+++ b/riscv/insns/vmsbc_vx.h
@@ -0,0 +1,2 @@
+// vmsbc.vx vd, vs2, rs1
+#include "vmsbc_vxm.h"
diff --git a/riscv/insns/vmsbc_vxm.h b/riscv/insns/vmsbc_vxm.h
index 29fa012..9d6012e 100644
--- a/riscv/insns/vmsbc_vxm.h
+++ b/riscv/insns/vmsbc_vxm.h
@@ -1,4 +1,4 @@
-// vmsbc.vxm vd, vs2, rs1
+// vmsbc.vxm vd, vs2, rs1, v0
VI_XI_LOOP_CARRY
({
auto &v0 = P.VU.elt<uint64_t>(0, midx);
diff --git a/riscv/insns/vse1_v.h b/riscv/insns/vsm_v.h
index e1d468b..e1d468b 100644
--- a/riscv/insns/vse1_v.h
+++ b/riscv/insns/vsm_v.h
diff --git a/riscv/riscv.mk.in b/riscv/riscv.mk.in
index 0356c39..9609d29 100644
--- a/riscv/riscv.mk.in
+++ b/riscv/riscv.mk.in
@@ -480,6 +480,7 @@ riscv_insn_ext_v_alu_int = \
vasub_vx \
vasubu_vx \
vcompress_vm \
+ vcpop_m \
vdiv_vv \
vdiv_vx \
vdivu_vv \
@@ -488,6 +489,9 @@ riscv_insn_ext_v_alu_int = \
viota_m \
vmacc_vv \
vmacc_vx \
+ vmadc_vv \
+ vmadc_vx \
+ vmadc_vi \
vmadc_vim \
vmadc_vvm \
vmadc_vxm \
@@ -511,7 +515,8 @@ riscv_insn_ext_v_alu_int = \
vmnor_mm \
vmor_mm \
vmornot_mm \
- vpopc_m \
+ vmsbc_vv \
+ vmsbc_vx \
vmsbc_vvm \
vmsbc_vxm \
vmsbf_m \
@@ -721,7 +726,7 @@ riscv_insn_ext_v_alu_fp = \
vfredmax_vs \
vfredmin_vs \
vfredosum_vs \
- vfredsum_vs \
+ vfredusum_vs \
vfrec7_v \
vfrsub_vf \
vfrsqrt7_v \
@@ -758,7 +763,7 @@ riscv_insn_ext_v_alu_fp = \
vfwnmsac_vf \
vfwnmsac_vv \
vfwredosum_vs \
- vfwredsum_vs \
+ vfwredusum_vs \
vfwsub_vf \
vfwsub_vv \
vfwsub_wf \
@@ -813,7 +818,7 @@ riscv_insn_ext_v_amo = \
vamoxorei64_v \
riscv_insn_ext_v_ldst = \
- vle1_v \
+ vlm_v \
vle8_v \
vle16_v \
vle32_v \
@@ -850,7 +855,7 @@ riscv_insn_ext_v_ldst = \
vl2re64_v \
vl4re64_v \
vl8re64_v \
- vse1_v \
+ vsm_v \
vse8_v \
vse16_v \
vse32_v \