Я пытаюсь оптимизировать функцию, используя SSE2.Мне интересно, смогу ли я подготовить данные для моего кода сборки лучше, чем этот способ.Мои исходные данные представляют собой набор неподписанных символов из pSrcData.Я копирую его в этот массив с плавающей точкой, так как мои вычисления должны выполняться с плавающей точкой.
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 в плавающее и сохранить его в vVectX?
Спасибо!