/* { dg-compile } */ /* { dg-options "-O2" } */ static inline unsigned long lay_uw(unsigned long addr) { unsigned long result; __asm__ ("lay %[result],%a[addr]" : [result] "=d" (result) : [addr] "UW" (addr)); return result; } static inline unsigned long la_u(unsigned long addr) { unsigned long result; __asm__ ("la %[result],%a[addr]" : [result] "=d" (result) : [addr] "U" (addr)); return result; } static inline unsigned long lay_zqzrzszt(unsigned long addr) { unsigned long result; __asm__ ("lay %[result],%a[addr]" : [result] "=d" (result) : [addr] "ZQZRZSZT" (addr)); return result; } static inline unsigned long la_zqzr(unsigned long addr) { unsigned long result; __asm__ ("la %[result],%a[addr]" : [result] "=d" (result) : [addr] "ZQZR" (addr)); return result; } extern unsigned long a[15]; int main(void) { a[1] = lay_uw(3333); a[2] = lay_uw(4444); a[3] = lay_uw(1000000); a[4] = lay_uw(a[0]); a[5] = la_u(2222); a[6] = la_u(5555); a[7] = la_u(a[0]); a[8] = lay_zqzrzszt(3333); a[9] = lay_zqzrzszt(4444); a[10] = lay_zqzrzszt(1000000); a[11] = lay_zqzrzszt(a[0]); a[12] = la_zqzr(2222); a[13] = la_zqzr(5555); a[14] = la_zqzr(a[0]); }