Originally Posted by lazlow
When you do see a huge difference in speed is in apps like video conversion (avi->mpg) or anything that would bring a 1ghz PIII to its knees. Then you can see (30%?) differences.
The fact that a problem is slow on a 1ghz PIII is no indication of whether 64bit mode will be faster or slower than 32bit mode on a new CPU.
Many applications are slow on old CPUs primarily because the cache is too small. They'll run much faster on a new CPU because the cache is larger. They'll run slightly faster in 32bit mode than 64bit mode because more 32bit pointers fit in the same size cache.
If an application used 64bit integers, then it could run much faster in 64bit mode than 32bit mode. But I doubt that is likely in video conversion.
Did you measure a 30% difference? Or did you just expect it?
I don't have specific knowledge of avi->mpg conversion, but I think video conversion is the type of application where good use of the XMM registers by the compiler would make a big difference. I don't know what it takes to get GCC in 32bit mode to make good use of XMM registers. Maybe it just can't. My small attempts in that direction have been total failures. I think GCC in 64bit mode does make good use of XMM registers. Some part of the difference may be the fact that 64bit mode has 16 XMM registers, while 32bit mode has only 8. But my best guess is that isn't much of a factor (8 vs. 16 general registers is a very significant difference to GCC. 8 vs. 16 XMM registers should be less so).
I expect the real difference (assuming you are really seeing one) is more an anomaly of GCC development than a fundamental architectural advantage of 64bit mode.
But for the end user, there is no real difference between GCC development effects and fundamental architecture differences. 64bit mode has good reason to be a far more interesting playground for GCC developers. I expect them to do a better job generating good code for 64bit mode than for 32bit mode and I expect that difference to increase over time. So maybe the biggest advantage of 64bit mode will be (or maybe already is) the fact that the GCC developers did a better job of supporting it.