There are reasons for 64bit to be faster - more registers to work with. (from https://en.wikipedia.org/wiki/X86-64 ) In addition to increasing the size of the general-purpose registers, the number of named general-purpose registers is increased from eight (i.e. eax, ebx, ecx, edx, ebp, esp, esi, edi) in x86 to 16 (i.e. rax, rbx, rcx, rdx, rbp, rsp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15).
Generally the ABI (https://msdn.microsoft.com/en-us/library/ms235286.aspx) passes most arguments by register instead of by stack .... "The x64 Application Binary Interface (ABI) is a 4 register fast-call calling convention, with stack-backing for those registers. There is a strict one-to-one correspondence between arguments in a function, and the registers for those arguments. Any argument that doesn?t fit in 8 bytes, or is not 1, 2, 4, or 8 bytes, must be passed by reference." 32 bit apps are a tiny percent slower than 64 ... or rather the same speed they always were and 64 bit is a tiny percent faster because of the above reasons.