Расширения SSE/AVX/AVX2 предоставляют ряд инструкций для преобразования чисел с плавающей точкой в целые числа и наоборот:
cvtdq2pd
: преобразует два двойных слова со знаком в два числа с плавающей точкой двойной точности
cvtdq2pd xmmdest, xmmsrc/mem64
vcvtdq2pd
: преобразует два двойных слова со знаком в два числа с плавающей точкой двойной точности (результат в XMM)
vcvtdq2pd xmmdest, xmmsrc/mem64
либо преобразует 4 двойных слова со знаком в 4 числа с плавающей точкой двойной точности (результат в YMM)
vcvtdq2pd ymmdest, xmmsrc/mem128
cvtdq2ps
: преобразует 4 двойных слова со знаком в 4 числа с плавающей точкой одинарной точности
cvtdq2ps xmmdest, xmmsrc/mem128
vcvtdq2ps
: преобразует 4 двойных слова со знаком в 4 числа с плавающей точкой одинарной точности
vcvtdq2ps xmmdest, xmmsrc/mem128
Другая форма инструкции преобразует 8 двойных слова со знаком в 8 чисел с плавающей точкой одинарной точности
vcvtdq2ps ymmdest, ymmsrc/mem256
cvtpd2dq
: преобразует два числа с плавающей точкой двойной точности в два двойных слова со знаком
cvtpd2dq xmmdest, xmmsrc/mem128
vcvtpd2dq
: преобразует два числа с плавающей точкой двойной точности в два двойных слова со знаком (результат в XMM)
vcvtpd2dq xmmdest, xmmsrc/mem128
Другая форма преобразует преобразует 4 числа с плавающей точкой двойной точности в 4 двойных слова со знаком (результат в YMM)
vcvtpd2dq xmmdest, ymmsrc/mem256
cvtpd2ps
: преобразует два числа с плавающей точкой двойной точности в два числа с плавающей точкой одинарной точности
cvtpd2ps xmmdest, xmmsrc/mem128
vcvtpd2ps
: преобразует два числа с плавающей точкой двойной точности в два числа с плавающей точкой одинарной точности
vcvtpd2ps xmmdest, xmmsrc/mem128
Другая форма преобразует преобразует 4 числа с плавающей точкой двойной точности в 4 числа с плавающей точкой одинарной точности
vcvtpd2ps xmmdest, ymmsrc/mem256
cvtps2dq
: преобразует 4 числа с плавающей точкой одинарной точности в 4 двойных слова со знаком
cvtps2dq xmmdest, xmmsrc/mem128
vcvtps2dq
: преобразует 4 числа с плавающей точкой одинарной точности в 4 двойных слова со знаком
vcvtps2dq xmmdest, xmmsrc/mem128
Другая форма преобразует 8 чисел с плавающей точкой одинарной точности в 8 двойных слов со знаком
vcvtps2dq ymmdest, ymmsrc/mem256
cvtps2pd
: преобразует два числа с плавающей точкой одинарной точности в два числа с плавающей точкой двойной точности
cvtps2pd xmmdest, xmmsrc/mem64
vcvtps2pd
: преобразует два числа с плавающей точкой одинарной точности в два числа с плавающей точкой двойной точности
vcvtps2pd xmmdest, xmmsrc/mem64
другая форма преобразует 4 числа с плавающей точкой одинарной точности в 4 числа с плавающей точкой двойной точности
vcvtps2pd ymmdest, xmmsrc/mem128
cvttpd2dq
: преобразует два числа с плавающей точкой двойной точности в два двойных слова со знаком
cvttpd2dq xmmdest, xmmsrc/mem128
vcvttpd2dq
: преобразует два числа с плавающей точкой двойной точности в два двойных слова со знаком
vcvttpd2dq xmmdest, xmmsrc/mem128
другая форма преобразует 4 числа с плавающей точкой двойной точности в 4 двойных слова со знаком
vcvttpd2dq xmmdest, ymmsrc/mem256
cvttps2dq
: преобразует 4 числа с плавающей точкой одинарной точности в 4 двойных слова со знаком
cvttps2dq xmmdest, xmmsrc/mem128
vcvttps2dq
: преобразует 4 числа с плавающей точкой одинарной точности в 4 двойных слова со знаком
vcvttps2dq xmmdest, xmmsrc/mem128
другая форма преобразует 8 чисел с плавающей точкой одинарной точности в 8 двойных слов со знаком
vcvttps2dq ymmdest, ymmsrc/mem256