You should not believe everything you read on the Internet. E.g. this:
A structure containing a dozen integers will be half the size if those integers are 32-bit than if they are 64-bit. This means it will take half as many bytes to store, half as much space in the cache, and so on.
Makes no sense. In situations where structure size matters you aren’t limited to just int – you might use short or char, or pack data into individual bits if need be. If you care about size you will use sized integer types, not just 'int' and leave it up to the compiler.
Arithmetic is another area. If you are doing a lot of multiplication and care about performance you’ll generally do it on the FPU, or in the vector unit, or even on the GPU. No, it’s not optimised for integers, it has always been slower. Pentium IV was quite a while ago too.
If you just recompile for x86-64 code runs faster, as it can take advantage of architectural improvements such as more registers. That’s before you do anything to take advantage of 64-bit, such as copying memory faster through wider registers – though often you don’t need to do anything as libraries you link to already contains the optimisations.
There is one way that 64-bit is worse. Executable size. The same code recompiled for 64-bit is going to be about 2x as big. But code size is not an issue on most platforms today.