For almost every processor architecture going to 64 bits slows things down due to increased memory usage since very few programs need 64 bit integer addition. However, in x86 the transition to 64 bit doubled the number of architectural registers to 16, and so actually resulted in a speedup.
Hypothetically a 64-bit application could be designed to save space by hacking together a sort of "near pointer/far pointer" system by using native 64-bit reference pointers and 16-bit or 32-bit offsets from them. This would save on a lot of the space used for storing pointers to nearby data.
For another example, Redis uses much less memory per key when compiled for 32-bits.
May improve cache hit rates, but my Dell laptop running 64-bit version never hits the swap partition unless I open a couple Eclipses or do something equally stupid.