Results

Results for the following processors are shown below:

Intel Core2 = Intel Core2 Duo E6400, "Conroe", family 6, model 15, stepping 6

Intel P4 = Intel Xeon 2.80GHz, "Prestonia", family 15, model 2, stepping 7

AMD K8 = AMD Athlon 64 X2 4600+, "Manchester", family 15, model 43, stepping 1

AMD K7 = AMD Athlon XP 2600+, "Thoroughbred", family 6, model 8, stepping 1 (note: this cpu does not support SSE2, but appears to run some SSE2 opcodes that have corresponding MMX opcodes without error, hence the table entries)

InstructionLatencyThroughput (Reciprocal)
AMD K7AMD K8Intel Core2Intel P4 (F2)AMD K7AMD K8Intel Core2Intel P4 (F2)
psignb xmm, xmm--1---1-
psignw xmm, xmm--1---1-
psignd xmm, xmm--1---1-
pshufb xmm, xmm--3---2-
pmulhrsw xmm, xmm--3---1-
pmaddubsw xmm, xmm--3---1-
phsubw xmm, xmm--6---4-
phsubsw xmm, xmm--6---4-
phsubd xmm, xmm--5---3-
phaddw xmm, xmm--6---4-
phaddsw xmm, xmm--6---4-
phaddd xmm, xmm--5---3-
palignr xmm, xmm, imm8--2---1-
pabsb xmm, xmm--1---0.5-
pabsw xmm, xmm--1---0.5-
pabsd xmm, xmm--1---0.5-
addsubpd xmm, xmm-43--21-
addsubps xmm, xmm-43--21-
haddpd xmm, xmm-45--22-
haddps xmm, xmm-49--23-
hsubpd xmm, xmm-45--22-
hsubps xmm, xmm-49--23-
movddup xmm, xmm-21--11-
movshdup xmm, xmm-21--21-
movsldup xmm, xmm-21--21-
lddqu xmm, xmm--------
cvtdq2ps xmm, xmm-49.05314.00-46.0512
cvtps2dq xmm, xmm-46.12313.93-43.1312
cvttps2dq xmm, xmm-46.12313.97-43.1312
movdqa xmm, xmm22160.510.331
movdqu xmm, xmm22160.510.331
movq xmm, xmm-212-10.332
packsswb xmm, xmm22440.51.522
packssdw xmm, xmm22440.51.522
packuswb xmm, xmm22440.51.522
paddb xmm, xmm2.102120.5112
paddw xmm, xmm22120.5112
paddd xmm, xmm22120.5112
paddsb xmm, xmm22120.5112
paddsw xmm, xmm22120.5112
paddusb xmm, xmm2.102120.5112
paddusw xmm, xmm2.102120.5112
pand xmm, xmm2.102120.5112
pandn xmm, xmm22120.5112
pavgb xmm, xmm22120.5112
pavgw xmm, xmm22120.5112
pcmpeqb xmm, xmm2.102120.5112
pcmpeqd xmm, xmm22120.5112
pcmpeqw xmm, xmm22120.5112
pcmpgtb xmm, xmm2.102120.5112
pcmpgtd xmm, xmm22120.5112
pcmpgtw xmm, xmm22120.5112
pmaddwd xmm, xmm33361212
pmaxub xmm, xmm22120.5112
pmaxsw xmm, xmm22120.5112
pminub xmm, xmm22120.5112
pminsw xmm, xmm22120.5112
pmulhuw xmm, xmm33361212
pmulhw xmm, xmm33361212
pmullw xmm, xmm33361212
pmuludq xmm, xmm-336-212
por xmm, xmm22120.5112
psadbw xmm, xmm3.193341212
pshufd xmm, xmm, imm823440.51.512
pshufhw xmm, xmm, imm822120.5112
pshuflw xmm, xmm, imm822120.5112
psllw xmm, xmm22220.5112
pslld xmm, xmm22220.5112
psllq xmm, xmm22220.5112
psraw xmm, xmm22220.5112
psrad xmm, xmm22220.5112
psrlw xmm, xmm22220.5112
psrld xmm, xmm22220.5112
psrlq xmm, xmm22220.5112
psubb xmm, xmm22120.5112
psubw xmm, xmm22120.5112
psubd xmm, xmm22120.5112
psubsb xmm, xmm22120.5112
psubsw xmm, xmm22120.5112
psubusb xmm, xmm22120.5112
psubusw xmm, xmm22120.5112
punpckhbw xmm, xmm22440.5122
punpckhwd xmm, xmm2.102440.5122
punpckhdq xmm, xmm22440.5122
punpckhqdq xmm, xmm-214-112
punpcklbw xmm, xmm22420.5122
punpcklwd xmm, xmm22420.5122
punpckldq xmm, xmm22420.5122
punpcklqdq xmm, xmm-0.512-0.512
pxor xmm, xmm22120.5112
paddq mm, mm-222-0.511
psubq mm, mm-222-0.511
pmuludq mm, mm-336-111
addpd xmm, xmm-434-212
addsd xmm, xmm-434-112
andnpd xmm, xmm-212-212
andpd xmm, xmm-212-212
cmppd xmm, xmm, imm8-234-212
cmpsd xmm, xmm, imm8-234-112
comisd xmm, xmm-113-113
cvtdq2pd xmm, xmm-50.10410-46.1214
cvtpd2dq xmm, xmm-7410-3.2412
cvtpd2ps xmm, xmm-8410-3.2412
cvtps2pd xmm, xmm-43.07213.32-41.0722
cvtsd2ss xmm, xmm-8412.01-214
cvtss2sd xmm, xmm-41.5628-39.5722
cvttpd2dq xmm, xmm-7410-3.2412
divpd xmm, xmm-33.88669.07-33.88569.07
divsd xmm, xmm-19.93638.03-16.94538.04
maxpd xmm, xmm-234-212
maxsd xmm, xmm-234-112
minpd xmm, xmm-234-212
minsd xmm, xmm-234-112
movapd xmm, xmm-216-10.331
movsd xmm, xmm-214-0.512
movupd xmm, xmm-216-10.331
mulpd xmm, xmm-456-212
mulsd xmm, xmm-456-112
orpd xmm, xmm-212-212
shufpd xmm, xmm, imm8-2.4914-2.4912
sqrtpd xmm, xmm-47.83669.07-47.83569.07
sqrtsd xmm, xmm-26.90638.04-23.91538.04
subpd xmm, xmm-434-212
subsd xmm, xmm-434-112
ucomisd xmm, xmm-113-113
unpckhpd xmm, xmm-214-112
unpcklpd xmm, xmm-0.512-0.512
xorpd xmm, xmm-212-212
addps xmm, xmm44342.12212
addss xmm, xmm44341112
andnps xmm, xmm22122212
andps xmm, xmm22122212
cmpps xmm, xmm--------
cmpss xmm, xmm--------
comiss xmm, xmm1.141131.14113
divps xmm, xmm32.1929.89639.0432.4529.89539.04
divss xmm, xmm17.3115.94623.0213.4712.95523.02
maxps xmm, xmm22342212
maxss xmm, xmm2.102341112
minps xmm, xmm22342212
minss xmm, xmm22341112
movaps xmm, xmm22161.1510.331
movhlps xmm, xmm0.50.5140.50.512
movlhps xmm, xmm0.50.5120.50.512
movss xmm, xmm22120.50.512
movups xmm, xmm22161.1410.331
mulps xmm, xmm44462212
mulss xmm, xmm4.214461112
orps xmm, xmm22122212
rcpps xmm, xmm33342224
rcpss xmm, xmm33341123
rsqrtps xmm, xmm33342.12224
rsqrtss xmm, xmm33341123
shufps xmm, xmm, imm82.612.49442.612.4912
sqrtps xmm, xmm38.3435.87639.0438.5935.87539.04
sqrtss xmm, xmm20.0418.93623.0216.6815.94523.02
subps xmm, xmm44342212
subss xmm, xmm44341112
ucomiss xmm, xmm1.141131.14113
unpckhps xmm, xmm33242212
unpcklps xmm, xmm33222.12212
xorps xmm, xmm22122212
pavgb mm, mm22120.50.50.51
pavgw mm, mm2.102120.50.50.51
pmaxub mm, mm22120.50.50.51
pmaxsw mm, mm22120.50.50.51
pminub mm, mm22120.50.50.51
pminsw mm, mm22120.50.50.51
pmulhuw mm, mm3.193361111
psadbw mm, mm33341111
movq mm, mm22160.50.50.331
packsswb mm, mm22120.50.511
packssdw mm, mm22120.50.511
packuswb mm, mm2.102120.50.511
paddb mm, mm22120.50.50.51
paddw mm, mm22120.50.50.51
paddd mm, mm22120.50.50.51
paddsb mm, mm2.102120.50.50.51
paddsw mm, mm2.182120.50.50.51
paddusb mm, mm22120.50.50.51
paddusw mm, mm22120.50.50.51
pand mm, mm22120.50.50.361
pandn mm, mm2.102120.50.50.361
pcmpeqb mm, mm22120.50.50.51
pcmpeqd mm, mm22120.50.50.51
pcmpeqw mm, mm22120.50.50.51
pcmpgtb mm, mm22120.50.50.51
pcmpgtd mm, mm2.102120.50.50.51
pcmpgtw mm, mm22120.50.50.51
pmaddwd mm, mm3.193361111
pmulhw mm, mm33361111
pmullw mm, mm33361111
por mm, mm22120.50.50.361
psllq mm, mm22120.50.511
psllw mm, mm22120.50.511
pslld mm, mm22120.50.511
psraw mm, mm22120.50.511
psrad mm, mm22120.50.511
psrlq mm, mm22120.50.511
psrlw mm, mm22120.50.511
psrld mm, mm22120.50.511
psubb mm, mm2.102120.50.50.51
psubw mm, mm22120.50.50.51
psubd mm, mm22120.50.50.51
psubsb mm, mm22120.50.50.51
psubsw mm, mm22120.50.50.51
psubusb mm, mm2.102120.50.50.51
psubusw mm, mm22120.50.50.51
punpckhbw mm, mm22120.50.511
punpckhwd mm, mm22120.50.511
punpckhdq mm, mm22120.50.511
punpcklbw mm, mm2.102120.50.511
punpcklwd mm, mm22120.50.511
punpckldq mm, mm22120.50.511
pxor mm, mm22120.50.50.361
pavgusb mm, mm22--0.50.5--
pf2id mm, mm55--11--
pfacc mm, mm44--11--
pfadd mm, mm44--11--
pfcmpeq mm, mm22--11--
pfcmpge mm, mm22--11--
pfcmpgt mm, mm22--11--
pfmax mm, mm2.102--11--
pfmin mm, mm22--11--
pfmul mm, mm44--11--
pfrcp mm, mm33--11--
pfrcpit1 mm, mm4.204--11--
pfrcpit2 mm, mm44--11--
pfrsqit1 mm, mm4.204--11--
pfrsqrt mm, mm33--11--
pfsub mm, mm44--11--
pfsubr mm, mm4.204--11--
pi2fd mm, mm55--11--
pmulhrw mm, mm33--11--
pf2iw mm, mm5.305--11--
pfnacc mm, mm4.214--11--
pfpnacc mm, mm4.214--11--
pi2fw mm, mm55--11--
pswapd mm, mm-2---0.5--
bswap r64-0.331--0.331-
bswap r320.380.33110.380.3311
cmove r64, r64-12--0.332-
cmove r32, r3211260.450.3311.25
cmovne r64, r64-12--0.332-
cmovne r32, r3211260.450.3311.25
cmpxchg r64, r64-28--27-
cmpxchg r32, r323.192.168932.167.539
mov r64, r64-11--0.330.33-
mov r32, r321110.50.380.330.330.33
xadd r64, r64-22.12--12-
xadd r32, r3222211.14121
xchg r64, r64-1.072--21.33-
xchg r32, r321.1812.1411.87211
adc r64, r64-12--12-
adc r32, r3211271127
add r64, r64-11--0.331-
add r32, r321110.50.380.330.470.35
cmp r64, r64-0.331--0.331-
cmp r32, r320.380.3310.330.380.3310.33
dec r64-0.330.33--0.330.33-
dec r320.330.330.330.660.330.330.330.66
div r64, r64--------
div r32, r32--------
idiv r64, r64--------
idiv r32, r32--------
imul r64, r64-45--45-
imul r32, r3243314.1343314.13
inc r64-0.330.33--0.330.33-
inc r320.330.330.330.660.330.330.330.66
mul r64, r64--------
mul r32, r32--------
neg r64, r64--------
neg r32, r32--------
sbb r64, r64-12--12-
sbb r32, r3211271127
sub r64, r64-11--0.331-
sub r32, r321110.50.380.330.470.35
and r64, r64-11--0.331-
and r32, r321110.50.380.330.470.5
not r64-0.330.33--0.330.33-
not r320.380.330.330.50.380.330.330.5
or r64, r64-11--0.331-
or r32, r321110.50.380.330.470.5
xor r64, r64-11--0.331-
xor r32, r321110.50.380.330.470.5
rcl r64, imm8-310--310-
rcl r32, imm8431018.98431018.98
rcr r64, imm8-310--310-
rcr r32, imm83.6231018.983.5631018.98
rol r64, imm8-0.331--0.331-
rol r32, imm80.440.33140.440.3314
ror r64, imm8-0.331--0.331-
ror r32, imm80.440.33140.440.3314
sal r64, imm8-0.330.5--0.330.5-
sal r32, imm80.440.330.510.440.330.51
sar r64, imm8-0.330.5--0.330.5-
sar r32, imm80.440.330.510.440.330.51
shl r64, imm8-0.330.5--0.330.5-
shl r32, imm80.440.330.510.440.330.51
shr r64, imm8-0.330.5--0.330.5-
shr r32, imm80.440.330.510.440.330.51
bsf r64, r64-92--91-
bsf r32, r3278287.51812
bsr r64, r64-10.962--101-
bsr r32, r32910.962891012
bt r64, r64-0.331--0.331-
bt r32, r320.440.33160.440.3316
btc r64, r64-21--0.661-
btc r32, r322.102161.140.6616
btr r64, r64-21--0.661-
btr r32, r3222161.140.6616
bts r64, r64-21--0.661-
bts r32, r3222161.140.6616
test r64, r64-0.331--0.331-
test r32, r320.380.3310.50.380.3310.5