diff options
Diffstat (limited to 'src/libFLAC/include')
-rw-r--r-- | src/libFLAC/include/private/cpu.h | 5 | ||||
-rw-r--r-- | src/libFLAC/include/private/lpc.h | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libFLAC/include/private/cpu.h b/src/libFLAC/include/private/cpu.h index 638c1b20..0a115135 100644 --- a/src/libFLAC/include/private/cpu.h +++ b/src/libFLAC/include/private/cpu.h @@ -63,6 +63,7 @@ /* SSE intrinsics support by ICC/MSVC/GCC */ #if defined __INTEL_COMPILER #define FLAC__SSE_TARGET(x) + #define FLAC__FAST_MATH_TARGET(x) #define FLAC__SSE_SUPPORTED 1 #define FLAC__SSE2_SUPPORTED 1 #if (__INTEL_COMPILER >= 1000) /* Intel C++ Compiler 10.0 */ @@ -80,6 +81,7 @@ #endif #elif defined __clang__ && __has_attribute(__target__) /* clang */ #define FLAC__SSE_TARGET(x) __attribute__ ((__target__ (x))) + #define FLAC__FAST_MATH_TARGET(x) __attribute__ ((__target__ (x), optimize("-ffast-math"))) #if __has_builtin(__builtin_ia32_maxps) #define FLAC__SSE_SUPPORTED 1 #endif @@ -105,6 +107,7 @@ #endif #elif defined __GNUC__ && !defined __clang__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)) /* GCC 4.9+ */ #define FLAC__SSE_TARGET(x) __attribute__ ((__target__ (x))) + #define FLAC__FAST_MATH_TARGET(x) __attribute__ ((__target__ (x), optimize("-ffast-math"))) #define FLAC__SSE_SUPPORTED 1 #define FLAC__SSE2_SUPPORTED 1 #define FLAC__SSSE3_SUPPORTED 1 @@ -116,6 +119,7 @@ #endif #elif defined _MSC_VER #define FLAC__SSE_TARGET(x) + #define FLAC__FAST_MATH_TARGET(x) #define FLAC__SSE_SUPPORTED 1 #define FLAC__SSE2_SUPPORTED 1 #if (_MSC_VER >= 1500) /* MS Visual Studio 2008 */ @@ -133,6 +137,7 @@ #endif #else #define FLAC__SSE_TARGET(x) + #define FLAC__FAST_MATH_TARGET(x) #ifdef __SSE__ #define FLAC__SSE_SUPPORTED 1 #endif diff --git a/src/libFLAC/include/private/lpc.h b/src/libFLAC/include/private/lpc.h index 99f62de8..40971356 100644 --- a/src/libFLAC/include/private/lpc.h +++ b/src/libFLAC/include/private/lpc.h @@ -78,6 +78,13 @@ void FLAC__lpc_compute_autocorrelation_intrin_sse2_lag_10(const FLAC__real data[ void FLAC__lpc_compute_autocorrelation_intrin_sse2_lag_14(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[]); # endif # endif +# if defined FLAC__CPU_X86_64 && FLAC__HAS_X86INTRIN +# ifdef FLAC__FMA_SUPPORTED +void FLAC__lpc_compute_autocorrelation_intrin_fma_lag_8(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[]); +void FLAC__lpc_compute_autocorrelation_intrin_fma_lag_12(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[]); +void FLAC__lpc_compute_autocorrelation_intrin_fma_lag_16(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[]); +# endif +# endif #if defined(FLAC__CPU_PPC64) && defined(FLAC__USE_VSX) #ifdef FLAC__HAS_TARGET_POWER9 void FLAC__lpc_compute_autocorrelation_intrin_power9_vsx_lag_8(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[]); |