SSE2 を使用して関数を最適化しようとしています。アセンブリ コードのデータをこの方法よりも適切に準備できるかどうか疑問に思っています。私のソース データは、pSrcData からの符号なし文字の束です。計算は float で行う必要があるため、この float の配列にコピーします。
unsigned char *pSrcData = GetSourceDataPointer();
__declspec(align(16)) float vVectX[4];
vVectX[0] = (float)pSrcData[0];
vVectX[1] = (float)pSrcData[2];
vVectX[2] = (float)pSrcData[4];
vVectX[3] = (float)pSrcData[6];
__asm
{
movaps xmm0, [vVectX]
[...] // do some floating point calculations on float vectors using addps, mulps, etc
}
pSrcData の 1 バイトおきに float にキャストして vVectX に格納する、より迅速な方法はありますか?
ありがとう!