aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-02-12 21:03:30 -0800
committerChris Robinson <[email protected]>2017-02-12 21:03:30 -0800
commit27695e2b24dea23d0db451fb0f9ae1c1af6f416e (patch)
treedcdcb64667dda864b05ede129049924047ffe01d /Alc/mixer.c
parent427f484e01eb09581dc5d3d0fb3f961c23916599 (diff)
Add NEON-enhanced resamplers
Diffstat (limited to 'Alc/mixer.c')
-rw-r--r--Alc/mixer.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/Alc/mixer.c b/Alc/mixer.c
index 0ee1edd6..5442954e 100644
--- a/Alc/mixer.c
+++ b/Alc/mixer.c
@@ -113,6 +113,10 @@ static inline ResamplerFunc SelectResampler(enum Resampler resampler)
case PointResampler:
return Resample_point32_C;
case LinearResampler:
+#ifdef HAVE_NEON
+ if((CPUCapFlags&CPU_CAP_NEON))
+ return Resample_lerp32_Neon;
+#endif
#ifdef HAVE_SSE4_1
if((CPUCapFlags&CPU_CAP_SSE4_1))
return Resample_lerp32_SSE41;
@@ -123,6 +127,10 @@ static inline ResamplerFunc SelectResampler(enum Resampler resampler)
#endif
return Resample_lerp32_C;
case FIR4Resampler:
+#ifdef HAVE_NEON
+ if((CPUCapFlags&CPU_CAP_NEON))
+ return Resample_fir4_32_Neon;
+#endif
#ifdef HAVE_SSE4_1
if((CPUCapFlags&CPU_CAP_SSE4_1))
return Resample_fir4_32_SSE41;
@@ -133,6 +141,10 @@ static inline ResamplerFunc SelectResampler(enum Resampler resampler)
#endif
return Resample_fir4_32_C;
case FIR8Resampler:
+#ifdef HAVE_NEON
+ if((CPUCapFlags&CPU_CAP_NEON))
+ return Resample_fir8_32_Neon;
+#endif
#ifdef HAVE_SSE4_1
if((CPUCapFlags&CPU_CAP_SSE4_1))
return Resample_fir8_32_SSE41;
@@ -143,6 +155,10 @@ static inline ResamplerFunc SelectResampler(enum Resampler resampler)
#endif
return Resample_fir8_32_C;
case BSincResampler:
+#ifdef HAVE_NEON
+ if((CPUCapFlags&CPU_CAP_NEON))
+ return Resample_bsinc32_Neon;
+#endif
#ifdef HAVE_SSE
if((CPUCapFlags&CPU_CAP_SSE))
return Resample_bsinc32_SSE;