2014-10-17 5 views
2

내 아이 패드 에어 (아이폰 OS 7.1)ARM 네온 아이폰 OS 부동 소수점 변환

#include <arm_neon.h> 

static inline void TestArmConversion() 
{ 
    float x[2] = { 1.5, 2.6 }; 
    int32_t z[2]; 

    vst1_s32(z, vcvt_f32_s32(vld1_f32(x))); 

    for (int k = 0; k < 2; k++) 
    { 
     printf("z[%d] = %d\n", k, z[k]); 
    } 
} 

에이 코드를 실행 ... 나는 다음과 같은 결과를 얻을 :

z[0] = 1316945920 
z[1] = 1317031117 

는 내가 예상 한 것

Z를 얻을 [0] = 1 Z [1] = 2

내가 뭘 잘못입니까?

답변

3

가까이에! 방금 전환이 뒤섞였습니다. 대신 vcvt_s32_f32(float32x2_t)을 사용하십시오.

+0

감사합니다. 내 문제가 해결되었습니다. :-) 컴파일러가 형식 오류를 발생시킬 것으로 예상했을 것입니다. –