ARM Neon iOS浮点数转换

3
当我在我的iPad Air(iOS 7.1)上执行此代码时:
#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

但是我错在哪里了呢?

1个回答

4

你很接近了!只是转换方法搞混了。请使用vcvt_s32_f32(float32x2_t)


1
好的,谢谢,问题解决了! :-) 我本来以为编译器会报类型错误。 - Nis Wegmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接