Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.target / mips / code-readable-2.c
1 /* { dg-options "(-mips16) -mcode-readable=pcrel -mgp32 addressing=absolute" } */
2
3 volatile int x1;
4 volatile int x2;
5 volatile int x3;
6 volatile int x4;
7 volatile int x5;
8 volatile int x6;
9 volatile int x7;
10
11 MIPS16 int
12 foo (int i, volatile *x)
13 {
14   switch (i)
15     {
16     case 1: return x1 + x[0];
17     case 2: return x2 + x[1];
18     case 3: return x3 + x[2];
19     case 4: return x4 + x[3];
20     case 5: return x5 + x[4];
21     case 6: return x6 + x[5];
22     case 7: return x7 + x[6];
23     default: return 0;
24     }
25 }
26
27 extern int k[];
28
29 MIPS16 int *
30 bar (void)
31 {
32   return k;
33 }
34
35 /* { dg-final { scan-assembler-not "\tla\t" } } */
36 /* { dg-final { scan-assembler-not "\t\\.half\t" } } */
37 /* { dg-final { scan-assembler "\t\\.word\t\[^\n\]*L" } } */
38
39 /* { dg-final { scan-assembler "\t\\.word\tk\n" } } */
40 /* { dg-final { scan-assembler-not "%hi\\(k\\)" } } */
41 /* { dg-final { scan-assembler-not "%lo\\(k\\)" } } */