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