This is an extension of GCC if I recall correctly. By the way: the compiler will do this for you. Not considering special cases, the compiler knows better when to use a register. If you want to force the register, follow the message I'm replying to
Yes, it is an extension.
And of course, I trust in my compiler to generate what ever registers it wants for my program.
The above feature is only for special case. In GCC, the register keyword is useful (not in this case though) if you need to pass data through a specific register to GCC's extended inline assembly that doesn't have a specific register constraint associated with it (anything outside of RAX, RBX, RCX, RDX, RSI, RDI).
For example, if you want to perform syscall from inline assembly, you don't have constraints for R8, R9, and R10. So you need to use register keyword and use r constraint for that.