1 /* { dg-options "-O2 -fdump-tree-vrp1" }  */
2 /* { dg-final { scan-tree-dump "case 9 ... 10:" "vrp1" } }  */
3 /* { dg-final { scan-tree-dump "case 17 ... 18:" "vrp1" } }  */
4 /* { dg-final { scan-tree-dump "case 27 ... 30:" "vrp1" } }  */
5 
6 extern void foo (void);
7 extern void bar (void);
8 
9 void
test1(int i)10 test1 (int i)
11 {
12   if (i != 7 && i != 8)
13     switch (i)
14       {
15       case 1:
16       case 2:
17         foo ();
18         break;
19       case 7: /* Redundant label.  */
20       case 8: /* Redundant label.  */
21       case 9:
22       case 10:
23         bar ();
24         break;
25       }
26 }
27 
28 void
test3(int i)29 test3 (int i)
30 {
31   if (i != 19 && i != 20)
32     switch (i)
33       {
34       case 1:
35       case 2:
36         foo ();
37         break;
38       case 17:
39       case 18:
40       case 19: /* Redundant label.  */
41       case 20: /* Redundant label.  */
42         bar ();
43         break;
44       }
45 }
46 
47 void
test2(int i)48 test2 (int i)
49 {
50   if (i != 28 && i != 29)
51     switch (i)
52       {
53       case 1:
54       case 2:
55         foo ();
56         break;
57       /* No redundancy.  */
58       case 27:
59       case 28:
60       case 29:
61       case 30:
62         bar ();
63         break;
64       }
65 }
66