https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80492
--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> --- Happens in fre3 pass. The pass starts with: do_syscalls () { register int reg __asm__ (*4); register int reg __asm__ (*4); int s; <bb 2> [33.33%]: reg = 0; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); reg = 1; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); s_11 = 1; reg = 0; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); reg = 1; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); s_16 = 2; return; } and converts the above to: do_syscalls () { register int reg __asm__ (*4); register int reg __asm__ (*4); int s; <bb 2> [33.33%]: reg = 0; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); reg = 1; __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); __asm__ __volatile__("/* Some Code %0 */" : : "r" reg); return; }