aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2015-06-07 20:21:55 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2015-06-07 20:21:55 +0000
commitf6cab44c8c45e5dc47bef1d8707cc0f0ef18cd21 (patch)
tree7d3d82f45fc2f67a1f01cb1fffe04c5d170dcc31
parent9195e4805ffa273d70b1acbb24b2ed0d7aec9587 (diff)
use macros to check for SSE-compatibility
svn path=/trunk/externals/zexy/; revision=17478
-rw-r--r--src/abs~.c4
-rw-r--r--src/sgn~.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/abs~.c b/src/abs~.c
index b55a742..d021f8e 100644
--- a/src/abs~.c
+++ b/src/abs~.c
@@ -119,7 +119,9 @@ static void sigABS_dsp(t_abs *x, t_signal **sp)
{
#ifdef __SSE__
if(
- (!(sp[0]->s_n & 15)) &&
+ Z_SIMD_CHKBLOCKSIZE(sp[0]->s_n) &&
+ Z_SIMD_CHKALIGN(sp[0]->s_vec) &&
+ Z_SIMD_CHKALIGN(sp[1]->s_vec) &&
ZEXY_TYPE_EQUAL(t_sample, float) &&
zexy_testSSE(sigABS_perform,
sigABS_performSSE,
diff --git a/src/sgn~.c b/src/sgn~.c
index 2421b69..5341694 100644
--- a/src/sgn~.c
+++ b/src/sgn~.c
@@ -111,11 +111,13 @@ static void sgnTilde_dsp(t_sgnTilde *x, t_signal **sp)
{
#ifdef __SSE__
if(
+ Z_SIMD_CHKBLOCKSIZE(sp[0]->s_n) &&
+ Z_SIMD_CHKALIGN(sp[0]->s_vec) &&
+ Z_SIMD_CHKALIGN(sp[1]->s_vec) &&
ZEXY_TYPE_EQUAL(t_sample, float) && /* currently SSE2 code is only for float (not for double) */
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);