是否有任何函数可以控制vcvt_s32_f32固有的舍入模式?我要使用朝偶数取整,而不是朝负无穷大取整。

谢谢。

最佳答案

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

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



归一化的数字刷新为零
仅支持默认的NaN
舍入到最接近*舍入模式
为所有浮点异常选择了未捕获的异常处理



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

ARMv8架构引入了很多舍入和转换指令
使用特定的舍入模式,但我怀疑在这种情况下这没有太大帮助。如果要在ARMv7和更早的版本上以不同的舍入模式进行转换,则必须使用VFP(如果有)或进行一些位破解以手动实现它。

* ARM ARM使用IEEE 754-1985术语,因此更精确地说这是四舍五入,甚至连

10-08 07:11