diff options
Diffstat (limited to 'results/classifier/118/architecture-risc-v/1923629')
| -rw-r--r-- | results/classifier/118/architecture-risc-v/1923629 | 98 |
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. + |