summary refs log tree commit diff stats
path: root/results/classifier/118/architecture-risc-v/1923629
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/architecture-risc-v/1923629')
-rw-r--r--results/classifier/118/architecture-risc-v/192362998
1 files changed, 98 insertions, 0 deletions
diff --git a/results/classifier/118/architecture-risc-v/1923629 b/results/classifier/118/architecture-risc-v/1923629
new file mode 100644
index 000000000..cc32274c4
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/1923629
@@ -0,0 +1,98 @@
+risc-v: 0.953
+architecture: 0.878
+performance: 0.868
+graphic: 0.795
+user-level: 0.783
+device: 0.773
+files: 0.738
+network: 0.736
+socket: 0.730
+mistranslation: 0.690
+virtual: 0.677
+debug: 0.660
+semantic: 0.652
+hypervisor: 0.637
+ppc: 0.633
+kernel: 0.632
+PID: 0.629
+VMM: 0.610
+x86: 0.595
+boot: 0.569
+permissions: 0.563
+arm: 0.561
+register: 0.509
+TCG: 0.506
+peripherals: 0.501
+vnc: 0.496
+assembly: 0.459
+i386: 0.437
+KVM: 0.396
+--------------------
+risc-v: 0.875
+debug: 0.300
+assembly: 0.250
+performance: 0.091
+files: 0.050
+architecture: 0.044
+TCG: 0.023
+PID: 0.014
+virtual: 0.011
+hypervisor: 0.007
+semantic: 0.007
+user-level: 0.004
+register: 0.004
+kernel: 0.004
+VMM: 0.002
+network: 0.002
+device: 0.002
+vnc: 0.001
+boot: 0.001
+permissions: 0.001
+graphic: 0.001
+socket: 0.001
+peripherals: 0.001
+mistranslation: 0.000
+KVM: 0.000
+arm: 0.000
+ppc: 0.000
+i386: 0.000
+x86: 0.000
+
+RISC-V Vector Instruction vssub.vv not saturating
+
+I noticed doing a negate ( 0 – 0x80000000 ) using vssub.vv produces an incorrect result of 0x80000000 (should saturate to 0x7FFFFFFF).
+
+Here is the bit of the code:
+
+		vmv.v.i		v16, 0
+		…
+8f040457	vssub.vv	v8,v16,v8
+
+I believe the instruction encoding is correct (vssub.vv with vd = v8, vs2 = v16, rs1 = v8), but the result does not saturate in QEMU.
+
+I’ve just tested with what I think is the latest branch ( https://github.com/sifive/qemu/tree/rvv-1.0-upstream-v7 commit 26 Feb 2021: 1151361fa7d45cc90d69086ccf1a4d8397931811 ) and the problem still exists.
+
+Thanks for raising this bug case. A fix should be available soon.
+
+This should be a quick fix, we will run couple tests again to ensure the fix doesn't break anything. Thanks~
+
+This was fixed by commit:
+
+commit 65606f21243a796537bfe4708720a9bf4bb50169
+Author: LIU Zhiwei <email address hidden>
+Date:   Fri Feb 12 23:02:21 2021 +0800
+
+    target/riscv: Fixup saturate subtract function
+    
+    The overflow predication ((a - b) ^ a) & (a ^ b) & INT64_MIN is right.
+    However, when the predication is ture and a is 0, it should return maximum.
+    
+    Signed-off-by: LIU Zhiwei <email address hidden>
+    Reviewed-by: Richard Henderson <email address hidden>
+    Reviewed-by: Alistair Francis <email address hidden>
+    Message-id: <email address hidden>
+    Signed-off-by: Alistair Francis <email address hidden>
+
+
+The fix will be in the QEMU 6.1 release.
+