https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98519
--- Comment #24 from Michael Meissner <meissner at gcc dot gnu.org> --- Obviously I had a small typo in the previous example (using %U0%X0 instead of %U1%X1) which did not matter, but here is the corrected example: static int x; int *p_x = &x; int get (void) { int a; __asm__ ("lwz%U1%X1 %0,%1" : "=r" (a) : "m" (x)); return a; }