Bik*_*eev 3 floating-point assembly sse avx denormal-numbers
出于某种原因,有时在我的程序中我看到
cmpeqpd xmm3,xmm0
Run Code Online (Sandbox Code Playgroud)
where xmm0 == {0x2cd000000000, 0x2cd000000000}
andxmm3 == {0x0, 0x2011d0800000000}
恰好{0xffffffffffffffff, 0x0}在 xmm3 中返回,这是错误的,因为(double)0x0不等于(double)0x2cd000000000.
我注意到它只是偶尔发生。我已经用 rr 记录了程序的执行,以便一致地重现它。有趣的是,在一个超级简化的简单程序中,我无法再重现这个问题。我想知道,是否有任何隐藏的微架构状态可以改变 cmpeqpd (cmppd) 行为?
请注意,我检查了相应 ymm 寄存器中的高 128 位是否为零。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |