D-Programming-Language/druntime — pull request #471 by John-Colvin (2013-04-04 16:58:55+00:00)
Title: upgraded int array ops

Things in this pull, all relating to arrayint.d:

- ported everything to x64
- fixed/reimplemented all the multiplication asm, now fully functioning.
- upgraded unittests to check correct signed behaviour.
- upgraded unittests to get 100% coverage where appropriate, excepting the little helper function redirects.

On my machine this provides dramatic performance improvements for 64 bit int array ops, although I haven't done a detailed profile as yet.

The reimplemented multiplication asm now requires sse4.1. This shouldn't be a problem on intel as it was introduced with penryn (2007/2008). Slightly older Amd processors will lose out however as sse4.1 was only introduced by them in late 2011 with the Bulldozer architecture.

Further direction if this is accepted:
- take a similar approach for other types.
- make use of more recent tech such as avx.
- add some amd specific code.

further down the line:
- ARM?