ビデオ アプリケーションで Intel MMX および SSE 命令を使用する方法を学習しています。8 バイトの単語があり、8 バイトすべてを加算して、結果として 1 つの整数を生成したいと考えています。簡単な方法は一連の 7 回のシフトと加算ですが、これでは時間がかかります。これを行う最速の方法は何ですか? このための MMX または SSE 命令はありますか?
これはそれを行う遅い方法です
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;