MMX™ Instruction Set Summary

The instructions and corresponding mnemonics in the table below are grouped by function categories.

If an instruction supports multiple data types-byte (B), word (W), doubleword (DW), or quadword (QW), the datatypes are listed in brackets. Only one data type may be chosen for a given instruction. For example, the base mnemonic PADD (packed add) has the following variations: PADDB, PADDW, and PADDD. The number of opcodes associated with each base mnemonic is listed.


Category
Mnemonic
Number of
Different Opcodes
Description
ArithmeticPADD[B,W,D]
3
Add with wrap-around on [byte, word, doubleword]
PADDS[B,W]
2
Add signed with saturation on [byte, word]
PADDUS[B,W]
2
Add unsigned with saturation on [byte, word]
PSUB[B,W,D]
3
Subtract with wrap-around on [byte, word, doubleword]
PSUBS[B,W]
2
Subtract signed with saturation on [byte, word]
PSUBUS[B,W]
2
Subtract unsigned with saturation on [byte, word]
PMULHW
1
Packed multiply high on words
PMULLW
1
Packed multiply low on words
PMADDWD
1
Packed multiply on words and add resulting pairs
ComparisonPCMPEQ[B,W,D]
3
Packed compare for equality [byte, word,doubleword]
PCMPGT[B,W,D]
3
Packed compare greater than [byte, word, doubleword]
ConversionPACKUSWB
1
Pack words into bytes (unsigned with saturation)
PACKSS[WB,DW]
2
Pack [words into bytes, doublewords into words] (signed with saturation)
PUNPCKH [BW,WD,DQ]
3
Unpack (interleave) high-order [bytes, words, doublewords] from MMXTM register
PUNPCKL [BW,WD,DQ]
3
Unpack (interleave) low-order [bytes, words, doublewords] from MMX register
LogicalPAND
1
Bitwise AND
PANDN
1
Bitwise AND NOT
POR
1
Bitwise OR
PXOR
1
Bitwise XOR
ShiftPSLL[W,D,Q]
6
Packed shift left logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value
PSRL[W,D,Q]
6
Packed shift right logical [word, doubleword, quadword] by amount specified in MMX register or by immediate value
PSRA[W,D]
4
Packed shift right arithmetic [word, doubleword] by amount specified in MMX register or by immediate value
Data TransferMOV[D,Q]
4
Move [doubleword, quadword] to MMX register or from MMX register
FP & MMX State Mgmt EMMS
1
Empty MMX state
1