diff options
author | N.N. <matju@users.sourceforge.net> | 2010-01-05 22:49:36 +0000 |
---|---|---|
committer | N.N. <matju@users.sourceforge.net> | 2010-01-05 22:49:36 +0000 |
commit | 8dbec761cf858ea65900c8a094599857208d8c3a (patch) | |
tree | 3228c023f87f23a354da3b57fdc2afe5b7052032 /desiredata/src/m_simd.c | |
parent | 529e59635598e2d90a7a49f6b4c676f8366109ba (diff) |
svn path=/trunk/; revision=12907
Diffstat (limited to 'desiredata/src/m_simd.c')
-rw-r--r-- | desiredata/src/m_simd.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/desiredata/src/m_simd.c b/desiredata/src/m_simd.c deleted file mode 100644 index 1c0cb021..00000000 --- a/desiredata/src/m_simd.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - Implementation of general vectorized functions - added by T.Grill -*/ - -#include "m_pd.h" -#include "m_simd.h" - -void zerovec_8(t_float *dst,int n) -{ - for(n >>= 3; n--; dst += 8) { - dst[0] = dst[1] = dst[2] = dst[3] = dst[4] = dst[5] = dst[6] = dst[7] = 0; - } -} - -void setvec_8(t_float *dst,t_float v,int n) -{ - for(n >>= 3; n--; dst += 8) { - dst[0] = dst[1] = dst[2] = dst[3] = dst[4] = dst[5] = dst[6] = dst[7] = v; - } -} - -void copyvec_8(t_float *dst,const t_float *src,int n) -{ - for(n >>= 3; n--; src += 8,dst += 8) { - dst[0] = src[0],dst[1] = src[1],dst[2] = src[2],dst[3] = src[3]; - dst[4] = src[4],dst[5] = src[5],dst[6] = src[6],dst[7] = src[7]; - } -} - -void addvec_8(t_float *dst,const t_float *src,int n) -{ - for(n >>= 3; n--; src += 8,dst += 8) { - dst[0] += src[0],dst[1] += src[1],dst[2] += src[2],dst[3] += src[3]; - dst[4] += src[4],dst[5] += src[5],dst[6] += src[6],dst[7] += src[7]; - } -} - -void copyvec(t_float *dst,const t_float *src,int n) -{ - while(n--) - *dst++ = *src++; -} - -void zerovec(t_float *dst, int n) -{ - while(n--) - *dst++ = 0; -} - - -void addvec(t_float *dst,const t_float *src,int n) -{ - while(n--) - *dst++ += *src++; -} - - -void testcopyvec_8(t_float *dst,const t_float *src,int n) -{ - while(n--) { - *(dst++) = (PD_BIGORSMALL(*src) ? 0 : *src); src++; - } -} - -void testcopyvec(t_float *dst,const t_float *src,int n) -{ - testcopyvec_8(dst, src, n); -} - -void testaddvec_8(t_float *dst,const t_float *src,int n) -{ - while(n--) { - *(dst++) += (PD_BIGORSMALL(*src) ? 0 : *src); src++; - } -} - -void testaddvec(t_float *dst,const t_float *src,int n) -{ - testaddvec_8(dst, src, n); -} - - -int simd_check1(t_int n, t_float* ptr1) -{ - return SIMD_CHECK1(n,ptr1); -} - -int simd_check2(t_int n, t_float* ptr1, t_float* ptr2) -{ - return SIMD_CHECK2(n,ptr1,ptr2); -} - -int simd_check3(t_int n, t_float* ptr1, t_float* ptr2, t_float* ptr3) -{ - return SIMD_CHECK3(n,ptr1,ptr2,ptr3); -} - - - -#ifdef DONTUSESIMD -int simd_runtime_check() -{ - return 0; -} - -/* tb: wrapper for simd functions */ -void zerovec_simd(t_float *dst,int n) -{ - zerovec_8(dst,n); -} - -void setvec_simd(t_float *dst,t_float v,int n) -{ - setvec_8(dst,v,n); -} - -void copyvec_simd(t_float *dst,const t_float *src,int n) -{ - copyvec_8(dst,src,n); -} - -void copyvec_simd_unalignedsrc(t_float *dst,const t_float *src,int n) -{ - copyvec_8(dst,src,n); -} - -void addvec_simd(t_float *dst,const t_float *src,int n) -{ - addvec_8(dst,src,n); -} - -void testcopyvec_simd(t_float *dst,const t_float *src,int n) -{ - testcopyvec_8(dst,src,n); -} - -void testaddvec_simd(t_float *dst,const t_float *src,int n) -{ - testaddvec_8(dst,src,n); -} - - -#endif /* DONTUSESIMD */ - |