PR middle-end/77357 - strlen of constant strings not folded
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / switch-1.c
blob149687ca2bbbf58fa84a9ea397f2564f02a62cf3
1 /* { dg-do compile { target { { x86_64-*-* aarch64-*-* ia64-*-* powerpc64-*-* } && lp64 } } } */
2 /* { dg-options "-O2 -fdump-tree-switchlower1 --param case-values-threshold=4" } */
4 int global;
6 int foo (int x)
8 switch (x) {
9 case 0:
10 case 10:
11 case 1000:
12 case 1010:
13 case 1025 ... 1030:
14 return 1;
15 default:
16 return 0;
20 /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: 0 10 BT:1000-1030" "switchlower1" } } */
22 int foo2 (int x)
24 switch (x) {
25 case -100:
26 case 100:
27 case 1000:
28 case 10000:
29 case 100000:
30 return 1;
31 default:
32 return 0;
36 /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: -100 100 1000 10000 100000" "switchlower1" } } */
38 int foo3 (int x)
40 switch (x) {
41 case 0:
42 case 10:
43 case 20:
44 global += 1;
45 return 3;
46 case 30:
47 case 33 ... 55:
48 case 57:
49 return 4;
50 case 60 ... 62:
51 return 1;
52 default:
53 return 0;
57 /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: JT:0-62" "switchlower1" } } */
59 int foo4 (int x)
61 switch (x) {
62 case -100:
63 case 10:
64 case 20:
65 global += 1;
66 return 3;
67 case 30:
68 case 33 ... 55:
69 case 57:
70 return 4;
71 case 60 ... 62:
72 return 1;
73 case 600 ... 700:
74 return 12;
75 default:
76 return 0;
80 /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: -100 JT:10-62 600-700" "switchlower1" } } */
82 int foo5 (int x)
84 switch (x) {
85 case 10:
86 case 20:
87 global += 1;
88 return 3;
89 case 30:
90 case 33 ... 55:
91 case 57:
92 return 4;
93 case 60 ... 62:
94 return 1;
95 case 600 ... 700:
96 return 12;
97 case 1000 ... 1010:
98 case 1012:
99 return 333;
100 case 1019:
101 case 1021:
102 return 9;
103 case 111111:
104 return 3;
105 default:
106 return 0;
110 /* { dg-final { scan-tree-dump ";; GIMPLE switch case clusters: JT:10-62 600-700 JT:1000-1021 111111" "switchlower1" } } */