假設我有16個8位整數,我想將它們裝入使用SSE2作爲__m128i
:靜態使用_mm_set_epi8
如何使用SSE2
__m128i v = _mm_set_epi8(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
我能做到這一點,但我想動態地做到這一點;這些值將在運行時決定。
C = userinput;
for(int i=0; i<16; i++)
{
load C*i on v at position i
}
我該怎麼做?
對於像你所描述的情況,但是使用16位整數的情況下,使用一個像你現在正在做的常量('set(1,2,3, 4,...)'),然後乘以'SET1(USER_INPUT)'。廣播很容易/便宜,但沒有指示在一個註冊表中製作一個系列。在大多數編譯器中,'_mm_set_epi8(C * 1,C * 2,...)'會編譯成許多標量乘。 –