次のボトルネック関数があります。
typedef unsigned char byte;
void CompareArrays(const byte * p1Start, const byte * p1End, const byte * p2, byte * p3)
{
const byte b1 = 128-30;
const byte b2 = 128+30;
for (const byte * p1 = p1Start; p1 != p1End; ++p1, ++p2, ++p3) {
*p3 = (*p1 < *p2 ) ? b1 : b2;
}
}
C++
コードを SSE2 組み込み関数に置き換えたい。試してみ_mm_cmpgt_epi8
ましたが、符号付き比較を使用しました。符号なしの比較が必要です。
私の問題を解決するためのトリック (SSE、SSE2、SSSE3) はありますか?
注: この場合、マルチスレッドを使用したくありません。