Два связанных вопроса.
Это то, что мой код должен делать с довольно большим объемом данных. Это делается во внутренних циклах, и производительность важна.
- Преобразование и массив __int32 в двойники (или преобразование __m128i в два __m128d).
- Преобразование и массив чисел с плавающей точкой в двойники (или преобразование __m128 в два __m128d).
Мне нужна функция со следующими сигнатурами:
void convert_int_to_double(__int32 const * input, double * output);
void convert_float_to_double(float const * input, double * output);
Указатели ввода и вывода выровнены, а количество элементов кратно 4. Основная проблема заключается в том, как быстро распаковать __m128 в два __m128d.