https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90817
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Dup. You are using the inline-asm incorrectly. sil is the lower part of the (16bit) SI register. Yes in 32bit x86, there is no register named that. But you are using the inline-asm to still to use name the full (32bit) ESI register with it (e.g. %k0). If you want to have registers that have a lower part existing in 32bit mode, you need to use q constraint. NOTE Q constraint is for the upper half of the 16bit register, not the lower half. This is all documented too including the modifier for output template. *** This bug has been marked as a duplicate of bug 35102 ***