4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Nehalem<br />
FPREM 25 25 x x x float 14<br />
FPREM1 35 35 x x x float 19<br />
FRNDINT 17 17 x x x float 22<br />
Math<br />
FSCALE 24 24 x x x float 12<br />
FXTRACT 17 17 x x x float 13<br />
FSQRT 1 1 1 float ~27<br />
FSIN ~100 ~100 x x x float 40-100<br />
FCOS ~100 ~100 x x x float 40-100<br />
FSINCOS ~100 ~100 x x x float ~110<br />
F2XM1 19 19 x x x float 58<br />
FYL2X FYL2XP1 ~55 ~55 x x x float ~80<br />
FPTAN ~100 ~100 x x x float ~115<br />
FPATAN ~82 ~82 x x x float ~120<br />
Other<br />
FNOP 1 1 1 float 1<br />
WAIT 2 2 x x x float 1<br />
FNCLEX 3 3 x x float 17<br />
FNINIT ~190 ~190 x x x float 77<br />
Notes:<br />
d) Round divisors or low precision give low values.<br />
f) Resolved by register renaming. Generates no μops in the unfused domain.<br />
g) SSE3 instruction set.<br />
Integer MMX and XMM instructions<br />
<strong>Instruction</strong> Operands μops μops unfused domain DoLatenReci- fused<br />
maincyprocaldomain p015 p0 p1 p5 p2 p3 p4<br />
throughput<br />
Move instructions<br />
MOVD k) r32/64,(x)mm 1 1 x x x int 1+1 0.33<br />
MOVD k) m32/64,(x)mm 1 1 1 3 1<br />
MOVD k) (x)mm,r32/64 1 1 x x x ivec 1+1 0.33<br />
MOVD k) (x)mm,m32/64 1 1 2 1<br />
MOVQ (x)mm, (x)mm 1 1 x x x ivec 1 0.33<br />
MOVQ (x)mm,m64 1 1 2 1<br />
MOVQ m64, (x)mm 1 1 1 3 1<br />
MOVDQA xmm, xmm 1 1 x x x ivec 1 0.33<br />
MOVDQA xmm, m128 1 1 2 1<br />
MOVDQA m128, xmm 1 1 1 3 1<br />
MOVDQU xmm, m128 1 1 1 2 1<br />
MOVDQU m128, xmm 1 1 1 1 3 1<br />
LDDQU g) xmm, m128 1 1 1 2 1<br />
MOVDQ2Q mm, xmm 1 1 x x x ivec 1 0.33<br />
MOVQ2DQ xmm,mm 1 1 x x x ivec 1 0.33<br />
MOVNTQ m64,mm 1 1 1 ~270 2<br />
MOVNTDQ m128,xmm 1 1 1 ~270 2<br />
Page 112