我有以下試圖在vs2013中運行的SIMD代碼。它可以很好的編譯但不能運行。有人知道爲什麼VS2013中SSE2代碼的運行錯誤
#include <cstdio>
#include <xmmintrin.h>
int main()
{
const size_t num = 7;
float a[num] = { 1, 2, 3, 4, 5, 6, 7 };
float b[num] = { 1, -1, -2, 1, -3, -2, 5 };
float c[num];
__m128 A, B, C;
A = _mm_load_ps(&a[0]); // <== crash here.
B = _mm_load_ps(&b[0]);
C = _mm_add_ps(A, B);
_mm_store_ps(&c[0], C);
return 0;
}
和錯誤消息是什麼? – MSalters
您的數據可能未對齊。 – Mysticial
請對齊您的數據或使用'_mm_loadu_ps' /'_mm_storeu_ps'。 –