From 4934f05ba8e55f58ed5762180ea317da50a00a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 19 Jan 2010 14:56:40 +0000 Subject: SIMD code hopefully now also works on 64bit svn path=/trunk/externals/zexy/; revision=13045 --- src/absgn~.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/absgn~.c') diff --git a/src/absgn~.c b/src/absgn~.c index 2279ade..73a0450 100644 --- a/src/absgn~.c +++ b/src/absgn~.c @@ -11,7 +11,7 @@ * ******************************************************/ -#include "zexy.h" +#include "zexySIMD.h" typedef struct _absgn { @@ -46,8 +46,8 @@ static t_int *sigABSGN_perform(t_int *w) } #ifdef __SSE__ -static long l_bitmask[] ={0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff}; -static long l_sgnbitmask[]={0x80000000, 0x80000000, 0x80000000, 0x80000000}; +static int l_bitmask[] ={0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff}; +static int l_sgnbitmask[]={0x80000000, 0x80000000, 0x80000000, 0x80000000}; static t_int *sigABSGN_performSSE(t_int *w) { __m128 *in = (__m128 *)(w[1]); @@ -91,11 +91,12 @@ static void sigABSGN_dsp(t_absgn *x, t_signal **sp) ZEXY_USEVAR(x); #ifdef __SSE__ if( - Z_SIMD_CHKBLOCKSIZE(sp[0]->s_n)&& - Z_SIMD_CHKALIGN(sp[0]->s_vec)&& - Z_SIMD_CHKALIGN(sp[1]->s_vec)&& - Z_SIMD_CHKALIGN(sp[2]->s_vec)&& - ZEXY_TYPE_EQUAL(t_sample, float) + ZEXY_TYPE_EQUAL(t_sample, float) && /* currently SSE2 code is only for float (not for double) */ + Z_SIMD_CHKBLOCKSIZE(sp[0]->s_n) && + Z_SIMD_CHKALIGN(sp[0]->s_vec) && + Z_SIMD_CHKALIGN(sp[1]->s_vec) && + Z_SIMD_CHKALIGN(sp[2]->s_vec) && + zexy_testSSE(sigABSGN_perform, sigABSGN_performSSE, 1, 2) ) { dsp_add(sigABSGN_performSSE, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n); -- cgit v1.2.1