Prefix passed using '--with-NE10=PFX' not used as NE10 include path.
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: Ralph Giles <giles@thaumas.net>
libopus only uses the DSP module of Ne10, and never uses the init functions.
Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Different distributions of doxygen have different default
values of HAVE_DOT setting, so we need to pick a specific
setting to avoid 'missing dot' warnings on some platforms.
Doxygen uses it to generate inclusion graphs for our various
header files, which is somewhat useful, but not essential.
We therefore enable dot if it's present (usually through
the parent graphviz package) but disable it if it's not
available, silencing the warning, but not giving uniform
results.
This makes it match the formatting of the output for ARM assembly
better, and removes some redundant repetition of the word
"intrinsics". It also fixes the output if a compiler supports RTCD
for Neon intrinsics but not assembly.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
The implementation currently only codes each channel independently with no
special allocation rules.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
These were causing "syntax error near unexpected token `fi'" in the
generated configure on some systems, because they produced an
else
fi
with no commands between the two.
Optimize opus encode (float only) usecase using ARM NE10
library. Mainly effects opus_fft and ctl_mdct_forward
and related functions.
This optimization can be used for ARM CPUs that have NEON
VFP unit. This patch only enables optimizations for ARMv7.
Official ARM NE10 library page available at
http://projectne10.github.io/Ne10/
To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
or
--enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir>
Compile time checks made during configure process to make sure
optimization option available only when compiler supports NEON
instrinsics.
Runtime checks made to make sure optimized functions only called
on appropriate hardware.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.
Actually try to compile intrinsics rather than using the output of --help.
Allow caller of configure script to set custom compiler options to enable intrinsics.
Detect when intrinsics are always available, without needing special compiler options.
Make naming of #defines for detected intrinsics support more systematic.
Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.
To enable this optimization, use --enable-intrinsics
configure option.
Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the compiler supports
NEON intrinsics.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
It was under-quoted in c95c9a048f, which
leads to a flood of warnings when it gets incorrectly expanded, like:
configure.ac:354: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
This allows building the arm assembly for iOS.
This checks for the __APPLE__ preprocessor built-in define to
determine whether this extra handling should be enabled.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
Breaks configure when /bin/sh isn't bash with:
configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution
Fix it by using the %% expansion to remove everything from the first
space instead.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>