Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14242
Modified Files:
Tag: devel_0_37
m_simd_sse_gcc.c m_simd_sse_gcc.h
Log Message:
further update for sse / gcc
Index: m_simd_sse_gcc.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_sse_gcc.c,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -C2 -d -r1.1.2.6 -r1.1.2.7
*** m_simd_sse_gcc.c 9 Oct 2004 07:44:29 -0000 1.1.2.6
--- m_simd_sse_gcc.c 9 Oct 2004 11:56:16 -0000 1.1.2.7
***************
*** 13,17 ****
/* dst is assumed to be aligned */
! static void zerovec_sse_gcc(t_float *dst,int n)
{
asm(
--- 13,17 ----
/* dst is assumed to be aligned */
! void zerovec_sse_gcc(t_float *dst,int n)
{
asm(
***************
*** 21,25 ****
/* should we do more loop unrolling? */
! "1: \n"
"movaps %%xmm0, (%1) \n"
"movaps %%xmm0, 4*T_FLOAT(%1) \n"
--- 21,26 ----
/* should we do more loop unrolling? */
! /* *dst = 0 */
! "1: \n"
"movaps %%xmm0, (%1) \n"
"movaps %%xmm0, 4*T_FLOAT(%1) \n"
***************
*** 27,31 ****
"movaps %%xmm0, 12*T_FLOAT(%1) \n"
! "addl $64,%1 \n"
"loop 1b \n"
:
--- 28,32 ----
"movaps %%xmm0, 12*T_FLOAT(%1) \n"
! "addl $16*T_FLOAT,%1 \n"
"loop 1b \n"
:
***************
*** 43,56 ****
/* should we do more loop unrolling? */
"1: \n"
! "movaps %2, (%1) \n"
! "movaps %2, 4*T_FLOAT(%1) \n"
! "movaps %2, 8*T_FLOAT(%1) \n"
! "movaps %2, 12*T_FLOAT(%1) \n"
! "addl $64,%1 \n"
"loop 1b \n"
:
! :"c"(n),"r"(dst),"x"(v)
);
}
--- 44,58 ----
/* should we do more loop unrolling? */
+ /* *dst = v */
"1: \n"
! "movaps %2, (%1) \n"
! "movaps %2, 4*T_FLOAT(%1) \n"
! "movaps %2, 8*T_FLOAT(%1) \n"
! "movaps %2, 12*T_FLOAT(%1) \n"
! "addl $16*T_FLOAT,%1 \n"
"loop 1b \n"
:
! :"c"(n),"r"(dst),"x"((t_float)v)
);
}
***************
*** 64,84 ****
"shr $4, %0 \n"
! /* loop: *out = *in */
"1: \n"
"movaps (%1), %%xmm0 \n"
"movaps 4*T_FLOAT(%1), %%xmm1 \n"
"movaps 8*T_FLOAT(%1), %%xmm2 \n"
! "movaps 16*T_FLOAT(%1), %%xmm3 \n"
"movaps %%xmm0, (%2) \n"
"movaps %%xmm1, 4*T_FLOAT(%2) \n"
"movaps %%xmm2, 8*T_FLOAT(%2) \n"
! "movaps %%xmm3, 16*T_FLOAT(%2) \n"
! "addl $64,%1 \n"
! "addl $64,%2 \n"
"loop 1b \n"
:
! :"r"(n),"r"(src),"r"(dst)
! :"%xmm0","%xmm1","%xmm2","%xmm3","%eax");
}
--- 66,123 ----
"shr $4, %0 \n"
! /* loop: *dst = *src */
"1: \n"
"movaps (%1), %%xmm0 \n"
"movaps 4*T_FLOAT(%1), %%xmm1 \n"
"movaps 8*T_FLOAT(%1), %%xmm2 \n"
! "movaps 12*T_FLOAT(%1), %%xmm3 \n"
"movaps %%xmm0, (%2) \n"
"movaps %%xmm1, 4*T_FLOAT(%2) \n"
"movaps %%xmm2, 8*T_FLOAT(%2) \n"
! "movaps %%xmm3, 12*T_FLOAT(%2) \n"
! "addl $16*T_FLOAT,%1 \n"
! "addl $16*T_FLOAT,%2 \n"
"loop 1b \n"
:
! :"c"(n),"r"(src),"r"(dst)
! :"%xmm0","%xmm1","%xmm2","%xmm3");
! }
!
!
! /* dst and src are assumed to be aligned */
! void addvec_sse_gcc(t_float *dst,const t_float *src,int n)
! {
! asm(
! ".set T_FLOAT,4 \n" /* sizeof(t_float) */
! "shr $4, %0 \n"
!
! /* loop: *dst += *src */
! "1: \n"
! "movaps (%2,%3),%%xmm0 \n"
! "movaps (%1,%3),%%xmm1 \n"
! "addps %%xmm0,%%xmm1 \n"
! "movaps %%xmm0,(%2,%3) \n"
!
! "movaps 4*T_FLOAT(%2,%3),%%xmm0 \n"
! "movaps 4*T_FLOAT(%1,%3),%%xmm1 \n"
! "addps %%xmm0,%%xmm1 \n"
! "movaps %%xmm0,4*T_FLOAT(%2,%3) \n"
!
! "movaps 8*T_FLOAT(%2,%3),%%xmm0 \n"
! "movaps 8*T_FLOAT(%1,%3),%%xmm1 \n"
! "addps %%xmm0,%%xmm1 \n"
! "movaps %%xmm0,8*T_FLOAT(%2,%3) \n"
!
! "movaps 12*T_FLOAT(%2,%3),%%xmm0 \n"
! "movaps 12*T_FLOAT(%1,%3),%%xmm1 \n"
! "addps %%xmm0,%%xmm1 \n"
! "movaps %%xmm0,12*T_FLOAT(%2,%3) \n"
!
! "addl $16*T_FLOAT,%3 \n"
! "loop 1b \n"
! :
! : "c"(n),"r"(src),"r"(dst),"r"(0)
! : "%xmm0","%xmm1","%xmm2","%xmm3","%xmm4","%xmm5","%xmm6","%xmm7");
}
***************
*** 95,157 ****
}
! /* t_int *sig_tilde_perf_sse_gcc(t_int *w) */
! /* { */
! /* setvec_sse_gcc((t_float *)w[2],*(const t_float *)w[1],w[3]); */
! /* return w+4; */
! /* } */
!
! /* zero_perf_sse_gcc (t_int * w)*/
! /* asm( */
! /* ".set T_FLOAT,4 \n" /\* sizeof(t_float) *\/ */
! /* ".set T_INT,4 \n" /\* sizeof(t_int) *\/ */
!
! /* /\* header *\/ */
! /* ".text \n" */
! /* ".align 4 \n" /\* alignment *\/ */
- /* ".globl zero_perf_sse_gcc \n" */
- /* "zero_perf_sse_gcc: \n" */
-
- /* /\* head of function *\/ */
- /* "pushl %ebp \n" */
- /* "movl %esp, %ebp \n" */
- /* "pushl %esi \n" */
- /* "movl %esi, -4(%ebp) \n" */
! /* /\* get arguments *\/ */
! /* "movl 8(%ebp), %esi \n" /\* argument pointer *\/ */
! /* "movl T_INT(%esi), %edx \n" /\* out *\/ */
! /* "movl 2*T_INT(%esi), %ecx \n" /\* n *\/ */
!
! /* "xorps %xmm0, %xmm0 \n" /\* load zero *\/ */
! /* "shrl $4, %ecx \n" /\* divide by 16 *\/ */
!
! /* /\* loop: *out=0 *\/ */
! /* "zpsg_loop: \n" */
! /* "movaps %xmm0, (%edx) \n" */
! /* "movaps %xmm0, 4*T_FLOAT(%edx) \n" */
! /* "movaps %xmm0, 8*T_FLOAT(%edx) \n" */
! /* "movaps %xmm0, 12*T_FLOAT(%edx) \n" */
!
! /* "addl $64, %edx \n" /\* out+=16 *\/ */
! /* "loop zpsg_loop \n" */
!
! /* /\* return w+3; *\/ */
! /* "movl -4(%ebp), %esi \n" */
! /* "movl 8(%ebp), %eax \n" */
! /* "addl $12, %eax \n" */
! /* "movl %ebp, %esp \n" */
! /* "popl %ebp \n" */
! /* "ret \n" */
! /* ".align 4 \n" /\* alignment *\/ */
! /* ".type zero_perf_sse_gcc, @function \n" */
! /* ); */
! /* /\* copy_perf_sse_gcc (t_int * w)*\/ */
/* asm( */
/* ".set T_FLOAT,4 \n" */
--- 134,222 ----
}
! t_int *sig_tilde_perf_sse_gcc(t_int *w)
! {
! setvec_sse_gcc((t_float *)w[2],*(const t_float *)w[1],w[3]);
! return w+4;
! }
! t_int * plus_perf_sse_gcc (t_int * w)
! {
! asm(
! ".set T_FLOAT,4 \n"
!
! "shrl $4, %3 \n" /* divide by 16 */
! /* loop: *out = *in1 + *in2 */
! "1: \n"
! "movaps (%0,%4), %%xmm0 \n"
! "movaps (%1,%4), %%xmm1 \n"
! "addps %%xmm1, %%xmm0 \n"
! "movaps %%xmm0, (%2,%4) \n"
!
! "movaps 4*T_FLOAT(%0,%4), %%xmm2 \n"
! "movaps 4*T_FLOAT(%1,%4), %%xmm3 \n"
! "addps %%xmm3, %%xmm2 \n"
! "movaps %%xmm2, 4*T_FLOAT(%2,%4) \n"
!
! "movaps 8*T_FLOAT(%0,%4), %%xmm4 \n"
! "movaps 8*T_FLOAT(%1,%4), %%xmm5 \n"
! "addps %%xmm5, %%xmm4 \n"
! "movaps %%xmm4, 8*T_FLOAT(%2,%4) \n"
!
! "movaps 12*T_FLOAT(%0,%4), %%xmm6 \n"
! "movaps 12*T_FLOAT(%1,%4), %%xmm7 \n"
! "addps %%xmm7, %%xmm6 \n"
! "movaps %%xmm6, 12*T_FLOAT(%2,%4) \n"
!
! "addl $16*T_FLOAT, %4 \n"
! "loop 1b \n"
! :
! /* in1, in2, out, n */
! :"r"(w[1]),"r"(w[2]),"r"(w[3]),"c"(w[4]),"r"(0)
! );
! return w+5;
! }
! t_int *scalarplus_perf_sse_gcc(t_int *w)
! {
! asm(
! ".set T_FLOAT,4 \n"
!
! "shufps $0, %1, %1 \n"
! "shrl $4, %3 \n" /* divide by 16 */
! /* loop: *out = *in + value */
! "1: \n"
! "movaps (%0), %%xmm1 \n"
! "addps %1, %%xmm1 \n"
! "movaps %%xmm1, (%2) \n"
!
! "movaps 4*T_FLOAT(%0), %%xmm2 \n"
! "addps %1, %%xmm2 \n"
! "movaps %%xmm2, 4*T_FLOAT(%2) \n"
!
! "movaps 8*T_FLOAT(%0), %%xmm3 \n"
! "addps %1, %%xmm3 \n"
! "movaps %%xmm3, 8*T_FLOAT(%2) \n"
!
! "movaps 12*T_FLOAT(%0), %%xmm4 \n"
! "addps %1, %%xmm4 \n"
! "movaps %%xmm4, 12*T_FLOAT(%2) \n"
!
! "addl $16*T_FLOAT, %0 \n"
! "addl $16*T_FLOAT, %2 \n"
! "loop 1b \n"
! :
! /* in, value, out, n */
! :"r"(w[1]),"x"((t_float)w[2]),"r"(w[3]),"c"(w[4])
! :"%xmm1","%xmm2","%xmm3","%xmm4"
! );
! return w+5;
! }
! /* /\* scalarplus_perf_sse_gcc(t_int *w) *\/ */
/* asm( */
/* ".set T_FLOAT,4 \n" */
***************
*** 162,167 ****
/* ".align 4 \n" /\* alignment *\/ */
! /* ".globl copy_perf_sse_gcc \n" */
! /* "copy_perf_sse_gcc: \n" */
/* /\* head of function *\/ */
--- 227,232 ----
/* ".align 4 \n" /\* alignment *\/ */
! /* ".globl scalarplus_perf_sse_gcc \n" */
! /* "scalarplus_perf_sse_gcc: \n" */
/* /\* head of function *\/ */
***************
*** 174,402 ****
/* /\* get arguments *\/ */
/* "movl 8(%ebp), %esi \n" /\* argument pointer *\/ */
! /* "movl 1*T_INT(%esi), %ebx \n" /\* in1 *\/ */
! /* "movl 2*T_INT(%esi), %edx \n" /\* out *\/ */
! /* "movl 3*T_INT(%esi), %ecx \n" /\* n *\/ */
/* "shrl $4, %ecx \n" /\* divide by 16 *\/ */
! /* /\* loop: *out = *in *\/ */
! /* "cpsg_loop: \n" */
! /* "movaps (%ebx), %xmm0 \n" */
! /* "movaps %xmm0, (%edx) \n" */
! /* "movaps 4*T_FLOAT(%ebx), %xmm1 \n" */
! /* "movaps %xmm1, 4*T_FLOAT(%edx) \n" */
! /* "movaps 8*T_FLOAT(%ebx), %xmm2 \n" */
! /* "movaps %xmm2, 8*T_FLOAT(%edx) \n" */
! /* "movaps 12*T_FLOAT(%ebx), %xmm3 \n" */
! /* "movaps %xmm3, 12*T_FLOAT(%edx) \n" */
!
! /* "addl $64, %ebx \n" /\* in1 +=16 *\/ */
! /* "addl $64, %edx \n" /\* out +=16 *\/ */
! /* "loop cpsg_loop \n" */
! /* /\* return w+4; *\/ */
/* "movl -4(%ebp), %ebx \n" */
/* "movl -8(%ebp), %esi \n" */
/* "movl 8(%ebp), %eax \n" */
! /* "addl $16, %eax \n" */
/* "movl %ebp, %esp \n" */
/* "popl %ebp \n" */
/* "ret \n" */
-
/* ".align 4 \n" /\* alignment *\/ */
! /* ".type copy_perf_sse_gcc, @function \n" */
! /* ); */
!
!
! /* sig_tilde_perf_sse_gcc(t_int * w) */
! asm(
! ".set T_FLOAT,4 \n"
! ".set T_INT,4 \n"
!
! /* header */
! ".text \n"
! ".align 4 \n" /* alignment */
!
! ".globl sig_tilde_perf_sse_gcc \n"
! "sig_tilde_perf_sse_gcc: \n"
!
! /* head of function */
! "pushl %ebp \n"
! "movl %esp, %ebp \n"
! "pushl %esi \n"
! "movl %esi, -4(%ebp) \n"
!
! /* get arguments */
! "movl 8(%ebp), %esi \n" /* argument pointer */
! "movl 2*T_INT(%esi), %edx \n" /* out */
! "movl 1*T_INT(%esi), %eax \n" /* f */
! "movl 3*T_INT(%esi), %ecx \n" /* n */
!
! /* set registers to f */
! "movss (%eax), %xmm0 \n"
! "shufps $0, %xmm0, %xmm0 \n"
! "movl 12(%esi), %ecx \n"
! "shrl $4, %ecx \n" /* divide by 16 */
!
! /* loop: *out = f */
! "sigtpsg_loop: \n"
! "movaps %xmm0, (%edx) \n"
! "movaps %xmm0, 16(%edx) \n"
! "movaps %xmm0, 32(%edx) \n"
! "movaps %xmm0, 48(%edx) \n"
! "addl $64, %edx \n" /* out+=16 */
! "loop sigtpsg_loop \n"
!
! /* return w+4; */
! "movl -4(%ebp), %esi \n"
! "movl 8(%ebp), %eax \n"
! "addl $16, %eax \n"
! "movl %ebp, %esp \n"
! "popl %ebp \n"
! "ret \n"
!
! ".align 4 \n" /* alignment */
! ".type sig_tilde_perf_sse_gcc, @function \n"
!
! );
!
!
!
! /* plus_perf_sse_gcc (t_int * w)*/
! asm(
! ".set T_FLOAT,4 \n"
! ".set T_INT,4 \n"
!
! /* header */
! ".text \n"
! ".align 4 \n" /* alignment */
!
! ".globl plus_perf_sse_gcc \n"
! "plus_perf_sse_gcc: \n"
!
! /* head of function */
! "pushl %ebp \n"
! "movl %esp, %ebp \n"
! "subl $8, %esp \n"
! "movl %ebx, -4(%ebp) \n"
! "movl %esi, -8(%ebp) \n"
!
! /* get arguments */
! "movl 8(%ebp), %esi \n" /* argument vector */
!
! "movl 1*T_INT(%esi), %eax \n" /* in1 */
! "movl 2*T_INT(%esi), %ebx \n" /* in2 */
! "movl 3*T_INT(%esi), %edx \n" /* out */
! "movl 4*T_INT(%esi), %ecx \n" /* n */
! "shrl $4, %ecx \n" /* divide by 16 */
! "xorl %esi, %esi \n" /* reset index */
!
! /* loop: *out = *in1 + *in2 */
! "ppsg_loop: \n"
! "movaps (%eax,%esi), %xmm0 \n"
! "movaps (%ebx,%esi), %xmm1 \n"
! "addps %xmm1, %xmm0 \n"
! "movaps %xmm0, (%edx,%esi) \n"
!
! "movaps 4*T_FLOAT(%eax,%esi), %xmm2 \n"
! "movaps 4*T_FLOAT(%ebx,%esi), %xmm3 \n"
! "addps %xmm3, %xmm2 \n"
! "movaps %xmm2, 4*T_FLOAT(%edx,%esi) \n"
!
! "movaps 8*T_FLOAT(%eax,%esi), %xmm4 \n"
! "movaps 8*T_FLOAT(%ebx,%esi), %xmm5 \n"
! "addps %xmm5, %xmm4 \n"
! "movaps %xmm4, 8*T_FLOAT(%edx,%esi) \n"
!
! "movaps 12*T_FLOAT(%eax,%esi), %xmm6 \n"
! "movaps 12*T_FLOAT(%ebx,%esi), %xmm7 \n"
! "addps %xmm7, %xmm6 \n"
! "movaps %xmm6, 12*T_FLOAT(%edx,%esi) \n"
!
! "addl $64, %esi \n" /* out+=16; */
! "loop ppsg_loop \n"
!
! /* return w+5; */
! "movl -4(%ebp), %ebx \n"
! "movl -8(%ebp), %esi \n"
! "movl 8(%ebp), %eax \n"
! "addl $20, %eax \n"
! "movl %ebp, %esp \n"
! "popl %ebp \n"
! "ret \n"
!
!
! ".align 4 \n" /* alignment */
! ".type plus_perf_sse_gcc, @function \n"
!
! );
!
! /* scalarplus_perf_sse_gcc(t_int *w) */
! asm(
! ".set T_FLOAT,4 \n"
! ".set T_INT,4 \n"
!
! /* header */
! ".text \n"
! ".align 4 \n" /* alignment */
!
! ".globl scalarplus_perf_sse_gcc \n"
! "scalarplus_perf_sse_gcc: \n"
!
! /* head of function */
! "pushl %ebp \n"
! "movl %esp, %ebp \n"
! "subl $8, %esp \n"
! "movl %ebx, -4(%ebp) \n"
! "movl %esi, -8(%ebp) \n"
!
! /* get arguments */
! "movl 8(%ebp), %esi \n" /* argument pointer */
! "movl T_INT(%esi), %ebx \n" /* in */
! "movl 3*T_INT(%esi), %edx \n" /* out */
! "movl 2*T_INT(%esi), %eax \n" /* value */
! "movl 4*T_INT(%esi), %ecx \n" /* n */
!
! "movss (%eax), %xmm0 \n"
! "shufps $0, %xmm0, %xmm0 \n"
! "shrl $4, %ecx \n" /* divide by 16 */
!
! /* loop: *out = *in + value */
! "sppsg_loop: \n"
!
! "movaps (%ebx), %xmm1 \n"
! "addps %xmm0, %xmm1 \n"
! "movaps %xmm1, (%edx) \n"
!
! "movaps 4*T_FLOAT(%ebx), %xmm2 \n"
! "addps %xmm0, %xmm2 \n"
! "movaps %xmm2, 4*T_FLOAT(%edx) \n"
!
! "movaps 8*T_FLOAT(%ebx), %xmm3 \n"
! "addps %xmm0, %xmm3 \n"
! "movaps %xmm3, 8*T_FLOAT(%edx) \n"
!
! "movaps 12*T_FLOAT(%ebx), %xmm4 \n"
! "addps %xmm0, %xmm4 \n"
! "movaps %xmm4, 12*T_FLOAT(%edx) \n"
!
! "addl $64, %ebx \n" /* in += 16 */
! "addl $64, %edx \n" /* out += 16 */
! "loop sppsg_loop \n"
!
! /* return w+5; */
! "movl -4(%ebp), %ebx \n"
! "movl -8(%ebp), %esi \n"
! "movl 8(%ebp), %eax \n"
! "addl $20, %eax \n"
! "movl %ebp, %esp \n"
! "popl %ebp \n"
! "ret \n"
!
! ".align 4 \n" /* alignment */
! ".type scalarplus_perf_sse_gcc, @function \n"
! );
--- 239,287 ----
/* /\* get arguments *\/ */
/* "movl 8(%ebp), %esi \n" /\* argument pointer *\/ */
! /* "movl T_INT(%esi), %ebx \n" /\* in *\/ */
! /* "movl 3*T_INT(%esi), %edx \n" /\* out *\/ */
! /* "movl 2*T_INT(%esi), %eax \n" /\* value *\/ */
! /* "movl 4*T_INT(%esi), %ecx \n" /\* n *\/ */
!
! /* "movss (%eax), %xmm0 \n" */
! /* "shufps $0, %xmm0, %xmm0 \n" */
/* "shrl $4, %ecx \n" /\* divide by 16 *\/ */
! /* /\* loop: *out = *in + value *\/ */
! /* "sppsg_loop: \n" */
! /* "movaps (%ebx), %xmm1 \n" */
! /* "addps %xmm0, %xmm1 \n" */
! /* "movaps %xmm1, (%edx) \n" */
! /* "movaps 4*T_FLOAT(%ebx), %xmm2 \n" */
! /* "addps %xmm0, %xmm2 \n" */
! /* "movaps %xmm2, 4*T_FLOAT(%edx) \n" */
!
! /* "movaps 8*T_FLOAT(%ebx), %xmm3 \n" */
! /* "addps %xmm0, %xmm3 \n" */
! /* "movaps %xmm3, 8*T_FLOAT(%edx) \n" */
!
! /* "movaps 12*T_FLOAT(%ebx), %xmm4 \n" */
! /* "addps %xmm0, %xmm4 \n" */
! /* "movaps %xmm4, 12*T_FLOAT(%edx) \n" */
!
! /* "addl $64, %ebx \n" /\* in += 16 *\/ */
! /* "addl $64, %edx \n" /\* out += 16 *\/ */
! /* "loop sppsg_loop \n" */
!
! /* /\* return w+5; *\/ */
/* "movl -4(%ebp), %ebx \n" */
/* "movl -8(%ebp), %esi \n" */
/* "movl 8(%ebp), %eax \n" */
! /* "addl $20, %eax \n" */
/* "movl %ebp, %esp \n" */
/* "popl %ebp \n" */
/* "ret \n" */
/* ".align 4 \n" /\* alignment *\/ */
! /* ".type scalarplus_perf_sse_gcc, @function \n" */
! /* ); */
Index: m_simd_sse_gcc.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_sse_gcc.h,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -C2 -d -r1.1.2.10 -r1.1.2.11
*** m_simd_sse_gcc.h 9 Oct 2004 07:44:29 -0000 1.1.2.10
--- m_simd_sse_gcc.h 9 Oct 2004 11:56:16 -0000 1.1.2.11
***************
*** 10,14 ****
/* SIMD functions for SSE with GCC */
! //void zerovec_sse_gcc(t_float *dst,int n);
void setvec_sse_gcc(t_float *dst,t_float v,int n);
void copyvec_sse_gcc(t_float *dst,const t_float *src,int n);
--- 10,14 ----
/* SIMD functions for SSE with GCC */
! void zerovec_sse_gcc(t_float *dst,int n);
void setvec_sse_gcc(t_float *dst,t_float v,int n);
void copyvec_sse_gcc(t_float *dst,const t_float *src,int n);
***************
*** 39,46 ****
! #define zerovec zerovec_8 //sse_gcc
#define setvec setvec_sse_gcc
#define copyvec copyvec_sse_gcc
! #define addvec addvec_8 /* SIMD not implemented */
#define testcopyvec testcopyvec_8 /* SIMD not implemented */
#define testaddvec testaddvec_8 /* SIMD not implemented */
--- 39,46 ----
! #define zerovec zerovec_sse_gcc
#define setvec setvec_sse_gcc
#define copyvec copyvec_sse_gcc
! #define addvec addvec_sse_gcc
#define testcopyvec testcopyvec_8 /* SIMD not implemented */
#define testaddvec testaddvec_8 /* SIMD not implemented */