summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorTimothy B. Terriberry <tterribe@xiph.org>2013-11-18 13:30:13 -0500
committerJean-Marc Valin <jmvalin@jmvalin.ca>2013-11-18 13:41:17 -0500
commit39386e0b85ec0f978aa104d312604badb9047d58 (patch)
treee1171628bb638ec1b770b049e39609d7a268c584 /m4
parent530198f955e49571b3f890b4da4d933a4cd5df4e (diff)
downloadopus-39386e0b85ec0f978aa104d312604badb9047d58.tar.gz
Adds Neon assembly for correlation/convolution
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up FIRs, IIRs and auto-correlations Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Diffstat (limited to 'm4')
-rw-r--r--m4/as-gcc-inline-assembly.m431
1 files changed, 31 insertions, 0 deletions
diff --git a/m4/as-gcc-inline-assembly.m4 b/m4/as-gcc-inline-assembly.m4
index a6c44a52..b0d2da41 100644
--- a/m4/as-gcc-inline-assembly.m4
+++ b/m4/as-gcc-inline-assembly.m4
@@ -42,6 +42,16 @@ AC_DEFUN([AS_ASM_ARM_NEON],
$2])
])
+AC_DEFUN([AS_ASM_ARM_NEON_FORCE],
+[
+ AC_MSG_CHECKING([if assembler supports NEON instructions on ARM])
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv7-a\n.fpu neon\n.object_arch armv4t\nvorr d0,d0,d0")])],
+ [AC_MSG_RESULT([yes])
+ $1],
+ [AC_MSG_RESULT([no])
+ $2])
+])
AC_DEFUN([AS_ASM_ARM_MEDIA],
[
@@ -54,6 +64,16 @@ AC_DEFUN([AS_ASM_ARM_MEDIA],
$2])
])
+AC_DEFUN([AS_ASM_ARM_MEDIA_FORCE],
+[
+ AC_MSG_CHECKING([if assembler supports ARMv6 media instructions on ARM])
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv6\n.object_arch armv4t\nshadd8 r3,r3,r3")])],
+ [AC_MSG_RESULT([yes])
+ $1],
+ [AC_MSG_RESULT([no])
+ $2])
+])
AC_DEFUN([AS_ASM_ARM_EDSP],
[
@@ -65,3 +85,14 @@ AC_DEFUN([AS_ASM_ARM_EDSP],
[AC_MSG_RESULT([no])
$2])
])
+
+AC_DEFUN([AS_ASM_ARM_EDSP_FORCE],
+[
+ AC_MSG_CHECKING([if assembler supports EDSP instructions on ARM])
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv5te\n.object_arch armv4t\nqadd r3,r3,r3")])],
+ [AC_MSG_RESULT([yes])
+ $1],
+ [AC_MSG_RESULT([no])
+ $2])
+])