diff options
author | Timothy B. Terriberry <tterribe@xiph.org> | 2013-11-18 13:30:13 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2013-11-18 13:41:17 -0500 |
commit | 39386e0b85ec0f978aa104d312604badb9047d58 (patch) | |
tree | e1171628bb638ec1b770b049e39609d7a268c584 /m4 | |
parent | 530198f955e49571b3f890b4da4d933a4cd5df4e (diff) | |
download | opus-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.m4 | 31 |
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]) +]) |