x86 не имеет инструкции SSE для преобразования из unsigned int32 в числа с плавающей запятой. Какая последовательность инструкций была бы наиболее эффективной для достижения этого?
РЕДАКТИРОВАТЬ: Чтобы уточнить, я хочу выполнить векторную последовательность следующей скалярной операции:
unsigned int x = ...
float res = (float)x;
EDIT2: Вот наивный алгоритм для выполнения скалярного преобразования.
unsigned int x = ...
float bias = 0.f;
if (x > 0x7fffffff) {
bias = (float)0x80000000;
x -= 0x80000000;
}
res = signed_convert(x) + bias;