【发布时间】:2014-07-03 06:55:43
【问题描述】:
如何定义 ARM Neon 浮点到整数转换指令 vcvt.s32.f32 和 vcvt.u32.f32 在发生溢出时的行为?您能否依赖我在特定处理器上观察到的行为,即结果已饱和?任何指向官方文档的链接都非常感谢。
【问题讨论】:
如何定义 ARM Neon 浮点到整数转换指令 vcvt.s32.f32 和 vcvt.u32.f32 在发生溢出时的行为?您能否依赖我在特定处理器上观察到的行为,即结果已饱和?任何指向官方文档的链接都非常感谢。
【问题讨论】:
ARM Architecture Reference Manual 是此类问题的所有答案的来源。在 A8.8.305 节中它说:
浮点到整数运算使用向零舍入模式。
并在词汇表中阐明:
向零 (RZ) 模式舍入 意味着将结果四舍五入到最接近的可表示数字,该数字的大小不大于未四舍五入的结果。
(与 IEEE 754 中“向零舍入”的含义相同。)
血淋淋的细节在FPToFixed 和FPUnpack 的伪代码中。
所以,简而言之:是的,结果保证是饱和的。
【讨论】: