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)7foo (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()19int 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