aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-05-11 23:35:38 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-05-28 21:49:31 -0700
commit21dd7ed0aba0d58fb81f93b1063f54b42cc9b4f4 (patch)
tree3271af1ed9ce6d1845e4ab50622d70c399072e13 /riscv/insns
parentea4010704bfe7d3cf64472d409a24fae1107fc62 (diff)
downloadspike-21dd7ed0aba0d58fb81f93b1063f54b42cc9b4f4.zip
spike-21dd7ed0aba0d58fb81f93b1063f54b42cc9b4f4.tar.gz
spike-21dd7ed0aba0d58fb81f93b1063f54b42cc9b4f4.tar.bz2
rvv: handle inactive and NaN case for vfredsum
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Diffstat (limited to 'riscv/insns')
-rw-r--r--riscv/insns/vfredmax_vs.h1
-rw-r--r--riscv/insns/vfredmin_vs.h1
-rw-r--r--riscv/insns/vfredosum_vs.h1
-rw-r--r--riscv/insns/vfredsum_vs.h1
-rw-r--r--riscv/insns/vfwredosum_vs.h1
-rw-r--r--riscv/insns/vfwredsum_vs.h1
6 files changed, 6 insertions, 0 deletions
diff --git a/riscv/insns/vfredmax_vs.h b/riscv/insns/vfredmax_vs.h
index 1ab856b..f19ec59 100644
--- a/riscv/insns/vfredmax_vs.h
+++ b/riscv/insns/vfredmax_vs.h
@@ -1,4 +1,5 @@
// vfredmax vd, vs2, vs1
+bool is_propagate = false;
VI_VFP_VV_LOOP_REDUCTION
({
vd_0 = f16_max(vd_0, vs2);
diff --git a/riscv/insns/vfredmin_vs.h b/riscv/insns/vfredmin_vs.h
index 37256cb..e3cf151 100644
--- a/riscv/insns/vfredmin_vs.h
+++ b/riscv/insns/vfredmin_vs.h
@@ -1,4 +1,5 @@
// vfredmin vd, vs2, vs1
+bool is_propagate = false;
VI_VFP_VV_LOOP_REDUCTION
({
vd_0 = f16_min(vd_0, vs2);
diff --git a/riscv/insns/vfredosum_vs.h b/riscv/insns/vfredosum_vs.h
index 4564f9c..2438a7b 100644
--- a/riscv/insns/vfredosum_vs.h
+++ b/riscv/insns/vfredosum_vs.h
@@ -1,4 +1,5 @@
// vfredosum: vd[0] = sum( vs2[*] , vs1[0] )
+bool is_propagate = false;
VI_VFP_VV_LOOP_REDUCTION
({
vd_0 = f16_add(vd_0, vs2);
diff --git a/riscv/insns/vfredsum_vs.h b/riscv/insns/vfredsum_vs.h
index d18b63e..bad7308 100644
--- a/riscv/insns/vfredsum_vs.h
+++ b/riscv/insns/vfredsum_vs.h
@@ -1,4 +1,5 @@
// vfredsum: vd[0] = sum( vs2[*] , vs1[0] )
+bool is_propagate = true;
VI_VFP_VV_LOOP_REDUCTION
({
vd_0 = f16_add(vd_0, vs2);
diff --git a/riscv/insns/vfwredosum_vs.h b/riscv/insns/vfwredosum_vs.h
index 22fb4df..1f42d8f 100644
--- a/riscv/insns/vfwredosum_vs.h
+++ b/riscv/insns/vfwredosum_vs.h
@@ -1,4 +1,5 @@
// vfwredosum.vs vd, vs2, vs1
+bool is_propagate = false;
VI_VFP_VV_LOOP_WIDE_REDUCTION
({
vd_0 = f32_add(vd_0, vs2);
diff --git a/riscv/insns/vfwredsum_vs.h b/riscv/insns/vfwredsum_vs.h
index 277cf41..4ef2896 100644
--- a/riscv/insns/vfwredsum_vs.h
+++ b/riscv/insns/vfwredsum_vs.h
@@ -1,4 +1,5 @@
// vfwredsum.vs vd, vs2, vs1
+bool is_propagate = true;
VI_VFP_VV_LOOP_WIDE_REDUCTION
({
vd_0 = f32_add(vd_0, vs2);