blob: c04f1f04d03e5b500d42690d050452e4df078e50 (
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
|
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.
|