There are places where slow correct is worse than fast wrong [for some definitions of "correct" and/or "wrong"]. Janestreet works where perfect is the enemy of the good, and are probably looking at registers because they have already squeezed caches for performance juice. This is a post where the quant context matters. It's not a sophomore CS student's blog.
And if you start considering the computer architecture think about caches, memory latency and bursting first. Use a cache-conscious data structure.
Optimizing at the register level is ridiculous, this is the least place where you get significant returns for the effort you spend.
Oh, and make it correct first, make it fast second. Use a profiler.