/* { dg-do compile { target mips16_attribute } } */
/* { dg-mips-options "-mcode-readable=pcrel -mgp32" } */
/* { dg-add-options mips16_attribute } */

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 "\t\.word\tk\n" } } */
/* { dg-final { scan-assembler-not "%hi\\(k\\)" } } */
/* { dg-final { scan-assembler-not "%lo\\(k\\)" } } */
