【问题标题】:I got an error message about some Neon code我收到有关某些 Neon 代码的错误消息
【发布时间】:2015-11-30 05:50:30
【问题描述】:

为了在 Android 上学习 ARM Neon,我尝试运行一个示例代码。

但我收到一条错误消息。

 uint16_t in[8] = {0, 1, 2, 3, 4, 5, 6, 7};
 uint16_t out[8];
 r = vld1q_u16(&in[0]);
 **vst1q_u16(&out[0], r);** <-- Here comes an error message

错误消息是无效参数

我不明白为什么会出现问题。

vld1q_u16 工作正常,r 的值也正确。

但是vst1q_u16 不起作用。

【问题讨论】:

  • 请包含完整的错误消息(使用上面的edit 链接将其复制并粘贴到您的问题中)。
  • 确保 r 被正确声明为 uint16x8_t r。你的 sn-p 使用 gradle 实验插件 0.2.0 为我编译。

标签: android arm neon


【解决方案1】:

你应该使用

r = vld1q_u16(in);
vst1q_u16(out, r);

像 NEON 这样的 SIMD 引擎默认向后读取内存内容,所以给它数组元素 0 的地址是个坏主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多