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.