1 /* PR tree-optimization/84436 */
2 /* { dg-options "-O2 -fdump-tree-switchconv -fdump-tree-optimized" } */
3 /* { dg-do run } */
4 
5 signed char
6 __attribute__ ((noipa))
foo(signed char how)7 foo (signed 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 
main()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" } } */
39