I noticed that GHC's code generator does not currently output assembly that uses any of the lower machine registers like al. Even byte-size operations are implemented using rax on 64 bit and eax on 32 bit machines. GCC, however, frequently makes use of these smaller registers.
Are there any real performance benefits of using small registers like al?
One suggestion I've heard so far is that the opcode for inc al is smaller than inc rax (but not smaller than inc eax). Are there other, non-performance considerations why to use small registers?