[opus] [PATCH 00/10] Patched cleaning up Opus x86 intrinsics configury
Jonathan Lennox
jonathan at vidyo.com
Mon Aug 3 14:04:19 PDT 2015
Thanks to Jean-Marc and Tim explaining 'git rebase -i' to me, I've factored my reorganization of
the Opus Intrinsics configury into a number of hopefully more comprehensible (and thus more
reviewable) pieces.
This applies to the current tip of Opus Master in git.
Viswanath's Ne10 changes require some slight modification to apply on top of these patches,
but nothing major.
Comments are welcome! (Particularly if any of the patches are still to big to be understood.)
Jonathan Lennox (10):
Reorganize configure's detection of intrinsics functions
In optimized mode, don't force Clang to use explicit load/store for
_mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment
accordingly.
Fix instruction used for cpuid test.
Fix cpuid asm on 32-bit PIC.
Fix struct initialization of CPU_Feature structure.
Remove some unnecessary #includes from x86cpu.c.
Move SSE2 and SSE4.1 intrinsics functions to separate files, to be
compiled with appropriate compiler flags. Otherwise, compilers
are allowed to take advantage of (e.g.) -msse4.1 to generate
code that uses SSE4.1 instructions, even when no SSE4.1 intrinsics
are explicitly used in the source.
Reorganize x86 SSE intrinsics code.
Add intrinsics support to Visual Studio build.
Use ProjectReference rather than AdditionalDependencies for test
programs, so build dependencies are right.
Makefile.am | 41 ++--
celt/arm/armcpu.c | 6 +-
celt/arm/pitch_arm.h | 4 +-
celt/bands.c | 6 +-
celt/celt.c | 16 +-
celt/celt.h | 12 +-
celt/celt_decoder.c | 6 +-
celt/celt_encoder.c | 4 +-
celt/celt_lpc.h | 2 +-
celt/cpu_support.h | 14 +-
celt/mips/celt_mipsr1.h | 2 +-
celt/pitch.c | 4 +-
celt/pitch.h | 19 +-
celt/tests/test_unit_mathops.c | 9 +-
celt/tests/test_unit_rotation.c | 9 +-
celt/x86/celt_lpc_sse.c | 4 +
celt/x86/celt_lpc_sse.h | 12 +-
celt/x86/pitch_sse.c | 334 +++++++++++++------------------
celt/x86/pitch_sse.h | 261 ++++++++++--------------
celt/x86/pitch_sse2.c | 95 +++++++++
celt/x86/pitch_sse4_1.c | 195 ++++++++++++++++++
celt/x86/x86_celt_map.c | 76 ++++++-
celt/x86/x86cpu.c | 47 ++++-
celt/x86/x86cpu.h | 26 ++-
celt_sources.mk | 5 +-
configure.ac | 320 ++++++++++++++++++-----------
m4/opus-intrinsics.m4 | 29 +++
silk/x86/SigProc_FIX_sse.h | 17 ++
silk/x86/main_sse.h | 48 +++++
silk/x86/x86_silk_map.c | 25 ++-
win32/VS2010/celt.vcxproj | 17 +-
win32/VS2010/celt.vcxproj.filters | 27 +++
win32/VS2010/opus_demo.vcxproj | 29 ++-
win32/VS2010/opus_demo.vcxproj.filters | 5 +
win32/VS2010/silk_common.vcxproj | 15 +-
win32/VS2010/silk_common.vcxproj.filters | 21 ++
win32/VS2010/silk_fixed.vcxproj | 11 +-
win32/VS2010/silk_fixed.vcxproj.filters | 17 +-
win32/VS2010/test_opus_api.vcxproj | 18 +-
win32/VS2010/test_opus_decode.vcxproj | 18 +-
win32/VS2010/test_opus_encode.vcxproj | 18 +-
win32/config.h | 25 ++-
42 files changed, 1278 insertions(+), 591 deletions(-)
create mode 100644 celt/x86/pitch_sse2.c
create mode 100644 celt/x86/pitch_sse4_1.c
create mode 100644 m4/opus-intrinsics.m4
--
2.3.2 (Apple Git-55)
More information about the opus
mailing list