[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