我知道3种方法,但据我所知,通常只使用前2种方法:
使用andps
或andnotps
屏蔽掉符号位。
将值从零减去否定,然后得到原始的最大值并否定。
subps
完成才能使用maxps
指令。与选项2类似,将原始值从零减去否定,然后使用andps
将结果“按位”和原始值相加。我运行了一个测试,将其与方法2进行比较,除了处理NaN
时,它似乎与方法2的行为相同,在这种情况下,结果将与方法2的结果不同NaN
andps
通常比maxps
快。NaN
时,这会导致任何意外行为吗?也许不是,因为NaN
仍然是NaN
,即使它是NaN
的不同值,对吧?欢迎提出想法和意见。