Log in

View Full Version : Assembly/Optimisation Links


mg262
24th September 2005, 20:08
I found that some of these were rather hard to find, so I thought they were worth linking to.

Agner Fog's Pentium (family) Optimisation Guide (http://www.agner.org/assem/pentopt.pdf)
-- Invaluable. Especially the SIMD instruction timings on pp. 153-4.

Intel Instruction Set Reference (http://www.intel.com/design/pentiumii/manuals/243191.htm)
-- Useful for checking exactly how a specific instruction works, but IMO not otherwise. I've also used the previous version, in two files called 25366614.pdf and 25366714.pdf (obviously); these covered up to P4 and were much easier to use because they listed each instruction in the pdf bookmarks. (And the SIMD instructions conveniently appeared near the start of the second volume.) Unfortunately I can't now find them on the Web. Edit: newer versions here (http://download.intel.com/design/Pentium4/manuals/25366617.pdf) and here (http://download.intel.com/design/Pentium4/manuals/25366717.pdf).

Intel's Pentium 4 Optimisation Guide (www.cs.grinnell.edu/~walker/courses/211.fa01/pentium-4-optimization.pdf)
-- I've only just obtained this, so no comments.

I'm sure there is much more out there... please do continue this thread.

IanB
25th September 2005, 03:23
Also Neuron2's site has copies of some gems squirreled away. http://neuron2.net/

And the AMD versions of the books are good as well. http://www.amd.com/

squid_80
25th September 2005, 09:27
Does anyone have a list of which instructions are included in which SIMD instruction sets (MMX, MMX Extensions, 3DNow!, 3DNow! Extensions, SSE, SSE2, SSE3)?

Edit: Never mind, found it in vol 3 of AMD64 manuals, Appendix D.3.

mg262
25th September 2005, 09:33
Also Neuron2's site has copies of some gems squirreled away.That's definitely true, but on the assembly/optimisation count I'm not sure what you might be referring to? I've just gone through the whole top level structure and then tried searching for assembly, optimisation, optimization, etc...

@squid_80,
You can start with the table giving the instruction timings -- it also lists which Pentium processor they correspond to.

IanB
25th September 2005, 10:01
Oh! They seem to have gone, they were a selection of AMD and other papers. :( or perhaps I am misremebering.

mgt
25th September 2005, 11:57
Check out the documents at http://developer.amd.com

Look for the AMD64 Achritecture Programmer's Manuals. GP-Instruction are listed in Vol 3, MMX Instructions in Vol 1 and SSE Instructions in Vol 4.

In these manuals there are of course more than just instruction lists, if you are really interested in optimization you should have a look at all of them.

tsp
25th September 2005, 20:22
Also AMD CodeAnalyst's (http://developer.amd.com/cawin.aspx) pipeline simulation is very usefull for assembler optimization (and it's free). It only works with AMD processors but if you have an intel processor you can allways buy vtune (http://www.intel.com/cd/software/products/asmo-na/eng/vtune/219933.htm)