for (i=0;i<=10;i++) den[i]=0; for (i=0;i<10;i++) mem[i]=0;
void iir_mem2(float *x, float *_den, float *y, int N, int ord, float *_mem){   float  __den[20], __mem[20];   float *num, *den, *mem;   int i,j;   den = (float*)(((int)(__den+4))&0xfffffff0)-1;   mem = (float*)(((int)(__mem+4))&0xfffffff0)-1;   for (i=0;i<ord+1;i++)   {      den[i]=_den[i];   }   for (i=0;i<ord;i++)      mem[i]=_mem[i];   for (i=0;i<N;i++)   {#if 0      y[i] = x[i] + mem[0];      for (j=0;j<ord-1;j++)      {         mem[j] = mem[j+1] - den[j+1]*y[i];      }      mem[ord-1] = - den[ord]*y[i];#else      __asm__ __volatile__       ("       movss (%1), %%xmm0       movss (%0), %%xmm1       addss %%xmm0, %%xmm1       movss %%xmm1, (%2)       shufps $0x00, %%xmm0, %%xmm0       shufps $0x00, %%xmm1, %%xmm1              movaps 4(%3),  %%xmm2       movaps 20(%3), %%xmm3       mulps  %%xmm1, %%xmm2       mulps  %%xmm1, %%xmm3       movss  36(%3), %%xmm4       movss  40(%3), %%xmm5       mulss  %%xmm1, %%xmm4       mulss  %%xmm1, %%xmm5       movaps 4(%0),  %%xmm6       subps  %%xmm2, %%xmm6       movups %%xmm6, (%0)       movaps 20(%0), %%xmm7       subps  %%xmm3, %%xmm7       movups %%xmm7, 16(%0)       movss  36(%0), %%xmm7       subss  %%xmm4, %%xmm7       movss  %%xmm7, 32(%0)              xorps  %%xmm2, %%xmm2       subss  %%xmm5, %%xmm2       movss  %%xmm2, 36(%0)       "       : : "r" (mem), "r" (x+i), "r" (y+i), "r" (den)       : "memory" );#endif   }   for (i=0;i<ord;i++)      _mem[i]=mem[i];}