blob: fbb48f282b3b4b6305569115d8394f34b172aee9 [file] [log] [blame]
/* { 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]);
}