Branch data Line data Source code
1 : : /* Generated automatically by the program `genmatch' from
2 : : a IL pattern matching and simplification description. */
3 : : #pragma GCC diagnostic push
4 : : #pragma GCC diagnostic ignored "-Wunused-variable"
5 : : #pragma GCC diagnostic ignored "-Wunused-function"
6 : :
7 : : #include "generic-match-auto.h"
8 : :
9 : : bool
10 : 928001252 : tree_nop_convert (tree t, tree *res_ops)
11 : : {
12 : 928001252 : const tree type = TREE_TYPE (t);
13 : 928001252 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 : 928001252 : if (TREE_SIDE_EFFECTS (t)) return false;
15 : 892727354 : switch (TREE_CODE (t))
16 : : {
17 : 173175450 : CASE_CONVERT:
18 : 173175450 : {
19 : 173175450 : tree _p0 = TREE_OPERAND (t, 0);
20 : 173175450 : {
21 : 173175450 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
22 : 173175450 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
23 : : )
24 : : {
25 : 139367873 : {
26 : 139367873 : res_ops[0] = captures[0];
27 : 139367873 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 0, __FILE__, __LINE__, false);
28 : 139367873 : return true;
29 : : }
30 : : }
31 : : }
32 : : break;
33 : : }
34 : 4082985 : case VIEW_CONVERT_EXPR:
35 : 4082985 : {
36 : 4082985 : tree _p0 = TREE_OPERAND (t, 0);
37 : 4082985 : {
38 : 4082985 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
39 : 3029421 : if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[0]))
40 : 3029403 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
41 : : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[0])))
42 : 6220374 : && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0])))
43 : : )
44 : : {
45 : 2137383 : {
46 : 2137383 : res_ops[0] = captures[0];
47 : 2137383 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1, __FILE__, __LINE__, false);
48 : 2137383 : return true;
49 : : }
50 : : }
51 : : }
52 : 1945602 : break;
53 : : }
54 : : default:;
55 : : }
56 : : return false;
57 : : }
58 : :
59 : : bool
60 : 84025234 : tree_with_known_nonzero_bits (tree t)
61 : : {
62 : 84025234 : const tree type = TREE_TYPE (t);
63 : 84025234 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
64 : 84025234 : if (TREE_SIDE_EFFECTS (t)) return false;
65 : 79256240 : switch (TREE_CODE (t))
66 : : {
67 : 281223 : case BIT_IOR_EXPR:
68 : 281223 : {
69 : 281223 : tree _p0 = TREE_OPERAND (t, 0);
70 : 281223 : tree _p1 = TREE_OPERAND (t, 1);
71 : 281223 : if (tree_with_known_nonzero_bits_1 (_p0))
72 : : {
73 : 273574 : {
74 : 273574 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
75 : 273574 : {
76 : 273574 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 39, __FILE__, __LINE__, false);
77 : 273574 : return true;
78 : : }
79 : : }
80 : : }
81 : 7649 : if (tree_with_known_nonzero_bits_1 (_p1))
82 : : {
83 : 210 : {
84 : 210 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
85 : 210 : {
86 : 210 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 39, __FILE__, __LINE__, false);
87 : 210 : return true;
88 : : }
89 : : }
90 : : }
91 : : break;
92 : : }
93 : 78982456 : default:;
94 : : }
95 : 78982456 : if (tree_with_known_nonzero_bits_1 (t))
96 : : {
97 : 39923926 : {
98 : 39923926 : tree captures[1] ATTRIBUTE_UNUSED = { t };
99 : 39923926 : {
100 : 39923926 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 40, __FILE__, __LINE__, false);
101 : 39923926 : return true;
102 : : }
103 : : }
104 : : }
105 : : return false;
106 : : }
107 : :
108 : : bool
109 : 0 : tree_signed_integer_sat_trunc (tree t, tree *res_ops)
110 : : {
111 : 0 : const tree type = TREE_TYPE (t);
112 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
113 : 0 : if (TREE_SIDE_EFFECTS (t)) return false;
114 : 0 : switch (TREE_CODE (t))
115 : : {
116 : 0 : case COND_EXPR:
117 : 0 : {
118 : 0 : tree _p0 = TREE_OPERAND (t, 0);
119 : 0 : tree _p1 = TREE_OPERAND (t, 1);
120 : 0 : tree _p2 = TREE_OPERAND (t, 2);
121 : 0 : switch (TREE_CODE (_p0))
122 : : {
123 : 0 : case GT_EXPR:
124 : 0 : {
125 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
126 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
127 : 0 : switch (TREE_CODE (_q20))
128 : : {
129 : 0 : case PLUS_EXPR:
130 : 0 : {
131 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
132 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
133 : 0 : switch (TREE_CODE (_q30))
134 : : {
135 : 0 : CASE_CONVERT:
136 : 0 : {
137 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
138 : 0 : switch (TREE_CODE (_q31))
139 : : {
140 : 0 : case INTEGER_CST:
141 : 0 : {
142 : 0 : switch (TREE_CODE (_q21))
143 : : {
144 : 0 : case INTEGER_CST:
145 : 0 : {
146 : 0 : switch (TREE_CODE (_p1))
147 : : {
148 : 0 : case BIT_XOR_EXPR:
149 : 0 : {
150 : 0 : tree _q80 = TREE_OPERAND (_p1, 0);
151 : 0 : tree _q81 = TREE_OPERAND (_p1, 1);
152 : 0 : switch (TREE_CODE (_q80))
153 : : {
154 : 0 : case INTEGER_CST:
155 : 0 : {
156 : 0 : switch (TREE_CODE (_q81))
157 : : {
158 : 0 : case NEGATE_EXPR:
159 : 0 : {
160 : 0 : tree _q100 = TREE_OPERAND (_q81, 0);
161 : 0 : switch (TREE_CODE (_q100))
162 : : {
163 : 0 : CASE_CONVERT:
164 : 0 : {
165 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
166 : 0 : switch (TREE_CODE (_q110))
167 : : {
168 : 0 : case LT_EXPR:
169 : 0 : {
170 : 0 : tree _q120 = TREE_OPERAND (_q110, 0);
171 : 0 : tree _q121 = TREE_OPERAND (_q110, 1);
172 : 0 : if ((_q120 == _q40 && ! TREE_SIDE_EFFECTS (_q120)) || (operand_equal_p (_q120, _q40, 0) && types_match (_q120, _q40)))
173 : : {
174 : 0 : if (integer_zerop (_q121))
175 : : {
176 : 0 : switch (TREE_CODE (_p2))
177 : : {
178 : 0 : CASE_CONVERT:
179 : 0 : {
180 : 0 : tree _q150 = TREE_OPERAND (_p2, 0);
181 : 0 : if ((_q150 == _q40 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q40, 0) && types_match (_q150, _q40)))
182 : : {
183 : 0 : {
184 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q30, _q31, _q21, _q80 };
185 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
186 : : )
187 : : {
188 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
189 : : )
190 : : {
191 : 0 : {
192 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
193 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
194 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
195 : 0 : itype_prec);
196 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
197 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
198 : 0 : itype_prec);
199 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
200 : 0 : itype_prec);
201 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
202 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
203 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
204 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
205 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
206 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
207 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
208 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
209 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
210 : 0 : && wi::eq_p (int_cst_3, otype_max)
211 : : )
212 : : {
213 : 0 : {
214 : 0 : res_ops[0] = captures[0];
215 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
216 : 0 : return true;
217 : : }
218 : : }
219 : 0 : }
220 : : }
221 : : }
222 : : }
223 : : }
224 : : break;
225 : : }
226 : : default:;
227 : : }
228 : : }
229 : : }
230 : : break;
231 : : }
232 : : default:;
233 : : }
234 : : break;
235 : : }
236 : : default:;
237 : : }
238 : : break;
239 : : }
240 : 0 : default:;
241 : : }
242 : 0 : {
243 : 0 : tree _q81_pops[1];
244 : 0 : if (tree_nop_convert (_q81, _q81_pops))
245 : : {
246 : 0 : tree _q100 = _q81_pops[0];
247 : 0 : switch (TREE_CODE (_q100))
248 : : {
249 : 0 : case NEGATE_EXPR:
250 : 0 : {
251 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
252 : 0 : {
253 : 0 : tree _q110_pops[1];
254 : 0 : if (tree_nop_convert (_q110, _q110_pops))
255 : : {
256 : 0 : tree _q120 = _q110_pops[0];
257 : 0 : switch (TREE_CODE (_q120))
258 : : {
259 : 0 : CASE_CONVERT:
260 : 0 : {
261 : 0 : tree _q130 = TREE_OPERAND (_q120, 0);
262 : 0 : switch (TREE_CODE (_q130))
263 : : {
264 : 0 : case LT_EXPR:
265 : 0 : {
266 : 0 : tree _q140 = TREE_OPERAND (_q130, 0);
267 : 0 : tree _q141 = TREE_OPERAND (_q130, 1);
268 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
269 : : {
270 : 0 : if (integer_zerop (_q141))
271 : : {
272 : 0 : switch (TREE_CODE (_p2))
273 : : {
274 : 0 : CASE_CONVERT:
275 : 0 : {
276 : 0 : tree _q170 = TREE_OPERAND (_p2, 0);
277 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
278 : : {
279 : 0 : {
280 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q30, _q31, _q21, _q80 };
281 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
282 : : )
283 : : {
284 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
285 : : )
286 : : {
287 : 0 : {
288 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
289 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
290 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
291 : 0 : itype_prec);
292 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
293 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
294 : 0 : itype_prec);
295 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
296 : 0 : itype_prec);
297 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
298 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
299 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
300 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
301 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
302 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
303 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
304 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
305 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
306 : 0 : && wi::eq_p (int_cst_3, otype_max)
307 : : )
308 : : {
309 : 0 : {
310 : 0 : res_ops[0] = captures[0];
311 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
312 : 0 : return true;
313 : : }
314 : : }
315 : 0 : }
316 : : }
317 : : }
318 : : }
319 : : }
320 : : break;
321 : : }
322 : : default:;
323 : : }
324 : : }
325 : : }
326 : : break;
327 : : }
328 : : default:;
329 : : }
330 : : break;
331 : : }
332 : : default:;
333 : : }
334 : : }
335 : : }
336 : 0 : break;
337 : : }
338 : : default:;
339 : : }
340 : : }
341 : : }
342 : 0 : break;
343 : : }
344 : 0 : case NEGATE_EXPR:
345 : 0 : {
346 : 0 : tree _q90 = TREE_OPERAND (_q80, 0);
347 : 0 : switch (TREE_CODE (_q90))
348 : : {
349 : 0 : CASE_CONVERT:
350 : 0 : {
351 : 0 : tree _q100 = TREE_OPERAND (_q90, 0);
352 : 0 : switch (TREE_CODE (_q100))
353 : : {
354 : 0 : case LT_EXPR:
355 : 0 : {
356 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
357 : 0 : tree _q111 = TREE_OPERAND (_q100, 1);
358 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
359 : : {
360 : 0 : if (integer_zerop (_q111))
361 : : {
362 : 0 : switch (TREE_CODE (_q81))
363 : : {
364 : 0 : case INTEGER_CST:
365 : 0 : {
366 : 0 : switch (TREE_CODE (_p2))
367 : : {
368 : 0 : CASE_CONVERT:
369 : 0 : {
370 : 0 : tree _q150 = TREE_OPERAND (_p2, 0);
371 : 0 : if ((_q150 == _q40 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q40, 0) && types_match (_q150, _q40)))
372 : : {
373 : 0 : {
374 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q30, _q31, _q21, _q81 };
375 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
376 : : )
377 : : {
378 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
379 : : )
380 : : {
381 : 0 : {
382 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
383 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
384 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
385 : 0 : itype_prec);
386 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
387 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
388 : 0 : itype_prec);
389 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
390 : 0 : itype_prec);
391 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
392 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
393 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
394 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
395 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
396 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
397 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
398 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
399 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
400 : 0 : && wi::eq_p (int_cst_3, otype_max)
401 : : )
402 : : {
403 : 0 : {
404 : 0 : res_ops[0] = captures[0];
405 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
406 : 0 : return true;
407 : : }
408 : : }
409 : 0 : }
410 : : }
411 : : }
412 : : }
413 : : }
414 : : break;
415 : : }
416 : : default:;
417 : : }
418 : : break;
419 : : }
420 : : default:;
421 : : }
422 : : }
423 : : }
424 : : break;
425 : : }
426 : : default:;
427 : : }
428 : : break;
429 : : }
430 : : default:;
431 : : }
432 : : break;
433 : : }
434 : 0 : default:;
435 : : }
436 : 0 : {
437 : 0 : tree _q80_pops[1];
438 : 0 : if (tree_nop_convert (_q80, _q80_pops))
439 : : {
440 : 0 : tree _q90 = _q80_pops[0];
441 : 0 : switch (TREE_CODE (_q90))
442 : : {
443 : 0 : case NEGATE_EXPR:
444 : 0 : {
445 : 0 : tree _q100 = TREE_OPERAND (_q90, 0);
446 : 0 : {
447 : 0 : tree _q100_pops[1];
448 : 0 : if (tree_nop_convert (_q100, _q100_pops))
449 : : {
450 : 0 : tree _q110 = _q100_pops[0];
451 : 0 : switch (TREE_CODE (_q110))
452 : : {
453 : 0 : CASE_CONVERT:
454 : 0 : {
455 : 0 : tree _q120 = TREE_OPERAND (_q110, 0);
456 : 0 : switch (TREE_CODE (_q120))
457 : : {
458 : 0 : case LT_EXPR:
459 : 0 : {
460 : 0 : tree _q130 = TREE_OPERAND (_q120, 0);
461 : 0 : tree _q131 = TREE_OPERAND (_q120, 1);
462 : 0 : if ((_q130 == _q40 && ! TREE_SIDE_EFFECTS (_q130)) || (operand_equal_p (_q130, _q40, 0) && types_match (_q130, _q40)))
463 : : {
464 : 0 : if (integer_zerop (_q131))
465 : : {
466 : 0 : switch (TREE_CODE (_q81))
467 : : {
468 : 0 : case INTEGER_CST:
469 : 0 : {
470 : 0 : switch (TREE_CODE (_p2))
471 : : {
472 : 0 : CASE_CONVERT:
473 : 0 : {
474 : 0 : tree _q170 = TREE_OPERAND (_p2, 0);
475 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
476 : : {
477 : 0 : {
478 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q30, _q31, _q21, _q81 };
479 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
480 : : )
481 : : {
482 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
483 : : )
484 : : {
485 : 0 : {
486 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
487 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
488 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
489 : 0 : itype_prec);
490 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
491 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
492 : 0 : itype_prec);
493 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
494 : 0 : itype_prec);
495 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
496 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
497 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
498 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
499 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
500 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
501 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
502 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
503 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
504 : 0 : && wi::eq_p (int_cst_3, otype_max)
505 : : )
506 : : {
507 : 0 : {
508 : 0 : res_ops[0] = captures[0];
509 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
510 : 0 : return true;
511 : : }
512 : : }
513 : 0 : }
514 : : }
515 : : }
516 : : }
517 : : }
518 : : break;
519 : : }
520 : : default:;
521 : : }
522 : : break;
523 : : }
524 : : default:;
525 : : }
526 : : }
527 : : }
528 : : break;
529 : : }
530 : : default:;
531 : : }
532 : : break;
533 : : }
534 : : default:;
535 : : }
536 : : }
537 : : }
538 : 0 : break;
539 : : }
540 : : default:;
541 : : }
542 : : }
543 : : }
544 : 0 : break;
545 : : }
546 : : default:;
547 : : }
548 : : break;
549 : : }
550 : : default:;
551 : : }
552 : : break;
553 : : }
554 : : default:;
555 : : }
556 : : break;
557 : : }
558 : 0 : case INTEGER_CST:
559 : 0 : {
560 : 0 : switch (TREE_CODE (_q31))
561 : : {
562 : 0 : CASE_CONVERT:
563 : 0 : {
564 : 0 : tree _q50 = TREE_OPERAND (_q31, 0);
565 : 0 : switch (TREE_CODE (_q21))
566 : : {
567 : 0 : case INTEGER_CST:
568 : 0 : {
569 : 0 : switch (TREE_CODE (_p1))
570 : : {
571 : 0 : case BIT_XOR_EXPR:
572 : 0 : {
573 : 0 : tree _q80 = TREE_OPERAND (_p1, 0);
574 : 0 : tree _q81 = TREE_OPERAND (_p1, 1);
575 : 0 : switch (TREE_CODE (_q80))
576 : : {
577 : 0 : case INTEGER_CST:
578 : 0 : {
579 : 0 : switch (TREE_CODE (_q81))
580 : : {
581 : 0 : case NEGATE_EXPR:
582 : 0 : {
583 : 0 : tree _q100 = TREE_OPERAND (_q81, 0);
584 : 0 : switch (TREE_CODE (_q100))
585 : : {
586 : 0 : CASE_CONVERT:
587 : 0 : {
588 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
589 : 0 : switch (TREE_CODE (_q110))
590 : : {
591 : 0 : case LT_EXPR:
592 : 0 : {
593 : 0 : tree _q120 = TREE_OPERAND (_q110, 0);
594 : 0 : tree _q121 = TREE_OPERAND (_q110, 1);
595 : 0 : if ((_q120 == _q50 && ! TREE_SIDE_EFFECTS (_q120)) || (operand_equal_p (_q120, _q50, 0) && types_match (_q120, _q50)))
596 : : {
597 : 0 : if (integer_zerop (_q121))
598 : : {
599 : 0 : switch (TREE_CODE (_p2))
600 : : {
601 : 0 : CASE_CONVERT:
602 : 0 : {
603 : 0 : tree _q150 = TREE_OPERAND (_p2, 0);
604 : 0 : if ((_q150 == _q50 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q50, 0) && types_match (_q150, _q50)))
605 : : {
606 : 0 : {
607 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q50, _q31, _q30, _q21, _q80 };
608 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
609 : : )
610 : : {
611 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
612 : : )
613 : : {
614 : 0 : {
615 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
616 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
617 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
618 : 0 : itype_prec);
619 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
620 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
621 : 0 : itype_prec);
622 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
623 : 0 : itype_prec);
624 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
625 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
626 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
627 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
628 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
629 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
630 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
631 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
632 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
633 : 0 : && wi::eq_p (int_cst_3, otype_max)
634 : : )
635 : : {
636 : 0 : {
637 : 0 : res_ops[0] = captures[0];
638 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
639 : 0 : return true;
640 : : }
641 : : }
642 : 0 : }
643 : : }
644 : : }
645 : : }
646 : : }
647 : : break;
648 : : }
649 : : default:;
650 : : }
651 : : }
652 : : }
653 : : break;
654 : : }
655 : : default:;
656 : : }
657 : : break;
658 : : }
659 : : default:;
660 : : }
661 : : break;
662 : : }
663 : 0 : default:;
664 : : }
665 : 0 : {
666 : 0 : tree _q81_pops[1];
667 : 0 : if (tree_nop_convert (_q81, _q81_pops))
668 : : {
669 : 0 : tree _q100 = _q81_pops[0];
670 : 0 : switch (TREE_CODE (_q100))
671 : : {
672 : 0 : case NEGATE_EXPR:
673 : 0 : {
674 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
675 : 0 : {
676 : 0 : tree _q110_pops[1];
677 : 0 : if (tree_nop_convert (_q110, _q110_pops))
678 : : {
679 : 0 : tree _q120 = _q110_pops[0];
680 : 0 : switch (TREE_CODE (_q120))
681 : : {
682 : 0 : CASE_CONVERT:
683 : 0 : {
684 : 0 : tree _q130 = TREE_OPERAND (_q120, 0);
685 : 0 : switch (TREE_CODE (_q130))
686 : : {
687 : 0 : case LT_EXPR:
688 : 0 : {
689 : 0 : tree _q140 = TREE_OPERAND (_q130, 0);
690 : 0 : tree _q141 = TREE_OPERAND (_q130, 1);
691 : 0 : if ((_q140 == _q50 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q50, 0) && types_match (_q140, _q50)))
692 : : {
693 : 0 : if (integer_zerop (_q141))
694 : : {
695 : 0 : switch (TREE_CODE (_p2))
696 : : {
697 : 0 : CASE_CONVERT:
698 : 0 : {
699 : 0 : tree _q170 = TREE_OPERAND (_p2, 0);
700 : 0 : if ((_q170 == _q50 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q50, 0) && types_match (_q170, _q50)))
701 : : {
702 : 0 : {
703 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q50, _q31, _q30, _q21, _q80 };
704 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
705 : : )
706 : : {
707 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
708 : : )
709 : : {
710 : 0 : {
711 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
712 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
713 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
714 : 0 : itype_prec);
715 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
716 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
717 : 0 : itype_prec);
718 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
719 : 0 : itype_prec);
720 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
721 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
722 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
723 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
724 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
725 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
726 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
727 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
728 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
729 : 0 : && wi::eq_p (int_cst_3, otype_max)
730 : : )
731 : : {
732 : 0 : {
733 : 0 : res_ops[0] = captures[0];
734 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
735 : 0 : return true;
736 : : }
737 : : }
738 : 0 : }
739 : : }
740 : : }
741 : : }
742 : : }
743 : : break;
744 : : }
745 : : default:;
746 : : }
747 : : }
748 : : }
749 : : break;
750 : : }
751 : : default:;
752 : : }
753 : : break;
754 : : }
755 : : default:;
756 : : }
757 : : }
758 : : }
759 : 0 : break;
760 : : }
761 : : default:;
762 : : }
763 : : }
764 : : }
765 : 0 : break;
766 : : }
767 : 0 : case NEGATE_EXPR:
768 : 0 : {
769 : 0 : tree _q90 = TREE_OPERAND (_q80, 0);
770 : 0 : switch (TREE_CODE (_q90))
771 : : {
772 : 0 : CASE_CONVERT:
773 : 0 : {
774 : 0 : tree _q100 = TREE_OPERAND (_q90, 0);
775 : 0 : switch (TREE_CODE (_q100))
776 : : {
777 : 0 : case LT_EXPR:
778 : 0 : {
779 : 0 : tree _q110 = TREE_OPERAND (_q100, 0);
780 : 0 : tree _q111 = TREE_OPERAND (_q100, 1);
781 : 0 : if ((_q110 == _q50 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q50, 0) && types_match (_q110, _q50)))
782 : : {
783 : 0 : if (integer_zerop (_q111))
784 : : {
785 : 0 : switch (TREE_CODE (_q81))
786 : : {
787 : 0 : case INTEGER_CST:
788 : 0 : {
789 : 0 : switch (TREE_CODE (_p2))
790 : : {
791 : 0 : CASE_CONVERT:
792 : 0 : {
793 : 0 : tree _q150 = TREE_OPERAND (_p2, 0);
794 : 0 : if ((_q150 == _q50 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q50, 0) && types_match (_q150, _q50)))
795 : : {
796 : 0 : {
797 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q50, _q31, _q30, _q21, _q81 };
798 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
799 : : )
800 : : {
801 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
802 : : )
803 : : {
804 : 0 : {
805 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
806 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
807 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
808 : 0 : itype_prec);
809 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
810 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
811 : 0 : itype_prec);
812 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
813 : 0 : itype_prec);
814 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
815 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
816 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
817 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
818 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
819 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
820 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
821 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
822 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
823 : 0 : && wi::eq_p (int_cst_3, otype_max)
824 : : )
825 : : {
826 : 0 : {
827 : 0 : res_ops[0] = captures[0];
828 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
829 : 0 : return true;
830 : : }
831 : : }
832 : 0 : }
833 : : }
834 : : }
835 : : }
836 : : }
837 : : break;
838 : : }
839 : : default:;
840 : : }
841 : : break;
842 : : }
843 : : default:;
844 : : }
845 : : }
846 : : }
847 : : break;
848 : : }
849 : : default:;
850 : : }
851 : : break;
852 : : }
853 : : default:;
854 : : }
855 : : break;
856 : : }
857 : 0 : default:;
858 : : }
859 : 0 : {
860 : 0 : tree _q80_pops[1];
861 : 0 : if (tree_nop_convert (_q80, _q80_pops))
862 : : {
863 : 0 : tree _q90 = _q80_pops[0];
864 : 0 : switch (TREE_CODE (_q90))
865 : : {
866 : 0 : case NEGATE_EXPR:
867 : 0 : {
868 : 0 : tree _q100 = TREE_OPERAND (_q90, 0);
869 : 0 : {
870 : 0 : tree _q100_pops[1];
871 : 0 : if (tree_nop_convert (_q100, _q100_pops))
872 : : {
873 : 0 : tree _q110 = _q100_pops[0];
874 : 0 : switch (TREE_CODE (_q110))
875 : : {
876 : 0 : CASE_CONVERT:
877 : 0 : {
878 : 0 : tree _q120 = TREE_OPERAND (_q110, 0);
879 : 0 : switch (TREE_CODE (_q120))
880 : : {
881 : 0 : case LT_EXPR:
882 : 0 : {
883 : 0 : tree _q130 = TREE_OPERAND (_q120, 0);
884 : 0 : tree _q131 = TREE_OPERAND (_q120, 1);
885 : 0 : if ((_q130 == _q50 && ! TREE_SIDE_EFFECTS (_q130)) || (operand_equal_p (_q130, _q50, 0) && types_match (_q130, _q50)))
886 : : {
887 : 0 : if (integer_zerop (_q131))
888 : : {
889 : 0 : switch (TREE_CODE (_q81))
890 : : {
891 : 0 : case INTEGER_CST:
892 : 0 : {
893 : 0 : switch (TREE_CODE (_p2))
894 : : {
895 : 0 : CASE_CONVERT:
896 : 0 : {
897 : 0 : tree _q170 = TREE_OPERAND (_p2, 0);
898 : 0 : if ((_q170 == _q50 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q50, 0) && types_match (_q170, _q50)))
899 : : {
900 : 0 : {
901 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q50, _q31, _q30, _q21, _q81 };
902 : 0 : if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type)
903 : : )
904 : : {
905 : 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
906 : : )
907 : : {
908 : 0 : {
909 : 0 : unsigned itype_prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
910 : 0 : unsigned otype_prec = TYPE_PRECISION (type);
911 : 0 : wide_int offset = wi::uhwi (HOST_WIDE_INT_1U << (otype_prec - 1),
912 : 0 : itype_prec);
913 : 0 : wide_int limit_0 = wi::mask (otype_prec, false, itype_prec);
914 : 0 : wide_int limit_1 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 3,
915 : 0 : itype_prec);
916 : 0 : wide_int limit_2 = wi::uhwi ((HOST_WIDE_INT_1U << otype_prec) - 2,
917 : 0 : itype_prec);
918 : 0 : wide_int otype_max = wi::mask (otype_prec - 1, false, otype_prec);
919 : 0 : wide_int itype_max = wi::mask (otype_prec - 1, false, itype_prec);
920 : 0 : wide_int int_cst_1 = wi::to_wide (captures[2]);
921 : 0 : wide_int int_cst_2 = wi::to_wide (captures[3]);
922 : 0 : wide_int int_cst_3 = wi::to_wide (captures[4]);
923 : 0 : if (((wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_0))
924 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_2))
925 : 0 : || (wi::eq_p (int_cst_1, offset) && wi::eq_p (int_cst_2, limit_2))
926 : 0 : || (wi::eq_p (int_cst_1, itype_max) && wi::eq_p (int_cst_2, limit_1)))
927 : 0 : && wi::eq_p (int_cst_3, otype_max)
928 : : )
929 : : {
930 : 0 : {
931 : 0 : res_ops[0] = captures[0];
932 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, false);
933 : 0 : return true;
934 : : }
935 : : }
936 : 0 : }
937 : : }
938 : : }
939 : : }
940 : : }
941 : : break;
942 : : }
943 : : default:;
944 : : }
945 : : break;
946 : : }
947 : : default:;
948 : : }
949 : : }
950 : : }
951 : : break;
952 : : }
953 : : default:;
954 : : }
955 : : break;
956 : : }
957 : : default:;
958 : : }
959 : : }
960 : : }
961 : 0 : break;
962 : : }
963 : : default:;
964 : : }
965 : : }
966 : : }
967 : 0 : break;
968 : : }
969 : : default:;
970 : : }
971 : : break;
972 : : }
973 : : default:;
974 : : }
975 : : break;
976 : : }
977 : : default:;
978 : : }
979 : : break;
980 : : }
981 : : default:;
982 : : }
983 : : break;
984 : : }
985 : : default:;
986 : : }
987 : : break;
988 : : }
989 : : default:;
990 : : }
991 : : break;
992 : : }
993 : : default:;
994 : : }
995 : : return false;
996 : : }
997 : :
998 : : tree
999 : 3 : generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1000 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1001 : : const enum tree_code ARG_UNUSED (op))
1002 : : {
1003 : 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1004 : 3 : if (INTEGRAL_TYPE_P (type)
1005 : : )
1006 : : {
1007 : 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail308;
1008 : 3 : {
1009 : 3 : tree res_op0;
1010 : 3 : {
1011 : 3 : tree _o1[2], _r1;
1012 : 3 : _o1[0] = captures[1];
1013 : 3 : _o1[1] = captures[4];
1014 : 3 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1015 : 3 : res_op0 = _r1;
1016 : : }
1017 : 3 : tree res_op1;
1018 : 3 : res_op1 = captures[2];
1019 : 3 : tree _r;
1020 : 3 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
1021 : 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 183, __FILE__, __LINE__, true);
1022 : 3 : return _r;
1023 : : }
1024 : 0 : next_after_fail308:;
1025 : : }
1026 : : return NULL_TREE;
1027 : : }
1028 : :
1029 : : tree
1030 : 6305 : generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1031 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1032 : : {
1033 : 6305 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1034 : 6305 : {
1035 : 6305 : bool wascmp;
1036 : 6305 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
1037 : 6305 : && (!wascmp || element_precision (type) == 1)
1038 : : )
1039 : : {
1040 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail314;
1041 : 1 : {
1042 : 1 : tree res_op0;
1043 : 1 : res_op0 = captures[0];
1044 : 1 : tree res_op1;
1045 : 1 : {
1046 : 1 : tree _o1[1], _r1;
1047 : 1 : _o1[0] = captures[3];
1048 : 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1049 : 1 : res_op1 = _r1;
1050 : : }
1051 : 1 : tree _r;
1052 : 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
1053 : 1 : if (TREE_SIDE_EFFECTS (captures[2]))
1054 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1055 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 189, __FILE__, __LINE__, true);
1056 : 1 : return _r;
1057 : : }
1058 : 0 : next_after_fail314:;
1059 : : }
1060 : : }
1061 : 6304 : return NULL_TREE;
1062 : : }
1063 : :
1064 : : tree
1065 : 0 : generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1066 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1067 : : const enum tree_code ARG_UNUSED (op))
1068 : : {
1069 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1070 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail328;
1071 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail328;
1072 : 0 : {
1073 : 0 : tree _r;
1074 : 0 : _r = captures[0];
1075 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 196, __FILE__, __LINE__, true);
1076 : : return _r;
1077 : : }
1078 : : next_after_fail328:;
1079 : : return NULL_TREE;
1080 : : }
1081 : :
1082 : : tree
1083 : 211032 : generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1084 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1085 : : const enum tree_code ARG_UNUSED (op))
1086 : : {
1087 : 211032 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1088 : 211032 : {
1089 : 211032 : bool wascmp;
1090 : 211032 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1091 : 211032 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
1092 : : )
1093 : : {
1094 : 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
1095 : 47 : {
1096 : 47 : tree res_op0;
1097 : 47 : res_op0 = wascmp
1098 : 47 : ? constant_boolean_node (true, type)
1099 : 40 : : build_all_ones_cst (TREE_TYPE (captures[0]));
1100 : 47 : tree _r;
1101 : 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1102 : 47 : if (TREE_SIDE_EFFECTS (captures[0]))
1103 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1104 : 47 : if (TREE_SIDE_EFFECTS (captures[1]))
1105 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1106 : 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
1107 : 47 : return _r;
1108 : : }
1109 : 0 : next_after_fail335:;
1110 : : }
1111 : : }
1112 : 210985 : return NULL_TREE;
1113 : : }
1114 : :
1115 : : tree
1116 : 1825253 : generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1117 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1118 : : const enum tree_code ARG_UNUSED (bitop))
1119 : : {
1120 : 1825253 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1121 : 1825253 : if (((TREE_CODE (captures[3]) == INTEGER_CST
1122 : 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1123 : 0 : && (int_fits_type_p (captures[3], TREE_TYPE (captures[1]))
1124 : 0 : || tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
1125 : 1825253 : || types_match (captures[1], captures[3]))
1126 : 1733475 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
1127 : 1733212 : && !VECTOR_TYPE_P (TREE_TYPE (captures[1]))
1128 : 1733212 : && TREE_CODE (TREE_TYPE (captures[1])) != OFFSET_TYPE
1129 : 1733212 : && (bitop != BIT_AND_EXPR ||
1130 : :
1131 : : )
1132 : 1825253 : && (
1133 : 972979 : TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
1134 : : || (
1135 : :
1136 : : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
1137 : 948117 : || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
1138 : 948117 : || !type_has_mode_precision_p (type)
1139 : 948117 : || (
1140 : :
1141 : : && TREE_CODE (captures[3]) != INTEGER_CST
1142 : : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
1143 : : && single_use (captures[0])
1144 : : && single_use (captures[2])))
1145 : : )
1146 : : {
1147 : 24862 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail354;
1148 : 24862 : {
1149 : 24862 : tree res_op0;
1150 : 24862 : {
1151 : 24862 : tree _o1[2], _r1;
1152 : 24862 : _o1[0] = captures[1];
1153 : 24862 : {
1154 : 24862 : tree _o2[1], _r2;
1155 : 24862 : _o2[0] = captures[3];
1156 : 24862 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
1157 : : {
1158 : 14547 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
1159 : : }
1160 : : else
1161 : : _r2 = _o2[0];
1162 : 24862 : _o1[1] = _r2;
1163 : : }
1164 : 24862 : _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1165 : 24862 : res_op0 = _r1;
1166 : : }
1167 : 24862 : tree _r;
1168 : 24862 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1169 : 24862 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
1170 : 24862 : return _r;
1171 : : }
1172 : 0 : next_after_fail354:;
1173 : : }
1174 : : return NULL_TREE;
1175 : : }
1176 : :
1177 : : tree
1178 : 0 : generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1179 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1180 : : const enum tree_code ARG_UNUSED (op))
1181 : : {
1182 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1183 : 0 : if (bitwise_equal_p (captures[4], captures[7])
1184 : : )
1185 : : {
1186 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail367;
1187 : 0 : {
1188 : 0 : tree res_op0;
1189 : 0 : {
1190 : 0 : tree _o1[2], _r1;
1191 : 0 : {
1192 : 0 : tree _o2[2], _r2;
1193 : 0 : _o2[0] = captures[5];
1194 : 0 : {
1195 : 0 : tree _o3[1], _r3;
1196 : 0 : _o3[0] = captures[6];
1197 : 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
1198 : : {
1199 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
1200 : : }
1201 : : else
1202 : : _r3 = _o3[0];
1203 : 0 : _o2[1] = _r3;
1204 : : }
1205 : 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1206 : 0 : _o1[0] = _r2;
1207 : : }
1208 : 0 : {
1209 : 0 : tree _o2[1], _r2;
1210 : 0 : _o2[0] = captures[4];
1211 : 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
1212 : : {
1213 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
1214 : : }
1215 : : else
1216 : : _r2 = _o2[0];
1217 : 0 : _o1[1] = _r2;
1218 : : }
1219 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1220 : 0 : res_op0 = _r1;
1221 : : }
1222 : 0 : tree _r;
1223 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1224 : 0 : if (TREE_SIDE_EFFECTS (captures[7]))
1225 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
1226 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
1227 : 0 : return _r;
1228 : : }
1229 : 0 : next_after_fail367:;
1230 : : }
1231 : : return NULL_TREE;
1232 : : }
1233 : :
1234 : : tree
1235 : 56 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1236 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1237 : : const enum tree_code ARG_UNUSED (inner_op),
1238 : : const enum tree_code ARG_UNUSED (outer_op))
1239 : : {
1240 : 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1241 : 56 : {
1242 : 56 : bool fail = false;
1243 : 56 : wide_int zero_mask_not;
1244 : 56 : wide_int C0;
1245 : 56 : wide_int cst_emit;
1246 : 56 : if (TREE_CODE (captures[1]) == SSA_NAME)
1247 : 0 : zero_mask_not = get_nonzero_bits (captures[1]);
1248 : : else
1249 : : fail = true;
1250 : 56 : if (inner_op == BIT_XOR_EXPR)
1251 : : {
1252 : 33 : C0 = wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3]));
1253 : 33 : cst_emit = C0 | wi::to_wide (captures[3]);
1254 : : }
1255 : : else
1256 : : {
1257 : 23 : C0 = wi::to_wide (captures[2]);
1258 : 23 : cst_emit = C0 ^ wi::to_wide (captures[3]);
1259 : : }
1260 : 56 : if (!fail && (C0 & zero_mask_not) == 0
1261 : : )
1262 : : {
1263 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail381;
1264 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail381;
1265 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail381;
1266 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
1267 : 0 : {
1268 : 0 : tree res_op0;
1269 : 0 : res_op0 = captures[1];
1270 : 0 : tree res_op1;
1271 : 0 : res_op1 = wide_int_to_tree (type, cst_emit);
1272 : 0 : tree _r;
1273 : 0 : _r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
1274 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
1275 : 0 : return _r;
1276 : : }
1277 : 56 : next_after_fail381:;
1278 : : }
1279 : : else
1280 : : {
1281 : 56 : if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0
1282 : : )
1283 : : {
1284 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail382;
1285 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail382;
1286 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail382;
1287 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail382;
1288 : 0 : {
1289 : 0 : tree res_op0;
1290 : 0 : res_op0 = captures[1];
1291 : 0 : tree res_op1;
1292 : 0 : res_op1 = wide_int_to_tree (type, cst_emit);
1293 : 0 : tree _r;
1294 : 0 : _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
1295 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 234, __FILE__, __LINE__, true);
1296 : 0 : return _r;
1297 : : }
1298 : 56 : next_after_fail382:;
1299 : : }
1300 : : }
1301 : 56 : }
1302 : 56 : return NULL_TREE;
1303 : : }
1304 : :
1305 : : tree
1306 : 4 : generic_simplify_138 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1307 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1308 : : {
1309 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1310 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail428;
1311 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail428;
1312 : 4 : {
1313 : 4 : tree _r;
1314 : 4 : _r = constant_boolean_node (true, type);
1315 : 4 : if (TREE_SIDE_EFFECTS (captures[1]))
1316 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1317 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 254, __FILE__, __LINE__, true);
1318 : : return _r;
1319 : : }
1320 : : next_after_fail428:;
1321 : : return NULL_TREE;
1322 : : }
1323 : :
1324 : : tree
1325 : 4 : generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1326 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1327 : : {
1328 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1329 : 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail431;
1330 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail431;
1331 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
1332 : 4 : {
1333 : 4 : tree _r;
1334 : 4 : _r = captures[0];
1335 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 257, __FILE__, __LINE__, true);
1336 : : return _r;
1337 : : }
1338 : : next_after_fail431:;
1339 : : return NULL_TREE;
1340 : : }
1341 : :
1342 : : tree
1343 : 0 : generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1344 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1345 : : const enum tree_code ARG_UNUSED (op))
1346 : : {
1347 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1348 : 0 : if (INTEGRAL_TYPE_P (type)
1349 : 0 : && tree_int_cst_sgn (captures[5]) > 0
1350 : 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
1351 : : )
1352 : : {
1353 : 0 : {
1354 : 0 : tree t = type;
1355 : 0 : if (!TYPE_OVERFLOW_WRAPS (t))
1356 : 0 : t = unsigned_type_for (t);
1357 : 0 : wide_int wone = wi::one (TYPE_PRECISION (type));
1358 : 0 : wide_int c = wi::add (wi::to_wide (captures[3]),
1359 : 0 : wi::lshift (wone, wi::to_wide (captures[5])));
1360 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail434;
1361 : 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail434;
1362 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail434;
1363 : 0 : {
1364 : 0 : tree res_op0;
1365 : 0 : {
1366 : 0 : tree _o1[2], _r1;
1367 : 0 : {
1368 : 0 : tree _o2[1], _r2;
1369 : 0 : _o2[0] = captures[2];
1370 : 0 : if (TREE_TYPE (_o2[0]) != t)
1371 : : {
1372 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
1373 : : }
1374 : : else
1375 : : _r2 = _o2[0];
1376 : 0 : _o1[0] = _r2;
1377 : : }
1378 : 0 : _o1[1] = wide_int_to_tree (t, c);
1379 : 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
1380 : 0 : res_op0 = _r1;
1381 : : }
1382 : 0 : tree _r;
1383 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1384 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 221, __FILE__, __LINE__, true);
1385 : 0 : return _r;
1386 : : }
1387 : 0 : next_after_fail434:;
1388 : 0 : }
1389 : : }
1390 : : return NULL_TREE;
1391 : : }
1392 : :
1393 : : tree
1394 : 0 : generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1395 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1396 : : {
1397 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1398 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail438;
1399 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail438;
1400 : 0 : {
1401 : 0 : tree _r;
1402 : 0 : _r = captures[1];
1403 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
1404 : : return _r;
1405 : : }
1406 : : next_after_fail438:;
1407 : : return NULL_TREE;
1408 : : }
1409 : :
1410 : : tree
1411 : 0 : generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1412 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1413 : : {
1414 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1415 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail441;
1416 : 0 : {
1417 : 0 : tree res_op0;
1418 : 0 : {
1419 : 0 : tree _o1[2], _r1;
1420 : 0 : _o1[0] = captures[1];
1421 : 0 : _o1[1] = captures[2];
1422 : 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1423 : 0 : res_op0 = _r1;
1424 : : }
1425 : 0 : tree _r;
1426 : 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
1427 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 262, __FILE__, __LINE__, true);
1428 : : return _r;
1429 : : }
1430 : 0 : next_after_fail441:;
1431 : 0 : return NULL_TREE;
1432 : : }
1433 : :
1434 : : tree
1435 : 1 : generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1436 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1437 : : {
1438 : 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1439 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail445;
1440 : 1 : {
1441 : 1 : tree res_op0;
1442 : 1 : res_op0 = captures[0];
1443 : 1 : tree _r;
1444 : 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
1445 : 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1446 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1447 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 266, __FILE__, __LINE__, true);
1448 : : return _r;
1449 : : }
1450 : 0 : next_after_fail445:;
1451 : 0 : return NULL_TREE;
1452 : : }
1453 : :
1454 : : tree
1455 : 0 : generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1456 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1457 : : {
1458 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1459 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail450;
1460 : 0 : {
1461 : 0 : tree res_op0;
1462 : 0 : res_op0 = captures[0];
1463 : 0 : tree res_op1;
1464 : 0 : res_op1 = captures[1];
1465 : 0 : tree _r;
1466 : 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1467 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 271, __FILE__, __LINE__, true);
1468 : : return _r;
1469 : : }
1470 : 0 : next_after_fail450:;
1471 : 0 : return NULL_TREE;
1472 : : }
1473 : :
1474 : : tree
1475 : 731 : generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1476 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1477 : : {
1478 : 731 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1479 : 731 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
1480 : : )
1481 : : {
1482 : 731 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail455;
1483 : 731 : {
1484 : 731 : tree res_op0;
1485 : 731 : {
1486 : 731 : tree _o1[2], _r1;
1487 : 731 : {
1488 : 731 : tree _o2[1], _r2;
1489 : 731 : _o2[0] = captures[2];
1490 : 731 : if (TREE_TYPE (_o2[0]) != type)
1491 : : {
1492 : 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
1493 : : }
1494 : : else
1495 : : _r2 = _o2[0];
1496 : 731 : _o1[0] = _r2;
1497 : : }
1498 : 731 : _o1[1] = captures[3];
1499 : 731 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1500 : 731 : res_op0 = _r1;
1501 : : }
1502 : 731 : tree _r;
1503 : 731 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
1504 : 731 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 276, __FILE__, __LINE__, true);
1505 : 731 : return _r;
1506 : : }
1507 : 0 : next_after_fail455:;
1508 : : }
1509 : : return NULL_TREE;
1510 : : }
1511 : :
1512 : : tree
1513 : 11 : generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1514 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1515 : : const combined_fn ARG_UNUSED (PARITY))
1516 : : {
1517 : 11 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1518 : 11 : if (types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
1519 : : )
1520 : : {
1521 : 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail464;
1522 : 10 : {
1523 : 10 : tree res_op0;
1524 : 10 : {
1525 : 10 : tree _o1[2], _r1;
1526 : 10 : _o1[0] = captures[1];
1527 : 10 : _o1[1] = captures[3];
1528 : 10 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1529 : 10 : res_op0 = _r1;
1530 : : }
1531 : 10 : tree _r;
1532 : 10 : _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
1533 : 10 : if (!_r)
1534 : 0 : goto next_after_fail464;
1535 : 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 284, __FILE__, __LINE__, true);
1536 : 10 : return _r;
1537 : : }
1538 : : next_after_fail464:;
1539 : : }
1540 : : else
1541 : : {
1542 : 2 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1543 : 2 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
1544 : : )
1545 : : {
1546 : 1 : {
1547 : 1 : tree utype = TREE_TYPE (captures[1]);
1548 : 1 : if (TYPE_PRECISION (utype) < TYPE_PRECISION (TREE_TYPE (captures[3])))
1549 : 1 : utype = TREE_TYPE (captures[3]);
1550 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
1551 : 1 : {
1552 : 1 : tree res_op0;
1553 : 1 : {
1554 : 1 : tree _o1[2], _r1;
1555 : 1 : {
1556 : 1 : tree _o2[1], _r2;
1557 : 1 : _o2[0] = captures[1];
1558 : 1 : if (TREE_TYPE (_o2[0]) != utype)
1559 : : {
1560 : 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1561 : : }
1562 : : else
1563 : : _r2 = _o2[0];
1564 : 1 : _o1[0] = _r2;
1565 : : }
1566 : 1 : {
1567 : 1 : tree _o2[1], _r2;
1568 : 1 : _o2[0] = captures[3];
1569 : 1 : if (TREE_TYPE (_o2[0]) != utype)
1570 : : {
1571 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1572 : : }
1573 : : else
1574 : : _r2 = _o2[0];
1575 : 1 : _o1[1] = _r2;
1576 : : }
1577 : 1 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1578 : 1 : res_op0 = _r1;
1579 : : }
1580 : 1 : tree _r;
1581 : 1 : _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
1582 : 1 : if (!_r)
1583 : 1 : goto next_after_fail465;
1584 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 285, __FILE__, __LINE__, true);
1585 : 0 : return _r;
1586 : : }
1587 : : next_after_fail465:;
1588 : : }
1589 : : }
1590 : : }
1591 : : return NULL_TREE;
1592 : : }
1593 : :
1594 : : tree
1595 : 4136 : generic_simplify_190 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1596 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1597 : : const enum tree_code ARG_UNUSED (op))
1598 : : {
1599 : 4136 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1600 : 4136 : {
1601 : 4136 : poly_widest_int factor;
1602 : 4136 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
1603 : 4105 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1604 : 8241 : && multiple_p (wi::to_poly_widest (captures[3]), wi::to_widest (captures[1]), &factor)
1605 : : )
1606 : : {
1607 : 4056 : {
1608 : 4056 : wi::overflow_type overflow;
1609 : 4056 : wide_int mul;
1610 : 4056 : if (types_match (type, TREE_TYPE (captures[2]))
1611 : 4010 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1612 : 0 : && TREE_CODE (captures[2]) == INTEGER_CST
1613 : 0 : && TREE_CODE (captures[3]) == INTEGER_CST
1614 : 4056 : && (mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
1615 : 0 : TYPE_SIGN (type), &overflow),
1616 : 0 : !overflow)
1617 : 4056 : && (TYPE_UNSIGNED (type)
1618 : 4056 : || known_eq (factor, 1)
1619 : 0 : || (get_range_pos_neg (captures[0])
1620 : 0 : | (((op == PLUS_EXPR) ^ (tree_int_cst_sgn (captures[2]) < 0))
1621 : 0 : ? 1 : 2)) != 3)
1622 : : )
1623 : : {
1624 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail485;
1625 : 0 : {
1626 : 0 : tree res_op0;
1627 : 0 : {
1628 : 0 : tree _o1[2], _r1;
1629 : 0 : _o1[0] = captures[0];
1630 : 0 : _o1[1] = wide_int_to_tree (type, factor);
1631 : 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1632 : 0 : res_op0 = _r1;
1633 : : }
1634 : 0 : tree res_op1;
1635 : 0 : res_op1 = wide_int_to_tree (type, mul);
1636 : 0 : tree _r;
1637 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1638 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1639 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1640 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1641 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1642 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1643 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1644 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 299, __FILE__, __LINE__, true);
1645 : 0 : return _r;
1646 : : }
1647 : 0 : next_after_fail485:;
1648 : : }
1649 : : else
1650 : : {
1651 : 4056 : {
1652 : 4056 : tree utype = unsigned_type_for (type);
1653 : 4056 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail486;
1654 : 4056 : {
1655 : 4056 : tree res_op0;
1656 : 4056 : {
1657 : 4056 : tree _o1[2], _r1;
1658 : 4056 : {
1659 : 4056 : tree _o2[2], _r2;
1660 : 4056 : {
1661 : 4056 : tree _o3[1], _r3;
1662 : 4056 : _o3[0] = captures[0];
1663 : 4056 : if (TREE_TYPE (_o3[0]) != utype)
1664 : : {
1665 : 4056 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
1666 : : }
1667 : : else
1668 : : _r3 = _o3[0];
1669 : 4056 : _o2[0] = _r3;
1670 : : }
1671 : 4056 : _o2[1] = wide_int_to_tree (utype, factor);
1672 : 4056 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1673 : 4056 : _o1[0] = _r2;
1674 : : }
1675 : 4056 : {
1676 : 4056 : tree _o2[2], _r2;
1677 : 4056 : {
1678 : 4056 : tree _o3[1], _r3;
1679 : 4056 : _o3[0] = captures[3];
1680 : 4056 : if (TREE_TYPE (_o3[0]) != utype)
1681 : : {
1682 : 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
1683 : : }
1684 : : else
1685 : : _r3 = _o3[0];
1686 : 4056 : _o2[0] = _r3;
1687 : : }
1688 : 4056 : {
1689 : 4056 : tree _o3[1], _r3;
1690 : 4056 : _o3[0] = captures[2];
1691 : 4056 : if (TREE_TYPE (_o3[0]) != utype)
1692 : : {
1693 : 46 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
1694 : : }
1695 : : else
1696 : : _r3 = _o3[0];
1697 : 4056 : _o2[1] = _r3;
1698 : : }
1699 : 4056 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1700 : 4056 : _o1[1] = _r2;
1701 : : }
1702 : 4056 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1703 : 4056 : res_op0 = _r1;
1704 : : }
1705 : 4056 : tree _r;
1706 : 4056 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1707 : 4056 : if (TREE_SIDE_EFFECTS (captures[1]))
1708 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1709 : 4056 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 300, __FILE__, __LINE__, true);
1710 : 4056 : return _r;
1711 : : }
1712 : 0 : next_after_fail486:;
1713 : : }
1714 : : }
1715 : 0 : }
1716 : : }
1717 : 4136 : }
1718 : 80 : return NULL_TREE;
1719 : : }
1720 : :
1721 : : tree
1722 : 0 : generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1723 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1724 : : const enum tree_code ARG_UNUSED (cmp1),
1725 : : const enum tree_code ARG_UNUSED (cmp2),
1726 : : const enum tree_code ARG_UNUSED (rcmp))
1727 : : {
1728 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1729 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1730 : 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
1731 : 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1732 : 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
1733 : : )
1734 : : {
1735 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
1736 : 0 : {
1737 : 0 : tree res_op0;
1738 : 0 : res_op0 = captures[0];
1739 : 0 : tree res_op1;
1740 : 0 : res_op1 = captures[1];
1741 : 0 : tree _r;
1742 : 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1743 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 344, __FILE__, __LINE__, true);
1744 : 0 : return _r;
1745 : : }
1746 : 0 : next_after_fail532:;
1747 : : }
1748 : : return NULL_TREE;
1749 : : }
1750 : :
1751 : : tree
1752 : 0 : generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1753 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1754 : : const enum tree_code ARG_UNUSED (cmp),
1755 : : const enum tree_code ARG_UNUSED (icmp))
1756 : : {
1757 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1758 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1759 : : )
1760 : : {
1761 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail543;
1762 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail543;
1763 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail543;
1764 : 0 : {
1765 : 0 : tree res_op0;
1766 : 0 : res_op0 = captures[0];
1767 : 0 : tree res_op1;
1768 : 0 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]),
1769 : 0 : wi::exact_log2 (wi::to_wide (captures[1])));
1770 : 0 : tree _r;
1771 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1772 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 355, __FILE__, __LINE__, true);
1773 : 0 : return _r;
1774 : : }
1775 : : next_after_fail543:;
1776 : : }
1777 : : return NULL_TREE;
1778 : : }
1779 : :
1780 : : tree
1781 : 207 : generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1782 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1783 : : const enum tree_code ARG_UNUSED (cmp))
1784 : : {
1785 : 207 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1786 : 207 : if (tree_fits_shwi_p (captures[3])
1787 : 207 : && tree_to_shwi (captures[3]) > 0
1788 : 400 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1789 : : )
1790 : : {
1791 : 193 : {
1792 : 193 : tree t0 = TREE_TYPE (captures[2]);
1793 : 193 : unsigned int prec = TYPE_PRECISION (t0);
1794 : 193 : wide_int c1 = wi::to_wide (captures[3]);
1795 : 193 : wide_int c2 = wi::to_wide (captures[4]);
1796 : 193 : wide_int c3 = wi::to_wide (captures[5]);
1797 : 193 : wide_int sb = wi::set_bit_in_zero (prec - 1, prec);
1798 : 193 : if ((c2 & c3) != c3
1799 : : )
1800 : : {
1801 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail546;
1802 : 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail546;
1803 : 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail546;
1804 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail546;
1805 : 0 : {
1806 : 0 : tree _r;
1807 : 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1808 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1809 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1810 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 358, __FILE__, __LINE__, true);
1811 : 0 : return _r;
1812 : : }
1813 : 0 : next_after_fail546:;
1814 : : }
1815 : : else
1816 : : {
1817 : 193 : if (TYPE_UNSIGNED (t0)
1818 : : )
1819 : : {
1820 : 100 : if ((c3 & wi::arshift (sb, c1 - 1)) != 0
1821 : : )
1822 : : {
1823 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail547;
1824 : 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail547;
1825 : 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail547;
1826 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail547;
1827 : 0 : {
1828 : 0 : tree _r;
1829 : 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1830 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1831 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1832 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 359, __FILE__, __LINE__, true);
1833 : 0 : return _r;
1834 : : }
1835 : 0 : next_after_fail547:;
1836 : : }
1837 : : else
1838 : : {
1839 : 100 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail548;
1840 : 100 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail548;
1841 : 100 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail548;
1842 : 100 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail548;
1843 : 100 : {
1844 : 100 : tree res_op0;
1845 : 100 : {
1846 : 100 : tree _o1[2], _r1;
1847 : 100 : _o1[0] = captures[2];
1848 : 100 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1849 : 100 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1850 : 100 : res_op0 = _r1;
1851 : : }
1852 : 100 : tree res_op1;
1853 : 100 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1854 : 100 : tree _r;
1855 : 100 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1856 : 100 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 360, __FILE__, __LINE__, true);
1857 : 100 : return _r;
1858 : : }
1859 : 0 : next_after_fail548:;
1860 : : }
1861 : : }
1862 : : else
1863 : : {
1864 : 93 : {
1865 : 93 : wide_int smask = wi::arshift (sb, c1);
1866 : 93 : if ((c2 & smask) == 0
1867 : : )
1868 : : {
1869 : 91 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail549;
1870 : 91 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail549;
1871 : 91 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail549;
1872 : 91 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail549;
1873 : 91 : {
1874 : 91 : tree res_op0;
1875 : 91 : {
1876 : 91 : tree _o1[2], _r1;
1877 : 91 : _o1[0] = captures[2];
1878 : 91 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1879 : 91 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1880 : 91 : res_op0 = _r1;
1881 : : }
1882 : 91 : tree res_op1;
1883 : 91 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1884 : 91 : tree _r;
1885 : 91 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1886 : 91 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 361, __FILE__, __LINE__, true);
1887 : 91 : return _r;
1888 : : }
1889 : 0 : next_after_fail549:;
1890 : : }
1891 : : else
1892 : : {
1893 : 2 : if ((c3 & smask) == 0
1894 : : )
1895 : : {
1896 : 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail550;
1897 : 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail550;
1898 : 2 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail550;
1899 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail550;
1900 : 2 : {
1901 : 2 : tree res_op0;
1902 : 2 : {
1903 : 2 : tree _o1[2], _r1;
1904 : 2 : _o1[0] = captures[2];
1905 : 2 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1906 : 2 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1907 : 2 : res_op0 = _r1;
1908 : : }
1909 : 2 : tree res_op1;
1910 : 2 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1911 : 2 : tree _r;
1912 : 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1913 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 362, __FILE__, __LINE__, true);
1914 : 2 : return _r;
1915 : : }
1916 : 0 : next_after_fail550:;
1917 : : }
1918 : : else
1919 : : {
1920 : 0 : if ((c2 & smask) != (c3 & smask)
1921 : : )
1922 : : {
1923 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail551;
1924 : 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail551;
1925 : 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail551;
1926 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail551;
1927 : 0 : {
1928 : 0 : tree _r;
1929 : 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1930 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1931 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1932 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 363, __FILE__, __LINE__, true);
1933 : 0 : return _r;
1934 : : }
1935 : 0 : next_after_fail551:;
1936 : : }
1937 : : else
1938 : : {
1939 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail552;
1940 : 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail552;
1941 : 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail552;
1942 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
1943 : 0 : {
1944 : 0 : tree res_op0;
1945 : 0 : {
1946 : 0 : tree _o1[2], _r1;
1947 : 0 : _o1[0] = captures[2];
1948 : 0 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1949 : 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1950 : 0 : res_op0 = _r1;
1951 : : }
1952 : 0 : tree res_op1;
1953 : 0 : res_op1 = wide_int_to_tree (t0, (c3 << c1) | sb);
1954 : 0 : tree _r;
1955 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1956 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 364, __FILE__, __LINE__, true);
1957 : 0 : return _r;
1958 : : }
1959 : 0 : next_after_fail552:;
1960 : : }
1961 : : }
1962 : : }
1963 : 93 : }
1964 : : }
1965 : : }
1966 : 193 : }
1967 : : }
1968 : : return NULL_TREE;
1969 : : }
1970 : :
1971 : : tree
1972 : 696 : generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1973 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1974 : : const enum tree_code ARG_UNUSED (cmp))
1975 : : {
1976 : 696 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1977 : 696 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1978 : 1392 : && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0
1979 : : )
1980 : : {
1981 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail643;
1982 : 0 : {
1983 : 0 : tree _r;
1984 : 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1985 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1986 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1987 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1988 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1989 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1990 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1991 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
1992 : 0 : return _r;
1993 : : }
1994 : 0 : next_after_fail643:;
1995 : : }
1996 : : return NULL_TREE;
1997 : : }
1998 : :
1999 : : tree
2000 : 62 : generic_simplify_263 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2001 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2002 : : const enum tree_code ARG_UNUSED (cmp))
2003 : : {
2004 : 62 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2005 : 62 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail649;
2006 : 62 : {
2007 : 62 : tree res_op0;
2008 : 62 : res_op0 = captures[1];
2009 : 62 : tree res_op1;
2010 : 62 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2011 : 62 : tree _r;
2012 : 62 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2013 : 62 : if (TREE_SIDE_EFFECTS (captures[0]))
2014 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2015 : 62 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 452, __FILE__, __LINE__, true);
2016 : : return _r;
2017 : : }
2018 : 0 : next_after_fail649:;
2019 : 0 : return NULL_TREE;
2020 : : }
2021 : :
2022 : : tree
2023 : 449 : generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2024 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2025 : : const enum tree_code ARG_UNUSED (cmp))
2026 : : {
2027 : 449 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2028 : 449 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail652;
2029 : 449 : {
2030 : 449 : tree res_op0;
2031 : 449 : {
2032 : 449 : tree _o1[2], _r1;
2033 : 449 : _o1[0] = captures[0];
2034 : 449 : {
2035 : 449 : tree _o2[1], _r2;
2036 : 449 : _o2[0] = captures[1];
2037 : 449 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2038 : 449 : if (EXPR_P (_r2))
2039 : 441 : goto next_after_fail652;
2040 : 8 : _o1[1] = _r2;
2041 : : }
2042 : 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2043 : 8 : res_op0 = _r1;
2044 : : }
2045 : 8 : tree res_op1;
2046 : 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
2047 : 8 : tree _r;
2048 : 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2049 : 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 455, __FILE__, __LINE__, true);
2050 : : return _r;
2051 : : }
2052 : : next_after_fail652:;
2053 : : return NULL_TREE;
2054 : : }
2055 : :
2056 : : tree
2057 : 115682 : generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2058 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2059 : : const enum tree_code ARG_UNUSED (cmp),
2060 : : const enum tree_code ARG_UNUSED (icmp))
2061 : : {
2062 : 115682 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2063 : 115682 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail656;
2064 : 115660 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail656;
2065 : 115660 : {
2066 : 115660 : tree res_op0;
2067 : 115660 : res_op0 = captures[0];
2068 : 115660 : tree res_op1;
2069 : 115660 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2070 : 115660 : tree _r;
2071 : 115660 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
2072 : 115660 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 459, __FILE__, __LINE__, true);
2073 : : return _r;
2074 : : }
2075 : : next_after_fail656:;
2076 : : return NULL_TREE;
2077 : : }
2078 : :
2079 : : tree
2080 : 4 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2081 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2082 : : const enum tree_code ARG_UNUSED (cmp),
2083 : : const enum tree_code ARG_UNUSED (ncmp))
2084 : : {
2085 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2086 : 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2087 : 4 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2088 : 8 : && types_match (captures[0], captures[2])
2089 : : )
2090 : : {
2091 : 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail660;
2092 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail660;
2093 : 4 : {
2094 : 4 : tree res_op0;
2095 : 4 : {
2096 : 4 : tree _o1[2], _r1;
2097 : 4 : _o1[0] = captures[0];
2098 : 4 : _o1[1] = captures[2];
2099 : 4 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2100 : 4 : res_op0 = _r1;
2101 : : }
2102 : 4 : tree res_op1;
2103 : 4 : res_op1 = captures[1];
2104 : 4 : tree _r;
2105 : 4 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
2106 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 462, __FILE__, __LINE__, true);
2107 : 4 : return _r;
2108 : : }
2109 : : next_after_fail660:;
2110 : : }
2111 : : return NULL_TREE;
2112 : : }
2113 : :
2114 : : tree
2115 : 51033091 : generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2116 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2117 : : const enum tree_code ARG_UNUSED (neeq))
2118 : : {
2119 : 51033091 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2120 : 91227658 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
2121 : 51051671 : && ptrs_compare_unequal (captures[0], captures[1])
2122 : : )
2123 : : {
2124 : 11158 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail678;
2125 : 11158 : {
2126 : 11158 : tree _r;
2127 : 11158 : _r = constant_boolean_node (neeq != EQ_EXPR, type);
2128 : 11158 : if (TREE_SIDE_EFFECTS (captures[0]))
2129 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2130 : 11158 : if (TREE_SIDE_EFFECTS (captures[1]))
2131 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2132 : 11158 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 471, __FILE__, __LINE__, true);
2133 : 11158 : return _r;
2134 : : }
2135 : 0 : next_after_fail678:;
2136 : : }
2137 : : return NULL_TREE;
2138 : : }
2139 : :
2140 : : tree
2141 : 2 : generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2142 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2143 : : const enum tree_code ARG_UNUSED (cmp))
2144 : : {
2145 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2146 : 4 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2147 : 2 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2148 : 2 : && TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2149 : 2 : && (TYPE_PRECISION (TREE_TYPE (captures[1]))
2150 : 2 : >= 2 * TYPE_PRECISION (TREE_TYPE (captures[2])))
2151 : 2 : && tree_fits_uhwi_p (captures[4])
2152 : 2 : && tree_to_uhwi (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[2]))
2153 : 2 : && types_match (captures[2], captures[3])
2154 : 2 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2155 : 6 : && (optab_handler (umulv4_optab, TYPE_MODE (TREE_TYPE (captures[2])))
2156 : : != CODE_FOR_nothing)
2157 : : )
2158 : : {
2159 : 2 : {
2160 : 2 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2161 : 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail685;
2162 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
2163 : 2 : {
2164 : 2 : tree res_op0;
2165 : 2 : {
2166 : 2 : tree _o1[1], _r1;
2167 : 2 : {
2168 : 2 : tree _o2[2], _r2;
2169 : 2 : _o2[0] = captures[2];
2170 : 2 : _o2[1] = captures[3];
2171 : 2 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2172 : 2 : if (!_r2)
2173 : 0 : goto next_after_fail685;
2174 : 2 : _o1[0] = _r2;
2175 : : }
2176 : 2 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2177 : 2 : res_op0 = _r1;
2178 : : }
2179 : 2 : tree res_op1;
2180 : 2 : res_op1 = build_zero_cst (t);
2181 : 2 : tree _r;
2182 : 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2183 : 2 : if (TREE_SIDE_EFFECTS (captures[4]))
2184 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2185 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 478, __FILE__, __LINE__, true);
2186 : 2 : return _r;
2187 : : }
2188 : : next_after_fail685:;
2189 : : }
2190 : : }
2191 : : return NULL_TREE;
2192 : : }
2193 : :
2194 : : tree
2195 : 574714 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2196 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2197 : : const enum tree_code ARG_UNUSED (cmp),
2198 : : const enum tree_code ARG_UNUSED (rcmp))
2199 : : {
2200 : 574714 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2201 : 1149428 : if (!TREE_OVERFLOW (captures[0]) && !TREE_OVERFLOW (captures[2])
2202 : 1149428 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
2203 : : )
2204 : : {
2205 : 4209 : {
2206 : 4209 : tree res = int_const_binop (MINUS_EXPR, captures[0], captures[2]);
2207 : 4209 : if (TREE_OVERFLOW (res)
2208 : : )
2209 : : {
2210 : 48 : if (cmp == NE_EXPR
2211 : : )
2212 : : {
2213 : 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail688;
2214 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail688;
2215 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
2216 : 0 : {
2217 : 0 : tree _r;
2218 : 0 : _r = constant_boolean_node (true, type);
2219 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2220 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2221 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 481, __FILE__, __LINE__, true);
2222 : 0 : return _r;
2223 : : }
2224 : : next_after_fail688:;
2225 : : }
2226 : : else
2227 : : {
2228 : 48 : if (cmp == EQ_EXPR
2229 : : )
2230 : : {
2231 : 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail689;
2232 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail689;
2233 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
2234 : 0 : {
2235 : 0 : tree _r;
2236 : 0 : _r = constant_boolean_node (false, type);
2237 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2238 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2239 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 482, __FILE__, __LINE__, true);
2240 : 0 : return _r;
2241 : : }
2242 : : next_after_fail689:;
2243 : : }
2244 : : else
2245 : : {
2246 : 48 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail690;
2247 : 48 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail690;
2248 : 48 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
2249 : 48 : {
2250 : 48 : tree _r;
2251 : 48 : bool less = cmp == LE_EXPR || cmp == LT_EXPR;
2252 : 48 : bool ovf_high = wi::lt_p (wi::to_wide (captures[0]), 0,
2253 : 48 : TYPE_SIGN (TREE_TYPE (captures[0]))); _r =
2254 : 48 : constant_boolean_node (less == ovf_high, type);
2255 : 48 : if (TREE_SIDE_EFFECTS (captures[1]))
2256 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2257 : 48 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 483, __FILE__, __LINE__, true);
2258 : 48 : return _r;
2259 : : }
2260 : : next_after_fail690:;
2261 : : }
2262 : : }
2263 : : }
2264 : : else
2265 : : {
2266 : 4161 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail691;
2267 : 4161 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail691;
2268 : 4161 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
2269 : 4161 : {
2270 : 4161 : tree res_op0;
2271 : 4161 : res_op0 = captures[1];
2272 : 4161 : tree res_op1;
2273 : 4161 : res_op1 = res;
2274 : 4161 : tree _r;
2275 : 4161 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
2276 : 4161 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 484, __FILE__, __LINE__, true);
2277 : 4161 : return _r;
2278 : : }
2279 : : next_after_fail691:;
2280 : : }
2281 : : }
2282 : : }
2283 : : else
2284 : : {
2285 : 570505 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2286 : : )
2287 : : {
2288 : 570399 : if (cmp == EQ_EXPR || cmp == NE_EXPR
2289 : : )
2290 : : {
2291 : 32259 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
2292 : 32259 : {
2293 : 32259 : tree res_op0;
2294 : 32259 : res_op0 = captures[1];
2295 : 32259 : tree res_op1;
2296 : 32259 : {
2297 : 32259 : tree _o1[2], _r1;
2298 : 32259 : _o1[0] = captures[0];
2299 : 32259 : _o1[1] = captures[2];
2300 : 32259 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2301 : 32259 : res_op1 = _r1;
2302 : : }
2303 : 32259 : tree _r;
2304 : 32259 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2305 : 32259 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 485, __FILE__, __LINE__, true);
2306 : 32259 : return _r;
2307 : : }
2308 : 0 : next_after_fail692:;
2309 : : }
2310 : : else
2311 : : {
2312 : 538140 : if (cmp == LE_EXPR || cmp == GT_EXPR
2313 : : )
2314 : : {
2315 : 538140 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
2316 : 538140 : {
2317 : 538140 : if (! tree_invariant_p (captures[2])) goto next_after_fail693;
2318 : 538140 : tree res_op0;
2319 : 538140 : {
2320 : 538140 : tree _o1[2], _r1;
2321 : 538140 : _o1[0] = captures[1];
2322 : 538140 : {
2323 : 538140 : tree _o2[2], _r2;
2324 : 538140 : _o2[0] = unshare_expr (captures[2]);
2325 : 538140 : _o2[1] = captures[0];
2326 : 538140 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2327 : 538140 : _o1[1] = _r2;
2328 : : }
2329 : 538140 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2330 : 538140 : res_op0 = _r1;
2331 : : }
2332 : 538140 : tree res_op1;
2333 : 538140 : res_op1 = captures[2];
2334 : 538140 : tree _r;
2335 : 538140 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2336 : 538140 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 486, __FILE__, __LINE__, true);
2337 : 538140 : return _r;
2338 : : }
2339 : : next_after_fail693:;
2340 : : }
2341 : : else
2342 : : {
2343 : 0 : if (cmp == LT_EXPR || cmp == GE_EXPR
2344 : : )
2345 : : {
2346 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
2347 : 0 : {
2348 : 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail694;
2349 : 0 : tree res_op0;
2350 : 0 : {
2351 : 0 : tree _o1[2], _r1;
2352 : 0 : _o1[0] = captures[1];
2353 : 0 : {
2354 : 0 : tree _o2[2], _r2;
2355 : 0 : _o2[0] = unshare_expr (captures[2]);
2356 : 0 : {
2357 : 0 : tree _o3[2], _r3;
2358 : 0 : _o3[0] = captures[0];
2359 : 0 : _o3[1] = build_one_cst (TREE_TYPE (captures[1]));
2360 : 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2361 : 0 : _o2[1] = _r3;
2362 : : }
2363 : 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2364 : 0 : _o1[1] = _r2;
2365 : : }
2366 : 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2367 : 0 : res_op0 = _r1;
2368 : : }
2369 : 0 : tree res_op1;
2370 : 0 : res_op1 = captures[2];
2371 : 0 : tree _r;
2372 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2373 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 487, __FILE__, __LINE__, true);
2374 : 0 : return _r;
2375 : : }
2376 : : next_after_fail694:;
2377 : : }
2378 : : }
2379 : : }
2380 : : }
2381 : : else
2382 : : {
2383 : 106 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2384 : 106 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2385 : : )
2386 : : {
2387 : 106 : if (cmp == EQ_EXPR || cmp == NE_EXPR
2388 : : )
2389 : : {
2390 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
2391 : 0 : {
2392 : 0 : tree res_op0;
2393 : 0 : res_op0 = captures[1];
2394 : 0 : tree res_op1;
2395 : 0 : {
2396 : 0 : tree _o1[2], _r1;
2397 : 0 : _o1[0] = captures[0];
2398 : 0 : _o1[1] = captures[2];
2399 : 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2400 : 0 : res_op1 = _r1;
2401 : : }
2402 : 0 : tree _r;
2403 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2404 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
2405 : 0 : return _r;
2406 : : }
2407 : 0 : next_after_fail695:;
2408 : : }
2409 : : else
2410 : : {
2411 : 106 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
2412 : 106 : {
2413 : 106 : tree res_op0;
2414 : 106 : {
2415 : 106 : tree _o1[2], _r1;
2416 : 106 : _o1[0] = captures[1];
2417 : 106 : {
2418 : 106 : tree _o2[2], _r2;
2419 : 106 : _o2[0] = captures[0];
2420 : 106 : _o2[1] = build_one_cst (TREE_TYPE (captures[1]));
2421 : 106 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2422 : 106 : _o1[1] = _r2;
2423 : : }
2424 : 106 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2425 : 106 : res_op0 = _r1;
2426 : : }
2427 : 106 : tree res_op1;
2428 : 106 : {
2429 : 106 : tree _o1[1], _r1;
2430 : 106 : _o1[0] = captures[2];
2431 : 106 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2432 : 106 : res_op1 = _r1;
2433 : : }
2434 : 106 : tree _r;
2435 : 106 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
2436 : 106 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
2437 : 106 : return _r;
2438 : : }
2439 : 0 : next_after_fail696:;
2440 : : }
2441 : : }
2442 : : }
2443 : : }
2444 : : return NULL_TREE;
2445 : : }
2446 : :
2447 : : tree
2448 : 4 : generic_simplify_330 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2449 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2450 : : const combined_fn ARG_UNUSED (POW))
2451 : : {
2452 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2453 : 4 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
2454 : : )
2455 : : {
2456 : 4 : if (!TREE_OVERFLOW (captures[2])
2457 : : )
2458 : : {
2459 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
2460 : 4 : {
2461 : 4 : tree res_op0;
2462 : 4 : res_op0 = captures[1];
2463 : 4 : tree res_op1;
2464 : 4 : {
2465 : 4 : tree _o1[2], _r1;
2466 : 4 : _o1[0] = captures[2];
2467 : 4 : _o1[1] = build_one_cst (type);
2468 : 4 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2469 : 4 : res_op1 = _r1;
2470 : : }
2471 : 4 : tree _r;
2472 : 4 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
2473 : 4 : if (!_r)
2474 : 0 : goto next_after_fail755;
2475 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 546, __FILE__, __LINE__, true);
2476 : 4 : return _r;
2477 : : }
2478 : : next_after_fail755:;
2479 : : }
2480 : : }
2481 : : return NULL_TREE;
2482 : : }
2483 : :
2484 : : tree
2485 : 462493 : generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2486 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2487 : : const enum tree_code ARG_UNUSED (op))
2488 : : {
2489 : 462493 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2490 : 924985 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2491 : 924882 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
2492 : 279284 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
2493 : 924934 : && (CONSTANT_CLASS_P (captures[1]) || single_use (captures[0]))
2494 : : )
2495 : : {
2496 : 279214 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail764;
2497 : 279214 : {
2498 : 279214 : tree res_op0;
2499 : 279214 : res_op0 = captures[1];
2500 : 279214 : tree res_op1;
2501 : 279214 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2502 : 279214 : tree _r;
2503 : 279214 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2504 : 279214 : if (TREE_SIDE_EFFECTS (captures[2]))
2505 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2506 : 279214 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 555, __FILE__, __LINE__, true);
2507 : 279214 : return _r;
2508 : : }
2509 : 0 : next_after_fail764:;
2510 : : }
2511 : : return NULL_TREE;
2512 : : }
2513 : :
2514 : : tree
2515 : 0 : generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2516 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2517 : : const enum tree_code ARG_UNUSED (cmp),
2518 : : const enum tree_code ARG_UNUSED (cmp2))
2519 : : {
2520 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2521 : 0 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
2522 : 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2523 : 0 : && wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
2524 : : )
2525 : : {
2526 : 0 : {
2527 : 0 : tree utype = TREE_TYPE (captures[2]);
2528 : 0 : wide_int denom = wi::to_wide (captures[1]);
2529 : 0 : wide_int right = wi::to_wide (captures[2]);
2530 : 0 : wide_int smax = wi::sdiv_trunc (wi::max_value (TREE_TYPE (captures[0])), denom);
2531 : 0 : wide_int smin = wi::sdiv_trunc (wi::min_value (TREE_TYPE (captures[0])), denom);
2532 : 0 : bool small = wi::leu_p (right, smax);
2533 : 0 : bool large = wi::geu_p (right, smin);
2534 : 0 : if (small || large
2535 : : )
2536 : : {
2537 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail775;
2538 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail775;
2539 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail775;
2540 : 0 : {
2541 : 0 : tree res_op0;
2542 : 0 : {
2543 : 0 : tree _o1[1], _r1;
2544 : 0 : _o1[0] = captures[0];
2545 : 0 : if (TREE_TYPE (_o1[0]) != utype)
2546 : : {
2547 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
2548 : : }
2549 : : else
2550 : : _r1 = _o1[0];
2551 : 0 : res_op0 = _r1;
2552 : : }
2553 : 0 : tree res_op1;
2554 : 0 : {
2555 : 0 : tree _o1[2], _r1;
2556 : 0 : _o1[0] = captures[2];
2557 : 0 : {
2558 : 0 : tree _o2[1], _r2;
2559 : 0 : _o2[0] = captures[1];
2560 : 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
2561 : : {
2562 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
2563 : : }
2564 : : else
2565 : : _r2 = _o2[0];
2566 : 0 : _o1[1] = _r2;
2567 : : }
2568 : 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2569 : 0 : res_op1 = _r1;
2570 : : }
2571 : 0 : tree _r;
2572 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2573 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
2574 : 0 : return _r;
2575 : : }
2576 : 0 : next_after_fail775:;
2577 : : }
2578 : : else
2579 : : {
2580 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail776;
2581 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail776;
2582 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail776;
2583 : 0 : {
2584 : 0 : tree res_op0;
2585 : 0 : res_op0 = captures[0];
2586 : 0 : tree res_op1;
2587 : 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
2588 : 0 : tree _r;
2589 : 0 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2590 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2591 : 0 : return _r;
2592 : : }
2593 : 0 : next_after_fail776:;
2594 : : }
2595 : 0 : }
2596 : : }
2597 : : return NULL_TREE;
2598 : : }
2599 : :
2600 : : tree
2601 : 18391097 : generic_simplify_360 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2602 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2603 : : const enum tree_code ARG_UNUSED (cmp),
2604 : : const enum tree_code ARG_UNUSED (acmp))
2605 : : {
2606 : 18391097 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2607 : 18391097 : {
2608 : 18391097 : tree cst = uniform_integer_cst_p (captures[1]);
2609 : 18391097 : if (tree_int_cst_sgn (cst) == -1
2610 : : )
2611 : : {
2612 : 166337 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
2613 : 166337 : {
2614 : 166337 : tree res_op0;
2615 : 166337 : res_op0 = captures[0];
2616 : 166337 : tree res_op1;
2617 : 166337 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2618 : 166337 : wide_int_to_tree (TREE_TYPE (cst),
2619 : 166337 : wi::to_wide (cst)
2620 : 332674 : + 1));
2621 : 166337 : tree _r;
2622 : 166337 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2623 : 166337 : if (TREE_SIDE_EFFECTS (captures[1]))
2624 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2625 : 166337 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
2626 : 166337 : return _r;
2627 : : }
2628 : 0 : next_after_fail827:;
2629 : : }
2630 : : }
2631 : : return NULL_TREE;
2632 : : }
2633 : :
2634 : : tree
2635 : 0 : generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2636 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2637 : : const enum tree_code ARG_UNUSED (cmp),
2638 : : const enum tree_code ARG_UNUSED (out))
2639 : : {
2640 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2641 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2642 : 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2643 : : )
2644 : : {
2645 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail830;
2646 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail830;
2647 : 0 : {
2648 : 0 : tree res_op0;
2649 : 0 : {
2650 : 0 : tree _o1[1], _r1;
2651 : 0 : _o1[0] = captures[0];
2652 : 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2653 : 0 : res_op0 = _r1;
2654 : : }
2655 : 0 : tree res_op1;
2656 : 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2657 : 0 : tree _r;
2658 : 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2659 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 586, __FILE__, __LINE__, true);
2660 : 0 : return _r;
2661 : : }
2662 : : next_after_fail830:;
2663 : : }
2664 : : return NULL_TREE;
2665 : : }
2666 : :
2667 : : tree
2668 : 43 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2669 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2670 : : const enum tree_code ARG_UNUSED (cmp),
2671 : : const enum tree_code ARG_UNUSED (cmp2),
2672 : : const enum tree_code ARG_UNUSED (cmp3),
2673 : : const enum tree_code ARG_UNUSED (bit_op),
2674 : : const combined_fn ARG_UNUSED (ffs))
2675 : : {
2676 : 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2677 : 43 : {
2678 : 43 : int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2679 : 43 : if (integer_zerop (captures[2])
2680 : : )
2681 : : {
2682 : 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail835;
2683 : 11 : {
2684 : 11 : tree res_op0;
2685 : 11 : res_op0 = captures[1];
2686 : 11 : tree res_op1;
2687 : 11 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2688 : 11 : tree _r;
2689 : 11 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2690 : 11 : if (TREE_SIDE_EFFECTS (captures[2]))
2691 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2692 : 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
2693 : 27 : return _r;
2694 : : }
2695 : 0 : next_after_fail835:;
2696 : : }
2697 : : else
2698 : : {
2699 : 32 : if (tree_int_cst_sgn (captures[2]) < 0
2700 : : )
2701 : : {
2702 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
2703 : 0 : {
2704 : 0 : tree _r;
2705 : 0 : _r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
2706 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2707 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2708 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2709 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2710 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 606, __FILE__, __LINE__, true);
2711 : 0 : return _r;
2712 : : }
2713 : 0 : next_after_fail836:;
2714 : : }
2715 : : else
2716 : : {
2717 : 32 : if (wi::to_widest (captures[2]) >= prec
2718 : : )
2719 : : {
2720 : 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
2721 : 14 : {
2722 : 14 : tree _r;
2723 : 14 : _r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
2724 : 14 : if (TREE_SIDE_EFFECTS (captures[1]))
2725 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2726 : 14 : if (TREE_SIDE_EFFECTS (captures[2]))
2727 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2728 : 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
2729 : 14 : return _r;
2730 : : }
2731 : 0 : next_after_fail837:;
2732 : : }
2733 : : else
2734 : : {
2735 : 18 : if (wi::to_widest (captures[2]) == prec - 1
2736 : : )
2737 : : {
2738 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
2739 : 2 : {
2740 : 2 : tree res_op0;
2741 : 2 : res_op0 = captures[1];
2742 : 2 : tree res_op1;
2743 : 2 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
2744 : 2 : wi::shifted_mask (prec - 1, 1,
2745 : : false, prec));
2746 : 2 : tree _r;
2747 : 2 : _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
2748 : 2 : if (TREE_SIDE_EFFECTS (captures[2]))
2749 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2750 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
2751 : 2 : return _r;
2752 : : }
2753 : 0 : next_after_fail838:;
2754 : : }
2755 : : else
2756 : : {
2757 : 16 : if (single_use (captures[0])
2758 : : )
2759 : : {
2760 : 16 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail839;
2761 : 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail839;
2762 : 16 : {
2763 : 16 : if (! tree_invariant_p (captures[1])) goto next_after_fail839;
2764 : 0 : tree res_op0;
2765 : 0 : {
2766 : 0 : tree _o1[2], _r1;
2767 : 0 : _o1[0] = unshare_expr (captures[1]);
2768 : 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2769 : 0 : _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
2770 : 0 : res_op0 = _r1;
2771 : : }
2772 : 0 : tree res_op1;
2773 : 0 : {
2774 : 0 : tree _o1[2], _r1;
2775 : 0 : {
2776 : 0 : tree _o2[2], _r2;
2777 : 0 : _o2[0] = captures[1];
2778 : 0 : _o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
2779 : 0 : wi::mask (tree_to_uhwi (captures[2]),
2780 : : false, prec));
2781 : 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2782 : 0 : _o1[0] = _r2;
2783 : : }
2784 : 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2785 : 0 : _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
2786 : 0 : res_op1 = _r1;
2787 : : }
2788 : 0 : tree _r;
2789 : 0 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2790 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
2791 : 0 : return _r;
2792 : : }
2793 : 16 : next_after_fail839:;
2794 : : }
2795 : : }
2796 : : }
2797 : : }
2798 : : }
2799 : : }
2800 : 16 : return NULL_TREE;
2801 : : }
2802 : :
2803 : : tree
2804 : 19971857 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2805 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2806 : : const enum tree_code ARG_UNUSED (op))
2807 : : {
2808 : 19971857 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2809 : 19971857 : if (INTEGRAL_TYPE_P (type)
2810 : 18563134 : && op != MULT_EXPR
2811 : 18563134 : && op != RDIV_EXPR
2812 : 10771211 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2813 : 10771211 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2814 : 10771211 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2815 : 10770031 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2816 : 10770031 : && type_has_mode_precision_p (type)
2817 : 10738897 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2818 : 0 : && types_match (captures[2], type)
2819 : 19971857 : && (types_match (captures[2], captures[4])
2820 : 0 : || poly_int_tree_p (captures[3]))
2821 : : )
2822 : : {
2823 : 0 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2824 : : )
2825 : : {
2826 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail876;
2827 : 0 : {
2828 : 0 : tree res_op0;
2829 : 0 : res_op0 = captures[2];
2830 : 0 : tree res_op1;
2831 : 0 : {
2832 : 0 : tree _o1[1], _r1;
2833 : 0 : _o1[0] = captures[4];
2834 : 0 : if (TREE_TYPE (_o1[0]) != type)
2835 : : {
2836 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2837 : : }
2838 : : else
2839 : : _r1 = _o1[0];
2840 : 0 : res_op1 = _r1;
2841 : : }
2842 : 0 : tree _r;
2843 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2844 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2845 : 0 : return _r;
2846 : : }
2847 : 0 : next_after_fail876:;
2848 : : }
2849 : : else
2850 : : {
2851 : 0 : {
2852 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2853 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail877;
2854 : 0 : {
2855 : 0 : tree res_op0;
2856 : 0 : {
2857 : 0 : tree _o1[2], _r1;
2858 : 0 : {
2859 : 0 : tree _o2[1], _r2;
2860 : 0 : _o2[0] = captures[2];
2861 : 0 : if (TREE_TYPE (_o2[0]) != utype)
2862 : : {
2863 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2864 : : }
2865 : : else
2866 : : _r2 = _o2[0];
2867 : 0 : _o1[0] = _r2;
2868 : : }
2869 : 0 : {
2870 : 0 : tree _o2[1], _r2;
2871 : 0 : _o2[0] = captures[4];
2872 : 0 : if (TREE_TYPE (_o2[0]) != utype)
2873 : : {
2874 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2875 : : }
2876 : : else
2877 : : _r2 = _o2[0];
2878 : 0 : _o1[1] = _r2;
2879 : : }
2880 : 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2881 : 0 : res_op0 = _r1;
2882 : : }
2883 : 0 : tree _r;
2884 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2885 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
2886 : 0 : return _r;
2887 : : }
2888 : 0 : next_after_fail877:;
2889 : : }
2890 : : }
2891 : : }
2892 : : else
2893 : : {
2894 : 19912195 : if (FLOAT_TYPE_P (type)
2895 : 20031519 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2896 : 59662 : == DECIMAL_FLOAT_TYPE_P (type)
2897 : : )
2898 : : {
2899 : 59624 : {
2900 : 59624 : tree arg0 = strip_float_extensions (captures[2]);
2901 : 59624 : tree arg1 = strip_float_extensions (captures[4]);
2902 : 59624 : tree itype = TREE_TYPE (captures[0]);
2903 : 59624 : tree ty1 = TREE_TYPE (arg0);
2904 : 59624 : tree ty2 = TREE_TYPE (arg1);
2905 : 59624 : enum tree_code code = TREE_CODE (itype);
2906 : 0 : if (FLOAT_TYPE_P (ty1)
2907 : 59624 : && FLOAT_TYPE_P (ty2)
2908 : : )
2909 : : {
2910 : 59624 : {
2911 : 59624 : tree newtype = type;
2912 : 59624 : if (TYPE_MODE (ty1) == SDmode
2913 : 59356 : || TYPE_MODE (ty2) == SDmode
2914 : 118980 : || TYPE_MODE (type) == SDmode)
2915 : 283 : newtype = dfloat32_type_node;
2916 : 59624 : if (TYPE_MODE (ty1) == DDmode
2917 : 59478 : || TYPE_MODE (ty2) == DDmode
2918 : 118975 : || TYPE_MODE (type) == DDmode)
2919 : 275 : newtype = dfloat64_type_node;
2920 : 59624 : if (TYPE_MODE (ty1) == TDmode
2921 : 59623 : || TYPE_MODE (ty2) == TDmode
2922 : 118995 : || TYPE_MODE (type) == TDmode)
2923 : 268 : newtype = dfloat128_type_node;
2924 : 59624 : if ((newtype == dfloat32_type_node
2925 : 59620 : || newtype == dfloat64_type_node
2926 : 59477 : || newtype == dfloat128_type_node)
2927 : 415 : && newtype == type
2928 : 59635 : && types_match (newtype, type)
2929 : : )
2930 : : {
2931 : 11 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail878;
2932 : 5 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail878;
2933 : 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail878;
2934 : 5 : {
2935 : 5 : tree res_op0;
2936 : 5 : {
2937 : 5 : tree _o1[1], _r1;
2938 : 5 : _o1[0] = captures[2];
2939 : 5 : if (TREE_TYPE (_o1[0]) != newtype)
2940 : : {
2941 : 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2942 : : }
2943 : : else
2944 : : _r1 = _o1[0];
2945 : 5 : res_op0 = _r1;
2946 : : }
2947 : 5 : tree res_op1;
2948 : 5 : {
2949 : 5 : tree _o1[1], _r1;
2950 : 5 : _o1[0] = captures[4];
2951 : 5 : if (TREE_TYPE (_o1[0]) != newtype)
2952 : : {
2953 : 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2954 : : }
2955 : : else
2956 : : _r1 = _o1[0];
2957 : 5 : res_op1 = _r1;
2958 : : }
2959 : 5 : tree _r;
2960 : 5 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2961 : 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
2962 : 5 : return _r;
2963 : : }
2964 : : next_after_fail878:;
2965 : : }
2966 : : else
2967 : : {
2968 : 59613 : {
2969 : 59613 : if (element_precision (ty1) > element_precision (newtype))
2970 : 15291 : newtype = ty1;
2971 : 59613 : if (element_precision (ty2) > element_precision (newtype))
2972 : 5737 : newtype = ty2;
2973 : 59613 : if (element_precision (newtype) < element_precision (itype)
2974 : 18466 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2975 : 0 : || target_supports_op_p (newtype, op, optab_default))
2976 : 18466 : && (flag_unsafe_math_optimizations
2977 : 18458 : || (element_precision (newtype) == element_precision (type)
2978 : 18429 : && real_can_shorten_arithmetic (element_mode (itype),
2979 : : element_mode (type))
2980 : 6466 : && !excess_precision_type (newtype)))
2981 : 59761 : && !types_match (itype, newtype)
2982 : : )
2983 : : {
2984 : 148 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail879;
2985 : 147 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail879;
2986 : 132 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail879;
2987 : 132 : {
2988 : 132 : tree res_op0;
2989 : 132 : {
2990 : 132 : tree _o1[2], _r1;
2991 : 132 : {
2992 : 132 : tree _o2[1], _r2;
2993 : 132 : _o2[0] = captures[2];
2994 : 132 : if (TREE_TYPE (_o2[0]) != newtype)
2995 : : {
2996 : 132 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2997 : : }
2998 : : else
2999 : : _r2 = _o2[0];
3000 : 132 : _o1[0] = _r2;
3001 : : }
3002 : 132 : {
3003 : 132 : tree _o2[1], _r2;
3004 : 132 : _o2[0] = captures[4];
3005 : 132 : if (TREE_TYPE (_o2[0]) != newtype)
3006 : : {
3007 : 132 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
3008 : : }
3009 : : else
3010 : : _r2 = _o2[0];
3011 : 132 : _o1[1] = _r2;
3012 : : }
3013 : 132 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3014 : 132 : res_op0 = _r1;
3015 : : }
3016 : 132 : tree _r;
3017 : 132 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3018 : 132 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
3019 : 132 : return _r;
3020 : : }
3021 : : next_after_fail879:;
3022 : : }
3023 : : }
3024 : : }
3025 : : }
3026 : : }
3027 : : }
3028 : : }
3029 : : }
3030 : : return NULL_TREE;
3031 : : }
3032 : :
3033 : : tree
3034 : 1725 : generic_simplify_418 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3035 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3036 : : {
3037 : 1725 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3038 : 1725 : {
3039 : 1725 : bool wascmp;
3040 : 1725 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
3041 : 1725 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
3042 : : )
3043 : : {
3044 : 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail909;
3045 : 8 : {
3046 : 8 : tree _r;
3047 : 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
3048 : 8 : if (TREE_SIDE_EFFECTS (captures[0]))
3049 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3050 : 8 : if (TREE_SIDE_EFFECTS (captures[1]))
3051 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3052 : 8 : if (TREE_SIDE_EFFECTS (captures[2]))
3053 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3054 : 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
3055 : 8 : return _r;
3056 : : }
3057 : 0 : next_after_fail909:;
3058 : : }
3059 : : }
3060 : 1717 : return NULL_TREE;
3061 : : }
3062 : :
3063 : : tree
3064 : 234 : generic_simplify_425 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3065 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3066 : : const combined_fn ARG_UNUSED (bswap))
3067 : : {
3068 : 234 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3069 : 234 : if (BITS_PER_UNIT == 8
3070 : 234 : && tree_fits_uhwi_p (captures[3])
3071 : 234 : && tree_fits_uhwi_p (captures[4])
3072 : : )
3073 : : {
3074 : 234 : {
3075 : 234 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
3076 : 234 : unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[3]);
3077 : 234 : unsigned HOST_WIDE_INT mask = tree_to_uhwi (captures[4]);
3078 : 234 : unsigned HOST_WIDE_INT lo = bits & 7;
3079 : 234 : unsigned HOST_WIDE_INT hi = bits - lo;
3080 : 234 : if (bits < prec
3081 : 234 : && mask < (256u>>lo)
3082 : 468 : && bits < TYPE_PRECISION (TREE_TYPE(captures[0]))
3083 : : )
3084 : : {
3085 : 234 : {
3086 : 234 : unsigned HOST_WIDE_INT ns = (prec - (hi + 8)) + lo;
3087 : 234 : if (ns == 0
3088 : : )
3089 : : {
3090 : 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail920;
3091 : 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail920;
3092 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail920;
3093 : 1 : {
3094 : 1 : tree res_op0;
3095 : 1 : {
3096 : 1 : tree _o1[1], _r1;
3097 : 1 : _o1[0] = captures[2];
3098 : 1 : if (TREE_TYPE (_o1[0]) != type)
3099 : : {
3100 : 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3101 : : }
3102 : : else
3103 : : _r1 = _o1[0];
3104 : 1 : res_op0 = _r1;
3105 : : }
3106 : 1 : tree res_op1;
3107 : 1 : res_op1 = captures[4];
3108 : 1 : tree _r;
3109 : 1 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3110 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
3111 : 1 : return _r;
3112 : : }
3113 : : next_after_fail920:;
3114 : : }
3115 : : else
3116 : : {
3117 : 233 : {
3118 : 233 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
3119 : 233 : tree nst = build_int_cst (integer_type_node, ns);
3120 : 233 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail921;
3121 : 233 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail921;
3122 : 233 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail921;
3123 : 233 : {
3124 : 233 : tree res_op0;
3125 : 233 : {
3126 : 233 : tree _o1[1], _r1;
3127 : 233 : {
3128 : 233 : tree _o2[2], _r2;
3129 : 233 : {
3130 : 233 : tree _o3[1], _r3;
3131 : 233 : _o3[0] = captures[2];
3132 : 233 : if (TREE_TYPE (_o3[0]) != utype)
3133 : : {
3134 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
3135 : : }
3136 : : else
3137 : : _r3 = _o3[0];
3138 : 233 : _o2[0] = _r3;
3139 : : }
3140 : 233 : _o2[1] = nst;
3141 : 233 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
3142 : 233 : _o1[0] = _r2;
3143 : : }
3144 : 233 : if (TREE_TYPE (_o1[0]) != type)
3145 : : {
3146 : 101 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3147 : : }
3148 : : else
3149 : : _r1 = _o1[0];
3150 : 233 : res_op0 = _r1;
3151 : : }
3152 : 233 : tree res_op1;
3153 : 233 : res_op1 = captures[4];
3154 : 233 : tree _r;
3155 : 233 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3156 : 233 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
3157 : 233 : return _r;
3158 : : }
3159 : : next_after_fail921:;
3160 : : }
3161 : : }
3162 : : }
3163 : : }
3164 : : }
3165 : : }
3166 : : return NULL_TREE;
3167 : : }
3168 : :
3169 : : tree
3170 : 4 : generic_simplify_439 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3171 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3172 : : {
3173 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3174 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail969;
3175 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail969;
3176 : 4 : {
3177 : 4 : tree _r;
3178 : 4 : _r = captures[2];
3179 : 4 : if (TREE_SIDE_EFFECTS (captures[1]))
3180 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3181 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 692, __FILE__, __LINE__, true);
3182 : : return _r;
3183 : : }
3184 : : next_after_fail969:;
3185 : : return NULL_TREE;
3186 : : }
3187 : :
3188 : : tree
3189 : 4 : generic_simplify_440 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3190 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3191 : : {
3192 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3193 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail970;
3194 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail970;
3195 : 4 : {
3196 : 4 : tree _r;
3197 : 4 : _r = captures[2];
3198 : 4 : if (TREE_SIDE_EFFECTS (captures[1]))
3199 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3200 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
3201 : : return _r;
3202 : : }
3203 : : next_after_fail970:;
3204 : : return NULL_TREE;
3205 : : }
3206 : :
3207 : : tree
3208 : 47650 : generic_simplify_442 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3209 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3210 : : const enum tree_code ARG_UNUSED (shift))
3211 : : {
3212 : 47650 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3213 : 47650 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
3214 : 47650 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
3215 : 47650 : && tree_fits_uhwi_p (captures[4])
3216 : 47650 : && tree_to_uhwi (captures[4]) > 0
3217 : 95299 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
3218 : : )
3219 : : {
3220 : 47649 : {
3221 : 47649 : unsigned int shiftc = tree_to_uhwi (captures[4]);
3222 : 47649 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
3223 : 47649 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
3224 : 47649 : tree shift_type = TREE_TYPE (captures[2]);
3225 : 47649 : unsigned int prec;
3226 : 47649 : if (shift == LSHIFT_EXPR)
3227 : 4684 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
3228 : 42965 : else if (shift == RSHIFT_EXPR
3229 : 42965 : && type_has_mode_precision_p (shift_type))
3230 : : {
3231 : 42965 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
3232 : 42965 : tree arg00 = captures[3];
3233 : 42965 : if (captures[2] != captures[3]
3234 : 42965 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
3235 : : {
3236 : 42707 : tree inner_type = TREE_TYPE (captures[3]);
3237 : 42707 : if (type_has_mode_precision_p (inner_type)
3238 : 42707 : && TYPE_PRECISION (inner_type) < prec)
3239 : : {
3240 : 67 : prec = TYPE_PRECISION (inner_type);
3241 : 67 : if (shiftc < prec)
3242 : 66 : shift_type = inner_type;
3243 : : }
3244 : : }
3245 : 42965 : zerobits = HOST_WIDE_INT_M1U;
3246 : 42965 : if (shiftc < prec)
3247 : : {
3248 : 42964 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
3249 : 42964 : zerobits <<= prec - shiftc;
3250 : : }
3251 : 42965 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
3252 : 42965 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
3253 : : {
3254 : 822 : if ((mask & zerobits) == 0)
3255 : 815 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
3256 : : else
3257 : : zerobits = 0;
3258 : : }
3259 : : }
3260 : 47642 : if ((mask & zerobits) == mask
3261 : : )
3262 : : {
3263 : 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail972;
3264 : 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail972;
3265 : 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail972;
3266 : 1 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail972;
3267 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail972;
3268 : 1 : {
3269 : 1 : tree _r;
3270 : 1 : _r = build_int_cst (type, 0);
3271 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 668, __FILE__, __LINE__, true);
3272 : 1 : return _r;
3273 : : }
3274 : : next_after_fail972:;
3275 : : }
3276 : : else
3277 : : {
3278 : 47648 : {
3279 : 47648 : newmask = mask | zerobits;
3280 : 47648 : if (newmask != mask && (newmask & (newmask + 1)) == 0
3281 : : )
3282 : : {
3283 : : {
3284 : 7092 : for (prec = BITS_PER_UNIT;
3285 : 10817 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
3286 : 8701 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
3287 : : break;
3288 : 3725 : if (prec < HOST_BITS_PER_WIDE_INT
3289 : 2116 : || newmask == HOST_WIDE_INT_M1U
3290 : : )
3291 : : {
3292 : 2001 : {
3293 : 2001 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
3294 : 2001 : if (!tree_int_cst_equal (newmaskt, captures[5])
3295 : : )
3296 : : {
3297 : 2001 : if (shift_type != TREE_TYPE (captures[2])
3298 : : )
3299 : : {
3300 : 47 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail973;
3301 : 47 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail973;
3302 : 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail973;
3303 : 47 : {
3304 : 47 : tree res_op0;
3305 : 47 : {
3306 : 47 : tree _o1[1], _r1;
3307 : 47 : {
3308 : 47 : tree _o2[2], _r2;
3309 : 47 : {
3310 : 47 : tree _o3[1], _r3;
3311 : 47 : _o3[0] = captures[2];
3312 : 47 : if (TREE_TYPE (_o3[0]) != shift_type)
3313 : : {
3314 : 47 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
3315 : : }
3316 : : else
3317 : : _r3 = _o3[0];
3318 : 47 : _o2[0] = _r3;
3319 : : }
3320 : 47 : _o2[1] = captures[4];
3321 : 47 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
3322 : 47 : _o1[0] = _r2;
3323 : : }
3324 : 47 : if (TREE_TYPE (_o1[0]) != type)
3325 : : {
3326 : 47 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3327 : : }
3328 : : else
3329 : : _r1 = _o1[0];
3330 : 47 : res_op0 = _r1;
3331 : : }
3332 : 47 : tree res_op1;
3333 : 47 : res_op1 = newmaskt;
3334 : 47 : tree _r;
3335 : 47 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3336 : 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 669, __FILE__, __LINE__, true);
3337 : 47 : return _r;
3338 : : }
3339 : : next_after_fail973:;
3340 : : }
3341 : : else
3342 : : {
3343 : 1954 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail974;
3344 : 835 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail974;
3345 : 835 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail974;
3346 : 835 : {
3347 : 835 : tree res_op0;
3348 : 835 : res_op0 = captures[0];
3349 : 835 : tree res_op1;
3350 : 835 : res_op1 = newmaskt;
3351 : 835 : tree _r;
3352 : 835 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3353 : 835 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
3354 : 835 : return _r;
3355 : : }
3356 : : next_after_fail974:;
3357 : : }
3358 : : }
3359 : : }
3360 : : }
3361 : : }
3362 : : }
3363 : : }
3364 : : }
3365 : : }
3366 : : }
3367 : : return NULL_TREE;
3368 : : }
3369 : :
3370 : : tree
3371 : 245 : generic_simplify_462 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3372 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3373 : : const enum tree_code ARG_UNUSED (cmp),
3374 : : const enum tree_code ARG_UNUSED (icmp),
3375 : : const enum tree_code ARG_UNUSED (ncmp))
3376 : : {
3377 : 245 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3378 : 245 : if (VECTOR_TYPE_P (type)
3379 : 245 : || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
3380 : : )
3381 : : {
3382 : 51 : {
3383 : 51 : enum tree_code ic = invert_tree_comparison
3384 : 51 : (cmp, HONOR_NANS (captures[0]));
3385 : 51 : if (ic == icmp
3386 : : )
3387 : : {
3388 : 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail997;
3389 : 12 : {
3390 : 12 : tree res_op0;
3391 : 12 : res_op0 = captures[0];
3392 : 12 : tree res_op1;
3393 : 12 : res_op1 = captures[1];
3394 : 12 : tree _r;
3395 : 12 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
3396 : 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
3397 : 12 : return _r;
3398 : : }
3399 : 0 : next_after_fail997:;
3400 : : }
3401 : : else
3402 : : {
3403 : 39 : if (ic == ncmp
3404 : : )
3405 : : {
3406 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail998;
3407 : 0 : {
3408 : 0 : tree res_op0;
3409 : 0 : res_op0 = captures[0];
3410 : 0 : tree res_op1;
3411 : 0 : res_op1 = captures[1];
3412 : 0 : tree _r;
3413 : 0 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
3414 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
3415 : 0 : return _r;
3416 : : }
3417 : 0 : next_after_fail998:;
3418 : : }
3419 : : }
3420 : : }
3421 : : }
3422 : : return NULL_TREE;
3423 : : }
3424 : :
3425 : : tree
3426 : 164 : generic_simplify_473 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3427 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3428 : : const enum tree_code ARG_UNUSED (op))
3429 : : {
3430 : 164 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3431 : 164 : if (bitwise_equal_p (captures[0], captures[3])
3432 : 164 : && expr_no_side_effects_p (captures[2])
3433 : : )
3434 : : {
3435 : 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1010;
3436 : 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1010;
3437 : 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1010;
3438 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1010;
3439 : 1 : {
3440 : 1 : tree _r;
3441 : 1 : _r = captures[1];
3442 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 723, __FILE__, __LINE__, true);
3443 : 1 : return _r;
3444 : : }
3445 : : next_after_fail1010:;
3446 : : }
3447 : : return NULL_TREE;
3448 : : }
3449 : :
3450 : : tree
3451 : 7119 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3452 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3453 : : const enum tree_code ARG_UNUSED (cmp),
3454 : : const enum tree_code ARG_UNUSED (op))
3455 : : {
3456 : 7119 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3457 : 7119 : {
3458 : 7119 : tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
3459 : 7119 : if (types_match (from_type, to_type)
3460 : 7119 : || (TYPE_UNSIGNED (from_type)
3461 : 61 : && !TYPE_UNSIGNED (to_type)
3462 : 61 : && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type)
3463 : 61 : && integer_zerop (captures[1])
3464 : 53 : && (cmp == LT_EXPR || cmp == GE_EXPR))
3465 : : )
3466 : : {
3467 : 7065 : {
3468 : 7065 : wi::overflow_type overflow = wi::OVF_NONE;
3469 : 7065 : enum tree_code code, cmp_code = cmp;
3470 : 7065 : wide_int real_c1;
3471 : 7065 : wide_int c1 = wi::to_wide (captures[1]);
3472 : 7065 : wide_int c2 = wi::to_wide (captures[2]);
3473 : 7065 : wide_int c3 = wi::to_wide (captures[3]);
3474 : 7065 : signop sgn = TYPE_SIGN (from_type);
3475 : 7065 : if (!types_match (from_type, to_type))
3476 : : {
3477 : 7 : if (cmp_code == LT_EXPR)
3478 : : cmp_code = GT_EXPR;
3479 : 0 : if (cmp_code == GE_EXPR)
3480 : 0 : cmp_code = LE_EXPR;
3481 : 7 : c1 = wi::max_value (to_type);
3482 : : }
3483 : 7065 : if (op == PLUS_EXPR)
3484 : 7065 : real_c1 = wi::sub (c3, c2, sgn, &overflow);
3485 : : else
3486 : 0 : real_c1 = wi::add (c3, c2, sgn, &overflow);
3487 : 7065 : code = cmp_code;
3488 : 7065 : if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type))
3489 : : {
3490 : 14130 : if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn)
3491 : 7065 : && !overflow)
3492 : : {
3493 : 746 : if (cmp_code == LE_EXPR)
3494 : : code = LT_EXPR;
3495 : 746 : if (cmp_code == GT_EXPR)
3496 : 7065 : code = GE_EXPR;
3497 : : }
3498 : 14130 : if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn)
3499 : 7065 : && !overflow)
3500 : : {
3501 : 5889 : if (cmp_code == LT_EXPR)
3502 : : code = LE_EXPR;
3503 : 5889 : if (cmp_code == GE_EXPR)
3504 : : code = GT_EXPR;
3505 : : }
3506 : 1193 : if (code != cmp_code || !wi::cmp (real_c1, c1, sgn))
3507 : : {
3508 : 6843 : if (cmp_code == LT_EXPR || cmp_code == LE_EXPR)
3509 : : code = MIN_EXPR;
3510 : 6843 : if (cmp_code == GT_EXPR || cmp_code == GE_EXPR)
3511 : : code = MAX_EXPR;
3512 : : }
3513 : : }
3514 : 222 : if (code == MAX_EXPR
3515 : : )
3516 : : {
3517 : 6843 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1019;
3518 : 6843 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1019;
3519 : 6843 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1019;
3520 : 6843 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1019;
3521 : 6843 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1019;
3522 : 6843 : {
3523 : 6843 : tree res_op0;
3524 : 6843 : {
3525 : 6843 : tree _o1[2], _r1;
3526 : 6843 : _o1[0] = captures[0];
3527 : 6843 : _o1[1] = wide_int_to_tree (from_type, real_c1);
3528 : 6843 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3529 : 6843 : res_op0 = _r1;
3530 : : }
3531 : 6843 : tree res_op1;
3532 : 6843 : res_op1 = wide_int_to_tree (from_type, c2);
3533 : 6843 : tree _r;
3534 : 6843 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
3535 : 6843 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 732, __FILE__, __LINE__, true);
3536 : 6843 : return _r;
3537 : : }
3538 : 222 : next_after_fail1019:;
3539 : : }
3540 : : else
3541 : : {
3542 : 222 : if (code == MIN_EXPR
3543 : : )
3544 : : {
3545 : 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1020;
3546 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1020;
3547 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1020;
3548 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1020;
3549 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1020;
3550 : 0 : {
3551 : 0 : tree res_op0;
3552 : 0 : {
3553 : 0 : tree _o1[2], _r1;
3554 : 0 : _o1[0] = captures[0];
3555 : 0 : _o1[1] = wide_int_to_tree (from_type, real_c1);
3556 : 0 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3557 : 0 : res_op0 = _r1;
3558 : : }
3559 : 0 : tree res_op1;
3560 : 0 : res_op1 = wide_int_to_tree (from_type, c2);
3561 : 0 : tree _r;
3562 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
3563 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
3564 : 0 : return _r;
3565 : : }
3566 : 222 : next_after_fail1020:;
3567 : : }
3568 : : }
3569 : 7065 : }
3570 : : }
3571 : : }
3572 : : return NULL_TREE;
3573 : : }
3574 : :
3575 : : tree
3576 : 5 : generic_simplify_507 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3577 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3578 : : const enum tree_code ARG_UNUSED (op),
3579 : : const enum tree_code ARG_UNUSED (logic))
3580 : : {
3581 : 5 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3582 : 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1064;
3583 : 5 : {
3584 : 5 : tree res_op0;
3585 : 5 : res_op0 = captures[0];
3586 : 5 : tree res_op1;
3587 : 5 : res_op1 = captures[1];
3588 : 5 : tree _r;
3589 : 5 : _r = fold_build2_loc (loc, logic, type, res_op0, res_op1);
3590 : 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 763, __FILE__, __LINE__, true);
3591 : : return _r;
3592 : : }
3593 : 0 : next_after_fail1064:;
3594 : 0 : return NULL_TREE;
3595 : : }
3596 : :
3597 : : tree
3598 : 2 : generic_simplify_509 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3599 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3600 : : {
3601 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3602 : 2 : if (TREE_CODE (type) != COMPLEX_TYPE
3603 : 2 : && (! ANY_INTEGRAL_TYPE_P (type)
3604 : 1 : || TYPE_OVERFLOW_UNDEFINED (type))
3605 : : )
3606 : : {
3607 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1066;
3608 : 2 : {
3609 : 2 : tree res_op0;
3610 : 2 : res_op0 = captures[0];
3611 : 2 : tree _r;
3612 : 2 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3613 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 765, __FILE__, __LINE__, true);
3614 : 2 : return _r;
3615 : : }
3616 : 0 : next_after_fail1066:;
3617 : : }
3618 : : return NULL_TREE;
3619 : : }
3620 : :
3621 : : tree
3622 : 0 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3623 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3624 : : const enum tree_code ARG_UNUSED (rotate),
3625 : : const enum tree_code ARG_UNUSED (orotate))
3626 : : {
3627 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3628 : 0 : {
3629 : 0 : auto prec = element_precision (TREE_TYPE (captures[0]));
3630 : 0 : if (prec == wi::to_wide (captures[2])
3631 : : )
3632 : : {
3633 : 0 : if (expr_not_equal_to (captures[3], wi::uhwi (prec,
3634 : 0 : TYPE_PRECISION (TREE_TYPE (captures[3]))))
3635 : : )
3636 : : {
3637 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1072;
3638 : 0 : {
3639 : 0 : tree res_op0;
3640 : 0 : res_op0 = captures[0];
3641 : 0 : tree res_op1;
3642 : 0 : res_op1 = captures[3];
3643 : 0 : tree _r;
3644 : 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3645 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3646 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3647 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 771, __FILE__, __LINE__, true);
3648 : 0 : return _r;
3649 : : }
3650 : 0 : next_after_fail1072:;
3651 : : }
3652 : : else
3653 : : {
3654 : 0 : if (single_use (captures[1])
3655 : 0 : && pow2p_hwi (prec)
3656 : 0 : && cfun
3657 : 0 : && ((cfun->curr_properties & PROP_last_full_fold) != 0
3658 : 0 : || !flag_tree_vrp
3659 : 0 : || optimize_debug)
3660 : : )
3661 : : {
3662 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1073;
3663 : 0 : {
3664 : 0 : tree res_op0;
3665 : 0 : res_op0 = captures[0];
3666 : 0 : tree res_op1;
3667 : 0 : {
3668 : 0 : tree _o1[2], _r1;
3669 : 0 : _o1[0] = captures[3];
3670 : 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[3]), prec - 1);
3671 : 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3672 : 0 : res_op1 = _r1;
3673 : : }
3674 : 0 : tree _r;
3675 : 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3676 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3677 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3678 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3679 : 0 : return _r;
3680 : : }
3681 : 0 : next_after_fail1073:;
3682 : : }
3683 : : }
3684 : : }
3685 : : }
3686 : 0 : return NULL_TREE;
3687 : : }
3688 : :
3689 : : tree
3690 : 0 : generic_simplify_533 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3691 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3692 : : const combined_fn ARG_UNUSED (cond_len_op))
3693 : : {
3694 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3695 : 0 : {
3696 : 0 : tree op_type = TREE_TYPE (captures[6]);
3697 : 0 : if (inverse_conditions_p (captures[0], captures[2])
3698 : 0 : && element_precision (type) == element_precision (op_type)
3699 : : )
3700 : : {
3701 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1093;
3702 : 0 : {
3703 : 0 : tree res_op0;
3704 : 0 : {
3705 : 0 : tree _o1[7], _r1;
3706 : 0 : _o1[0] = captures[2];
3707 : 0 : _o1[1] = captures[3];
3708 : 0 : _o1[2] = captures[4];
3709 : 0 : _o1[3] = captures[5];
3710 : 0 : {
3711 : 0 : tree _o2[1], _r2;
3712 : 0 : _o2[0] = captures[1];
3713 : 0 : if (TREE_TYPE (_o2[0]) != op_type)
3714 : : {
3715 : 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
3716 : : }
3717 : : else
3718 : : _r2 = _o2[0];
3719 : 0 : _o1[4] = _r2;
3720 : : }
3721 : 0 : _o1[5] = captures[7];
3722 : 0 : _o1[6] = captures[8];
3723 : 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 7, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5], _o1[6]);
3724 : 0 : if (!_r1)
3725 : 0 : goto next_after_fail1093;
3726 : 0 : res_op0 = _r1;
3727 : : }
3728 : 0 : tree _r;
3729 : 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3730 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3731 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3732 : 0 : if (TREE_SIDE_EFFECTS (captures[6]))
3733 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
3734 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 787, __FILE__, __LINE__, true);
3735 : 0 : return _r;
3736 : : }
3737 : : next_after_fail1093:;
3738 : : }
3739 : : }
3740 : : return NULL_TREE;
3741 : : }
3742 : :
3743 : : tree
3744 : 0 : generic_simplify_546 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3745 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3746 : : const combined_fn ARG_UNUSED (sinhs),
3747 : : const combined_fn ARG_UNUSED (atanhs),
3748 : : const combined_fn ARG_UNUSED (sqrts))
3749 : : {
3750 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3751 : 0 : if (!flag_errno_math
3752 : : )
3753 : : {
3754 : 0 : {
3755 : 0 : tree t_one = build_one_cst (type);
3756 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1106;
3757 : 0 : {
3758 : 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail1106;
3759 : 0 : tree res_op0;
3760 : 0 : res_op0 = unshare_expr (captures[1]);
3761 : 0 : tree res_op1;
3762 : 0 : {
3763 : 0 : tree _o1[1], _r1;
3764 : 0 : {
3765 : 0 : tree _o2[2], _r2;
3766 : 0 : {
3767 : 0 : tree _o3[2], _r3;
3768 : 0 : _o3[0] = t_one;
3769 : 0 : _o3[1] = unshare_expr (captures[1]);
3770 : 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3771 : 0 : _o2[0] = _r3;
3772 : : }
3773 : 0 : {
3774 : 0 : tree _o3[2], _r3;
3775 : 0 : _o3[0] = t_one;
3776 : 0 : _o3[1] = captures[1];
3777 : 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3778 : 0 : _o2[1] = _r3;
3779 : : }
3780 : 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3781 : 0 : _o1[0] = _r2;
3782 : : }
3783 : 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
3784 : 0 : if (!_r1)
3785 : 0 : goto next_after_fail1106;
3786 : 0 : res_op1 = _r1;
3787 : : }
3788 : 0 : tree _r;
3789 : 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3790 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 800, __FILE__, __LINE__, true);
3791 : 0 : return _r;
3792 : : }
3793 : : next_after_fail1106:;
3794 : : }
3795 : : }
3796 : : return NULL_TREE;
3797 : : }
3798 : :
3799 : : tree
3800 : 0 : generic_simplify_561 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3801 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3802 : : const combined_fn ARG_UNUSED (SIGNBIT))
3803 : : {
3804 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3805 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1121;
3806 : 0 : {
3807 : 0 : tree _r;
3808 : 0 : _r = integer_zero_node;
3809 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3810 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3811 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
3812 : : return _r;
3813 : : }
3814 : 0 : next_after_fail1121:;
3815 : 0 : return NULL_TREE;
3816 : : }
3817 : :
3818 : : tree
3819 : 0 : generic_simplify_568 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3820 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3821 : : {
3822 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3823 : 0 : if (canonicalize_math_after_vectorization_p ()
3824 : : )
3825 : : {
3826 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1128;
3827 : : {
3828 : : tree res_op0;
3829 : : res_op0 = captures[0];
3830 : : tree res_op1;
3831 : : res_op1 = captures[1];
3832 : : tree res_op2;
3833 : : res_op2 = captures[2];
3834 : : tree _r;
3835 : : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3836 : : if (!_r)
3837 : : goto next_after_fail1128;
3838 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 822, __FILE__, __LINE__, true);
3839 : : return _r;
3840 : : }
3841 : 0 : next_after_fail1128:;
3842 : : }
3843 : 0 : return NULL_TREE;
3844 : : }
3845 : :
3846 : : tree
3847 : 0 : generic_simplify_578 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3848 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3849 : : const combined_fn ARG_UNUSED (bswap),
3850 : : const combined_fn ARG_UNUSED (popcount))
3851 : : {
3852 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3853 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3854 : 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3855 : : )
3856 : : {
3857 : 0 : {
3858 : 0 : tree type0 = TREE_TYPE (captures[0]);
3859 : 0 : tree type1 = TREE_TYPE (captures[1]);
3860 : 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3861 : 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3862 : 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3863 : : )
3864 : : {
3865 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1138;
3866 : 0 : {
3867 : 0 : tree res_op0;
3868 : 0 : {
3869 : 0 : tree _o1[1], _r1;
3870 : 0 : {
3871 : 0 : tree _o2[1], _r2;
3872 : 0 : _o2[0] = captures[2];
3873 : 0 : if (TREE_TYPE (_o2[0]) != type1)
3874 : : {
3875 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3876 : : }
3877 : : else
3878 : : _r2 = _o2[0];
3879 : 0 : _o1[0] = _r2;
3880 : : }
3881 : 0 : if (TREE_TYPE (_o1[0]) != type0)
3882 : : {
3883 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3884 : : }
3885 : : else
3886 : : _r1 = _o1[0];
3887 : 0 : res_op0 = _r1;
3888 : : }
3889 : 0 : tree _r;
3890 : 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3891 : 0 : if (!_r)
3892 : 0 : goto next_after_fail1138;
3893 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3894 : 0 : return _r;
3895 : : }
3896 : : next_after_fail1138:;
3897 : : }
3898 : : }
3899 : : }
3900 : : return NULL_TREE;
3901 : : }
3902 : :
3903 : : tree
3904 : 602668196 : generic_simplify_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3905 : : {
3906 : 602668196 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3907 : 602668196 : switch (TREE_CODE (_p0))
3908 : : {
3909 : 391887 : case NEGATE_EXPR:
3910 : 391887 : {
3911 : 391887 : tree _q20 = TREE_OPERAND (_p0, 0);
3912 : 391887 : switch (TREE_CODE (_q20))
3913 : : {
3914 : 58036 : CASE_CONVERT:
3915 : 58036 : {
3916 : 58036 : tree _q30 = TREE_OPERAND (_q20, 0);
3917 : 58036 : {
3918 : 58036 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3919 : 58036 : if (INTEGRAL_TYPE_P (type)
3920 : 57735 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
3921 : 54346 : && (TYPE_PRECISION (type) > TYPE_PRECISION (TREE_TYPE (captures[2]))
3922 : 53634 : || TYPE_UNSIGNED (type))
3923 : 64857 : && TREE_CODE (type) != BOOLEAN_TYPE
3924 : : )
3925 : : {
3926 : 6821 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1156;
3927 : 6821 : {
3928 : 6821 : tree res_op0;
3929 : 6821 : {
3930 : 6821 : tree _o1[1], _r1;
3931 : 6821 : _o1[0] = captures[2];
3932 : 6821 : if (TREE_TYPE (_o1[0]) != type)
3933 : : {
3934 : 6771 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3935 : : }
3936 : : else
3937 : : _r1 = _o1[0];
3938 : 6821 : res_op0 = _r1;
3939 : : }
3940 : 6821 : tree _r;
3941 : 6821 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
3942 : 6821 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
3943 : 6821 : return _r;
3944 : : }
3945 : 0 : next_after_fail1156:;
3946 : : }
3947 : : }
3948 : 51215 : break;
3949 : : }
3950 : : default:;
3951 : : }
3952 : : break;
3953 : : }
3954 : 1216205 : case BIT_AND_EXPR:
3955 : 1216205 : {
3956 : 1216205 : tree _q20 = TREE_OPERAND (_p0, 0);
3957 : 1216205 : tree _q21 = TREE_OPERAND (_p0, 1);
3958 : 1216205 : {
3959 : 1216205 : tree _q20_pops[1];
3960 : 1216205 : if (tree_nop_convert (_q20, _q20_pops))
3961 : : {
3962 : 580811 : tree _q30 = _q20_pops[0];
3963 : 580811 : {
3964 : 580811 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
3965 : 580811 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_AND_EXPR);
3966 : 580811 : if (res) return res;
3967 : : }
3968 : : }
3969 : : }
3970 : 1216205 : {
3971 : 1216205 : tree _q21_pops[1];
3972 : 1216205 : if (tree_nop_convert (_q21, _q21_pops))
3973 : : {
3974 : 413519 : tree _q40 = _q21_pops[0];
3975 : 413519 : {
3976 : 413519 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
3977 : 413519 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_AND_EXPR);
3978 : 413519 : if (res) return res;
3979 : : }
3980 : : }
3981 : : }
3982 : 1216205 : break;
3983 : : }
3984 : 1080468 : case BIT_IOR_EXPR:
3985 : 1080468 : {
3986 : 1080468 : tree _q20 = TREE_OPERAND (_p0, 0);
3987 : 1080468 : tree _q21 = TREE_OPERAND (_p0, 1);
3988 : 1080468 : {
3989 : 1080468 : tree _q20_pops[1];
3990 : 1080468 : if (tree_nop_convert (_q20, _q20_pops))
3991 : : {
3992 : 391125 : tree _q30 = _q20_pops[0];
3993 : 391125 : {
3994 : 391125 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
3995 : 391125 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_IOR_EXPR);
3996 : 391125 : if (res) return res;
3997 : : }
3998 : : }
3999 : : }
4000 : 1080468 : {
4001 : 1080468 : tree _q21_pops[1];
4002 : 1080468 : if (tree_nop_convert (_q21, _q21_pops))
4003 : : {
4004 : 979414 : tree _q40 = _q21_pops[0];
4005 : 979414 : {
4006 : 979414 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
4007 : 979414 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_IOR_EXPR);
4008 : 979414 : if (res) return res;
4009 : : }
4010 : : }
4011 : : }
4012 : 1080468 : break;
4013 : : }
4014 : 427671 : case BIT_XOR_EXPR:
4015 : 427671 : {
4016 : 427671 : tree _q20 = TREE_OPERAND (_p0, 0);
4017 : 427671 : tree _q21 = TREE_OPERAND (_p0, 1);
4018 : 427671 : {
4019 : 427671 : tree _q20_pops[1];
4020 : 427671 : if (tree_nop_convert (_q20, _q20_pops))
4021 : : {
4022 : 351121 : tree _q30 = _q20_pops[0];
4023 : 351121 : {
4024 : 351121 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
4025 : 351121 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_XOR_EXPR);
4026 : 351121 : if (res) return res;
4027 : : }
4028 : : }
4029 : : }
4030 : 427671 : {
4031 : 427671 : tree _q21_pops[1];
4032 : 427671 : if (tree_nop_convert (_q21, _q21_pops))
4033 : : {
4034 : 387176 : tree _q40 = _q21_pops[0];
4035 : 387176 : {
4036 : 387176 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
4037 : 387176 : tree res = generic_simplify_382 (loc, type, _p0, captures, BIT_XOR_EXPR);
4038 : 387176 : if (res) return res;
4039 : : }
4040 : : }
4041 : : }
4042 : 427671 : break;
4043 : : }
4044 : 8009852 : case MULT_EXPR:
4045 : 8009852 : {
4046 : 8009852 : tree _q20 = TREE_OPERAND (_p0, 0);
4047 : 8009852 : tree _q21 = TREE_OPERAND (_p0, 1);
4048 : 8009852 : if (tree_zero_one_valued_p (_q20))
4049 : : {
4050 : 59766 : switch (TREE_CODE (_q21))
4051 : : {
4052 : 54301 : case INTEGER_CST:
4053 : 54301 : {
4054 : 54301 : {
4055 : 54301 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4056 : 54301 : if (INTEGRAL_TYPE_P (type)
4057 : 54301 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4058 : 54301 : && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (captures[0]))
4059 : 54307 : && (TYPE_UNSIGNED (type) || TYPE_PRECISION (type) > 1)
4060 : : )
4061 : : {
4062 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1157;
4063 : 6 : {
4064 : 6 : tree res_op0;
4065 : 6 : {
4066 : 6 : tree _o1[1], _r1;
4067 : 6 : _o1[0] = captures[1];
4068 : 6 : if (TREE_TYPE (_o1[0]) != type)
4069 : : {
4070 : 6 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4071 : : }
4072 : : else
4073 : : _r1 = _o1[0];
4074 : 6 : res_op0 = _r1;
4075 : : }
4076 : 6 : tree res_op1;
4077 : 6 : {
4078 : 6 : tree _o1[1], _r1;
4079 : 6 : _o1[0] = captures[2];
4080 : 6 : if (TREE_TYPE (_o1[0]) != type)
4081 : : {
4082 : 6 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4083 : : }
4084 : : else
4085 : : _r1 = _o1[0];
4086 : 6 : res_op1 = _r1;
4087 : : }
4088 : 6 : tree _r;
4089 : 6 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
4090 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
4091 : 6 : return _r;
4092 : : }
4093 : 0 : next_after_fail1157:;
4094 : : }
4095 : : }
4096 : 54295 : break;
4097 : : }
4098 : : default:;
4099 : : }
4100 : : }
4101 : : break;
4102 : : }
4103 : 1203831 : case POINTER_DIFF_EXPR:
4104 : 1203831 : {
4105 : 1203831 : tree _q20 = TREE_OPERAND (_p0, 0);
4106 : 1203831 : tree _q21 = TREE_OPERAND (_p0, 1);
4107 : 1203831 : switch (TREE_CODE (_q21))
4108 : : {
4109 : 200 : case INTEGER_CST:
4110 : 200 : {
4111 : 200 : {
4112 : 200 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4113 : 200 : if (POINTER_TYPE_P (type)
4114 : : )
4115 : : {
4116 : 18 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1158;
4117 : 18 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1158;
4118 : 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1158;
4119 : 18 : {
4120 : 18 : tree _r;
4121 : 18 : _r = build_fold_addr_expr_with_type
4122 : : (build2 (MEM_REF, char_type_node, captures[0],
4123 : : wide_int_to_tree (ptr_type_node, wi::neg (wi::to_wide (captures[1])))),
4124 : : type);
4125 : 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
4126 : 18 : return _r;
4127 : : }
4128 : 182 : next_after_fail1158:;
4129 : : }
4130 : : }
4131 : 182 : break;
4132 : : }
4133 : : default:;
4134 : : }
4135 : : break;
4136 : : }
4137 : 210061 : case EQ_EXPR:
4138 : 210061 : {
4139 : 210061 : tree _q20 = TREE_OPERAND (_p0, 0);
4140 : 210061 : tree _q21 = TREE_OPERAND (_p0, 1);
4141 : 210061 : if (tree_zero_one_valued_p (_q20))
4142 : : {
4143 : 1665 : switch (TREE_CODE (_q21))
4144 : : {
4145 : 796 : case INTEGER_CST:
4146 : 796 : {
4147 : 796 : {
4148 : 796 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4149 : 796 : tree res = generic_simplify_383 (loc, type, _p0, captures, EQ_EXPR);
4150 : 796 : if (res) return res;
4151 : : }
4152 : 757 : break;
4153 : : }
4154 : : default:;
4155 : : }
4156 : : }
4157 : : break;
4158 : : }
4159 : 251832 : case NE_EXPR:
4160 : 251832 : {
4161 : 251832 : tree _q20 = TREE_OPERAND (_p0, 0);
4162 : 251832 : tree _q21 = TREE_OPERAND (_p0, 1);
4163 : 251832 : if (tree_zero_one_valued_p (_q20))
4164 : : {
4165 : 1798 : switch (TREE_CODE (_q21))
4166 : : {
4167 : 1476 : case INTEGER_CST:
4168 : 1476 : {
4169 : 1476 : {
4170 : 1476 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4171 : 1476 : tree res = generic_simplify_383 (loc, type, _p0, captures, NE_EXPR);
4172 : 1476 : if (res) return res;
4173 : : }
4174 : 1 : break;
4175 : : }
4176 : : default:;
4177 : : }
4178 : : }
4179 : : break;
4180 : : }
4181 : 1895 : case MIN_EXPR:
4182 : 1895 : {
4183 : 1895 : tree _q20 = TREE_OPERAND (_p0, 0);
4184 : 1895 : tree _q21 = TREE_OPERAND (_p0, 1);
4185 : 1895 : switch (TREE_CODE (_q20))
4186 : : {
4187 : 704 : CASE_CONVERT:
4188 : 704 : {
4189 : 704 : tree _q30 = TREE_OPERAND (_q20, 0);
4190 : 704 : switch (TREE_CODE (_q21))
4191 : : {
4192 : 659 : case INTEGER_CST:
4193 : 659 : {
4194 : 659 : {
4195 : 659 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
4196 : 659 : tree res = generic_simplify_384 (loc, type, _p0, captures, MIN_EXPR);
4197 : 659 : if (res) return res;
4198 : : }
4199 : 659 : break;
4200 : : }
4201 : : default:;
4202 : : }
4203 : : break;
4204 : : }
4205 : : default:;
4206 : : }
4207 : : break;
4208 : : }
4209 : 281749 : case MAX_EXPR:
4210 : 281749 : {
4211 : 281749 : tree _q20 = TREE_OPERAND (_p0, 0);
4212 : 281749 : tree _q21 = TREE_OPERAND (_p0, 1);
4213 : 281749 : switch (TREE_CODE (_q20))
4214 : : {
4215 : 6901 : CASE_CONVERT:
4216 : 6901 : {
4217 : 6901 : tree _q30 = TREE_OPERAND (_q20, 0);
4218 : 6901 : switch (TREE_CODE (_q21))
4219 : : {
4220 : 6865 : case INTEGER_CST:
4221 : 6865 : {
4222 : 6865 : {
4223 : 6865 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
4224 : 6865 : tree res = generic_simplify_384 (loc, type, _p0, captures, MAX_EXPR);
4225 : 6865 : if (res) return res;
4226 : : }
4227 : 6865 : break;
4228 : : }
4229 : : default:;
4230 : : }
4231 : : break;
4232 : : }
4233 : : default:;
4234 : : }
4235 : : break;
4236 : : }
4237 : 442671 : case LSHIFT_EXPR:
4238 : 442671 : {
4239 : 442671 : tree _q20 = TREE_OPERAND (_p0, 0);
4240 : 442671 : tree _q21 = TREE_OPERAND (_p0, 1);
4241 : 442671 : switch (TREE_CODE (_q21))
4242 : : {
4243 : 136667 : case INTEGER_CST:
4244 : 136667 : {
4245 : 136667 : {
4246 : 136667 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4247 : 136667 : if (INTEGRAL_TYPE_P (type)
4248 : 136640 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4249 : 136640 : && !integer_zerop (captures[2])
4250 : 272533 : && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
4251 : : )
4252 : : {
4253 : 134583 : if (TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
4254 : 134583 : || wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (type))
4255 : : )
4256 : : {
4257 : 134341 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1159;
4258 : 134341 : {
4259 : 134341 : tree res_op0;
4260 : 134341 : {
4261 : 134341 : tree _o1[1], _r1;
4262 : 134341 : _o1[0] = captures[1];
4263 : 134341 : if (TREE_TYPE (_o1[0]) != type)
4264 : : {
4265 : 125267 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4266 : : }
4267 : : else
4268 : : _r1 = _o1[0];
4269 : 134341 : res_op0 = _r1;
4270 : : }
4271 : 134341 : tree res_op1;
4272 : 134341 : res_op1 = captures[2];
4273 : 134341 : tree _r;
4274 : 134341 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
4275 : 134341 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
4276 : 134341 : return _r;
4277 : : }
4278 : 0 : next_after_fail1159:;
4279 : : }
4280 : : else
4281 : : {
4282 : 242 : if (wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])))
4283 : : )
4284 : : {
4285 : 225 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
4286 : 225 : {
4287 : 225 : tree _r;
4288 : 225 : _r = build_zero_cst (type);
4289 : 225 : if (TREE_SIDE_EFFECTS (captures[1]))
4290 : 14 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4291 : 225 : if (TREE_SIDE_EFFECTS (captures[2]))
4292 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4293 : 225 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 847, __FILE__, __LINE__, true);
4294 : 225 : return _r;
4295 : : }
4296 : 0 : next_after_fail1160:;
4297 : : }
4298 : : }
4299 : : }
4300 : : }
4301 : 2101 : break;
4302 : : }
4303 : : default:;
4304 : : }
4305 : : break;
4306 : : }
4307 : 602525271 : default:;
4308 : : }
4309 : 602525271 : {
4310 : 602525271 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4311 : 1205050542 : if ((
4312 : :
4313 : : && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
4314 : : || (
4315 : : 1
4316 : 602525271 : && type == TREE_TYPE (captures[0]))
4317 : : )
4318 : : {
4319 : 42253203 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
4320 : 42253203 : {
4321 : 42253203 : tree _r;
4322 : 42253203 : _r = captures[0];
4323 : 42253203 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 848, __FILE__, __LINE__, true);
4324 : 42253203 : return _r;
4325 : : }
4326 : 0 : next_after_fail1161:;
4327 : : }
4328 : : }
4329 : 560272068 : switch (TREE_CODE (_p0))
4330 : : {
4331 : 70000669 : CASE_CONVERT:
4332 : 70000669 : {
4333 : 70000669 : tree _q20 = TREE_OPERAND (_p0, 0);
4334 : 70000669 : {
4335 : 70000669 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4336 : 70000669 : {
4337 : 70000669 : tree inside_type = TREE_TYPE (captures[1]);
4338 : 70000669 : tree inter_type = TREE_TYPE (captures[0]);
4339 : 70000669 : int inside_int = INTEGRAL_TYPE_P (inside_type);
4340 : 70000669 : int inside_ptr = POINTER_TYPE_P (inside_type);
4341 : 70000669 : int inside_float = FLOAT_TYPE_P (inside_type);
4342 : 70000669 : int inside_vec = VECTOR_TYPE_P (inside_type);
4343 : 70000669 : unsigned int inside_prec = element_precision (inside_type);
4344 : 70000669 : int inside_unsignedp = TYPE_UNSIGNED (inside_type);
4345 : 70000669 : int inter_int = INTEGRAL_TYPE_P (inter_type);
4346 : 70000669 : int inter_ptr = POINTER_TYPE_P (inter_type);
4347 : 70000669 : int inter_float = FLOAT_TYPE_P (inter_type);
4348 : 70000669 : int inter_vec = VECTOR_TYPE_P (inter_type);
4349 : 70000669 : unsigned int inter_prec = element_precision (inter_type);
4350 : 70000669 : int inter_unsignedp = TYPE_UNSIGNED (inter_type);
4351 : 70000669 : int final_int = INTEGRAL_TYPE_P (type);
4352 : 70000669 : int final_ptr = POINTER_TYPE_P (type);
4353 : 70000669 : int final_float = FLOAT_TYPE_P (type);
4354 : 70000669 : int final_vec = VECTOR_TYPE_P (type);
4355 : 70000669 : unsigned int final_prec = element_precision (type);
4356 : 70000669 : int final_unsignedp = TYPE_UNSIGNED (type);
4357 : 70000669 : if (((
4358 : :
4359 : : && useless_type_conversion_p (type, inside_type))
4360 : : || (
4361 : : 1
4362 : 70000669 : && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
4363 : 20105125 : && (((inter_int || inter_ptr) && final_int)
4364 : 14948579 : || (inter_float && final_float))
4365 : 75244490 : && inter_prec >= final_prec
4366 : : )
4367 : : {
4368 : 4708421 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
4369 : 4708421 : {
4370 : 4708421 : tree res_op0;
4371 : 4708421 : res_op0 = captures[1];
4372 : 4708421 : tree _r;
4373 : 4708421 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4374 : 4708421 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 849, __FILE__, __LINE__, true);
4375 : 4708421 : return _r;
4376 : : }
4377 : 0 : next_after_fail1162:;
4378 : : }
4379 : : else
4380 : : {
4381 : 65292248 : if (((inter_int && inside_int) || (inter_float && inside_float))
4382 : 10917041 : && (final_int || final_float)
4383 : 10788956 : && inter_prec >= inside_prec
4384 : 9535653 : && (inter_float || inter_unsignedp == inside_unsignedp)
4385 : : )
4386 : : {
4387 : 6511576 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
4388 : 6511576 : {
4389 : 6511576 : tree res_op0;
4390 : 6511576 : res_op0 = captures[1];
4391 : 6511576 : tree _r;
4392 : 6511576 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4393 : 6511576 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 850, __FILE__, __LINE__, true);
4394 : 6511576 : return _r;
4395 : : }
4396 : 0 : next_after_fail1163:;
4397 : 0 : }
4398 : : else
4399 : : {
4400 : 58780672 : if (inside_int && inter_int && final_int
4401 : 4271143 : && ((inside_prec < inter_prec && inter_prec < final_prec
4402 : 229087 : && inside_unsignedp && !inter_unsignedp)
4403 : 4068643 : || final_prec == inter_prec
4404 : 2197265 : || (inside_prec < inter_prec && inter_prec > final_prec
4405 : 146520 : && !inside_unsignedp && inter_unsignedp))
4406 : : )
4407 : : {
4408 : 2137594 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
4409 : 2137594 : {
4410 : 2137594 : tree res_op0;
4411 : 2137594 : res_op0 = captures[1];
4412 : 2137594 : tree _r;
4413 : 2137594 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4414 : 2137594 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 851, __FILE__, __LINE__, true);
4415 : 2137594 : return _r;
4416 : : }
4417 : 0 : next_after_fail1164:;
4418 : 0 : }
4419 : : else
4420 : : {
4421 : 56643078 : if (! inside_float && ! inter_float && ! final_float
4422 : : && ! inside_vec && ! inter_vec && ! final_vec
4423 : 56636837 : && (inter_prec >= inside_prec || inter_prec >= final_prec)
4424 : 55867932 : && ! (inside_int && inter_int
4425 : 1492725 : && inter_unsignedp != inside_unsignedp
4426 : 1492725 : && inter_prec < final_prec)
4427 : 54653023 : && ((inter_unsignedp && inter_prec > inside_prec)
4428 : 54653023 : == (final_unsignedp && final_prec > inter_prec))
4429 : 54630374 : && ! (inside_ptr && inter_prec != final_prec)
4430 : 54167416 : && ! (final_ptr && inside_prec != inter_prec)
4431 : : )
4432 : : {
4433 : 54148854 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
4434 : 54148854 : {
4435 : 54148854 : tree res_op0;
4436 : 54148854 : res_op0 = captures[1];
4437 : 54148854 : tree _r;
4438 : 54148854 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4439 : 54148854 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 852, __FILE__, __LINE__, true);
4440 : 54148854 : return _r;
4441 : : }
4442 : 0 : next_after_fail1165:;
4443 : 0 : }
4444 : : else
4445 : : {
4446 : 2494224 : if (inside_int && inter_int && final_int
4447 : 2011047 : && final_prec <= inside_prec
4448 : 709986 : && inter_prec >= inside_prec
4449 : : )
4450 : : {
4451 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
4452 : 0 : {
4453 : 0 : tree res_op0;
4454 : 0 : res_op0 = captures[1];
4455 : 0 : tree _r;
4456 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4457 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
4458 : 0 : return _r;
4459 : : }
4460 : 0 : next_after_fail1166:;
4461 : 0 : }
4462 : : else
4463 : : {
4464 : : if (0
4465 : : && final_int && inter_int && inside_int
4466 : : && final_prec >= inside_prec
4467 : : && inside_prec > inter_prec
4468 : : && inter_unsignedp
4469 : : )
4470 : : {
4471 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
4472 : : {
4473 : : tree res_op0;
4474 : : {
4475 : : tree _o1[2], _r1;
4476 : : _o1[0] = captures[1];
4477 : : _o1[1] = wide_int_to_tree
4478 : : (inside_type,
4479 : : wi::mask (inter_prec, false,
4480 : : TYPE_PRECISION (inside_type)));
4481 : : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4482 : : res_op0 = _r1;
4483 : : }
4484 : : tree _r;
4485 : : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4486 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 854, __FILE__, __LINE__, true);
4487 : : return _r;
4488 : : }
4489 : : next_after_fail1167:;
4490 : : }
4491 : : else
4492 : : {
4493 : : if (0
4494 : : && inside_int && inter_float && final_int &&
4495 : : (unsigned) significand_size (TYPE_MODE (inter_type))
4496 : : >= inside_prec - !inside_unsignedp
4497 : : )
4498 : : {
4499 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
4500 : : {
4501 : : tree res_op0;
4502 : : res_op0 = captures[1];
4503 : : tree _r;
4504 : : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4505 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 855, __FILE__, __LINE__, true);
4506 : : return _r;
4507 : : }
4508 : : next_after_fail1168:;
4509 : : }
4510 : : }
4511 : : }
4512 : : }
4513 : : }
4514 : : }
4515 : : }
4516 : : }
4517 : : }
4518 : 2494224 : break;
4519 : : }
4520 : 3066 : case FLOAT_EXPR:
4521 : 3066 : {
4522 : 3066 : tree _q20 = TREE_OPERAND (_p0, 0);
4523 : 3066 : {
4524 : 3066 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4525 : 3066 : {
4526 : 3066 : tree inside_type = TREE_TYPE (captures[1]);
4527 : 3066 : tree inter_type = TREE_TYPE (captures[0]);
4528 : 3066 : int inside_int = INTEGRAL_TYPE_P (inside_type);
4529 : 3066 : int inside_ptr = POINTER_TYPE_P (inside_type);
4530 : 3066 : int inside_float = FLOAT_TYPE_P (inside_type);
4531 : 3066 : int inside_vec = VECTOR_TYPE_P (inside_type);
4532 : 3066 : unsigned int inside_prec = element_precision (inside_type);
4533 : 3066 : int inside_unsignedp = TYPE_UNSIGNED (inside_type);
4534 : 3066 : int inter_int = INTEGRAL_TYPE_P (inter_type);
4535 : 3066 : int inter_ptr = POINTER_TYPE_P (inter_type);
4536 : 3066 : int inter_float = FLOAT_TYPE_P (inter_type);
4537 : 3066 : int inter_vec = VECTOR_TYPE_P (inter_type);
4538 : 3066 : unsigned int inter_prec = element_precision (inter_type);
4539 : 3066 : int inter_unsignedp = TYPE_UNSIGNED (inter_type);
4540 : 3066 : int final_int = INTEGRAL_TYPE_P (type);
4541 : 3066 : int final_ptr = POINTER_TYPE_P (type);
4542 : 3066 : int final_float = FLOAT_TYPE_P (type);
4543 : 3066 : int final_vec = VECTOR_TYPE_P (type);
4544 : 3066 : unsigned int final_prec = element_precision (type);
4545 : 3066 : int final_unsignedp = TYPE_UNSIGNED (type);
4546 : 3066 : if (((
4547 : :
4548 : : && useless_type_conversion_p (type, inside_type))
4549 : : || (
4550 : : 1
4551 : 3066 : && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
4552 : 0 : && (((inter_int || inter_ptr) && final_int)
4553 : 0 : || (inter_float && final_float))
4554 : 3066 : && inter_prec >= final_prec
4555 : : )
4556 : : {
4557 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
4558 : 0 : {
4559 : 0 : tree res_op0;
4560 : 0 : res_op0 = captures[1];
4561 : 0 : tree _r;
4562 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4563 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 849, __FILE__, __LINE__, true);
4564 : 0 : return _r;
4565 : : }
4566 : 0 : next_after_fail1169:;
4567 : : }
4568 : : else
4569 : : {
4570 : 3066 : if (((inter_int && inside_int) || (inter_float && inside_float))
4571 : 0 : && (final_int || final_float)
4572 : 0 : && inter_prec >= inside_prec
4573 : 0 : && (inter_float || inter_unsignedp == inside_unsignedp)
4574 : : )
4575 : : {
4576 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
4577 : 0 : {
4578 : 0 : tree res_op0;
4579 : 0 : res_op0 = captures[1];
4580 : 0 : tree _r;
4581 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4582 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 850, __FILE__, __LINE__, true);
4583 : 0 : return _r;
4584 : : }
4585 : 0 : next_after_fail1170:;
4586 : 0 : }
4587 : : else
4588 : : {
4589 : 3066 : if (inside_int && inter_int && final_int
4590 : 0 : && ((inside_prec < inter_prec && inter_prec < final_prec
4591 : 0 : && inside_unsignedp && !inter_unsignedp)
4592 : 0 : || final_prec == inter_prec
4593 : 0 : || (inside_prec < inter_prec && inter_prec > final_prec
4594 : 0 : && !inside_unsignedp && inter_unsignedp))
4595 : : )
4596 : : {
4597 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
4598 : 0 : {
4599 : 0 : tree res_op0;
4600 : 0 : res_op0 = captures[1];
4601 : 0 : tree _r;
4602 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4603 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 851, __FILE__, __LINE__, true);
4604 : 0 : return _r;
4605 : : }
4606 : 0 : next_after_fail1171:;
4607 : 0 : }
4608 : : else
4609 : : {
4610 : 3066 : if (! inside_float && ! inter_float && ! final_float
4611 : : && ! inside_vec && ! inter_vec && ! final_vec
4612 : 0 : && (inter_prec >= inside_prec || inter_prec >= final_prec)
4613 : 0 : && ! (inside_int && inter_int
4614 : 0 : && inter_unsignedp != inside_unsignedp
4615 : 0 : && inter_prec < final_prec)
4616 : 0 : && ((inter_unsignedp && inter_prec > inside_prec)
4617 : 0 : == (final_unsignedp && final_prec > inter_prec))
4618 : 0 : && ! (inside_ptr && inter_prec != final_prec)
4619 : 0 : && ! (final_ptr && inside_prec != inter_prec)
4620 : : )
4621 : : {
4622 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
4623 : 0 : {
4624 : 0 : tree res_op0;
4625 : 0 : res_op0 = captures[1];
4626 : 0 : tree _r;
4627 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4628 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 852, __FILE__, __LINE__, true);
4629 : 0 : return _r;
4630 : : }
4631 : 0 : next_after_fail1172:;
4632 : 0 : }
4633 : : else
4634 : : {
4635 : 3066 : if (inside_int && inter_int && final_int
4636 : 0 : && final_prec <= inside_prec
4637 : 0 : && inter_prec >= inside_prec
4638 : : )
4639 : : {
4640 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
4641 : 0 : {
4642 : 0 : tree res_op0;
4643 : 0 : res_op0 = captures[1];
4644 : 0 : tree _r;
4645 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4646 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
4647 : 0 : return _r;
4648 : : }
4649 : 0 : next_after_fail1173:;
4650 : 0 : }
4651 : : else
4652 : : {
4653 : : if (0
4654 : : && final_int && inter_int && inside_int
4655 : : && final_prec >= inside_prec
4656 : : && inside_prec > inter_prec
4657 : : && inter_unsignedp
4658 : : )
4659 : : {
4660 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
4661 : : {
4662 : : tree res_op0;
4663 : : {
4664 : : tree _o1[2], _r1;
4665 : : _o1[0] = captures[1];
4666 : : _o1[1] = wide_int_to_tree
4667 : : (inside_type,
4668 : : wi::mask (inter_prec, false,
4669 : : TYPE_PRECISION (inside_type)));
4670 : : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4671 : : res_op0 = _r1;
4672 : : }
4673 : : tree _r;
4674 : : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4675 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 854, __FILE__, __LINE__, true);
4676 : : return _r;
4677 : : }
4678 : : next_after_fail1174:;
4679 : : }
4680 : : else
4681 : : {
4682 : : if (0
4683 : : && inside_int && inter_float && final_int &&
4684 : : (unsigned) significand_size (TYPE_MODE (inter_type))
4685 : : >= inside_prec - !inside_unsignedp
4686 : : )
4687 : : {
4688 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
4689 : : {
4690 : : tree res_op0;
4691 : : res_op0 = captures[1];
4692 : : tree _r;
4693 : : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4694 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 855, __FILE__, __LINE__, true);
4695 : : return _r;
4696 : : }
4697 : : next_after_fail1175:;
4698 : : }
4699 : : }
4700 : : }
4701 : : }
4702 : : }
4703 : : }
4704 : : }
4705 : : }
4706 : : }
4707 : 3066 : break;
4708 : : }
4709 : 862998 : case BIT_AND_EXPR:
4710 : 862998 : {
4711 : 862998 : tree _q20 = TREE_OPERAND (_p0, 0);
4712 : 862998 : tree _q21 = TREE_OPERAND (_p0, 1);
4713 : 862998 : switch (TREE_CODE (_q21))
4714 : : {
4715 : 320323 : case INTEGER_CST:
4716 : 320323 : {
4717 : 320323 : {
4718 : 320323 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4719 : 320323 : if (INTEGRAL_TYPE_P (type)
4720 : 319812 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4721 : 319812 : && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
4722 : 447689 : && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]),
4723 : 127366 : TYPE_PRECISION (type)), 0)
4724 : : )
4725 : : {
4726 : 3387 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
4727 : 3387 : {
4728 : 3387 : tree res_op0;
4729 : 3387 : res_op0 = captures[0];
4730 : 3387 : tree _r;
4731 : 3387 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4732 : 3387 : if (TREE_SIDE_EFFECTS (captures[1]))
4733 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4734 : 3387 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 856, __FILE__, __LINE__, true);
4735 : 3387 : return _r;
4736 : : }
4737 : 0 : next_after_fail1176:;
4738 : : }
4739 : : }
4740 : 316936 : break;
4741 : : }
4742 : : default:;
4743 : : }
4744 : : break;
4745 : : }
4746 : 5 : case VEC_COND_EXPR:
4747 : 5 : {
4748 : 5 : tree _q20 = TREE_OPERAND (_p0, 0);
4749 : 5 : tree _q21 = TREE_OPERAND (_p0, 1);
4750 : 5 : tree _q22 = TREE_OPERAND (_p0, 2);
4751 : 5 : {
4752 : 5 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4753 : 5 : if (VECTOR_TYPE_P (type)
4754 : 5 : && types_match (TREE_TYPE (captures[1]), truth_type_for (type))
4755 : : )
4756 : : {
4757 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
4758 : 0 : {
4759 : 0 : tree res_op0;
4760 : 0 : res_op0 = captures[1];
4761 : 0 : tree res_op1;
4762 : 0 : {
4763 : 0 : tree _o1[1], _r1;
4764 : 0 : _o1[0] = captures[2];
4765 : 0 : if (TREE_TYPE (_o1[0]) != type)
4766 : : {
4767 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4768 : 0 : if (EXPR_P (_r1))
4769 : 0 : goto next_after_fail1177;
4770 : : }
4771 : : else
4772 : : _r1 = _o1[0];
4773 : 0 : res_op1 = _r1;
4774 : : }
4775 : 0 : tree res_op2;
4776 : 0 : {
4777 : 0 : tree _o1[1], _r1;
4778 : 0 : _o1[0] = captures[3];
4779 : 0 : if (TREE_TYPE (_o1[0]) != type)
4780 : : {
4781 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4782 : 0 : if (EXPR_P (_r1))
4783 : 0 : goto next_after_fail1177;
4784 : : }
4785 : : else
4786 : : _r1 = _o1[0];
4787 : 0 : res_op2 = _r1;
4788 : : }
4789 : 0 : tree _r;
4790 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4791 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
4792 : 0 : return _r;
4793 : : }
4794 : 5 : next_after_fail1177:;
4795 : : }
4796 : : }
4797 : 5 : break;
4798 : : }
4799 : 505892 : case COND_EXPR:
4800 : 505892 : {
4801 : 505892 : tree _q20 = TREE_OPERAND (_p0, 0);
4802 : 505892 : tree _q21 = TREE_OPERAND (_p0, 1);
4803 : 505892 : tree _q22 = TREE_OPERAND (_p0, 2);
4804 : 505892 : switch (TREE_CODE (_q21))
4805 : : {
4806 : 171785 : case INTEGER_CST:
4807 : 171785 : {
4808 : 171785 : switch (TREE_CODE (_q22))
4809 : : {
4810 : 100900 : case INTEGER_CST:
4811 : 100900 : {
4812 : 100900 : {
4813 : 100900 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4814 : 100900 : if (INTEGRAL_TYPE_P (type)
4815 : 100900 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4816 : : )
4817 : : {
4818 : 100900 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1178;
4819 : 100900 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1178;
4820 : 100900 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
4821 : 100900 : {
4822 : 100900 : tree res_op0;
4823 : 100900 : res_op0 = captures[1];
4824 : 100900 : tree res_op1;
4825 : 100900 : {
4826 : 100900 : tree _o1[1], _r1;
4827 : 100900 : _o1[0] = captures[2];
4828 : 100900 : if (TREE_TYPE (_o1[0]) != type)
4829 : : {
4830 : 100900 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4831 : : }
4832 : : else
4833 : : _r1 = _o1[0];
4834 : 100900 : res_op1 = _r1;
4835 : : }
4836 : 100900 : tree res_op2;
4837 : 100900 : {
4838 : 100900 : tree _o1[1], _r1;
4839 : 100900 : _o1[0] = captures[3];
4840 : 100900 : if (TREE_TYPE (_o1[0]) != type)
4841 : : {
4842 : 100900 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4843 : : }
4844 : : else
4845 : : _r1 = _o1[0];
4846 : 100900 : res_op2 = _r1;
4847 : : }
4848 : 100900 : tree _r;
4849 : 100900 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4850 : 100900 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
4851 : 100900 : return _r;
4852 : : }
4853 : 0 : next_after_fail1178:;
4854 : : }
4855 : : }
4856 : 0 : break;
4857 : : }
4858 : : default:;
4859 : : }
4860 : : break;
4861 : : }
4862 : : default:;
4863 : : }
4864 : : break;
4865 : : }
4866 : 11304392 : case PLUS_EXPR:
4867 : 11304392 : {
4868 : 11304392 : tree _q20 = TREE_OPERAND (_p0, 0);
4869 : 11304392 : tree _q21 = TREE_OPERAND (_p0, 1);
4870 : 11304392 : switch (TREE_CODE (_q20))
4871 : : {
4872 : 4413032 : CASE_CONVERT:
4873 : 4413032 : {
4874 : 4413032 : tree _q30 = TREE_OPERAND (_q20, 0);
4875 : 4413032 : switch (TREE_CODE (_q21))
4876 : : {
4877 : 345812 : CASE_CONVERT:
4878 : 345812 : {
4879 : 345812 : tree _q50 = TREE_OPERAND (_q21, 0);
4880 : 345812 : {
4881 : 345812 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
4882 : 345812 : tree res = generic_simplify_385 (loc, type, _p0, captures, PLUS_EXPR);
4883 : 345812 : if (res) return res;
4884 : : }
4885 : 345769 : break;
4886 : : }
4887 : 4412989 : default:;
4888 : : }
4889 : 4412989 : {
4890 : 4412989 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
4891 : 4412989 : tree res = generic_simplify_386 (loc, type, _p0, captures, PLUS_EXPR);
4892 : 4412989 : if (res) return res;
4893 : : }
4894 : 4400048 : break;
4895 : : }
4896 : 11291408 : default:;
4897 : : }
4898 : 11291408 : switch (TREE_CODE (_q21))
4899 : : {
4900 : 1464919 : CASE_CONVERT:
4901 : 1464919 : {
4902 : 1464919 : tree _q40 = TREE_OPERAND (_q21, 0);
4903 : 1464919 : {
4904 : 1464919 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
4905 : 1464919 : tree res = generic_simplify_387 (loc, type, _p0, captures, PLUS_EXPR);
4906 : 1464919 : if (res) return res;
4907 : : }
4908 : 1464919 : break;
4909 : : }
4910 : 11291408 : default:;
4911 : : }
4912 : 11291408 : {
4913 : 11291408 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
4914 : 11291408 : tree res = generic_simplify_388 (loc, type, _p0, captures, PLUS_EXPR);
4915 : 11291408 : if (res) return res;
4916 : : }
4917 : 11291374 : break;
4918 : : }
4919 : 867703 : case MINUS_EXPR:
4920 : 867703 : {
4921 : 867703 : tree _q20 = TREE_OPERAND (_p0, 0);
4922 : 867703 : tree _q21 = TREE_OPERAND (_p0, 1);
4923 : 867703 : switch (TREE_CODE (_q20))
4924 : : {
4925 : 314928 : CASE_CONVERT:
4926 : 314928 : {
4927 : 314928 : tree _q30 = TREE_OPERAND (_q20, 0);
4928 : 314928 : switch (TREE_CODE (_q21))
4929 : : {
4930 : 157529 : CASE_CONVERT:
4931 : 157529 : {
4932 : 157529 : tree _q50 = TREE_OPERAND (_q21, 0);
4933 : 157529 : {
4934 : 157529 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
4935 : 157529 : tree res = generic_simplify_385 (loc, type, _p0, captures, MINUS_EXPR);
4936 : 157529 : if (res) return res;
4937 : : }
4938 : 157507 : break;
4939 : : }
4940 : 314906 : default:;
4941 : : }
4942 : 314906 : {
4943 : 314906 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
4944 : 314906 : tree res = generic_simplify_386 (loc, type, _p0, captures, MINUS_EXPR);
4945 : 314906 : if (res) return res;
4946 : : }
4947 : 313793 : break;
4948 : : }
4949 : 866568 : default:;
4950 : : }
4951 : 866568 : switch (TREE_CODE (_q21))
4952 : : {
4953 : 218044 : CASE_CONVERT:
4954 : 218044 : {
4955 : 218044 : tree _q40 = TREE_OPERAND (_q21, 0);
4956 : 218044 : {
4957 : 218044 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
4958 : 218044 : tree res = generic_simplify_387 (loc, type, _p0, captures, MINUS_EXPR);
4959 : 218044 : if (res) return res;
4960 : : }
4961 : 218034 : break;
4962 : : }
4963 : 866558 : default:;
4964 : : }
4965 : 866558 : {
4966 : 866558 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
4967 : 866558 : tree res = generic_simplify_388 (loc, type, _p0, captures, MINUS_EXPR);
4968 : 866558 : if (res) return res;
4969 : : }
4970 : 866526 : break;
4971 : : }
4972 : 7811581 : case MULT_EXPR:
4973 : 7811581 : {
4974 : 7811581 : tree _q20 = TREE_OPERAND (_p0, 0);
4975 : 7811581 : tree _q21 = TREE_OPERAND (_p0, 1);
4976 : 7811581 : switch (TREE_CODE (_q20))
4977 : : {
4978 : 3468251 : CASE_CONVERT:
4979 : 3468251 : {
4980 : 3468251 : tree _q30 = TREE_OPERAND (_q20, 0);
4981 : 3468251 : switch (TREE_CODE (_q21))
4982 : : {
4983 : 310505 : CASE_CONVERT:
4984 : 310505 : {
4985 : 310505 : tree _q50 = TREE_OPERAND (_q21, 0);
4986 : 310505 : {
4987 : 310505 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
4988 : 310505 : tree res = generic_simplify_385 (loc, type, _p0, captures, MULT_EXPR);
4989 : 310505 : if (res) return res;
4990 : : }
4991 : 310505 : break;
4992 : : }
4993 : 3468251 : default:;
4994 : : }
4995 : 3468251 : {
4996 : 3468251 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
4997 : 3468251 : tree res = generic_simplify_386 (loc, type, _p0, captures, MULT_EXPR);
4998 : 3468251 : if (res) return res;
4999 : : }
5000 : 3468131 : break;
5001 : : }
5002 : 7811461 : default:;
5003 : : }
5004 : 7811461 : switch (TREE_CODE (_q21))
5005 : : {
5006 : 679540 : CASE_CONVERT:
5007 : 679540 : {
5008 : 679540 : tree _q40 = TREE_OPERAND (_q21, 0);
5009 : 679540 : {
5010 : 679540 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
5011 : 679540 : tree res = generic_simplify_387 (loc, type, _p0, captures, MULT_EXPR);
5012 : 679540 : if (res) return res;
5013 : : }
5014 : 679540 : break;
5015 : : }
5016 : 7811461 : default:;
5017 : : }
5018 : 7811461 : {
5019 : 7811461 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
5020 : 7811461 : tree res = generic_simplify_388 (loc, type, _p0, captures, MULT_EXPR);
5021 : 7811461 : if (res) return res;
5022 : : }
5023 : 7811428 : break;
5024 : : }
5025 : 3075 : case RDIV_EXPR:
5026 : 3075 : {
5027 : 3075 : tree _q20 = TREE_OPERAND (_p0, 0);
5028 : 3075 : tree _q21 = TREE_OPERAND (_p0, 1);
5029 : 3075 : switch (TREE_CODE (_q20))
5030 : : {
5031 : 986 : CASE_CONVERT:
5032 : 986 : {
5033 : 986 : tree _q30 = TREE_OPERAND (_q20, 0);
5034 : 986 : switch (TREE_CODE (_q21))
5035 : : {
5036 : 669 : CASE_CONVERT:
5037 : 669 : {
5038 : 669 : tree _q50 = TREE_OPERAND (_q21, 0);
5039 : 669 : {
5040 : 669 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
5041 : 669 : tree res = generic_simplify_385 (loc, type, _p0, captures, RDIV_EXPR);
5042 : 669 : if (res) return res;
5043 : : }
5044 : 668 : break;
5045 : : }
5046 : 985 : default:;
5047 : : }
5048 : 985 : {
5049 : 985 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
5050 : 985 : tree res = generic_simplify_386 (loc, type, _p0, captures, RDIV_EXPR);
5051 : 985 : if (res) return res;
5052 : : }
5053 : 983 : break;
5054 : : }
5055 : 3072 : default:;
5056 : : }
5057 : 3072 : switch (TREE_CODE (_q21))
5058 : : {
5059 : 1652 : CASE_CONVERT:
5060 : 1652 : {
5061 : 1652 : tree _q40 = TREE_OPERAND (_q21, 0);
5062 : 1652 : {
5063 : 1652 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
5064 : 1652 : tree res = generic_simplify_387 (loc, type, _p0, captures, RDIV_EXPR);
5065 : 1652 : if (res) return res;
5066 : : }
5067 : 1010 : break;
5068 : : }
5069 : 2430 : default:;
5070 : : }
5071 : 2430 : {
5072 : 2430 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
5073 : 2430 : tree res = generic_simplify_388 (loc, type, _p0, captures, RDIV_EXPR);
5074 : 2430 : if (res) return res;
5075 : : }
5076 : 2392 : break;
5077 : : }
5078 : 369550 : case NEGATE_EXPR:
5079 : 369550 : {
5080 : 369550 : tree _q20 = TREE_OPERAND (_p0, 0);
5081 : 369550 : {
5082 : 369550 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5083 : 369550 : tree res = generic_simplify_389 (loc, type, _p0, captures);
5084 : 369550 : if (res) return res;
5085 : : }
5086 : 369528 : break;
5087 : : }
5088 : : default:;
5089 : : }
5090 : : return NULL_TREE;
5091 : : }
5092 : :
5093 : : tree
5094 : 6397 : generic_simplify_CEIL_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5095 : : {
5096 : 6397 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5097 : 6397 : if (integer_onep (_p1))
5098 : : {
5099 : 1767 : {
5100 : 1767 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5101 : 1767 : tree res = generic_simplify_177 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5102 : 1767 : if (res) return res;
5103 : : }
5104 : : }
5105 : 4630 : if (integer_zerop (_p0))
5106 : : {
5107 : 0 : {
5108 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5109 : 0 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5110 : 0 : if (res) return res;
5111 : : }
5112 : : }
5113 : 4630 : switch (TREE_CODE (_p1))
5114 : : {
5115 : 34 : case SSA_NAME:
5116 : 34 : {
5117 : 34 : {
5118 : 34 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5119 : 34 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5120 : 34 : if (res) return res;
5121 : : }
5122 : 34 : break;
5123 : : }
5124 : 4630 : default:;
5125 : : }
5126 : 4630 : if (integer_minus_onep (_p1))
5127 : : {
5128 : 0 : {
5129 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5130 : 0 : tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5131 : 0 : if (res) return res;
5132 : : }
5133 : : }
5134 : 4630 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5135 : : {
5136 : 0 : {
5137 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5138 : 0 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5139 : 0 : if (res) return res;
5140 : : }
5141 : : }
5142 : 4630 : switch (TREE_CODE (_p1))
5143 : : {
5144 : 0 : case ABS_EXPR:
5145 : 0 : {
5146 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5147 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5148 : : {
5149 : 0 : {
5150 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5151 : 0 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5152 : 0 : if (res) return res;
5153 : : }
5154 : : }
5155 : : break;
5156 : : }
5157 : 4630 : default:;
5158 : : }
5159 : 4630 : switch (TREE_CODE (_p0))
5160 : : {
5161 : 0 : case ABS_EXPR:
5162 : 0 : {
5163 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5164 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5165 : : {
5166 : 0 : {
5167 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5168 : 0 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5169 : 0 : if (res) return res;
5170 : : }
5171 : : }
5172 : : break;
5173 : : }
5174 : 4630 : default:;
5175 : : }
5176 : 4630 : switch (TREE_CODE (_p1))
5177 : : {
5178 : 0 : case NEGATE_EXPR:
5179 : 0 : {
5180 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5181 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5182 : : {
5183 : 0 : {
5184 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5185 : 0 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5186 : 0 : if (res) return res;
5187 : : }
5188 : : }
5189 : : break;
5190 : : }
5191 : 4630 : default:;
5192 : : }
5193 : 4630 : switch (TREE_CODE (_p0))
5194 : : {
5195 : 0 : case NEGATE_EXPR:
5196 : 0 : {
5197 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5198 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5199 : : {
5200 : 0 : {
5201 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5202 : 0 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5203 : 0 : if (res) return res;
5204 : : }
5205 : : }
5206 : : break;
5207 : : }
5208 : 536 : CASE_CONVERT:
5209 : 536 : {
5210 : 536 : tree _q20 = TREE_OPERAND (_p0, 0);
5211 : 536 : switch (TREE_CODE (_q20))
5212 : : {
5213 : 0 : case BIT_AND_EXPR:
5214 : 0 : {
5215 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5216 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5217 : 0 : switch (TREE_CODE (_q31))
5218 : : {
5219 : 0 : case INTEGER_CST:
5220 : 0 : {
5221 : 0 : switch (TREE_CODE (_p1))
5222 : : {
5223 : 0 : case INTEGER_CST:
5224 : 0 : {
5225 : 0 : {
5226 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5227 : 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5228 : 0 : if (res) return res;
5229 : : }
5230 : 0 : break;
5231 : : }
5232 : : default:;
5233 : : }
5234 : : break;
5235 : : }
5236 : : default:;
5237 : : }
5238 : : break;
5239 : : }
5240 : : default:;
5241 : : }
5242 : : break;
5243 : : }
5244 : 0 : case BIT_AND_EXPR:
5245 : 0 : {
5246 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5247 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5248 : 0 : switch (TREE_CODE (_q21))
5249 : : {
5250 : 0 : case INTEGER_CST:
5251 : 0 : {
5252 : 0 : switch (TREE_CODE (_p1))
5253 : : {
5254 : 0 : case INTEGER_CST:
5255 : 0 : {
5256 : 0 : {
5257 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5258 : 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5259 : 0 : if (res) return res;
5260 : : }
5261 : 0 : break;
5262 : : }
5263 : : default:;
5264 : : }
5265 : : break;
5266 : : }
5267 : : default:;
5268 : : }
5269 : : break;
5270 : : }
5271 : 0 : case MULT_EXPR:
5272 : 0 : {
5273 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5274 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5275 : 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5276 : : {
5277 : 0 : {
5278 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5279 : 0 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5280 : 0 : if (res) return res;
5281 : : }
5282 : : }
5283 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5284 : : {
5285 : 0 : {
5286 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5287 : 0 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5288 : 0 : if (res) return res;
5289 : : }
5290 : : }
5291 : 0 : switch (TREE_CODE (_q21))
5292 : : {
5293 : 0 : case INTEGER_CST:
5294 : 0 : {
5295 : 0 : switch (TREE_CODE (_p1))
5296 : : {
5297 : 0 : case MULT_EXPR:
5298 : 0 : {
5299 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5300 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5301 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5302 : : {
5303 : 0 : switch (TREE_CODE (_q51))
5304 : : {
5305 : 0 : case INTEGER_CST:
5306 : 0 : {
5307 : 0 : {
5308 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5309 : 0 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
5310 : 0 : if (res) return res;
5311 : : }
5312 : 0 : break;
5313 : : }
5314 : : default:;
5315 : : }
5316 : : }
5317 : : break;
5318 : : }
5319 : : default:;
5320 : : }
5321 : : break;
5322 : : }
5323 : : default:;
5324 : : }
5325 : : break;
5326 : : }
5327 : 0 : case VEC_COND_EXPR:
5328 : 0 : {
5329 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5330 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5331 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5332 : 0 : switch (TREE_CODE (_p1))
5333 : : {
5334 : 0 : case VEC_COND_EXPR:
5335 : 0 : {
5336 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5337 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5338 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5339 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5340 : : {
5341 : 0 : {
5342 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5343 : 0 : if (VECTOR_TYPE_P (type)
5344 : 0 : && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
5345 : : || types_match (type, TREE_TYPE (captures[2]))
5346 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5347 : : || (optimize_vectors_before_lowering_p ()
5348 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5349 : : )
5350 : : {
5351 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1686;
5352 : 0 : {
5353 : 0 : tree res_op0;
5354 : 0 : res_op0 = captures[1];
5355 : 0 : tree res_op1;
5356 : 0 : {
5357 : 0 : tree _o1[2], _r1;
5358 : 0 : _o1[0] = captures[2];
5359 : 0 : _o1[1] = captures[5];
5360 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5361 : 0 : if (EXPR_P (_r1))
5362 : 0 : goto next_after_fail1686;
5363 : 0 : res_op1 = _r1;
5364 : : }
5365 : 0 : tree res_op2;
5366 : 0 : {
5367 : 0 : tree _o1[2], _r1;
5368 : 0 : _o1[0] = captures[3];
5369 : 0 : _o1[1] = captures[6];
5370 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5371 : 0 : if (EXPR_P (_r1))
5372 : 0 : goto next_after_fail1686;
5373 : 0 : res_op2 = _r1;
5374 : : }
5375 : 0 : tree _r;
5376 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5377 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
5378 : 0 : return _r;
5379 : : }
5380 : 0 : next_after_fail1686:;
5381 : : }
5382 : : }
5383 : : }
5384 : : break;
5385 : : }
5386 : 0 : default:;
5387 : : }
5388 : 0 : {
5389 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5390 : 0 : if (VECTOR_TYPE_P (type)
5391 : 0 : && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
5392 : : || types_match (type, TREE_TYPE (captures[2]))
5393 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5394 : : || (optimize_vectors_before_lowering_p ()
5395 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5396 : : )
5397 : : {
5398 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1687;
5399 : 0 : {
5400 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1687;
5401 : 0 : tree res_op0;
5402 : 0 : res_op0 = captures[1];
5403 : 0 : tree res_op1;
5404 : 0 : {
5405 : 0 : tree _o1[2], _r1;
5406 : 0 : _o1[0] = captures[2];
5407 : 0 : _o1[1] = unshare_expr (captures[4]);
5408 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5409 : 0 : if (EXPR_P (_r1))
5410 : 0 : goto next_after_fail1687;
5411 : 0 : res_op1 = _r1;
5412 : : }
5413 : 0 : tree res_op2;
5414 : 0 : {
5415 : 0 : tree _o1[2], _r1;
5416 : 0 : _o1[0] = captures[3];
5417 : 0 : _o1[1] = captures[4];
5418 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5419 : 0 : if (EXPR_P (_r1))
5420 : 0 : goto next_after_fail1687;
5421 : 0 : res_op2 = _r1;
5422 : : }
5423 : 0 : tree _r;
5424 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5425 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
5426 : 0 : return _r;
5427 : : }
5428 : 0 : next_after_fail1687:;
5429 : : }
5430 : : }
5431 : 0 : break;
5432 : : }
5433 : 4630 : default:;
5434 : : }
5435 : 4630 : switch (TREE_CODE (_p1))
5436 : : {
5437 : 0 : case VEC_COND_EXPR:
5438 : 0 : {
5439 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5440 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5441 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5442 : 0 : {
5443 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5444 : 0 : if (VECTOR_TYPE_P (type)
5445 : 0 : && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
5446 : : || types_match (type, TREE_TYPE (captures[3]))
5447 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5448 : : || (optimize_vectors_before_lowering_p ()
5449 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5450 : : )
5451 : : {
5452 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1688;
5453 : 0 : {
5454 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1688;
5455 : 0 : tree res_op0;
5456 : 0 : res_op0 = captures[2];
5457 : 0 : tree res_op1;
5458 : 0 : {
5459 : 0 : tree _o1[2], _r1;
5460 : 0 : _o1[0] = unshare_expr (captures[0]);
5461 : 0 : _o1[1] = captures[3];
5462 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5463 : 0 : if (EXPR_P (_r1))
5464 : 0 : goto next_after_fail1688;
5465 : 0 : res_op1 = _r1;
5466 : : }
5467 : 0 : tree res_op2;
5468 : 0 : {
5469 : 0 : tree _o1[2], _r1;
5470 : 0 : _o1[0] = captures[0];
5471 : 0 : _o1[1] = captures[4];
5472 : 0 : _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5473 : 0 : if (EXPR_P (_r1))
5474 : 0 : goto next_after_fail1688;
5475 : 0 : res_op2 = _r1;
5476 : : }
5477 : 0 : tree _r;
5478 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5479 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
5480 : 0 : return _r;
5481 : : }
5482 : 0 : next_after_fail1688:;
5483 : : }
5484 : : }
5485 : 0 : break;
5486 : : }
5487 : : default:;
5488 : : }
5489 : : return NULL_TREE;
5490 : : }
5491 : :
5492 : : tree
5493 : 3472023 : generic_simplify_EXACT_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5494 : : {
5495 : 3472023 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5496 : 3472023 : if (integer_onep (_p1))
5497 : : {
5498 : 2221927 : {
5499 : 2221927 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5500 : 2221927 : tree res = generic_simplify_177 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5501 : 2221927 : if (res) return res;
5502 : : }
5503 : : }
5504 : 1250096 : switch (TREE_CODE (_p0))
5505 : : {
5506 : 8719 : CASE_CONVERT:
5507 : 8719 : {
5508 : 8719 : tree _q20 = TREE_OPERAND (_p0, 0);
5509 : 8719 : switch (TREE_CODE (_p1))
5510 : : {
5511 : 0 : CASE_CONVERT:
5512 : 0 : {
5513 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
5514 : 0 : switch (TREE_CODE (_q40))
5515 : : {
5516 : 0 : case LSHIFT_EXPR:
5517 : 0 : {
5518 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5519 : 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5520 : 0 : if (integer_onep (_q50))
5521 : : {
5522 : 0 : {
5523 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
5524 : 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5525 : 0 : if (res) return res;
5526 : : }
5527 : : }
5528 : : break;
5529 : : }
5530 : : default:;
5531 : : }
5532 : : break;
5533 : : }
5534 : 0 : case LSHIFT_EXPR:
5535 : 0 : {
5536 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
5537 : 0 : tree _q41 = TREE_OPERAND (_p1, 1);
5538 : 0 : if (integer_onep (_q40))
5539 : : {
5540 : 0 : {
5541 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
5542 : 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5543 : 0 : if (res) return res;
5544 : : }
5545 : : }
5546 : : break;
5547 : : }
5548 : : default:;
5549 : : }
5550 : : break;
5551 : : }
5552 : 1250096 : default:;
5553 : : }
5554 : 1250096 : switch (TREE_CODE (_p1))
5555 : : {
5556 : 2 : CASE_CONVERT:
5557 : 2 : {
5558 : 2 : tree _q30 = TREE_OPERAND (_p1, 0);
5559 : 2 : switch (TREE_CODE (_q30))
5560 : : {
5561 : 0 : case LSHIFT_EXPR:
5562 : 0 : {
5563 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5564 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5565 : 0 : if (integer_onep (_q40))
5566 : : {
5567 : 0 : {
5568 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
5569 : 0 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5570 : 0 : if (res) return res;
5571 : : }
5572 : : }
5573 : : break;
5574 : : }
5575 : : default:;
5576 : : }
5577 : : break;
5578 : : }
5579 : 0 : case LSHIFT_EXPR:
5580 : 0 : {
5581 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5582 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5583 : 0 : if (integer_onep (_q30))
5584 : : {
5585 : 0 : {
5586 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
5587 : 0 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5588 : 0 : if (res) return res;
5589 : : }
5590 : : }
5591 : : break;
5592 : : }
5593 : 1250096 : default:;
5594 : : }
5595 : 1250096 : if (integer_zerop (_p0))
5596 : : {
5597 : 0 : {
5598 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5599 : 0 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5600 : 0 : if (res) return res;
5601 : : }
5602 : : }
5603 : 1250096 : switch (TREE_CODE (_p1))
5604 : : {
5605 : 0 : case SSA_NAME:
5606 : 0 : {
5607 : 0 : {
5608 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5609 : 0 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5610 : 0 : if (res) return res;
5611 : : }
5612 : 0 : break;
5613 : : }
5614 : 1250096 : default:;
5615 : : }
5616 : 1250096 : if (integer_minus_onep (_p1))
5617 : : {
5618 : 0 : {
5619 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5620 : 0 : tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5621 : 0 : if (res) return res;
5622 : : }
5623 : : }
5624 : 1250096 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5625 : : {
5626 : 0 : {
5627 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5628 : 0 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5629 : 0 : if (res) return res;
5630 : : }
5631 : : }
5632 : 1250096 : switch (TREE_CODE (_p1))
5633 : : {
5634 : 0 : case ABS_EXPR:
5635 : 0 : {
5636 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5637 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5638 : : {
5639 : 0 : {
5640 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5641 : 0 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5642 : 0 : if (res) return res;
5643 : : }
5644 : : }
5645 : : break;
5646 : : }
5647 : 1250096 : default:;
5648 : : }
5649 : 1250096 : switch (TREE_CODE (_p0))
5650 : : {
5651 : 0 : case ABS_EXPR:
5652 : 0 : {
5653 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5654 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5655 : : {
5656 : 0 : {
5657 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5658 : 0 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5659 : 0 : if (res) return res;
5660 : : }
5661 : : }
5662 : : break;
5663 : : }
5664 : 1250096 : default:;
5665 : : }
5666 : 1250096 : switch (TREE_CODE (_p1))
5667 : : {
5668 : 0 : case NEGATE_EXPR:
5669 : 0 : {
5670 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5671 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5672 : : {
5673 : 0 : {
5674 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5675 : 0 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5676 : 0 : if (res) return res;
5677 : : }
5678 : : }
5679 : : break;
5680 : : }
5681 : 1250096 : default:;
5682 : : }
5683 : 1250096 : switch (TREE_CODE (_p0))
5684 : : {
5685 : 1412 : case NEGATE_EXPR:
5686 : 1412 : {
5687 : 1412 : tree _q20 = TREE_OPERAND (_p0, 0);
5688 : 1412 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5689 : : {
5690 : 0 : {
5691 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5692 : 0 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5693 : 0 : if (res) return res;
5694 : : }
5695 : : }
5696 : : break;
5697 : : }
5698 : 0 : case EXACT_DIV_EXPR:
5699 : 0 : {
5700 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5701 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5702 : 0 : switch (TREE_CODE (_q21))
5703 : : {
5704 : 0 : case INTEGER_CST:
5705 : 0 : {
5706 : 0 : switch (TREE_CODE (_p1))
5707 : : {
5708 : 0 : case INTEGER_CST:
5709 : 0 : {
5710 : 0 : {
5711 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5712 : 0 : tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5713 : 0 : if (res) return res;
5714 : : }
5715 : 0 : break;
5716 : : }
5717 : : default:;
5718 : : }
5719 : : break;
5720 : : }
5721 : : default:;
5722 : : }
5723 : : break;
5724 : : }
5725 : 8719 : CASE_CONVERT:
5726 : 8719 : {
5727 : 8719 : tree _q20 = TREE_OPERAND (_p0, 0);
5728 : 8719 : switch (TREE_CODE (_q20))
5729 : : {
5730 : 0 : case BIT_AND_EXPR:
5731 : 0 : {
5732 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5733 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5734 : 0 : switch (TREE_CODE (_q31))
5735 : : {
5736 : 0 : case INTEGER_CST:
5737 : 0 : {
5738 : 0 : switch (TREE_CODE (_p1))
5739 : : {
5740 : 0 : case INTEGER_CST:
5741 : 0 : {
5742 : 0 : {
5743 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5744 : 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5745 : 0 : if (res) return res;
5746 : : }
5747 : 0 : break;
5748 : : }
5749 : : default:;
5750 : : }
5751 : : break;
5752 : : }
5753 : : default:;
5754 : : }
5755 : : break;
5756 : : }
5757 : : default:;
5758 : : }
5759 : : break;
5760 : : }
5761 : 0 : case BIT_AND_EXPR:
5762 : 0 : {
5763 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5764 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5765 : 0 : switch (TREE_CODE (_q21))
5766 : : {
5767 : 0 : case INTEGER_CST:
5768 : 0 : {
5769 : 0 : switch (TREE_CODE (_p1))
5770 : : {
5771 : 0 : case INTEGER_CST:
5772 : 0 : {
5773 : 0 : {
5774 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5775 : 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5776 : 0 : if (res) return res;
5777 : : }
5778 : 0 : break;
5779 : : }
5780 : : default:;
5781 : : }
5782 : : break;
5783 : : }
5784 : : default:;
5785 : : }
5786 : : break;
5787 : : }
5788 : 17983 : case MULT_EXPR:
5789 : 17983 : {
5790 : 17983 : tree _q20 = TREE_OPERAND (_p0, 0);
5791 : 17983 : tree _q21 = TREE_OPERAND (_p0, 1);
5792 : 17983 : if (integer_pow2p (_q21))
5793 : : {
5794 : 16866 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5795 : : {
5796 : 16764 : {
5797 : 16764 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5798 : 16764 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5799 : 16764 : if (res) return res;
5800 : : }
5801 : : }
5802 : : }
5803 : 1226 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5804 : : {
5805 : 7 : {
5806 : 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5807 : 7 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5808 : 7 : if (res) return res;
5809 : : }
5810 : : }
5811 : 1219 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5812 : : {
5813 : 0 : {
5814 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5815 : 0 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5816 : 0 : if (res) return res;
5817 : : }
5818 : : }
5819 : 1219 : switch (TREE_CODE (_q21))
5820 : : {
5821 : 1219 : case INTEGER_CST:
5822 : 1219 : {
5823 : 1219 : switch (TREE_CODE (_p1))
5824 : : {
5825 : 0 : case MULT_EXPR:
5826 : 0 : {
5827 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5828 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5829 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5830 : : {
5831 : 0 : switch (TREE_CODE (_q51))
5832 : : {
5833 : 0 : case INTEGER_CST:
5834 : 0 : {
5835 : 0 : {
5836 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5837 : 0 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
5838 : 0 : if (res) return res;
5839 : : }
5840 : 0 : break;
5841 : : }
5842 : : default:;
5843 : : }
5844 : : }
5845 : : break;
5846 : : }
5847 : : default:;
5848 : : }
5849 : : break;
5850 : : }
5851 : : default:;
5852 : : }
5853 : : break;
5854 : : }
5855 : 0 : case VEC_COND_EXPR:
5856 : 0 : {
5857 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5858 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5859 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5860 : 0 : switch (TREE_CODE (_p1))
5861 : : {
5862 : 0 : case VEC_COND_EXPR:
5863 : 0 : {
5864 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5865 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5866 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5867 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5868 : : {
5869 : 0 : {
5870 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5871 : 0 : if (VECTOR_TYPE_P (type)
5872 : 0 : && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
5873 : : || types_match (type, TREE_TYPE (captures[2]))
5874 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5875 : : || (optimize_vectors_before_lowering_p ()
5876 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5877 : : )
5878 : : {
5879 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1695;
5880 : 0 : {
5881 : 0 : tree res_op0;
5882 : 0 : res_op0 = captures[1];
5883 : 0 : tree res_op1;
5884 : 0 : {
5885 : 0 : tree _o1[2], _r1;
5886 : 0 : _o1[0] = captures[2];
5887 : 0 : _o1[1] = captures[5];
5888 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5889 : 0 : if (EXPR_P (_r1))
5890 : 0 : goto next_after_fail1695;
5891 : 0 : res_op1 = _r1;
5892 : : }
5893 : 0 : tree res_op2;
5894 : 0 : {
5895 : 0 : tree _o1[2], _r1;
5896 : 0 : _o1[0] = captures[3];
5897 : 0 : _o1[1] = captures[6];
5898 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5899 : 0 : if (EXPR_P (_r1))
5900 : 0 : goto next_after_fail1695;
5901 : 0 : res_op2 = _r1;
5902 : : }
5903 : 0 : tree _r;
5904 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5905 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
5906 : 0 : return _r;
5907 : : }
5908 : 0 : next_after_fail1695:;
5909 : : }
5910 : : }
5911 : : }
5912 : : break;
5913 : : }
5914 : 0 : default:;
5915 : : }
5916 : 0 : {
5917 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5918 : 0 : if (VECTOR_TYPE_P (type)
5919 : 0 : && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
5920 : : || types_match (type, TREE_TYPE (captures[2]))
5921 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5922 : : || (optimize_vectors_before_lowering_p ()
5923 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5924 : : )
5925 : : {
5926 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1696;
5927 : 0 : {
5928 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1696;
5929 : 0 : tree res_op0;
5930 : 0 : res_op0 = captures[1];
5931 : 0 : tree res_op1;
5932 : 0 : {
5933 : 0 : tree _o1[2], _r1;
5934 : 0 : _o1[0] = captures[2];
5935 : 0 : _o1[1] = unshare_expr (captures[4]);
5936 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5937 : 0 : if (EXPR_P (_r1))
5938 : 0 : goto next_after_fail1696;
5939 : 0 : res_op1 = _r1;
5940 : : }
5941 : 0 : tree res_op2;
5942 : 0 : {
5943 : 0 : tree _o1[2], _r1;
5944 : 0 : _o1[0] = captures[3];
5945 : 0 : _o1[1] = captures[4];
5946 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5947 : 0 : if (EXPR_P (_r1))
5948 : 0 : goto next_after_fail1696;
5949 : 0 : res_op2 = _r1;
5950 : : }
5951 : 0 : tree _r;
5952 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5953 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
5954 : 0 : return _r;
5955 : : }
5956 : 0 : next_after_fail1696:;
5957 : : }
5958 : : }
5959 : 0 : break;
5960 : : }
5961 : 1233332 : default:;
5962 : : }
5963 : 1233332 : switch (TREE_CODE (_p1))
5964 : : {
5965 : 0 : case VEC_COND_EXPR:
5966 : 0 : {
5967 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5968 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5969 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5970 : 0 : {
5971 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5972 : 0 : if (VECTOR_TYPE_P (type)
5973 : 0 : && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
5974 : : || types_match (type, TREE_TYPE (captures[3]))
5975 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5976 : : || (optimize_vectors_before_lowering_p ()
5977 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5978 : : )
5979 : : {
5980 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1697;
5981 : 0 : {
5982 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1697;
5983 : 0 : tree res_op0;
5984 : 0 : res_op0 = captures[2];
5985 : 0 : tree res_op1;
5986 : 0 : {
5987 : 0 : tree _o1[2], _r1;
5988 : 0 : _o1[0] = unshare_expr (captures[0]);
5989 : 0 : _o1[1] = captures[3];
5990 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5991 : 0 : if (EXPR_P (_r1))
5992 : 0 : goto next_after_fail1697;
5993 : 0 : res_op1 = _r1;
5994 : : }
5995 : 0 : tree res_op2;
5996 : 0 : {
5997 : 0 : tree _o1[2], _r1;
5998 : 0 : _o1[0] = captures[0];
5999 : 0 : _o1[1] = captures[4];
6000 : 0 : _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
6001 : 0 : if (EXPR_P (_r1))
6002 : 0 : goto next_after_fail1697;
6003 : 0 : res_op2 = _r1;
6004 : : }
6005 : 0 : tree _r;
6006 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6007 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
6008 : 0 : return _r;
6009 : : }
6010 : 0 : next_after_fail1697:;
6011 : : }
6012 : : }
6013 : 0 : break;
6014 : : }
6015 : : default:;
6016 : : }
6017 : : return NULL_TREE;
6018 : : }
6019 : :
6020 : : tree
6021 : 8619996 : generic_simplify_LE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
6022 : : {
6023 : 8619996 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
6024 : 8619996 : switch (TREE_CODE (_p0))
6025 : : {
6026 : 2297 : case RDIV_EXPR:
6027 : 2297 : {
6028 : 2297 : tree _q20 = TREE_OPERAND (_p0, 0);
6029 : 2297 : tree _q21 = TREE_OPERAND (_p0, 1);
6030 : 2297 : switch (TREE_CODE (_q20))
6031 : : {
6032 : 547 : case REAL_CST:
6033 : 547 : {
6034 : 547 : if (real_zerop (_p1))
6035 : : {
6036 : 2 : {
6037 : 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6038 : 2 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
6039 : 2 : if (res) return res;
6040 : : }
6041 : : }
6042 : : break;
6043 : : }
6044 : : default:;
6045 : : }
6046 : : break;
6047 : : }
6048 : 8619994 : default:;
6049 : : }
6050 : 8619994 : switch (TREE_CODE (_p1))
6051 : : {
6052 : 7 : case TRUNC_MOD_EXPR:
6053 : 7 : {
6054 : 7 : tree _q30 = TREE_OPERAND (_p1, 0);
6055 : 7 : tree _q31 = TREE_OPERAND (_p1, 1);
6056 : 7 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6057 : : {
6058 : 0 : {
6059 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
6060 : 0 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, GE_EXPR);
6061 : 0 : if (res) return res;
6062 : : }
6063 : : }
6064 : : break;
6065 : : }
6066 : 8619994 : default:;
6067 : : }
6068 : 8619994 : switch (TREE_CODE (_p0))
6069 : : {
6070 : 62063 : case MULT_EXPR:
6071 : 62063 : {
6072 : 62063 : tree _q20 = TREE_OPERAND (_p0, 0);
6073 : 62063 : tree _q21 = TREE_OPERAND (_p0, 1);
6074 : 62063 : switch (TREE_CODE (_p1))
6075 : : {
6076 : 2674 : case MULT_EXPR:
6077 : 2674 : {
6078 : 2674 : tree _q50 = TREE_OPERAND (_p1, 0);
6079 : 2674 : tree _q51 = TREE_OPERAND (_p1, 1);
6080 : 2674 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6081 : : {
6082 : 1850 : {
6083 : 1850 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6084 : 1850 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, LE_EXPR);
6085 : 1850 : if (res) return res;
6086 : : }
6087 : : }
6088 : 1697 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6089 : : {
6090 : 1 : {
6091 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6092 : 1 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, LE_EXPR);
6093 : 1 : if (res) return res;
6094 : : }
6095 : : }
6096 : 1697 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6097 : : {
6098 : 6 : {
6099 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6100 : 6 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, LE_EXPR);
6101 : 6 : if (res) return res;
6102 : : }
6103 : : }
6104 : 1697 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6105 : : {
6106 : 309 : {
6107 : 309 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
6108 : 309 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, LE_EXPR);
6109 : 309 : if (res) return res;
6110 : : }
6111 : : }
6112 : : break;
6113 : : }
6114 : : default:;
6115 : : }
6116 : : break;
6117 : : }
6118 : 1573641 : case PLUS_EXPR:
6119 : 1573641 : {
6120 : 1573641 : tree _q20 = TREE_OPERAND (_p0, 0);
6121 : 1573641 : tree _q21 = TREE_OPERAND (_p0, 1);
6122 : 1573641 : if (integer_minus_onep (_q21))
6123 : : {
6124 : 517697 : switch (TREE_CODE (_p1))
6125 : : {
6126 : 314879 : case INTEGER_CST:
6127 : 314879 : {
6128 : 314879 : {
6129 : 314879 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6130 : 314879 : tree res = generic_simplify_359 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
6131 : 314879 : if (res) return res;
6132 : : }
6133 : 314877 : break;
6134 : : }
6135 : : default:;
6136 : : }
6137 : : }
6138 : 1573639 : switch (TREE_CODE (_p1))
6139 : : {
6140 : 86287 : case PLUS_EXPR:
6141 : 86287 : {
6142 : 86287 : tree _q50 = TREE_OPERAND (_p1, 0);
6143 : 86287 : tree _q51 = TREE_OPERAND (_p1, 1);
6144 : 86287 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6145 : : {
6146 : 6190 : {
6147 : 6190 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6148 : 6190 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR);
6149 : 6190 : if (res) return res;
6150 : : }
6151 : : }
6152 : 82370 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6153 : : {
6154 : 16 : {
6155 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6156 : 16 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR);
6157 : 16 : if (res) return res;
6158 : : }
6159 : : }
6160 : 82370 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6161 : : {
6162 : 201 : {
6163 : 201 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6164 : 201 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR);
6165 : 201 : if (res) return res;
6166 : : }
6167 : : }
6168 : 82362 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6169 : : {
6170 : 6566 : {
6171 : 6566 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
6172 : 6566 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR);
6173 : 6566 : if (res) return res;
6174 : : }
6175 : : }
6176 : : break;
6177 : : }
6178 : 1569130 : default:;
6179 : : }
6180 : 1569130 : switch (TREE_CODE (_q21))
6181 : : {
6182 : 1450404 : case INTEGER_CST:
6183 : 1450404 : {
6184 : 1450404 : switch (TREE_CODE (_p1))
6185 : : {
6186 : 79765 : case PLUS_EXPR:
6187 : 79765 : {
6188 : 79765 : tree _q50 = TREE_OPERAND (_p1, 0);
6189 : 79765 : tree _q51 = TREE_OPERAND (_p1, 1);
6190 : 79765 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6191 : : {
6192 : 2215 : {
6193 : 2215 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6194 : 2215 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, LE_EXPR);
6195 : 2215 : if (res) return res;
6196 : : }
6197 : : }
6198 : : break;
6199 : : }
6200 : : default:;
6201 : : }
6202 : : break;
6203 : : }
6204 : 1569130 : default:;
6205 : : }
6206 : 1569130 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6207 : : {
6208 : 71981 : {
6209 : 71981 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
6210 : 71981 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, LE_EXPR);
6211 : 71981 : if (res) return res;
6212 : : }
6213 : : }
6214 : 1527980 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6215 : : {
6216 : 2905 : {
6217 : 2905 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
6218 : 2905 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, LE_EXPR);
6219 : 2905 : if (res) return res;
6220 : : }
6221 : : }
6222 : : break;
6223 : : }
6224 : 1478434 : CASE_CONVERT:
6225 : 1478434 : {
6226 : 1478434 : tree _q20 = TREE_OPERAND (_p0, 0);
6227 : 1478434 : switch (TREE_CODE (_q20))
6228 : : {
6229 : 0 : case EXACT_DIV_EXPR:
6230 : 0 : {
6231 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6232 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6233 : 0 : switch (TREE_CODE (_q31))
6234 : : {
6235 : 0 : case INTEGER_CST:
6236 : 0 : {
6237 : 0 : switch (TREE_CODE (_p1))
6238 : : {
6239 : 0 : CASE_CONVERT:
6240 : 0 : {
6241 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6242 : 0 : switch (TREE_CODE (_q60))
6243 : : {
6244 : 0 : case EXACT_DIV_EXPR:
6245 : 0 : {
6246 : 0 : tree _q70 = TREE_OPERAND (_q60, 0);
6247 : 0 : tree _q71 = TREE_OPERAND (_q60, 1);
6248 : 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6249 : : {
6250 : 0 : {
6251 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
6252 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, LE_EXPR);
6253 : 0 : if (res) return res;
6254 : : }
6255 : : }
6256 : : break;
6257 : : }
6258 : : default:;
6259 : : }
6260 : : break;
6261 : : }
6262 : : default:;
6263 : : }
6264 : : break;
6265 : : }
6266 : : default:;
6267 : : }
6268 : : break;
6269 : : }
6270 : : default:;
6271 : : }
6272 : : break;
6273 : : }
6274 : 440 : case EXACT_DIV_EXPR:
6275 : 440 : {
6276 : 440 : tree _q20 = TREE_OPERAND (_p0, 0);
6277 : 440 : tree _q21 = TREE_OPERAND (_p0, 1);
6278 : 440 : switch (TREE_CODE (_q21))
6279 : : {
6280 : 440 : case INTEGER_CST:
6281 : 440 : {
6282 : 440 : switch (TREE_CODE (_p1))
6283 : : {
6284 : 0 : case EXACT_DIV_EXPR:
6285 : 0 : {
6286 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6287 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6288 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6289 : : {
6290 : 0 : {
6291 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
6292 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, LE_EXPR);
6293 : 0 : if (res) return res;
6294 : : }
6295 : : }
6296 : : break;
6297 : : }
6298 : : default:;
6299 : : }
6300 : : break;
6301 : : }
6302 : : default:;
6303 : : }
6304 : : break;
6305 : : }
6306 : 10627 : case TRUNC_DIV_EXPR:
6307 : 10627 : {
6308 : 10627 : tree _q20 = TREE_OPERAND (_p0, 0);
6309 : 10627 : tree _q21 = TREE_OPERAND (_p0, 1);
6310 : 10627 : switch (TREE_CODE (_q21))
6311 : : {
6312 : 2806 : case INTEGER_CST:
6313 : 2806 : {
6314 : 2806 : switch (TREE_CODE (_p1))
6315 : : {
6316 : 1398 : case INTEGER_CST:
6317 : 1398 : {
6318 : 1398 : {
6319 : 1398 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6320 : 1398 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, LE_EXPR);
6321 : 1398 : if (res) return res;
6322 : : }
6323 : 676 : break;
6324 : : }
6325 : : default:;
6326 : : }
6327 : : break;
6328 : : }
6329 : : default:;
6330 : : }
6331 : : break;
6332 : : }
6333 : 65948 : case MINUS_EXPR:
6334 : 65948 : {
6335 : 65948 : tree _q20 = TREE_OPERAND (_p0, 0);
6336 : 65948 : tree _q21 = TREE_OPERAND (_p0, 1);
6337 : 65948 : switch (TREE_CODE (_p1))
6338 : : {
6339 : 230 : case MINUS_EXPR:
6340 : 230 : {
6341 : 230 : tree _q50 = TREE_OPERAND (_p1, 0);
6342 : 230 : tree _q51 = TREE_OPERAND (_p1, 1);
6343 : 230 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6344 : : {
6345 : 56 : {
6346 : 56 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6347 : 56 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, LE_EXPR);
6348 : 56 : if (res) return res;
6349 : : }
6350 : : }
6351 : 230 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6352 : : {
6353 : 26 : {
6354 : 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6355 : 26 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, LE_EXPR);
6356 : 26 : if (res) return res;
6357 : : }
6358 : : }
6359 : : break;
6360 : : }
6361 : : default:;
6362 : : }
6363 : : break;
6364 : : }
6365 : 5622 : case POINTER_DIFF_EXPR:
6366 : 5622 : {
6367 : 5622 : tree _q20 = TREE_OPERAND (_p0, 0);
6368 : 5622 : tree _q21 = TREE_OPERAND (_p0, 1);
6369 : 5622 : switch (TREE_CODE (_p1))
6370 : : {
6371 : 303 : case POINTER_DIFF_EXPR:
6372 : 303 : {
6373 : 303 : tree _q50 = TREE_OPERAND (_p1, 0);
6374 : 303 : tree _q51 = TREE_OPERAND (_p1, 1);
6375 : 303 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6376 : : {
6377 : 0 : {
6378 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
6379 : 0 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, LE_EXPR);
6380 : 0 : if (res) return res;
6381 : : }
6382 : : }
6383 : 303 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6384 : : {
6385 : 0 : {
6386 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
6387 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, LE_EXPR);
6388 : 0 : if (res) return res;
6389 : : }
6390 : : }
6391 : : break;
6392 : : }
6393 : : default:;
6394 : : }
6395 : : break;
6396 : : }
6397 : 8572329 : default:;
6398 : : }
6399 : 8572329 : switch (TREE_CODE (_p1))
6400 : : {
6401 : 121486 : case PLUS_EXPR:
6402 : 121486 : {
6403 : 121486 : tree _q30 = TREE_OPERAND (_p1, 0);
6404 : 121486 : tree _q31 = TREE_OPERAND (_p1, 1);
6405 : 121486 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6406 : : {
6407 : 0 : {
6408 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
6409 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, GE_EXPR);
6410 : 0 : if (res) return res;
6411 : : }
6412 : : }
6413 : 121486 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6414 : : {
6415 : 57 : {
6416 : 57 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
6417 : 57 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, GE_EXPR);
6418 : 57 : if (res) return res;
6419 : : }
6420 : : }
6421 : : break;
6422 : : }
6423 : 931 : case MINUS_EXPR:
6424 : 931 : {
6425 : 931 : tree _q30 = TREE_OPERAND (_p1, 0);
6426 : 931 : tree _q31 = TREE_OPERAND (_p1, 1);
6427 : 931 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6428 : : {
6429 : 0 : {
6430 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
6431 : 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, LE_EXPR);
6432 : 0 : if (res) return res;
6433 : : }
6434 : : }
6435 : : break;
6436 : : }
6437 : 8572302 : default:;
6438 : : }
6439 : 8572302 : switch (TREE_CODE (_p0))
6440 : : {
6441 : 65948 : case MINUS_EXPR:
6442 : 65948 : {
6443 : 65948 : tree _q20 = TREE_OPERAND (_p0, 0);
6444 : 65948 : tree _q21 = TREE_OPERAND (_p0, 1);
6445 : 65948 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6446 : : {
6447 : 2495 : {
6448 : 2495 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
6449 : 2495 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, GE_EXPR);
6450 : 2495 : if (res) return res;
6451 : : }
6452 : : }
6453 : : break;
6454 : : }
6455 : 5130 : case BIT_AND_EXPR:
6456 : 5130 : {
6457 : 5130 : tree _q20 = TREE_OPERAND (_p0, 0);
6458 : 5130 : tree _q21 = TREE_OPERAND (_p0, 1);
6459 : 5130 : if (tree_expr_nonnegative_p (_q20))
6460 : : {
6461 : 4339 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6462 : : {
6463 : 0 : {
6464 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6465 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
6466 : 0 : if (res) return res;
6467 : : }
6468 : : }
6469 : : }
6470 : 5130 : if (tree_expr_nonnegative_p (_q21))
6471 : : {
6472 : 4746 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6473 : : {
6474 : 0 : {
6475 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6476 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
6477 : 0 : if (res) return res;
6478 : : }
6479 : : }
6480 : : }
6481 : : break;
6482 : : }
6483 : 8572302 : default:;
6484 : : }
6485 : 8572302 : switch (TREE_CODE (_p1))
6486 : : {
6487 : 81 : case BIT_IOR_EXPR:
6488 : 81 : {
6489 : 81 : tree _q30 = TREE_OPERAND (_p1, 0);
6490 : 81 : tree _q31 = TREE_OPERAND (_p1, 1);
6491 : 81 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6492 : : {
6493 : 0 : if (tree_expr_nonnegative_p (_q30))
6494 : : {
6495 : 0 : {
6496 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6497 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
6498 : 0 : if (res) return res;
6499 : : }
6500 : : }
6501 : : }
6502 : 81 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6503 : : {
6504 : 0 : if (tree_expr_nonnegative_p (_q31))
6505 : : {
6506 : 0 : {
6507 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6508 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
6509 : 0 : if (res) return res;
6510 : : }
6511 : : }
6512 : : }
6513 : : break;
6514 : : }
6515 : 8572302 : default:;
6516 : : }
6517 : 8572302 : switch (TREE_CODE (_p0))
6518 : : {
6519 : 4038 : case MAX_EXPR:
6520 : 4038 : {
6521 : 4038 : tree _q20 = TREE_OPERAND (_p0, 0);
6522 : 4038 : tree _q21 = TREE_OPERAND (_p0, 1);
6523 : 4038 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6524 : : {
6525 : 0 : {
6526 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6527 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
6528 : 0 : if (res) return res;
6529 : : }
6530 : : }
6531 : 4038 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6532 : : {
6533 : 1 : {
6534 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6535 : 1 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
6536 : 1 : if (res) return res;
6537 : : }
6538 : : }
6539 : 4037 : switch (TREE_CODE (_q21))
6540 : : {
6541 : 3796 : case INTEGER_CST:
6542 : 3796 : {
6543 : 3796 : switch (TREE_CODE (_p1))
6544 : : {
6545 : 0 : case INTEGER_CST:
6546 : 0 : {
6547 : 0 : {
6548 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6549 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
6550 : 0 : if (res) return res;
6551 : : }
6552 : 0 : break;
6553 : : }
6554 : : default:;
6555 : : }
6556 : : break;
6557 : : }
6558 : : default:;
6559 : : }
6560 : : break;
6561 : : }
6562 : 8572301 : default:;
6563 : : }
6564 : 8572301 : switch (TREE_CODE (_p1))
6565 : : {
6566 : 303 : case MIN_EXPR:
6567 : 303 : {
6568 : 303 : tree _q30 = TREE_OPERAND (_p1, 0);
6569 : 303 : tree _q31 = TREE_OPERAND (_p1, 1);
6570 : 303 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6571 : : {
6572 : 0 : {
6573 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6574 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
6575 : 0 : if (res) return res;
6576 : : }
6577 : : }
6578 : 303 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6579 : : {
6580 : 0 : {
6581 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6582 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
6583 : 0 : if (res) return res;
6584 : : }
6585 : : }
6586 : : break;
6587 : : }
6588 : 17 : case MAX_EXPR:
6589 : 17 : {
6590 : 17 : tree _q30 = TREE_OPERAND (_p1, 0);
6591 : 17 : tree _q31 = TREE_OPERAND (_p1, 1);
6592 : 17 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6593 : : {
6594 : 0 : {
6595 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6596 : 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
6597 : 0 : if (res) return res;
6598 : : }
6599 : : }
6600 : 17 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6601 : : {
6602 : 0 : {
6603 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6604 : 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
6605 : 0 : if (res) return res;
6606 : : }
6607 : : }
6608 : : break;
6609 : : }
6610 : 8572301 : default:;
6611 : : }
6612 : 8572301 : switch (TREE_CODE (_p0))
6613 : : {
6614 : 10777 : case MIN_EXPR:
6615 : 10777 : {
6616 : 10777 : tree _q20 = TREE_OPERAND (_p0, 0);
6617 : 10777 : tree _q21 = TREE_OPERAND (_p0, 1);
6618 : 10777 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6619 : : {
6620 : 0 : {
6621 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6622 : 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
6623 : 0 : if (res) return res;
6624 : : }
6625 : : }
6626 : 10777 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6627 : : {
6628 : 0 : {
6629 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6630 : 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
6631 : 0 : if (res) return res;
6632 : : }
6633 : : }
6634 : 10777 : switch (TREE_CODE (_q21))
6635 : : {
6636 : 791 : case INTEGER_CST:
6637 : 791 : {
6638 : 791 : switch (TREE_CODE (_p1))
6639 : : {
6640 : 0 : case INTEGER_CST:
6641 : 0 : {
6642 : 0 : {
6643 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6644 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
6645 : 0 : if (res) return res;
6646 : : }
6647 : 0 : break;
6648 : : }
6649 : : default:;
6650 : : }
6651 : : break;
6652 : : }
6653 : : default:;
6654 : : }
6655 : : break;
6656 : : }
6657 : 9 : case VEC_COND_EXPR:
6658 : 9 : {
6659 : 9 : tree _q20 = TREE_OPERAND (_p0, 0);
6660 : 9 : tree _q21 = TREE_OPERAND (_p0, 1);
6661 : 9 : tree _q22 = TREE_OPERAND (_p0, 2);
6662 : 9 : switch (TREE_CODE (_p1))
6663 : : {
6664 : 2 : case VEC_COND_EXPR:
6665 : 2 : {
6666 : 2 : tree _q60 = TREE_OPERAND (_p1, 0);
6667 : 2 : tree _q61 = TREE_OPERAND (_p1, 1);
6668 : 2 : tree _q62 = TREE_OPERAND (_p1, 2);
6669 : 2 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6670 : : {
6671 : 0 : {
6672 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
6673 : 0 : if (VECTOR_TYPE_P (type)
6674 : 0 : && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
6675 : 0 : || types_match (type, TREE_TYPE (captures[2]))
6676 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
6677 : : || (optimize_vectors_before_lowering_p ()
6678 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
6679 : : )
6680 : : {
6681 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1743;
6682 : 0 : {
6683 : 0 : tree res_op0;
6684 : 0 : res_op0 = captures[1];
6685 : 0 : tree res_op1;
6686 : 0 : {
6687 : 0 : tree _o1[2], _r1;
6688 : 0 : _o1[0] = captures[2];
6689 : 0 : _o1[1] = captures[5];
6690 : 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6691 : 0 : if (EXPR_P (_r1))
6692 : 0 : goto next_after_fail1743;
6693 : 0 : res_op1 = _r1;
6694 : : }
6695 : 0 : tree res_op2;
6696 : 0 : {
6697 : 0 : tree _o1[2], _r1;
6698 : 0 : _o1[0] = captures[3];
6699 : 0 : _o1[1] = captures[6];
6700 : 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6701 : 0 : if (EXPR_P (_r1))
6702 : 0 : goto next_after_fail1743;
6703 : 0 : res_op2 = _r1;
6704 : : }
6705 : 0 : tree _r;
6706 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6707 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
6708 : 0 : return _r;
6709 : : }
6710 : 0 : next_after_fail1743:;
6711 : : }
6712 : : }
6713 : : }
6714 : : break;
6715 : : }
6716 : 9 : default:;
6717 : : }
6718 : 9 : {
6719 : 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
6720 : 9 : if (VECTOR_TYPE_P (type)
6721 : 9 : && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
6722 : 9 : || types_match (type, TREE_TYPE (captures[2]))
6723 : 9 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
6724 : : || (optimize_vectors_before_lowering_p ()
6725 : 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
6726 : : )
6727 : : {
6728 : 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1744;
6729 : 9 : {
6730 : 9 : if (! tree_invariant_p (captures[4])) goto next_after_fail1744;
6731 : 7 : tree res_op0;
6732 : 7 : res_op0 = captures[1];
6733 : 7 : tree res_op1;
6734 : 7 : {
6735 : 7 : tree _o1[2], _r1;
6736 : 7 : _o1[0] = captures[2];
6737 : 7 : _o1[1] = unshare_expr (captures[4]);
6738 : 7 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6739 : 7 : if (EXPR_P (_r1))
6740 : 0 : goto next_after_fail1744;
6741 : 7 : res_op1 = _r1;
6742 : : }
6743 : 7 : tree res_op2;
6744 : 7 : {
6745 : 7 : tree _o1[2], _r1;
6746 : 7 : _o1[0] = captures[3];
6747 : 7 : _o1[1] = captures[4];
6748 : 7 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6749 : 7 : if (EXPR_P (_r1))
6750 : 0 : goto next_after_fail1744;
6751 : 7 : res_op2 = _r1;
6752 : : }
6753 : 7 : tree _r;
6754 : 7 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6755 : 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
6756 : 7 : return _r;
6757 : : }
6758 : 2 : next_after_fail1744:;
6759 : : }
6760 : : }
6761 : 2 : break;
6762 : : }
6763 : 8572294 : default:;
6764 : : }
6765 : 8572294 : switch (TREE_CODE (_p1))
6766 : : {
6767 : 2 : case VEC_COND_EXPR:
6768 : 2 : {
6769 : 2 : tree _q30 = TREE_OPERAND (_p1, 0);
6770 : 2 : tree _q31 = TREE_OPERAND (_p1, 1);
6771 : 2 : tree _q32 = TREE_OPERAND (_p1, 2);
6772 : 2 : {
6773 : 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
6774 : 2 : if (VECTOR_TYPE_P (type)
6775 : 2 : && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
6776 : 2 : || types_match (type, TREE_TYPE (captures[3]))
6777 : 2 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
6778 : : || (optimize_vectors_before_lowering_p ()
6779 : 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
6780 : : )
6781 : : {
6782 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1745;
6783 : 2 : {
6784 : 2 : if (! tree_invariant_p (captures[0])) goto next_after_fail1745;
6785 : 0 : tree res_op0;
6786 : 0 : res_op0 = captures[2];
6787 : 0 : tree res_op1;
6788 : 0 : {
6789 : 0 : tree _o1[2], _r1;
6790 : 0 : _o1[0] = unshare_expr (captures[0]);
6791 : 0 : _o1[1] = captures[3];
6792 : 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6793 : 0 : if (EXPR_P (_r1))
6794 : 0 : goto next_after_fail1745;
6795 : 0 : res_op1 = _r1;
6796 : : }
6797 : 0 : tree res_op2;
6798 : 0 : {
6799 : 0 : tree _o1[2], _r1;
6800 : 0 : _o1[0] = captures[0];
6801 : 0 : _o1[1] = captures[4];
6802 : 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
6803 : 0 : if (EXPR_P (_r1))
6804 : 0 : goto next_after_fail1745;
6805 : 0 : res_op2 = _r1;
6806 : : }
6807 : 0 : tree _r;
6808 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6809 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
6810 : 0 : return _r;
6811 : : }
6812 : 2 : next_after_fail1745:;
6813 : : }
6814 : : }
6815 : 2 : break;
6816 : : }
6817 : 8572294 : default:;
6818 : : }
6819 : 8572294 : if (uniform_integer_cst_p (_p1))
6820 : : {
6821 : 6204927 : {
6822 : 6204927 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6823 : 6204927 : tree res = generic_simplify_360 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
6824 : 6204927 : if (res) return res;
6825 : : }
6826 : : }
6827 : 8478830 : switch (TREE_CODE (_p0))
6828 : : {
6829 : 60679 : case MULT_EXPR:
6830 : 60679 : {
6831 : 60679 : tree _q20 = TREE_OPERAND (_p0, 0);
6832 : 60679 : tree _q21 = TREE_OPERAND (_p0, 1);
6833 : 60679 : switch (TREE_CODE (_q21))
6834 : : {
6835 : 53449 : case INTEGER_CST:
6836 : 53449 : {
6837 : 53449 : if (integer_zerop (_p1))
6838 : : {
6839 : 918 : {
6840 : 918 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6841 : 918 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
6842 : 918 : if (res) return res;
6843 : : }
6844 : : }
6845 : : break;
6846 : : }
6847 : : default:;
6848 : : }
6849 : : break;
6850 : : }
6851 : 8478121 : default:;
6852 : : }
6853 : 8478121 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
6854 : : {
6855 : 5103 : {
6856 : 5103 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6857 : 5103 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, LE_EXPR);
6858 : 5103 : if (res) return res;
6859 : : }
6860 : : }
6861 : 8473061 : switch (TREE_CODE (_p0))
6862 : : {
6863 : 2045 : case BIT_NOT_EXPR:
6864 : 2045 : {
6865 : 2045 : tree _q20 = TREE_OPERAND (_p0, 0);
6866 : 2045 : switch (TREE_CODE (_p1))
6867 : : {
6868 : 0 : case BIT_NOT_EXPR:
6869 : 0 : {
6870 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
6871 : 0 : {
6872 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
6873 : 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, LE_EXPR);
6874 : 0 : if (res) return res;
6875 : : }
6876 : 0 : break;
6877 : : }
6878 : 2045 : default:;
6879 : : }
6880 : 2045 : {
6881 : 2045 : tree _p1_pops[1];
6882 : 2045 : if (tree_nop_convert (_p1, _p1_pops))
6883 : : {
6884 : 1 : tree _q40 = _p1_pops[0];
6885 : 1 : switch (TREE_CODE (_q40))
6886 : : {
6887 : 0 : case BIT_NOT_EXPR:
6888 : 0 : {
6889 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6890 : 0 : {
6891 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
6892 : 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, LE_EXPR);
6893 : 0 : if (res) return res;
6894 : : }
6895 : 0 : break;
6896 : : }
6897 : : default:;
6898 : : }
6899 : : }
6900 : : }
6901 : 2045 : if (CONSTANT_CLASS_P (_p1))
6902 : : {
6903 : 2043 : {
6904 : 2043 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6905 : 2043 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
6906 : 2043 : if (res) return res;
6907 : : }
6908 : : }
6909 : : break;
6910 : : }
6911 : 8471018 : default:;
6912 : : }
6913 : 8471018 : {
6914 : 8471018 : tree _p0_pops[1];
6915 : 8471018 : if (tree_nop_convert (_p0, _p0_pops))
6916 : : {
6917 : 776794 : tree _q20 = _p0_pops[0];
6918 : 776794 : switch (TREE_CODE (_q20))
6919 : : {
6920 : 0 : case BIT_NOT_EXPR:
6921 : 0 : {
6922 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6923 : 0 : switch (TREE_CODE (_p1))
6924 : : {
6925 : 0 : case BIT_NOT_EXPR:
6926 : 0 : {
6927 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6928 : 0 : {
6929 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
6930 : 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LE_EXPR);
6931 : 0 : if (res) return res;
6932 : : }
6933 : 0 : break;
6934 : : }
6935 : 0 : default:;
6936 : : }
6937 : 0 : {
6938 : 0 : tree _p1_pops[1];
6939 : 0 : if (tree_nop_convert (_p1, _p1_pops))
6940 : : {
6941 : 0 : tree _q50 = _p1_pops[0];
6942 : 0 : switch (TREE_CODE (_q50))
6943 : : {
6944 : 0 : case BIT_NOT_EXPR:
6945 : 0 : {
6946 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6947 : 0 : {
6948 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
6949 : 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LE_EXPR);
6950 : 0 : if (res) return res;
6951 : : }
6952 : 0 : break;
6953 : : }
6954 : : default:;
6955 : : }
6956 : : }
6957 : : }
6958 : 0 : if (CONSTANT_CLASS_P (_p1))
6959 : : {
6960 : 0 : {
6961 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
6962 : 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
6963 : 0 : if (res) return res;
6964 : : }
6965 : : }
6966 : : break;
6967 : : }
6968 : : default:;
6969 : : }
6970 : : }
6971 : : }
6972 : 8471018 : switch (TREE_CODE (_p1))
6973 : : {
6974 : 140945 : case REAL_CST:
6975 : 140945 : {
6976 : 140945 : {
6977 : 140945 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6978 : 140945 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, LE_EXPR);
6979 : 140945 : if (res) return res;
6980 : : }
6981 : 140869 : break;
6982 : : }
6983 : 8470942 : default:;
6984 : : }
6985 : 8470942 : switch (TREE_CODE (_p0))
6986 : : {
6987 : 1526356 : case PLUS_EXPR:
6988 : 1526356 : {
6989 : 1526356 : tree _q20 = TREE_OPERAND (_p0, 0);
6990 : 1526356 : tree _q21 = TREE_OPERAND (_p0, 1);
6991 : 1526356 : switch (TREE_CODE (_q21))
6992 : : {
6993 : 80 : case REAL_CST:
6994 : 80 : {
6995 : 80 : switch (TREE_CODE (_p1))
6996 : : {
6997 : 75 : case REAL_CST:
6998 : 75 : {
6999 : 75 : {
7000 : 75 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7001 : 75 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR);
7002 : 75 : if (res) return res;
7003 : : }
7004 : 75 : break;
7005 : : }
7006 : : default:;
7007 : : }
7008 : : break;
7009 : : }
7010 : 1428398 : case INTEGER_CST:
7011 : 1428398 : {
7012 : 1428398 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7013 : : {
7014 : 1916 : {
7015 : 1916 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
7016 : 1916 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
7017 : 1916 : if (res) return res;
7018 : : }
7019 : : }
7020 : : break;
7021 : : }
7022 : : default:;
7023 : : }
7024 : : break;
7025 : : }
7026 : 60752 : case MINUS_EXPR:
7027 : 60752 : {
7028 : 60752 : tree _q20 = TREE_OPERAND (_p0, 0);
7029 : 60752 : tree _q21 = TREE_OPERAND (_p0, 1);
7030 : 60752 : switch (TREE_CODE (_q21))
7031 : : {
7032 : 1225 : case REAL_CST:
7033 : 1225 : {
7034 : 1225 : switch (TREE_CODE (_p1))
7035 : : {
7036 : 1202 : case REAL_CST:
7037 : 1202 : {
7038 : 1202 : {
7039 : 1202 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7040 : 1202 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, MINUS_EXPR, LE_EXPR);
7041 : 1202 : if (res) return res;
7042 : : }
7043 : 1202 : break;
7044 : : }
7045 : : default:;
7046 : : }
7047 : : break;
7048 : : }
7049 : 60752 : default:;
7050 : : }
7051 : 60752 : switch (TREE_CODE (_q20))
7052 : : {
7053 : 2 : case REAL_CST:
7054 : 2 : {
7055 : 2 : switch (TREE_CODE (_p1))
7056 : : {
7057 : 0 : case REAL_CST:
7058 : 0 : {
7059 : 0 : {
7060 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7061 : 0 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, LE_EXPR);
7062 : 0 : if (res) return res;
7063 : : }
7064 : 0 : break;
7065 : : }
7066 : : default:;
7067 : : }
7068 : : break;
7069 : : }
7070 : : default:;
7071 : : }
7072 : : break;
7073 : : }
7074 : 12553 : case FLOAT_EXPR:
7075 : 12553 : {
7076 : 12553 : tree _q20 = TREE_OPERAND (_p0, 0);
7077 : 12553 : switch (TREE_CODE (_p1))
7078 : : {
7079 : 0 : case FLOAT_EXPR:
7080 : 0 : {
7081 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
7082 : 0 : {
7083 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7084 : 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
7085 : 0 : if (res) return res;
7086 : : }
7087 : 0 : break;
7088 : : }
7089 : 235 : case REAL_CST:
7090 : 235 : {
7091 : 235 : {
7092 : 235 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7093 : 235 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
7094 : 235 : if (res) return res;
7095 : : }
7096 : 156 : break;
7097 : : }
7098 : : default:;
7099 : : }
7100 : : break;
7101 : : }
7102 : 440 : case EXACT_DIV_EXPR:
7103 : 440 : {
7104 : 440 : tree _q20 = TREE_OPERAND (_p0, 0);
7105 : 440 : tree _q21 = TREE_OPERAND (_p0, 1);
7106 : 440 : switch (TREE_CODE (_q21))
7107 : : {
7108 : 440 : case INTEGER_CST:
7109 : 440 : {
7110 : 440 : switch (TREE_CODE (_p1))
7111 : : {
7112 : 346 : case INTEGER_CST:
7113 : 346 : {
7114 : 346 : {
7115 : 346 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7116 : 346 : tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, LE_EXPR);
7117 : 346 : if (res) return res;
7118 : : }
7119 : 0 : break;
7120 : : }
7121 : : default:;
7122 : : }
7123 : : break;
7124 : : }
7125 : : default:;
7126 : : }
7127 : : break;
7128 : : }
7129 : 1475310 : CASE_CONVERT:
7130 : 1475310 : {
7131 : 1475310 : tree _q20 = TREE_OPERAND (_p0, 0);
7132 : 1475310 : switch (TREE_CODE (_q20))
7133 : : {
7134 : 0 : case EXACT_DIV_EXPR:
7135 : 0 : {
7136 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7137 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7138 : 0 : switch (TREE_CODE (_q31))
7139 : : {
7140 : 0 : case INTEGER_CST:
7141 : 0 : {
7142 : 0 : switch (TREE_CODE (_p1))
7143 : : {
7144 : 0 : case INTEGER_CST:
7145 : 0 : {
7146 : 0 : {
7147 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
7148 : 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
7149 : 0 : if (res) return res;
7150 : : }
7151 : 0 : break;
7152 : : }
7153 : : default:;
7154 : : }
7155 : : break;
7156 : : }
7157 : : default:;
7158 : : }
7159 : : break;
7160 : : }
7161 : 1475310 : default:;
7162 : : }
7163 : 1475310 : switch (TREE_CODE (_p1))
7164 : : {
7165 : 55005 : CASE_CONVERT:
7166 : 55005 : {
7167 : 55005 : tree _q40 = TREE_OPERAND (_p1, 0);
7168 : 55005 : {
7169 : 55005 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
7170 : 55005 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LE_EXPR);
7171 : 55005 : if (res) return res;
7172 : : }
7173 : 27319 : break;
7174 : : }
7175 : 1447624 : default:;
7176 : : }
7177 : 1447624 : {
7178 : 1447624 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
7179 : 1447624 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LE_EXPR);
7180 : 1447624 : if (res) return res;
7181 : : }
7182 : 925594 : switch (TREE_CODE (_q20))
7183 : : {
7184 : 5095 : case ADDR_EXPR:
7185 : 5095 : {
7186 : 5095 : switch (TREE_CODE (_p1))
7187 : : {
7188 : 4790 : CASE_CONVERT:
7189 : 4790 : {
7190 : 4790 : tree _q40 = TREE_OPERAND (_p1, 0);
7191 : 4790 : switch (TREE_CODE (_q40))
7192 : : {
7193 : 4790 : case ADDR_EXPR:
7194 : 4790 : {
7195 : 4790 : {
7196 : 4790 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7197 : 4790 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, LE_EXPR);
7198 : 4790 : if (res) return res;
7199 : : }
7200 : 160 : break;
7201 : : }
7202 : : default:;
7203 : : }
7204 : : break;
7205 : : }
7206 : 0 : case ADDR_EXPR:
7207 : 0 : {
7208 : 0 : {
7209 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7210 : 0 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, LE_EXPR);
7211 : 0 : if (res) return res;
7212 : : }
7213 : 0 : break;
7214 : : }
7215 : : default:;
7216 : : }
7217 : : break;
7218 : : }
7219 : 920964 : default:;
7220 : : }
7221 : 920964 : if (uniform_integer_cst_p (_p1))
7222 : : {
7223 : 445521 : {
7224 : 445521 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7225 : 445521 : tree res = generic_simplify_347 (loc, type, _p0, _p1, captures, LE_EXPR);
7226 : 445521 : if (res) return res;
7227 : : }
7228 : : }
7229 : : break;
7230 : : }
7231 : 5130 : case BIT_AND_EXPR:
7232 : 5130 : {
7233 : 5130 : tree _q20 = TREE_OPERAND (_p0, 0);
7234 : 5130 : tree _q21 = TREE_OPERAND (_p0, 1);
7235 : 5130 : switch (TREE_CODE (_q21))
7236 : : {
7237 : 4676 : case INTEGER_CST:
7238 : 4676 : {
7239 : 4676 : switch (TREE_CODE (_p1))
7240 : : {
7241 : 2623 : case INTEGER_CST:
7242 : 2623 : {
7243 : 2623 : {
7244 : 2623 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7245 : 2623 : tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
7246 : 2623 : if (res) return res;
7247 : : }
7248 : 2576 : break;
7249 : : }
7250 : : default:;
7251 : : }
7252 : : break;
7253 : : }
7254 : : default:;
7255 : : }
7256 : : break;
7257 : : }
7258 : 6843 : case NEGATE_EXPR:
7259 : 6843 : {
7260 : 6843 : tree _q20 = TREE_OPERAND (_p0, 0);
7261 : 6843 : switch (TREE_CODE (_p1))
7262 : : {
7263 : 32 : case NEGATE_EXPR:
7264 : 32 : {
7265 : 32 : tree _q40 = TREE_OPERAND (_p1, 0);
7266 : 32 : {
7267 : 32 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7268 : 32 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
7269 : 32 : if (res) return res;
7270 : : }
7271 : 32 : break;
7272 : : }
7273 : 6843 : default:;
7274 : : }
7275 : 6843 : if (CONSTANT_CLASS_P (_p1))
7276 : : {
7277 : 435 : {
7278 : 435 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7279 : 435 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
7280 : 435 : if (res) return res;
7281 : : }
7282 : : }
7283 : : break;
7284 : : }
7285 : 1590 : case ADDR_EXPR:
7286 : 1590 : {
7287 : 1590 : switch (TREE_CODE (_p1))
7288 : : {
7289 : 36 : CASE_CONVERT:
7290 : 36 : {
7291 : 36 : tree _q30 = TREE_OPERAND (_p1, 0);
7292 : 36 : switch (TREE_CODE (_q30))
7293 : : {
7294 : 36 : case ADDR_EXPR:
7295 : 36 : {
7296 : 36 : {
7297 : 36 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
7298 : 36 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, LE_EXPR);
7299 : 36 : if (res) return res;
7300 : : }
7301 : 0 : break;
7302 : : }
7303 : : default:;
7304 : : }
7305 : : break;
7306 : : }
7307 : 494 : case ADDR_EXPR:
7308 : 494 : {
7309 : 494 : {
7310 : 494 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
7311 : 494 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, LE_EXPR);
7312 : 494 : if (res) return res;
7313 : : }
7314 : 320 : break;
7315 : : }
7316 : : default:;
7317 : : }
7318 : : break;
7319 : : }
7320 : 65229 : case CALL_EXPR:
7321 : 65229 : switch (get_call_combined_fn (_p0))
7322 : : {
7323 : 2 : case CFN_BUILT_IN_SQRTF:
7324 : 2 : if (call_expr_nargs (_p0) == 1)
7325 : : {
7326 : 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7327 : 2 : switch (TREE_CODE (_p1))
7328 : : {
7329 : 2 : case REAL_CST:
7330 : 2 : {
7331 : 2 : {
7332 : 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7333 : 2 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
7334 : 2 : if (res) return res;
7335 : : }
7336 : 0 : break;
7337 : : }
7338 : 0 : case CALL_EXPR:
7339 : 0 : switch (get_call_combined_fn (_p1))
7340 : : {
7341 : 0 : case CFN_BUILT_IN_SQRTF:
7342 : 0 : if (call_expr_nargs (_p1) == 1)
7343 : : {
7344 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7345 : 0 : {
7346 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7347 : 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
7348 : 0 : if (res) return res;
7349 : : }
7350 : : }
7351 : : break;
7352 : : default:;
7353 : : }
7354 : : break;
7355 : : default:;
7356 : : }
7357 : : }
7358 : : break;
7359 : 0 : case CFN_BUILT_IN_SQRTL:
7360 : 0 : if (call_expr_nargs (_p0) == 1)
7361 : : {
7362 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7363 : 0 : switch (TREE_CODE (_p1))
7364 : : {
7365 : 0 : case REAL_CST:
7366 : 0 : {
7367 : 0 : {
7368 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7369 : 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
7370 : 0 : if (res) return res;
7371 : : }
7372 : 0 : break;
7373 : : }
7374 : 0 : case CALL_EXPR:
7375 : 0 : switch (get_call_combined_fn (_p1))
7376 : : {
7377 : 0 : case CFN_BUILT_IN_SQRTL:
7378 : 0 : if (call_expr_nargs (_p1) == 1)
7379 : : {
7380 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7381 : 0 : {
7382 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7383 : 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
7384 : 0 : if (res) return res;
7385 : : }
7386 : : }
7387 : : break;
7388 : : default:;
7389 : : }
7390 : : break;
7391 : : default:;
7392 : : }
7393 : : }
7394 : : break;
7395 : 2 : case CFN_BUILT_IN_SQRT:
7396 : 2 : if (call_expr_nargs (_p0) == 1)
7397 : : {
7398 : 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7399 : 2 : switch (TREE_CODE (_p1))
7400 : : {
7401 : 2 : case REAL_CST:
7402 : 2 : {
7403 : 2 : {
7404 : 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7405 : 2 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
7406 : 2 : if (res) return res;
7407 : : }
7408 : 2 : break;
7409 : : }
7410 : 0 : case CALL_EXPR:
7411 : 0 : switch (get_call_combined_fn (_p1))
7412 : : {
7413 : 0 : case CFN_BUILT_IN_SQRT:
7414 : 0 : if (call_expr_nargs (_p1) == 1)
7415 : : {
7416 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7417 : 0 : {
7418 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7419 : 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
7420 : 0 : if (res) return res;
7421 : : }
7422 : : }
7423 : : break;
7424 : : default:;
7425 : : }
7426 : : break;
7427 : : default:;
7428 : : }
7429 : : }
7430 : : break;
7431 : 0 : case CFN_SQRT:
7432 : 0 : if (call_expr_nargs (_p0) == 1)
7433 : : {
7434 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7435 : 0 : switch (TREE_CODE (_p1))
7436 : : {
7437 : 0 : case REAL_CST:
7438 : 0 : {
7439 : 0 : {
7440 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7441 : 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
7442 : 0 : if (res) return res;
7443 : : }
7444 : 0 : break;
7445 : : }
7446 : 0 : case CALL_EXPR:
7447 : 0 : switch (get_call_combined_fn (_p1))
7448 : : {
7449 : 0 : case CFN_SQRT:
7450 : 0 : if (call_expr_nargs (_p1) == 1)
7451 : : {
7452 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7453 : 0 : {
7454 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7455 : 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
7456 : 0 : if (res) return res;
7457 : : }
7458 : : }
7459 : : break;
7460 : : default:;
7461 : : }
7462 : : break;
7463 : : default:;
7464 : : }
7465 : : }
7466 : : break;
7467 : : default:;
7468 : : }
7469 : : break;
7470 : 7891459 : default:;
7471 : : }
7472 : 7891459 : if (uniform_integer_cst_p (_p1))
7473 : : {
7474 : 5563857 : {
7475 : 5563857 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
7476 : 5563857 : tree res = generic_simplify_348 (loc, type, _p0, _p1, captures, LE_EXPR);
7477 : 5563857 : if (res) return res;
7478 : : }
7479 : : }
7480 : 7464043 : switch (TREE_CODE (_p0))
7481 : : {
7482 : 883452 : CASE_CONVERT:
7483 : 883452 : {
7484 : 883452 : tree _q20 = TREE_OPERAND (_p0, 0);
7485 : 883452 : switch (TREE_CODE (_q20))
7486 : : {
7487 : 88531 : case PLUS_EXPR:
7488 : 88531 : {
7489 : 88531 : tree _q30 = TREE_OPERAND (_q20, 0);
7490 : 88531 : tree _q31 = TREE_OPERAND (_q20, 1);
7491 : 88531 : switch (TREE_CODE (_q30))
7492 : : {
7493 : 81442 : CASE_CONVERT:
7494 : 81442 : {
7495 : 81442 : tree _q40 = TREE_OPERAND (_q30, 0);
7496 : 81442 : switch (TREE_CODE (_q31))
7497 : : {
7498 : 80720 : case INTEGER_CST:
7499 : 80720 : {
7500 : 80720 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7501 : : {
7502 : 9 : {
7503 : 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
7504 : 9 : tree res = generic_simplify_349 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
7505 : 9 : if (res) return res;
7506 : : }
7507 : : }
7508 : : break;
7509 : : }
7510 : : default:;
7511 : : }
7512 : : break;
7513 : : }
7514 : : default:;
7515 : : }
7516 : : break;
7517 : : }
7518 : : default:;
7519 : : }
7520 : : break;
7521 : : }
7522 : 7464034 : default:;
7523 : : }
7524 : 7464034 : switch (TREE_CODE (_p1))
7525 : : {
7526 : 143373 : CASE_CONVERT:
7527 : 143373 : {
7528 : 143373 : tree _q30 = TREE_OPERAND (_p1, 0);
7529 : 143373 : switch (TREE_CODE (_q30))
7530 : : {
7531 : 1402 : case PLUS_EXPR:
7532 : 1402 : {
7533 : 1402 : tree _q40 = TREE_OPERAND (_q30, 0);
7534 : 1402 : tree _q41 = TREE_OPERAND (_q30, 1);
7535 : 1402 : switch (TREE_CODE (_q40))
7536 : : {
7537 : 221 : CASE_CONVERT:
7538 : 221 : {
7539 : 221 : tree _q50 = TREE_OPERAND (_q40, 0);
7540 : 221 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7541 : : {
7542 : 0 : switch (TREE_CODE (_q41))
7543 : : {
7544 : 0 : case INTEGER_CST:
7545 : 0 : {
7546 : 0 : {
7547 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
7548 : 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
7549 : 0 : if (res) return res;
7550 : : }
7551 : 0 : break;
7552 : : }
7553 : : default:;
7554 : : }
7555 : : }
7556 : : break;
7557 : : }
7558 : : default:;
7559 : : }
7560 : : break;
7561 : : }
7562 : : default:;
7563 : : }
7564 : : break;
7565 : : }
7566 : 121143 : case PLUS_EXPR:
7567 : 121143 : {
7568 : 121143 : tree _q30 = TREE_OPERAND (_p1, 0);
7569 : 121143 : tree _q31 = TREE_OPERAND (_p1, 1);
7570 : 121143 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7571 : : {
7572 : 30 : switch (TREE_CODE (_q31))
7573 : : {
7574 : 30 : case INTEGER_CST:
7575 : 30 : {
7576 : 30 : {
7577 : 30 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
7578 : 30 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
7579 : 30 : if (res) return res;
7580 : : }
7581 : 0 : break;
7582 : : }
7583 : : default:;
7584 : : }
7585 : : }
7586 : : break;
7587 : : }
7588 : 7464004 : default:;
7589 : : }
7590 : 7464004 : switch (TREE_CODE (_p0))
7591 : : {
7592 : 58675 : case MINUS_EXPR:
7593 : 58675 : {
7594 : 58675 : tree _q20 = TREE_OPERAND (_p0, 0);
7595 : 58675 : tree _q21 = TREE_OPERAND (_p0, 1);
7596 : 58675 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7597 : : {
7598 : 2495 : {
7599 : 2495 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7600 : 2495 : tree res = generic_simplify_350 (loc, type, _p0, _p1, captures, LE_EXPR);
7601 : 2495 : if (res) return res;
7602 : : }
7603 : : }
7604 : : break;
7605 : : }
7606 : 7463877 : default:;
7607 : : }
7608 : 7463877 : switch (TREE_CODE (_p1))
7609 : : {
7610 : 121113 : case PLUS_EXPR:
7611 : 121113 : {
7612 : 121113 : tree _q30 = TREE_OPERAND (_p1, 0);
7613 : 121113 : tree _q31 = TREE_OPERAND (_p1, 1);
7614 : 121113 : switch (TREE_CODE (_q30))
7615 : : {
7616 : 2 : case MINUS_EXPR:
7617 : 2 : {
7618 : 2 : tree _q40 = TREE_OPERAND (_q30, 0);
7619 : 2 : tree _q41 = TREE_OPERAND (_q30, 1);
7620 : 2 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7621 : : {
7622 : 0 : if (integer_minus_onep (_q31))
7623 : : {
7624 : 0 : {
7625 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
7626 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, captures, GE_EXPR);
7627 : 0 : if (res) return res;
7628 : : }
7629 : : }
7630 : : }
7631 : : break;
7632 : : }
7633 : : default:;
7634 : : }
7635 : : break;
7636 : : }
7637 : 7463877 : default:;
7638 : : }
7639 : 7463877 : switch (TREE_CODE (_p0))
7640 : : {
7641 : 12 : case REALPART_EXPR:
7642 : 12 : {
7643 : 12 : tree _q20 = TREE_OPERAND (_p0, 0);
7644 : 12 : switch (TREE_CODE (_q20))
7645 : : {
7646 : 0 : case CALL_EXPR:
7647 : 0 : switch (get_call_combined_fn (_q20))
7648 : : {
7649 : 0 : case CFN_SUB_OVERFLOW:
7650 : 0 : if (call_expr_nargs (_q20) == 2)
7651 : : {
7652 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
7653 : 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
7654 : 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7655 : : {
7656 : 0 : {
7657 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7658 : 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
7659 : 0 : if (res) return res;
7660 : : }
7661 : : }
7662 : : }
7663 : : break;
7664 : : default:;
7665 : : }
7666 : : break;
7667 : : default:;
7668 : : }
7669 : : break;
7670 : : }
7671 : 7463877 : default:;
7672 : : }
7673 : 7463877 : switch (TREE_CODE (_p1))
7674 : : {
7675 : 0 : case REALPART_EXPR:
7676 : 0 : {
7677 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
7678 : 0 : switch (TREE_CODE (_q30))
7679 : : {
7680 : 0 : case CALL_EXPR:
7681 : 0 : switch (get_call_combined_fn (_q30))
7682 : : {
7683 : 0 : case CFN_ADD_OVERFLOW:
7684 : 0 : if (call_expr_nargs (_q30) == 2)
7685 : : {
7686 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
7687 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
7688 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7689 : : {
7690 : 0 : {
7691 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
7692 : 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
7693 : 0 : if (res) return res;
7694 : : }
7695 : : }
7696 : 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
7697 : : {
7698 : 0 : {
7699 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
7700 : 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
7701 : 0 : if (res) return res;
7702 : : }
7703 : : }
7704 : : }
7705 : : break;
7706 : : default:;
7707 : : }
7708 : : break;
7709 : : default:;
7710 : : }
7711 : : break;
7712 : : }
7713 : 353 : case TRUNC_DIV_EXPR:
7714 : 353 : {
7715 : 353 : tree _q30 = TREE_OPERAND (_p1, 0);
7716 : 353 : tree _q31 = TREE_OPERAND (_p1, 1);
7717 : 353 : if (integer_all_onesp (_q30))
7718 : : {
7719 : 0 : {
7720 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7721 : 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
7722 : 0 : if (res) return res;
7723 : : }
7724 : : }
7725 : : break;
7726 : : }
7727 : 7463877 : default:;
7728 : : }
7729 : 7463877 : switch (TREE_CODE (_p0))
7730 : : {
7731 : 57492 : case MULT_EXPR:
7732 : 57492 : {
7733 : 57492 : tree _q20 = TREE_OPERAND (_p0, 0);
7734 : 57492 : tree _q21 = TREE_OPERAND (_p0, 1);
7735 : 57492 : switch (TREE_CODE (_q21))
7736 : : {
7737 : 843 : case REAL_CST:
7738 : 843 : {
7739 : 843 : switch (TREE_CODE (_p1))
7740 : : {
7741 : 577 : case REAL_CST:
7742 : 577 : {
7743 : 577 : {
7744 : 577 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7745 : 577 : tree res = generic_simplify_355 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
7746 : 577 : if (res) return res;
7747 : : }
7748 : 575 : break;
7749 : : }
7750 : : default:;
7751 : : }
7752 : : break;
7753 : : }
7754 : : default:;
7755 : : }
7756 : : break;
7757 : : }
7758 : 32 : case REAL_CST:
7759 : 32 : {
7760 : 32 : switch (TREE_CODE (_p1))
7761 : : {
7762 : 0 : case CALL_EXPR:
7763 : 0 : switch (get_call_combined_fn (_p1))
7764 : : {
7765 : 0 : case CFN_BUILT_IN_EXP:
7766 : 0 : if (call_expr_nargs (_p1) == 1)
7767 : : {
7768 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7769 : 0 : {
7770 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7771 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
7772 : 0 : if (res) return res;
7773 : : }
7774 : : }
7775 : : break;
7776 : 0 : case CFN_BUILT_IN_LOG:
7777 : 0 : if (call_expr_nargs (_p1) == 1)
7778 : : {
7779 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7780 : 0 : {
7781 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7782 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
7783 : 0 : if (res) return res;
7784 : : }
7785 : : }
7786 : : break;
7787 : 0 : case CFN_BUILT_IN_EXP10F:
7788 : 0 : if (call_expr_nargs (_p1) == 1)
7789 : : {
7790 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7791 : 0 : {
7792 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7793 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
7794 : 0 : if (res) return res;
7795 : : }
7796 : : }
7797 : : break;
7798 : 0 : case CFN_BUILT_IN_EXP10L:
7799 : 0 : if (call_expr_nargs (_p1) == 1)
7800 : : {
7801 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7802 : 0 : {
7803 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7804 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
7805 : 0 : if (res) return res;
7806 : : }
7807 : : }
7808 : : break;
7809 : 0 : case CFN_BUILT_IN_EXP2:
7810 : 0 : if (call_expr_nargs (_p1) == 1)
7811 : : {
7812 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7813 : 0 : {
7814 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7815 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
7816 : 0 : if (res) return res;
7817 : : }
7818 : : }
7819 : : break;
7820 : 0 : case CFN_BUILT_IN_EXPF:
7821 : 0 : if (call_expr_nargs (_p1) == 1)
7822 : : {
7823 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7824 : 0 : {
7825 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7826 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
7827 : 0 : if (res) return res;
7828 : : }
7829 : : }
7830 : : break;
7831 : 0 : case CFN_BUILT_IN_EXPL:
7832 : 0 : if (call_expr_nargs (_p1) == 1)
7833 : : {
7834 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7835 : 0 : {
7836 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7837 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
7838 : 0 : if (res) return res;
7839 : : }
7840 : : }
7841 : : break;
7842 : 0 : case CFN_BUILT_IN_LOG2:
7843 : 0 : if (call_expr_nargs (_p1) == 1)
7844 : : {
7845 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7846 : 0 : {
7847 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7848 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
7849 : 0 : if (res) return res;
7850 : : }
7851 : : }
7852 : : break;
7853 : 0 : case CFN_BUILT_IN_LOGF:
7854 : 0 : if (call_expr_nargs (_p1) == 1)
7855 : : {
7856 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7857 : 0 : {
7858 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7859 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
7860 : 0 : if (res) return res;
7861 : : }
7862 : : }
7863 : : break;
7864 : 0 : case CFN_BUILT_IN_LOGL:
7865 : 0 : if (call_expr_nargs (_p1) == 1)
7866 : : {
7867 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7868 : 0 : {
7869 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7870 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
7871 : 0 : if (res) return res;
7872 : : }
7873 : : }
7874 : : break;
7875 : 0 : case CFN_BUILT_IN_LOG10F:
7876 : 0 : if (call_expr_nargs (_p1) == 1)
7877 : : {
7878 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7879 : 0 : {
7880 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7881 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
7882 : 0 : if (res) return res;
7883 : : }
7884 : : }
7885 : : break;
7886 : 0 : case CFN_BUILT_IN_LOG10L:
7887 : 0 : if (call_expr_nargs (_p1) == 1)
7888 : : {
7889 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7890 : 0 : {
7891 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7892 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
7893 : 0 : if (res) return res;
7894 : : }
7895 : : }
7896 : : break;
7897 : 0 : case CFN_EXP:
7898 : 0 : if (call_expr_nargs (_p1) == 1)
7899 : : {
7900 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7901 : 0 : {
7902 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7903 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
7904 : 0 : if (res) return res;
7905 : : }
7906 : : }
7907 : : break;
7908 : 0 : case CFN_LOG:
7909 : 0 : if (call_expr_nargs (_p1) == 1)
7910 : : {
7911 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7912 : 0 : {
7913 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7914 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
7915 : 0 : if (res) return res;
7916 : : }
7917 : : }
7918 : : break;
7919 : 0 : case CFN_EXP2:
7920 : 0 : if (call_expr_nargs (_p1) == 1)
7921 : : {
7922 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7923 : 0 : {
7924 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7925 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
7926 : 0 : if (res) return res;
7927 : : }
7928 : : }
7929 : : break;
7930 : 0 : case CFN_LOG2:
7931 : 0 : if (call_expr_nargs (_p1) == 1)
7932 : : {
7933 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7934 : 0 : {
7935 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7936 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
7937 : 0 : if (res) return res;
7938 : : }
7939 : : }
7940 : : break;
7941 : 0 : case CFN_EXP10:
7942 : 0 : if (call_expr_nargs (_p1) == 1)
7943 : : {
7944 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7945 : 0 : {
7946 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7947 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
7948 : 0 : if (res) return res;
7949 : : }
7950 : : }
7951 : : break;
7952 : 0 : case CFN_LOG10:
7953 : 0 : if (call_expr_nargs (_p1) == 1)
7954 : : {
7955 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7956 : 0 : {
7957 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7958 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
7959 : 0 : if (res) return res;
7960 : : }
7961 : : }
7962 : : break;
7963 : 0 : case CFN_BUILT_IN_EXP10:
7964 : 0 : if (call_expr_nargs (_p1) == 1)
7965 : : {
7966 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7967 : 0 : {
7968 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7969 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
7970 : 0 : if (res) return res;
7971 : : }
7972 : : }
7973 : : break;
7974 : 0 : case CFN_BUILT_IN_EXP2F:
7975 : 0 : if (call_expr_nargs (_p1) == 1)
7976 : : {
7977 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7978 : 0 : {
7979 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7980 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
7981 : 0 : if (res) return res;
7982 : : }
7983 : : }
7984 : : break;
7985 : 0 : case CFN_BUILT_IN_EXP2L:
7986 : 0 : if (call_expr_nargs (_p1) == 1)
7987 : : {
7988 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7989 : 0 : {
7990 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7991 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
7992 : 0 : if (res) return res;
7993 : : }
7994 : : }
7995 : : break;
7996 : 0 : case CFN_BUILT_IN_LOG10:
7997 : 0 : if (call_expr_nargs (_p1) == 1)
7998 : : {
7999 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
8000 : 0 : {
8001 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
8002 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
8003 : 0 : if (res) return res;
8004 : : }
8005 : : }
8006 : : break;
8007 : 0 : case CFN_BUILT_IN_LOG2F:
8008 : 0 : if (call_expr_nargs (_p1) == 1)
8009 : : {
8010 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
8011 : 0 : {
8012 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
8013 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
8014 : 0 : if (res) return res;
8015 : : }
8016 : : }
8017 : : break;
8018 : 0 : case CFN_BUILT_IN_LOG2L:
8019 : 0 : if (call_expr_nargs (_p1) == 1)
8020 : : {
8021 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
8022 : 0 : {
8023 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
8024 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
8025 : 0 : if (res) return res;
8026 : : }
8027 : : }
8028 : : break;
8029 : : default:;
8030 : : }
8031 : : break;
8032 : : default:;
8033 : : }
8034 : : break;
8035 : : }
8036 : 1435675 : case PLUS_EXPR:
8037 : 1435675 : {
8038 : 1435675 : tree _q20 = TREE_OPERAND (_p0, 0);
8039 : 1435675 : tree _q21 = TREE_OPERAND (_p0, 1);
8040 : 1435675 : switch (TREE_CODE (_q21))
8041 : : {
8042 : 1340185 : case INTEGER_CST:
8043 : 1340185 : {
8044 : 1340185 : switch (TREE_CODE (_p1))
8045 : : {
8046 : 843097 : case INTEGER_CST:
8047 : 843097 : {
8048 : 843097 : {
8049 : 843097 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8050 : 843097 : tree res = generic_simplify_356 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR, GE_EXPR);
8051 : 843097 : if (res) return res;
8052 : : }
8053 : 668015 : break;
8054 : : }
8055 : : default:;
8056 : : }
8057 : : break;
8058 : : }
8059 : : default:;
8060 : : }
8061 : : break;
8062 : : }
8063 : 58548 : case MINUS_EXPR:
8064 : 58548 : {
8065 : 58548 : tree _q20 = TREE_OPERAND (_p0, 0);
8066 : 58548 : tree _q21 = TREE_OPERAND (_p0, 1);
8067 : 58548 : switch (TREE_CODE (_q21))
8068 : : {
8069 : 2196 : case INTEGER_CST:
8070 : 2196 : {
8071 : 2196 : switch (TREE_CODE (_p1))
8072 : : {
8073 : 2196 : case INTEGER_CST:
8074 : 2196 : {
8075 : 2196 : {
8076 : 2196 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8077 : 2196 : tree res = generic_simplify_356 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR, GE_EXPR);
8078 : 2196 : if (res) return res;
8079 : : }
8080 : 2195 : break;
8081 : : }
8082 : : default:;
8083 : : }
8084 : : break;
8085 : : }
8086 : 58547 : default:;
8087 : : }
8088 : 58547 : switch (TREE_CODE (_q20))
8089 : : {
8090 : 2312 : case INTEGER_CST:
8091 : 2312 : {
8092 : 2312 : switch (TREE_CODE (_p1))
8093 : : {
8094 : 1059 : case INTEGER_CST:
8095 : 1059 : {
8096 : 1059 : {
8097 : 1059 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8098 : 1059 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
8099 : 1059 : if (res) return res;
8100 : : }
8101 : 0 : break;
8102 : : }
8103 : : default:;
8104 : : }
8105 : : break;
8106 : : }
8107 : : default:;
8108 : : }
8109 : : break;
8110 : : }
8111 : 64860 : case CALL_EXPR:
8112 : 64860 : switch (get_call_combined_fn (_p0))
8113 : : {
8114 : 18 : case CFN_BUILT_IN_CTZ:
8115 : 18 : if (call_expr_nargs (_p0) == 1)
8116 : : {
8117 : 18 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8118 : 18 : switch (TREE_CODE (_p1))
8119 : : {
8120 : 18 : case INTEGER_CST:
8121 : 18 : {
8122 : 18 : {
8123 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8124 : 18 : tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
8125 : 18 : if (res) return res;
8126 : : }
8127 : 16 : break;
8128 : : }
8129 : : default:;
8130 : : }
8131 : : }
8132 : : break;
8133 : 0 : case CFN_BUILT_IN_EXP:
8134 : 0 : if (call_expr_nargs (_p0) == 1)
8135 : : {
8136 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8137 : 0 : switch (TREE_CODE (_p1))
8138 : : {
8139 : 0 : case REAL_CST:
8140 : 0 : {
8141 : 0 : {
8142 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8143 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
8144 : 0 : if (res) return res;
8145 : : }
8146 : 0 : break;
8147 : : }
8148 : : default:;
8149 : : }
8150 : : }
8151 : : break;
8152 : 8 : case CFN_BUILT_IN_FFS:
8153 : 8 : if (call_expr_nargs (_p0) == 1)
8154 : : {
8155 : 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8156 : 8 : switch (TREE_CODE (_p1))
8157 : : {
8158 : 8 : case INTEGER_CST:
8159 : 8 : {
8160 : 8 : {
8161 : 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8162 : 8 : tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFS);
8163 : 8 : if (res) return res;
8164 : : }
8165 : 2 : break;
8166 : : }
8167 : : default:;
8168 : : }
8169 : : }
8170 : : break;
8171 : 0 : case CFN_BUILT_IN_LOG:
8172 : 0 : if (call_expr_nargs (_p0) == 1)
8173 : : {
8174 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8175 : 0 : switch (TREE_CODE (_p1))
8176 : : {
8177 : 0 : case REAL_CST:
8178 : 0 : {
8179 : 0 : {
8180 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8181 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
8182 : 0 : if (res) return res;
8183 : : }
8184 : 0 : break;
8185 : : }
8186 : : default:;
8187 : : }
8188 : : }
8189 : : break;
8190 : 0 : case CFN_BUILT_IN_FFSIMAX:
8191 : 0 : if (call_expr_nargs (_p0) == 1)
8192 : : {
8193 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8194 : 0 : switch (TREE_CODE (_p1))
8195 : : {
8196 : 0 : case INTEGER_CST:
8197 : 0 : {
8198 : 0 : {
8199 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8200 : 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSIMAX);
8201 : 0 : if (res) return res;
8202 : : }
8203 : 0 : break;
8204 : : }
8205 : : default:;
8206 : : }
8207 : : }
8208 : : break;
8209 : 0 : case CFN_BUILT_IN_EXP10F:
8210 : 0 : if (call_expr_nargs (_p0) == 1)
8211 : : {
8212 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8213 : 0 : switch (TREE_CODE (_p1))
8214 : : {
8215 : 0 : case REAL_CST:
8216 : 0 : {
8217 : 0 : {
8218 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8219 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
8220 : 0 : if (res) return res;
8221 : : }
8222 : 0 : break;
8223 : : }
8224 : : default:;
8225 : : }
8226 : : }
8227 : : break;
8228 : 0 : case CFN_BUILT_IN_EXP10L:
8229 : 0 : if (call_expr_nargs (_p0) == 1)
8230 : : {
8231 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8232 : 0 : switch (TREE_CODE (_p1))
8233 : : {
8234 : 0 : case REAL_CST:
8235 : 0 : {
8236 : 0 : {
8237 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8238 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
8239 : 0 : if (res) return res;
8240 : : }
8241 : 0 : break;
8242 : : }
8243 : : default:;
8244 : : }
8245 : : }
8246 : : break;
8247 : 37 : case CFN_BUILT_IN_POPCOUNT:
8248 : 37 : if (call_expr_nargs (_p0) == 1)
8249 : : {
8250 : 37 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8251 : 37 : if (integer_zerop (_p1))
8252 : : {
8253 : 1 : {
8254 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8255 : 1 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
8256 : 1 : if (res) return res;
8257 : : }
8258 : : }
8259 : : }
8260 : : break;
8261 : 0 : case CFN_BUILT_IN_CTZL:
8262 : 0 : if (call_expr_nargs (_p0) == 1)
8263 : : {
8264 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8265 : 0 : switch (TREE_CODE (_p1))
8266 : : {
8267 : 0 : case INTEGER_CST:
8268 : 0 : {
8269 : 0 : {
8270 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8271 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
8272 : 0 : if (res) return res;
8273 : : }
8274 : 0 : break;
8275 : : }
8276 : : default:;
8277 : : }
8278 : : }
8279 : : break;
8280 : 0 : case CFN_BUILT_IN_EXP2:
8281 : 0 : if (call_expr_nargs (_p0) == 1)
8282 : : {
8283 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8284 : 0 : switch (TREE_CODE (_p1))
8285 : : {
8286 : 0 : case REAL_CST:
8287 : 0 : {
8288 : 0 : {
8289 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8290 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
8291 : 0 : if (res) return res;
8292 : : }
8293 : 0 : break;
8294 : : }
8295 : : default:;
8296 : : }
8297 : : }
8298 : : break;
8299 : 0 : case CFN_BUILT_IN_EXPF:
8300 : 0 : if (call_expr_nargs (_p0) == 1)
8301 : : {
8302 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8303 : 0 : switch (TREE_CODE (_p1))
8304 : : {
8305 : 0 : case REAL_CST:
8306 : 0 : {
8307 : 0 : {
8308 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8309 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
8310 : 0 : if (res) return res;
8311 : : }
8312 : 0 : break;
8313 : : }
8314 : : default:;
8315 : : }
8316 : : }
8317 : : break;
8318 : 0 : case CFN_BUILT_IN_EXPL:
8319 : 0 : if (call_expr_nargs (_p0) == 1)
8320 : : {
8321 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8322 : 0 : switch (TREE_CODE (_p1))
8323 : : {
8324 : 0 : case REAL_CST:
8325 : 0 : {
8326 : 0 : {
8327 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8328 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
8329 : 0 : if (res) return res;
8330 : : }
8331 : 0 : break;
8332 : : }
8333 : : default:;
8334 : : }
8335 : : }
8336 : : break;
8337 : 3 : case CFN_BUILT_IN_FFSL:
8338 : 3 : if (call_expr_nargs (_p0) == 1)
8339 : : {
8340 : 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8341 : 3 : switch (TREE_CODE (_p1))
8342 : : {
8343 : 3 : case INTEGER_CST:
8344 : 3 : {
8345 : 3 : {
8346 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8347 : 3 : tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSL);
8348 : 3 : if (res) return res;
8349 : : }
8350 : 0 : break;
8351 : : }
8352 : : default:;
8353 : : }
8354 : : }
8355 : : break;
8356 : 0 : case CFN_BUILT_IN_LOG2:
8357 : 0 : if (call_expr_nargs (_p0) == 1)
8358 : : {
8359 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8360 : 0 : switch (TREE_CODE (_p1))
8361 : : {
8362 : 0 : case REAL_CST:
8363 : 0 : {
8364 : 0 : {
8365 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8366 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
8367 : 0 : if (res) return res;
8368 : : }
8369 : 0 : break;
8370 : : }
8371 : : default:;
8372 : : }
8373 : : }
8374 : : break;
8375 : 0 : case CFN_BUILT_IN_LOGF:
8376 : 0 : if (call_expr_nargs (_p0) == 1)
8377 : : {
8378 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8379 : 0 : switch (TREE_CODE (_p1))
8380 : : {
8381 : 0 : case REAL_CST:
8382 : 0 : {
8383 : 0 : {
8384 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8385 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
8386 : 0 : if (res) return res;
8387 : : }
8388 : 0 : break;
8389 : : }
8390 : : default:;
8391 : : }
8392 : : }
8393 : : break;
8394 : 0 : case CFN_BUILT_IN_LOGL:
8395 : 0 : if (call_expr_nargs (_p0) == 1)
8396 : : {
8397 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8398 : 0 : switch (TREE_CODE (_p1))
8399 : : {
8400 : 0 : case REAL_CST:
8401 : 0 : {
8402 : 0 : {
8403 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8404 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
8405 : 0 : if (res) return res;
8406 : : }
8407 : 0 : break;
8408 : : }
8409 : : default:;
8410 : : }
8411 : : }
8412 : : break;
8413 : 1 : case CFN_BUILT_IN_POPCOUNTLL:
8414 : 1 : if (call_expr_nargs (_p0) == 1)
8415 : : {
8416 : 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8417 : 1 : if (integer_zerop (_p1))
8418 : : {
8419 : 1 : {
8420 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8421 : 1 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8422 : 1 : if (res) return res;
8423 : : }
8424 : : }
8425 : : }
8426 : : break;
8427 : 0 : case CFN_BUILT_IN_LOG10F:
8428 : 0 : if (call_expr_nargs (_p0) == 1)
8429 : : {
8430 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8431 : 0 : switch (TREE_CODE (_p1))
8432 : : {
8433 : 0 : case REAL_CST:
8434 : 0 : {
8435 : 0 : {
8436 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8437 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
8438 : 0 : if (res) return res;
8439 : : }
8440 : 0 : break;
8441 : : }
8442 : : default:;
8443 : : }
8444 : : }
8445 : : break;
8446 : 0 : case CFN_BUILT_IN_LOG10L:
8447 : 0 : if (call_expr_nargs (_p0) == 1)
8448 : : {
8449 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8450 : 0 : switch (TREE_CODE (_p1))
8451 : : {
8452 : 0 : case REAL_CST:
8453 : 0 : {
8454 : 0 : {
8455 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8456 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
8457 : 0 : if (res) return res;
8458 : : }
8459 : 0 : break;
8460 : : }
8461 : : default:;
8462 : : }
8463 : : }
8464 : : break;
8465 : 0 : case CFN_BUILT_IN_CTZIMAX:
8466 : 0 : if (call_expr_nargs (_p0) == 1)
8467 : : {
8468 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8469 : 0 : switch (TREE_CODE (_p1))
8470 : : {
8471 : 0 : case INTEGER_CST:
8472 : 0 : {
8473 : 0 : {
8474 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8475 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
8476 : 0 : if (res) return res;
8477 : : }
8478 : 0 : break;
8479 : : }
8480 : : default:;
8481 : : }
8482 : : }
8483 : : break;
8484 : 0 : case CFN_POPCOUNT:
8485 : 0 : if (call_expr_nargs (_p0) == 1)
8486 : : {
8487 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8488 : 0 : if (integer_zerop (_p1))
8489 : : {
8490 : 0 : {
8491 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8492 : 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_POPCOUNT);
8493 : 0 : if (res) return res;
8494 : : }
8495 : : }
8496 : : }
8497 : : break;
8498 : 0 : case CFN_CTZ:
8499 : 0 : if (call_expr_nargs (_p0) == 2)
8500 : : {
8501 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8502 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
8503 : 0 : switch (TREE_CODE (_p1))
8504 : : {
8505 : 0 : case INTEGER_CST:
8506 : 0 : {
8507 : 0 : {
8508 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8509 : 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
8510 : 0 : if (res) return res;
8511 : : }
8512 : 0 : break;
8513 : : }
8514 : : default:;
8515 : : }
8516 : : }
8517 : 0 : if (call_expr_nargs (_p0) == 1)
8518 : : {
8519 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8520 : 0 : switch (TREE_CODE (_p1))
8521 : : {
8522 : 0 : case INTEGER_CST:
8523 : 0 : {
8524 : 0 : {
8525 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8526 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_CTZ);
8527 : 0 : if (res) return res;
8528 : : }
8529 : 0 : break;
8530 : : }
8531 : : default:;
8532 : : }
8533 : : }
8534 : : break;
8535 : 0 : case CFN_EXP:
8536 : 0 : if (call_expr_nargs (_p0) == 1)
8537 : : {
8538 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8539 : 0 : switch (TREE_CODE (_p1))
8540 : : {
8541 : 0 : case REAL_CST:
8542 : 0 : {
8543 : 0 : {
8544 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8545 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
8546 : 0 : if (res) return res;
8547 : : }
8548 : 0 : break;
8549 : : }
8550 : : default:;
8551 : : }
8552 : : }
8553 : : break;
8554 : 0 : case CFN_FFS:
8555 : 0 : if (call_expr_nargs (_p0) == 1)
8556 : : {
8557 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8558 : 0 : switch (TREE_CODE (_p1))
8559 : : {
8560 : 0 : case INTEGER_CST:
8561 : 0 : {
8562 : 0 : {
8563 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8564 : 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_FFS);
8565 : 0 : if (res) return res;
8566 : : }
8567 : 0 : break;
8568 : : }
8569 : : default:;
8570 : : }
8571 : : }
8572 : : break;
8573 : 0 : case CFN_LOG:
8574 : 0 : if (call_expr_nargs (_p0) == 1)
8575 : : {
8576 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8577 : 0 : switch (TREE_CODE (_p1))
8578 : : {
8579 : 0 : case REAL_CST:
8580 : 0 : {
8581 : 0 : {
8582 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8583 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
8584 : 0 : if (res) return res;
8585 : : }
8586 : 0 : break;
8587 : : }
8588 : : default:;
8589 : : }
8590 : : }
8591 : : break;
8592 : 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8593 : 0 : if (call_expr_nargs (_p0) == 1)
8594 : : {
8595 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8596 : 0 : if (integer_zerop (_p1))
8597 : : {
8598 : 0 : {
8599 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8600 : 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8601 : 0 : if (res) return res;
8602 : : }
8603 : : }
8604 : : }
8605 : : break;
8606 : 0 : case CFN_EXP2:
8607 : 0 : if (call_expr_nargs (_p0) == 1)
8608 : : {
8609 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8610 : 0 : switch (TREE_CODE (_p1))
8611 : : {
8612 : 0 : case REAL_CST:
8613 : 0 : {
8614 : 0 : {
8615 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8616 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
8617 : 0 : if (res) return res;
8618 : : }
8619 : 0 : break;
8620 : : }
8621 : : default:;
8622 : : }
8623 : : }
8624 : : break;
8625 : 0 : case CFN_LOG2:
8626 : 0 : if (call_expr_nargs (_p0) == 1)
8627 : : {
8628 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8629 : 0 : switch (TREE_CODE (_p1))
8630 : : {
8631 : 0 : case REAL_CST:
8632 : 0 : {
8633 : 0 : {
8634 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8635 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
8636 : 0 : if (res) return res;
8637 : : }
8638 : 0 : break;
8639 : : }
8640 : : default:;
8641 : : }
8642 : : }
8643 : : break;
8644 : 0 : case CFN_EXP10:
8645 : 0 : if (call_expr_nargs (_p0) == 1)
8646 : : {
8647 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8648 : 0 : switch (TREE_CODE (_p1))
8649 : : {
8650 : 0 : case REAL_CST:
8651 : 0 : {
8652 : 0 : {
8653 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8654 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
8655 : 0 : if (res) return res;
8656 : : }
8657 : 0 : break;
8658 : : }
8659 : : default:;
8660 : : }
8661 : : }
8662 : : break;
8663 : 1 : case CFN_BUILT_IN_POPCOUNTL:
8664 : 1 : if (call_expr_nargs (_p0) == 1)
8665 : : {
8666 : 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8667 : 1 : if (integer_zerop (_p1))
8668 : : {
8669 : 1 : {
8670 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8671 : 1 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
8672 : 1 : if (res) return res;
8673 : : }
8674 : : }
8675 : : }
8676 : : break;
8677 : 0 : case CFN_BUILT_IN_CTZLL:
8678 : 0 : if (call_expr_nargs (_p0) == 1)
8679 : : {
8680 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8681 : 0 : switch (TREE_CODE (_p1))
8682 : : {
8683 : 0 : case INTEGER_CST:
8684 : 0 : {
8685 : 0 : {
8686 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8687 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
8688 : 0 : if (res) return res;
8689 : : }
8690 : 0 : break;
8691 : : }
8692 : : default:;
8693 : : }
8694 : : }
8695 : : break;
8696 : 0 : case CFN_LOG10:
8697 : 0 : if (call_expr_nargs (_p0) == 1)
8698 : : {
8699 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8700 : 0 : switch (TREE_CODE (_p1))
8701 : : {
8702 : 0 : case REAL_CST:
8703 : 0 : {
8704 : 0 : {
8705 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8706 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
8707 : 0 : if (res) return res;
8708 : : }
8709 : 0 : break;
8710 : : }
8711 : : default:;
8712 : : }
8713 : : }
8714 : : break;
8715 : 0 : case CFN_BUILT_IN_EXP10:
8716 : 0 : if (call_expr_nargs (_p0) == 1)
8717 : : {
8718 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8719 : 0 : switch (TREE_CODE (_p1))
8720 : : {
8721 : 0 : case REAL_CST:
8722 : 0 : {
8723 : 0 : {
8724 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8725 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
8726 : 0 : if (res) return res;
8727 : : }
8728 : 0 : break;
8729 : : }
8730 : : default:;
8731 : : }
8732 : : }
8733 : : break;
8734 : 0 : case CFN_BUILT_IN_EXP2F:
8735 : 0 : if (call_expr_nargs (_p0) == 1)
8736 : : {
8737 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8738 : 0 : switch (TREE_CODE (_p1))
8739 : : {
8740 : 0 : case REAL_CST:
8741 : 0 : {
8742 : 0 : {
8743 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8744 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
8745 : 0 : if (res) return res;
8746 : : }
8747 : 0 : break;
8748 : : }
8749 : : default:;
8750 : : }
8751 : : }
8752 : : break;
8753 : 0 : case CFN_BUILT_IN_EXP2L:
8754 : 0 : if (call_expr_nargs (_p0) == 1)
8755 : : {
8756 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8757 : 0 : switch (TREE_CODE (_p1))
8758 : : {
8759 : 0 : case REAL_CST:
8760 : 0 : {
8761 : 0 : {
8762 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8763 : 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
8764 : 0 : if (res) return res;
8765 : : }
8766 : 0 : break;
8767 : : }
8768 : : default:;
8769 : : }
8770 : : }
8771 : : break;
8772 : 3 : case CFN_BUILT_IN_FFSLL:
8773 : 3 : if (call_expr_nargs (_p0) == 1)
8774 : : {
8775 : 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8776 : 3 : switch (TREE_CODE (_p1))
8777 : : {
8778 : 3 : case INTEGER_CST:
8779 : 3 : {
8780 : 3 : {
8781 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8782 : 3 : tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSLL);
8783 : 3 : if (res) return res;
8784 : : }
8785 : 0 : break;
8786 : : }
8787 : : default:;
8788 : : }
8789 : : }
8790 : : break;
8791 : 0 : case CFN_BUILT_IN_LOG10:
8792 : 0 : if (call_expr_nargs (_p0) == 1)
8793 : : {
8794 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8795 : 0 : switch (TREE_CODE (_p1))
8796 : : {
8797 : 0 : case REAL_CST:
8798 : 0 : {
8799 : 0 : {
8800 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8801 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
8802 : 0 : if (res) return res;
8803 : : }
8804 : 0 : break;
8805 : : }
8806 : : default:;
8807 : : }
8808 : : }
8809 : : break;
8810 : 0 : case CFN_BUILT_IN_LOG2F:
8811 : 0 : if (call_expr_nargs (_p0) == 1)
8812 : : {
8813 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8814 : 0 : switch (TREE_CODE (_p1))
8815 : : {
8816 : 0 : case REAL_CST:
8817 : 0 : {
8818 : 0 : {
8819 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8820 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
8821 : 0 : if (res) return res;
8822 : : }
8823 : 0 : break;
8824 : : }
8825 : : default:;
8826 : : }
8827 : : }
8828 : : break;
8829 : 0 : case CFN_BUILT_IN_LOG2L:
8830 : 0 : if (call_expr_nargs (_p0) == 1)
8831 : : {
8832 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8833 : 0 : switch (TREE_CODE (_p1))
8834 : : {
8835 : 0 : case REAL_CST:
8836 : 0 : {
8837 : 0 : {
8838 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8839 : 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
8840 : 0 : if (res) return res;
8841 : : }
8842 : 0 : break;
8843 : : }
8844 : : default:;
8845 : : }
8846 : : }
8847 : : break;
8848 : : default:;
8849 : : }
8850 : : break;
8851 : : default:;
8852 : : }
8853 : : return NULL_TREE;
8854 : : }
8855 : :
8856 : : tree
8857 : 3692 : generic_simplify_CEIL_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
8858 : : {
8859 : 3692 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
8860 : 3692 : if (integer_zerop (_p0))
8861 : : {
8862 : 0 : {
8863 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8864 : 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8865 : 0 : if (res) return res;
8866 : : }
8867 : : }
8868 : 3692 : if (integer_onep (_p1))
8869 : : {
8870 : 0 : {
8871 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8872 : 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8873 : 0 : if (res) return res;
8874 : : }
8875 : : }
8876 : 3692 : if (integer_minus_onep (_p1))
8877 : : {
8878 : 0 : {
8879 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8880 : 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8881 : 0 : if (res) return res;
8882 : : }
8883 : : }
8884 : 3692 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8885 : : {
8886 : 0 : {
8887 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8888 : 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8889 : 0 : if (res) return res;
8890 : : }
8891 : : }
8892 : 3692 : switch (TREE_CODE (_p0))
8893 : : {
8894 : 0 : case CEIL_MOD_EXPR:
8895 : 0 : {
8896 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8897 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8898 : 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8899 : : {
8900 : 0 : {
8901 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8902 : 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8903 : 0 : if (res) return res;
8904 : : }
8905 : : }
8906 : : break;
8907 : : }
8908 : 0 : case MULT_EXPR:
8909 : 0 : {
8910 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8911 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8912 : 0 : switch (TREE_CODE (_q21))
8913 : : {
8914 : 0 : case INTEGER_CST:
8915 : 0 : {
8916 : 0 : switch (TREE_CODE (_p1))
8917 : : {
8918 : 0 : case INTEGER_CST:
8919 : 0 : {
8920 : 0 : {
8921 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8922 : 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
8923 : 0 : if (res) return res;
8924 : : }
8925 : 0 : break;
8926 : : }
8927 : : default:;
8928 : : }
8929 : : break;
8930 : : }
8931 : : default:;
8932 : : }
8933 : : break;
8934 : : }
8935 : 0 : case VEC_COND_EXPR:
8936 : 0 : {
8937 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8938 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8939 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
8940 : 0 : switch (TREE_CODE (_p1))
8941 : : {
8942 : 0 : case VEC_COND_EXPR:
8943 : 0 : {
8944 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8945 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8946 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8947 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8948 : : {
8949 : 0 : {
8950 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8951 : 0 : if (VECTOR_TYPE_P (type)
8952 : 0 : && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
8953 : : || types_match (type, TREE_TYPE (captures[2]))
8954 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8955 : : || (optimize_vectors_before_lowering_p ()
8956 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8957 : : )
8958 : : {
8959 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1753;
8960 : 0 : {
8961 : 0 : tree res_op0;
8962 : 0 : res_op0 = captures[1];
8963 : 0 : tree res_op1;
8964 : 0 : {
8965 : 0 : tree _o1[2], _r1;
8966 : 0 : _o1[0] = captures[2];
8967 : 0 : _o1[1] = captures[5];
8968 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8969 : 0 : if (EXPR_P (_r1))
8970 : 0 : goto next_after_fail1753;
8971 : 0 : res_op1 = _r1;
8972 : : }
8973 : 0 : tree res_op2;
8974 : 0 : {
8975 : 0 : tree _o1[2], _r1;
8976 : 0 : _o1[0] = captures[3];
8977 : 0 : _o1[1] = captures[6];
8978 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8979 : 0 : if (EXPR_P (_r1))
8980 : 0 : goto next_after_fail1753;
8981 : 0 : res_op2 = _r1;
8982 : : }
8983 : 0 : tree _r;
8984 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8985 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
8986 : 0 : return _r;
8987 : : }
8988 : 0 : next_after_fail1753:;
8989 : : }
8990 : : }
8991 : : }
8992 : : break;
8993 : : }
8994 : 0 : default:;
8995 : : }
8996 : 0 : {
8997 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8998 : 0 : if (VECTOR_TYPE_P (type)
8999 : 0 : && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
9000 : : || types_match (type, TREE_TYPE (captures[2]))
9001 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9002 : : || (optimize_vectors_before_lowering_p ()
9003 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9004 : : )
9005 : : {
9006 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1754;
9007 : 0 : {
9008 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1754;
9009 : 0 : tree res_op0;
9010 : 0 : res_op0 = captures[1];
9011 : 0 : tree res_op1;
9012 : 0 : {
9013 : 0 : tree _o1[2], _r1;
9014 : 0 : _o1[0] = captures[2];
9015 : 0 : _o1[1] = unshare_expr (captures[4]);
9016 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9017 : 0 : if (EXPR_P (_r1))
9018 : 0 : goto next_after_fail1754;
9019 : 0 : res_op1 = _r1;
9020 : : }
9021 : 0 : tree res_op2;
9022 : 0 : {
9023 : 0 : tree _o1[2], _r1;
9024 : 0 : _o1[0] = captures[3];
9025 : 0 : _o1[1] = captures[4];
9026 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9027 : 0 : if (EXPR_P (_r1))
9028 : 0 : goto next_after_fail1754;
9029 : 0 : res_op2 = _r1;
9030 : : }
9031 : 0 : tree _r;
9032 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9033 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
9034 : 0 : return _r;
9035 : : }
9036 : 0 : next_after_fail1754:;
9037 : : }
9038 : : }
9039 : 0 : break;
9040 : : }
9041 : 3692 : default:;
9042 : : }
9043 : 3692 : switch (TREE_CODE (_p1))
9044 : : {
9045 : 0 : case VEC_COND_EXPR:
9046 : 0 : {
9047 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9048 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
9049 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
9050 : 0 : {
9051 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
9052 : 0 : if (VECTOR_TYPE_P (type)
9053 : 0 : && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
9054 : : || types_match (type, TREE_TYPE (captures[3]))
9055 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
9056 : : || (optimize_vectors_before_lowering_p ()
9057 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
9058 : : )
9059 : : {
9060 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1755;
9061 : 0 : {
9062 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1755;
9063 : 0 : tree res_op0;
9064 : 0 : res_op0 = captures[2];
9065 : 0 : tree res_op1;
9066 : 0 : {
9067 : 0 : tree _o1[2], _r1;
9068 : 0 : _o1[0] = unshare_expr (captures[0]);
9069 : 0 : _o1[1] = captures[3];
9070 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9071 : 0 : if (EXPR_P (_r1))
9072 : 0 : goto next_after_fail1755;
9073 : 0 : res_op1 = _r1;
9074 : : }
9075 : 0 : tree res_op2;
9076 : 0 : {
9077 : 0 : tree _o1[2], _r1;
9078 : 0 : _o1[0] = captures[0];
9079 : 0 : _o1[1] = captures[4];
9080 : 0 : _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9081 : 0 : if (EXPR_P (_r1))
9082 : 0 : goto next_after_fail1755;
9083 : 0 : res_op2 = _r1;
9084 : : }
9085 : 0 : tree _r;
9086 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9087 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
9088 : 0 : return _r;
9089 : : }
9090 : 0 : next_after_fail1755:;
9091 : : }
9092 : : }
9093 : 0 : break;
9094 : : }
9095 : : default:;
9096 : : }
9097 : : return NULL_TREE;
9098 : : }
9099 : :
9100 : : tree
9101 : 0 : generic_simplify_ROUND_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
9102 : : {
9103 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9104 : 0 : if (integer_zerop (_p0))
9105 : : {
9106 : 0 : {
9107 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9108 : 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9109 : 0 : if (res) return res;
9110 : : }
9111 : : }
9112 : 0 : if (integer_onep (_p1))
9113 : : {
9114 : 0 : {
9115 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9116 : 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9117 : 0 : if (res) return res;
9118 : : }
9119 : : }
9120 : 0 : if (integer_minus_onep (_p1))
9121 : : {
9122 : 0 : {
9123 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9124 : 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9125 : 0 : if (res) return res;
9126 : : }
9127 : : }
9128 : 0 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
9129 : : {
9130 : 0 : {
9131 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9132 : 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9133 : 0 : if (res) return res;
9134 : : }
9135 : : }
9136 : 0 : switch (TREE_CODE (_p0))
9137 : : {
9138 : 0 : case ROUND_MOD_EXPR:
9139 : 0 : {
9140 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9141 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9142 : 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9143 : : {
9144 : 0 : {
9145 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9146 : 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9147 : 0 : if (res) return res;
9148 : : }
9149 : : }
9150 : : break;
9151 : : }
9152 : 0 : case MULT_EXPR:
9153 : 0 : {
9154 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9155 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9156 : 0 : switch (TREE_CODE (_q21))
9157 : : {
9158 : 0 : case INTEGER_CST:
9159 : 0 : {
9160 : 0 : switch (TREE_CODE (_p1))
9161 : : {
9162 : 0 : case INTEGER_CST:
9163 : 0 : {
9164 : 0 : {
9165 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9166 : 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
9167 : 0 : if (res) return res;
9168 : : }
9169 : 0 : break;
9170 : : }
9171 : : default:;
9172 : : }
9173 : : break;
9174 : : }
9175 : : default:;
9176 : : }
9177 : : break;
9178 : : }
9179 : 0 : case VEC_COND_EXPR:
9180 : 0 : {
9181 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9182 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9183 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
9184 : 0 : switch (TREE_CODE (_p1))
9185 : : {
9186 : 0 : case VEC_COND_EXPR:
9187 : 0 : {
9188 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9189 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9190 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9191 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9192 : : {
9193 : 0 : {
9194 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
9195 : 0 : if (VECTOR_TYPE_P (type)
9196 : 0 : && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
9197 : : || types_match (type, TREE_TYPE (captures[2]))
9198 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9199 : : || (optimize_vectors_before_lowering_p ()
9200 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9201 : : )
9202 : : {
9203 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1756;
9204 : 0 : {
9205 : 0 : tree res_op0;
9206 : 0 : res_op0 = captures[1];
9207 : 0 : tree res_op1;
9208 : 0 : {
9209 : 0 : tree _o1[2], _r1;
9210 : 0 : _o1[0] = captures[2];
9211 : 0 : _o1[1] = captures[5];
9212 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9213 : 0 : if (EXPR_P (_r1))
9214 : 0 : goto next_after_fail1756;
9215 : 0 : res_op1 = _r1;
9216 : : }
9217 : 0 : tree res_op2;
9218 : 0 : {
9219 : 0 : tree _o1[2], _r1;
9220 : 0 : _o1[0] = captures[3];
9221 : 0 : _o1[1] = captures[6];
9222 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9223 : 0 : if (EXPR_P (_r1))
9224 : 0 : goto next_after_fail1756;
9225 : 0 : res_op2 = _r1;
9226 : : }
9227 : 0 : tree _r;
9228 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9229 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
9230 : 0 : return _r;
9231 : : }
9232 : 0 : next_after_fail1756:;
9233 : : }
9234 : : }
9235 : : }
9236 : : break;
9237 : : }
9238 : 0 : default:;
9239 : : }
9240 : 0 : {
9241 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
9242 : 0 : if (VECTOR_TYPE_P (type)
9243 : 0 : && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
9244 : : || types_match (type, TREE_TYPE (captures[2]))
9245 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9246 : : || (optimize_vectors_before_lowering_p ()
9247 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9248 : : )
9249 : : {
9250 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1757;
9251 : 0 : {
9252 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1757;
9253 : 0 : tree res_op0;
9254 : 0 : res_op0 = captures[1];
9255 : 0 : tree res_op1;
9256 : 0 : {
9257 : 0 : tree _o1[2], _r1;
9258 : 0 : _o1[0] = captures[2];
9259 : 0 : _o1[1] = unshare_expr (captures[4]);
9260 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9261 : 0 : if (EXPR_P (_r1))
9262 : 0 : goto next_after_fail1757;
9263 : 0 : res_op1 = _r1;
9264 : : }
9265 : 0 : tree res_op2;
9266 : 0 : {
9267 : 0 : tree _o1[2], _r1;
9268 : 0 : _o1[0] = captures[3];
9269 : 0 : _o1[1] = captures[4];
9270 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9271 : 0 : if (EXPR_P (_r1))
9272 : 0 : goto next_after_fail1757;
9273 : 0 : res_op2 = _r1;
9274 : : }
9275 : 0 : tree _r;
9276 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9277 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
9278 : 0 : return _r;
9279 : : }
9280 : 0 : next_after_fail1757:;
9281 : : }
9282 : : }
9283 : 0 : break;
9284 : : }
9285 : 0 : default:;
9286 : : }
9287 : 0 : switch (TREE_CODE (_p1))
9288 : : {
9289 : 0 : case VEC_COND_EXPR:
9290 : 0 : {
9291 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9292 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
9293 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
9294 : 0 : {
9295 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
9296 : 0 : if (VECTOR_TYPE_P (type)
9297 : 0 : && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
9298 : : || types_match (type, TREE_TYPE (captures[3]))
9299 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
9300 : : || (optimize_vectors_before_lowering_p ()
9301 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
9302 : : )
9303 : : {
9304 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1758;
9305 : 0 : {
9306 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1758;
9307 : 0 : tree res_op0;
9308 : 0 : res_op0 = captures[2];
9309 : 0 : tree res_op1;
9310 : 0 : {
9311 : 0 : tree _o1[2], _r1;
9312 : 0 : _o1[0] = unshare_expr (captures[0]);
9313 : 0 : _o1[1] = captures[3];
9314 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9315 : 0 : if (EXPR_P (_r1))
9316 : 0 : goto next_after_fail1758;
9317 : 0 : res_op1 = _r1;
9318 : : }
9319 : 0 : tree res_op2;
9320 : 0 : {
9321 : 0 : tree _o1[2], _r1;
9322 : 0 : _o1[0] = captures[0];
9323 : 0 : _o1[1] = captures[4];
9324 : 0 : _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9325 : 0 : if (EXPR_P (_r1))
9326 : 0 : goto next_after_fail1758;
9327 : 0 : res_op2 = _r1;
9328 : : }
9329 : 0 : tree _r;
9330 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9331 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
9332 : 0 : return _r;
9333 : : }
9334 : 0 : next_after_fail1758:;
9335 : : }
9336 : : }
9337 : 0 : break;
9338 : : }
9339 : : default:;
9340 : : }
9341 : : return NULL_TREE;
9342 : : }
9343 : :
9344 : : tree
9345 : 1822130 : generic_simplify_TRUNC_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
9346 : : {
9347 : 1822130 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9348 : 1822130 : if (integer_zerop (_p0))
9349 : : {
9350 : 915 : {
9351 : 915 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9352 : 915 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9353 : 915 : if (res) return res;
9354 : : }
9355 : : }
9356 : 1821345 : if (integer_onep (_p1))
9357 : : {
9358 : 225846 : {
9359 : 225846 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9360 : 225846 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9361 : 225846 : if (res) return res;
9362 : : }
9363 : : }
9364 : 1595499 : if (integer_minus_onep (_p1))
9365 : : {
9366 : 313 : {
9367 : 313 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9368 : 313 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9369 : 313 : if (res) return res;
9370 : : }
9371 : : }
9372 : 1595479 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
9373 : : {
9374 : 223 : {
9375 : 223 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9376 : 223 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9377 : 223 : if (res) return res;
9378 : : }
9379 : : }
9380 : 1595386 : switch (TREE_CODE (_p0))
9381 : : {
9382 : 107 : case TRUNC_MOD_EXPR:
9383 : 107 : {
9384 : 107 : tree _q20 = TREE_OPERAND (_p0, 0);
9385 : 107 : tree _q21 = TREE_OPERAND (_p0, 1);
9386 : 107 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9387 : : {
9388 : 52 : {
9389 : 52 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9390 : 52 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9391 : 52 : if (res) return res;
9392 : : }
9393 : : }
9394 : : break;
9395 : : }
9396 : 8891 : case MULT_EXPR:
9397 : 8891 : {
9398 : 8891 : tree _q20 = TREE_OPERAND (_p0, 0);
9399 : 8891 : tree _q21 = TREE_OPERAND (_p0, 1);
9400 : 8891 : switch (TREE_CODE (_q21))
9401 : : {
9402 : 8798 : case INTEGER_CST:
9403 : 8798 : {
9404 : 8798 : switch (TREE_CODE (_p1))
9405 : : {
9406 : 8776 : case INTEGER_CST:
9407 : 8776 : {
9408 : 8776 : {
9409 : 8776 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9410 : 8776 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9411 : 8776 : if (res) return res;
9412 : : }
9413 : 8776 : break;
9414 : : }
9415 : : default:;
9416 : : }
9417 : : break;
9418 : : }
9419 : : default:;
9420 : : }
9421 : : break;
9422 : : }
9423 : 1595334 : default:;
9424 : : }
9425 : 1595334 : switch (TREE_CODE (_p1))
9426 : : {
9427 : 1385067 : case INTEGER_CST:
9428 : 1385067 : {
9429 : 1385067 : {
9430 : 1385067 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9431 : 1385067 : if (TYPE_SIGN (type) == SIGNED
9432 : 184938 : && !TREE_OVERFLOW (captures[1])
9433 : 1385071 : && wi::neg_p (wi::to_wide (captures[1]))
9434 : 313 : && !TYPE_OVERFLOW_TRAPS (type)
9435 : 1385380 : && !sign_bit_p (captures[1], captures[1])
9436 : : )
9437 : : {
9438 : 309 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1759;
9439 : 309 : {
9440 : 309 : tree res_op0;
9441 : 309 : res_op0 = captures[0];
9442 : 309 : tree res_op1;
9443 : 309 : {
9444 : 309 : tree _o1[1], _r1;
9445 : 309 : _o1[0] = captures[1];
9446 : 309 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9447 : 309 : res_op1 = _r1;
9448 : : }
9449 : 309 : tree _r;
9450 : 309 : _r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
9451 : 309 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
9452 : 309 : return _r;
9453 : : }
9454 : 0 : next_after_fail1759:;
9455 : : }
9456 : : }
9457 : 1384758 : break;
9458 : : }
9459 : 39920 : CASE_CONVERT:
9460 : 39920 : {
9461 : 39920 : tree _q30 = TREE_OPERAND (_p1, 0);
9462 : 39920 : switch (TREE_CODE (_q30))
9463 : : {
9464 : 0 : case NEGATE_EXPR:
9465 : 0 : {
9466 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9467 : 0 : {
9468 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
9469 : 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
9470 : 0 : if (res) return res;
9471 : : }
9472 : 0 : break;
9473 : : }
9474 : 39920 : default:;
9475 : : }
9476 : 39920 : {
9477 : 39920 : tree _q30_pops[1];
9478 : 39920 : if (tree_power_of_two_cand (_q30, _q30_pops))
9479 : : {
9480 : 7 : tree _q40 = _q30_pops[0];
9481 : 7 : {
9482 : 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
9483 : 7 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9484 : 7 : if (res) return res;
9485 : : }
9486 : : }
9487 : : }
9488 : 39913 : break;
9489 : : }
9490 : 94 : case NEGATE_EXPR:
9491 : 94 : {
9492 : 94 : tree _q30 = TREE_OPERAND (_p1, 0);
9493 : 94 : {
9494 : 94 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9495 : 94 : tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
9496 : 94 : if (res) return res;
9497 : : }
9498 : 94 : break;
9499 : : }
9500 : 1595018 : default:;
9501 : : }
9502 : 1595018 : {
9503 : 1595018 : tree _p1_pops[1];
9504 : 1595018 : if (tree_power_of_two_cand (_p1, _p1_pops))
9505 : : {
9506 : 1384767 : tree _q30 = _p1_pops[0];
9507 : 1384767 : {
9508 : 1384767 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
9509 : 1384767 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
9510 : 1384767 : if (res) return res;
9511 : : }
9512 : : }
9513 : : }
9514 : 614509 : switch (TREE_CODE (_p0))
9515 : : {
9516 : 0 : case VEC_COND_EXPR:
9517 : 0 : {
9518 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9519 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9520 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
9521 : 0 : switch (TREE_CODE (_p1))
9522 : : {
9523 : 0 : case VEC_COND_EXPR:
9524 : 0 : {
9525 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9526 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9527 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9528 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9529 : : {
9530 : 0 : {
9531 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
9532 : 0 : if (VECTOR_TYPE_P (type)
9533 : 0 : && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
9534 : : || types_match (type, TREE_TYPE (captures[2]))
9535 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9536 : : || (optimize_vectors_before_lowering_p ()
9537 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9538 : : )
9539 : : {
9540 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1760;
9541 : 0 : {
9542 : 0 : tree res_op0;
9543 : 0 : res_op0 = captures[1];
9544 : 0 : tree res_op1;
9545 : 0 : {
9546 : 0 : tree _o1[2], _r1;
9547 : 0 : _o1[0] = captures[2];
9548 : 0 : _o1[1] = captures[5];
9549 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9550 : 0 : if (EXPR_P (_r1))
9551 : 0 : goto next_after_fail1760;
9552 : 0 : res_op1 = _r1;
9553 : : }
9554 : 0 : tree res_op2;
9555 : 0 : {
9556 : 0 : tree _o1[2], _r1;
9557 : 0 : _o1[0] = captures[3];
9558 : 0 : _o1[1] = captures[6];
9559 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9560 : 0 : if (EXPR_P (_r1))
9561 : 0 : goto next_after_fail1760;
9562 : 0 : res_op2 = _r1;
9563 : : }
9564 : 0 : tree _r;
9565 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9566 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
9567 : 0 : return _r;
9568 : : }
9569 : 0 : next_after_fail1760:;
9570 : : }
9571 : : }
9572 : : }
9573 : : break;
9574 : : }
9575 : 0 : default:;
9576 : : }
9577 : 0 : {
9578 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
9579 : 0 : if (VECTOR_TYPE_P (type)
9580 : 0 : && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
9581 : : || types_match (type, TREE_TYPE (captures[2]))
9582 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9583 : : || (optimize_vectors_before_lowering_p ()
9584 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9585 : : )
9586 : : {
9587 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1761;
9588 : 0 : {
9589 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1761;
9590 : 0 : tree res_op0;
9591 : 0 : res_op0 = captures[1];
9592 : 0 : tree res_op1;
9593 : 0 : {
9594 : 0 : tree _o1[2], _r1;
9595 : 0 : _o1[0] = captures[2];
9596 : 0 : _o1[1] = unshare_expr (captures[4]);
9597 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9598 : 0 : if (EXPR_P (_r1))
9599 : 0 : goto next_after_fail1761;
9600 : 0 : res_op1 = _r1;
9601 : : }
9602 : 0 : tree res_op2;
9603 : 0 : {
9604 : 0 : tree _o1[2], _r1;
9605 : 0 : _o1[0] = captures[3];
9606 : 0 : _o1[1] = captures[4];
9607 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9608 : 0 : if (EXPR_P (_r1))
9609 : 0 : goto next_after_fail1761;
9610 : 0 : res_op2 = _r1;
9611 : : }
9612 : 0 : tree _r;
9613 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9614 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
9615 : 0 : return _r;
9616 : : }
9617 : 0 : next_after_fail1761:;
9618 : : }
9619 : : }
9620 : 0 : break;
9621 : : }
9622 : 614509 : default:;
9623 : : }
9624 : 614509 : switch (TREE_CODE (_p1))
9625 : : {
9626 : 7 : case VEC_COND_EXPR:
9627 : 7 : {
9628 : 7 : tree _q30 = TREE_OPERAND (_p1, 0);
9629 : 7 : tree _q31 = TREE_OPERAND (_p1, 1);
9630 : 7 : tree _q32 = TREE_OPERAND (_p1, 2);
9631 : 7 : {
9632 : 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
9633 : 7 : if (VECTOR_TYPE_P (type)
9634 : 7 : && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
9635 : : || types_match (type, TREE_TYPE (captures[3]))
9636 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
9637 : : || (optimize_vectors_before_lowering_p ()
9638 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
9639 : : )
9640 : : {
9641 : 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1762;
9642 : 7 : {
9643 : 7 : if (! tree_invariant_p (captures[0])) goto next_after_fail1762;
9644 : 0 : tree res_op0;
9645 : 0 : res_op0 = captures[2];
9646 : 0 : tree res_op1;
9647 : 0 : {
9648 : 0 : tree _o1[2], _r1;
9649 : 0 : _o1[0] = unshare_expr (captures[0]);
9650 : 0 : _o1[1] = captures[3];
9651 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9652 : 0 : if (EXPR_P (_r1))
9653 : 0 : goto next_after_fail1762;
9654 : 0 : res_op1 = _r1;
9655 : : }
9656 : 0 : tree res_op2;
9657 : 0 : {
9658 : 0 : tree _o1[2], _r1;
9659 : 0 : _o1[0] = captures[0];
9660 : 0 : _o1[1] = captures[4];
9661 : 0 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9662 : 0 : if (EXPR_P (_r1))
9663 : 0 : goto next_after_fail1762;
9664 : 0 : res_op2 = _r1;
9665 : : }
9666 : 0 : tree _r;
9667 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9668 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
9669 : 0 : return _r;
9670 : : }
9671 : 7 : next_after_fail1762:;
9672 : : }
9673 : : }
9674 : 7 : break;
9675 : : }
9676 : : default:;
9677 : : }
9678 : : return NULL_TREE;
9679 : : }
9680 : :
9681 : : tree
9682 : 889665 : generic_simplify_RSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
9683 : : {
9684 : 889665 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9685 : 889665 : switch (TREE_CODE (_p1))
9686 : : {
9687 : 174 : case TRUNC_MOD_EXPR:
9688 : 174 : {
9689 : 174 : tree _q30 = TREE_OPERAND (_p1, 0);
9690 : 174 : tree _q31 = TREE_OPERAND (_p1, 1);
9691 : 174 : {
9692 : 174 : tree _q31_pops[1];
9693 : 174 : if (tree_power_of_two_cand (_q31, _q31_pops))
9694 : : {
9695 : 166 : tree _q50 = _q31_pops[0];
9696 : 166 : {
9697 : 166 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
9698 : 166 : tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, TRUNC_MOD_EXPR);
9699 : 166 : if (res) return res;
9700 : : }
9701 : : }
9702 : : }
9703 : 13 : break;
9704 : : }
9705 : 0 : case FLOOR_MOD_EXPR:
9706 : 0 : {
9707 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9708 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
9709 : 0 : {
9710 : 0 : tree _q31_pops[1];
9711 : 0 : if (tree_power_of_two_cand (_q31, _q31_pops))
9712 : : {
9713 : 0 : tree _q50 = _q31_pops[0];
9714 : 0 : {
9715 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
9716 : 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, FLOOR_MOD_EXPR);
9717 : 0 : if (res) return res;
9718 : : }
9719 : : }
9720 : : }
9721 : 0 : break;
9722 : : }
9723 : 889504 : default:;
9724 : : }
9725 : 889504 : if (uniform_integer_cst_p (_p1))
9726 : : {
9727 : 740088 : {
9728 : 740088 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9729 : 740088 : tree res = generic_simplify_371 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
9730 : 740088 : if (res) return res;
9731 : : }
9732 : : }
9733 : 888747 : switch (TREE_CODE (_p0))
9734 : : {
9735 : 56 : case NEGATE_EXPR:
9736 : 56 : {
9737 : 56 : tree _q20 = TREE_OPERAND (_p0, 0);
9738 : 56 : switch (TREE_CODE (_p1))
9739 : : {
9740 : 55 : case INTEGER_CST:
9741 : 55 : {
9742 : 55 : {
9743 : 55 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9744 : 55 : if (!TYPE_UNSIGNED (type)
9745 : 55 : && TYPE_OVERFLOW_UNDEFINED (type)
9746 : : )
9747 : : {
9748 : 32 : {
9749 : 32 : tree stype = TREE_TYPE (captures[2]);
9750 : 32 : tree bt = truth_type_for (type);
9751 : 32 : tree zeros = build_zero_cst (type);
9752 : 32 : tree INTEGER_CST = NULL_TREE;
9753 : 32 : if (INTEGRAL_TYPE_P (type)
9754 : : && canonicalize_math_after_vectorization_p ()
9755 : : && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
9756 : : )
9757 : : {
9758 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1771;
9759 : : {
9760 : : tree res_op0;
9761 : : {
9762 : : tree _o1[1], _r1;
9763 : : {
9764 : : tree _o2[2], _r2;
9765 : : _o2[0] = captures[1];
9766 : : _o2[1] = zeros;
9767 : : _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
9768 : : _o1[0] = _r2;
9769 : : }
9770 : : if (TREE_TYPE (_o1[0]) != type)
9771 : : {
9772 : : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
9773 : : }
9774 : : else
9775 : : _r1 = _o1[0];
9776 : : res_op0 = _r1;
9777 : : }
9778 : : tree _r;
9779 : : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
9780 : : if (TREE_SIDE_EFFECTS (captures[2]))
9781 : : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9782 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
9783 : : return _r;
9784 : : }
9785 : : next_after_fail1771:;
9786 : : }
9787 : : else
9788 : : {
9789 : 0 : if (VECTOR_INTEGER_TYPE_P (type)
9790 : 0 : && TYPE_MODE (bt) == TYPE_MODE (type)
9791 : 0 : && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
9792 : 0 : && (INTEGER_CST = uniform_integer_cst_p (captures[2])) != NULL
9793 : 32 : && wi::eq_p (wi::to_wide (INTEGER_CST), element_precision (type) - 1)
9794 : : )
9795 : : {
9796 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1772;
9797 : 0 : {
9798 : 0 : tree res_op0;
9799 : 0 : {
9800 : 0 : tree _o1[2], _r1;
9801 : 0 : _o1[0] = captures[1];
9802 : 0 : _o1[1] = zeros;
9803 : 0 : _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
9804 : 0 : res_op0 = _r1;
9805 : : }
9806 : 0 : tree _r;
9807 : 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
9808 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9809 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9810 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
9811 : 0 : return _r;
9812 : : }
9813 : 0 : next_after_fail1772:;
9814 : : }
9815 : : }
9816 : : }
9817 : : }
9818 : : }
9819 : 55 : break;
9820 : : }
9821 : 0 : case VECTOR_CST:
9822 : 0 : {
9823 : 0 : {
9824 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9825 : 0 : if (!TYPE_UNSIGNED (type)
9826 : 0 : && TYPE_OVERFLOW_UNDEFINED (type)
9827 : : )
9828 : : {
9829 : 0 : {
9830 : 0 : tree stype = TREE_TYPE (captures[2]);
9831 : 0 : tree bt = truth_type_for (type);
9832 : 0 : tree zeros = build_zero_cst (type);
9833 : 0 : tree VECTOR_CST = NULL_TREE;
9834 : 0 : if (INTEGRAL_TYPE_P (type)
9835 : : && canonicalize_math_after_vectorization_p ()
9836 : : && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
9837 : : )
9838 : : {
9839 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1773;
9840 : : {
9841 : : tree res_op0;
9842 : : {
9843 : : tree _o1[1], _r1;
9844 : : {
9845 : : tree _o2[2], _r2;
9846 : : _o2[0] = captures[1];
9847 : : _o2[1] = zeros;
9848 : : _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
9849 : : _o1[0] = _r2;
9850 : : }
9851 : : if (TREE_TYPE (_o1[0]) != type)
9852 : : {
9853 : : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
9854 : : }
9855 : : else
9856 : : _r1 = _o1[0];
9857 : : res_op0 = _r1;
9858 : : }
9859 : : tree _r;
9860 : : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
9861 : : if (TREE_SIDE_EFFECTS (captures[2]))
9862 : : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9863 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
9864 : : return _r;
9865 : : }
9866 : : next_after_fail1773:;
9867 : : }
9868 : : else
9869 : : {
9870 : 0 : if (VECTOR_INTEGER_TYPE_P (type)
9871 : 0 : && TYPE_MODE (bt) == TYPE_MODE (type)
9872 : 0 : && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
9873 : 0 : && (VECTOR_CST = uniform_integer_cst_p (captures[2])) != NULL
9874 : 0 : && wi::eq_p (wi::to_wide (VECTOR_CST), element_precision (type) - 1)
9875 : : )
9876 : : {
9877 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1774;
9878 : 0 : {
9879 : 0 : tree res_op0;
9880 : 0 : {
9881 : 0 : tree _o1[2], _r1;
9882 : 0 : _o1[0] = captures[1];
9883 : 0 : _o1[1] = zeros;
9884 : 0 : _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
9885 : 0 : res_op0 = _r1;
9886 : : }
9887 : 0 : tree _r;
9888 : 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
9889 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9890 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9891 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
9892 : 0 : return _r;
9893 : : }
9894 : 0 : next_after_fail1774:;
9895 : : }
9896 : : }
9897 : : }
9898 : : }
9899 : : }
9900 : 0 : break;
9901 : : }
9902 : : default:;
9903 : : }
9904 : : break;
9905 : : }
9906 : 325 : case LSHIFT_EXPR:
9907 : 325 : {
9908 : 325 : tree _q20 = TREE_OPERAND (_p0, 0);
9909 : 325 : tree _q21 = TREE_OPERAND (_p0, 1);
9910 : 325 : switch (TREE_CODE (_q21))
9911 : : {
9912 : 246 : case INTEGER_CST:
9913 : 246 : {
9914 : 246 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
9915 : : {
9916 : 67 : {
9917 : 67 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q21 };
9918 : 67 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures);
9919 : 67 : if (res) return res;
9920 : : }
9921 : : }
9922 : : break;
9923 : : }
9924 : : default:;
9925 : : }
9926 : : break;
9927 : : }
9928 : 888720 : default:;
9929 : : }
9930 : 888720 : {
9931 : 888720 : tree _p0_pops[1];
9932 : 888720 : if (tree_nop_convert (_p0, _p0_pops))
9933 : : {
9934 : 177750 : tree _q20 = _p0_pops[0];
9935 : 177750 : switch (TREE_CODE (_q20))
9936 : : {
9937 : 20 : case LSHIFT_EXPR:
9938 : 20 : {
9939 : 20 : tree _q30 = TREE_OPERAND (_q20, 0);
9940 : 20 : tree _q31 = TREE_OPERAND (_q20, 1);
9941 : 20 : switch (TREE_CODE (_q31))
9942 : : {
9943 : 0 : case INTEGER_CST:
9944 : 0 : {
9945 : 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
9946 : : {
9947 : 0 : {
9948 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p1, _q31 };
9949 : 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures);
9950 : 0 : if (res) return res;
9951 : : }
9952 : : }
9953 : : break;
9954 : : }
9955 : : default:;
9956 : : }
9957 : : break;
9958 : : }
9959 : : default:;
9960 : : }
9961 : : }
9962 : : }
9963 : 888720 : if (integer_all_onesp (_p0))
9964 : : {
9965 : 11287 : {
9966 : 11287 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9967 : 11287 : if (!TYPE_UNSIGNED (type)
9968 : : )
9969 : : {
9970 : 119 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1775;
9971 : 119 : {
9972 : 119 : tree _r;
9973 : 119 : _r = captures[0];
9974 : 119 : if (TREE_SIDE_EFFECTS (captures[1]))
9975 : 1 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
9976 : 119 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
9977 : 119 : return _r;
9978 : : }
9979 : 0 : next_after_fail1775:;
9980 : : }
9981 : : }
9982 : : }
9983 : 888601 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
9984 : : {
9985 : 25 : {
9986 : 25 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9987 : 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1776;
9988 : 25 : {
9989 : 25 : tree _r;
9990 : 25 : _r = build_zero_cst (type);
9991 : 25 : if (TREE_SIDE_EFFECTS (captures[0]))
9992 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
9993 : 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
9994 : 25 : return _r;
9995 : : }
9996 : 0 : next_after_fail1776:;
9997 : : }
9998 : : }
9999 : 888576 : if (integer_zerop (_p1))
10000 : : {
10001 : 883 : {
10002 : 883 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10003 : 883 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
10004 : 883 : if (res) return res;
10005 : : }
10006 : : }
10007 : 887693 : if (integer_zerop (_p0))
10008 : : {
10009 : 154 : {
10010 : 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10011 : 154 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
10012 : 154 : if (res) return res;
10013 : : }
10014 : : }
10015 : 887539 : switch (TREE_CODE (_p1))
10016 : : {
10017 : 0 : case VECTOR_CST:
10018 : 0 : {
10019 : 0 : {
10020 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10021 : 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
10022 : 0 : if (res) return res;
10023 : : }
10024 : 0 : break;
10025 : : }
10026 : 0 : case CONSTRUCTOR:
10027 : 0 : {
10028 : 0 : {
10029 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10030 : 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
10031 : 0 : if (res) return res;
10032 : : }
10033 : 0 : break;
10034 : : }
10035 : 887539 : default:;
10036 : : }
10037 : 887539 : switch (TREE_CODE (_p0))
10038 : : {
10039 : 120 : case RSHIFT_EXPR:
10040 : 120 : {
10041 : 120 : tree _q20 = TREE_OPERAND (_p0, 0);
10042 : 120 : tree _q21 = TREE_OPERAND (_p0, 1);
10043 : 120 : switch (TREE_CODE (_q21))
10044 : : {
10045 : 75 : case INTEGER_CST:
10046 : 75 : {
10047 : 75 : switch (TREE_CODE (_p1))
10048 : : {
10049 : 49 : case INTEGER_CST:
10050 : 49 : {
10051 : 49 : {
10052 : 49 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10053 : 49 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
10054 : 49 : if (res) return res;
10055 : : }
10056 : 0 : break;
10057 : : }
10058 : : default:;
10059 : : }
10060 : : break;
10061 : : }
10062 : : default:;
10063 : : }
10064 : : break;
10065 : : }
10066 : 202248 : CASE_CONVERT:
10067 : 202248 : {
10068 : 202248 : tree _q20 = TREE_OPERAND (_p0, 0);
10069 : 202248 : switch (TREE_CODE (_q20))
10070 : : {
10071 : 6 : case BIT_AND_EXPR:
10072 : 6 : {
10073 : 6 : tree _q30 = TREE_OPERAND (_q20, 0);
10074 : 6 : tree _q31 = TREE_OPERAND (_q20, 1);
10075 : 6 : switch (TREE_CODE (_q31))
10076 : : {
10077 : 0 : case INTEGER_CST:
10078 : 0 : {
10079 : 0 : switch (TREE_CODE (_p1))
10080 : : {
10081 : 0 : case INTEGER_CST:
10082 : 0 : {
10083 : 0 : {
10084 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10085 : 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
10086 : 0 : if (res) return res;
10087 : : }
10088 : 0 : break;
10089 : : }
10090 : : default:;
10091 : : }
10092 : : break;
10093 : : }
10094 : : default:;
10095 : : }
10096 : : break;
10097 : : }
10098 : 14 : case BIT_XOR_EXPR:
10099 : 14 : {
10100 : 14 : tree _q30 = TREE_OPERAND (_q20, 0);
10101 : 14 : tree _q31 = TREE_OPERAND (_q20, 1);
10102 : 14 : switch (TREE_CODE (_q31))
10103 : : {
10104 : 0 : case INTEGER_CST:
10105 : 0 : {
10106 : 0 : switch (TREE_CODE (_p1))
10107 : : {
10108 : 0 : case INTEGER_CST:
10109 : 0 : {
10110 : 0 : {
10111 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10112 : 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
10113 : 0 : if (res) return res;
10114 : : }
10115 : 0 : break;
10116 : : }
10117 : : default:;
10118 : : }
10119 : : break;
10120 : : }
10121 : : default:;
10122 : : }
10123 : : break;
10124 : : }
10125 : 27 : case BIT_IOR_EXPR:
10126 : 27 : {
10127 : 27 : tree _q30 = TREE_OPERAND (_q20, 0);
10128 : 27 : tree _q31 = TREE_OPERAND (_q20, 1);
10129 : 27 : switch (TREE_CODE (_q31))
10130 : : {
10131 : 8 : case INTEGER_CST:
10132 : 8 : {
10133 : 8 : switch (TREE_CODE (_p1))
10134 : : {
10135 : 8 : case INTEGER_CST:
10136 : 8 : {
10137 : 8 : {
10138 : 8 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10139 : 8 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
10140 : 8 : if (res) return res;
10141 : : }
10142 : 1 : break;
10143 : : }
10144 : : default:;
10145 : : }
10146 : : break;
10147 : : }
10148 : : default:;
10149 : : }
10150 : : break;
10151 : : }
10152 : 59 : case CALL_EXPR:
10153 : 59 : switch (get_call_combined_fn (_q20))
10154 : : {
10155 : 0 : case CFN_BUILT_IN_BSWAP128:
10156 : 0 : if (call_expr_nargs (_q20) == 1)
10157 : : {
10158 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
10159 : 0 : switch (TREE_CODE (_p1))
10160 : : {
10161 : 0 : case INTEGER_CST:
10162 : 0 : {
10163 : 0 : {
10164 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
10165 : 0 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
10166 : 0 : if (res) return res;
10167 : : }
10168 : 0 : break;
10169 : : }
10170 : : default:;
10171 : : }
10172 : : }
10173 : : break;
10174 : 8 : case CFN_BUILT_IN_BSWAP16:
10175 : 8 : if (call_expr_nargs (_q20) == 1)
10176 : : {
10177 : 8 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
10178 : 8 : switch (TREE_CODE (_p1))
10179 : : {
10180 : 7 : case INTEGER_CST:
10181 : 7 : {
10182 : 7 : {
10183 : 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
10184 : 7 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
10185 : 7 : if (res) return res;
10186 : : }
10187 : 2 : break;
10188 : : }
10189 : : default:;
10190 : : }
10191 : : }
10192 : : break;
10193 : 13 : case CFN_BUILT_IN_BSWAP32:
10194 : 13 : if (call_expr_nargs (_q20) == 1)
10195 : : {
10196 : 13 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
10197 : 13 : switch (TREE_CODE (_p1))
10198 : : {
10199 : 13 : case INTEGER_CST:
10200 : 13 : {
10201 : 13 : {
10202 : 13 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
10203 : 13 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
10204 : 13 : if (res) return res;
10205 : : }
10206 : 9 : break;
10207 : : }
10208 : : default:;
10209 : : }
10210 : : }
10211 : : break;
10212 : 18 : case CFN_BUILT_IN_BSWAP64:
10213 : 18 : if (call_expr_nargs (_q20) == 1)
10214 : : {
10215 : 18 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
10216 : 18 : switch (TREE_CODE (_p1))
10217 : : {
10218 : 18 : case INTEGER_CST:
10219 : 18 : {
10220 : 18 : {
10221 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
10222 : 18 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
10223 : 18 : if (res) return res;
10224 : : }
10225 : 12 : break;
10226 : : }
10227 : : default:;
10228 : : }
10229 : : }
10230 : : break;
10231 : : default:;
10232 : : }
10233 : : break;
10234 : : default:;
10235 : : }
10236 : : break;
10237 : : }
10238 : 13427 : case BIT_AND_EXPR:
10239 : 13427 : {
10240 : 13427 : tree _q20 = TREE_OPERAND (_p0, 0);
10241 : 13427 : tree _q21 = TREE_OPERAND (_p0, 1);
10242 : 13427 : switch (TREE_CODE (_q21))
10243 : : {
10244 : 13377 : case INTEGER_CST:
10245 : 13377 : {
10246 : 13377 : switch (TREE_CODE (_p1))
10247 : : {
10248 : 13354 : case INTEGER_CST:
10249 : 13354 : {
10250 : 13354 : {
10251 : 13354 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
10252 : 13354 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
10253 : 13354 : if (res) return res;
10254 : : }
10255 : 0 : break;
10256 : : }
10257 : : default:;
10258 : : }
10259 : : break;
10260 : : }
10261 : : default:;
10262 : : }
10263 : : break;
10264 : : }
10265 : 228 : case BIT_XOR_EXPR:
10266 : 228 : {
10267 : 228 : tree _q20 = TREE_OPERAND (_p0, 0);
10268 : 228 : tree _q21 = TREE_OPERAND (_p0, 1);
10269 : 228 : switch (TREE_CODE (_q21))
10270 : : {
10271 : 90 : case INTEGER_CST:
10272 : 90 : {
10273 : 90 : switch (TREE_CODE (_p1))
10274 : : {
10275 : 90 : case INTEGER_CST:
10276 : 90 : {
10277 : 90 : {
10278 : 90 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
10279 : 90 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
10280 : 90 : if (res) return res;
10281 : : }
10282 : 0 : break;
10283 : : }
10284 : : default:;
10285 : : }
10286 : : break;
10287 : : }
10288 : : default:;
10289 : : }
10290 : : break;
10291 : : }
10292 : 51 : case BIT_IOR_EXPR:
10293 : 51 : {
10294 : 51 : tree _q20 = TREE_OPERAND (_p0, 0);
10295 : 51 : tree _q21 = TREE_OPERAND (_p0, 1);
10296 : 51 : switch (TREE_CODE (_q21))
10297 : : {
10298 : 10 : case INTEGER_CST:
10299 : 10 : {
10300 : 10 : switch (TREE_CODE (_p1))
10301 : : {
10302 : 8 : case INTEGER_CST:
10303 : 8 : {
10304 : 8 : {
10305 : 8 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
10306 : 8 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
10307 : 8 : if (res) return res;
10308 : : }
10309 : 0 : break;
10310 : : }
10311 : : default:;
10312 : : }
10313 : : break;
10314 : : }
10315 : : default:;
10316 : : }
10317 : : break;
10318 : : }
10319 : 0 : case VEC_COND_EXPR:
10320 : 0 : {
10321 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10322 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10323 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10324 : 0 : switch (TREE_CODE (_p1))
10325 : : {
10326 : 0 : case VEC_COND_EXPR:
10327 : 0 : {
10328 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10329 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10330 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10331 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10332 : : {
10333 : 0 : {
10334 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10335 : 0 : if (VECTOR_TYPE_P (type)
10336 : 0 : && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
10337 : : || types_match (type, TREE_TYPE (captures[2]))
10338 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10339 : : || (optimize_vectors_before_lowering_p ()
10340 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10341 : : )
10342 : : {
10343 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1777;
10344 : 0 : {
10345 : 0 : tree res_op0;
10346 : 0 : res_op0 = captures[1];
10347 : 0 : tree res_op1;
10348 : 0 : {
10349 : 0 : tree _o1[2], _r1;
10350 : 0 : _o1[0] = captures[2];
10351 : 0 : _o1[1] = captures[5];
10352 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10353 : 0 : if (EXPR_P (_r1))
10354 : 0 : goto next_after_fail1777;
10355 : 0 : res_op1 = _r1;
10356 : : }
10357 : 0 : tree res_op2;
10358 : 0 : {
10359 : 0 : tree _o1[2], _r1;
10360 : 0 : _o1[0] = captures[3];
10361 : 0 : _o1[1] = captures[6];
10362 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10363 : 0 : if (EXPR_P (_r1))
10364 : 0 : goto next_after_fail1777;
10365 : 0 : res_op2 = _r1;
10366 : : }
10367 : 0 : tree _r;
10368 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10369 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
10370 : 0 : return _r;
10371 : : }
10372 : 0 : next_after_fail1777:;
10373 : : }
10374 : : }
10375 : : }
10376 : : break;
10377 : : }
10378 : 0 : default:;
10379 : : }
10380 : 0 : {
10381 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10382 : 0 : if (VECTOR_TYPE_P (type)
10383 : 0 : && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
10384 : : || types_match (type, TREE_TYPE (captures[2]))
10385 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10386 : : || (optimize_vectors_before_lowering_p ()
10387 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10388 : : )
10389 : : {
10390 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1778;
10391 : 0 : {
10392 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1778;
10393 : 0 : tree res_op0;
10394 : 0 : res_op0 = captures[1];
10395 : 0 : tree res_op1;
10396 : 0 : {
10397 : 0 : tree _o1[2], _r1;
10398 : 0 : _o1[0] = captures[2];
10399 : 0 : _o1[1] = unshare_expr (captures[4]);
10400 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10401 : 0 : if (EXPR_P (_r1))
10402 : 0 : goto next_after_fail1778;
10403 : 0 : res_op1 = _r1;
10404 : : }
10405 : 0 : tree res_op2;
10406 : 0 : {
10407 : 0 : tree _o1[2], _r1;
10408 : 0 : _o1[0] = captures[3];
10409 : 0 : _o1[1] = captures[4];
10410 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10411 : 0 : if (EXPR_P (_r1))
10412 : 0 : goto next_after_fail1778;
10413 : 0 : res_op2 = _r1;
10414 : : }
10415 : 0 : tree _r;
10416 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10417 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
10418 : 0 : return _r;
10419 : : }
10420 : 0 : next_after_fail1778:;
10421 : : }
10422 : : }
10423 : 0 : break;
10424 : : }
10425 : 433 : case CALL_EXPR:
10426 : 433 : switch (get_call_combined_fn (_p0))
10427 : : {
10428 : 0 : case CFN_BUILT_IN_BSWAP128:
10429 : 0 : if (call_expr_nargs (_p0) == 1)
10430 : : {
10431 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10432 : 0 : switch (TREE_CODE (_p1))
10433 : : {
10434 : 0 : case INTEGER_CST:
10435 : 0 : {
10436 : 0 : {
10437 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10438 : 0 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
10439 : 0 : if (res) return res;
10440 : : }
10441 : 0 : break;
10442 : : }
10443 : : default:;
10444 : : }
10445 : : }
10446 : : break;
10447 : 32 : case CFN_BUILT_IN_BSWAP16:
10448 : 32 : if (call_expr_nargs (_p0) == 1)
10449 : : {
10450 : 32 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10451 : 32 : switch (TREE_CODE (_p1))
10452 : : {
10453 : 32 : case INTEGER_CST:
10454 : 32 : {
10455 : 32 : {
10456 : 32 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10457 : 32 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
10458 : 32 : if (res) return res;
10459 : : }
10460 : 9 : break;
10461 : : }
10462 : : default:;
10463 : : }
10464 : : }
10465 : : break;
10466 : 99 : case CFN_BUILT_IN_BSWAP32:
10467 : 99 : if (call_expr_nargs (_p0) == 1)
10468 : : {
10469 : 99 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10470 : 99 : switch (TREE_CODE (_p1))
10471 : : {
10472 : 98 : case INTEGER_CST:
10473 : 98 : {
10474 : 98 : {
10475 : 98 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10476 : 98 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
10477 : 98 : if (res) return res;
10478 : : }
10479 : 59 : break;
10480 : : }
10481 : : default:;
10482 : : }
10483 : : }
10484 : : break;
10485 : 100 : case CFN_BUILT_IN_BSWAP64:
10486 : 100 : if (call_expr_nargs (_p0) == 1)
10487 : : {
10488 : 100 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10489 : 100 : switch (TREE_CODE (_p1))
10490 : : {
10491 : 99 : case INTEGER_CST:
10492 : 99 : {
10493 : 99 : {
10494 : 99 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10495 : 99 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
10496 : 99 : if (res) return res;
10497 : : }
10498 : 73 : break;
10499 : : }
10500 : : default:;
10501 : : }
10502 : : }
10503 : : break;
10504 : : default:;
10505 : : }
10506 : : break;
10507 : 873928 : default:;
10508 : : }
10509 : 873928 : if (integer_onep (_p0))
10510 : : {
10511 : 531 : {
10512 : 531 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
10513 : 531 : if (INTEGRAL_TYPE_P (type)
10514 : : )
10515 : : {
10516 : 531 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1779;
10517 : 531 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1779;
10518 : 531 : {
10519 : 531 : tree res_op0;
10520 : 531 : {
10521 : 531 : tree _o1[2], _r1;
10522 : 531 : _o1[0] = captures[0];
10523 : 531 : _o1[1] = build_zero_cst (TREE_TYPE (captures[0]));
10524 : 531 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
10525 : 531 : res_op0 = _r1;
10526 : : }
10527 : 531 : tree _r;
10528 : 531 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10529 : 531 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
10530 : 531 : return _r;
10531 : : }
10532 : : next_after_fail1779:;
10533 : : }
10534 : : }
10535 : : }
10536 : 873397 : switch (TREE_CODE (_p1))
10537 : : {
10538 : 11 : case VEC_COND_EXPR:
10539 : 11 : {
10540 : 11 : tree _q30 = TREE_OPERAND (_p1, 0);
10541 : 11 : tree _q31 = TREE_OPERAND (_p1, 1);
10542 : 11 : tree _q32 = TREE_OPERAND (_p1, 2);
10543 : 11 : {
10544 : 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10545 : 11 : if (VECTOR_TYPE_P (type)
10546 : 11 : && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
10547 : : || types_match (type, TREE_TYPE (captures[3]))
10548 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10549 : : || (optimize_vectors_before_lowering_p ()
10550 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10551 : : )
10552 : : {
10553 : 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1780;
10554 : 11 : {
10555 : 11 : if (! tree_invariant_p (captures[0])) goto next_after_fail1780;
10556 : 0 : tree res_op0;
10557 : 0 : res_op0 = captures[2];
10558 : 0 : tree res_op1;
10559 : 0 : {
10560 : 0 : tree _o1[2], _r1;
10561 : 0 : _o1[0] = unshare_expr (captures[0]);
10562 : 0 : _o1[1] = captures[3];
10563 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10564 : 0 : if (EXPR_P (_r1))
10565 : 0 : goto next_after_fail1780;
10566 : 0 : res_op1 = _r1;
10567 : : }
10568 : 0 : tree res_op2;
10569 : 0 : {
10570 : 0 : tree _o1[2], _r1;
10571 : 0 : _o1[0] = captures[0];
10572 : 0 : _o1[1] = captures[4];
10573 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10574 : 0 : if (EXPR_P (_r1))
10575 : 0 : goto next_after_fail1780;
10576 : 0 : res_op2 = _r1;
10577 : : }
10578 : 0 : tree _r;
10579 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10580 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
10581 : 0 : return _r;
10582 : : }
10583 : 11 : next_after_fail1780:;
10584 : : }
10585 : : }
10586 : 11 : break;
10587 : : }
10588 : 873397 : default:;
10589 : : }
10590 : 873397 : switch (TREE_CODE (_p0))
10591 : : {
10592 : 0 : case VEC_PERM_EXPR:
10593 : 0 : {
10594 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10595 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10596 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10597 : 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
10598 : : {
10599 : 0 : switch (TREE_CODE (_p1))
10600 : : {
10601 : 0 : case VEC_PERM_EXPR:
10602 : 0 : {
10603 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10604 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10605 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10606 : 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
10607 : : {
10608 : 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
10609 : : {
10610 : 0 : {
10611 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
10612 : 0 : if (VECTOR_INTEGER_TYPE_P (type)
10613 : : )
10614 : : {
10615 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1781;
10616 : 0 : {
10617 : 0 : tree res_op0;
10618 : 0 : {
10619 : 0 : tree _o1[2], _r1;
10620 : 0 : _o1[0] = captures[0];
10621 : 0 : _o1[1] = captures[2];
10622 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10623 : 0 : captures[3] = _r1;
10624 : : }
10625 : 0 : res_op0 = unshare_expr (captures[3]);
10626 : 0 : tree res_op1;
10627 : 0 : res_op1 = captures[3];
10628 : 0 : tree res_op2;
10629 : 0 : res_op2 = captures[1];
10630 : 0 : tree _r;
10631 : 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
10632 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
10633 : 0 : return _r;
10634 : : }
10635 : 0 : next_after_fail1781:;
10636 : : }
10637 : : }
10638 : : }
10639 : : }
10640 : : break;
10641 : : }
10642 : : default:;
10643 : : }
10644 : : }
10645 : : break;
10646 : : }
10647 : : default:;
10648 : : }
10649 : : return NULL_TREE;
10650 : : }
10651 : :
10652 : : tree
10653 : 355710 : generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10654 : : {
10655 : 355710 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10656 : 355710 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10657 : : {
10658 : 0 : {
10659 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10660 : 0 : tree res = generic_simplify_497 (loc, type, _p0, _p1, captures, MAX_EXPR);
10661 : 0 : if (res) return res;
10662 : : }
10663 : : }
10664 : 355710 : switch (TREE_CODE (_p0))
10665 : : {
10666 : 108 : case MAX_EXPR:
10667 : 108 : {
10668 : 108 : tree _q20 = TREE_OPERAND (_p0, 0);
10669 : 108 : tree _q21 = TREE_OPERAND (_p0, 1);
10670 : 108 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10671 : : {
10672 : 0 : {
10673 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10674 : 0 : tree res = generic_simplify_498 (loc, type, _p0, _p1, captures, MAX_EXPR);
10675 : 0 : if (res) return res;
10676 : : }
10677 : : }
10678 : 108 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10679 : : {
10680 : 0 : {
10681 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10682 : 0 : tree res = generic_simplify_498 (loc, type, _p0, _p1, captures, MAX_EXPR);
10683 : 0 : if (res) return res;
10684 : : }
10685 : : }
10686 : : break;
10687 : : }
10688 : 355710 : default:;
10689 : : }
10690 : 355710 : switch (TREE_CODE (_p1))
10691 : : {
10692 : 0 : case MAX_EXPR:
10693 : 0 : {
10694 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10695 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10696 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10697 : : {
10698 : 0 : {
10699 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
10700 : 0 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, MAX_EXPR);
10701 : 0 : if (res) return res;
10702 : : }
10703 : : }
10704 : 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10705 : : {
10706 : 0 : {
10707 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
10708 : 0 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, MAX_EXPR);
10709 : 0 : if (res) return res;
10710 : : }
10711 : : }
10712 : : break;
10713 : : }
10714 : 355710 : default:;
10715 : : }
10716 : 355710 : switch (TREE_CODE (_p0))
10717 : : {
10718 : 2906 : case MIN_EXPR:
10719 : 2906 : {
10720 : 2906 : tree _q20 = TREE_OPERAND (_p0, 0);
10721 : 2906 : tree _q21 = TREE_OPERAND (_p0, 1);
10722 : 2906 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10723 : : {
10724 : 3 : {
10725 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10726 : 3 : tree res = generic_simplify_508 (loc, type, _p0, _p1, captures);
10727 : 3 : if (res) return res;
10728 : : }
10729 : : }
10730 : 2903 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10731 : : {
10732 : 1 : {
10733 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10734 : 1 : tree res = generic_simplify_508 (loc, type, _p0, _p1, captures);
10735 : 1 : if (res) return res;
10736 : : }
10737 : : }
10738 : : break;
10739 : : }
10740 : 355706 : default:;
10741 : : }
10742 : 355706 : switch (TREE_CODE (_p1))
10743 : : {
10744 : 0 : case MIN_EXPR:
10745 : 0 : {
10746 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10747 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10748 : 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10749 : : {
10750 : 0 : {
10751 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
10752 : 0 : tree res = generic_simplify_508 (loc, type, _p0, _p1, captures);
10753 : 0 : if (res) return res;
10754 : : }
10755 : : }
10756 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10757 : : {
10758 : 0 : {
10759 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
10760 : 0 : tree res = generic_simplify_508 (loc, type, _p0, _p1, captures);
10761 : 0 : if (res) return res;
10762 : : }
10763 : : }
10764 : : break;
10765 : : }
10766 : 0 : case NEGATE_EXPR:
10767 : 0 : {
10768 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10769 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10770 : : {
10771 : 0 : {
10772 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10773 : 0 : tree res = generic_simplify_509 (loc, type, _p0, _p1, captures);
10774 : 0 : if (res) return res;
10775 : : }
10776 : : }
10777 : : break;
10778 : : }
10779 : 355706 : default:;
10780 : : }
10781 : 355706 : switch (TREE_CODE (_p0))
10782 : : {
10783 : 76 : case NEGATE_EXPR:
10784 : 76 : {
10785 : 76 : tree _q20 = TREE_OPERAND (_p0, 0);
10786 : 76 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10787 : : {
10788 : 2 : {
10789 : 2 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10790 : 2 : tree res = generic_simplify_509 (loc, type, _p0, _p1, captures);
10791 : 2 : if (res) return res;
10792 : : }
10793 : : }
10794 : : break;
10795 : : }
10796 : 355704 : default:;
10797 : : }
10798 : 355704 : {
10799 : 355704 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10800 : 355704 : if (INTEGRAL_TYPE_P (type)
10801 : 353782 : && TYPE_MAX_VALUE (type)
10802 : 709486 : && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
10803 : : )
10804 : : {
10805 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1848;
10806 : 0 : {
10807 : 0 : tree _r;
10808 : 0 : _r = captures[1];
10809 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
10810 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10811 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
10812 : 0 : return _r;
10813 : : }
10814 : 0 : next_after_fail1848:;
10815 : : }
10816 : : else
10817 : : {
10818 : 355704 : if (INTEGRAL_TYPE_P (type)
10819 : 353782 : && TYPE_MIN_VALUE (type)
10820 : 709486 : && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
10821 : : )
10822 : : {
10823 : 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1849;
10824 : 11 : {
10825 : 11 : tree _r;
10826 : 11 : _r = captures[0];
10827 : 11 : if (TREE_SIDE_EFFECTS (captures[1]))
10828 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10829 : 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
10830 : 11 : return _r;
10831 : : }
10832 : 0 : next_after_fail1849:;
10833 : : }
10834 : : }
10835 : : }
10836 : 355693 : switch (TREE_CODE (_p1))
10837 : : {
10838 : 107 : case PLUS_EXPR:
10839 : 107 : {
10840 : 107 : tree _q30 = TREE_OPERAND (_p1, 0);
10841 : 107 : tree _q31 = TREE_OPERAND (_p1, 1);
10842 : 107 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10843 : : {
10844 : 0 : switch (TREE_CODE (_q31))
10845 : : {
10846 : 0 : case INTEGER_CST:
10847 : 0 : {
10848 : 0 : {
10849 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
10850 : 0 : if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
10851 : : )
10852 : : {
10853 : 0 : if (tree_int_cst_sgn (captures[2]) > 0
10854 : : )
10855 : : {
10856 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1850;
10857 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1850;
10858 : 0 : {
10859 : 0 : tree _r;
10860 : 0 : _r = captures[1];
10861 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
10862 : 0 : return _r;
10863 : : }
10864 : 0 : next_after_fail1850:;
10865 : : }
10866 : : else
10867 : : {
10868 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1851;
10869 : 0 : {
10870 : 0 : tree _r;
10871 : 0 : _r = captures[0];
10872 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10873 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10874 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
10875 : 0 : return _r;
10876 : : }
10877 : 0 : next_after_fail1851:;
10878 : : }
10879 : : }
10880 : : }
10881 : 0 : break;
10882 : : }
10883 : : default:;
10884 : : }
10885 : : }
10886 : : break;
10887 : : }
10888 : 355693 : default:;
10889 : : }
10890 : 355693 : switch (TREE_CODE (_p0))
10891 : : {
10892 : 22095 : case PLUS_EXPR:
10893 : 22095 : {
10894 : 22095 : tree _q20 = TREE_OPERAND (_p0, 0);
10895 : 22095 : tree _q21 = TREE_OPERAND (_p0, 1);
10896 : 22095 : switch (TREE_CODE (_q21))
10897 : : {
10898 : 22057 : case INTEGER_CST:
10899 : 22057 : {
10900 : 22057 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10901 : : {
10902 : 11 : {
10903 : 11 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
10904 : 11 : if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
10905 : : )
10906 : : {
10907 : 0 : if (tree_int_cst_sgn (captures[2]) > 0
10908 : : )
10909 : : {
10910 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1852;
10911 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1852;
10912 : 0 : {
10913 : 0 : tree _r;
10914 : 0 : _r = captures[1];
10915 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
10916 : 0 : return _r;
10917 : : }
10918 : 11 : next_after_fail1852:;
10919 : : }
10920 : : else
10921 : : {
10922 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1853;
10923 : 0 : {
10924 : 0 : tree _r;
10925 : 0 : _r = captures[0];
10926 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10927 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10928 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
10929 : 0 : return _r;
10930 : : }
10931 : 0 : next_after_fail1853:;
10932 : : }
10933 : : }
10934 : : }
10935 : : }
10936 : : break;
10937 : : }
10938 : : default:;
10939 : : }
10940 : : break;
10941 : : }
10942 : 2902 : case MIN_EXPR:
10943 : 2902 : {
10944 : 2902 : tree _q20 = TREE_OPERAND (_p0, 0);
10945 : 2902 : tree _q21 = TREE_OPERAND (_p0, 1);
10946 : 2902 : switch (TREE_CODE (_p1))
10947 : : {
10948 : 0 : case MAX_EXPR:
10949 : 0 : {
10950 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10951 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10952 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10953 : : {
10954 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10955 : : {
10956 : 0 : {
10957 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10958 : 0 : if (!HONOR_NANS (captures[0])
10959 : : )
10960 : : {
10961 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1854;
10962 : 0 : {
10963 : 0 : tree res_op0;
10964 : 0 : res_op0 = captures[0];
10965 : 0 : tree res_op1;
10966 : 0 : res_op1 = captures[1];
10967 : 0 : tree _r;
10968 : 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10969 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
10970 : 0 : return _r;
10971 : : }
10972 : 0 : next_after_fail1854:;
10973 : : }
10974 : : }
10975 : : }
10976 : : }
10977 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10978 : : {
10979 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10980 : : {
10981 : 0 : {
10982 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10983 : 0 : if (!HONOR_NANS (captures[0])
10984 : : )
10985 : : {
10986 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1855;
10987 : 0 : {
10988 : 0 : tree res_op0;
10989 : 0 : res_op0 = captures[0];
10990 : 0 : tree res_op1;
10991 : 0 : res_op1 = captures[1];
10992 : 0 : tree _r;
10993 : 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10994 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
10995 : 0 : return _r;
10996 : : }
10997 : 0 : next_after_fail1855:;
10998 : : }
10999 : : }
11000 : : }
11001 : : }
11002 : : break;
11003 : : }
11004 : : default:;
11005 : : }
11006 : : break;
11007 : : }
11008 : 108 : case MAX_EXPR:
11009 : 108 : {
11010 : 108 : tree _q20 = TREE_OPERAND (_p0, 0);
11011 : 108 : tree _q21 = TREE_OPERAND (_p0, 1);
11012 : 108 : switch (TREE_CODE (_p1))
11013 : : {
11014 : 0 : case MIN_EXPR:
11015 : 0 : {
11016 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11017 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11018 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11019 : : {
11020 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11021 : : {
11022 : 0 : {
11023 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11024 : 0 : if (!HONOR_NANS (captures[0])
11025 : : )
11026 : : {
11027 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1856;
11028 : 0 : {
11029 : 0 : tree res_op0;
11030 : 0 : res_op0 = captures[0];
11031 : 0 : tree res_op1;
11032 : 0 : res_op1 = captures[1];
11033 : 0 : tree _r;
11034 : 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
11035 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
11036 : 0 : return _r;
11037 : : }
11038 : 0 : next_after_fail1856:;
11039 : : }
11040 : : }
11041 : : }
11042 : : }
11043 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11044 : : {
11045 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11046 : : {
11047 : 0 : {
11048 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11049 : 0 : if (!HONOR_NANS (captures[0])
11050 : : )
11051 : : {
11052 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1857;
11053 : 0 : {
11054 : 0 : tree res_op0;
11055 : 0 : res_op0 = captures[0];
11056 : 0 : tree res_op1;
11057 : 0 : res_op1 = captures[1];
11058 : 0 : tree _r;
11059 : 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
11060 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
11061 : 0 : return _r;
11062 : : }
11063 : 0 : next_after_fail1857:;
11064 : : }
11065 : : }
11066 : : }
11067 : : }
11068 : : break;
11069 : : }
11070 : : default:;
11071 : : }
11072 : : break;
11073 : : }
11074 : 28951 : CASE_CONVERT:
11075 : 28951 : {
11076 : 28951 : tree _q20 = TREE_OPERAND (_p0, 0);
11077 : 28951 : switch (TREE_CODE (_q20))
11078 : : {
11079 : 0 : case ADDR_EXPR:
11080 : 0 : {
11081 : 0 : switch (TREE_CODE (_p1))
11082 : : {
11083 : 0 : CASE_CONVERT:
11084 : 0 : {
11085 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11086 : 0 : switch (TREE_CODE (_q40))
11087 : : {
11088 : 0 : case ADDR_EXPR:
11089 : 0 : {
11090 : 0 : {
11091 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11092 : 0 : tree res = generic_simplify_502 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11093 : 0 : if (res) return res;
11094 : : }
11095 : 0 : break;
11096 : : }
11097 : : default:;
11098 : : }
11099 : : break;
11100 : : }
11101 : 0 : case ADDR_EXPR:
11102 : 0 : {
11103 : 0 : {
11104 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
11105 : 0 : tree res = generic_simplify_503 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11106 : 0 : if (res) return res;
11107 : : }
11108 : 0 : break;
11109 : : }
11110 : : default:;
11111 : : }
11112 : : break;
11113 : : }
11114 : : default:;
11115 : : }
11116 : : break;
11117 : : }
11118 : 10 : case ADDR_EXPR:
11119 : 10 : {
11120 : 10 : switch (TREE_CODE (_p1))
11121 : : {
11122 : 0 : CASE_CONVERT:
11123 : 0 : {
11124 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11125 : 0 : switch (TREE_CODE (_q30))
11126 : : {
11127 : 0 : case ADDR_EXPR:
11128 : 0 : {
11129 : 0 : {
11130 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
11131 : 0 : tree res = generic_simplify_504 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11132 : 0 : if (res) return res;
11133 : : }
11134 : 0 : break;
11135 : : }
11136 : : default:;
11137 : : }
11138 : : break;
11139 : : }
11140 : 10 : case ADDR_EXPR:
11141 : 10 : {
11142 : 10 : {
11143 : 10 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
11144 : 10 : tree res = generic_simplify_505 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11145 : 10 : if (res) return res;
11146 : : }
11147 : 10 : break;
11148 : : }
11149 : : default:;
11150 : : }
11151 : : break;
11152 : : }
11153 : 74 : case NEGATE_EXPR:
11154 : 74 : {
11155 : 74 : tree _q20 = TREE_OPERAND (_p0, 0);
11156 : 74 : switch (TREE_CODE (_p1))
11157 : : {
11158 : 0 : case NEGATE_EXPR:
11159 : 0 : {
11160 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11161 : 0 : {
11162 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11163 : 0 : if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
11164 : 0 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
11165 : 0 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
11166 : : )
11167 : : {
11168 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1858;
11169 : 0 : {
11170 : 0 : tree res_op0;
11171 : 0 : {
11172 : 0 : tree _o1[2], _r1;
11173 : 0 : _o1[0] = captures[1];
11174 : 0 : _o1[1] = captures[3];
11175 : 0 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11176 : 0 : res_op0 = _r1;
11177 : : }
11178 : 0 : tree _r;
11179 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
11180 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1035, __FILE__, __LINE__, true);
11181 : 0 : return _r;
11182 : : }
11183 : 0 : next_after_fail1858:;
11184 : : }
11185 : : }
11186 : 0 : break;
11187 : : }
11188 : : default:;
11189 : : }
11190 : : break;
11191 : : }
11192 : 0 : case BIT_NOT_EXPR:
11193 : 0 : {
11194 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11195 : 0 : switch (TREE_CODE (_p1))
11196 : : {
11197 : 0 : case BIT_NOT_EXPR:
11198 : 0 : {
11199 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11200 : 0 : {
11201 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11202 : 0 : tree res = generic_simplify_506 (loc, type, _p0, _p1, captures, MAX_EXPR, MIN_EXPR);
11203 : 0 : if (res) return res;
11204 : : }
11205 : 0 : break;
11206 : : }
11207 : : default:;
11208 : : }
11209 : : break;
11210 : : }
11211 : 0 : case VEC_COND_EXPR:
11212 : 0 : {
11213 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11214 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11215 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11216 : 0 : switch (TREE_CODE (_p1))
11217 : : {
11218 : 0 : case VEC_COND_EXPR:
11219 : 0 : {
11220 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11221 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11222 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11223 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11224 : : {
11225 : 0 : {
11226 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11227 : 0 : if (VECTOR_TYPE_P (type)
11228 : 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11229 : : || types_match (type, TREE_TYPE (captures[2]))
11230 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11231 : : || (optimize_vectors_before_lowering_p ()
11232 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11233 : : )
11234 : : {
11235 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1859;
11236 : 0 : {
11237 : 0 : tree res_op0;
11238 : 0 : res_op0 = captures[1];
11239 : 0 : tree res_op1;
11240 : 0 : {
11241 : 0 : tree _o1[2], _r1;
11242 : 0 : _o1[0] = captures[2];
11243 : 0 : _o1[1] = captures[5];
11244 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11245 : 0 : if (EXPR_P (_r1))
11246 : 0 : goto next_after_fail1859;
11247 : 0 : res_op1 = _r1;
11248 : : }
11249 : 0 : tree res_op2;
11250 : 0 : {
11251 : 0 : tree _o1[2], _r1;
11252 : 0 : _o1[0] = captures[3];
11253 : 0 : _o1[1] = captures[6];
11254 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11255 : 0 : if (EXPR_P (_r1))
11256 : 0 : goto next_after_fail1859;
11257 : 0 : res_op2 = _r1;
11258 : : }
11259 : 0 : tree _r;
11260 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11261 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
11262 : 0 : return _r;
11263 : : }
11264 : 0 : next_after_fail1859:;
11265 : : }
11266 : : }
11267 : : }
11268 : : break;
11269 : : }
11270 : 0 : default:;
11271 : : }
11272 : 0 : {
11273 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11274 : 0 : if (VECTOR_TYPE_P (type)
11275 : 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11276 : : || types_match (type, TREE_TYPE (captures[2]))
11277 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11278 : : || (optimize_vectors_before_lowering_p ()
11279 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11280 : : )
11281 : : {
11282 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1860;
11283 : 0 : {
11284 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1860;
11285 : 0 : tree res_op0;
11286 : 0 : res_op0 = captures[1];
11287 : 0 : tree res_op1;
11288 : 0 : {
11289 : 0 : tree _o1[2], _r1;
11290 : 0 : _o1[0] = captures[2];
11291 : 0 : _o1[1] = unshare_expr (captures[4]);
11292 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11293 : 0 : if (EXPR_P (_r1))
11294 : 0 : goto next_after_fail1860;
11295 : 0 : res_op1 = _r1;
11296 : : }
11297 : 0 : tree res_op2;
11298 : 0 : {
11299 : 0 : tree _o1[2], _r1;
11300 : 0 : _o1[0] = captures[3];
11301 : 0 : _o1[1] = captures[4];
11302 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11303 : 0 : if (EXPR_P (_r1))
11304 : 0 : goto next_after_fail1860;
11305 : 0 : res_op2 = _r1;
11306 : : }
11307 : 0 : tree _r;
11308 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11309 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
11310 : 0 : return _r;
11311 : : }
11312 : 0 : next_after_fail1860:;
11313 : : }
11314 : : }
11315 : 0 : break;
11316 : : }
11317 : 355693 : default:;
11318 : : }
11319 : 355693 : switch (TREE_CODE (_p1))
11320 : : {
11321 : 0 : case VEC_COND_EXPR:
11322 : 0 : {
11323 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11324 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11325 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11326 : 0 : {
11327 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11328 : 0 : if (VECTOR_TYPE_P (type)
11329 : 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11330 : : || types_match (type, TREE_TYPE (captures[3]))
11331 : : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11332 : : || (optimize_vectors_before_lowering_p ()
11333 : : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11334 : : )
11335 : : {
11336 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1861;
11337 : 0 : {
11338 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1861;
11339 : 0 : tree res_op0;
11340 : 0 : res_op0 = captures[2];
11341 : 0 : tree res_op1;
11342 : 0 : {
11343 : 0 : tree _o1[2], _r1;
11344 : 0 : _o1[0] = unshare_expr (captures[0]);
11345 : 0 : _o1[1] = captures[3];
11346 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11347 : 0 : if (EXPR_P (_r1))
11348 : 0 : goto next_after_fail1861;
11349 : 0 : res_op1 = _r1;
11350 : : }
11351 : 0 : tree res_op2;
11352 : 0 : {
11353 : 0 : tree _o1[2], _r1;
11354 : 0 : _o1[0] = captures[0];
11355 : 0 : _o1[1] = captures[4];
11356 : 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11357 : 0 : if (EXPR_P (_r1))
11358 : 0 : goto next_after_fail1861;
11359 : 0 : res_op2 = _r1;
11360 : : }
11361 : 0 : tree _r;
11362 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11363 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
11364 : 0 : return _r;
11365 : : }
11366 : 0 : next_after_fail1861:;
11367 : : }
11368 : : }
11369 : 0 : break;
11370 : : }
11371 : 355693 : default:;
11372 : : }
11373 : 355693 : if (tree_zero_one_valued_p (_p0))
11374 : : {
11375 : 12 : if (tree_zero_one_valued_p (_p1))
11376 : : {
11377 : 3 : {
11378 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11379 : 3 : tree res = generic_simplify_507 (loc, type, _p0, _p1, captures, MAX_EXPR, BIT_IOR_EXPR);
11380 : 3 : if (res) return res;
11381 : : }
11382 : : }
11383 : : }
11384 : : return NULL_TREE;
11385 : : }
11386 : :
11387 : : tree
11388 : 414435 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11389 : : {
11390 : 414435 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11391 : 414435 : switch (TREE_CODE (_p0))
11392 : : {
11393 : 0 : case VEC_COND_EXPR:
11394 : 0 : {
11395 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11396 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11397 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11398 : 0 : switch (TREE_CODE (_p1))
11399 : : {
11400 : 0 : case VEC_COND_EXPR:
11401 : 0 : {
11402 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11403 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11404 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11405 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11406 : : {
11407 : 0 : {
11408 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11409 : 0 : if (VECTOR_TYPE_P (type)
11410 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11411 : 0 : || types_match (type, TREE_TYPE (captures[2]))
11412 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11413 : : || (optimize_vectors_before_lowering_p ()
11414 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11415 : : )
11416 : : {
11417 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1886;
11418 : 0 : {
11419 : 0 : tree res_op0;
11420 : 0 : res_op0 = captures[1];
11421 : 0 : tree res_op1;
11422 : 0 : {
11423 : 0 : tree _o1[2], _r1;
11424 : 0 : _o1[0] = captures[2];
11425 : 0 : _o1[1] = captures[5];
11426 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11427 : 0 : if (EXPR_P (_r1))
11428 : 0 : goto next_after_fail1886;
11429 : 0 : res_op1 = _r1;
11430 : : }
11431 : 0 : tree res_op2;
11432 : 0 : {
11433 : 0 : tree _o1[2], _r1;
11434 : 0 : _o1[0] = captures[3];
11435 : 0 : _o1[1] = captures[6];
11436 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11437 : 0 : if (EXPR_P (_r1))
11438 : 0 : goto next_after_fail1886;
11439 : 0 : res_op2 = _r1;
11440 : : }
11441 : 0 : tree _r;
11442 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11443 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
11444 : 0 : return _r;
11445 : : }
11446 : 0 : next_after_fail1886:;
11447 : : }
11448 : : }
11449 : : }
11450 : : break;
11451 : : }
11452 : 0 : default:;
11453 : : }
11454 : 0 : {
11455 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11456 : 0 : if (VECTOR_TYPE_P (type)
11457 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11458 : 0 : || types_match (type, TREE_TYPE (captures[2]))
11459 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11460 : : || (optimize_vectors_before_lowering_p ()
11461 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11462 : : )
11463 : : {
11464 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1887;
11465 : 0 : {
11466 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1887;
11467 : 0 : tree res_op0;
11468 : 0 : res_op0 = captures[1];
11469 : 0 : tree res_op1;
11470 : 0 : {
11471 : 0 : tree _o1[2], _r1;
11472 : 0 : _o1[0] = captures[2];
11473 : 0 : _o1[1] = unshare_expr (captures[4]);
11474 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11475 : 0 : if (EXPR_P (_r1))
11476 : 0 : goto next_after_fail1887;
11477 : 0 : res_op1 = _r1;
11478 : : }
11479 : 0 : tree res_op2;
11480 : 0 : {
11481 : 0 : tree _o1[2], _r1;
11482 : 0 : _o1[0] = captures[3];
11483 : 0 : _o1[1] = captures[4];
11484 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11485 : 0 : if (EXPR_P (_r1))
11486 : 0 : goto next_after_fail1887;
11487 : 0 : res_op2 = _r1;
11488 : : }
11489 : 0 : tree _r;
11490 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11491 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
11492 : 0 : return _r;
11493 : : }
11494 : 0 : next_after_fail1887:;
11495 : : }
11496 : : }
11497 : 0 : break;
11498 : : }
11499 : 414435 : default:;
11500 : : }
11501 : 414435 : switch (TREE_CODE (_p1))
11502 : : {
11503 : 0 : case VEC_COND_EXPR:
11504 : 0 : {
11505 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11506 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11507 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11508 : 0 : {
11509 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11510 : 0 : if (VECTOR_TYPE_P (type)
11511 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11512 : 0 : || types_match (type, TREE_TYPE (captures[3]))
11513 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11514 : : || (optimize_vectors_before_lowering_p ()
11515 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11516 : : )
11517 : : {
11518 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1888;
11519 : 0 : {
11520 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1888;
11521 : 0 : tree res_op0;
11522 : 0 : res_op0 = captures[2];
11523 : 0 : tree res_op1;
11524 : 0 : {
11525 : 0 : tree _o1[2], _r1;
11526 : 0 : _o1[0] = unshare_expr (captures[0]);
11527 : 0 : _o1[1] = captures[3];
11528 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11529 : 0 : if (EXPR_P (_r1))
11530 : 0 : goto next_after_fail1888;
11531 : 0 : res_op1 = _r1;
11532 : : }
11533 : 0 : tree res_op2;
11534 : 0 : {
11535 : 0 : tree _o1[2], _r1;
11536 : 0 : _o1[0] = captures[0];
11537 : 0 : _o1[1] = captures[4];
11538 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11539 : 0 : if (EXPR_P (_r1))
11540 : 0 : goto next_after_fail1888;
11541 : 0 : res_op2 = _r1;
11542 : : }
11543 : 0 : tree _r;
11544 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11545 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
11546 : 0 : return _r;
11547 : : }
11548 : 0 : next_after_fail1888:;
11549 : : }
11550 : : }
11551 : 0 : break;
11552 : : }
11553 : 414435 : default:;
11554 : : }
11555 : 414435 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11556 : : {
11557 : 0 : {
11558 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11559 : 0 : tree res = generic_simplify_538 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
11560 : 0 : if (res) return res;
11561 : : }
11562 : : }
11563 : 414435 : switch (TREE_CODE (_p0))
11564 : : {
11565 : 0 : case FLOAT_EXPR:
11566 : 0 : {
11567 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11568 : 0 : switch (TREE_CODE (_p1))
11569 : : {
11570 : 0 : case FLOAT_EXPR:
11571 : 0 : {
11572 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11573 : 0 : {
11574 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11575 : 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
11576 : 0 : if (res) return res;
11577 : : }
11578 : 0 : break;
11579 : : }
11580 : : default:;
11581 : : }
11582 : : break;
11583 : : }
11584 : 0 : case NEGATE_EXPR:
11585 : 0 : {
11586 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11587 : 0 : switch (TREE_CODE (_p1))
11588 : : {
11589 : 0 : case NEGATE_EXPR:
11590 : 0 : {
11591 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11592 : 0 : {
11593 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11594 : 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11595 : 0 : if (res) return res;
11596 : : }
11597 : 0 : break;
11598 : : }
11599 : 0 : default:;
11600 : : }
11601 : 0 : if (CONSTANT_CLASS_P (_p1))
11602 : : {
11603 : 0 : {
11604 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11605 : 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11606 : 0 : if (res) return res;
11607 : : }
11608 : : }
11609 : : break;
11610 : : }
11611 : 414435 : default:;
11612 : : }
11613 : 414435 : switch (TREE_CODE (_p1))
11614 : : {
11615 : 154 : case REAL_CST:
11616 : 154 : {
11617 : 154 : {
11618 : 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11619 : 154 : tree res = generic_simplify_536 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
11620 : 154 : if (res) return res;
11621 : : }
11622 : 152 : break;
11623 : : }
11624 : : default:;
11625 : : }
11626 : : return NULL_TREE;
11627 : : }
11628 : :
11629 : : tree
11630 : 311519 : generic_simplify_VEC_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
11631 : : {
11632 : 311519 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11633 : 311519 : switch (TREE_CODE (_p0))
11634 : : {
11635 : 3462 : case VECTOR_CST:
11636 : 3462 : {
11637 : 3462 : {
11638 : 3462 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11639 : 3462 : if (integer_all_onesp (captures[0])
11640 : : )
11641 : : {
11642 : 480 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1995;
11643 : 480 : {
11644 : 480 : tree _r;
11645 : 480 : _r = captures[1];
11646 : 480 : if (TREE_SIDE_EFFECTS (captures[0]))
11647 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11648 : 480 : if (TREE_SIDE_EFFECTS (captures[2]))
11649 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11650 : 480 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
11651 : 480 : return _r;
11652 : : }
11653 : 0 : next_after_fail1995:;
11654 : : }
11655 : : else
11656 : : {
11657 : 2982 : if (integer_zerop (captures[0])
11658 : : )
11659 : : {
11660 : 1442 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1996;
11661 : 1442 : {
11662 : 1442 : tree _r;
11663 : 1442 : _r = captures[2];
11664 : 1442 : if (TREE_SIDE_EFFECTS (captures[0]))
11665 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11666 : 1442 : if (TREE_SIDE_EFFECTS (captures[1]))
11667 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11668 : 1442 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
11669 : 1442 : return _r;
11670 : : }
11671 : 0 : next_after_fail1996:;
11672 : : }
11673 : : }
11674 : : }
11675 : 1540 : break;
11676 : : }
11677 : 309597 : default:;
11678 : : }
11679 : 309597 : switch (TREE_CODE (_p1))
11680 : : {
11681 : 267564 : case VECTOR_CST:
11682 : 267564 : {
11683 : 267564 : switch (TREE_CODE (_p2))
11684 : : {
11685 : 261945 : case VECTOR_CST:
11686 : 261945 : {
11687 : 261945 : {
11688 : 261945 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11689 : 261945 : if (VECTOR_BOOLEAN_TYPE_P (type)
11690 : 262083 : && types_match (type, TREE_TYPE (captures[0]))
11691 : : )
11692 : : {
11693 : 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11694 : : )
11695 : : {
11696 : 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1997;
11697 : 28 : {
11698 : 28 : tree res_op0;
11699 : 28 : res_op0 = captures[0];
11700 : 28 : tree _r;
11701 : 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11702 : 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11703 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11704 : 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11705 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11706 : 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
11707 : 28 : return _r;
11708 : : }
11709 : 0 : next_after_fail1997:;
11710 : : }
11711 : : else
11712 : : {
11713 : 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11714 : : )
11715 : : {
11716 : 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1998;
11717 : 73 : {
11718 : 73 : tree _r;
11719 : 73 : _r = captures[0];
11720 : 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11721 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11722 : 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11723 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11724 : 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
11725 : 73 : return _r;
11726 : : }
11727 : 0 : next_after_fail1998:;
11728 : : }
11729 : : }
11730 : : }
11731 : : }
11732 : 261844 : break;
11733 : : }
11734 : : default:;
11735 : : }
11736 : : break;
11737 : : }
11738 : 309496 : default:;
11739 : : }
11740 : 309496 : switch (TREE_CODE (_p0))
11741 : : {
11742 : 1221 : case NE_EXPR:
11743 : 1221 : {
11744 : 1221 : tree _q20 = TREE_OPERAND (_p0, 0);
11745 : 1221 : tree _q21 = TREE_OPERAND (_p0, 1);
11746 : 1221 : switch (TREE_CODE (_p1))
11747 : : {
11748 : 6 : case MINUS_EXPR:
11749 : 6 : {
11750 : 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11751 : 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11752 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11753 : : {
11754 : 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11755 : : {
11756 : 6 : if (integer_zerop (_p2))
11757 : : {
11758 : 6 : {
11759 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11760 : 6 : tree res = generic_simplify_521 (loc, type, _p0, _p1, _p2, captures);
11761 : 6 : if (res) return res;
11762 : : }
11763 : : }
11764 : : }
11765 : : }
11766 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11767 : : {
11768 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11769 : : {
11770 : 0 : if (integer_zerop (_p2))
11771 : : {
11772 : 0 : {
11773 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11774 : 0 : tree res = generic_simplify_521 (loc, type, _p0, _p1, _p2, captures);
11775 : 0 : if (res) return res;
11776 : : }
11777 : : }
11778 : : }
11779 : : }
11780 : : break;
11781 : : }
11782 : 6 : case BIT_XOR_EXPR:
11783 : 6 : {
11784 : 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11785 : 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11786 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11787 : : {
11788 : 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11789 : : {
11790 : 6 : if (integer_zerop (_p2))
11791 : : {
11792 : 6 : {
11793 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11794 : 6 : tree res = generic_simplify_522 (loc, type, _p0, _p1, _p2, captures);
11795 : 6 : if (res) return res;
11796 : : }
11797 : : }
11798 : : }
11799 : : }
11800 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11801 : : {
11802 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11803 : : {
11804 : 0 : if (integer_zerop (_p2))
11805 : : {
11806 : 0 : {
11807 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11808 : 0 : tree res = generic_simplify_522 (loc, type, _p0, _p1, _p2, captures);
11809 : 0 : if (res) return res;
11810 : : }
11811 : : }
11812 : : }
11813 : : }
11814 : : break;
11815 : : }
11816 : 6 : case BIT_AND_EXPR:
11817 : 6 : {
11818 : 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11819 : 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11820 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11821 : : {
11822 : 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11823 : : {
11824 : 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11825 : : {
11826 : 6 : {
11827 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11828 : 6 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11829 : 6 : if (res) return res;
11830 : : }
11831 : : }
11832 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11833 : : {
11834 : 0 : {
11835 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11836 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11837 : 0 : if (res) return res;
11838 : : }
11839 : : }
11840 : : }
11841 : : }
11842 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11843 : : {
11844 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11845 : : {
11846 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11847 : : {
11848 : 0 : {
11849 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11850 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11851 : 0 : if (res) return res;
11852 : : }
11853 : : }
11854 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11855 : : {
11856 : 0 : {
11857 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11858 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11859 : 0 : if (res) return res;
11860 : : }
11861 : : }
11862 : : }
11863 : : }
11864 : : break;
11865 : : }
11866 : 6 : case BIT_IOR_EXPR:
11867 : 6 : {
11868 : 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11869 : 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11870 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11871 : : {
11872 : 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11873 : : {
11874 : 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11875 : : {
11876 : 6 : {
11877 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11878 : 6 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11879 : 6 : if (res) return res;
11880 : : }
11881 : : }
11882 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11883 : : {
11884 : 0 : {
11885 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11886 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11887 : 0 : if (res) return res;
11888 : : }
11889 : : }
11890 : : }
11891 : : }
11892 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11893 : : {
11894 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11895 : : {
11896 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11897 : : {
11898 : 0 : {
11899 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11900 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11901 : 0 : if (res) return res;
11902 : : }
11903 : : }
11904 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11905 : : {
11906 : 0 : {
11907 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11908 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11909 : 0 : if (res) return res;
11910 : : }
11911 : : }
11912 : : }
11913 : : }
11914 : : break;
11915 : : }
11916 : 0 : case MIN_EXPR:
11917 : 0 : {
11918 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11919 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11920 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11921 : : {
11922 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11923 : : {
11924 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11925 : : {
11926 : 0 : {
11927 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11928 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11929 : 0 : if (res) return res;
11930 : : }
11931 : : }
11932 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11933 : : {
11934 : 0 : {
11935 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11936 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11937 : 0 : if (res) return res;
11938 : : }
11939 : : }
11940 : : }
11941 : : }
11942 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11943 : : {
11944 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11945 : : {
11946 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11947 : : {
11948 : 0 : {
11949 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11950 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11951 : 0 : if (res) return res;
11952 : : }
11953 : : }
11954 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11955 : : {
11956 : 0 : {
11957 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11958 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11959 : 0 : if (res) return res;
11960 : : }
11961 : : }
11962 : : }
11963 : : }
11964 : : break;
11965 : : }
11966 : 0 : case MAX_EXPR:
11967 : 0 : {
11968 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11969 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11970 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11971 : : {
11972 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11973 : : {
11974 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11975 : : {
11976 : 0 : {
11977 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11978 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11979 : 0 : if (res) return res;
11980 : : }
11981 : : }
11982 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11983 : : {
11984 : 0 : {
11985 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11986 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11987 : 0 : if (res) return res;
11988 : : }
11989 : : }
11990 : : }
11991 : : }
11992 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11993 : : {
11994 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11995 : : {
11996 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11997 : : {
11998 : 0 : {
11999 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12000 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12001 : 0 : if (res) return res;
12002 : : }
12003 : : }
12004 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12005 : : {
12006 : 0 : {
12007 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12008 : 0 : tree res = generic_simplify_523 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12009 : 0 : if (res) return res;
12010 : : }
12011 : : }
12012 : : }
12013 : : }
12014 : : break;
12015 : : }
12016 : 6 : case MULT_EXPR:
12017 : 6 : {
12018 : 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12019 : 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12020 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12021 : : {
12022 : 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12023 : : {
12024 : 6 : switch (TREE_CODE (_p2))
12025 : : {
12026 : 6 : case MULT_EXPR:
12027 : 6 : {
12028 : 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12029 : 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12030 : 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12031 : : {
12032 : 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
12033 : : {
12034 : 6 : {
12035 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12036 : 6 : const enum tree_code op = MULT_EXPR;
12037 : 6 : if (ANY_INTEGRAL_TYPE_P (type)
12038 : : )
12039 : : {
12040 : 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1999;
12041 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1999;
12042 : 6 : {
12043 : 6 : tree _r;
12044 : 6 : _r = captures[2];
12045 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12046 : 6 : return _r;
12047 : : }
12048 : 0 : next_after_fail1999:;
12049 : : }
12050 : : }
12051 : : }
12052 : : }
12053 : : break;
12054 : : }
12055 : : default:;
12056 : : }
12057 : : }
12058 : : }
12059 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12060 : : {
12061 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12062 : : {
12063 : 0 : switch (TREE_CODE (_p2))
12064 : : {
12065 : 0 : case MULT_EXPR:
12066 : 0 : {
12067 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12068 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12069 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12070 : : {
12071 : 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
12072 : : {
12073 : 0 : {
12074 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12075 : 0 : const enum tree_code op = MULT_EXPR;
12076 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
12077 : : )
12078 : : {
12079 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2000;
12080 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2000;
12081 : 0 : {
12082 : 0 : tree _r;
12083 : 0 : _r = captures[2];
12084 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12085 : 0 : return _r;
12086 : : }
12087 : 0 : next_after_fail2000:;
12088 : : }
12089 : : }
12090 : : }
12091 : : }
12092 : : break;
12093 : : }
12094 : : default:;
12095 : : }
12096 : : }
12097 : : }
12098 : : break;
12099 : : }
12100 : 23 : case PLUS_EXPR:
12101 : 23 : {
12102 : 23 : tree _q50 = TREE_OPERAND (_p1, 0);
12103 : 23 : tree _q51 = TREE_OPERAND (_p1, 1);
12104 : 23 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12105 : : {
12106 : 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12107 : : {
12108 : 12 : switch (TREE_CODE (_p2))
12109 : : {
12110 : 6 : case PLUS_EXPR:
12111 : 6 : {
12112 : 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12113 : 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12114 : 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12115 : : {
12116 : 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
12117 : : {
12118 : 6 : {
12119 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12120 : 6 : const enum tree_code op = PLUS_EXPR;
12121 : 6 : if (ANY_INTEGRAL_TYPE_P (type)
12122 : : )
12123 : : {
12124 : 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2001;
12125 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2001;
12126 : 6 : {
12127 : 6 : tree _r;
12128 : 6 : _r = captures[2];
12129 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12130 : 6 : return _r;
12131 : : }
12132 : 0 : next_after_fail2001:;
12133 : : }
12134 : : }
12135 : : }
12136 : : }
12137 : : break;
12138 : : }
12139 : 6 : case MULT_EXPR:
12140 : 6 : {
12141 : 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12142 : 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12143 : 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12144 : : {
12145 : 6 : if (uniform_integer_cst_p (_q81))
12146 : : {
12147 : 6 : {
12148 : 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
12149 : 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12150 : : )
12151 : : {
12152 : 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2002;
12153 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2002;
12154 : 6 : {
12155 : 6 : tree _r;
12156 : 6 : _r = captures[2];
12157 : 6 : if (TREE_SIDE_EFFECTS (captures[3]))
12158 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12159 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
12160 : 6 : return _r;
12161 : : }
12162 : 0 : next_after_fail2002:;
12163 : : }
12164 : : }
12165 : : }
12166 : : }
12167 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12168 : : {
12169 : 0 : if (uniform_integer_cst_p (_q81))
12170 : : {
12171 : 0 : {
12172 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
12173 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12174 : : )
12175 : : {
12176 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2003;
12177 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2003;
12178 : 0 : {
12179 : 0 : tree _r;
12180 : 0 : _r = captures[2];
12181 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12182 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12183 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
12184 : 0 : return _r;
12185 : : }
12186 : 0 : next_after_fail2003:;
12187 : : }
12188 : : }
12189 : : }
12190 : : }
12191 : : break;
12192 : : }
12193 : : default:;
12194 : : }
12195 : : }
12196 : : }
12197 : 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12198 : : {
12199 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12200 : : {
12201 : 0 : switch (TREE_CODE (_p2))
12202 : : {
12203 : 0 : case PLUS_EXPR:
12204 : 0 : {
12205 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12206 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12207 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12208 : : {
12209 : 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
12210 : : {
12211 : 0 : {
12212 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12213 : 0 : const enum tree_code op = PLUS_EXPR;
12214 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
12215 : : )
12216 : : {
12217 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2004;
12218 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2004;
12219 : 0 : {
12220 : 0 : tree _r;
12221 : 0 : _r = captures[2];
12222 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12223 : 0 : return _r;
12224 : : }
12225 : 0 : next_after_fail2004:;
12226 : : }
12227 : : }
12228 : : }
12229 : : }
12230 : : break;
12231 : : }
12232 : 0 : case MULT_EXPR:
12233 : 0 : {
12234 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12235 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12236 : 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12237 : : {
12238 : 0 : if (uniform_integer_cst_p (_q81))
12239 : : {
12240 : 0 : {
12241 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
12242 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12243 : : )
12244 : : {
12245 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2005;
12246 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2005;
12247 : 0 : {
12248 : 0 : tree _r;
12249 : 0 : _r = captures[2];
12250 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12251 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12252 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
12253 : 0 : return _r;
12254 : : }
12255 : 0 : next_after_fail2005:;
12256 : : }
12257 : : }
12258 : : }
12259 : : }
12260 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12261 : : {
12262 : 0 : if (uniform_integer_cst_p (_q81))
12263 : : {
12264 : 0 : {
12265 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
12266 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12267 : : )
12268 : : {
12269 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2006;
12270 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2006;
12271 : 0 : {
12272 : 0 : tree _r;
12273 : 0 : _r = captures[2];
12274 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12275 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12276 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
12277 : 0 : return _r;
12278 : : }
12279 : 0 : next_after_fail2006:;
12280 : : }
12281 : : }
12282 : : }
12283 : : }
12284 : : break;
12285 : : }
12286 : : default:;
12287 : : }
12288 : : }
12289 : : }
12290 : : break;
12291 : : }
12292 : : default:;
12293 : : }
12294 : : break;
12295 : : }
12296 : 309454 : default:;
12297 : : }
12298 : 309454 : switch (TREE_CODE (_p1))
12299 : : {
12300 : 6 : case VEC_COND_EXPR:
12301 : 6 : {
12302 : 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12303 : 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12304 : 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12305 : 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12306 : : {
12307 : 0 : {
12308 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
12309 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2007;
12310 : 0 : {
12311 : 0 : tree res_op0;
12312 : 0 : res_op0 = captures[0];
12313 : 0 : tree res_op1;
12314 : 0 : res_op1 = captures[1];
12315 : 0 : tree res_op2;
12316 : 0 : res_op2 = captures[3];
12317 : 0 : tree _r;
12318 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12319 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12320 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12321 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12322 : 0 : return _r;
12323 : : }
12324 : 0 : next_after_fail2007:;
12325 : : }
12326 : : }
12327 : : break;
12328 : : }
12329 : 309454 : default:;
12330 : : }
12331 : 309454 : switch (TREE_CODE (_p2))
12332 : : {
12333 : 3 : case VEC_COND_EXPR:
12334 : 3 : {
12335 : 3 : tree _q40 = TREE_OPERAND (_p2, 0);
12336 : 3 : tree _q41 = TREE_OPERAND (_p2, 1);
12337 : 3 : tree _q42 = TREE_OPERAND (_p2, 2);
12338 : 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12339 : : {
12340 : 0 : {
12341 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
12342 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2008;
12343 : 0 : {
12344 : 0 : tree res_op0;
12345 : 0 : res_op0 = captures[0];
12346 : 0 : tree res_op1;
12347 : 0 : res_op1 = captures[1];
12348 : 0 : tree res_op2;
12349 : 0 : res_op2 = captures[3];
12350 : 0 : tree _r;
12351 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12352 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12353 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12354 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12355 : 0 : return _r;
12356 : : }
12357 : 0 : next_after_fail2008:;
12358 : : }
12359 : : }
12360 : 3 : {
12361 : 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
12362 : 3 : if (inverse_conditions_p (captures[0], captures[2])
12363 : : )
12364 : : {
12365 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2009;
12366 : 0 : {
12367 : 0 : tree res_op0;
12368 : 0 : res_op0 = captures[0];
12369 : 0 : tree res_op1;
12370 : 0 : res_op1 = captures[1];
12371 : 0 : tree res_op2;
12372 : 0 : res_op2 = captures[3];
12373 : 0 : tree _r;
12374 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12375 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12376 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12377 : 0 : if (TREE_SIDE_EFFECTS (captures[4]))
12378 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
12379 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
12380 : 0 : return _r;
12381 : : }
12382 : 0 : next_after_fail2009:;
12383 : : }
12384 : : }
12385 : 3 : break;
12386 : : }
12387 : 309454 : default:;
12388 : : }
12389 : 309454 : switch (TREE_CODE (_p1))
12390 : : {
12391 : 6 : case VEC_COND_EXPR:
12392 : 6 : {
12393 : 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12394 : 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12395 : 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12396 : 6 : {
12397 : 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
12398 : 6 : if (inverse_conditions_p (captures[0], captures[1])
12399 : : )
12400 : : {
12401 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2010;
12402 : 0 : {
12403 : 0 : tree res_op0;
12404 : 0 : res_op0 = captures[0];
12405 : 0 : tree res_op1;
12406 : 0 : res_op1 = captures[3];
12407 : 0 : tree res_op2;
12408 : 0 : res_op2 = captures[4];
12409 : 0 : tree _r;
12410 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12411 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
12412 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12413 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12414 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12415 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
12416 : 0 : return _r;
12417 : : }
12418 : 0 : next_after_fail2010:;
12419 : : }
12420 : : }
12421 : 6 : break;
12422 : : }
12423 : 309454 : default:;
12424 : : }
12425 : 309454 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
12426 : : {
12427 : 33 : {
12428 : 33 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12429 : 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2011;
12430 : 33 : {
12431 : 33 : tree _r;
12432 : 33 : _r = captures[1];
12433 : 33 : if (TREE_SIDE_EFFECTS (captures[0]))
12434 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12435 : 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12436 : 33 : return _r;
12437 : : }
12438 : 0 : next_after_fail2011:;
12439 : : }
12440 : : }
12441 : 309421 : switch (TREE_CODE (_p0))
12442 : : {
12443 : 64420 : case EQ_EXPR:
12444 : 64420 : {
12445 : 64420 : tree _q20 = TREE_OPERAND (_p0, 0);
12446 : 64420 : tree _q21 = TREE_OPERAND (_p0, 1);
12447 : 64420 : if (zerop (_q21))
12448 : : {
12449 : 573 : switch (TREE_CODE (_p2))
12450 : : {
12451 : 0 : case NEGATE_EXPR:
12452 : 0 : {
12453 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12454 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12455 : : {
12456 : 0 : {
12457 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12458 : 0 : const enum tree_code cmp = EQ_EXPR;
12459 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12460 : 0 : && bitwise_equal_p (captures[0], captures[1])
12461 : : )
12462 : : {
12463 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2012;
12464 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2012;
12465 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2012;
12466 : 0 : {
12467 : 0 : tree _r;
12468 : 0 : _r = captures[2];
12469 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12470 : 0 : return _r;
12471 : : }
12472 : 0 : next_after_fail2012:;
12473 : : }
12474 : : }
12475 : : }
12476 : : break;
12477 : : }
12478 : 573 : default:;
12479 : : }
12480 : 573 : if (zerop (_p1))
12481 : : {
12482 : 18 : switch (TREE_CODE (_p2))
12483 : : {
12484 : 0 : case NEGATE_EXPR:
12485 : 0 : {
12486 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12487 : 0 : {
12488 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12489 : 0 : const enum tree_code cmp = EQ_EXPR;
12490 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12491 : 0 : && bitwise_equal_p (captures[0], captures[2])
12492 : : )
12493 : : {
12494 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2013;
12495 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2013;
12496 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2013;
12497 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2013;
12498 : 0 : {
12499 : 0 : tree _r;
12500 : 0 : _r = captures[1];
12501 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12502 : 0 : return _r;
12503 : : }
12504 : 0 : next_after_fail2013:;
12505 : : }
12506 : : }
12507 : 0 : break;
12508 : : }
12509 : : default:;
12510 : : }
12511 : : }
12512 : : }
12513 : 64420 : switch (TREE_CODE (_q20))
12514 : : {
12515 : 0 : case MINUS_EXPR:
12516 : 0 : {
12517 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12518 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12519 : 0 : if (zerop (_q21))
12520 : : {
12521 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12522 : : {
12523 : 0 : switch (TREE_CODE (_p2))
12524 : : {
12525 : 0 : case MINUS_EXPR:
12526 : 0 : {
12527 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12528 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12529 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12530 : : {
12531 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12532 : : {
12533 : 0 : {
12534 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12535 : 0 : const enum tree_code cmp = EQ_EXPR;
12536 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12537 : : )
12538 : : {
12539 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2014;
12540 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2014;
12541 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2014;
12542 : 0 : {
12543 : 0 : tree _r;
12544 : 0 : _r = captures[3];
12545 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12546 : 0 : return _r;
12547 : : }
12548 : 0 : next_after_fail2014:;
12549 : : }
12550 : : }
12551 : : }
12552 : : }
12553 : : break;
12554 : : }
12555 : : default:;
12556 : : }
12557 : : }
12558 : : }
12559 : 0 : if (integer_zerop (_q21))
12560 : : {
12561 : 0 : if (integer_zerop (_p1))
12562 : : {
12563 : 0 : switch (TREE_CODE (_p2))
12564 : : {
12565 : 0 : case MINUS_EXPR:
12566 : 0 : {
12567 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12568 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12569 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12570 : : {
12571 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12572 : : {
12573 : 0 : {
12574 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12575 : 0 : tree res = generic_simplify_524 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12576 : 0 : if (res) return res;
12577 : : }
12578 : : }
12579 : : }
12580 : : break;
12581 : : }
12582 : : default:;
12583 : : }
12584 : : }
12585 : : }
12586 : : break;
12587 : : }
12588 : : default:;
12589 : : }
12590 : : break;
12591 : : }
12592 : 0 : case UNEQ_EXPR:
12593 : 0 : {
12594 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12595 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12596 : 0 : if (zerop (_q21))
12597 : : {
12598 : 0 : switch (TREE_CODE (_p2))
12599 : : {
12600 : 0 : case NEGATE_EXPR:
12601 : 0 : {
12602 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12603 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12604 : : {
12605 : 0 : {
12606 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12607 : 0 : const enum tree_code cmp = UNEQ_EXPR;
12608 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12609 : 0 : && bitwise_equal_p (captures[0], captures[1])
12610 : : )
12611 : : {
12612 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2015;
12613 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2015;
12614 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2015;
12615 : 0 : {
12616 : 0 : tree _r;
12617 : 0 : _r = captures[2];
12618 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12619 : 0 : return _r;
12620 : : }
12621 : 0 : next_after_fail2015:;
12622 : : }
12623 : : }
12624 : : }
12625 : : break;
12626 : : }
12627 : 0 : default:;
12628 : : }
12629 : 0 : if (zerop (_p1))
12630 : : {
12631 : 0 : switch (TREE_CODE (_p2))
12632 : : {
12633 : 0 : case NEGATE_EXPR:
12634 : 0 : {
12635 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12636 : 0 : {
12637 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12638 : 0 : const enum tree_code cmp = UNEQ_EXPR;
12639 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12640 : 0 : && bitwise_equal_p (captures[0], captures[2])
12641 : : )
12642 : : {
12643 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2016;
12644 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2016;
12645 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2016;
12646 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2016;
12647 : 0 : {
12648 : 0 : tree _r;
12649 : 0 : _r = captures[1];
12650 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12651 : 0 : return _r;
12652 : : }
12653 : 0 : next_after_fail2016:;
12654 : : }
12655 : : }
12656 : 0 : break;
12657 : : }
12658 : : default:;
12659 : : }
12660 : : }
12661 : : }
12662 : 0 : switch (TREE_CODE (_q20))
12663 : : {
12664 : 0 : case MINUS_EXPR:
12665 : 0 : {
12666 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12667 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12668 : 0 : if (zerop (_q21))
12669 : : {
12670 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12671 : : {
12672 : 0 : switch (TREE_CODE (_p2))
12673 : : {
12674 : 0 : case MINUS_EXPR:
12675 : 0 : {
12676 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12677 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12678 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12679 : : {
12680 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12681 : : {
12682 : 0 : {
12683 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12684 : 0 : const enum tree_code cmp = UNEQ_EXPR;
12685 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12686 : : )
12687 : : {
12688 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2017;
12689 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2017;
12690 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2017;
12691 : 0 : {
12692 : 0 : tree _r;
12693 : 0 : _r = captures[3];
12694 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12695 : 0 : return _r;
12696 : : }
12697 : 0 : next_after_fail2017:;
12698 : : }
12699 : : }
12700 : : }
12701 : : }
12702 : : break;
12703 : : }
12704 : : default:;
12705 : : }
12706 : : }
12707 : : }
12708 : 0 : if (integer_zerop (_q21))
12709 : : {
12710 : 0 : if (integer_zerop (_p1))
12711 : : {
12712 : 0 : switch (TREE_CODE (_p2))
12713 : : {
12714 : 0 : case MINUS_EXPR:
12715 : 0 : {
12716 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12717 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12718 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12719 : : {
12720 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12721 : : {
12722 : 0 : {
12723 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12724 : 0 : tree res = generic_simplify_524 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12725 : 0 : if (res) return res;
12726 : : }
12727 : : }
12728 : : }
12729 : : break;
12730 : : }
12731 : : default:;
12732 : : }
12733 : : }
12734 : : }
12735 : : break;
12736 : : }
12737 : : default:;
12738 : : }
12739 : : break;
12740 : : }
12741 : 1179 : case NE_EXPR:
12742 : 1179 : {
12743 : 1179 : tree _q20 = TREE_OPERAND (_p0, 0);
12744 : 1179 : tree _q21 = TREE_OPERAND (_p0, 1);
12745 : 1179 : if (zerop (_q21))
12746 : : {
12747 : 270 : switch (TREE_CODE (_p2))
12748 : : {
12749 : 0 : case NEGATE_EXPR:
12750 : 0 : {
12751 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12752 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12753 : : {
12754 : 0 : {
12755 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12756 : 0 : const enum tree_code cmp = NE_EXPR;
12757 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12758 : 0 : && bitwise_equal_p (captures[0], captures[1])
12759 : : )
12760 : : {
12761 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2018;
12762 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2018;
12763 : 0 : {
12764 : 0 : tree _r;
12765 : 0 : _r = captures[1];
12766 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12767 : 0 : return _r;
12768 : : }
12769 : 0 : next_after_fail2018:;
12770 : : }
12771 : : }
12772 : : }
12773 : : break;
12774 : : }
12775 : 270 : default:;
12776 : : }
12777 : 270 : if (integer_zerop (_p2))
12778 : : {
12779 : 170 : {
12780 : 170 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12781 : 170 : const enum tree_code cmp = NE_EXPR;
12782 : 170 : if (!HONOR_SIGNED_ZEROS (type)
12783 : 170 : && bitwise_equal_p (captures[0], captures[1])
12784 : : )
12785 : : {
12786 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2019;
12787 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2019;
12788 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2019;
12789 : 0 : {
12790 : 0 : tree _r;
12791 : 0 : _r = captures[1];
12792 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12793 : 0 : return _r;
12794 : : }
12795 : 170 : next_after_fail2019:;
12796 : : }
12797 : : }
12798 : : }
12799 : : }
12800 : 1179 : switch (TREE_CODE (_q20))
12801 : : {
12802 : 40 : case MINUS_EXPR:
12803 : 40 : {
12804 : 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12805 : 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12806 : 40 : if (zerop (_q21))
12807 : : {
12808 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12809 : : {
12810 : 0 : switch (TREE_CODE (_p2))
12811 : : {
12812 : 0 : case MINUS_EXPR:
12813 : 0 : {
12814 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12815 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12816 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12817 : : {
12818 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12819 : : {
12820 : 0 : {
12821 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12822 : 0 : const enum tree_code cmp = NE_EXPR;
12823 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12824 : : )
12825 : : {
12826 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2020;
12827 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2020;
12828 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2020;
12829 : 0 : {
12830 : 0 : tree _r;
12831 : 0 : _r = captures[0];
12832 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12833 : 0 : return _r;
12834 : : }
12835 : 0 : next_after_fail2020:;
12836 : : }
12837 : : }
12838 : : }
12839 : : }
12840 : : break;
12841 : : }
12842 : : default:;
12843 : : }
12844 : : }
12845 : : }
12846 : 40 : if (integer_zerop (_q21))
12847 : : {
12848 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12849 : : {
12850 : 0 : if (integer_zerop (_p2))
12851 : : {
12852 : 0 : {
12853 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12854 : 0 : tree res = generic_simplify_525 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12855 : 0 : if (res) return res;
12856 : : }
12857 : : }
12858 : : }
12859 : : }
12860 : : break;
12861 : : }
12862 : : default:;
12863 : : }
12864 : : break;
12865 : : }
12866 : 0 : case LTGT_EXPR:
12867 : 0 : {
12868 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12869 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12870 : 0 : if (zerop (_q21))
12871 : : {
12872 : 0 : switch (TREE_CODE (_p2))
12873 : : {
12874 : 0 : case NEGATE_EXPR:
12875 : 0 : {
12876 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12877 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12878 : : {
12879 : 0 : {
12880 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12881 : 0 : const enum tree_code cmp = LTGT_EXPR;
12882 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12883 : 0 : && bitwise_equal_p (captures[0], captures[1])
12884 : : )
12885 : : {
12886 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2021;
12887 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2021;
12888 : 0 : {
12889 : 0 : tree _r;
12890 : 0 : _r = captures[1];
12891 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12892 : 0 : return _r;
12893 : : }
12894 : 0 : next_after_fail2021:;
12895 : : }
12896 : : }
12897 : : }
12898 : : break;
12899 : : }
12900 : 0 : default:;
12901 : : }
12902 : 0 : if (integer_zerop (_p2))
12903 : : {
12904 : 0 : {
12905 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12906 : 0 : const enum tree_code cmp = LTGT_EXPR;
12907 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12908 : 0 : && bitwise_equal_p (captures[0], captures[1])
12909 : : )
12910 : : {
12911 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2022;
12912 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2022;
12913 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2022;
12914 : 0 : {
12915 : 0 : tree _r;
12916 : 0 : _r = captures[1];
12917 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12918 : 0 : return _r;
12919 : : }
12920 : 0 : next_after_fail2022:;
12921 : : }
12922 : : }
12923 : : }
12924 : : }
12925 : 0 : switch (TREE_CODE (_q20))
12926 : : {
12927 : 0 : case MINUS_EXPR:
12928 : 0 : {
12929 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12930 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12931 : 0 : if (zerop (_q21))
12932 : : {
12933 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12934 : : {
12935 : 0 : switch (TREE_CODE (_p2))
12936 : : {
12937 : 0 : case MINUS_EXPR:
12938 : 0 : {
12939 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12940 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12941 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12942 : : {
12943 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12944 : : {
12945 : 0 : {
12946 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12947 : 0 : const enum tree_code cmp = LTGT_EXPR;
12948 : 0 : if (!HONOR_SIGNED_ZEROS (type)
12949 : : )
12950 : : {
12951 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2023;
12952 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2023;
12953 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2023;
12954 : 0 : {
12955 : 0 : tree _r;
12956 : 0 : _r = captures[0];
12957 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12958 : 0 : return _r;
12959 : : }
12960 : 0 : next_after_fail2023:;
12961 : : }
12962 : : }
12963 : : }
12964 : : }
12965 : : break;
12966 : : }
12967 : : default:;
12968 : : }
12969 : : }
12970 : : }
12971 : 0 : if (integer_zerop (_q21))
12972 : : {
12973 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12974 : : {
12975 : 0 : if (integer_zerop (_p2))
12976 : : {
12977 : 0 : {
12978 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12979 : 0 : tree res = generic_simplify_525 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12980 : 0 : if (res) return res;
12981 : : }
12982 : : }
12983 : : }
12984 : : }
12985 : : break;
12986 : : }
12987 : : default:;
12988 : : }
12989 : : break;
12990 : : }
12991 : 1179 : case GE_EXPR:
12992 : 1179 : {
12993 : 1179 : tree _q20 = TREE_OPERAND (_p0, 0);
12994 : 1179 : tree _q21 = TREE_OPERAND (_p0, 1);
12995 : 1179 : switch (TREE_CODE (_q20))
12996 : : {
12997 : 3 : CASE_CONVERT:
12998 : 3 : {
12999 : 3 : tree _q30 = TREE_OPERAND (_q20, 0);
13000 : 3 : if (zerop (_q21))
13001 : : {
13002 : 0 : switch (TREE_CODE (_p2))
13003 : : {
13004 : 0 : case NEGATE_EXPR:
13005 : 0 : {
13006 : 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13007 : 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13008 : : {
13009 : 0 : {
13010 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13011 : 0 : const enum tree_code cmp = GE_EXPR;
13012 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13013 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13014 : 0 : && element_precision (captures[1])
13015 : 0 : <= element_precision (captures[0])
13016 : 0 : && bitwise_equal_p (captures[1], captures[2])
13017 : : )
13018 : : {
13019 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13020 : : )
13021 : : {
13022 : 0 : {
13023 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13024 : 0 : if (types_match (captures[0], stype)
13025 : : )
13026 : : {
13027 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2024;
13028 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2024;
13029 : 0 : {
13030 : 0 : tree res_op0;
13031 : 0 : res_op0 = captures[0];
13032 : 0 : tree _r;
13033 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13034 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13035 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13036 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13037 : 0 : return _r;
13038 : : }
13039 : 0 : next_after_fail2024:;
13040 : : }
13041 : : else
13042 : : {
13043 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2025;
13044 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2025;
13045 : 0 : {
13046 : 0 : tree res_op0;
13047 : 0 : {
13048 : 0 : tree _o1[1], _r1;
13049 : 0 : _o1[0] = captures[2];
13050 : 0 : if (TREE_TYPE (_o1[0]) != stype)
13051 : : {
13052 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13053 : : }
13054 : : else
13055 : : _r1 = _o1[0];
13056 : 0 : res_op0 = _r1;
13057 : : }
13058 : 0 : tree _r;
13059 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13060 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13061 : 0 : return _r;
13062 : : }
13063 : 0 : next_after_fail2025:;
13064 : : }
13065 : : }
13066 : : }
13067 : : else
13068 : : {
13069 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2026;
13070 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2026;
13071 : 0 : {
13072 : 0 : tree res_op0;
13073 : 0 : res_op0 = captures[2];
13074 : 0 : tree _r;
13075 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13076 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13077 : 0 : return _r;
13078 : : }
13079 : 0 : next_after_fail2026:;
13080 : : }
13081 : : }
13082 : : }
13083 : : }
13084 : : break;
13085 : : }
13086 : : default:;
13087 : : }
13088 : : }
13089 : : break;
13090 : : }
13091 : 1179 : default:;
13092 : : }
13093 : 1179 : if (zerop (_q21))
13094 : : {
13095 : 334 : switch (TREE_CODE (_p2))
13096 : : {
13097 : 3 : case NEGATE_EXPR:
13098 : 3 : {
13099 : 3 : tree _q60 = TREE_OPERAND (_p2, 0);
13100 : 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13101 : : {
13102 : 3 : {
13103 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13104 : 3 : const enum tree_code cmp = GE_EXPR;
13105 : 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13106 : 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13107 : 6 : && element_precision (captures[1])
13108 : 3 : <= element_precision (captures[0])
13109 : 6 : && bitwise_equal_p (captures[1], captures[2])
13110 : : )
13111 : : {
13112 : 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13113 : : )
13114 : : {
13115 : 0 : {
13116 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13117 : 0 : if (types_match (captures[0], stype)
13118 : : )
13119 : : {
13120 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2027;
13121 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2027;
13122 : 0 : {
13123 : 0 : tree res_op0;
13124 : 0 : res_op0 = captures[0];
13125 : 0 : tree _r;
13126 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13127 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13128 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13129 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13130 : 0 : return _r;
13131 : : }
13132 : 0 : next_after_fail2027:;
13133 : : }
13134 : : else
13135 : : {
13136 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2028;
13137 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2028;
13138 : 0 : {
13139 : 0 : tree res_op0;
13140 : 0 : {
13141 : 0 : tree _o1[1], _r1;
13142 : 0 : _o1[0] = captures[2];
13143 : 0 : if (TREE_TYPE (_o1[0]) != stype)
13144 : : {
13145 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13146 : : }
13147 : : else
13148 : : _r1 = _o1[0];
13149 : 0 : res_op0 = _r1;
13150 : : }
13151 : 0 : tree _r;
13152 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13153 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13154 : 0 : return _r;
13155 : : }
13156 : 0 : next_after_fail2028:;
13157 : : }
13158 : : }
13159 : : }
13160 : : else
13161 : : {
13162 : 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2029;
13163 : 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2029;
13164 : 3 : {
13165 : 3 : tree res_op0;
13166 : 3 : res_op0 = captures[2];
13167 : 3 : tree _r;
13168 : 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13169 : 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13170 : 3 : return _r;
13171 : : }
13172 : 0 : next_after_fail2029:;
13173 : : }
13174 : : }
13175 : : }
13176 : : }
13177 : : break;
13178 : : }
13179 : : default:;
13180 : : }
13181 : : }
13182 : 1176 : switch (TREE_CODE (_q20))
13183 : : {
13184 : 0 : case MINUS_EXPR:
13185 : 0 : {
13186 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13187 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13188 : 0 : if (zerop (_q21))
13189 : : {
13190 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13191 : : {
13192 : 0 : switch (TREE_CODE (_p2))
13193 : : {
13194 : 0 : case MINUS_EXPR:
13195 : 0 : {
13196 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13197 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13198 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13199 : : {
13200 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13201 : : {
13202 : 0 : {
13203 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13204 : 0 : const enum tree_code cmp = GE_EXPR;
13205 : 0 : if (!HONOR_SIGNED_ZEROS (type)
13206 : 0 : && !TYPE_UNSIGNED (type)
13207 : : )
13208 : : {
13209 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2030;
13210 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2030;
13211 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2030;
13212 : 0 : {
13213 : 0 : tree res_op0;
13214 : 0 : res_op0 = captures[0];
13215 : 0 : tree _r;
13216 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13217 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13218 : 0 : return _r;
13219 : : }
13220 : 0 : next_after_fail2030:;
13221 : : }
13222 : : }
13223 : : }
13224 : : }
13225 : : break;
13226 : : }
13227 : : default:;
13228 : : }
13229 : : }
13230 : : }
13231 : : break;
13232 : : }
13233 : : default:;
13234 : : }
13235 : : break;
13236 : : }
13237 : 64362 : case GT_EXPR:
13238 : 64362 : {
13239 : 64362 : tree _q20 = TREE_OPERAND (_p0, 0);
13240 : 64362 : tree _q21 = TREE_OPERAND (_p0, 1);
13241 : 64362 : switch (TREE_CODE (_q20))
13242 : : {
13243 : 13 : CASE_CONVERT:
13244 : 13 : {
13245 : 13 : tree _q30 = TREE_OPERAND (_q20, 0);
13246 : 13 : if (zerop (_q21))
13247 : : {
13248 : 1 : switch (TREE_CODE (_p2))
13249 : : {
13250 : 0 : case NEGATE_EXPR:
13251 : 0 : {
13252 : 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13253 : 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13254 : : {
13255 : 0 : {
13256 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13257 : 0 : const enum tree_code cmp = GT_EXPR;
13258 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13259 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13260 : 0 : && element_precision (captures[1])
13261 : 0 : <= element_precision (captures[0])
13262 : 0 : && bitwise_equal_p (captures[1], captures[2])
13263 : : )
13264 : : {
13265 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13266 : : )
13267 : : {
13268 : 0 : {
13269 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13270 : 0 : if (types_match (captures[0], stype)
13271 : : )
13272 : : {
13273 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2031;
13274 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2031;
13275 : 0 : {
13276 : 0 : tree res_op0;
13277 : 0 : res_op0 = captures[0];
13278 : 0 : tree _r;
13279 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13280 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13281 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13282 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13283 : 0 : return _r;
13284 : : }
13285 : 0 : next_after_fail2031:;
13286 : : }
13287 : : else
13288 : : {
13289 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2032;
13290 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2032;
13291 : 0 : {
13292 : 0 : tree res_op0;
13293 : 0 : {
13294 : 0 : tree _o1[1], _r1;
13295 : 0 : _o1[0] = captures[2];
13296 : 0 : if (TREE_TYPE (_o1[0]) != stype)
13297 : : {
13298 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13299 : : }
13300 : : else
13301 : : _r1 = _o1[0];
13302 : 0 : res_op0 = _r1;
13303 : : }
13304 : 0 : tree _r;
13305 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13306 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13307 : 0 : return _r;
13308 : : }
13309 : 0 : next_after_fail2032:;
13310 : : }
13311 : : }
13312 : : }
13313 : : else
13314 : : {
13315 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2033;
13316 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2033;
13317 : 0 : {
13318 : 0 : tree res_op0;
13319 : 0 : res_op0 = captures[2];
13320 : 0 : tree _r;
13321 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13322 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13323 : 0 : return _r;
13324 : : }
13325 : 0 : next_after_fail2033:;
13326 : : }
13327 : : }
13328 : : }
13329 : : }
13330 : : break;
13331 : : }
13332 : : default:;
13333 : : }
13334 : : }
13335 : : break;
13336 : : }
13337 : 64362 : default:;
13338 : : }
13339 : 64362 : if (zerop (_q21))
13340 : : {
13341 : 78 : switch (TREE_CODE (_p2))
13342 : : {
13343 : 3 : case NEGATE_EXPR:
13344 : 3 : {
13345 : 3 : tree _q60 = TREE_OPERAND (_p2, 0);
13346 : 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13347 : : {
13348 : 3 : {
13349 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13350 : 3 : const enum tree_code cmp = GT_EXPR;
13351 : 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13352 : 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13353 : 6 : && element_precision (captures[1])
13354 : 3 : <= element_precision (captures[0])
13355 : 6 : && bitwise_equal_p (captures[1], captures[2])
13356 : : )
13357 : : {
13358 : 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13359 : : )
13360 : : {
13361 : 0 : {
13362 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13363 : 0 : if (types_match (captures[0], stype)
13364 : : )
13365 : : {
13366 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2034;
13367 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2034;
13368 : 0 : {
13369 : 0 : tree res_op0;
13370 : 0 : res_op0 = captures[0];
13371 : 0 : tree _r;
13372 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13373 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13374 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13375 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13376 : 0 : return _r;
13377 : : }
13378 : 0 : next_after_fail2034:;
13379 : : }
13380 : : else
13381 : : {
13382 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2035;
13383 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2035;
13384 : 0 : {
13385 : 0 : tree res_op0;
13386 : 0 : {
13387 : 0 : tree _o1[1], _r1;
13388 : 0 : _o1[0] = captures[2];
13389 : 0 : if (TREE_TYPE (_o1[0]) != stype)
13390 : : {
13391 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13392 : : }
13393 : : else
13394 : : _r1 = _o1[0];
13395 : 0 : res_op0 = _r1;
13396 : : }
13397 : 0 : tree _r;
13398 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13399 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13400 : 0 : return _r;
13401 : : }
13402 : 0 : next_after_fail2035:;
13403 : : }
13404 : : }
13405 : : }
13406 : : else
13407 : : {
13408 : 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2036;
13409 : 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2036;
13410 : 3 : {
13411 : 3 : tree res_op0;
13412 : 3 : res_op0 = captures[2];
13413 : 3 : tree _r;
13414 : 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13415 : 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13416 : 3 : return _r;
13417 : : }
13418 : 0 : next_after_fail2036:;
13419 : : }
13420 : : }
13421 : : }
13422 : : }
13423 : : break;
13424 : : }
13425 : : default:;
13426 : : }
13427 : : }
13428 : 64359 : switch (TREE_CODE (_q20))
13429 : : {
13430 : 0 : case MINUS_EXPR:
13431 : 0 : {
13432 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13433 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13434 : 0 : if (zerop (_q21))
13435 : : {
13436 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13437 : : {
13438 : 0 : switch (TREE_CODE (_p2))
13439 : : {
13440 : 0 : case MINUS_EXPR:
13441 : 0 : {
13442 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13443 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13444 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13445 : : {
13446 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13447 : : {
13448 : 0 : {
13449 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13450 : 0 : const enum tree_code cmp = GT_EXPR;
13451 : 0 : if (!HONOR_SIGNED_ZEROS (type)
13452 : 0 : && !TYPE_UNSIGNED (type)
13453 : : )
13454 : : {
13455 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2037;
13456 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2037;
13457 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2037;
13458 : 0 : {
13459 : 0 : tree res_op0;
13460 : 0 : res_op0 = captures[0];
13461 : 0 : tree _r;
13462 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13463 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13464 : 0 : return _r;
13465 : : }
13466 : 0 : next_after_fail2037:;
13467 : : }
13468 : : }
13469 : : }
13470 : : }
13471 : : break;
13472 : : }
13473 : : default:;
13474 : : }
13475 : : }
13476 : : }
13477 : : break;
13478 : : }
13479 : : default:;
13480 : : }
13481 : : break;
13482 : : }
13483 : 897 : case LE_EXPR:
13484 : 897 : {
13485 : 897 : tree _q20 = TREE_OPERAND (_p0, 0);
13486 : 897 : tree _q21 = TREE_OPERAND (_p0, 1);
13487 : 897 : switch (TREE_CODE (_q20))
13488 : : {
13489 : 0 : CASE_CONVERT:
13490 : 0 : {
13491 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13492 : 0 : if (zerop (_q21))
13493 : : {
13494 : 0 : switch (TREE_CODE (_p2))
13495 : : {
13496 : 0 : case NEGATE_EXPR:
13497 : 0 : {
13498 : 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13499 : 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13500 : : {
13501 : 0 : {
13502 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13503 : 0 : const enum tree_code cmp = LE_EXPR;
13504 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13505 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13506 : 0 : && element_precision (captures[1])
13507 : 0 : <= element_precision (captures[0])
13508 : 0 : && bitwise_equal_p (captures[1], captures[2])
13509 : : )
13510 : : {
13511 : 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13512 : 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13513 : 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13514 : : )
13515 : : {
13516 : 0 : {
13517 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13518 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13519 : 0 : if (types_match (captures[0], stype)
13520 : : )
13521 : : {
13522 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2038;
13523 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2038;
13524 : 0 : {
13525 : 0 : tree res_op0;
13526 : 0 : {
13527 : 0 : tree _o1[1], _r1;
13528 : 0 : {
13529 : 0 : tree _o2[1], _r2;
13530 : 0 : _o2[0] = captures[0];
13531 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13532 : 0 : _o1[0] = _r2;
13533 : : }
13534 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13535 : 0 : res_op0 = _r1;
13536 : : }
13537 : 0 : tree _r;
13538 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13539 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13540 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13541 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13542 : 0 : return _r;
13543 : : }
13544 : 0 : next_after_fail2038:;
13545 : : }
13546 : : else
13547 : : {
13548 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2039;
13549 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2039;
13550 : 0 : {
13551 : 0 : tree res_op0;
13552 : 0 : {
13553 : 0 : tree _o1[1], _r1;
13554 : 0 : {
13555 : 0 : tree _o2[1], _r2;
13556 : 0 : {
13557 : 0 : tree _o3[1], _r3;
13558 : 0 : _o3[0] = captures[2];
13559 : 0 : if (TREE_TYPE (_o3[0]) != stype)
13560 : : {
13561 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13562 : : }
13563 : : else
13564 : : _r3 = _o3[0];
13565 : 0 : _o2[0] = _r3;
13566 : : }
13567 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13568 : 0 : _o1[0] = _r2;
13569 : : }
13570 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13571 : 0 : res_op0 = _r1;
13572 : : }
13573 : 0 : tree _r;
13574 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13575 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13576 : 0 : return _r;
13577 : : }
13578 : 0 : next_after_fail2039:;
13579 : : }
13580 : : }
13581 : : }
13582 : : else
13583 : : {
13584 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2040;
13585 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2040;
13586 : 0 : {
13587 : 0 : tree res_op0;
13588 : 0 : {
13589 : 0 : tree _o1[1], _r1;
13590 : 0 : {
13591 : 0 : tree _o2[1], _r2;
13592 : 0 : _o2[0] = captures[2];
13593 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13594 : 0 : _o1[0] = _r2;
13595 : : }
13596 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13597 : 0 : res_op0 = _r1;
13598 : : }
13599 : 0 : tree _r;
13600 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13601 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13602 : 0 : return _r;
13603 : : }
13604 : 0 : next_after_fail2040:;
13605 : : }
13606 : : }
13607 : : }
13608 : : }
13609 : : break;
13610 : : }
13611 : : default:;
13612 : : }
13613 : : }
13614 : : break;
13615 : : }
13616 : 897 : default:;
13617 : : }
13618 : 897 : if (zerop (_q21))
13619 : : {
13620 : 18 : switch (TREE_CODE (_p2))
13621 : : {
13622 : 0 : case NEGATE_EXPR:
13623 : 0 : {
13624 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13625 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13626 : : {
13627 : 0 : {
13628 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13629 : 0 : const enum tree_code cmp = LE_EXPR;
13630 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13631 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13632 : 0 : && element_precision (captures[1])
13633 : 0 : <= element_precision (captures[0])
13634 : 0 : && bitwise_equal_p (captures[1], captures[2])
13635 : : )
13636 : : {
13637 : 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13638 : 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13639 : 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13640 : : )
13641 : : {
13642 : 0 : {
13643 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13644 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13645 : 0 : if (types_match (captures[0], stype)
13646 : : )
13647 : : {
13648 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2041;
13649 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2041;
13650 : 0 : {
13651 : 0 : tree res_op0;
13652 : 0 : {
13653 : 0 : tree _o1[1], _r1;
13654 : 0 : {
13655 : 0 : tree _o2[1], _r2;
13656 : 0 : _o2[0] = captures[0];
13657 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13658 : 0 : _o1[0] = _r2;
13659 : : }
13660 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13661 : 0 : res_op0 = _r1;
13662 : : }
13663 : 0 : tree _r;
13664 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13665 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13666 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13667 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13668 : 0 : return _r;
13669 : : }
13670 : 0 : next_after_fail2041:;
13671 : : }
13672 : : else
13673 : : {
13674 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2042;
13675 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2042;
13676 : 0 : {
13677 : 0 : tree res_op0;
13678 : 0 : {
13679 : 0 : tree _o1[1], _r1;
13680 : 0 : {
13681 : 0 : tree _o2[1], _r2;
13682 : 0 : {
13683 : 0 : tree _o3[1], _r3;
13684 : 0 : _o3[0] = captures[2];
13685 : 0 : if (TREE_TYPE (_o3[0]) != stype)
13686 : : {
13687 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13688 : : }
13689 : : else
13690 : : _r3 = _o3[0];
13691 : 0 : _o2[0] = _r3;
13692 : : }
13693 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13694 : 0 : _o1[0] = _r2;
13695 : : }
13696 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13697 : 0 : res_op0 = _r1;
13698 : : }
13699 : 0 : tree _r;
13700 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13701 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13702 : 0 : return _r;
13703 : : }
13704 : 0 : next_after_fail2042:;
13705 : : }
13706 : : }
13707 : : }
13708 : : else
13709 : : {
13710 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2043;
13711 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2043;
13712 : 0 : {
13713 : 0 : tree res_op0;
13714 : 0 : {
13715 : 0 : tree _o1[1], _r1;
13716 : 0 : {
13717 : 0 : tree _o2[1], _r2;
13718 : 0 : _o2[0] = captures[2];
13719 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13720 : 0 : _o1[0] = _r2;
13721 : : }
13722 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13723 : 0 : res_op0 = _r1;
13724 : : }
13725 : 0 : tree _r;
13726 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13727 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13728 : 0 : return _r;
13729 : : }
13730 : 0 : next_after_fail2043:;
13731 : : }
13732 : : }
13733 : : }
13734 : : }
13735 : : break;
13736 : : }
13737 : : default:;
13738 : : }
13739 : : }
13740 : 897 : switch (TREE_CODE (_q20))
13741 : : {
13742 : 0 : case MINUS_EXPR:
13743 : 0 : {
13744 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13745 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13746 : 0 : if (zerop (_q21))
13747 : : {
13748 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13749 : : {
13750 : 0 : switch (TREE_CODE (_p2))
13751 : : {
13752 : 0 : case MINUS_EXPR:
13753 : 0 : {
13754 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13755 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13756 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13757 : : {
13758 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13759 : : {
13760 : 0 : {
13761 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13762 : 0 : const enum tree_code cmp = LE_EXPR;
13763 : 0 : if (!HONOR_SIGNED_ZEROS (type)
13764 : 0 : && !TYPE_UNSIGNED (type)
13765 : : )
13766 : : {
13767 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
13768 : 0 : && !TYPE_OVERFLOW_WRAPS (type)
13769 : : )
13770 : : {
13771 : 0 : {
13772 : 0 : tree utype = unsigned_type_for (type);
13773 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2044;
13774 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2044;
13775 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2044;
13776 : 0 : {
13777 : 0 : tree res_op0;
13778 : 0 : {
13779 : 0 : tree _o1[1], _r1;
13780 : 0 : {
13781 : 0 : tree _o2[1], _r2;
13782 : 0 : _o2[0] = captures[0];
13783 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13784 : 0 : _o1[0] = _r2;
13785 : : }
13786 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13787 : 0 : res_op0 = _r1;
13788 : : }
13789 : 0 : tree _r;
13790 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13791 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13792 : 0 : return _r;
13793 : : }
13794 : 0 : next_after_fail2044:;
13795 : : }
13796 : : }
13797 : : else
13798 : : {
13799 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2045;
13800 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2045;
13801 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2045;
13802 : 0 : {
13803 : 0 : tree res_op0;
13804 : 0 : {
13805 : 0 : tree _o1[1], _r1;
13806 : 0 : _o1[0] = captures[0];
13807 : 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13808 : 0 : res_op0 = _r1;
13809 : : }
13810 : 0 : tree _r;
13811 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13812 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13813 : 0 : return _r;
13814 : : }
13815 : 0 : next_after_fail2045:;
13816 : : }
13817 : : }
13818 : : }
13819 : : }
13820 : : }
13821 : : break;
13822 : : }
13823 : : default:;
13824 : : }
13825 : : }
13826 : : }
13827 : : break;
13828 : : }
13829 : : default:;
13830 : : }
13831 : : break;
13832 : : }
13833 : 20050 : case LT_EXPR:
13834 : 20050 : {
13835 : 20050 : tree _q20 = TREE_OPERAND (_p0, 0);
13836 : 20050 : tree _q21 = TREE_OPERAND (_p0, 1);
13837 : 20050 : switch (TREE_CODE (_q20))
13838 : : {
13839 : 0 : CASE_CONVERT:
13840 : 0 : {
13841 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13842 : 0 : if (zerop (_q21))
13843 : : {
13844 : 0 : switch (TREE_CODE (_p2))
13845 : : {
13846 : 0 : case NEGATE_EXPR:
13847 : 0 : {
13848 : 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13849 : 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13850 : : {
13851 : 0 : {
13852 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13853 : 0 : const enum tree_code cmp = LT_EXPR;
13854 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13855 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13856 : 0 : && element_precision (captures[1])
13857 : 0 : <= element_precision (captures[0])
13858 : 0 : && bitwise_equal_p (captures[1], captures[2])
13859 : : )
13860 : : {
13861 : 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13862 : 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13863 : 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13864 : : )
13865 : : {
13866 : 0 : {
13867 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13868 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13869 : 0 : if (types_match (captures[0], stype)
13870 : : )
13871 : : {
13872 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2046;
13873 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2046;
13874 : 0 : {
13875 : 0 : tree res_op0;
13876 : 0 : {
13877 : 0 : tree _o1[1], _r1;
13878 : 0 : {
13879 : 0 : tree _o2[1], _r2;
13880 : 0 : _o2[0] = captures[0];
13881 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13882 : 0 : _o1[0] = _r2;
13883 : : }
13884 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13885 : 0 : res_op0 = _r1;
13886 : : }
13887 : 0 : tree _r;
13888 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13889 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13890 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13891 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13892 : 0 : return _r;
13893 : : }
13894 : 0 : next_after_fail2046:;
13895 : : }
13896 : : else
13897 : : {
13898 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2047;
13899 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2047;
13900 : 0 : {
13901 : 0 : tree res_op0;
13902 : 0 : {
13903 : 0 : tree _o1[1], _r1;
13904 : 0 : {
13905 : 0 : tree _o2[1], _r2;
13906 : 0 : {
13907 : 0 : tree _o3[1], _r3;
13908 : 0 : _o3[0] = captures[2];
13909 : 0 : if (TREE_TYPE (_o3[0]) != stype)
13910 : : {
13911 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13912 : : }
13913 : : else
13914 : : _r3 = _o3[0];
13915 : 0 : _o2[0] = _r3;
13916 : : }
13917 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13918 : 0 : _o1[0] = _r2;
13919 : : }
13920 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13921 : 0 : res_op0 = _r1;
13922 : : }
13923 : 0 : tree _r;
13924 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13925 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13926 : 0 : return _r;
13927 : : }
13928 : 0 : next_after_fail2047:;
13929 : : }
13930 : : }
13931 : : }
13932 : : else
13933 : : {
13934 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2048;
13935 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2048;
13936 : 0 : {
13937 : 0 : tree res_op0;
13938 : 0 : {
13939 : 0 : tree _o1[1], _r1;
13940 : 0 : {
13941 : 0 : tree _o2[1], _r2;
13942 : 0 : _o2[0] = captures[2];
13943 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13944 : 0 : _o1[0] = _r2;
13945 : : }
13946 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13947 : 0 : res_op0 = _r1;
13948 : : }
13949 : 0 : tree _r;
13950 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13951 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13952 : 0 : return _r;
13953 : : }
13954 : 0 : next_after_fail2048:;
13955 : : }
13956 : : }
13957 : : }
13958 : : }
13959 : : break;
13960 : : }
13961 : : default:;
13962 : : }
13963 : : }
13964 : : break;
13965 : : }
13966 : 20050 : default:;
13967 : : }
13968 : 20050 : if (zerop (_q21))
13969 : : {
13970 : 536 : switch (TREE_CODE (_p2))
13971 : : {
13972 : 16 : case NEGATE_EXPR:
13973 : 16 : {
13974 : 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13975 : 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13976 : : {
13977 : 16 : {
13978 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13979 : 16 : const enum tree_code cmp = LT_EXPR;
13980 : 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13981 : 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13982 : 32 : && element_precision (captures[1])
13983 : 16 : <= element_precision (captures[0])
13984 : 32 : && bitwise_equal_p (captures[1], captures[2])
13985 : : )
13986 : : {
13987 : 32 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13988 : 16 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13989 : 16 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13990 : : )
13991 : : {
13992 : 16 : {
13993 : 16 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13994 : 16 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13995 : 16 : if (types_match (captures[0], stype)
13996 : : )
13997 : : {
13998 : 16 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2049;
13999 : 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2049;
14000 : 16 : {
14001 : 16 : tree res_op0;
14002 : 16 : {
14003 : 16 : tree _o1[1], _r1;
14004 : 16 : {
14005 : 16 : tree _o2[1], _r2;
14006 : 16 : _o2[0] = captures[0];
14007 : 16 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14008 : 16 : _o1[0] = _r2;
14009 : : }
14010 : 16 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14011 : 16 : res_op0 = _r1;
14012 : : }
14013 : 16 : tree _r;
14014 : 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14015 : 16 : if (TREE_SIDE_EFFECTS (captures[2]))
14016 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
14017 : 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
14018 : 16 : return _r;
14019 : : }
14020 : 0 : next_after_fail2049:;
14021 : : }
14022 : : else
14023 : : {
14024 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2050;
14025 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2050;
14026 : 0 : {
14027 : 0 : tree res_op0;
14028 : 0 : {
14029 : 0 : tree _o1[1], _r1;
14030 : 0 : {
14031 : 0 : tree _o2[1], _r2;
14032 : 0 : {
14033 : 0 : tree _o3[1], _r3;
14034 : 0 : _o3[0] = captures[2];
14035 : 0 : if (TREE_TYPE (_o3[0]) != stype)
14036 : : {
14037 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
14038 : : }
14039 : : else
14040 : : _r3 = _o3[0];
14041 : 0 : _o2[0] = _r3;
14042 : : }
14043 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14044 : 0 : _o1[0] = _r2;
14045 : : }
14046 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14047 : 0 : res_op0 = _r1;
14048 : : }
14049 : 0 : tree _r;
14050 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14051 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
14052 : 0 : return _r;
14053 : : }
14054 : 0 : next_after_fail2050:;
14055 : : }
14056 : : }
14057 : : }
14058 : : else
14059 : : {
14060 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2051;
14061 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2051;
14062 : 0 : {
14063 : 0 : tree res_op0;
14064 : 0 : {
14065 : 0 : tree _o1[1], _r1;
14066 : 0 : {
14067 : 0 : tree _o2[1], _r2;
14068 : 0 : _o2[0] = captures[2];
14069 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
14070 : 0 : _o1[0] = _r2;
14071 : : }
14072 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14073 : 0 : res_op0 = _r1;
14074 : : }
14075 : 0 : tree _r;
14076 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14077 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
14078 : 0 : return _r;
14079 : : }
14080 : 0 : next_after_fail2051:;
14081 : : }
14082 : : }
14083 : : }
14084 : : }
14085 : : break;
14086 : : }
14087 : : default:;
14088 : : }
14089 : : }
14090 : 20034 : switch (TREE_CODE (_q20))
14091 : : {
14092 : 0 : case MINUS_EXPR:
14093 : 0 : {
14094 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14095 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
14096 : 0 : if (zerop (_q21))
14097 : : {
14098 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14099 : : {
14100 : 0 : switch (TREE_CODE (_p2))
14101 : : {
14102 : 0 : case MINUS_EXPR:
14103 : 0 : {
14104 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14105 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14106 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
14107 : : {
14108 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
14109 : : {
14110 : 0 : {
14111 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
14112 : 0 : const enum tree_code cmp = LT_EXPR;
14113 : 0 : if (!HONOR_SIGNED_ZEROS (type)
14114 : 0 : && !TYPE_UNSIGNED (type)
14115 : : )
14116 : : {
14117 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
14118 : 0 : && !TYPE_OVERFLOW_WRAPS (type)
14119 : : )
14120 : : {
14121 : 0 : {
14122 : 0 : tree utype = unsigned_type_for (type);
14123 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2052;
14124 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2052;
14125 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2052;
14126 : 0 : {
14127 : 0 : tree res_op0;
14128 : 0 : {
14129 : 0 : tree _o1[1], _r1;
14130 : 0 : {
14131 : 0 : tree _o2[1], _r2;
14132 : 0 : _o2[0] = captures[0];
14133 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14134 : 0 : _o1[0] = _r2;
14135 : : }
14136 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14137 : 0 : res_op0 = _r1;
14138 : : }
14139 : 0 : tree _r;
14140 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14141 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
14142 : 0 : return _r;
14143 : : }
14144 : 0 : next_after_fail2052:;
14145 : : }
14146 : : }
14147 : : else
14148 : : {
14149 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2053;
14150 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2053;
14151 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2053;
14152 : 0 : {
14153 : 0 : tree res_op0;
14154 : 0 : {
14155 : 0 : tree _o1[1], _r1;
14156 : 0 : _o1[0] = captures[0];
14157 : 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14158 : 0 : res_op0 = _r1;
14159 : : }
14160 : 0 : tree _r;
14161 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
14162 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
14163 : 0 : return _r;
14164 : : }
14165 : 0 : next_after_fail2053:;
14166 : : }
14167 : : }
14168 : : }
14169 : : }
14170 : : }
14171 : : break;
14172 : : }
14173 : : default:;
14174 : : }
14175 : : }
14176 : : }
14177 : : break;
14178 : : }
14179 : : default:;
14180 : : }
14181 : : break;
14182 : : }
14183 : 309399 : default:;
14184 : : }
14185 : 309399 : {
14186 : 309399 : tree _p0_pops[1];
14187 : 309399 : if (tree_logical_inverted_value (_p0, _p0_pops))
14188 : : {
14189 : 510 : tree _q20 = _p0_pops[0];
14190 : 510 : if (tree_truth_valued_p (_q20))
14191 : : {
14192 : 0 : {
14193 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
14194 : 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
14195 : : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
14196 : : )
14197 : : {
14198 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2054;
14199 : 0 : {
14200 : 0 : tree res_op0;
14201 : 0 : res_op0 = captures[0];
14202 : 0 : tree res_op1;
14203 : 0 : res_op1 = captures[2];
14204 : 0 : tree res_op2;
14205 : 0 : res_op2 = captures[1];
14206 : 0 : tree _r;
14207 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
14208 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
14209 : 0 : return _r;
14210 : : }
14211 : 0 : next_after_fail2054:;
14212 : : }
14213 : : }
14214 : : }
14215 : : }
14216 : : }
14217 : 309399 : switch (TREE_CODE (_p1))
14218 : : {
14219 : 0 : case VIEW_CONVERT_EXPR:
14220 : 0 : {
14221 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14222 : 0 : switch (TREE_CODE (_q30))
14223 : : {
14224 : 0 : case CALL_EXPR:
14225 : 0 : switch (get_call_combined_fn (_q30))
14226 : : {
14227 : 0 : case CFN_COND_ADD:
14228 : 0 : if (call_expr_nargs (_q30) == 4)
14229 : : {
14230 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14231 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14232 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14233 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14234 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14235 : : {
14236 : 0 : {
14237 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14238 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14239 : 0 : if (res) return res;
14240 : : }
14241 : : }
14242 : : }
14243 : : break;
14244 : 0 : case CFN_COND_AND:
14245 : 0 : if (call_expr_nargs (_q30) == 4)
14246 : : {
14247 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14248 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14249 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14250 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14251 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14252 : : {
14253 : 0 : {
14254 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14255 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14256 : 0 : if (res) return res;
14257 : : }
14258 : : }
14259 : : }
14260 : : break;
14261 : 0 : case CFN_COND_DIV:
14262 : 0 : if (call_expr_nargs (_q30) == 4)
14263 : : {
14264 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14265 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14266 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14267 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14268 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14269 : : {
14270 : 0 : {
14271 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14272 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14273 : 0 : if (res) return res;
14274 : : }
14275 : : }
14276 : : }
14277 : : break;
14278 : 0 : case CFN_COND_IOR:
14279 : 0 : if (call_expr_nargs (_q30) == 4)
14280 : : {
14281 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14282 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14283 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14284 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14285 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14286 : : {
14287 : 0 : {
14288 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14289 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14290 : 0 : if (res) return res;
14291 : : }
14292 : : }
14293 : : }
14294 : : break;
14295 : 0 : case CFN_COND_MAX:
14296 : 0 : if (call_expr_nargs (_q30) == 4)
14297 : : {
14298 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14299 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14300 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14301 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14302 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14303 : : {
14304 : 0 : {
14305 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14306 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14307 : 0 : if (res) return res;
14308 : : }
14309 : : }
14310 : : }
14311 : : break;
14312 : 0 : case CFN_COND_MIN:
14313 : 0 : if (call_expr_nargs (_q30) == 4)
14314 : : {
14315 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14316 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14317 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14318 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14319 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14320 : : {
14321 : 0 : {
14322 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14323 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14324 : 0 : if (res) return res;
14325 : : }
14326 : : }
14327 : : }
14328 : : break;
14329 : 0 : case CFN_COND_MOD:
14330 : 0 : if (call_expr_nargs (_q30) == 4)
14331 : : {
14332 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14333 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14334 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14335 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14336 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14337 : : {
14338 : 0 : {
14339 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14340 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14341 : 0 : if (res) return res;
14342 : : }
14343 : : }
14344 : : }
14345 : : break;
14346 : 0 : case CFN_COND_MUL:
14347 : 0 : if (call_expr_nargs (_q30) == 4)
14348 : : {
14349 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14350 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14351 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14352 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14353 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14354 : : {
14355 : 0 : {
14356 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14357 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14358 : 0 : if (res) return res;
14359 : : }
14360 : : }
14361 : : }
14362 : : break;
14363 : 0 : case CFN_COND_SHL:
14364 : 0 : if (call_expr_nargs (_q30) == 4)
14365 : : {
14366 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14367 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14368 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14369 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14370 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14371 : : {
14372 : 0 : {
14373 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14374 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14375 : 0 : if (res) return res;
14376 : : }
14377 : : }
14378 : : }
14379 : : break;
14380 : 0 : case CFN_COND_SHR:
14381 : 0 : if (call_expr_nargs (_q30) == 4)
14382 : : {
14383 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14384 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14385 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14386 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14387 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14388 : : {
14389 : 0 : {
14390 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14391 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14392 : 0 : if (res) return res;
14393 : : }
14394 : : }
14395 : : }
14396 : : break;
14397 : 0 : case CFN_COND_SUB:
14398 : 0 : if (call_expr_nargs (_q30) == 4)
14399 : : {
14400 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14401 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14402 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14403 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14404 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14405 : : {
14406 : 0 : {
14407 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14408 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14409 : 0 : if (res) return res;
14410 : : }
14411 : : }
14412 : : }
14413 : : break;
14414 : 0 : case CFN_COND_XOR:
14415 : 0 : if (call_expr_nargs (_q30) == 4)
14416 : : {
14417 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14418 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14419 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14420 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14421 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14422 : : {
14423 : 0 : {
14424 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14425 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14426 : 0 : if (res) return res;
14427 : : }
14428 : : }
14429 : : }
14430 : : break;
14431 : 0 : case CFN_COND_COPYSIGN:
14432 : 0 : if (call_expr_nargs (_q30) == 4)
14433 : : {
14434 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14435 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14436 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14437 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14438 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14439 : : {
14440 : 0 : {
14441 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14442 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14443 : 0 : if (res) return res;
14444 : : }
14445 : : }
14446 : : }
14447 : : break;
14448 : 0 : case CFN_COND_FMAX:
14449 : 0 : if (call_expr_nargs (_q30) == 4)
14450 : : {
14451 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14452 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14453 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14454 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14455 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14456 : : {
14457 : 0 : {
14458 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14459 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14460 : 0 : if (res) return res;
14461 : : }
14462 : : }
14463 : : }
14464 : : break;
14465 : 0 : case CFN_COND_FMIN:
14466 : 0 : if (call_expr_nargs (_q30) == 4)
14467 : : {
14468 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14469 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14470 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14471 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14472 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14473 : : {
14474 : 0 : {
14475 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14476 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14477 : 0 : if (res) return res;
14478 : : }
14479 : : }
14480 : : }
14481 : : break;
14482 : 0 : case CFN_COND_RDIV:
14483 : 0 : if (call_expr_nargs (_q30) == 4)
14484 : : {
14485 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14486 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14487 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14488 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14489 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14490 : : {
14491 : 0 : {
14492 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14493 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14494 : 0 : if (res) return res;
14495 : : }
14496 : : }
14497 : : }
14498 : : break;
14499 : : default:;
14500 : : }
14501 : : break;
14502 : : default:;
14503 : : }
14504 : : break;
14505 : : }
14506 : 12 : case CALL_EXPR:
14507 : 12 : switch (get_call_combined_fn (_p1))
14508 : : {
14509 : 0 : case CFN_COND_ADD:
14510 : 0 : if (call_expr_nargs (_p1) == 4)
14511 : : {
14512 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14513 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14514 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14515 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14516 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14517 : : {
14518 : 0 : {
14519 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14520 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14521 : 0 : if (res) return res;
14522 : : }
14523 : : }
14524 : : }
14525 : : break;
14526 : 0 : case CFN_COND_AND:
14527 : 0 : if (call_expr_nargs (_p1) == 4)
14528 : : {
14529 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14530 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14531 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14532 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14533 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14534 : : {
14535 : 0 : {
14536 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14537 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14538 : 0 : if (res) return res;
14539 : : }
14540 : : }
14541 : : }
14542 : : break;
14543 : 0 : case CFN_COND_DIV:
14544 : 0 : if (call_expr_nargs (_p1) == 4)
14545 : : {
14546 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14547 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14548 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14549 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14550 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14551 : : {
14552 : 0 : {
14553 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14554 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14555 : 0 : if (res) return res;
14556 : : }
14557 : : }
14558 : : }
14559 : : break;
14560 : 0 : case CFN_COND_IOR:
14561 : 0 : if (call_expr_nargs (_p1) == 4)
14562 : : {
14563 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14564 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14565 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14566 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14567 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14568 : : {
14569 : 0 : {
14570 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14571 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14572 : 0 : if (res) return res;
14573 : : }
14574 : : }
14575 : : }
14576 : : break;
14577 : 0 : case CFN_COND_MAX:
14578 : 0 : if (call_expr_nargs (_p1) == 4)
14579 : : {
14580 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14581 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14582 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14583 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14584 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14585 : : {
14586 : 0 : {
14587 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14588 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14589 : 0 : if (res) return res;
14590 : : }
14591 : : }
14592 : : }
14593 : : break;
14594 : 0 : case CFN_COND_MIN:
14595 : 0 : if (call_expr_nargs (_p1) == 4)
14596 : : {
14597 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14598 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14599 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14600 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14601 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14602 : : {
14603 : 0 : {
14604 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14605 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14606 : 0 : if (res) return res;
14607 : : }
14608 : : }
14609 : : }
14610 : : break;
14611 : 0 : case CFN_COND_MOD:
14612 : 0 : if (call_expr_nargs (_p1) == 4)
14613 : : {
14614 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14615 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14616 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14617 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14618 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14619 : : {
14620 : 0 : {
14621 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14622 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14623 : 0 : if (res) return res;
14624 : : }
14625 : : }
14626 : : }
14627 : : break;
14628 : 0 : case CFN_COND_MUL:
14629 : 0 : if (call_expr_nargs (_p1) == 4)
14630 : : {
14631 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14632 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14633 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14634 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14635 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14636 : : {
14637 : 0 : {
14638 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14639 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14640 : 0 : if (res) return res;
14641 : : }
14642 : : }
14643 : : }
14644 : : break;
14645 : 0 : case CFN_COND_SHL:
14646 : 0 : if (call_expr_nargs (_p1) == 4)
14647 : : {
14648 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14649 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14650 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14651 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14652 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14653 : : {
14654 : 0 : {
14655 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14656 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14657 : 0 : if (res) return res;
14658 : : }
14659 : : }
14660 : : }
14661 : : break;
14662 : 0 : case CFN_COND_SHR:
14663 : 0 : if (call_expr_nargs (_p1) == 4)
14664 : : {
14665 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14666 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14667 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14668 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14669 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14670 : : {
14671 : 0 : {
14672 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14673 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14674 : 0 : if (res) return res;
14675 : : }
14676 : : }
14677 : : }
14678 : : break;
14679 : 0 : case CFN_COND_SUB:
14680 : 0 : if (call_expr_nargs (_p1) == 4)
14681 : : {
14682 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14683 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14684 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14685 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14686 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14687 : : {
14688 : 0 : {
14689 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14690 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14691 : 0 : if (res) return res;
14692 : : }
14693 : : }
14694 : : }
14695 : : break;
14696 : 0 : case CFN_COND_XOR:
14697 : 0 : if (call_expr_nargs (_p1) == 4)
14698 : : {
14699 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14700 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14701 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14702 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14703 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14704 : : {
14705 : 0 : {
14706 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14707 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14708 : 0 : if (res) return res;
14709 : : }
14710 : : }
14711 : : }
14712 : : break;
14713 : 0 : case CFN_COND_COPYSIGN:
14714 : 0 : if (call_expr_nargs (_p1) == 4)
14715 : : {
14716 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14717 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14718 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14719 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14720 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14721 : : {
14722 : 0 : {
14723 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14724 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14725 : 0 : if (res) return res;
14726 : : }
14727 : : }
14728 : : }
14729 : : break;
14730 : 0 : case CFN_COND_FMAX:
14731 : 0 : if (call_expr_nargs (_p1) == 4)
14732 : : {
14733 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14734 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14735 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14736 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14737 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14738 : : {
14739 : 0 : {
14740 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14741 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14742 : 0 : if (res) return res;
14743 : : }
14744 : : }
14745 : : }
14746 : : break;
14747 : 0 : case CFN_COND_FMIN:
14748 : 0 : if (call_expr_nargs (_p1) == 4)
14749 : : {
14750 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14751 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14752 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14753 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14754 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14755 : : {
14756 : 0 : {
14757 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14758 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14759 : 0 : if (res) return res;
14760 : : }
14761 : : }
14762 : : }
14763 : : break;
14764 : 0 : case CFN_COND_RDIV:
14765 : 0 : if (call_expr_nargs (_p1) == 4)
14766 : : {
14767 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14768 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14769 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14770 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14771 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14772 : : {
14773 : 0 : {
14774 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14775 : 0 : tree res = generic_simplify_526 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14776 : 0 : if (res) return res;
14777 : : }
14778 : : }
14779 : : }
14780 : : break;
14781 : : default:;
14782 : : }
14783 : : break;
14784 : 309399 : default:;
14785 : : }
14786 : 309399 : switch (TREE_CODE (_p2))
14787 : : {
14788 : 0 : case VIEW_CONVERT_EXPR:
14789 : 0 : {
14790 : 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14791 : 0 : switch (TREE_CODE (_q40))
14792 : : {
14793 : 0 : case CALL_EXPR:
14794 : 0 : switch (get_call_combined_fn (_q40))
14795 : : {
14796 : 0 : case CFN_COND_ADD:
14797 : 0 : if (call_expr_nargs (_q40) == 4)
14798 : : {
14799 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14800 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14801 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14802 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14803 : 0 : {
14804 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14805 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14806 : 0 : if (res) return res;
14807 : : }
14808 : : }
14809 : : break;
14810 : 0 : case CFN_COND_AND:
14811 : 0 : if (call_expr_nargs (_q40) == 4)
14812 : : {
14813 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14814 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14815 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14816 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14817 : 0 : {
14818 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14819 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14820 : 0 : if (res) return res;
14821 : : }
14822 : : }
14823 : : break;
14824 : 0 : case CFN_COND_DIV:
14825 : 0 : if (call_expr_nargs (_q40) == 4)
14826 : : {
14827 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14828 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14829 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14830 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14831 : 0 : {
14832 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14833 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14834 : 0 : if (res) return res;
14835 : : }
14836 : : }
14837 : : break;
14838 : 0 : case CFN_COND_IOR:
14839 : 0 : if (call_expr_nargs (_q40) == 4)
14840 : : {
14841 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14842 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14843 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14844 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14845 : 0 : {
14846 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14847 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14848 : 0 : if (res) return res;
14849 : : }
14850 : : }
14851 : : break;
14852 : 0 : case CFN_COND_MAX:
14853 : 0 : if (call_expr_nargs (_q40) == 4)
14854 : : {
14855 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14856 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14857 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14858 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14859 : 0 : {
14860 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14861 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14862 : 0 : if (res) return res;
14863 : : }
14864 : : }
14865 : : break;
14866 : 0 : case CFN_COND_MIN:
14867 : 0 : if (call_expr_nargs (_q40) == 4)
14868 : : {
14869 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14870 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14871 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14872 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14873 : 0 : {
14874 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14875 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14876 : 0 : if (res) return res;
14877 : : }
14878 : : }
14879 : : break;
14880 : 0 : case CFN_COND_MOD:
14881 : 0 : if (call_expr_nargs (_q40) == 4)
14882 : : {
14883 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14884 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14885 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14886 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14887 : 0 : {
14888 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14889 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14890 : 0 : if (res) return res;
14891 : : }
14892 : : }
14893 : : break;
14894 : 0 : case CFN_COND_MUL:
14895 : 0 : if (call_expr_nargs (_q40) == 4)
14896 : : {
14897 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14898 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14899 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14900 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14901 : 0 : {
14902 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14903 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14904 : 0 : if (res) return res;
14905 : : }
14906 : : }
14907 : : break;
14908 : 0 : case CFN_COND_SHL:
14909 : 0 : if (call_expr_nargs (_q40) == 4)
14910 : : {
14911 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14912 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14913 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14914 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14915 : 0 : {
14916 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14917 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14918 : 0 : if (res) return res;
14919 : : }
14920 : : }
14921 : : break;
14922 : 0 : case CFN_COND_SHR:
14923 : 0 : if (call_expr_nargs (_q40) == 4)
14924 : : {
14925 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14926 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14927 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14928 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14929 : 0 : {
14930 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14931 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14932 : 0 : if (res) return res;
14933 : : }
14934 : : }
14935 : : break;
14936 : 0 : case CFN_COND_SUB:
14937 : 0 : if (call_expr_nargs (_q40) == 4)
14938 : : {
14939 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14940 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14941 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14942 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14943 : 0 : {
14944 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14945 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14946 : 0 : if (res) return res;
14947 : : }
14948 : : }
14949 : : break;
14950 : 0 : case CFN_COND_XOR:
14951 : 0 : if (call_expr_nargs (_q40) == 4)
14952 : : {
14953 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14954 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14955 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14956 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14957 : 0 : {
14958 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14959 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14960 : 0 : if (res) return res;
14961 : : }
14962 : : }
14963 : : break;
14964 : 0 : case CFN_COND_COPYSIGN:
14965 : 0 : if (call_expr_nargs (_q40) == 4)
14966 : : {
14967 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14968 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14969 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14970 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14971 : 0 : {
14972 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14973 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14974 : 0 : if (res) return res;
14975 : : }
14976 : : }
14977 : : break;
14978 : 0 : case CFN_COND_FMAX:
14979 : 0 : if (call_expr_nargs (_q40) == 4)
14980 : : {
14981 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14982 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14983 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14984 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14985 : 0 : {
14986 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14987 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14988 : 0 : if (res) return res;
14989 : : }
14990 : : }
14991 : : break;
14992 : 0 : case CFN_COND_FMIN:
14993 : 0 : if (call_expr_nargs (_q40) == 4)
14994 : : {
14995 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14996 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14997 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14998 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14999 : 0 : {
15000 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15001 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15002 : 0 : if (res) return res;
15003 : : }
15004 : : }
15005 : : break;
15006 : 0 : case CFN_COND_RDIV:
15007 : 0 : if (call_expr_nargs (_q40) == 4)
15008 : : {
15009 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15010 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15011 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15012 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15013 : 0 : {
15014 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15015 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15016 : 0 : if (res) return res;
15017 : : }
15018 : : }
15019 : : break;
15020 : : default:;
15021 : : }
15022 : : break;
15023 : : default:;
15024 : : }
15025 : : break;
15026 : : }
15027 : 12 : case CALL_EXPR:
15028 : 12 : switch (get_call_combined_fn (_p2))
15029 : : {
15030 : 0 : case CFN_COND_ADD:
15031 : 0 : if (call_expr_nargs (_p2) == 4)
15032 : : {
15033 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15034 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15035 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15036 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15037 : 0 : {
15038 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15039 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
15040 : 0 : if (res) return res;
15041 : : }
15042 : : }
15043 : : break;
15044 : 0 : case CFN_COND_AND:
15045 : 0 : if (call_expr_nargs (_p2) == 4)
15046 : : {
15047 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15048 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15049 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15050 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15051 : 0 : {
15052 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15053 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
15054 : 0 : if (res) return res;
15055 : : }
15056 : : }
15057 : : break;
15058 : 0 : case CFN_COND_DIV:
15059 : 0 : if (call_expr_nargs (_p2) == 4)
15060 : : {
15061 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15062 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15063 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15064 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15065 : 0 : {
15066 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15067 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
15068 : 0 : if (res) return res;
15069 : : }
15070 : : }
15071 : : break;
15072 : 0 : case CFN_COND_IOR:
15073 : 0 : if (call_expr_nargs (_p2) == 4)
15074 : : {
15075 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15076 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15077 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15078 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15079 : 0 : {
15080 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15081 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
15082 : 0 : if (res) return res;
15083 : : }
15084 : : }
15085 : : break;
15086 : 0 : case CFN_COND_MAX:
15087 : 0 : if (call_expr_nargs (_p2) == 4)
15088 : : {
15089 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15090 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15091 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15092 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15093 : 0 : {
15094 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15095 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
15096 : 0 : if (res) return res;
15097 : : }
15098 : : }
15099 : : break;
15100 : 0 : case CFN_COND_MIN:
15101 : 0 : if (call_expr_nargs (_p2) == 4)
15102 : : {
15103 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15104 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15105 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15106 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15107 : 0 : {
15108 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15109 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
15110 : 0 : if (res) return res;
15111 : : }
15112 : : }
15113 : : break;
15114 : 0 : case CFN_COND_MOD:
15115 : 0 : if (call_expr_nargs (_p2) == 4)
15116 : : {
15117 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15118 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15119 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15120 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15121 : 0 : {
15122 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15123 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
15124 : 0 : if (res) return res;
15125 : : }
15126 : : }
15127 : : break;
15128 : 0 : case CFN_COND_MUL:
15129 : 0 : if (call_expr_nargs (_p2) == 4)
15130 : : {
15131 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15132 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15133 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15134 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15135 : 0 : {
15136 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15137 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
15138 : 0 : if (res) return res;
15139 : : }
15140 : : }
15141 : : break;
15142 : 0 : case CFN_COND_SHL:
15143 : 0 : if (call_expr_nargs (_p2) == 4)
15144 : : {
15145 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15146 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15147 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15148 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15149 : 0 : {
15150 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15151 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
15152 : 0 : if (res) return res;
15153 : : }
15154 : : }
15155 : : break;
15156 : 0 : case CFN_COND_SHR:
15157 : 0 : if (call_expr_nargs (_p2) == 4)
15158 : : {
15159 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15160 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15161 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15162 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15163 : 0 : {
15164 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15165 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
15166 : 0 : if (res) return res;
15167 : : }
15168 : : }
15169 : : break;
15170 : 0 : case CFN_COND_SUB:
15171 : 0 : if (call_expr_nargs (_p2) == 4)
15172 : : {
15173 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15174 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15175 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15176 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15177 : 0 : {
15178 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15179 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
15180 : 0 : if (res) return res;
15181 : : }
15182 : : }
15183 : : break;
15184 : 0 : case CFN_COND_XOR:
15185 : 0 : if (call_expr_nargs (_p2) == 4)
15186 : : {
15187 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15188 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15189 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15190 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15191 : 0 : {
15192 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15193 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
15194 : 0 : if (res) return res;
15195 : : }
15196 : : }
15197 : : break;
15198 : 0 : case CFN_COND_COPYSIGN:
15199 : 0 : if (call_expr_nargs (_p2) == 4)
15200 : : {
15201 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15202 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15203 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15204 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15205 : 0 : {
15206 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15207 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
15208 : 0 : if (res) return res;
15209 : : }
15210 : : }
15211 : : break;
15212 : 0 : case CFN_COND_FMAX:
15213 : 0 : if (call_expr_nargs (_p2) == 4)
15214 : : {
15215 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15216 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15217 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15218 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15219 : 0 : {
15220 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15221 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
15222 : 0 : if (res) return res;
15223 : : }
15224 : : }
15225 : : break;
15226 : 0 : case CFN_COND_FMIN:
15227 : 0 : if (call_expr_nargs (_p2) == 4)
15228 : : {
15229 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15230 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15231 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15232 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15233 : 0 : {
15234 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15235 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15236 : 0 : if (res) return res;
15237 : : }
15238 : : }
15239 : : break;
15240 : 0 : case CFN_COND_RDIV:
15241 : 0 : if (call_expr_nargs (_p2) == 4)
15242 : : {
15243 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15244 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15245 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15246 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15247 : 0 : {
15248 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15249 : 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15250 : 0 : if (res) return res;
15251 : : }
15252 : : }
15253 : : break;
15254 : : default:;
15255 : : }
15256 : : break;
15257 : 309399 : default:;
15258 : : }
15259 : 309399 : switch (TREE_CODE (_p1))
15260 : : {
15261 : 0 : case VIEW_CONVERT_EXPR:
15262 : 0 : {
15263 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15264 : 0 : switch (TREE_CODE (_q30))
15265 : : {
15266 : 0 : case CALL_EXPR:
15267 : 0 : switch (get_call_combined_fn (_q30))
15268 : : {
15269 : 0 : case CFN_COND_FMA:
15270 : 0 : if (call_expr_nargs (_q30) == 5)
15271 : : {
15272 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15273 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15274 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15275 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15276 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15277 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15278 : : {
15279 : 0 : {
15280 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15281 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15282 : 0 : if (res) return res;
15283 : : }
15284 : : }
15285 : : }
15286 : : break;
15287 : 0 : case CFN_COND_FMS:
15288 : 0 : if (call_expr_nargs (_q30) == 5)
15289 : : {
15290 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15291 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15292 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15293 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15294 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15295 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15296 : : {
15297 : 0 : {
15298 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15299 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15300 : 0 : if (res) return res;
15301 : : }
15302 : : }
15303 : : }
15304 : : break;
15305 : 0 : case CFN_COND_FNMA:
15306 : 0 : if (call_expr_nargs (_q30) == 5)
15307 : : {
15308 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15309 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15310 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15311 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15312 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15313 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15314 : : {
15315 : 0 : {
15316 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15317 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15318 : 0 : if (res) return res;
15319 : : }
15320 : : }
15321 : : }
15322 : : break;
15323 : 0 : case CFN_COND_FNMS:
15324 : 0 : if (call_expr_nargs (_q30) == 5)
15325 : : {
15326 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15327 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15328 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15329 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15330 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15331 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15332 : : {
15333 : 0 : {
15334 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15335 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15336 : 0 : if (res) return res;
15337 : : }
15338 : : }
15339 : : }
15340 : : break;
15341 : : default:;
15342 : : }
15343 : : break;
15344 : : default:;
15345 : : }
15346 : : break;
15347 : : }
15348 : 12 : case CALL_EXPR:
15349 : 12 : switch (get_call_combined_fn (_p1))
15350 : : {
15351 : 0 : case CFN_COND_FMA:
15352 : 0 : if (call_expr_nargs (_p1) == 5)
15353 : : {
15354 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15355 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15356 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15357 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15358 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15359 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15360 : : {
15361 : 0 : {
15362 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15363 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15364 : 0 : if (res) return res;
15365 : : }
15366 : : }
15367 : : }
15368 : : break;
15369 : 0 : case CFN_COND_FMS:
15370 : 0 : if (call_expr_nargs (_p1) == 5)
15371 : : {
15372 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15373 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15374 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15375 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15376 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15377 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15378 : : {
15379 : 0 : {
15380 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15381 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15382 : 0 : if (res) return res;
15383 : : }
15384 : : }
15385 : : }
15386 : : break;
15387 : 0 : case CFN_COND_FNMA:
15388 : 0 : if (call_expr_nargs (_p1) == 5)
15389 : : {
15390 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15391 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15392 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15393 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15394 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15395 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15396 : : {
15397 : 0 : {
15398 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15399 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15400 : 0 : if (res) return res;
15401 : : }
15402 : : }
15403 : : }
15404 : : break;
15405 : 0 : case CFN_COND_FNMS:
15406 : 0 : if (call_expr_nargs (_p1) == 5)
15407 : : {
15408 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15409 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15410 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15411 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15412 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15413 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15414 : : {
15415 : 0 : {
15416 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15417 : 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15418 : 0 : if (res) return res;
15419 : : }
15420 : : }
15421 : : }
15422 : : break;
15423 : : default:;
15424 : : }
15425 : : break;
15426 : 309399 : default:;
15427 : : }
15428 : 309399 : switch (TREE_CODE (_p2))
15429 : : {
15430 : 0 : case VIEW_CONVERT_EXPR:
15431 : 0 : {
15432 : 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15433 : 0 : switch (TREE_CODE (_q40))
15434 : : {
15435 : 0 : case CALL_EXPR:
15436 : 0 : switch (get_call_combined_fn (_q40))
15437 : : {
15438 : 0 : case CFN_COND_FMA:
15439 : 0 : if (call_expr_nargs (_q40) == 5)
15440 : : {
15441 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15442 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15443 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15444 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15445 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15446 : 0 : {
15447 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15448 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15449 : 0 : if (res) return res;
15450 : : }
15451 : : }
15452 : : break;
15453 : 0 : case CFN_COND_FMS:
15454 : 0 : if (call_expr_nargs (_q40) == 5)
15455 : : {
15456 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15457 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15458 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15459 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15460 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15461 : 0 : {
15462 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15463 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15464 : 0 : if (res) return res;
15465 : : }
15466 : : }
15467 : : break;
15468 : 0 : case CFN_COND_FNMA:
15469 : 0 : if (call_expr_nargs (_q40) == 5)
15470 : : {
15471 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15472 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15473 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15474 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15475 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15476 : 0 : {
15477 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15478 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15479 : 0 : if (res) return res;
15480 : : }
15481 : : }
15482 : : break;
15483 : 0 : case CFN_COND_FNMS:
15484 : 0 : if (call_expr_nargs (_q40) == 5)
15485 : : {
15486 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15487 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15488 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15489 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15490 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15491 : 0 : {
15492 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15493 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15494 : 0 : if (res) return res;
15495 : : }
15496 : : }
15497 : : break;
15498 : : default:;
15499 : : }
15500 : : break;
15501 : : default:;
15502 : : }
15503 : : break;
15504 : : }
15505 : 12 : case CALL_EXPR:
15506 : 12 : switch (get_call_combined_fn (_p2))
15507 : : {
15508 : 0 : case CFN_COND_FMA:
15509 : 0 : if (call_expr_nargs (_p2) == 5)
15510 : : {
15511 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15512 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15513 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15514 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15515 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15516 : 0 : {
15517 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15518 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15519 : 0 : if (res) return res;
15520 : : }
15521 : : }
15522 : : break;
15523 : 0 : case CFN_COND_FMS:
15524 : 0 : if (call_expr_nargs (_p2) == 5)
15525 : : {
15526 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15527 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15528 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15529 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15530 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15531 : 0 : {
15532 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15533 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15534 : 0 : if (res) return res;
15535 : : }
15536 : : }
15537 : : break;
15538 : 0 : case CFN_COND_FNMA:
15539 : 0 : if (call_expr_nargs (_p2) == 5)
15540 : : {
15541 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15542 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15543 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15544 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15545 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15546 : 0 : {
15547 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15548 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15549 : 0 : if (res) return res;
15550 : : }
15551 : : }
15552 : : break;
15553 : 0 : case CFN_COND_FNMS:
15554 : 0 : if (call_expr_nargs (_p2) == 5)
15555 : : {
15556 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15557 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15558 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15559 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15560 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15561 : 0 : {
15562 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15563 : 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15564 : 0 : if (res) return res;
15565 : : }
15566 : : }
15567 : : break;
15568 : : default:;
15569 : : }
15570 : : break;
15571 : 309399 : default:;
15572 : : }
15573 : 309399 : switch (TREE_CODE (_p1))
15574 : : {
15575 : 0 : case VIEW_CONVERT_EXPR:
15576 : 0 : {
15577 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15578 : 0 : switch (TREE_CODE (_q30))
15579 : : {
15580 : 0 : case CALL_EXPR:
15581 : 0 : switch (get_call_combined_fn (_q30))
15582 : : {
15583 : 0 : case CFN_COND_LEN_ADD:
15584 : 0 : if (call_expr_nargs (_q30) == 6)
15585 : : {
15586 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15587 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15588 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15589 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15590 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15591 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15592 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15593 : : {
15594 : 0 : {
15595 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15596 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15597 : 0 : if (res) return res;
15598 : : }
15599 : : }
15600 : : }
15601 : : break;
15602 : 0 : case CFN_COND_LEN_AND:
15603 : 0 : if (call_expr_nargs (_q30) == 6)
15604 : : {
15605 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15606 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15607 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15608 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15609 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15610 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15611 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15612 : : {
15613 : 0 : {
15614 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15615 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15616 : 0 : if (res) return res;
15617 : : }
15618 : : }
15619 : : }
15620 : : break;
15621 : 0 : case CFN_COND_LEN_DIV:
15622 : 0 : if (call_expr_nargs (_q30) == 6)
15623 : : {
15624 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15625 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15626 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15627 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15628 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15629 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15630 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15631 : : {
15632 : 0 : {
15633 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15634 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15635 : 0 : if (res) return res;
15636 : : }
15637 : : }
15638 : : }
15639 : : break;
15640 : 0 : case CFN_COND_LEN_IOR:
15641 : 0 : if (call_expr_nargs (_q30) == 6)
15642 : : {
15643 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15644 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15645 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15646 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15647 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15648 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15649 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15650 : : {
15651 : 0 : {
15652 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15653 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15654 : 0 : if (res) return res;
15655 : : }
15656 : : }
15657 : : }
15658 : : break;
15659 : 0 : case CFN_COND_LEN_MAX:
15660 : 0 : if (call_expr_nargs (_q30) == 6)
15661 : : {
15662 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15663 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15664 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15665 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15666 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15667 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15668 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15669 : : {
15670 : 0 : {
15671 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15672 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15673 : 0 : if (res) return res;
15674 : : }
15675 : : }
15676 : : }
15677 : : break;
15678 : 0 : case CFN_COND_LEN_MIN:
15679 : 0 : if (call_expr_nargs (_q30) == 6)
15680 : : {
15681 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15682 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15683 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15684 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15685 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15686 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15687 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15688 : : {
15689 : 0 : {
15690 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15691 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15692 : 0 : if (res) return res;
15693 : : }
15694 : : }
15695 : : }
15696 : : break;
15697 : 0 : case CFN_COND_LEN_MOD:
15698 : 0 : if (call_expr_nargs (_q30) == 6)
15699 : : {
15700 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15701 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15702 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15703 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15704 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15705 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15706 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15707 : : {
15708 : 0 : {
15709 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15710 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15711 : 0 : if (res) return res;
15712 : : }
15713 : : }
15714 : : }
15715 : : break;
15716 : 0 : case CFN_COND_LEN_MUL:
15717 : 0 : if (call_expr_nargs (_q30) == 6)
15718 : : {
15719 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15720 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15721 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15722 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15723 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15724 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15725 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15726 : : {
15727 : 0 : {
15728 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15729 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15730 : 0 : if (res) return res;
15731 : : }
15732 : : }
15733 : : }
15734 : : break;
15735 : 0 : case CFN_COND_LEN_SHL:
15736 : 0 : if (call_expr_nargs (_q30) == 6)
15737 : : {
15738 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15739 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15740 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15741 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15742 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15743 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15744 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15745 : : {
15746 : 0 : {
15747 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15748 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15749 : 0 : if (res) return res;
15750 : : }
15751 : : }
15752 : : }
15753 : : break;
15754 : 0 : case CFN_COND_LEN_SHR:
15755 : 0 : if (call_expr_nargs (_q30) == 6)
15756 : : {
15757 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15758 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15759 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15760 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15761 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15762 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15763 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15764 : : {
15765 : 0 : {
15766 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15767 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15768 : 0 : if (res) return res;
15769 : : }
15770 : : }
15771 : : }
15772 : : break;
15773 : 0 : case CFN_COND_LEN_SUB:
15774 : 0 : if (call_expr_nargs (_q30) == 6)
15775 : : {
15776 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15777 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15778 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15779 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15780 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15781 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15782 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15783 : : {
15784 : 0 : {
15785 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15786 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15787 : 0 : if (res) return res;
15788 : : }
15789 : : }
15790 : : }
15791 : : break;
15792 : 0 : case CFN_COND_LEN_XOR:
15793 : 0 : if (call_expr_nargs (_q30) == 6)
15794 : : {
15795 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15796 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15797 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15798 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15799 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15800 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15801 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15802 : : {
15803 : 0 : {
15804 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15805 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15806 : 0 : if (res) return res;
15807 : : }
15808 : : }
15809 : : }
15810 : : break;
15811 : 0 : case CFN_COND_LEN_FMAX:
15812 : 0 : if (call_expr_nargs (_q30) == 6)
15813 : : {
15814 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15815 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15816 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15817 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15818 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15819 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15820 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15821 : : {
15822 : 0 : {
15823 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15824 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15825 : 0 : if (res) return res;
15826 : : }
15827 : : }
15828 : : }
15829 : : break;
15830 : 0 : case CFN_COND_LEN_FMIN:
15831 : 0 : if (call_expr_nargs (_q30) == 6)
15832 : : {
15833 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15834 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15835 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15836 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15837 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15838 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15839 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15840 : : {
15841 : 0 : {
15842 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15843 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15844 : 0 : if (res) return res;
15845 : : }
15846 : : }
15847 : : }
15848 : : break;
15849 : 0 : case CFN_COND_LEN_RDIV:
15850 : 0 : if (call_expr_nargs (_q30) == 6)
15851 : : {
15852 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15853 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15854 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15855 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15856 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15857 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15858 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15859 : : {
15860 : 0 : {
15861 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15862 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15863 : 0 : if (res) return res;
15864 : : }
15865 : : }
15866 : : }
15867 : : break;
15868 : 0 : case CFN_COND_LEN_COPYSIGN:
15869 : 0 : if (call_expr_nargs (_q30) == 6)
15870 : : {
15871 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15872 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15873 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15874 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15875 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15876 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15877 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15878 : : {
15879 : 0 : {
15880 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15881 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15882 : 0 : if (res) return res;
15883 : : }
15884 : : }
15885 : : }
15886 : : break;
15887 : : default:;
15888 : : }
15889 : : break;
15890 : : default:;
15891 : : }
15892 : : break;
15893 : : }
15894 : 12 : case CALL_EXPR:
15895 : 12 : switch (get_call_combined_fn (_p1))
15896 : : {
15897 : 0 : case CFN_COND_LEN_ADD:
15898 : 0 : if (call_expr_nargs (_p1) == 6)
15899 : : {
15900 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15901 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15902 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15903 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15904 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15905 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15906 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15907 : : {
15908 : 0 : {
15909 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15910 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15911 : 0 : if (res) return res;
15912 : : }
15913 : : }
15914 : : }
15915 : : break;
15916 : 0 : case CFN_COND_LEN_AND:
15917 : 0 : if (call_expr_nargs (_p1) == 6)
15918 : : {
15919 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15920 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15921 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15922 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15923 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15924 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15925 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15926 : : {
15927 : 0 : {
15928 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15929 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15930 : 0 : if (res) return res;
15931 : : }
15932 : : }
15933 : : }
15934 : : break;
15935 : 0 : case CFN_COND_LEN_DIV:
15936 : 0 : if (call_expr_nargs (_p1) == 6)
15937 : : {
15938 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15939 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15940 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15941 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15942 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15943 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15944 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15945 : : {
15946 : 0 : {
15947 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15948 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15949 : 0 : if (res) return res;
15950 : : }
15951 : : }
15952 : : }
15953 : : break;
15954 : 0 : case CFN_COND_LEN_IOR:
15955 : 0 : if (call_expr_nargs (_p1) == 6)
15956 : : {
15957 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15958 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15959 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15960 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15961 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15962 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15963 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15964 : : {
15965 : 0 : {
15966 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15967 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15968 : 0 : if (res) return res;
15969 : : }
15970 : : }
15971 : : }
15972 : : break;
15973 : 0 : case CFN_COND_LEN_MAX:
15974 : 0 : if (call_expr_nargs (_p1) == 6)
15975 : : {
15976 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15977 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15978 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15979 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15980 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15981 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15982 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15983 : : {
15984 : 0 : {
15985 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15986 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15987 : 0 : if (res) return res;
15988 : : }
15989 : : }
15990 : : }
15991 : : break;
15992 : 0 : case CFN_COND_LEN_MIN:
15993 : 0 : if (call_expr_nargs (_p1) == 6)
15994 : : {
15995 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15996 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15997 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15998 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15999 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16000 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16001 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16002 : : {
16003 : 0 : {
16004 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16005 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16006 : 0 : if (res) return res;
16007 : : }
16008 : : }
16009 : : }
16010 : : break;
16011 : 0 : case CFN_COND_LEN_MOD:
16012 : 0 : if (call_expr_nargs (_p1) == 6)
16013 : : {
16014 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16015 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16016 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16017 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16018 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16019 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16020 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16021 : : {
16022 : 0 : {
16023 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16024 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16025 : 0 : if (res) return res;
16026 : : }
16027 : : }
16028 : : }
16029 : : break;
16030 : 0 : case CFN_COND_LEN_MUL:
16031 : 0 : if (call_expr_nargs (_p1) == 6)
16032 : : {
16033 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16034 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16035 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16036 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16037 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16038 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16039 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16040 : : {
16041 : 0 : {
16042 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16043 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16044 : 0 : if (res) return res;
16045 : : }
16046 : : }
16047 : : }
16048 : : break;
16049 : 0 : case CFN_COND_LEN_SHL:
16050 : 0 : if (call_expr_nargs (_p1) == 6)
16051 : : {
16052 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16053 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16054 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16055 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16056 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16057 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16058 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16059 : : {
16060 : 0 : {
16061 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16062 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16063 : 0 : if (res) return res;
16064 : : }
16065 : : }
16066 : : }
16067 : : break;
16068 : 0 : case CFN_COND_LEN_SHR:
16069 : 0 : if (call_expr_nargs (_p1) == 6)
16070 : : {
16071 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16072 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16073 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16074 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16075 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16076 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16077 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16078 : : {
16079 : 0 : {
16080 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16081 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16082 : 0 : if (res) return res;
16083 : : }
16084 : : }
16085 : : }
16086 : : break;
16087 : 0 : case CFN_COND_LEN_SUB:
16088 : 0 : if (call_expr_nargs (_p1) == 6)
16089 : : {
16090 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16091 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16092 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16093 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16094 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16095 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16096 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16097 : : {
16098 : 0 : {
16099 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16100 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16101 : 0 : if (res) return res;
16102 : : }
16103 : : }
16104 : : }
16105 : : break;
16106 : 0 : case CFN_COND_LEN_XOR:
16107 : 0 : if (call_expr_nargs (_p1) == 6)
16108 : : {
16109 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16110 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16111 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16112 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16113 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16114 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16115 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16116 : : {
16117 : 0 : {
16118 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16119 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16120 : 0 : if (res) return res;
16121 : : }
16122 : : }
16123 : : }
16124 : : break;
16125 : 0 : case CFN_COND_LEN_FMAX:
16126 : 0 : if (call_expr_nargs (_p1) == 6)
16127 : : {
16128 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16129 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16130 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16131 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16132 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16133 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16134 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16135 : : {
16136 : 0 : {
16137 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16138 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16139 : 0 : if (res) return res;
16140 : : }
16141 : : }
16142 : : }
16143 : : break;
16144 : 0 : case CFN_COND_LEN_FMIN:
16145 : 0 : if (call_expr_nargs (_p1) == 6)
16146 : : {
16147 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16148 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16149 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16150 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16151 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16152 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16153 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16154 : : {
16155 : 0 : {
16156 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16157 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16158 : 0 : if (res) return res;
16159 : : }
16160 : : }
16161 : : }
16162 : : break;
16163 : 0 : case CFN_COND_LEN_RDIV:
16164 : 0 : if (call_expr_nargs (_p1) == 6)
16165 : : {
16166 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16167 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16168 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16169 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16170 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16171 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16172 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16173 : : {
16174 : 0 : {
16175 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16176 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16177 : 0 : if (res) return res;
16178 : : }
16179 : : }
16180 : : }
16181 : : break;
16182 : 0 : case CFN_COND_LEN_COPYSIGN:
16183 : 0 : if (call_expr_nargs (_p1) == 6)
16184 : : {
16185 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16186 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16187 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16188 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16189 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16190 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16191 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16192 : : {
16193 : 0 : {
16194 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16195 : 0 : tree res = generic_simplify_530 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16196 : 0 : if (res) return res;
16197 : : }
16198 : : }
16199 : : }
16200 : : break;
16201 : : default:;
16202 : : }
16203 : : break;
16204 : 309399 : default:;
16205 : : }
16206 : 309399 : switch (TREE_CODE (_p2))
16207 : : {
16208 : 0 : case VIEW_CONVERT_EXPR:
16209 : 0 : {
16210 : 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16211 : 0 : switch (TREE_CODE (_q40))
16212 : : {
16213 : 0 : case CALL_EXPR:
16214 : 0 : switch (get_call_combined_fn (_q40))
16215 : : {
16216 : 0 : case CFN_COND_LEN_ADD:
16217 : 0 : if (call_expr_nargs (_q40) == 6)
16218 : : {
16219 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16220 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16221 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16222 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16223 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16224 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16225 : 0 : {
16226 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16227 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16228 : 0 : if (res) return res;
16229 : : }
16230 : : }
16231 : : break;
16232 : 0 : case CFN_COND_LEN_AND:
16233 : 0 : if (call_expr_nargs (_q40) == 6)
16234 : : {
16235 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16236 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16237 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16238 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16239 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16240 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16241 : 0 : {
16242 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16243 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16244 : 0 : if (res) return res;
16245 : : }
16246 : : }
16247 : : break;
16248 : 0 : case CFN_COND_LEN_DIV:
16249 : 0 : if (call_expr_nargs (_q40) == 6)
16250 : : {
16251 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16252 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16253 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16254 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16255 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16256 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16257 : 0 : {
16258 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16259 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16260 : 0 : if (res) return res;
16261 : : }
16262 : : }
16263 : : break;
16264 : 0 : case CFN_COND_LEN_IOR:
16265 : 0 : if (call_expr_nargs (_q40) == 6)
16266 : : {
16267 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16268 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16269 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16270 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16271 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16272 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16273 : 0 : {
16274 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16275 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16276 : 0 : if (res) return res;
16277 : : }
16278 : : }
16279 : : break;
16280 : 0 : case CFN_COND_LEN_MAX:
16281 : 0 : if (call_expr_nargs (_q40) == 6)
16282 : : {
16283 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16284 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16285 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16286 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16287 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16288 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16289 : 0 : {
16290 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16291 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16292 : 0 : if (res) return res;
16293 : : }
16294 : : }
16295 : : break;
16296 : 0 : case CFN_COND_LEN_MIN:
16297 : 0 : if (call_expr_nargs (_q40) == 6)
16298 : : {
16299 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16300 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16301 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16302 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16303 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16304 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16305 : 0 : {
16306 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16307 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16308 : 0 : if (res) return res;
16309 : : }
16310 : : }
16311 : : break;
16312 : 0 : case CFN_COND_LEN_MOD:
16313 : 0 : if (call_expr_nargs (_q40) == 6)
16314 : : {
16315 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16316 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16317 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16318 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16319 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16320 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16321 : 0 : {
16322 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16323 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16324 : 0 : if (res) return res;
16325 : : }
16326 : : }
16327 : : break;
16328 : 0 : case CFN_COND_LEN_MUL:
16329 : 0 : if (call_expr_nargs (_q40) == 6)
16330 : : {
16331 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16332 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16333 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16334 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16335 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16336 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16337 : 0 : {
16338 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16339 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16340 : 0 : if (res) return res;
16341 : : }
16342 : : }
16343 : : break;
16344 : 0 : case CFN_COND_LEN_SHL:
16345 : 0 : if (call_expr_nargs (_q40) == 6)
16346 : : {
16347 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16348 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16349 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16350 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16351 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16352 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16353 : 0 : {
16354 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16355 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16356 : 0 : if (res) return res;
16357 : : }
16358 : : }
16359 : : break;
16360 : 0 : case CFN_COND_LEN_SHR:
16361 : 0 : if (call_expr_nargs (_q40) == 6)
16362 : : {
16363 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16364 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16365 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16366 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16367 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16368 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16369 : 0 : {
16370 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16371 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16372 : 0 : if (res) return res;
16373 : : }
16374 : : }
16375 : : break;
16376 : 0 : case CFN_COND_LEN_SUB:
16377 : 0 : if (call_expr_nargs (_q40) == 6)
16378 : : {
16379 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16380 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16381 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16382 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16383 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16384 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16385 : 0 : {
16386 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16387 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16388 : 0 : if (res) return res;
16389 : : }
16390 : : }
16391 : : break;
16392 : 0 : case CFN_COND_LEN_XOR:
16393 : 0 : if (call_expr_nargs (_q40) == 6)
16394 : : {
16395 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16396 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16397 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16398 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16399 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16400 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16401 : 0 : {
16402 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16403 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16404 : 0 : if (res) return res;
16405 : : }
16406 : : }
16407 : : break;
16408 : 0 : case CFN_COND_LEN_FMAX:
16409 : 0 : if (call_expr_nargs (_q40) == 6)
16410 : : {
16411 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16412 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16413 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16414 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16415 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16416 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16417 : 0 : {
16418 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16419 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16420 : 0 : if (res) return res;
16421 : : }
16422 : : }
16423 : : break;
16424 : 0 : case CFN_COND_LEN_FMIN:
16425 : 0 : if (call_expr_nargs (_q40) == 6)
16426 : : {
16427 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16428 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16429 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16430 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16431 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16432 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16433 : 0 : {
16434 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16435 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16436 : 0 : if (res) return res;
16437 : : }
16438 : : }
16439 : : break;
16440 : 0 : case CFN_COND_LEN_RDIV:
16441 : 0 : if (call_expr_nargs (_q40) == 6)
16442 : : {
16443 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16444 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16445 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16446 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16447 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16448 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16449 : 0 : {
16450 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16451 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16452 : 0 : if (res) return res;
16453 : : }
16454 : : }
16455 : : break;
16456 : 0 : case CFN_COND_LEN_COPYSIGN:
16457 : 0 : if (call_expr_nargs (_q40) == 6)
16458 : : {
16459 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16460 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16461 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16462 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16463 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16464 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16465 : 0 : {
16466 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16467 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16468 : 0 : if (res) return res;
16469 : : }
16470 : : }
16471 : : break;
16472 : : default:;
16473 : : }
16474 : : break;
16475 : : default:;
16476 : : }
16477 : : break;
16478 : : }
16479 : 12 : case CALL_EXPR:
16480 : 12 : switch (get_call_combined_fn (_p2))
16481 : : {
16482 : 0 : case CFN_COND_LEN_ADD:
16483 : 0 : if (call_expr_nargs (_p2) == 6)
16484 : : {
16485 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16486 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16487 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16488 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16489 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16490 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16491 : 0 : {
16492 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16493 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16494 : 0 : if (res) return res;
16495 : : }
16496 : : }
16497 : : break;
16498 : 0 : case CFN_COND_LEN_AND:
16499 : 0 : if (call_expr_nargs (_p2) == 6)
16500 : : {
16501 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16502 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16503 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16504 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16505 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16506 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16507 : 0 : {
16508 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16509 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16510 : 0 : if (res) return res;
16511 : : }
16512 : : }
16513 : : break;
16514 : 0 : case CFN_COND_LEN_DIV:
16515 : 0 : if (call_expr_nargs (_p2) == 6)
16516 : : {
16517 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16518 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16519 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16520 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16521 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16522 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16523 : 0 : {
16524 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16525 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16526 : 0 : if (res) return res;
16527 : : }
16528 : : }
16529 : : break;
16530 : 0 : case CFN_COND_LEN_IOR:
16531 : 0 : if (call_expr_nargs (_p2) == 6)
16532 : : {
16533 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16534 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16535 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16536 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16537 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16538 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16539 : 0 : {
16540 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16541 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16542 : 0 : if (res) return res;
16543 : : }
16544 : : }
16545 : : break;
16546 : 0 : case CFN_COND_LEN_MAX:
16547 : 0 : if (call_expr_nargs (_p2) == 6)
16548 : : {
16549 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16550 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16551 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16552 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16553 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16554 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16555 : 0 : {
16556 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16557 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16558 : 0 : if (res) return res;
16559 : : }
16560 : : }
16561 : : break;
16562 : 0 : case CFN_COND_LEN_MIN:
16563 : 0 : if (call_expr_nargs (_p2) == 6)
16564 : : {
16565 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16566 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16567 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16568 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16569 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16570 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16571 : 0 : {
16572 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16573 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16574 : 0 : if (res) return res;
16575 : : }
16576 : : }
16577 : : break;
16578 : 0 : case CFN_COND_LEN_MOD:
16579 : 0 : if (call_expr_nargs (_p2) == 6)
16580 : : {
16581 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16582 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16583 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16584 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16585 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16586 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16587 : 0 : {
16588 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16589 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16590 : 0 : if (res) return res;
16591 : : }
16592 : : }
16593 : : break;
16594 : 0 : case CFN_COND_LEN_MUL:
16595 : 0 : if (call_expr_nargs (_p2) == 6)
16596 : : {
16597 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16598 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16599 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16600 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16601 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16602 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16603 : 0 : {
16604 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16605 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16606 : 0 : if (res) return res;
16607 : : }
16608 : : }
16609 : : break;
16610 : 0 : case CFN_COND_LEN_SHL:
16611 : 0 : if (call_expr_nargs (_p2) == 6)
16612 : : {
16613 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16614 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16615 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16616 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16617 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16618 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16619 : 0 : {
16620 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16621 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16622 : 0 : if (res) return res;
16623 : : }
16624 : : }
16625 : : break;
16626 : 0 : case CFN_COND_LEN_SHR:
16627 : 0 : if (call_expr_nargs (_p2) == 6)
16628 : : {
16629 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16630 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16631 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16632 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16633 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16634 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16635 : 0 : {
16636 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16637 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16638 : 0 : if (res) return res;
16639 : : }
16640 : : }
16641 : : break;
16642 : 0 : case CFN_COND_LEN_SUB:
16643 : 0 : if (call_expr_nargs (_p2) == 6)
16644 : : {
16645 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16646 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16647 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16648 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16649 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16650 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16651 : 0 : {
16652 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16653 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16654 : 0 : if (res) return res;
16655 : : }
16656 : : }
16657 : : break;
16658 : 0 : case CFN_COND_LEN_XOR:
16659 : 0 : if (call_expr_nargs (_p2) == 6)
16660 : : {
16661 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16662 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16663 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16664 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16665 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16666 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16667 : 0 : {
16668 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16669 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16670 : 0 : if (res) return res;
16671 : : }
16672 : : }
16673 : : break;
16674 : 0 : case CFN_COND_LEN_FMAX:
16675 : 0 : if (call_expr_nargs (_p2) == 6)
16676 : : {
16677 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16678 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16679 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16680 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16681 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16682 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16683 : 0 : {
16684 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16685 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16686 : 0 : if (res) return res;
16687 : : }
16688 : : }
16689 : : break;
16690 : 0 : case CFN_COND_LEN_FMIN:
16691 : 0 : if (call_expr_nargs (_p2) == 6)
16692 : : {
16693 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16694 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16695 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16696 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16697 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16698 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16699 : 0 : {
16700 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16701 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16702 : 0 : if (res) return res;
16703 : : }
16704 : : }
16705 : : break;
16706 : 0 : case CFN_COND_LEN_RDIV:
16707 : 0 : if (call_expr_nargs (_p2) == 6)
16708 : : {
16709 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16710 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16711 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16712 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16713 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16714 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16715 : 0 : {
16716 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16717 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16718 : 0 : if (res) return res;
16719 : : }
16720 : : }
16721 : : break;
16722 : 0 : case CFN_COND_LEN_COPYSIGN:
16723 : 0 : if (call_expr_nargs (_p2) == 6)
16724 : : {
16725 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16726 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16727 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16728 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16729 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16730 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16731 : 0 : {
16732 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16733 : 0 : tree res = generic_simplify_531 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16734 : 0 : if (res) return res;
16735 : : }
16736 : : }
16737 : : break;
16738 : : default:;
16739 : : }
16740 : : break;
16741 : 309399 : default:;
16742 : : }
16743 : 309399 : switch (TREE_CODE (_p1))
16744 : : {
16745 : 0 : case VIEW_CONVERT_EXPR:
16746 : 0 : {
16747 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16748 : 0 : switch (TREE_CODE (_q30))
16749 : : {
16750 : 0 : case CALL_EXPR:
16751 : 0 : switch (get_call_combined_fn (_q30))
16752 : : {
16753 : 0 : case CFN_COND_LEN_FMA:
16754 : 0 : if (call_expr_nargs (_q30) == 7)
16755 : : {
16756 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16757 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16758 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16759 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16760 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16761 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16762 : 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16763 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16764 : : {
16765 : 0 : {
16766 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16767 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16768 : 0 : if (res) return res;
16769 : : }
16770 : : }
16771 : : }
16772 : : break;
16773 : 0 : case CFN_COND_LEN_FMS:
16774 : 0 : if (call_expr_nargs (_q30) == 7)
16775 : : {
16776 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16777 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16778 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16779 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16780 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16781 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16782 : 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16783 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16784 : : {
16785 : 0 : {
16786 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16787 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16788 : 0 : if (res) return res;
16789 : : }
16790 : : }
16791 : : }
16792 : : break;
16793 : 0 : case CFN_COND_LEN_FNMA:
16794 : 0 : if (call_expr_nargs (_q30) == 7)
16795 : : {
16796 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16797 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16798 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16799 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16800 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16801 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16802 : 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16803 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16804 : : {
16805 : 0 : {
16806 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16807 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16808 : 0 : if (res) return res;
16809 : : }
16810 : : }
16811 : : }
16812 : : break;
16813 : 0 : case CFN_COND_LEN_FNMS:
16814 : 0 : if (call_expr_nargs (_q30) == 7)
16815 : : {
16816 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16817 : 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16818 : 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16819 : 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16820 : 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16821 : 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16822 : 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16823 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16824 : : {
16825 : 0 : {
16826 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16827 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16828 : 0 : if (res) return res;
16829 : : }
16830 : : }
16831 : : }
16832 : : break;
16833 : : default:;
16834 : : }
16835 : : break;
16836 : : default:;
16837 : : }
16838 : : break;
16839 : : }
16840 : 12 : case CALL_EXPR:
16841 : 12 : switch (get_call_combined_fn (_p1))
16842 : : {
16843 : 0 : case CFN_COND_LEN_FMA:
16844 : 0 : if (call_expr_nargs (_p1) == 7)
16845 : : {
16846 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16847 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16848 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16849 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16850 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16851 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16852 : 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16853 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16854 : : {
16855 : 0 : {
16856 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16857 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16858 : 0 : if (res) return res;
16859 : : }
16860 : : }
16861 : : }
16862 : : break;
16863 : 0 : case CFN_COND_LEN_FMS:
16864 : 0 : if (call_expr_nargs (_p1) == 7)
16865 : : {
16866 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16867 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16868 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16869 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16870 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16871 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16872 : 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16873 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16874 : : {
16875 : 0 : {
16876 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16877 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16878 : 0 : if (res) return res;
16879 : : }
16880 : : }
16881 : : }
16882 : : break;
16883 : 0 : case CFN_COND_LEN_FNMA:
16884 : 0 : if (call_expr_nargs (_p1) == 7)
16885 : : {
16886 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16887 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16888 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16889 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16890 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16891 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16892 : 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16893 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16894 : : {
16895 : 0 : {
16896 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16897 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16898 : 0 : if (res) return res;
16899 : : }
16900 : : }
16901 : : }
16902 : : break;
16903 : 0 : case CFN_COND_LEN_FNMS:
16904 : 0 : if (call_expr_nargs (_p1) == 7)
16905 : : {
16906 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16907 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16908 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16909 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16910 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16911 : 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16912 : 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16913 : 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16914 : : {
16915 : 0 : {
16916 : 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16917 : 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16918 : 0 : if (res) return res;
16919 : : }
16920 : : }
16921 : : }
16922 : : break;
16923 : : default:;
16924 : : }
16925 : : break;
16926 : 309399 : default:;
16927 : : }
16928 : 309399 : switch (TREE_CODE (_p2))
16929 : : {
16930 : 0 : case VIEW_CONVERT_EXPR:
16931 : 0 : {
16932 : 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16933 : 0 : switch (TREE_CODE (_q40))
16934 : : {
16935 : 0 : case CALL_EXPR:
16936 : 0 : switch (get_call_combined_fn (_q40))
16937 : : {
16938 : 0 : case CFN_COND_LEN_FMA:
16939 : 0 : if (call_expr_nargs (_q40) == 7)
16940 : : {
16941 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16942 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16943 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16944 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16945 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16946 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16947 : 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16948 : 0 : {
16949 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16950 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16951 : 0 : if (res) return res;
16952 : : }
16953 : : }
16954 : : break;
16955 : 0 : case CFN_COND_LEN_FMS:
16956 : 0 : if (call_expr_nargs (_q40) == 7)
16957 : : {
16958 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16959 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16960 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16961 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16962 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16963 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16964 : 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16965 : 0 : {
16966 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16967 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16968 : 0 : if (res) return res;
16969 : : }
16970 : : }
16971 : : break;
16972 : 0 : case CFN_COND_LEN_FNMA:
16973 : 0 : if (call_expr_nargs (_q40) == 7)
16974 : : {
16975 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16976 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16977 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16978 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16979 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16980 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16981 : 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16982 : 0 : {
16983 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16984 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16985 : 0 : if (res) return res;
16986 : : }
16987 : : }
16988 : : break;
16989 : 0 : case CFN_COND_LEN_FNMS:
16990 : 0 : if (call_expr_nargs (_q40) == 7)
16991 : : {
16992 : 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16993 : 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16994 : 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16995 : 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16996 : 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16997 : 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16998 : 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16999 : 0 : {
17000 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
17001 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17002 : 0 : if (res) return res;
17003 : : }
17004 : : }
17005 : : break;
17006 : : default:;
17007 : : }
17008 : : break;
17009 : : default:;
17010 : : }
17011 : : break;
17012 : : }
17013 : 12 : case CALL_EXPR:
17014 : 12 : switch (get_call_combined_fn (_p2))
17015 : : {
17016 : 0 : case CFN_COND_LEN_FMA:
17017 : 0 : if (call_expr_nargs (_p2) == 7)
17018 : : {
17019 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17020 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17021 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17022 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17023 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17024 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17025 : 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17026 : 0 : {
17027 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17028 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
17029 : 0 : if (res) return res;
17030 : : }
17031 : : }
17032 : : break;
17033 : 0 : case CFN_COND_LEN_FMS:
17034 : 0 : if (call_expr_nargs (_p2) == 7)
17035 : : {
17036 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17037 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17038 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17039 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17040 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17041 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17042 : 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17043 : 0 : {
17044 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17045 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
17046 : 0 : if (res) return res;
17047 : : }
17048 : : }
17049 : : break;
17050 : 0 : case CFN_COND_LEN_FNMA:
17051 : 0 : if (call_expr_nargs (_p2) == 7)
17052 : : {
17053 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17054 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17055 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17056 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17057 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17058 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17059 : 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17060 : 0 : {
17061 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17062 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
17063 : 0 : if (res) return res;
17064 : : }
17065 : : }
17066 : : break;
17067 : 0 : case CFN_COND_LEN_FNMS:
17068 : 0 : if (call_expr_nargs (_p2) == 7)
17069 : : {
17070 : 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17071 : 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17072 : 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17073 : 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17074 : 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17075 : 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17076 : 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17077 : 0 : {
17078 : 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17079 : 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17080 : 0 : if (res) return res;
17081 : : }
17082 : : }
17083 : : break;
17084 : : default:;
17085 : : }
17086 : : break;
17087 : 309399 : default:;
17088 : : }
17089 : 309399 : switch (TREE_CODE (_p1))
17090 : : {
17091 : 12 : case CALL_EXPR:
17092 : 12 : switch (get_call_combined_fn (_p1))
17093 : : {
17094 : 0 : case CFN_COND_ADD:
17095 : 0 : if (call_expr_nargs (_p1) == 4)
17096 : : {
17097 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17098 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17099 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17100 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17101 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17102 : : {
17103 : 0 : {
17104 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17105 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
17106 : 0 : if (res) return res;
17107 : : }
17108 : : }
17109 : : }
17110 : : break;
17111 : 0 : case CFN_COND_AND:
17112 : 0 : if (call_expr_nargs (_p1) == 4)
17113 : : {
17114 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17115 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17116 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17117 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17118 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17119 : : {
17120 : 0 : {
17121 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17122 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
17123 : 0 : if (res) return res;
17124 : : }
17125 : : }
17126 : : }
17127 : : break;
17128 : 0 : case CFN_COND_DIV:
17129 : 0 : if (call_expr_nargs (_p1) == 4)
17130 : : {
17131 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17132 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17133 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17134 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17135 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17136 : : {
17137 : 0 : {
17138 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17139 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
17140 : 0 : if (res) return res;
17141 : : }
17142 : : }
17143 : : }
17144 : : break;
17145 : 0 : case CFN_COND_FMA:
17146 : 0 : if (call_expr_nargs (_p1) == 5)
17147 : : {
17148 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17149 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17150 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17151 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17152 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17153 : 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17154 : : {
17155 : 0 : {
17156 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17157 : 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
17158 : 0 : if (res) return res;
17159 : : }
17160 : : }
17161 : : }
17162 : : break;
17163 : 0 : case CFN_COND_FMS:
17164 : 0 : if (call_expr_nargs (_p1) == 5)
17165 : : {
17166 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17167 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17168 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17169 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17170 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17171 : 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17172 : : {
17173 : 0 : {
17174 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17175 : 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
17176 : 0 : if (res) return res;
17177 : : }
17178 : : }
17179 : : }
17180 : : break;
17181 : 0 : case CFN_COND_IOR:
17182 : 0 : if (call_expr_nargs (_p1) == 4)
17183 : : {
17184 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17185 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17186 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17187 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17188 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17189 : : {
17190 : 0 : {
17191 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17192 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
17193 : 0 : if (res) return res;
17194 : : }
17195 : : }
17196 : : }
17197 : : break;
17198 : 0 : case CFN_COND_MAX:
17199 : 0 : if (call_expr_nargs (_p1) == 4)
17200 : : {
17201 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17202 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17203 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17204 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17205 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17206 : : {
17207 : 0 : {
17208 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17209 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
17210 : 0 : if (res) return res;
17211 : : }
17212 : : }
17213 : : }
17214 : : break;
17215 : 0 : case CFN_COND_MIN:
17216 : 0 : if (call_expr_nargs (_p1) == 4)
17217 : : {
17218 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17219 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17220 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17221 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17222 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17223 : : {
17224 : 0 : {
17225 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17226 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
17227 : 0 : if (res) return res;
17228 : : }
17229 : : }
17230 : : }
17231 : : break;
17232 : 0 : case CFN_COND_MOD:
17233 : 0 : if (call_expr_nargs (_p1) == 4)
17234 : : {
17235 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17236 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17237 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17238 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17239 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17240 : : {
17241 : 0 : {
17242 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17243 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
17244 : 0 : if (res) return res;
17245 : : }
17246 : : }
17247 : : }
17248 : : break;
17249 : 0 : case CFN_COND_MUL:
17250 : 0 : if (call_expr_nargs (_p1) == 4)
17251 : : {
17252 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17253 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17254 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17255 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17256 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17257 : : {
17258 : 0 : {
17259 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17260 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
17261 : 0 : if (res) return res;
17262 : : }
17263 : : }
17264 : : }
17265 : : break;
17266 : 0 : case CFN_COND_SHL:
17267 : 0 : if (call_expr_nargs (_p1) == 4)
17268 : : {
17269 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17270 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17271 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17272 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17273 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17274 : : {
17275 : 0 : {
17276 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17277 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
17278 : 0 : if (res) return res;
17279 : : }
17280 : : }
17281 : : }
17282 : : break;
17283 : 0 : case CFN_COND_SHR:
17284 : 0 : if (call_expr_nargs (_p1) == 4)
17285 : : {
17286 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17287 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17288 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17289 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17290 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17291 : : {
17292 : 0 : {
17293 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17294 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
17295 : 0 : if (res) return res;
17296 : : }
17297 : : }
17298 : : }
17299 : : break;
17300 : 0 : case CFN_COND_SUB:
17301 : 0 : if (call_expr_nargs (_p1) == 4)
17302 : : {
17303 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17304 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17305 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17306 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17307 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17308 : : {
17309 : 0 : {
17310 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17311 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
17312 : 0 : if (res) return res;
17313 : : }
17314 : : }
17315 : : }
17316 : : break;
17317 : 0 : case CFN_COND_XOR:
17318 : 0 : if (call_expr_nargs (_p1) == 4)
17319 : : {
17320 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17321 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17322 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17323 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17324 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17325 : : {
17326 : 0 : {
17327 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17328 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
17329 : 0 : if (res) return res;
17330 : : }
17331 : : }
17332 : : }
17333 : : break;
17334 : 0 : case CFN_COND_COPYSIGN:
17335 : 0 : if (call_expr_nargs (_p1) == 4)
17336 : : {
17337 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17338 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17339 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17340 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17341 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17342 : : {
17343 : 0 : {
17344 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17345 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
17346 : 0 : if (res) return res;
17347 : : }
17348 : : }
17349 : : }
17350 : : break;
17351 : 0 : case CFN_COND_FMAX:
17352 : 0 : if (call_expr_nargs (_p1) == 4)
17353 : : {
17354 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17355 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17356 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17357 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17358 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17359 : : {
17360 : 0 : {
17361 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17362 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17363 : 0 : if (res) return res;
17364 : : }
17365 : : }
17366 : : }
17367 : : break;
17368 : 0 : case CFN_COND_FMIN:
17369 : 0 : if (call_expr_nargs (_p1) == 4)
17370 : : {
17371 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17372 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17373 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17374 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17375 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17376 : : {
17377 : 0 : {
17378 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17379 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17380 : 0 : if (res) return res;
17381 : : }
17382 : : }
17383 : : }
17384 : : break;
17385 : 0 : case CFN_COND_FNMA:
17386 : 0 : if (call_expr_nargs (_p1) == 5)
17387 : : {
17388 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17389 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17390 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17391 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17392 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17393 : 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17394 : : {
17395 : 0 : {
17396 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17397 : 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17398 : 0 : if (res) return res;
17399 : : }
17400 : : }
17401 : : }
17402 : : break;
17403 : 0 : case CFN_COND_FNMS:
17404 : 0 : if (call_expr_nargs (_p1) == 5)
17405 : : {
17406 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17407 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17408 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17409 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17410 : 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17411 : 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17412 : : {
17413 : 0 : {
17414 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17415 : 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17416 : 0 : if (res) return res;
17417 : : }
17418 : : }
17419 : : }
17420 : : break;
17421 : 0 : case CFN_COND_RDIV:
17422 : 0 : if (call_expr_nargs (_p1) == 4)
17423 : : {
17424 : 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17425 : 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17426 : 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17427 : 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17428 : 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17429 : : {
17430 : 0 : {
17431 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17432 : 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17433 : 0 : if (res) return res;
17434 : : }
17435 : : }
17436 : : }
17437 : : break;
17438 : : default:;
17439 : : }
17440 : : break;
17441 : : default:;
17442 : : }
17443 : : return NULL_TREE;
17444 : : }
17445 : : #pragma GCC diagnostic pop
|