ARM中的VMINNM指令

ARM中的VMINNM指令,arm,armv8,Arm,Armv8,我想知道vminnm是如何工作的。由于伪代码有点不清楚,我无法理解此指令的确切功能 vminnm.f32 d3, d5, d13 在哪里 d5 = 0xffd5432100000000 d13 = 0x7ff0056000000000 结果: d3 = 0x7fc0000000000000 我们是如何得出这个结果的?这是ARM参考手册中关于该说明的定义。 (不是数字,这意味着该值不是有效的浮点数。) 维明姆 此指令确定浮点数的最小值。 它根据IEEE754-2008规范处理NAN。当

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

vminnm.f32  d3, d5, d13
在哪里

d5  = 0xffd5432100000000
d13 = 0x7ff0056000000000
结果:

d3  = 0x7fc0000000000000

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

这是ARM参考手册中关于该说明的定义。 (不是数字,这意味着该值不是有效的浮点数。)

维明姆

此指令确定浮点数的最小值。 它根据IEEE754-2008规范处理NAN。当一个 操作数是数字,另一个是安静的NaN,但除此之外,结果与浮点VMIN相同。 此指令不是有条件的

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


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

根据文档,应该计算d3和d5的最小值,并在d13上返回结果。所以,这对我来说毫无意义。我也有同样的怀疑。但是模拟器显示了这个结果,我确信模拟器是正确的。你从哪里得到这个伪代码的?您是否编译并检查了结果?你用了哪个模拟器?它是否支持高级SIMD?
vminnm.f32  d3, d5, d13