ios - ARM Neon iOS float 转换

标签 ios arm neon

当我在我的 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

我做错了什么?

最佳答案

你很接近!你只是混淆了转换。请改用 vcvt_s32_f32(float32x2_t)

关于ios - ARM Neon iOS float 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427065/

相关文章:

ios - ARC 不允许将非 Objective-C 指针类型 void* 隐式转换为 NSString*__strong*

gcc - 将硬 float ABI 与不使用 VFP/NEON 运行的代码混合

assembly - NEON ASM 代码运行速度比 C 代码慢很多?

c - ARM 逆向工程 ROM 转储

c - ((Port *)0x41004400UL) 在这里是什么意思?

c - 是否有 ARM NEON 指令用于向零舍入的有符号右移?

ios - 获取点击的 UILabel 的值

ios - 尝试使用 Fabric Twitter SDK 获取 Twitter 用户的电子邮件地址时显示 "Your application may not have access to email addresses"

ios - 使用Swift和XCTest修改私有(private)数组的测试方法

c - ld : cannot find crt1. o:没有这样的文件或目录