func.c

来自「DSP培训 作业【源码】」· C语言 代码 · 共 46 行

C
46
字号
void func1(const short *restrict a,const short *restrict b,short *restrict c,int N)
{
 int i;
 
#pragma MUST_ITERATE(20,,2) 
 for(i=0;i<N;i++)
 {
  c[i]=b[i]+a[i];
 }
 
}



void func2(const short *restrict a,const short *restrict b,short *restrict c,int N)
{
 int i;
 
 register unsigned int a3_a2,a1_a0;
 register unsigned int b3_b2,b1_b0;
 register unsigned int c3_c2,c1_c0;
 
 
 
#pragma MUST_ITERATE(10) 
 for(i=0;i<N;i+=4)
 {
  //c[i]=b[i]+a[i];
  
  a3_a2=_hi(_amemd8_const(&a[i]));
  a1_a0=_lo(_amemd8_const(&a[i]));
  
  b3_b2=_hi(_amemd8_const(&b[i]));
  b1_b0=_lo(_amemd8_const(&b[i]));
    
  c3_c2=_add2(b3_b2,a3_a2);
  c1_c0=_add2(b1_b0,a1_a0);
  
  _amemd8(&c[i])=_itod(c3_c2,c1_c0);
  
 }
 
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?