@@ -12,6 +12,12 @@ config BR2_PACKAGE_FFTW
if BR2_PACKAGE_FFTW
+config BR2_PACKAGE_FFTW_USE_SSE
+ bool
+
+config BR2_PACKAGE_FFTW_USE_SSE2
+ bool
+
choice
prompt "fftw precision"
default BR2_PACKAGE_FFTW_PRECISION_NONE
@@ -25,6 +31,8 @@ config BR2_PACKAGE_FFTW_PRECISION_NONE
config BR2_PACKAGE_FFTW_PRECISION_SINGLE
bool "single precision"
+ select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
+ select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
help
compile fftw in single precision
@@ -33,7 +41,7 @@ config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
# long-double precision require long-double trigonometric routines
depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
(BR2_arm || BR2_mips || BR2_mipsel))
-
+ select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
help
compile fftw in long-double precision
@@ -14,4 +14,8 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
+# x86 optimisations
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
+
$(eval $(autotools-package))
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> Cc: guillaume william brs <guillaume.bressaix@gmail.com> --- Changes v5 -> v6: - SSE/SSE2 can't be enabled for all precisions (Gwenhael) --- package/fftw/Config.in | 10 +++++++++- package/fftw/fftw.mk | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-)