]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/tree-ssa/pr84436-5.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr84436-5.c
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))
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
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" } } */