diff mbox series

[4/4] Revert "configs/bananapi_m1: use NEON+VFPv4 as FPU strategy"

Message ID 20220815154854.17628-5-giulio.benetti@benettiengineering.com
State Accepted
Headers show
Series Revert wrong NEON/VFPV4 FPU strategy | expand

Commit Message

Giulio Benetti Aug. 15, 2022, 3:48 p.m. UTC
The gcc man page states that specifying Neon as part of the fpu setting
has no effect, unless the -funsafe-math-optimizations is also specified,
because Neon is not compliant with IEEE 754:
```
    If the selected floating-point hardware includes the NEON extension
    (e.g. -mfpu=neon), note that floating-point operations are not
    generated by GCC's auto-vectorization pass unless
    -funsafe-math-optimizations is also specified. This is because NEON
    hardware does not fully implement the IEEE 754 standard for
    floating-point arithmetic (in particular denormal values are treated
    as zero), so the use of NEON instructions may lead to a loss of
    precision.
```

-funsafe-math-optimizations must be explictly specified per package to
really use NEON as FPU, but it's something that is left to the user as
well as setting BR2_ARM_FPU_NEON_VFPV4. This way the default
BR2_ARM_FPU_VFPV4D16 is used as previously. So let's revert the
offending patch.

This reverts commit aaced92e8c69e3eb71c2cba4c5ae6a1770ae8972.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 configs/bananapi_m1_defconfig | 1 -
 1 file changed, 1 deletion(-)

Comments

Peter Korsgaard Sept. 16, 2022, 9:47 p.m. UTC | #1
>>>>> "Giulio" == Giulio Benetti <giulio.benetti@benettiengineering.com> writes:

 > The gcc man page states that specifying Neon as part of the fpu setting
 > has no effect, unless the -funsafe-math-optimizations is also specified,
 > because Neon is not compliant with IEEE 754:
 > ```
 >     If the selected floating-point hardware includes the NEON extension
 >     (e.g. -mfpu=neon), note that floating-point operations are not
 >     generated by GCC's auto-vectorization pass unless
 >     -funsafe-math-optimizations is also specified. This is because NEON
 >     hardware does not fully implement the IEEE 754 standard for
 >     floating-point arithmetic (in particular denormal values are treated
 >     as zero), so the use of NEON instructions may lead to a loss of
 >     precision.
 > ```

 > -funsafe-math-optimizations must be explictly specified per package to
 > really use NEON as FPU, but it's something that is left to the user as
 > well as setting BR2_ARM_FPU_NEON_VFPV4. This way the default
 > BR2_ARM_FPU_VFPV4D16 is used as previously. So let's revert the
 > offending patch.

 > This reverts commit aaced92e8c69e3eb71c2cba4c5ae6a1770ae8972.

 > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>

Committed to 2022.05.x and 2022.02.x, thanks.
diff mbox series

Patch

diff --git a/configs/bananapi_m1_defconfig b/configs/bananapi_m1_defconfig
index 2d948ec223..23da363345 100644
--- a/configs/bananapi_m1_defconfig
+++ b/configs/bananapi_m1_defconfig
@@ -1,6 +1,5 @@ 
 BR2_arm=y
 BR2_cortex_a7=y
-BR2_ARM_FPU_NEON_VFPV4=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18=y
 BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M1"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"