Opcode Type Mnemonic Description
Arithmetic PADD[B,W,D]..........Packed add with wraparound on [byte, word, doubleword]
PADDS[B,W]...........Packed add signed with saturation on [byte, word]
PADDUS[B,W] .........Packed add unsigned with saturation on [byte,word]
PSUB[B,W,D] .........Packed subtract with wraparound on [byte, word, doubleword]
PSUBS[B,W] ..........Packed subtract signed with saturation on [byte,word]
PSUBUS [B,W] ........Packed subtract unsigned with saturation on [byte,word]
PMULHW...............Packed multiply high on words
PMULLW...............Packed multiply low on words
PMADDWD..............Packed multiply on words and add resulting pairs
Comparison PCMPEQ[B,W,D]........Packed compare for equality [byte, word, doubleword]
PCMPGT[B,W,D]........Packed compare greater than [byte, word, doubleword]
Conversion PACKUSWB.............Pack words into byte (unsigned saturation)
PACKSS[WB,DW]........Pack [words into bytes, doublewords into words]
signed with saturation
PUNPCKH[BW,WD,DQ]....Unpack high-order [bytes, words, doublewords]
from MMX register
PUNCKL[BW,WD,DQ].....Unpack low-order [bytes, words, doublewords]
from MMX register
Logical PAND.................Packed bitwise AND
PANDN................Packed bitwise AND NOT
POR..................Packed bitwise OR
PXOR.................Packed bitwise XOR
Shift PSLL[W,D,Q]..........Packed shift left logical [word, doubleword, quadword]
by MMX register or immediate value
PSRL[W,D,Q]..........Packed shift right logical [word, doubleword, quadword]
by MMX register or immediate value
PSRA[W,D]............Packed shift left arithmetic [word, doubleword]
by MMX register or immediate value
Data transfer MOV[D,Q,]............Move [doubleword, quadword]
to or from MMX register
FP/MMX State EMMS.................Empty MMX state