Arm 手臂霓虹灯将f32转换为s32,使圆形朝向偶数
是否有任何功能控制vcvt_s32_f32的舍入模式?我想用圆形表示偶数,而不是圆形表示负无穷大Arm 手臂霓虹灯将f32转换为s32,使圆形朝向偶数,arm,neon,bankers-rounding,Arm,Neon,Bankers Rounding,是否有任何功能控制vcvt_s32_f32的舍入模式?我想用圆形表示偶数,而不是圆形表示负无穷大 谢谢。不,您不能更改舍入模式 霓虹灯是为性能而不是精度而设计的,因此与VFP相比受到限制。与VFP不同,它不是完整的IEEE 754实现,并且硬连接到某些设置-引用ARM: 非规范化数字被刷新为零 仅支持默认的NAN “舍入到最近的*舍入”模式已选定 为所有浮点异常选择未限制的异常处理 浮点到整数转换的具体情况稍有不同,在这种情况下,VCVT指令的行为(对于VFP和NEON)是忽略所选的舍入模式
谢谢。不,您不能更改舍入模式 霓虹灯是为性能而不是精度而设计的,因此与VFP相比受到限制。与VFP不同,它不是完整的IEEE 754实现,并且硬连接到某些设置-引用ARM:
- 非规范化数字被刷新为零
- 仅支持默认的NAN
- “舍入到最近的*舍入”模式已选定
- 为所有浮点异常选择未限制的异常处理
VCVT
指令的行为(对于VFP和NEON)是忽略所选的舍入模式,并始终向零舍入。使用选定舍入模式的VCVTR
指令仅在VFP中可用
ARMv8体系结构引入了一整套舍入和转换指令
用于使用特定的舍入模式,但我怀疑这在这种特殊情况下没有多大帮助。如果您想在ARMv7和更早版本上以不同的舍入模式进行转换,则必须使用VFP(如果可用)或一些位攻击来手动实现
*ARM使用IEEE 754-1985术语,因此更准确地说,这是从圆到最近,与偶数相关我不太明白“从圆到偶数”你能举个例子说明它应该做什么吗?也许我可以为你写一个黑客程序。好的,我知道了。但是,我不知道如何处理1.0和-1.0。我的简单比特黑客算法会将它们分别设置为2和0。可以吗?我的意思是2.5必须是2,3.5必须是4等等。但是1和-1呢?他们甚至都不是。这就是我要问的。啊,仔细观察,这是VCVT指令的“总是向零舍入”行为,而不是具体的。不过,我认为这里的一切仍然适用。