aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/fftw3/neon.patch
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/fftw3/neon.patch
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/fftw3/neon.patch')
-rw-r--r--vcpkg/ports/fftw3/neon.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/vcpkg/ports/fftw3/neon.patch b/vcpkg/ports/fftw3/neon.patch
new file mode 100644
index 0000000..0d53000
--- /dev/null
+++ b/vcpkg/ports/fftw3/neon.patch
@@ -0,0 +1,73 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index db20caa7..48e724f3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -25,6 +25,7 @@ option (ENABLE_SSE "Compile with SSE instruction set support" OFF)
+ option (ENABLE_SSE2 "Compile with SSE2 instruction set support" OFF)
+ option (ENABLE_AVX "Compile with AVX instruction set support" OFF)
+ option (ENABLE_AVX2 "Compile with AVX2 instruction set support" OFF)
++option (ENABLE_NEON "Compile with NEON instruction set support" OFF)
+
+ option (DISABLE_FORTRAN "Disable Fortran wrapper routines" OFF)
+
+@@ -203,9 +204,20 @@ if (ENABLE_AVX2)
+ endforeach ()
+ endif ()
+
++if (ENABLE_NEON)
++ if (ENABLE_LONG_DOUBLE)
++ message (FATAL_ERROR "NEON only works in single or double precision, please disable long double support")
++ endif ()
++ if (ENABLE_QUAD_PRECISION)
++ message (FATAL_ERROR "NEON only works in single or double precision, please disable quad precision support")
++ endif ()
++ set (HAVE_NEON TRUE)
++endif ()
++
+ if (HAVE_SSE2 OR HAVE_AVX)
+ set (HAVE_SIMD TRUE)
+ endif ()
++
+ file(GLOB fftw_api_SOURCE api/*.c api/*.h)
+ file(GLOB fftw_dft_SOURCE dft/*.c dft/*.h)
+ file(GLOB fftw_dft_scalar_SOURCE dft/scalar/*.c dft/scalar/*.h)
+@@ -215,6 +227,7 @@ file(GLOB fftw_dft_simd_SOURCE dft/simd/*.c dft/simd
+ file(GLOB fftw_dft_simd_sse2_SOURCE dft/simd/sse2/*.c dft/simd/sse2/*.h)
+ file(GLOB fftw_dft_simd_avx_SOURCE dft/simd/avx/*.c dft/simd/avx/*.h)
+ file(GLOB fftw_dft_simd_avx2_SOURCE dft/simd/avx2/*.c dft/simd/avx2/*.h dft/simd/avx2-128/*.c dft/simd/avx2-128/*.h)
++file(GLOB fftw_dft_simd_neon_SOURCE dft/simd/neon/*.c dft/simd/neon/*.h)
+ file(GLOB fftw_kernel_SOURCE kernel/*.c kernel/*.h)
+ file(GLOB fftw_rdft_SOURCE rdft/*.c rdft/*.h)
+ file(GLOB fftw_rdft_scalar_SOURCE rdft/scalar/*.c rdft/scalar/*.h)
+@@ -230,6 +243,7 @@ file(GLOB fftw_rdft_simd_SOURCE rdft/simd/*.c rdft/sim
+ file(GLOB fftw_rdft_simd_sse2_SOURCE rdft/simd/sse2/*.c rdft/simd/sse2/*.h)
+ file(GLOB fftw_rdft_simd_avx_SOURCE rdft/simd/avx/*.c rdft/simd/avx/*.h)
+ file(GLOB fftw_rdft_simd_avx2_SOURCE rdft/simd/avx2/*.c rdft/simd/avx2/*.h rdft/simd/avx2-128/*.c rdft/simd/avx2-128/*.h)
++file(GLOB fftw_rdft_simd_neon_SOURCE rdft/simd/neon/*.c rdft/simd/neon/*.h)
+
+ file(GLOB fftw_reodft_SOURCE reodft/*.c reodft/*.h)
+ file(GLOB fftw_simd_support_SOURCE simd-support/*.c simd-support/*.h)
+@@ -283,6 +297,10 @@ if (HAVE_AVX2)
+ list (APPEND SOURCEFILES ${fftw_dft_simd_avx2_SOURCE} ${fftw_rdft_simd_avx2_SOURCE})
+ endif ()
+
++if (HAVE_NEON)
++ list (APPEND SOURCEFILES ${fftw_dft_simd_neon_SOURCE} ${fftw_rdft_simd_neon_SOURCE})
++endif ()
++
+ set (FFTW_VERSION 3.3.10)
+
+ set (PREC_SUFFIX)
+ diff --git a/cmake.config.h.in b/cmake.config.h.in
+index 1f4c5055..8c61b38f 100644
+--- a/cmake.config.h.in
++++ b/cmake.config.h.in
+@@ -211,7 +211,7 @@
+ /* #undef HAVE_MPI */
+
+ /* Define to enable ARM NEON optimizations. */
+-/* #undef HAVE_NEON */
++#cmakedefine HAVE_NEON 1
+
+ /* Define if OpenMP is enabled */
+ #cmakedefine HAVE_OPENMP