Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.target / sh / pr55146.c
1 /* Check that the 'extu.b' instruction is generated for short jump tables.  */
2 /* { dg-do compile { target "sh*-*-*" } } */
3 /* { dg-options "-Os" } */
4 /* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } }  */
5 /* { dg-final { scan-assembler "extu.b" } } */
6
7 int
8 test (int arg)
9 {
10   int rc;
11   switch (arg)
12     {
13     case 0:
14       asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
15            "nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
16            "mov r4,%0"
17            : "=r" (rc)
18            : "r" (arg));
19       break;
20     case 1:
21       asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
22            "nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
23            "mov r5,%0"
24            : "=r" (rc)
25            : "r" (arg));
26       break;
27     case 2:
28       asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
29            "nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
30            "mov r6,%0"
31            : "=r" (rc)
32            : "r" (arg));
33       break;
34     case 3:
35       asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
36            "nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
37            "mov r7,%0"
38            : "=r" (rc)
39            : "r" (arg));
40       break;
41     case 4:
42       asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
43            "nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
44            "mov r8,%0"
45            : "=r" (rc)
46            : "r" (arg));
47       break;
48     }
49   return rc;
50 }