/* PR rtl-optimization/89313 */ /* { dg-do compile { target aarch64*-*-* arm*-*-* i?86-*-* powerpc*-*-* s390*-*-* x86_64-*-* } } */ /* { dg-options "-O2" } */ #if defined (__aarch64__) # define REG "x0" #elif defined (__arm__) # define REG "r0" #elif defined (__i386__) # define REG "%eax" #elif defined (__powerpc__) || defined (__POWERPC__) # define REG "r3" #elif defined (__s390__) # define REG "0" #elif defined (__x86_64__) # define REG "rax" #endif long bug (long arg) { register long output asm (REG); long input = arg; asm ("blah %0, %1, %2" : "=&r" (output) : "r" (input), "0" (input)); return output; }