aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2015-10-11 06:38:00 -0700
committerChris Robinson <[email protected]>2015-10-11 06:38:00 -0700
commit0211831858fe42b5a95f6992bbdc3d925d589a75 (patch)
tree7845ccbc2388623fe0a2aeebf0eb91d1fb2613ca /Alc/ALc.c
parent75d8e5989f737326b216b46e0a5184501fc8315f (diff)
Move the FIR4 from SSE2 to SSE3
SSE3 can avoid the slow _MM_TRANSPOSE_PS4 call thanks to the inclusion of horizontal adds.
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r--Alc/ALc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 2610bf45..6a69fdb6 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -955,7 +955,9 @@ static void alc_initconfig(void)
capfilter = 0;
#if defined(HAVE_SSE4_1)
- capfilter |= CPU_CAP_SSE | CPU_CAP_SSE2 | CPU_CAP_SSE4_1;
+ capfilter |= CPU_CAP_SSE | CPU_CAP_SSE2 | CPU_CAP_SSE3 | CPU_CAP_SSE4_1;
+#elif defined(HAVE_SSE3)
+ capfilter |= CPU_CAP_SSE | CPU_CAP_SSE2 | CPU_CAP_SSE3;
#elif defined(HAVE_SSE2)
capfilter |= CPU_CAP_SSE | CPU_CAP_SSE2;
#elif defined(HAVE_SSE)
@@ -989,6 +991,8 @@ static void alc_initconfig(void)
capfilter &= ~CPU_CAP_SSE;
else if(len == 4 && strncasecmp(str, "sse2", len) == 0)
capfilter &= ~CPU_CAP_SSE2;
+ else if(len == 4 && strncasecmp(str, "sse3", len) == 0)
+ capfilter &= ~CPU_CAP_SSE3;
else if(len == 6 && strncasecmp(str, "sse4.1", len) == 0)
capfilter &= ~CPU_CAP_SSE4_1;
else if(len == 4 && strncasecmp(str, "neon", len) == 0)