I decided to redo mech's UT Zip test using both a 64-bit and 32-bit build of Infozip, in an effort to see what advantage, if any, that the Hammer's 64-bit registers would give. My results were completely unexpected.
Testbed is same as above. Changes this time were:
* I did not use the -mieee-fp flag when compiling zip
* I changed the order of the SIMD instruction flags to -mmmx -m3dnow -msse -msse2
* The 32-bit build was made with GCC 3.2.2 on my laptop, running Slackware 9.0. The 64-bit build was, like last time, made with GCC 3.3 on SuSE 8.2. This is because I was unable to get it to compile with -m32 on SuSE, due to missing libraries.
* I was not running X or SoB this time around.
I first tested the 64-bit build.
~/zip64 -r9 utcd1.zip utcd1
Average over 4 tests was 3 minutes, 26.87675 seconds.
I then tested the 32-bit build.
~/zip32 -r9 utcd1.zip utcd1
Now here's the suprise: The average time over 4 tests was 2 minutes, 42.96 seconds, almost 44 seconds faster than the 64-bit build! :Q
I ran the tests over and over and over again, and there is no error. The 32-bit build of Infozip completely blew the 64-bit build away.
The only thing I can think of that could cause this is the fact that the compiler isn't exactly mature yet. GCC has been targetting i386 for a decade, and i686 for at least 5 years, but despite AMD's contributions the x86-64 target is still very new compared to the 32-bit ix86 targets.
So there you have it. The performance benefit from 64-bit mode is, at this point in time, negative.