キーのピクセル数が低/高範囲にあることを見つけるためのこのコードがあります。ローハイ マトリックスは、入力ビッグ マトリックスから生成されます。一致するピクセルの数が 150 (256) を超える場合、低/高の座標を出力する必要があります。
int8_t high[8192][8192];
int8_t low[8192][8192];
int8_t key[16][16]
for (int i = 0; i <= 8192 - 16; i++)
for (int j = 0; j <= 8192 - 16; j++)
{
char *kLoc = key[ii];
char *lLoc = low[i + ii] + j;
char *hLoc = high[i + ii] + j;
__m128i high, low, num;
low = _mm_loadu_si128((__m128i*)lLoc);
high = _mm_loadu_si128((__m128i*)hLoc);
num = _mm_loadu_si128((__m128i*)kLoc);
// Snip
}
これを改善できますか?
8 つの 128 ビット XMM レジスターと MMX レジスターがあることは理解していますが、使用可能な XMM レジスターは 3 つしか使用していません。すべてのレジスタを利用するようにコードを最適化できますか?