http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53623
--- Comment #3 from Adam Warner <adam at consulting dot net.nz> 2012-06-10 23:32:19 UTC --- (Off topic "Note" correction) In my previous note I suggested the instruction "movsbq dh -> rdx". There is no such instruction! One cannot encode register ah/bh/ch/dh in an instruction requiring a REX prefix. A REX prefix would be required for sign extending ah/bh/ch/dh to 64 bits. My note does apply to zero extending dh to 64 bits. "movzbl dh -> edx" achieves this since edx is implicitly zero extended to rdx.