/* { 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]);
}
