Skip to content

FFTW 3.3.11 built with --enable-sve cannot run on non-SVE Arm systems #412

Description

@kuni-ishii

While evaluating FFTW 3.3.11 on multiple Arm platforms, we identified a portability issue related to the SVE implementation.
When FFTW is built with the following options:

  --enable-sve
  -march=armv8.2-a+sve

the generated library executes SVE-specific instructions such as CNTB at runtime. As a result, applications terminate with a SIGILL (illegal instruction) exception when executed on Arm systems that do not support SVE.
We believe it would be preferable for FFTW to detect SVE support at runtime and avoid executing SVE-specific code paths on systems where SVE is unavailable.
This behavior also makes it difficult for Linux distributions such as RHEL and Rocky Linux to provide a single FFTW package that can be used across heterogeneous Arm systems. A package built with SVE support cannot currently run on systems that lack SVE, which reduces portability and complicates package maintenance.
Would it be possible to consider the following approaches?

  1. Detect SVE support at runtime before executing SVE-specific code.
  2. Fall back to a non-SVE implementation when SVE is not available.

These improvements would significantly enhance portability across Arm platforms and simplify packaging for Linux distributions.
We would appreciate the maintainers' thoughts on this issue and whether such an enhancement could be considered for a future FFTW release. Addressing this within FFTW itself would benefit the broader Arm ecosystem as well as Linux distribution maintainers.
If additional testing or validation on Arm platforms would be helpful, we would be happy to provide feedback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions