我收到一些关于一些Neon代码的错误消息

时间:2015-11-30 05:50:30

标签: android arm neon

要在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
  

错误消息是Invalid Arguments

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

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

vst1q_u16不起作用。

1 个答案:

答案 0 :(得分:0)

你应该使用

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

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