CI: Replace QEMU armhf with native (32-bit compatibility mode) #28663
Merged
charris merged 1 commit intonumpy:maintenance/2.2.xfrom Apr 6, 2025
Merged
CI: Replace QEMU armhf with native (32-bit compatibility mode) #28663charris merged 1 commit intonumpy:maintenance/2.2.xfrom
charris merged 1 commit intonumpy:maintenance/2.2.xfrom
Conversation
…#28653) * CI: Tests NumPy on 32-bit ARM hard-float (armhf) via compatibility mode * BUG, SIMD: Fix floating-point errors with positive infinity input in sqrt on armhf Guards against passing positive infinity to vrsqrteq_f32 in sqrt operation, which would raise invalid floating-point errors on ARMv7 architectures. * TEST: Mark linspace subnormal test as xfail on ARM32 platforms Adds an xfail marker to the linspace subnormal test case for ARMv7 and AArch32 platforms. These platforms seem to flush subnormals to zero (FTZ) even when not explicitly enabled via the FPSCR register, causing the test to fail. * BUG, SIMD: Fix ARMv8 feature detection in 32-bit mode Fix detection of `FPHP`, `ASIMDHP`, `ASIMDDP`, `ASIMDFHM` features on ARMv8 32-bit mode (aarch32). Fix memory leaks in CPU feature detection on Android by adding missing free() calls. * CI: Remove QEMU-based armhf testing Remove QEMU-based armhf testing as we now use native 32-bit compatibility mode running on ARM64 GitHub runners in a separate implementation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #28653.
This PR enhances support for ARM platforms with several important fixes:
Native ARMv7/armhf Testing: Adds a new CI workflow that tests NumPy on 32-bit ARM hard-float (armhf) using 32-bit compatibility mode on ARM64 GitHub runners, replacing the previous QEMU-based approach for more reliable and faster testing.
ARMv8 32-bit Feature Detection: Fixes detection of advanced ARMv8 features (FPHP, ASIMDHP, ASIMDDP, ASIMDFHM) when running in 32-bit mode (aarch32), and addresses memory leaks in CPU feature detection on Android.
ARM Floating-Point Error Handling: Adds protection against floating-point errors when processing positive infinity values in SIMD sqrt operations on ARMv7 architectures.
Subnormal Number Handling: Adds an xfail marker for linspace tests with subnormal numbers on ARM32 platforms, addressing the platform-specific behavior where subnormals are flushed to zero.
relates #24548, #28635
CI: Tests NumPy on 32-bit ARM hard-float (armhf) via compatibility mode
BUG, SIMD: Fix floating-point errors with positive infinity input in sqrt on armhf
Guards against passing positive infinity to vrsqrteq_f32 in sqrt operation,
which would raise invalid floating-point errors on ARMv7 architectures.
TEST: Mark linspace subnormal test as xfail on ARM32 platforms
Adds an xfail marker to the linspace subnormal test case for ARMv7 and AArch32
platforms. These platforms seem to flush subnormals to zero (FTZ) even when
not explicitly enabled via the FPSCR register, causing the test to fail.
BUG, SIMD: Fix ARMv8 feature detection in 32-bit mode
Fix detection of
FPHP,ASIMDHP,ASIMDDP,ASIMDFHMfeatureson ARMv8 32-bit mode (aarch32). Fix memory leaks in CPU feature
detection on Android by adding missing free() calls.
CI: Remove QEMU-based armhf testing
Remove QEMU-based armhf testing as we now use native 32-bit compatibility
mode running on ARM64 GitHub runners in a separate implementation.