【发布时间】:2021-02-11 23:14:46
【问题描述】:
在带有 SSE 扩展的 x86 中,有没有办法将四个压缩单精度浮点值转换为四个双字?
最接近的指令是 CVTPS2PI,但它不能在两个 xmm 寄存器上执行,而应以CVTPS2PI MM, XMM/M64 给出。如果我想要<conversion_mnemonic> XMM, XMM/M128 之类的东西怎么办?
谢谢。 伊曼。
【问题讨论】:
-
结果应该是整数类型吗?
-
或许可以试试
cvtps2dq? -
感谢@fuz。 cvtps2dq 将完成这项工作,但要四个压缩的有符号双字。你知道无符号双字类型的类似指令吗?
-
如果你想要无符号整数,你应该在你的问题中指定。另外,你想要什么舍入和溢出行为?
-
谢谢@chtz。四舍五入:四舍五入到最接近的整数。溢出:实际上我没有使用大浮点数,它们都是正数,所以没关系。
标签: assembly x86-64 sse floating-point-conversion sse3