COMISS、VUCOMISS等x86指令中字母"i"的含义是什么?
SSE/AVX浮点比较指令中“i”的含义
不管是SSE1的comiss/ucomiss,还是AVX扩展的vcomiss/vucomiss,指令名里的**“i”都对应英文“Implicit”(隐式)**,具体细节如下:
- 这类指令继承自x87浮点指令集的
fcomi/fucomi设计逻辑,它们会隐式将xmm0(SSE)或xmm0/ymm0(AVX)作为第一个比较操作数,第二个操作数才是你显式指定的寄存器或内存地址。 - 对比不带“i”的老式浮点比较指令(比如x87的
fcom),带“i”的版本会直接把比较结果写入EFLAGS寄存器,不需要额外指令去读取浮点状态字,这也是“隐式”特性带来的操作简化。
补充指令前缀含义的快速梳理:
u:代表“Unordered”(无序),允许比较包含NaN的操作数;v:AVX指令的标识,属于AVX扩展的指令格式(即使是标量指令也会带这个前缀);ss:代表“Scalar Single-Precision”(标量单精度)。
内容的提问来源于stack exchange,提问作者user27532204
相关产品推荐
相关产品推荐

