https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89334
--- Comment #2 from Stas Sergeev <stsp at users dot sourceforge.net> --- (In reply to Jakub Jelinek from comment #1) > the same for -m64, but only al/bl/cl/dl for -m32, because there is no > sil/dil/bpl for -m32. But why does this matter? I am perfectly fine with al/bl/cl/dl, never asked to use sil/dil/bpl. What is the rationale? If "r" is plain invalid for 8bit values, then shouldn't the error be different and not to depend on an opt level? Could you please explain a bit more what exactly the error is and why it works with -O1? Why invalid registers (sil/dil/bpl) even matter at all?