2015-05-17 49 views
0

我有一個C程序,其中有幾個無符號整數數組。我正在使用此聲明uint32_t如何將無符號整數加載到SIMD中

我想使用SIMD對存儲在每個數組中的數據執行一些操作。這是我卡住的地方,因爲它看起來像大多數SSE和SSE2函數只支持float和double。

加載uint32_t類型數據的最佳方式是什麼?

+1

'MOVDQA/MOVDQU'是SSE2。所以'PADD [B/W/D/Q]',和*許多其他矢量指令。你爲什麼認爲SSE2只適用於'float/double'? – EOF

回答

1

對於任何整數SSE類型您通常使用_mm_load_si128/_mm_loadu_si128

uint32_t a[N]; 

__m128i v = _mm_loadu_si128((__m128i *)a);