131
|
1 /* PR tree-optimization/84436 */
|
|
2 /* { dg-options "-O2 -fdump-tree-switchconv -fdump-tree-optimized" } */
|
|
3 /* { dg-do run } */
|
|
4
|
|
5 char
|
|
6 __attribute__ ((noipa))
|
|
7 foo (char how)
|
|
8 {
|
|
9 switch (how) {
|
|
10 case -4: how = 96; break;
|
|
11 case -3: how = -120; break;
|
|
12 case -2: how = -80; break;
|
|
13 case -1: how = -40; break;
|
|
14 case 0: how = 0; break;
|
|
15 case 1: how = 40; break;
|
|
16 }
|
|
17 return how;
|
|
18 }
|
|
19
|
|
20 int main()
|
|
21 {
|
|
22 if (foo (-4) != 96)
|
|
23 __builtin_abort ();
|
|
24
|
|
25 if (foo (-3) != -120)
|
|
26 __builtin_abort ();
|
|
27
|
|
28 if (foo (0) != 0)
|
|
29 __builtin_abort ();
|
|
30
|
|
31 if (foo (123) != 123)
|
|
32 __builtin_abort ();
|
|
33
|
|
34 return 0;
|
|
35 }
|
|
36
|
|
37 /* { dg-final { scan-tree-dump-times "40 *\\*" 1 "switchconv" } } */
|
|
38 /* { dg-final { scan-tree-dump-not "switch" "optimized" } } */
|