diff options
Diffstat (limited to 'core/mixer')
-rw-r--r-- | core/mixer/mixer_neon.cpp | 4 | ||||
-rw-r--r-- | core/mixer/mixer_sse.cpp | 5 | ||||
-rw-r--r-- | core/mixer/mixer_sse2.cpp | 4 | ||||
-rw-r--r-- | core/mixer/mixer_sse41.cpp | 4 |
4 files changed, 17 insertions, 0 deletions
diff --git a/core/mixer/mixer_neon.cpp b/core/mixer/mixer_neon.cpp index 3c7ddd4e..cc6dd71d 100644 --- a/core/mixer/mixer_neon.cpp +++ b/core/mixer/mixer_neon.cpp @@ -16,6 +16,10 @@ struct BSincTag; struct FastBSincTag; +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ARM_NEON) +#pragma GCC target("fpu=neon") +#endif + namespace { inline float32x4_t set_f4(float l0, float l1, float l2, float l3) diff --git a/core/mixer/mixer_sse.cpp b/core/mixer/mixer_sse.cpp index ff722c19..f21ec227 100644 --- a/core/mixer/mixer_sse.cpp +++ b/core/mixer/mixer_sse.cpp @@ -15,6 +15,11 @@ struct BSincTag; struct FastBSincTag; +/* SSE2 is required for any SSE support. */ +#if defined(__GNUC__) && !defined(__clang__) && !defined(__SSE2__) +#pragma GCC target("sse2") +#endif + namespace { constexpr uint FracPhaseBitDiff{MixerFracBits - BSincPhaseBits}; diff --git a/core/mixer/mixer_sse2.cpp b/core/mixer/mixer_sse2.cpp index 69fac250..a93a33f9 100644 --- a/core/mixer/mixer_sse2.cpp +++ b/core/mixer/mixer_sse2.cpp @@ -30,6 +30,10 @@ struct SSE2Tag; struct LerpTag; +#if defined(__GNUC__) && !defined(__clang__) && !defined(__SSE2__) +#pragma GCC target("sse2") +#endif + template<> const float *Resample_<LerpTag,SSE2Tag>(const InterpState*, const float *RESTRICT src, uint frac, uint increment, const al::span<float> dst) diff --git a/core/mixer/mixer_sse41.cpp b/core/mixer/mixer_sse41.cpp index cacc9e64..f7839b78 100644 --- a/core/mixer/mixer_sse41.cpp +++ b/core/mixer/mixer_sse41.cpp @@ -31,6 +31,10 @@ struct SSE4Tag; struct LerpTag; +#if defined(__GNUC__) && !defined(__clang__) && !defined(__SSE4_1__) +#pragma GCC target("sse4.1") +#endif + template<> const float *Resample_<LerpTag,SSE4Tag>(const InterpState*, const float *RESTRICT src, uint frac, uint increment, const al::span<float> dst) |