diff --git a/configure.ac b/configure.ac index de0e1b35d4da78d103ddf27304ad527361a342c7..134622be410215c34126da2f0aac40e1adff0f49 100644 --- a/configure.ac +++ b/configure.ac @@ -270,8 +270,16 @@ AC_CHECK_FUNC(pthread_setaffinity_np, AC_DEFINE([HAVE_SETAFFINITY],[true], AM_CONDITIONAL(HAVESETAFFINITY, [test "$ac_cv_func_pthread_setaffinity_np" = "yes"]) -# Check for libnuma. -AC_CHECK_LIB([numa], [numa_available]) +if test "$ac_cv_func_pthread_setaffinity_np" = "yes"; then + # Check for libnuma. + AC_CHECK_HEADER([numa.h]) + if test "$ac_cv_header_numa_h" = "yes"; then + AC_CHECK_LIB([numa], [numa_available]) + fi +fi + +# Check for Intel intrinsics header optionally used by vector.h. +AC_CHECK_HEADERS([immintrin.h]) # Check for timing functions needed by cycle.h. AC_HEADER_TIME diff --git a/examples/main.c b/examples/main.c index d15bbfb0d0c28cb80540e86d36a185aabb1ece38..d51a88e03dd2d97763757a6193e24e04eef7027c 100644 --- a/examples/main.c +++ b/examples/main.c @@ -135,7 +135,7 @@ int main(int argc, char *argv[]) { bzero(&s, sizeof(struct space)); /* Parse the options */ - while ((c = getopt(argc, argv, "a:c:d:f:g:m:q:r:s:t:w:y:z:")) != -1) + while ((c = getopt(argc, argv, "a:c:d:f:g:m:oq:r:s:t:w:y:z:")) != -1) switch (c) { case 'a': if (sscanf(optarg, "%lf", &scaling) != 1) diff --git a/src/vector.h b/src/vector.h index 8629b39725ebb7d800047116f45fb7ec6c6e7a1d..ef2b7c4b9e42ceb61dc38c3196c1819be652926f 100644 --- a/src/vector.h +++ b/src/vector.h @@ -23,11 +23,12 @@ /* Have I already read this file? */ #ifndef VEC_MACRO +#include "../config.h" + /* Need to check whether compiler supports this (IBM does not) This will prevent the macros to be defined and switch off explicit vectorization if the compiled does not support it */ -#if defined(__GNUC__) && defined(__i386__) - +#ifdef HAVE_IMMINTRIN_H /* Include the header file with the intrinsics for Intel architecture. */ #include <immintrin.h> #endif