libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr84436-1.c
bloba045b44c2b944c52d03f6c0ca31edbdb6a2a64b7
1 /* PR tree-optimization/84436 */
2 /* { dg-options "-O2 -fdump-tree-switchconv -fdump-tree-optimized" } */
3 /* { dg-do run } */
5 int
6 __attribute__ ((noipa))
7 foo (int how)
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;
16 return how;
19 int main()
21 if (foo (2) != 205)
22 __builtin_abort ();
24 if (foo (6) != 605)
25 __builtin_abort ();
27 if (foo (123) != 123)
28 __builtin_abort ();
30 return 0;
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" } } */