我对英特尔 SSE 内在函数的各种算术运算有疑问。做 _mm_add_ps 与做 _mm_add_ps 有什么区别?_mm_add_epi8/16/32?我想确保我的数据始终保持一致。
在我执行此操作时的示例代码中:
__m128 u1 = _mm_load_ps(&V[(i-1)]);
我得到一个分段错误。但是当我这样做时:
__m128 u1 = _mm_loadu_ps(&V[(i-1)]);
它工作正常。
因为我希望我的数据对齐,所以我声明了这样的数组:
posix_memalign((void**)&V, 16, dx*sizeof(float));
有人可以帮忙解释一下吗。