2013-03-18 2 views
-1

나는 약간 부호가 있고, 그것을 바꾸기 위하여 Neon 지시를 사용하고 싶다, 그러나 나는 진짜로 그것을 완료하는 방법을 모른다 ... 누군가는 저를 도울 수 있는가? 이 같은 NEON의 내장 함수 .. 뭔가를 사용하여암 네온 지시

void add(int n,float *a,float *b,float t) { 
    int i, size = (n+2) * (n+2); 
    for(i = 0; i < size; i++) 
     a[i] += t * b[i]; 
} 

답변

0

:

void add(int n,float *a,float *b,float t) { 
    int i, size = (n+2) * (n+2); 
    float32x4_t temptt = vdupq_n_f32(t); 
    for(i = 0; i < size; i+=4) { 
    float32x4_t temp1 = vld1q_f32(a+i); 
    float32x4_t temp2 = vld1q_f32(b+i); 
    temp1 = vmlaq_f32(temp2, tempt, temp1); 
    vst1q_f32(a + i, temp1); 
    } 
} 

이 한 번에 4 반복을 수행하고, 크기가

+0

4. 감사의 배수 인 경우에만 작동합니다. 그러나 코드에서 : temp1 = vmlaq_f32 (temp2, tempt, temp1)는 temp = vmullq_f32 (temptt, temp2)로 바꿀 수 있습니다. temp1 = vaddq (temp1, temp); ....맞아? – user2182911