根据这个reference,我可以通过执行以下操作来比较xmm1和xmm2是否相等:
cmpss xmm2, xmm1, 0
但是,似乎没有设置零标志。相反,结果存储在xmm2中。如果je
或jz
等指令依赖于零标记,我如何根据它们是否相等进行跳转?
答案 0 :(得分:3)
cmpss
和它的朋友更倾向于给你掩码,你可以做无分支计算,你可以将它提取到GPR然后测试它等等但是这些都有点冗长和不必要的。
如果你想分支,ucomiss
(或comiss
,取决于你想用NaN做什么)是更合适的。也许是这样的:
ucomiss xmm2, xmm1
jp unordered
jz equal