ロード命令などVPGATHERDD
などが集まっているAVX2の組み込み関数のドキュメントを見て:ドキュメントから私には明らかではないが、何AVX2は、命令を集める - ロードアドレス計算
__m128i _mm_i32gather_epi32 (int const * base, __m128i index, const int scale);
が算出したロードアドレスがあるされているかどうかを
load_addr = base + index[i] * scale; // (1) element addressing ?
か:要素アドレスまたはバイトアドレス、すなわち要素i
のためのロードアドレスであります: Intel docsから
load_addr = (char *)base + index[i] * scale; // (2) byte addressing ?
それはあるかもしれないように、それは(2)に見えますが、これは集まっ負荷の最小要素サイズが32ビットであることを考えるとあまり意味がありません - なぜあなたはずれたアドレスからロードしたいと思います(すなわち、スケールを使用< 4)?
OK - ありがとう - 私はそれが意味をなさないと思うし、ドキュメントと一貫している。あなたはロードに関する良い点を立てます。 3バイトのピクセル値。 –