diff --git a/.gitignore b/.gitignore
index 5111b25..2b0ca64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
 acinclude.m4
 aminclude.am
 m4/*.m4
+!m4/ax_*.m4
 autom4te.cache
 config.cache
 config.h*
diff --git a/configure.ac b/configure.ac
index a18197d..672a6df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -226,6 +226,22 @@
 	CPPFLAGS+=" -fsanitize=address -fsanitize=undefined"
 fi
 
+AC_ARG_ENABLE(simd,
+	[AS_HELP_STRING(
+		[--disable-simd],
+		[Disable SIMD support]
+	)],
+	[simd=$enableval], [simd="yes"])
+if test x"$simd" = x"yes"
+then
+	# Find and define supported SIMD extensions
+	AX_CHECK_SIMD
+else
+	AM_CONDITIONAL(HAVE_AVX2, false)
+	AM_CONDITIONAL(HAVE_SSE3, false)
+	AM_CONDITIONAL(HAVE_SSE4_1, false)
+fi
+
 AC_OUTPUT(
 	libosmocore.pc
 	libosmocodec.pc
diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
new file mode 100644
index 0000000..dcabb92
--- /dev/null
+++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
+# ===========================================================================
+#  https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+#   Check whether the given FLAG works with the current language's compiler
+#   or gives an error.  (Warnings, however, are ignored)
+#
+#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+#   success/failure.
+#
+#   If EXTRA-FLAGS is defined, it is added to the current language's default
+#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
+#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
+#   force the compiler to issue an error when a bad flag is given.
+#
+#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 5
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+  _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+  AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+    [AS_VAR_SET(CACHEVAR,[yes])],
+    [AS_VAR_SET(CACHEVAR,[no])])
+  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_VAR_IF(CACHEVAR,yes,
+  [m4_default([$2], :)],
+  [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
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)
+])
