我收到有关某些 Neon 代码的错误消息
I got an error message about some Neon code
为了在 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
the error message is Invalid Arguments
我不明白为什么会出现这个问题。
vld1q_u16
工作正常,r
的值也正确。
但 vst1q_u16
不起作用。
你应该使用
r = vld1q_u16(in);
vst1q_u16(out, r);
像 NEON 这样的 SIMD 引擎在默认情况下会向后读取内存内容,因此给它数组元素 0 的地址是个坏主意。
为了在 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
the error message is Invalid Arguments
我不明白为什么会出现这个问题。
vld1q_u16
工作正常,r
的值也正确。
但 vst1q_u16
不起作用。
你应该使用
r = vld1q_u16(in);
vst1q_u16(out, r);
像 NEON 这样的 SIMD 引擎在默认情况下会向后读取内存内容,因此给它数组元素 0 的地址是个坏主意。