blob: e119af42bc64f8d7834beb7249a58d99e549c581 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
files: 0.929
arm: 0.924
debug: 0.892
performance: 0.891
device: 0.884
graphic: 0.868
semantic: 0.861
risc-v: 0.817
TCG: 0.810
ppc: 0.806
network: 0.795
vnc: 0.790
VMM: 0.788
permissions: 0.783
register: 0.781
user-level: 0.775
hypervisor: 0.758
assembly: 0.750
PID: 0.745
i386: 0.729
boot: 0.728
kernel: 0.727
socket: 0.726
KVM: 0.711
x86: 0.711
architecture: 0.691
peripherals: 0.658
virtual: 0.653
mistranslation: 0.593
Floating point rounding fails on mps3-an547 amd cortex-m55 while using LLVM-embedded-toolchain-for-Arm and Picolibic.
Description of problem:
Rounding of long double gives unexpected result. Simple code as example:
```
#include <math.h>
int main(void)
{
long double value = -8.5L;
long rounded_value = lrintl(value);
if( -8 == rounded_value )
{
return 0;
}
return 1;
}
```
Steps to reproduce:
1. Checkout project: [LLVM-embedded-toolchain-for-ARM](https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm)
2. Configure it with option -DLLVM_TOOLCHAIN_LIBRARY_VARIANTS=armv8.1m.main_hard_nofp_mve
3. Build project
4. Run Picolbic tests with ninja picolibc_armv8.1m.main_hard_nofp_mve-test
As a result long_double test fails with incorrect rounding.
Last qemu version which successfully execute mentioned test is: qemu 7.0.0 downloaded via [qemu-7.0.0](https://download.qemu.org/qemu-7.0.0.tar.bz2).
Issue is present since qemu version 7.1.
Additional information:
As a result long_double test fails with incorrect rounding.
Last qemu version which successfully execute mentioned test is: qemu 7.0.0 downloaded via [qemu-7.0.0](https://download.qemu.org/qemu-7.0.0.tar.bz2).
Issue is present since qemu version 7.1.
|