diff --git a/m4/ax_check_simd.m4 b/m4/ax_check_simd.m4
new file mode 100644
index 0000000..d07d706
--- /dev/null
+++ b/m4/ax_check_simd.m4
@@ -0,0 +1,82 @@
+# ===========================================================================
+#          http://www.gnu.org/software/autoconf-archive/ax_ext.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_EXT
+#
+# DESCRIPTION
+#
+#   Find supported SIMD extensions by requesting cpuid. When an SIMD
+#   extension is found, the -m"simdextensionname" is added to SIMD_FLAGS if
+#   compiler supports it. For example, if "sse2" is available, then "-msse2"
+#   is added to SIMD_FLAGS.
+#
+#   This macro calls:
+#
+#     AC_SUBST(SIMD_FLAGS)
+#
+#   And defines:
+#
+#      HAVE_AVX3 / HAVE_SSE3 / HAVE_SSE4.1
+#
+# LICENSE
+#
+#   Copyright (c) 2007 Christophe Tournayre <turn3r@users.sourceforge.net>
+#   Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.com>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+#
+# NOTE: The functionality that requests the cpuid has been stripped because
+#       this project detects the CPU capabilities during runtime. However, we
+#       still need to check if the compiler supports the requested SIMD flag.
+
+#serial 12
+
+AC_DEFUN([AX_CHECK_SIMD],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  case $host_cpu in
+    i[[3456]]86*|x86_64*|amd64*)
+      AX_CHECK_COMPILE_FLAG(-mavx2, ax_cv_support_avx2_ext=yes, [])
+      if test x"$ax_cv_support_avx2_ext" = x"yes"; then
+        SIMD_FLAGS="$SIMD_FLAGS -mavx2"
+        AC_DEFINE(HAVE_AVX2,,
+          [Support AVX2 (Advanced Vector Extensions 2) instructions])
+        AM_CONDITIONAL(HAVE_AVX2, true)
+      else
+        AC_MSG_WARN([Your compiler does not support AVX2 instructions])
+        AM_CONDITIONAL(HAVE_AVX2, false)
+      fi
+
+      AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
+      if test x"$ax_cv_support_sse3_ext" = x"yes"; then
+        SIMD_FLAGS="$SIMD_FLAGS -msse3"
+        AC_DEFINE(HAVE_SSE3,,
+          [Support SSE3 (Streaming SIMD Extensions 3) instructions])
+        AM_CONDITIONAL(HAVE_SSE3, true)
+      else
+        AC_MSG_WARN([Your compiler does not support SSE3 instructions])
+        AM_CONDITIONAL(HAVE_SSE3, false)
+      fi
+
+      AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
+      if test x"$ax_cv_support_sse41_ext" = x"yes"; then
+        SIMD_FLAGS="$SIMD_FLAGS -msse4.1"
+        AC_DEFINE(HAVE_SSE4_1,,
+          [Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions])
+        AM_CONDITIONAL(HAVE_SSE4_1, true)
+      else
+        AC_MSG_WARN([Your compiler does not support SSE4.1 instructions])
+        AM_CONDITIONAL(HAVE_SSE4_1, false)
+      fi
+  ;;
+  esac
+
+  AC_SUBST(SIMD_FLAGS)
+])
