我想知道vminnm
是如何工作的。由于伪代码有点不清楚,我无法理解这条指令的确切功能是什么。
vminnm.f32 d3, d5, d13
在哪里
d5 = 0xffd5432100000000
d13 = 0x7ff0056000000000
结果:
d3 = 0x7fc0000000000000
我们是如何得出这个结果的?
这是该指令的 ARM 参考手册中的定义。(NaN is Not a Number,这意味着该值不是有效的浮点数。)
VMINNM
该指令确定浮点最小数。它按照 IEEE754-2008 规范处理 NaN。当一个操作数是数字而另一个是安静的 NaN 时,它返回数字操作数,否则结果与浮点 VMIN 相同。该指令不是有条件的。
vminnm.f32 d3, d5, d13
在您的示例中,比较d5和d13中的值,比较结果存储在d3中。考虑到您正在处理向量,并且每个向量中有两个元素,每个元素都是 32 位浮点数。
值0xffd5432100000000是一个有效的 64 位双精度数,但不是两个 32 位浮点数,即0xffd54321不是数字,0x00000000是 0,所以当您比较这些值时,您需要了解您所使用的值的宽度比较。(您可以在此处检查浮点值。)