03.03.2013 Views

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Merom<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 Unit LatenReci- fused<br />

cyprocal Move instructions<br />

domain<br />

p015 p0 p1 p5 p2 p3 p4<br />

throughput<br />

MOVD k) r32/64,(x)mm 1 1 x x x int 2 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 int 2 0.5<br />

MOVD k) (x)mm,m32/64 1 1 int 2 1<br />

MOVQ (x)mm, (x)mm 1 1 x x x int 1 0.33<br />

MOVQ (x)mm,m64 1 1 int 2 1<br />

MOVQ m64, (x)mm 1 1 1 3 1<br />

MOVDQA xmm, xmm 1 1 x x x int 1 0.33<br />

MOVDQA xmm, m128 1 1 int 2 1<br />

MOVDQA m128, xmm 1 1 1 3 1<br />

MOVDQU m128, xmm 9 4 x x x 1 2 2 3-8 4<br />

MOVDQU xmm, m128 4 2 x x 2 int 2-8 2<br />

LDDQU g) xmm, m128 4 2 x x 2 int 2-8 2<br />

MOVDQ2Q mm, xmm 1 1 x x x int 1 0.33<br />

MOVQ2DQ xmm,mm 1 1 x x x int 1 0.33<br />

MOVNTQ m64,mm 1 1 1 2<br />

MOVNTDQ m128,xmm 1 1 1 2<br />

PACKSSWB/DW PACK- mm,mm 1 1 1 int 1 1<br />

USWB<br />

mm,m64 1 1 1 1 int 1<br />

PACKSSWB/DW PACK- xmm,xmm 3 3 flt→int 3 2<br />

USWB<br />

xmm,m128 4 3 1 int 2<br />

PUNPCKH/LBW/WD/DQ mm,mm 1 1 1 int 1 1<br />

PUNPCKH/LBW/WD/DQ mm,m64 1 1 1 1 int 1<br />

PUNPCKH/LBW/WD/DQ xmm,xmm 3 3 flt→int 3 2<br />

PUNPCKH/LBW/WD/DQ xmm,m128 4 3 1 int 2<br />

PUNPCKH/LQDQ xmm,xmm 1 1 int 1 1<br />

PUNPCKH/LQDQ xmm, m128 2 1 1 int 1<br />

PSHUFB h) mm,mm 1 1 1 int 1 1<br />

PSHUFB h) mm,m64 2 1 1 1 int 1<br />

PSHUFB h) xmm,xmm 4 4 int 3 2<br />

PSHUFB h) xmm,m128 5 4 1 int 2<br />

PSHUFW mm,mm,i 1 1 1 int 1 1<br />

PSHUFW mm,m64,i 2 1 1 1 int 1<br />

PSHUFD xmm,xmm,i 2 2 x x 1 flt→int 3 1<br />

PSHUFD xmm,m128,i 3 2 x x 1 1 int 1<br />

PSHUFL/HW xmm,xmm,i 1 1 1 int 1 1<br />

PSHUFL/HW xmm, m128,i 2 1 1 1 int 1<br />

PALIGNR h) mm,mm,i 2 2 x x x int 2 1<br />

PALIGNR h) mm,m64,i 2 2 x x x 1 int 1<br />

PALIGNR h) xmm,xmm,i 2 2 x x x int 2 1<br />

Page 88

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!