litecoin-project/litecoin — pull request #76 by wtogami (2013-10-23 05:53:27+00:00)
Title: SSE2 optimized PoW Validation

Significant performance boost is possible with the SSE2 intrinsic implementation from upstream tarsnap. Block hash PoW validation is a major bottleneck, so this can considerably speed up the client for all users.

Build Instructions
* Add ```USE_SSE2=1``` to litecoind make and qmake parameters.

SSE2 scrypt visible in debug.log | grep "scrypt"
* MacOS X 32bit and all 64bit is built to always use SSE2. SSE2 64bit has already been in testing in OMG2 Linux 64bit since mid-September.
* Runtime Detect: Win32 and Linux32 use cpuid feature runtime detection to choose between scrypt-generic and scrypt-sse2 which is set once in a function pointer during init.cpp.

Changelog since #75
* Fixed bitcoin-qt.pro to build scrypt-sse2.cpp with -msse2 without hacks.
* Added scrypt-sse2 unit test coverage.
* Squash and cleanup commits.

Obsoletes: #75 #71 and #68 .