libomsocoding: NEON viterbi acceleration

configure flag required to enable this: --enable-neon

Although autodetection according to __ARM_NEON would work because this
is only defined if the fpu is neon neon-fp16 neon-vfpv3 neon-vfpv4
neon-fp-armv8 crypto-neon-fp-armv8 doing that would lead to a unknown
performance impact, so it needs to be enabled manually.

Speedup is about ~1.3-1.5 on a unspecified single core Cortex A9. This
requires handling a special case for RACH with len 14 which is far too
short for neon and would actually incur a performance penalty of 25%.

Related: OS#4585
Change-Id: I58ff2cb4ce3514f43390ff0a2121f81e6a4983b5
diff --git a/configure.ac b/configure.ac
index f69c78d..2397b2f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -378,6 +378,17 @@
 	AM_CONDITIONAL(HAVE_SSE4_1, false)
 fi
 
+AC_ARG_ENABLE(neon,
+	[AS_HELP_STRING(
+		[--enable-neon],
+		[Enable NEON support]
+	)],
+	[neon=$enableval], [neon="no"])
+AC_DEFINE(HAVE_NEON,,
+[Support ARM NEON instructions])
+AM_CONDITIONAL(HAVE_NEON, [test "x$neon" != "xno"])
+
+
 OSMO_AC_CODE_COVERAGE
 
 dnl Check if the compiler supports specified GCC's built-in function