| 29.3 MMX instructions (PII and PIII) | |||||||||
| Instruction | Operands | micro-ops | delay | throughput | |||||
| p0 | p1 | p01 | p2 | p3 | p4 | ||||
| MOVD MOVQ | r,r | 1 | 2/1 | ||||||
| MOVD MOVQ | r64,m32/64 | 1 | 1/1 | ||||||
| MOVD MOVQ | m32/64,r64 | 1 | 1 | 1/1 | |||||
| PADD PSUB PCMP | r64,r64 | 1 | 1/1 | ||||||
| PADD PSUB PCMP | r64,m64 | 1 | 1 | 1/1 | |||||
| PMUL PMADD | r64,r64 | 1 | 3 | 1/1 | |||||
| PMUL PMADD | r64,m64 | 1 | 1 | 3 | 1/1 | ||||
| PAND PANDN POR PXOR | r64,r64 | 1 | 2/1 | ||||||
| PAND PANDN POR PXOR | r64,m64 | 1 | 1 | 1/1 | |||||
| PSRA PSRL PSLL | r64,r64/i | 1 | 1/1 | ||||||
| PSRA PSRL PSLL | r64,m64 | 1 | 1 | 1/1 | |||||
| PACK PUNPCK | r64,r64 | 1 | 1/1 | ||||||
| PACK PUNPCK | r64,m64 | 1 | 1 | 1/1 | |||||
| EMMS | 11 | 6 k) | |||||||
| MASKMOVQ d) | r64,r64 | 1 | 1 | 1 | 2-8 | 1/30-1/2 | |||
| PMOVMSKB d) | r32,r64 | 1 | 1 | 1/1 | |||||
| MOVNTQ d) | m64,r64 | 1 | 1 | 1/30-1/1 | |||||
| PSHUFW d) | r64,r64,i | 1 | 1 | 1/1 | |||||
| PSHUFW d) | r64,m64,i | 1 | 1 | 2 | 1/1 | ||||
| PEXTRW d) | r32,r64,i | 1 | 1 | 2 | 1/1 | ||||
| PISRW d) | r64,r32,i | 1 | 1 | 1/1 | |||||
| PISRW d) | r64,m16,i | 1 | 1 | 2 | 1/1 | ||||
| PAVGB PAVGW d) | r64,r64 | 1 | 1 | 2/1 | |||||
| PAVGB PAVGW d) | r64,m64 | 1 | 1 | 2 | 1/1 | ||||
| PMINUB PMAXUB PMINSW PMAXSW d) | r64,r64 | < /TD> | 1 | 1 | 2/1 | ||||
| PMINUB PMAXUB PMINSW PMAXSW d) | r64,m64 | 1 | 1 | 2 | 1/1 | ||||
| PMULHUW d) | r64,r64 | 1 | 3 | 1/1 | |||||
| PMULHUW d) | r64,m64 | 1 | 1 | 4 | 1/1 | ||||
| PSADBW d) | r64,r64 | 2 | 1 | 5 | 1/2 | ||||
| PSADBW d) | r64,m64 | 2 | 1 | 1 | 6 | 1/2 | |||
d) PIII only.
k) you may hide the delay by inserting other instructions between EMMS and any subsequent floating point instruction.