我正在學習如何在視頻應用程序中使用英特爾MMX和SSE指令。我有一個8字節的單詞,我想添加所有8個字節併產生一個整數作爲結果。直截了當的方法是一系列7班倒並增加,但這是緩慢的。這樣做的最快方法是什麼?是否有MMX或SSE指令?如何添加一個8字節長整數的每個字節?
這是做
unsigned long PackedWord = whatever....
int byte1 = 0xff & (PackedWord);
int byte2 = 0xff & (PackedWord >> 8);
int byte3 = 0xff & (PackedWord >> 16);
int byte4 = 0xff & (PackedWord >> 24);
int byte5 = 0xff & (PackedWord >> 32);
int byte6 = 0xff & (PackedWord >> 40);
int byte7 = 0xff & (PackedWord >> 48);
int byte8 = 0xff & (PackedWord >> 56);
int sum = byte1 + byte2 + byte3 + byte4 + byte5 + byte6 + byte7 + byte8;
請添加您的代碼和渴望的結果 – tim
單個8字節整數? – Jiminion
'psadbw'其中操作數爲零。 – harold