Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/celt/x86
AgeCommit message (Collapse)Author
2018-03-27Adding ENABLE_HARDENINGJean-Marc Valin
Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
2017-09-11Rename SSE 4.1 files to match their targets.Ralph Giles
Distinguish source files for the SSE 4.1 instruction set extension consistently by their filename. This makes it easier to check the correct flags are being set at build time. Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
2017-08-24fix alignment exceptionsRay Essick
some SSE optimizations were using an instruction sequence that required 128-bit alignment, even though this is not always guaranteed. The error was in handling a 64-bit entity; made the same macro changes that had been done previously for 32-bit entities. Signed-off-by: Felicia Lim <flim@google.com>
2017-02-27Fix compiler warningsMark Harris
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to 'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align] - 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized] - Unused variable/parameter - Value stored is never read - MSVC warnings about "possible loss of data" due to type conversions - MSVC warning C4146: unary minus operator applied to unsigned type - silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above array bounds [-Warray-bounds] (gcc -O3 false positive) - src/mlp_train.h:39:20: warning: function declaration isn't a prototype [-Wstrict-prototypes] - Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching the C implementation. The clang -Wcast-align warnings with SSE intrinsics are a known clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
2017-01-18Revise celt_fir_c() to not pass in argument "mem"Linfeng Zhang
The "mem" in celt_fir_c() either is contained in the head of input "x" in reverse order already, or can be easily attached to the head of "x" before calling the function. Removing argument "mem" can eliminate the redundant buffer copies inside. Update celt_fir_sse4_1() accordingly.
2016-08-16Speeding up PVQ search by allocating even more pulses in the projection.Jean-Marc Valin
2016-08-10SSE2 implementation of the PVQ searchJean-Marc Valin
We used the SSE reciprocal square root instruction to vectorize the serch rather than compare one at a time with multiplies. Speeds up the entire encoder by 8-10%.
2016-07-07Remove tabs from source code.Timothy B. Terriberry
There are no tabs in source code.
2015-11-23Fix x86 build if we presume SSE4.1 (and earlier), but not AVX.Jonathan Lennox
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-11-05Adding AVX config switchesRadu Velea
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-11-05Naming convention for AVXRadu Velea
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-09-02Add intrinsics support to Visual Studio build.Jonathan Lennox
2015-09-02Reorganize x86 SSE intrinsics code.Jonathan Lennox
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.
2015-09-02Move SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled ↵Jonathan Lennox
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.
2015-09-02Remove some unnecessary #includes from x86cpu.c.Jonathan Lennox
2015-09-02Fix struct initialization of CPU_Feature structure.Jonathan Lennox
2015-09-02Fix cpuid asm on 32-bit PIC.Jonathan Lennox
2015-09-02In optimized mode, don't force Clang to use explicit load/store for ↵Jonathan Lennox
_mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment accordingly.
2015-02-27Wrap _mm_cvtepi...() intrinsics in macros on clang.Timothy B. Terriberry
We already needed these macros for gcc with optimizations disabled, but it appears clang needs them all the time. Thanks to Jonathan Lennox for the report.
2015-01-03Fix silk_VQ_WMat_EC_sse4_1().Timothy B. Terriberry
During review of c95c9a048f32, I replaced a call to _mm_cvtepi8_epi32() with the OP_CVTEPI16_EPI32_M64() macro (note the 16 instead of 8). Make a separate OP_CVTEPI8_EPI32_M32() macro and use that instead. Thaks to Wei Zhou for the report.
2014-12-02Fix celt_pitch_xcorr_c signature.Timothy B. Terriberry
This should not take an arch parameter, so it can properly be used as a fallback for accelerated versions which do not. This patch instead provides a separate version which can call accelerated helpers for platforms that have taken that approach.
2014-10-04Cisco optimization for x86 & fixed pointxiangmingzhu
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>
2013-12-10Defining celt_inner_prod() and using it instead of explicit loops.Jean-Marc Valin
Also adds an SSE-optimized celt_inner_prod().
2013-10-28Replace "inline" with OPUS_INLINE.Gregory Maxwell
Newer versions of MSVC are unhappy with the strategy of the build environment redefining "inline" (even though they don't support the actual keyword). Instead we define OPUS_INLINE to the right thing in opus_defines.h. This is the same approach we use for restrict.
2013-06-27Avoid name clash with y0 Bessel functionJean-Marc Valin
2013-06-18Makes dual_inner_prod() more generic to increase its useJean-Marc Valin
2013-06-17Only enable non-multiple of 4 in comb_filter_const() when CUSTOM_MODES is onJean-Marc Valin
2013-06-17SSE optimization of comb_filter()Jean-Marc Valin
Should make it easy to adapt to other architectures.
2013-06-17Avoids symbol clashes with Speex (pitch_xcorr) and libm (y1)Jean-Marc Valin
2013-06-14SSE optimization of remove_doubling()Jean-Marc Valin
Should be trivial to adapt for Neon.
2013-06-07Improved SSE version of xcorr_kernel()John Ridges
The loop no longer reads past its buffer and is slightly faster. Also fixes RESTORE_STACK in celt_iir().
2013-06-06Adds SSE support (only xcorr_kernel() for now)Jean-Marc Valin
There's no CPU detection for it, it only gets enabled by __SSE__ which gcc (other compilers?) defines automatically when supported by -march=, which means at least all x86-64. For ia32, the user needs to enable it in the CFLAGS.
2011-04-29Moved all SILK source code to the silk/ directoryJean-Marc Valin
2011-04-25Loss rate adaptation for the CELT layerJean-Marc Valin
2011-03-31draft updateJean-Marc Valin
2011-03-23Build fixesJean-Marc Valin
2011-03-21Making mode switching use the same window as CELT (squared)Jean-Marc Valin
2011-03-18CELT updateJean-Marc Valin
With minor fixes
2011-03-18More project files updateJean-Marc Valin
2011-03-17Fixes a few PLC/DTX bugs due to the recent decode API changeJean-Marc Valin
2011-03-14Adding constrained VBR modeJean-Marc Valin
2011-03-14Draft update (allocationGregory Maxwell
2011-03-12Disable newly introduced CELT signallingJean-Marc Valin
2011-03-10Nothing to see hereJean-Marc Valin
2011-03-09CELT updateJean-Marc Valin
2011-03-08Support for glitchles mode switchingJean-Marc Valin
Uses a 5ms redundant CELT frame embedded into the SILK or hybrid packet to handle the switching. It's still possible to use the PLC-based method when no redundant packet is included.
2011-03-01SILK/CELT updateJean-Marc Valin
2011-02-15preparing the next versionJean-Marc Valin
2011-02-15missing filesJean-Marc Valin
2011-02-15SILK and CELT updatesJean-Marc Valin