3

是否有任何函数可以控制 vcvt_s32_f32 内在的舍入模式?我想对偶数使用舍入而不是向负无穷大舍入。

谢谢。

4

1 回答 1

5

不,您不能更改舍入模式。

NEON 是为性能而非精度而设计的,因此与 VFP 相比受到限制。与 VFP 不同,它不是完整的 IEEE 754 实现,并且硬连线到某些设置 - 引用 ARM ARM:

  • 非规范化数字被刷新为零
  • 仅支持默认 NaN
  • Round to Nearest *已选择舍入模式
  • 为所有浮点异常选择未捕获的异常处理

浮点到整数转换的具体情况略有不同,VCVT在这种情况下指令的行为(对于 VFP 和 NEON)是忽略选定的舍入模式并始终向零舍入。使用所选舍入模式的VCVTR指令仅在 VFP 中可用。

ARMv8 架构引入了一大堆用于使用特定舍入模式的舍入和转换指令,但我怀疑这在这种特殊情况下并没有太大帮助。如果您想在 ARMv7 和更早版本的不同舍入模式下进行转换,则必须使用 VFP(如果可用)或一些位黑客来手动实现它。

* ARM ARM 使用 IEEE 754-1985 术语,所以更准确地说,这是四舍五入到最接近的,甚至

于 2014-09-23T20:59:37.473 回答