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