1 /* PR tree-optimization/52267 */
2 /* { dg-do run { target { ! int16 } } } */
3 /* { dg-options "-O2" } */
4 
5 extern void abort (void);
6 
7 #define BITSM1 (sizeof (int) * __CHAR_BIT__ - 1)
8 #define BITSH ((sizeof (int) - sizeof (short)) * __CHAR_BIT__)
9 
10 void
f1(unsigned int s)11 f1 (unsigned int s)
12 {
13   if ((s & (7U << (BITSM1 - 2))) != 0)
14     {
15       if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
16 	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
17 	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
18 	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
19 	  || s == (0xc000U << BITSH) + 1 || s == -1U || s == -15U
20 	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
21 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
22 	  || s == 1U + __INT_MAX__ || s == -32U
23 	  || s == (3 << (BITSM1 - 2)) + 2 || s == -5U || s == -63U
24 	  || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
25 	  || s == -8191U || s == -8192U || s == -8193U || s == -8250U
26 	  || s == -8255U || s == -8256U || s == -8257U || s == __INT_MAX__
27 	  || s == __INT_MAX__ + 9U)
28 	return;
29     }
30   else
31     {
32       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
33 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f || s == 1
34 	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
35 	return;
36     }
37   abort ();
38 }
39 
40 void
f2(int s)41 f2 (int s)
42 {
43   if ((s & (7U << (BITSM1 - 2))) == 0)
44     {
45       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
46 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f || s == 1
47 	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
48 	return;
49     }
50   else
51     {
52       if (s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
53 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
54 	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
55 	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
56 	  || s == (-0x4000 << BITSH) + 1 || s == -1 || s == -15 || s == -15550
57 	  || s == -15552 || s == (0x7000 << BITSH) - 1
58 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
59 	  || s == -__INT_MAX__ - 1 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
60 	  || s == -5 || s == -63 || s == -64 || s == -65
61 	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
62 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
63 	  || s == -8257 || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
64 	return;
65     }
66   abort ();
67 }
68 
69 void
f3(unsigned int s)70 f3 (unsigned int s)
71 {
72   if ((s & 0x3cc0) == 0)
73     {
74       if (s == 0 || s == 0x20 || s == 0x3f || s == (0xbfbfU << BITSH)
75 	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
76 	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
77 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
78 	  || s == 1U + __INT_MAX__ || s == 2 || s == 24
79 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == 6U + __INT_MAX__
80 	  || s == __INT_MAX__ + 9U)
81 	return;
82     }
83   else
84     {
85       if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
86 	  || s == 0x3cbf || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
87 	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
88 	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
89 	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
90 	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32U || s == -5U
91 	  || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
92 	  || s == -8192U || s == -8193U || s == -8250U || s == -8255U
93 	  || s == -8256U || s == -8257U || s == __INT_MAX__)
94 	return;
95     }
96   abort ();
97 }
98 
99 void
f4(int s)100 f4 (int s)
101 {
102   if ((s & 0x3cc0) == 0)
103     {
104       if (s == 0 || s == 0x20 || s == 0x3f || s == (-0x4041 << BITSH)
105 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
106 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
107 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
108 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
109 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
110 	  || s == -__INT_MAX__ + 7)
111 	return;
112     }
113   else
114     {
115       if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
116 	  || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
117 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
118 	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
119 	  || s == -15552 || s == (0x7000 << BITSH) - 1
120 	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
121 	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
122 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
123 	  || s == -8257 || s == __INT_MAX__)
124 	return;
125     }
126   abort ();
127 }
128 
129 void
f5(int s)130 f5 (int s)
131 {
132   if ((s & 0x3cc0U) == 0)
133     {
134       if (s == 0 || s == 0x20 || s == 0x3f || s == (-0x4041 << BITSH)
135 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
136 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
137 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
138 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
139 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
140 	  || s == -__INT_MAX__ + 7)
141 	return;
142     }
143   else
144     {
145       if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
146 	  || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
147 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
148 	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
149 	  || s == -15552 || s == (0x7000 << BITSH) - 1
150 	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
151 	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
152 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
153 	  || s == -8257 || s == __INT_MAX__)
154 	return;
155     }
156   abort ();
157 }
158 
159 void
f6(unsigned int s)160 f6 (unsigned int s)
161 {
162   if ((s & 0x3cc0) == 0x3cc0)
163     {
164       if (s == 0x3cc0 || s == (0xc000U << BITSH) - 1
165 	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
166 	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
167 	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
168 	  || s == -32U || s == -5U || s == -63U || s == -64U
169 	  || s == __INT_MAX__)
170 	return;
171     }
172   else
173     {
174       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
175 	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (0xbfbfU << BITSH)
176 	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
177 	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
178 	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH)
179 	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
180 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65U
181 	  || s == 6U + __INT_MAX__ || s == -8189U || s == -8191U
182 	  || s == -8192U || s == -8193U || s == -8250U || s == -8255U
183 	  || s == -8256U || s == -8257U || s == __INT_MAX__ + 9U)
184 	return;
185     }
186   abort ();
187 }
188 
189 void
f7(int s)190 f7 (int s)
191 {
192   if ((s & 0x3cc0) == 0x3cc0)
193     {
194       if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
195 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
196 	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
197 	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
198 	  || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
199 	return;
200     }
201   else
202     {
203       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
204 	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
205 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
206 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
207 	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
208 	  || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
209 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
210 	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
211 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
212 	  || s == -8257 || s == -__INT_MAX__ + 7)
213 	return;
214     }
215   abort ();
216 }
217 
218 void
f8(int s)219 f8 (int s)
220 {
221   if ((s & 0x3cc0U) == 0x3cc0)
222     {
223       if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
224 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
225 	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
226 	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
227 	  || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
228 	return;
229     }
230   else
231     {
232       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
233 	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
234 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
235 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
236 	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
237 	  || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
238 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
239 	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
240 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
241 	  || s == -8257 || s == -__INT_MAX__ + 7)
242 	return;
243     }
244   abort ();
245 }
246 
247 void
f9(unsigned int s)248 f9 (unsigned int s)
249 {
250   if ((s & 0x3cc0) >= 0x1cc0)
251     {
252       if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
253 	  || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
254 	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
255 	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
256 	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
257 	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
258 	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
259 	  || s == -8250U || s == -8255U || s == -8256U || s == __INT_MAX__)
260 	return;
261     }
262   else
263     {
264       if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
265 	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
266 	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
267 	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
268 	  || s == -15552U || s == (0x7000 << BITSH)
269 	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
270 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
271 	  || s == 6U + __INT_MAX__ || s == -8257U || s == __INT_MAX__ + 9U)
272 	return;
273     }
274   abort ();
275 }
276 
277 void
f10(unsigned int s)278 f10 (unsigned int s)
279 {
280   if ((s & 0x3cc0) > 0x1cc0)
281     {
282       if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
283 	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
284 	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
285 	  || s == -1U || s == -15U || s == (0x7000 << BITSH) - 1
286 	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32U || s == -5U
287 	  || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
288 	  || s == -8192U || s == __INT_MAX__)
289 	return;
290     }
291   else
292     {
293       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
294 	  || s == 0x3f || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
295 	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
296 	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
297 	  || s == -15552U || s == (0x7000 << BITSH)
298 	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
299 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
300 	  || s == 6U + __INT_MAX__ || s == -8193U || s == -8250U
301 	  || s == -8255U || s == -8256U || s == -8257U
302 	  || s == __INT_MAX__ + 9U)
303 	return;
304     }
305   abort ();
306 }
307 
308 void
f11(int s)309 f11 (int s)
310 {
311   if ((s & 0x3cc0) >= 0x1cc0)
312     {
313       if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
314 	  || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
315 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
316 	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
317 	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
318 	  || s == -32 || s == -5 || s == -63 || s == -64 || s == -65
319 	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
320 	  || s == -8250 || s == -8255 || s == -8256 || s == __INT_MAX__)
321 	return;
322     }
323   else
324     {
325       if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
326 	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
327 	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
328 	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
329 	  || s == -15552 || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
330 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
331 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
332 	  || s == -8257 || s == -__INT_MAX__ + 7)
333 	return;
334     }
335   abort ();
336 }
337 
338 void
f12(int s)339 f12 (int s)
340 {
341   if ((s & 0x3cc0) > 0x1cc0)
342     {
343       if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
344 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
345 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
346 	  || s == -1 || s == -15 || s == (0x7000 << BITSH) - 1
347 	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
348 	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
349 	  || s == __INT_MAX__)
350 	return;
351     }
352   else
353     {
354       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
355 	  || s == 0x3f || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
356 	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
357 	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
358 	  || s == -15552 || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
359 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
360 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
361 	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
362 	  || s == -8257 || s == -__INT_MAX__ + 7)
363 	return;
364     }
365   abort ();
366 }
367 
368 void
f13(unsigned int s)369 f13 (unsigned int s)
370 {
371   if ((s & (0xe071U << BITSH)) > (0xb030U << BITSH))
372     {
373       if (s == (0xf000U << BITSH) - 1 || s == (0xc000U << BITSH)
374 	  || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
375 	  || s == -1U || s == -15U || s == -15550U || s == -15552U
376 	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
377 	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
378 	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
379 	return;
380     }
381   else
382     {
383       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
384 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
385 	  || s == (0xc000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
386 	  || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
387 	  || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
388 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
389 	  || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
390 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
391 	  || s == 6U + __INT_MAX__ || s == __INT_MAX__
392 	  || s == __INT_MAX__ + 9U)
393 	return;
394     }
395   abort ();
396 }
397 
398 void
f14(unsigned int s)399 f14 (unsigned int s)
400 {
401   if ((s & (0xe071U << BITSH)) > (0xa030U << BITSH))
402     {
403       if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
404 	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
405 	  || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
406 	  || s == -1U || s == -15U || s == -15550U || s == -15552U
407 	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
408 	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
409 	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
410 	return;
411     }
412   else
413     {
414       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
415 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
416 	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
417 	  || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
418 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
419 	  || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
420 	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
421 	  || s == 6U + __INT_MAX__ || s == __INT_MAX__
422 	  || s == __INT_MAX__ + 9U)
423 	return;
424     }
425   abort ();
426 }
427 
428 void
f15(int s)429 f15 (int s)
430 {
431   if ((s & ((-0x1f8f) << BITSH)) > ((-0x4fd0) << BITSH))
432     {
433       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
434 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
435 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
436 	  || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
437 	  || s == -1 || s == -15 || s == -15550 || s == -15552
438 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
439 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
440 	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
441 	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
442 	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
443 	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
444 	  || s == __INT_MAX__)
445 	return;
446     }
447   else
448     {
449       if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
450 	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
451 	  || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
452 	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
453 	return;
454     }
455   abort ();
456 }
457 
458 void
f16(int s)459 f16 (int s)
460 {
461   if ((s & ((-0x1f8f) << BITSH)) >= ((-0x4fd0) << BITSH))
462     {
463       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
464 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
465 	  || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
466 	  || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
467 	  || s == -1 || s == -15 || s == -15550 || s == -15552
468 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
469 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
470 	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
471 	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
472 	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
473 	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
474 	  || s == __INT_MAX__)
475 	return;
476     }
477   else
478     {
479       if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
480 	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
481 	  || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
482 	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
483 	return;
484     }
485   abort ();
486 }
487 
488 void
f17(int s)489 f17 (int s)
490 {
491   if ((s & ((-0x4000 << BITSH) | 1)) != -__INT_MAX__ - 1)
492     {
493       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
494 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
495 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
496 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
497 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
498 	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
499 	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
500 	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
501 	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == -32
502 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
503 	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
504 	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
505 	  || s == -8255 || s == -8256 || s == -8257 || s == __INT_MAX__)
506 	return;
507     }
508   else
509     {
510       if (s == (-0x4041 << BITSH) || s == (-0x7000 << BITSH)
511 	  || s == -__INT_MAX__ - 1 || s == -__INT_MAX__ + 7)
512 	return;
513     }
514   abort ();
515 }
516 
517 void
f18(int s)518 f18 (int s)
519 {
520   if ((s & ((-0x4000 << BITSH) | 1)) != ((-0x4000 << BITSH) | 1))
521     {
522       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
523 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
524 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
525 	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
526 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
527 	  || s == (-0x7000 << BITSH) || s == 1 || s == -15550 || s == -15552
528 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
529 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
530 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
531 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -64
532 	  || s == -__INT_MAX__ + 4 || s == -8192 || s == -8250 || s == -8256
533 	  || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
534 	return;
535     }
536   else
537     {
538       if (s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH) + 1
539 	  || s == -1 || s == -15 || s == -5 || s == -63 || s == -65
540 	  || s == -8189 || s == -8191 || s == -8193 || s == -8255
541 	  || s == -8257)
542 	return;
543     }
544   abort ();
545 }
546 
547 void
f19(int s)548 f19 (int s)
549 {
550   if ((s & ((-0x4000 << BITSH) | 1)) != ((0x4000 << BITSH) | 1))
551     {
552       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
553 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
554 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
555 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
556 	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
557 	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
558 	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
559 	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
560 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
561 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
562 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
563 	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
564 	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
565 	  || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
566 	return;
567     }
568   else
569     {
570       if (s == (0x7000 << BITSH) - 1 || s == __INT_MAX__)
571 	return;
572     }
573   abort ();
574 }
575 
576 void
f20(int s)577 f20 (int s)
578 {
579   if ((s & (-0x1000 << BITSH)) != -__INT_MAX__ - 1)
580     {
581       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
582 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
583 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
584 	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
585 	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
586 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
587 	  || s == -1 || s == -15 || s == -15550 || s == -15552
588 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
589 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
590 	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
591 	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
592 	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
593 	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
594 	  || s == __INT_MAX__)
595 	return;
596     }
597   else
598     {
599       if (s == (-0x7000 << BITSH) - 1 || s == -__INT_MAX__ - 1
600 	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
601 	return;
602     }
603   abort ();
604 }
605 
606 void
f21(int s)607 f21 (int s)
608 {
609   if ((s & (-0x1000 << BITSH)) != (-0x1000 << BITSH))
610     {
611       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
612 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
613 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
614 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
615 	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
616 	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
617 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
618 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
619 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
620 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
621 	  || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
622 	return;
623     }
624   else
625     {
626       if (s == (-0x1000 << BITSH) || s == -1 || s == -15 || s == -15550
627 	  || s == -15552 || s == -32 || s == -5 || s == -63 || s == -64
628 	  || s == -65 || s == -8189 || s == -8191 || s == -8192 || s == -8193
629 	  || s == -8250 || s == -8255 || s == -8256 || s == -8257)
630 	return;
631     }
632   abort ();
633 }
634 
635 void
f22(int s)636 f22 (int s)
637 {
638   if ((s & (-0x1000 << BITSH)) != (0x7000 << BITSH))
639     {
640       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
641 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
642 	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
643 	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
644 	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
645 	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
646 	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
647 	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
648 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
649 	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
650 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
651 	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
652 	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
653 	  || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
654 	return;
655     }
656   else
657     {
658       if (s == (0x7000 << BITSH) || s == __INT_MAX__)
659 	return;
660     }
661   abort ();
662 }
663 
664 void
f23(unsigned int s)665 f23 (unsigned int s)
666 {
667   if ((s & (0xf000U << BITSH)) != (0x7000 << BITSH))
668     {
669       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
670 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
671 	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
672 	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
673 	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
674 	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
675 	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -1U || s == -15U
676 	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
677 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
678 	  || s == 1U + __INT_MAX__ || s == 2 || s == 24 || s == -32U
679 	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5U || s == -63U
680 	  || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
681 	  || s == -8191U || s == -8192U || s == -8193U || s == -8250U
682 	  || s == -8255U || s == -8256U || s == -8257U
683 	  || s == __INT_MAX__ + 9U)
684 	return;
685     }
686   else
687     {
688       if (s == (0x7000 << BITSH) || s == __INT_MAX__)
689 	return;
690     }
691   abort ();
692 }
693 
694 void
f24(unsigned int s)695 f24 (unsigned int s)
696 {
697   if ((s & (0xf000U << BITSH)) != (0x8000U << BITSH))
698     {
699       if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
700 	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
701 	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
702 	  || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
703 	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
704 	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
705 	  || s == -1U || s == -15U || s == -15550U || s == -15552U
706 	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
707 	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
708 	  || s == 2 || s == 24 || s == -32U || s == (3 << (BITSM1 - 2)) + 2
709 	  || s == 5 || s == -5U || s == -63U || s == -64U || s == -65U
710 	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
711 	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U
712 	  || s == __INT_MAX__)
713 	return;
714     }
715   else
716     {
717       if (s == (0x9000U << BITSH) - 1 || s == 1U + __INT_MAX__
718 	  || s == 6U + __INT_MAX__ || s == __INT_MAX__ + 9U)
719 	return;
720     }
721   abort ();
722 }
723 
724 int svals[] = {
725   0,
726   0x1cbf,
727   0x1cc0,
728   0x1fff,
729   0x2000,
730   0x20,
731   0x3cbf,
732   0x3cc0,
733   0x3f,
734   (-0x4000 << BITSH) - 1,
735   (-0x1000 << BITSH) - 1,
736   (-0x7000 << BITSH) - 1,
737   (-0x5fcf << BITSH) - 1,
738   (-0x4041 << BITSH),
739   (-0x4000 << BITSH),
740   (-0x1000 << BITSH),
741   (-0x7000 << BITSH),
742   (-0x4000 << BITSH) + 1,
743   1,
744   -1,
745   -15,
746   -15550,
747   -15552,
748   (0x7000 << BITSH) - 1,
749   (0x7000 << BITSH),
750   (1 << (BITSM1 - 2)),
751   (1 << (BITSM1 - 2)) - 1,
752   -__INT_MAX__ - 1,
753   2,
754   24,
755   -32,
756   (3 << (BITSM1 - 2)) + 2,
757   5,
758   -5,
759   -63,
760   -64,
761   -65,
762   -__INT_MAX__ + 4,
763   -8189,
764   -8191,
765   -8192,
766   -8193,
767   -8250,
768   -8255,
769   -8256,
770   -8257,
771   __INT_MAX__,
772   -__INT_MAX__ + 7,
773 };
774 
775 unsigned int uvals[] = {
776   0,
777   0x1cbf,
778   0x1cc0,
779   0x1fff,
780   0x2000,
781   0x20,
782   0x3cbf,
783   0x3cc0,
784   0x3f,
785   (0xc000U << BITSH) - 1,
786   (0xf000U << BITSH) - 1,
787   (0x9000U << BITSH) - 1,
788   (0xa031U << BITSH) - 1,
789   (0xbfbfU << BITSH),
790   (0xc000U << BITSH),
791   (0xf000U << BITSH),
792   (0x9000U << BITSH),
793   (0xc000U << BITSH) + 1,
794   1,
795   -1U,
796   -15U,
797   -15550U,
798   -15552U,
799   (0x7000 << BITSH) - 1,
800   (0x7000 << BITSH),
801   (1 << (BITSM1 - 2)),
802   (1 << (BITSM1 - 2)) - 1,
803   1U + __INT_MAX__,
804   2,
805   24,
806   -32U,
807   (3 << (BITSM1 - 2)) + 2,
808   5,
809   -5U,
810   -63U,
811   -64U,
812   -65U,
813   6U + __INT_MAX__,
814   -8189U,
815   -8191U,
816   -8192U,
817   -8193U,
818   -8250U,
819   -8255U,
820   -8256U,
821   -8257U,
822   __INT_MAX__,
823   __INT_MAX__ + 9U,
824 };
825 
826 int
main()827 main ()
828 {
829   int i;
830   for (i = 0; i < sizeof (svals) / sizeof (svals[0]); i++)
831     {
832       f2 (svals[i]);
833       f4 (svals[i]);
834       f5 (svals[i]);
835       f7 (svals[i]);
836       f8 (svals[i]);
837       f11 (svals[i]);
838       f12 (svals[i]);
839       f15 (svals[i]);
840       f16 (svals[i]);
841       f17 (svals[i]);
842       f18 (svals[i]);
843       f19 (svals[i]);
844       f20 (svals[i]);
845       f21 (svals[i]);
846       f22 (svals[i]);
847     }
848   for (i = 0; i < sizeof (uvals) / sizeof (uvals[0]); i++)
849     {
850       f1 (uvals[i]);
851       f3 (uvals[i]);
852       f6 (uvals[i]);
853       f9 (uvals[i]);
854       f10 (uvals[i]);
855       f13 (uvals[i]);
856       f14 (uvals[i]);
857       f23 (uvals[i]);
858       f24 (uvals[i]);
859     }
860   return 0;
861 }
862