aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2015-06-07 20:16:43 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2015-06-07 20:16:43 +0000
commit9195e4805ffa273d70b1acbb24b2ed0d7aec9587 (patch)
tree6531bfa85c4859c683dfe98a4c4ad64abd632a9b
parentfc2548593f90df6f18de3d0e80c3804da98a0e9d (diff)
only use SSE-variants if signal vector is big enough
for loop unrolling svn path=/trunk/externals/zexy/; revision=17477
-rw-r--r--src/abs~.c1
-rw-r--r--src/sgn~.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/abs~.c b/src/abs~.c
index 0d509f9..b55a742 100644
--- a/src/abs~.c
+++ b/src/abs~.c
@@ -119,6 +119,7 @@ static void sigABS_dsp(t_abs *x, t_signal **sp)
{
#ifdef __SSE__
if(
+ (!(sp[0]->s_n & 15)) &&
ZEXY_TYPE_EQUAL(t_sample, float) &&
zexy_testSSE(sigABS_perform,
sigABS_performSSE,
diff --git a/src/sgn~.c b/src/sgn~.c
index 2570fd2..2421b69 100644
--- a/src/sgn~.c
+++ b/src/sgn~.c
@@ -115,6 +115,7 @@ static void sgnTilde_dsp(t_sgnTilde *x, t_signal **sp)
zexy_testSSE(sgnTilde_perform,
sgnTilde_performSSE,
1,1)
+ && !(sp[0]->s_n & 7)
)
{
dsp_add(sgnTilde_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);