/* { dg-options "(-mips16) -mcode-readable=no -mgp32 addressing=absolute" } */

MIPS16 int
foo (int i)
{
  switch (i)
    {
    case 1: return 40;
    case 2: return 11;
    case 3: return 29;
    case 4: return 10;
    case 5: return 12;
    case 6: return 35;
    case 7: return 23;
    default: return 0;
    }
}

extern int k[];

MIPS16 int *
bar (void)
{
  return k;
}

/* { dg-final { scan-assembler-not "\tla\t" } } */
/* { dg-final { scan-assembler-not "\t\\.half\t" } } */
/* { dg-final { scan-assembler "%hi\\(\[^)\]*L" } } */
/* { dg-final { scan-assembler "%lo\\(\[^)\]*L" } } */

/* { dg-final { scan-assembler-not "\t\\.word\tk\n" } } */
/* { dg-final { scan-assembler "%hi\\(k\\)" } } */
/* { dg-final { scan-assembler "%lo\\(k\\)" } } */