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