0

我想知道vminnm是如何工作的。由于伪代码有点不清楚,我无法理解这条指令的确切功能是什么。

vminnm.f32  d3, d5, d13

在哪里

d5  = 0xffd5432100000000
d13 = 0x7ff0056000000000

结果:

d3  = 0x7fc0000000000000

我们是如何得出这个结果的?

4

1 回答 1

1

这是该指令的 ARM 参考手册中的定义。(NaN is Not a Number,这意味着该值不是有效的浮点数。)

VMINNM

该指令确定浮点最小数。它按照 IEEE754-2008 规范处理 NaN。当一个操作数是数字而另一个是安静的 NaN 时,它返回数字操作数,否则结果与浮点 VMIN 相同。该指令不是有条件的。

vminnm.f32  d3, d5, d13

在您的示例中,比较d5d13中的值,比较结果存储在d3中。考虑到您正在处理向量,并且每个向量中有两个元素,每个元素都是 32 位浮点数。

0xffd5432100000000是一个有效的 64 位双精度数,但不是两个 32 位浮点数,即0xffd54321不是数字0x00000000是 0,所以当您比较这些值时,您需要了解您所使用的值的宽度比较。(您可以在此处检查浮点值。)

于 2018-06-23T18:07:39.260 回答