lvqcl
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 1. комментарий "// in = min(max(in, -0.1f), D24MAX)" - опечатка? Имеется в виду "-1.0f" ? 2. обычно деление заметно тормознее умножения, поэтому текущий код __tmpOut = _mm_div_ps(__tmpOut, __32bitScalar); должен быть медленнее, чем static const __m128 inverse_32bitScalar = _mm_set_ps1(1.0f/INT32_PEAK); ... __tmpOut = _mm_mul_ps(__tmpOut, inverse_32bitScalar); 3. Тот факт, что float -> int16 быстрее, чем float -> int32, наводит на мысль, что float <--> int32 можно ускорить, развернув цикл. |