浏览代码

package/fftw: add x86 optimisations

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>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Yann E. MORIN 10 年之前
父节点
当前提交
20b741da4c
共有 2 个文件被更改,包括 13 次插入0 次删除
  1. 9 0
      package/fftw/Config.in
  2. 4 0
      package/fftw/fftw.mk

+ 9 - 0
package/fftw/Config.in

@@ -12,6 +12,12 @@ config BR2_PACKAGE_FFTW
 
 
 if BR2_PACKAGE_FFTW
 if BR2_PACKAGE_FFTW
 
 
+config BR2_PACKAGE_FFTW_USE_SSE
+	bool
+
+config BR2_PACKAGE_FFTW_USE_SSE2
+	bool
+
 choice
 choice
 	prompt "fftw precision"
 	prompt "fftw precision"
 	default BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 	default BR2_PACKAGE_FFTW_PRECISION_DOUBLE
@@ -20,12 +26,15 @@ choice
 
 
 config BR2_PACKAGE_FFTW_PRECISION_SINGLE
 config BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "single"
 	bool "single"
+	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
 	help
 	  Compile fftw in single precision, i.e. use 'float' for floating
 	  Compile fftw in single precision, i.e. use 'float' for floating
 	  point type.
 	  point type.
 
 
 config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 	bool "double"
 	bool "double"
+	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
 	help
 	help
 	  Compile fftw in double precision (the default), i.e. use 'double'
 	  Compile fftw in double precision (the default), i.e. use 'double'
 	  for floating point type.
 	  for floating point type.

+ 4 - 0
package/fftw/fftw.mk

@@ -19,6 +19,10 @@ ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
 FFTW_CFLAGS += -Ofast
 FFTW_CFLAGS += -Ofast
 endif
 endif
 
 
+# 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
+
 FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)"
 FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)"
 
 
 $(eval $(autotools-package))
 $(eval $(autotools-package))