https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86673
--- Comment #7 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- (In reply to Thomas Preud'homme from comment #6) > The following simpler testcase also shows the problem: > > void fn1() { > register const int h asm("r2") = 1; > __asm__(".ifnc %0,r2; .err; .endif\n\t" > "bl __put_user_4" :: "r"(h)); > } The register label gets optimized during gimple stages.