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 197949674 : tree_maybe_bit_not (tree t, tree *res_ops)
11 : {
12 197949674 : const tree type = TREE_TYPE (t);
13 197949674 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 197949674 : if (TREE_SIDE_EFFECTS (t)) return false;
15 188741657 : switch (TREE_CODE (t))
16 : {
17 62628836 : case INTEGER_CST:
18 62628836 : {
19 62628836 : {
20 62628836 : tree captures[1] ATTRIBUTE_UNUSED = { t };
21 62628836 : {
22 62628836 : res_ops[0] = captures[0];
23 62628836 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 8, __FILE__, __LINE__, false);
24 : return true;
25 : }
26 : }
27 126112821 : break;
28 : }
29 126112821 : default:;
30 : }
31 126112821 : {
32 126112821 : tree t_pops[1];
33 126112821 : if (tree_bit_not_with_nop (t, t_pops))
34 : {
35 145146 : tree _p0 = t_pops[0];
36 145146 : {
37 145146 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
38 145146 : {
39 145146 : res_ops[0] = captures[0];
40 145146 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 9, __FILE__, __LINE__, false);
41 145146 : return true;
42 : }
43 : }
44 : }
45 : }
46 125967675 : {
47 125967675 : tree t_pops[1];
48 125967675 : if (tree_maybe_cmp (t, t_pops))
49 : {
50 531459 : tree _p0 = t_pops[0];
51 531459 : {
52 531459 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
53 531459 : {
54 531459 : res_ops[0] = captures[0];
55 531459 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 10, __FILE__, __LINE__, false);
56 531459 : return true;
57 : }
58 : }
59 : }
60 : }
61 125436216 : {
62 125436216 : tree t_pops[2];
63 125436216 : if (tree_bit_xor_cst (t, t_pops))
64 : {
65 1601 : tree _p0 = t_pops[0];
66 1601 : tree _p1 = t_pops[1];
67 1601 : {
68 1601 : tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
69 1601 : {
70 1601 : res_ops[0] = captures[0];
71 1601 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 11, __FILE__, __LINE__, false);
72 1601 : return true;
73 : }
74 : }
75 : }
76 : }
77 125434615 : return false;
78 : }
79 :
80 : bool
81 2395 : tree_min_value (tree t)
82 : {
83 2395 : const tree type = TREE_TYPE (t);
84 2395 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
85 2395 : if (TREE_SIDE_EFFECTS (t)) return false;
86 2387 : if (uniform_integer_cst_p (t))
87 : {
88 2129 : {
89 2129 : {
90 2129 : tree int_cst = uniform_integer_cst_p (t);
91 2129 : tree inner_type = TREE_TYPE (int_cst);
92 4258 : if ((INTEGRAL_TYPE_P (inner_type)
93 17 : || POINTER_TYPE_P (inner_type))
94 4275 : && wi::eq_p (wi::to_wide (int_cst), wi::min_value (inner_type))
95 : )
96 : {
97 138 : {
98 138 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 41, __FILE__, __LINE__, false);
99 138 : return true;
100 : }
101 : }
102 : }
103 : }
104 : }
105 : return false;
106 : }
107 :
108 : tree
109 3 : generic_simplify_1 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
110 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
111 : const enum tree_code ARG_UNUSED (op))
112 : {
113 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
114 3 : if (!flag_trapping_math
115 : )
116 : {
117 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail72;
118 2 : {
119 2 : tree res_op0;
120 2 : res_op0 = captures[0];
121 2 : tree _r;
122 2 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
123 2 : if (TREE_SIDE_EFFECTS (captures[1]))
124 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
125 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 49, __FILE__, __LINE__, true);
126 2 : return _r;
127 : }
128 0 : next_after_fail72:;
129 : }
130 : return NULL_TREE;
131 : }
132 :
133 : tree
134 45 : generic_simplify_8 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
135 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
136 : {
137 45 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
138 45 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail80;
139 45 : {
140 45 : if (! tree_invariant_p (captures[2])) goto next_after_fail80;
141 45 : tree res_op0;
142 45 : {
143 45 : tree _o1[2], _r1;
144 45 : _o1[0] = captures[0];
145 45 : _o1[1] = unshare_expr (captures[2]);
146 45 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
147 45 : res_op0 = _r1;
148 : }
149 45 : tree res_op1;
150 45 : {
151 45 : tree _o1[1], _r1;
152 45 : _o1[0] = captures[2];
153 45 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
154 45 : res_op1 = _r1;
155 : }
156 45 : tree _r;
157 45 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
158 45 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 57, __FILE__, __LINE__, true);
159 : return _r;
160 : }
161 : next_after_fail80:;
162 : return NULL_TREE;
163 : }
164 :
165 : tree
166 242477 : generic_simplify_18 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
167 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
168 : const enum tree_code ARG_UNUSED (outer_op))
169 : {
170 242477 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
171 242477 : if (!TYPE_SATURATING (type)
172 : )
173 : {
174 242477 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
175 484947 : && !FIXED_POINT_TYPE_P (type)
176 : )
177 : {
178 242470 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
179 : )
180 : {
181 229234 : if (!CONSTANT_CLASS_P (captures[1])
182 : )
183 : {
184 229234 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail96;
185 229234 : {
186 229234 : tree res_op0;
187 229234 : {
188 229234 : tree _o1[2], _r1;
189 229234 : {
190 229234 : tree _o2[1], _r2;
191 229234 : _o2[0] = captures[0];
192 229234 : if (TREE_TYPE (_o2[0]) != type)
193 : {
194 3549 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
195 : }
196 : else
197 : _r2 = _o2[0];
198 229234 : _o1[0] = _r2;
199 : }
200 229234 : _o1[1] = captures[2];
201 229234 : _r1 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
202 229234 : if (EXPR_P (_r1))
203 0 : goto next_after_fail96;
204 229234 : res_op0 = _r1;
205 : }
206 229234 : tree res_op1;
207 229234 : {
208 229234 : tree _o1[1], _r1;
209 229234 : _o1[0] = captures[1];
210 229234 : if (TREE_TYPE (_o1[0]) != type)
211 : {
212 3568 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
213 : }
214 : else
215 : _r1 = _o1[0];
216 229234 : res_op1 = _r1;
217 : }
218 229234 : tree _r;
219 229234 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
220 229234 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 73, __FILE__, __LINE__, true);
221 229234 : return _r;
222 : }
223 : next_after_fail96:;
224 : }
225 : }
226 : else
227 : {
228 26472 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
229 26472 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
230 : )
231 : {
232 2321 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
233 2321 : {
234 2321 : tree res_op0;
235 2321 : {
236 2321 : tree _o1[2], _r1;
237 2321 : {
238 2321 : tree _o2[2], _r2;
239 2321 : _o2[0] = captures[0];
240 2321 : {
241 2321 : tree _o3[1], _r3;
242 2321 : _o3[0] = captures[2];
243 2321 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
244 : {
245 2321 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
246 : }
247 : else
248 : _r3 = _o3[0];
249 2321 : _o2[1] = _r3;
250 : }
251 2321 : _r2 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
252 2321 : if (EXPR_P (_r2))
253 0 : goto next_after_fail97;
254 2321 : _o1[0] = _r2;
255 : }
256 2321 : _o1[1] = captures[1];
257 2321 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
258 2321 : res_op0 = _r1;
259 : }
260 2321 : tree _r;
261 2321 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
262 2321 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 74, __FILE__, __LINE__, true);
263 2321 : return _r;
264 : }
265 : next_after_fail97:;
266 : }
267 : else
268 : {
269 10915 : if (types_match (type, captures[1]) && !TYPE_OVERFLOW_SANITIZED (type)
270 : )
271 : {
272 10887 : {
273 10887 : tree cst = const_binop (outer_op, type, captures[0], captures[2]);
274 10887 : if (cst && !TREE_OVERFLOW (cst)
275 : )
276 : {
277 10880 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail98;
278 10880 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail98;
279 10880 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail98;
280 10880 : {
281 10880 : tree res_op0;
282 10880 : res_op0 = cst;
283 10880 : tree res_op1;
284 10880 : res_op1 = captures[1];
285 10880 : tree _r;
286 10880 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
287 10880 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
288 10880 : return _r;
289 : }
290 : next_after_fail98:;
291 : }
292 : }
293 : }
294 : }
295 : }
296 : }
297 : }
298 : return NULL_TREE;
299 : }
300 :
301 : tree
302 1 : generic_simplify_41 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
303 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
304 : {
305 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
306 1 : if (INTEGRAL_TYPE_P (type)
307 : )
308 : {
309 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail123;
310 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail123;
311 1 : {
312 1 : tree res_op0;
313 1 : res_op0 = unshare_expr (captures[1]);
314 1 : tree res_op1;
315 1 : {
316 1 : tree _o1[2], _r1;
317 1 : _o1[0] = captures[4];
318 1 : _o1[1] = captures[1];
319 1 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
320 1 : res_op1 = _r1;
321 : }
322 1 : tree _r;
323 1 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
324 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
325 1 : return _r;
326 : }
327 : next_after_fail123:;
328 : }
329 : return NULL_TREE;
330 : }
331 :
332 : tree
333 272 : generic_simplify_48 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
334 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
335 : {
336 272 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
337 272 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
338 272 : && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
339 : )
340 : {
341 272 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail130;
342 272 : {
343 272 : tree res_op0;
344 272 : {
345 272 : tree _o1[2], _r1;
346 272 : {
347 272 : tree _o2[1], _r2;
348 272 : _o2[0] = captures[3];
349 272 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
350 272 : _o1[0] = _r2;
351 : }
352 272 : _o1[1] = captures[0];
353 272 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
354 272 : res_op0 = _r1;
355 : }
356 272 : tree _r;
357 272 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
358 272 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 106, __FILE__, __LINE__, true);
359 272 : return _r;
360 : }
361 0 : next_after_fail130:;
362 : }
363 : return NULL_TREE;
364 : }
365 :
366 : tree
367 41 : generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
368 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
369 : {
370 41 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
371 41 : if (!TYPE_SATURATING (type)
372 : )
373 : {
374 41 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
375 82 : && !FIXED_POINT_TYPE_P (type)
376 : )
377 : {
378 82 : if (!TYPE_OVERFLOW_TRAPS (type)
379 41 : && TREE_CODE (type) != COMPLEX_TYPE
380 81 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
381 : )
382 : {
383 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail142;
384 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail142;
385 40 : {
386 40 : tree res_op0;
387 40 : {
388 40 : tree _o1[1], _r1;
389 40 : _o1[0] = captures[0];
390 40 : if (TREE_TYPE (_o1[0]) != type)
391 : {
392 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
393 : }
394 : else
395 : _r1 = _o1[0];
396 40 : res_op0 = _r1;
397 : }
398 40 : tree _r;
399 40 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
400 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 118, __FILE__, __LINE__, true);
401 40 : return _r;
402 : }
403 : next_after_fail142:;
404 : }
405 : }
406 : }
407 : return NULL_TREE;
408 : }
409 :
410 : tree
411 0 : generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
412 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
413 : {
414 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
415 0 : if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
416 : )
417 : {
418 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail152;
419 0 : {
420 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail152;
421 0 : tree res_op0;
422 0 : {
423 0 : tree _o1[2], _r1;
424 0 : {
425 0 : tree _o2[3], _r2;
426 0 : _o2[0] = unshare_expr (captures[2]);
427 0 : _o2[1] = captures[2];
428 0 : _o2[2] = captures[4];
429 0 : _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
430 0 : _o1[0] = _r2;
431 : }
432 0 : _o1[1] = captures[3];
433 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
434 0 : res_op0 = _r1;
435 : }
436 0 : tree res_op1;
437 0 : res_op1 = captures[5];
438 0 : tree _r;
439 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
440 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 128, __FILE__, __LINE__, true);
441 0 : return _r;
442 : }
443 : next_after_fail152:;
444 : }
445 : return NULL_TREE;
446 : }
447 :
448 : tree
449 19629 : generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
450 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
451 : {
452 19629 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
453 19629 : {
454 19629 : bool wascmp;
455 19629 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
456 19629 : && (!wascmp || element_precision (type) == 1)
457 : )
458 : {
459 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail159;
460 1 : {
461 1 : tree res_op0;
462 1 : res_op0 = captures[0];
463 1 : tree res_op1;
464 1 : {
465 1 : tree _o1[1], _r1;
466 1 : _o1[0] = captures[3];
467 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
468 1 : res_op1 = _r1;
469 : }
470 1 : tree _r;
471 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
472 1 : if (TREE_SIDE_EFFECTS (captures[2]))
473 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
474 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 135, __FILE__, __LINE__, true);
475 1 : return _r;
476 : }
477 0 : next_after_fail159:;
478 : }
479 : }
480 19628 : return NULL_TREE;
481 : }
482 :
483 : tree
484 0 : generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
485 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
486 : const enum tree_code ARG_UNUSED (op))
487 : {
488 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
489 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail173;
490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail173;
491 0 : {
492 0 : tree _r;
493 0 : _r = captures[0];
494 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 142, __FILE__, __LINE__, true);
495 : return _r;
496 : }
497 : next_after_fail173:;
498 : return NULL_TREE;
499 : }
500 :
501 : tree
502 15 : generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
503 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
504 : const enum tree_code ARG_UNUSED (bitop))
505 : {
506 15 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
507 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail182;
508 15 : {
509 15 : tree res_op0;
510 15 : res_op0 = captures[0];
511 15 : tree res_op1;
512 15 : {
513 15 : tree _o1[1], _r1;
514 15 : _o1[0] = captures[2];
515 15 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
516 15 : res_op1 = _r1;
517 : }
518 15 : tree _r;
519 15 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
520 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 149, __FILE__, __LINE__, true);
521 : return _r;
522 : }
523 0 : next_after_fail182:;
524 0 : return NULL_TREE;
525 : }
526 :
527 : tree
528 0 : generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
529 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
530 : const enum tree_code ARG_UNUSED (op))
531 : {
532 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
533 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
534 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
535 : )
536 : {
537 0 : if (single_use (captures[4]) && single_use (captures[5])
538 : )
539 : {
540 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail193;
541 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail193;
542 0 : {
543 0 : tree res_op0;
544 0 : res_op0 = captures[0];
545 0 : tree res_op1;
546 0 : {
547 0 : tree _o1[1], _r1;
548 0 : _o1[0] = captures[6];
549 0 : if (TREE_TYPE (_o1[0]) != type)
550 : {
551 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
552 : }
553 : else
554 : _r1 = _o1[0];
555 0 : res_op1 = _r1;
556 : }
557 0 : tree _r;
558 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
559 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
560 0 : return _r;
561 : }
562 : next_after_fail193:;
563 : }
564 : else
565 : {
566 : if (single_use (captures[0]) && single_use (captures[1])
567 : )
568 : {
569 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail194;
570 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail194;
571 : {
572 : tree res_op0;
573 : {
574 : tree _o1[1], _r1;
575 : _o1[0] = captures[3];
576 : if (TREE_TYPE (_o1[0]) != type)
577 : {
578 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
579 : }
580 : else
581 : _r1 = _o1[0];
582 : res_op0 = _r1;
583 : }
584 : tree res_op1;
585 : res_op1 = captures[4];
586 : tree _r;
587 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
588 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 157, __FILE__, __LINE__, true);
589 : return _r;
590 : }
591 : next_after_fail194:;
592 : }
593 : }
594 : }
595 : return NULL_TREE;
596 : }
597 :
598 : tree
599 0 : generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
600 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
601 : const enum tree_code ARG_UNUSED (op))
602 : {
603 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
604 0 : if (bitwise_equal_p (captures[4], captures[7])
605 : )
606 : {
607 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail211;
608 0 : {
609 0 : tree res_op0;
610 0 : {
611 0 : tree _o1[2], _r1;
612 0 : {
613 0 : tree _o2[2], _r2;
614 0 : _o2[0] = captures[5];
615 0 : {
616 0 : tree _o3[1], _r3;
617 0 : _o3[0] = captures[6];
618 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
619 : {
620 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
621 : }
622 : else
623 : _r3 = _o3[0];
624 0 : _o2[1] = _r3;
625 : }
626 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
627 0 : _o1[0] = _r2;
628 : }
629 0 : {
630 0 : tree _o2[1], _r2;
631 0 : _o2[0] = captures[4];
632 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
633 : {
634 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
635 : }
636 : else
637 : _r2 = _o2[0];
638 0 : _o1[1] = _r2;
639 : }
640 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
641 0 : res_op0 = _r1;
642 : }
643 0 : tree _r;
644 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
645 0 : if (TREE_SIDE_EFFECTS (captures[7]))
646 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
647 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 163, __FILE__, __LINE__, true);
648 0 : return _r;
649 : }
650 0 : next_after_fail211:;
651 : }
652 : return NULL_TREE;
653 : }
654 :
655 : tree
656 4 : generic_simplify_125 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
657 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
658 : {
659 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
660 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail228;
661 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail228;
662 4 : {
663 4 : tree _r;
664 4 : _r = captures[2];
665 4 : if (TREE_SIDE_EFFECTS (captures[1]))
666 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
667 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 181, __FILE__, __LINE__, true);
668 : return _r;
669 : }
670 : next_after_fail228:;
671 : return NULL_TREE;
672 : }
673 :
674 : tree
675 0 : generic_simplify_131 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
676 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
677 : const enum tree_code ARG_UNUSED (cmp))
678 : {
679 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
680 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail252;
681 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail252;
682 0 : {
683 0 : tree res_op0;
684 0 : {
685 0 : tree _o1[2], _r1;
686 0 : _o1[0] = build_zero_cst (TREE_TYPE (captures[0]));
687 0 : _o1[1] = captures[3];
688 0 : _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
689 0 : res_op0 = _r1;
690 : }
691 0 : tree res_op1;
692 0 : res_op1 = captures[4];
693 0 : tree _r;
694 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
695 0 : if (TREE_SIDE_EFFECTS (captures[2]))
696 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
697 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
698 : return _r;
699 : }
700 : next_after_fail252:;
701 : return NULL_TREE;
702 : }
703 :
704 : tree
705 417 : generic_simplify_138 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
706 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
707 : const enum tree_code ARG_UNUSED (code2),
708 : const enum tree_code ARG_UNUSED (code1))
709 : {
710 417 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
711 417 : if ((TREE_CODE (captures[2]) == INTEGER_CST
712 393 : && TREE_CODE (captures[5]) == INTEGER_CST)
713 417 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
714 1 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
715 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
716 24 : && bitwise_equal_p (captures[2], captures[5]))
717 : )
718 : {
719 393 : {
720 393 : bool one_before = false;
721 393 : bool one_after = false;
722 393 : int cmp = 0;
723 393 : bool allbits = true;
724 393 : if (TREE_CODE (captures[2]) == INTEGER_CST
725 393 : && TREE_CODE (captures[5]) == INTEGER_CST)
726 : {
727 393 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
728 393 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
729 393 : auto t2 = wi::to_wide (captures[5]);
730 393 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
731 393 : if (cmp < 0
732 393 : && t1 == t2 - 1)
733 : one_before = true;
734 393 : if (cmp > 0
735 393 : && t1 == t2 + 1)
736 : one_after = true;
737 : }
738 393 : bool val;
739 393 : switch (code2)
740 : {
741 384 : case EQ_EXPR: val = (cmp == 0); break;
742 0 : case NE_EXPR: val = (cmp != 0); break;
743 0 : case LT_EXPR: val = (cmp < 0); break;
744 9 : case GT_EXPR: val = (cmp > 0); break;
745 0 : case LE_EXPR: val = (cmp <= 0); break;
746 0 : case GE_EXPR: val = (cmp >= 0); break;
747 0 : default: gcc_unreachable ();
748 : }
749 393 : if (code1 == EQ_EXPR && val
750 : )
751 : {
752 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail266;
753 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail266;
754 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail266;
755 0 : {
756 0 : tree _r;
757 0 : _r = captures[3];
758 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
759 0 : return _r;
760 : }
761 : next_after_fail266:;
762 : }
763 : else
764 : {
765 393 : if (code1 == NE_EXPR && val && allbits
766 : )
767 : {
768 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail267;
769 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail267;
770 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail267;
771 0 : {
772 0 : tree _r;
773 0 : _r = constant_boolean_node (true, type);
774 0 : if (TREE_SIDE_EFFECTS (captures[4]))
775 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
776 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
777 0 : return _r;
778 : }
779 : next_after_fail267:;
780 : }
781 : else
782 : {
783 393 : if (code1 == NE_EXPR && !val && allbits
784 : )
785 : {
786 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail268;
787 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail268;
788 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail268;
789 0 : {
790 0 : tree _r;
791 0 : _r = captures[0];
792 0 : if (TREE_SIDE_EFFECTS (captures[4]))
793 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
794 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
795 0 : return _r;
796 : }
797 : next_after_fail268:;
798 : }
799 : else
800 : {
801 393 : if (code1 == EQ_EXPR
802 393 : && code2 == GT_EXPR
803 9 : && cmp == 0
804 9 : && allbits
805 393 : && ((VECTOR_BOOLEAN_TYPE_P (type)
806 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
807 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
808 : )
809 : {
810 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail269;
811 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail269;
812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail269;
813 0 : {
814 0 : tree res_op0;
815 0 : res_op0 = captures[4];
816 0 : tree res_op1;
817 0 : res_op1 = captures[5];
818 0 : tree _r;
819 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
820 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 187, __FILE__, __LINE__, true);
821 0 : return _r;
822 : }
823 : next_after_fail269:;
824 : }
825 : else
826 : {
827 393 : if (code1 == EQ_EXPR
828 393 : && code2 == LT_EXPR
829 0 : && cmp == 0
830 0 : && allbits
831 393 : && ((VECTOR_BOOLEAN_TYPE_P (type)
832 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
833 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
834 : )
835 : {
836 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail270;
837 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail270;
838 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail270;
839 0 : {
840 0 : tree res_op0;
841 0 : res_op0 = captures[4];
842 0 : tree res_op1;
843 0 : res_op1 = captures[5];
844 0 : tree _r;
845 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
846 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
847 0 : return _r;
848 : }
849 : next_after_fail270:;
850 : }
851 : else
852 : {
853 393 : if (code1 == EQ_EXPR
854 393 : && code2 == GE_EXPR
855 : && one_before
856 0 : && allbits
857 393 : && ((VECTOR_BOOLEAN_TYPE_P (type)
858 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
859 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
860 : )
861 : {
862 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail271;
863 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail271;
864 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail271;
865 0 : {
866 0 : tree res_op0;
867 0 : res_op0 = captures[4];
868 0 : tree res_op1;
869 0 : {
870 0 : tree _o1[1], _r1;
871 0 : _o1[0] = captures[2];
872 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
873 : {
874 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
875 : }
876 : else
877 : _r1 = _o1[0];
878 0 : res_op1 = _r1;
879 : }
880 0 : tree _r;
881 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
882 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 189, __FILE__, __LINE__, true);
883 0 : return _r;
884 : }
885 : next_after_fail271:;
886 : }
887 : else
888 : {
889 393 : if (code1 == EQ_EXPR
890 393 : && code2 == LE_EXPR
891 : && one_after
892 0 : && allbits
893 393 : && ((VECTOR_BOOLEAN_TYPE_P (type)
894 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
895 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
896 : )
897 : {
898 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail272;
899 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail272;
900 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail272;
901 0 : {
902 0 : tree res_op0;
903 0 : res_op0 = captures[4];
904 0 : tree res_op1;
905 0 : {
906 0 : tree _o1[1], _r1;
907 0 : _o1[0] = captures[2];
908 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
909 : {
910 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
911 : }
912 : else
913 : _r1 = _o1[0];
914 0 : res_op1 = _r1;
915 : }
916 0 : tree _r;
917 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
918 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 190, __FILE__, __LINE__, true);
919 0 : return _r;
920 : }
921 : next_after_fail272:;
922 : }
923 : }
924 : }
925 : }
926 : }
927 : }
928 : }
929 : }
930 : }
931 : return NULL_TREE;
932 : }
933 :
934 : tree
935 0 : generic_simplify_181 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
936 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
937 : const combined_fn ARG_UNUSED (copysigns))
938 : {
939 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
940 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail318;
941 0 : {
942 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail318;
943 0 : tree res_op0;
944 0 : res_op0 = unshare_expr (captures[1]);
945 0 : tree res_op1;
946 0 : res_op1 = captures[1];
947 0 : tree _r;
948 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
949 0 : if (TREE_SIDE_EFFECTS (captures[2]))
950 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
951 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 237, __FILE__, __LINE__, true);
952 : return _r;
953 : }
954 : next_after_fail318:;
955 : return NULL_TREE;
956 : }
957 :
958 : tree
959 171684 : generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
960 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
961 : {
962 171684 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
963 171684 : {
964 171684 : poly_widest_int factor;
965 171684 : if (multiple_p (wi::to_poly_widest (captures[2]), wi::to_widest (captures[1]), &factor)
966 : )
967 : {
968 51292 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail331;
969 51292 : {
970 51292 : tree res_op0;
971 51292 : {
972 51292 : tree _o1[1], _r1;
973 51292 : _o1[0] = captures[0];
974 51292 : if (TREE_TYPE (_o1[0]) != type)
975 : {
976 9710 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
977 : }
978 : else
979 : _r1 = _o1[0];
980 51292 : res_op0 = _r1;
981 : }
982 51292 : tree res_op1;
983 51292 : res_op1 = wide_int_to_tree (type, factor);
984 51292 : tree _r;
985 51292 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
986 51292 : if (TREE_SIDE_EFFECTS (captures[1]))
987 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
988 51292 : if (TREE_SIDE_EFFECTS (captures[2]))
989 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
990 51292 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
991 51292 : return _r;
992 : }
993 0 : next_after_fail331:;
994 : }
995 171684 : }
996 120392 : return NULL_TREE;
997 : }
998 :
999 : tree
1000 171 : generic_simplify_202 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1001 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1002 : const enum tree_code ARG_UNUSED (cmp))
1003 : {
1004 171 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1005 342 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1006 338 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
1007 : )
1008 : {
1009 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail342;
1010 3 : {
1011 3 : tree res_op0;
1012 3 : res_op0 = captures[0];
1013 3 : tree res_op1;
1014 3 : res_op1 = build_zero_cst (TREE_TYPE(captures[0]));
1015 3 : tree _r;
1016 3 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1017 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 257, __FILE__, __LINE__, true);
1018 3 : return _r;
1019 : }
1020 0 : next_after_fail342:;
1021 : }
1022 : return NULL_TREE;
1023 : }
1024 :
1025 : tree
1026 0 : generic_simplify_210 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1027 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1028 : const enum tree_code ARG_UNUSED (neeq))
1029 : {
1030 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1031 0 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
1032 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
1033 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1034 : )
1035 : {
1036 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail353;
1037 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail353;
1038 0 : {
1039 0 : tree res_op0;
1040 0 : res_op0 = captures[1];
1041 0 : tree res_op1;
1042 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1043 0 : tree _r;
1044 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1045 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 267, __FILE__, __LINE__, true);
1046 0 : return _r;
1047 : }
1048 : next_after_fail353:;
1049 : }
1050 : return NULL_TREE;
1051 : }
1052 :
1053 : tree
1054 26100 : generic_simplify_217 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1055 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1056 : const enum tree_code ARG_UNUSED (op))
1057 : {
1058 26100 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1059 52200 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1060 52086 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1061 23555 : || ((op == EQ_EXPR || op == NE_EXPR)
1062 1762 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
1063 52143 : && (CONSTANT_CLASS_P (captures[2]) || single_use (captures[1]))
1064 : )
1065 : {
1066 4250 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail373;
1067 4250 : {
1068 4250 : tree res_op0;
1069 4250 : res_op0 = captures[2];
1070 4250 : tree res_op1;
1071 4250 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1072 4250 : tree _r;
1073 4250 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1074 4250 : if (TREE_SIDE_EFFECTS (captures[0]))
1075 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1076 4250 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
1077 4250 : return _r;
1078 : }
1079 0 : next_after_fail373:;
1080 : }
1081 : return NULL_TREE;
1082 : }
1083 :
1084 : tree
1085 0 : generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1086 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1087 : const enum tree_code ARG_UNUSED (cmp1),
1088 : const enum tree_code ARG_UNUSED (cmp2),
1089 : const enum tree_code ARG_UNUSED (rcmp))
1090 : {
1091 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1092 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1093 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
1094 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1095 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
1096 : )
1097 : {
1098 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail382;
1099 0 : {
1100 0 : tree res_op0;
1101 0 : res_op0 = captures[0];
1102 0 : tree res_op1;
1103 0 : res_op1 = captures[1];
1104 0 : tree _r;
1105 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1106 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 295, __FILE__, __LINE__, true);
1107 0 : return _r;
1108 : }
1109 0 : next_after_fail382:;
1110 : }
1111 : return NULL_TREE;
1112 : }
1113 :
1114 : tree
1115 0 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1116 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1117 : const enum tree_code ARG_UNUSED (cmp),
1118 : const enum tree_code ARG_UNUSED (icmp))
1119 : {
1120 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1121 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1122 : )
1123 : {
1124 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail393;
1125 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail393;
1126 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail393;
1127 0 : {
1128 0 : tree res_op0;
1129 0 : res_op0 = captures[0];
1130 0 : tree res_op1;
1131 0 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]),
1132 0 : wi::exact_log2 (wi::to_wide (captures[1])));
1133 0 : tree _r;
1134 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1135 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 306, __FILE__, __LINE__, true);
1136 0 : return _r;
1137 : }
1138 : next_after_fail393:;
1139 : }
1140 : return NULL_TREE;
1141 : }
1142 :
1143 : tree
1144 0 : generic_simplify_237 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1145 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1146 : const enum tree_code ARG_UNUSED (rotate),
1147 : const enum tree_code ARG_UNUSED (invrot),
1148 : const enum tree_code ARG_UNUSED (cmp))
1149 : {
1150 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1151 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail405;
1152 0 : {
1153 0 : tree res_op0;
1154 0 : res_op0 = captures[0];
1155 0 : tree res_op1;
1156 0 : res_op1 = captures[2];
1157 0 : tree _r;
1158 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1159 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1160 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1161 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 318, __FILE__, __LINE__, true);
1162 : return _r;
1163 : }
1164 0 : next_after_fail405:;
1165 0 : return NULL_TREE;
1166 : }
1167 :
1168 : tree
1169 22 : generic_simplify_242 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1170 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1171 : const enum tree_code ARG_UNUSED (cmp),
1172 : const combined_fn ARG_UNUSED (bswap))
1173 : {
1174 22 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1175 22 : {
1176 22 : tree ctype = TREE_TYPE (captures[1]);
1177 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail410;
1178 22 : {
1179 22 : tree res_op0;
1180 22 : {
1181 22 : tree _o1[1], _r1;
1182 22 : _o1[0] = captures[0];
1183 22 : if (TREE_TYPE (_o1[0]) != ctype)
1184 : {
1185 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1186 : }
1187 : else
1188 : _r1 = _o1[0];
1189 22 : res_op0 = _r1;
1190 : }
1191 22 : tree res_op1;
1192 22 : {
1193 22 : tree _o1[1], _r1;
1194 22 : _o1[0] = captures[1];
1195 22 : _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
1196 22 : if (!_r1)
1197 0 : goto next_after_fail410;
1198 22 : if (EXPR_P (_r1))
1199 22 : goto next_after_fail410;
1200 0 : res_op1 = _r1;
1201 : }
1202 0 : tree _r;
1203 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1204 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 323, __FILE__, __LINE__, true);
1205 : return _r;
1206 : }
1207 : next_after_fail410:;
1208 : }
1209 : return NULL_TREE;
1210 : }
1211 :
1212 : tree
1213 30 : generic_simplify_253 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1214 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1215 : const enum tree_code ARG_UNUSED (cmp))
1216 : {
1217 30 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1218 30 : if (single_use (captures[1]) && single_use (captures[3])
1219 : )
1220 : {
1221 30 : {
1222 30 : tree otype = TREE_TYPE (captures[0]);
1223 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail427;
1224 30 : {
1225 30 : tree res_op0;
1226 30 : {
1227 30 : tree _o1[1], _r1;
1228 30 : _o1[0] = captures[4];
1229 30 : if (TREE_TYPE (_o1[0]) != otype)
1230 : {
1231 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1232 : }
1233 : else
1234 : _r1 = _o1[0];
1235 30 : res_op0 = _r1;
1236 : }
1237 30 : tree res_op1;
1238 30 : {
1239 30 : tree _o1[1], _r1;
1240 30 : _o1[0] = captures[2];
1241 30 : if (TREE_TYPE (_o1[0]) != otype)
1242 : {
1243 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1244 : }
1245 : else
1246 : _r1 = _o1[0];
1247 30 : res_op1 = _r1;
1248 : }
1249 30 : tree _r;
1250 30 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1251 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 337, __FILE__, __LINE__, true);
1252 30 : return _r;
1253 : }
1254 0 : next_after_fail427:;
1255 : }
1256 : }
1257 0 : return NULL_TREE;
1258 : }
1259 :
1260 : tree
1261 6 : generic_simplify_258 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1262 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1263 : const combined_fn ARG_UNUSED (sq),
1264 : const enum tree_code ARG_UNUSED (cmp))
1265 : {
1266 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1267 6 : if (flag_unsafe_math_optimizations && ! flag_errno_math
1268 : )
1269 : {
1270 0 : if (! HONOR_NANS (captures[0])
1271 : )
1272 : {
1273 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail464;
1274 0 : {
1275 0 : tree res_op0;
1276 0 : res_op0 = captures[0];
1277 0 : tree res_op1;
1278 0 : res_op1 = captures[1];
1279 0 : tree _r;
1280 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1281 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 375, __FILE__, __LINE__, true);
1282 0 : return _r;
1283 : }
1284 0 : next_after_fail464:;
1285 : }
1286 : }
1287 : return NULL_TREE;
1288 : }
1289 :
1290 : tree
1291 2736 : generic_simplify_263 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1292 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1293 : const enum tree_code ARG_UNUSED (cmp),
1294 : const enum tree_code ARG_UNUSED (scmp))
1295 : {
1296 2736 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1297 5102 : if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1298 5102 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1299 2366 : && (cmp == EQ_EXPR
1300 2366 : || cmp == NE_EXPR
1301 1588 : || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
1302 : )
1303 : {
1304 1582 : {
1305 1582 : tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
1306 1582 : if (tem && !TREE_OVERFLOW (tem)
1307 : )
1308 : {
1309 1554 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail478;
1310 1554 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail478;
1311 1554 : {
1312 1554 : tree res_op0;
1313 1554 : res_op0 = captures[0];
1314 1554 : tree res_op1;
1315 1554 : res_op1 = tem;
1316 1554 : tree _r;
1317 1554 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1318 1554 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 389, __FILE__, __LINE__, true);
1319 1554 : return _r;
1320 : }
1321 : next_after_fail478:;
1322 : }
1323 : }
1324 : }
1325 : return NULL_TREE;
1326 : }
1327 :
1328 : tree
1329 697 : generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1330 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1331 : const enum tree_code ARG_UNUSED (cmp))
1332 : {
1333 697 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1334 697 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1335 1394 : && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0
1336 : )
1337 : {
1338 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail493;
1339 0 : {
1340 0 : tree _r;
1341 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1342 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1343 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1344 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1345 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1346 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1347 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1348 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 397, __FILE__, __LINE__, true);
1349 0 : return _r;
1350 : }
1351 0 : next_after_fail493:;
1352 : }
1353 : return NULL_TREE;
1354 : }
1355 :
1356 : tree
1357 62 : generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1358 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1359 : const enum tree_code ARG_UNUSED (cmp))
1360 : {
1361 62 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1362 62 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail499;
1363 62 : {
1364 62 : tree res_op0;
1365 62 : res_op0 = captures[1];
1366 62 : tree res_op1;
1367 62 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1368 62 : tree _r;
1369 62 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1370 62 : if (TREE_SIDE_EFFECTS (captures[0]))
1371 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1372 62 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 403, __FILE__, __LINE__, true);
1373 : return _r;
1374 : }
1375 0 : next_after_fail499:;
1376 0 : return NULL_TREE;
1377 : }
1378 :
1379 : tree
1380 26 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1381 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1382 : const enum tree_code ARG_UNUSED (cmp))
1383 : {
1384 26 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1385 26 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1386 : )
1387 : {
1388 26 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail503;
1389 26 : {
1390 26 : tree res_op0;
1391 26 : res_op0 = captures[1];
1392 26 : tree res_op1;
1393 26 : {
1394 26 : tree _o1[2], _r1;
1395 26 : _o1[0] = captures[2];
1396 26 : {
1397 26 : tree _o2[1], _r2;
1398 26 : _o2[0] = captures[3];
1399 26 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
1400 : {
1401 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
1402 : }
1403 : else
1404 : _r2 = _o2[0];
1405 26 : _o1[1] = _r2;
1406 : }
1407 26 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1408 26 : res_op1 = _r1;
1409 : }
1410 26 : tree _r;
1411 26 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1412 26 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1413 26 : return _r;
1414 : }
1415 0 : next_after_fail503:;
1416 : }
1417 : return NULL_TREE;
1418 : }
1419 :
1420 : tree
1421 141901 : generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1422 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1423 : const enum tree_code ARG_UNUSED (cmp),
1424 : const enum tree_code ARG_UNUSED (ncmp))
1425 : {
1426 141901 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1427 283383 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1428 95787 : && type_has_mode_precision_p (TREE_TYPE (captures[1]))
1429 94922 : && element_precision (captures[0]) >= element_precision (captures[1])
1430 283802 : && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1]))
1431 : )
1432 : {
1433 4679 : {
1434 4679 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1435 4679 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail507;
1436 4679 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail507;
1437 4679 : {
1438 4679 : tree res_op0;
1439 4679 : {
1440 4679 : tree _o1[1], _r1;
1441 4679 : _o1[0] = captures[1];
1442 4679 : if (TREE_TYPE (_o1[0]) != stype)
1443 : {
1444 4027 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1445 : }
1446 : else
1447 : _r1 = _o1[0];
1448 4679 : res_op0 = _r1;
1449 : }
1450 4679 : tree res_op1;
1451 4679 : res_op1 = build_zero_cst (stype);
1452 4679 : tree _r;
1453 4679 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1454 4679 : if (TREE_SIDE_EFFECTS (captures[2]))
1455 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1456 4679 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 411, __FILE__, __LINE__, true);
1457 4679 : return _r;
1458 : }
1459 : next_after_fail507:;
1460 : }
1461 : }
1462 : return NULL_TREE;
1463 : }
1464 :
1465 : tree
1466 61002919 : generic_simplify_285 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1467 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1468 : const enum tree_code ARG_UNUSED (neeq))
1469 : {
1470 61002919 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1471 109552743 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
1472 61025528 : && ptrs_compare_unequal (captures[0], captures[1])
1473 : )
1474 : {
1475 12244 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail529;
1476 12244 : {
1477 12244 : tree _r;
1478 12244 : _r = constant_boolean_node (neeq != EQ_EXPR, type);
1479 12244 : if (TREE_SIDE_EFFECTS (captures[0]))
1480 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1481 12244 : if (TREE_SIDE_EFFECTS (captures[1]))
1482 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1483 12244 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
1484 12244 : return _r;
1485 : }
1486 0 : next_after_fail529:;
1487 : }
1488 : return NULL_TREE;
1489 : }
1490 :
1491 : tree
1492 1063222 : generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1493 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1494 : const enum tree_code ARG_UNUSED (op),
1495 : const enum tree_code ARG_UNUSED (rop),
1496 : const enum tree_code ARG_UNUSED (cmp))
1497 : {
1498 1063222 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1499 2126444 : if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
1500 1063222 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
1501 1062908 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1]))
1502 2125986 : && !TYPE_SATURATING (TREE_TYPE (captures[1]))
1503 : )
1504 : {
1505 1062764 : {
1506 1062764 : tree res = int_const_binop (rop, captures[3], captures[2]);
1507 1062764 : if (TREE_OVERFLOW (res)
1508 1062764 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1509 : )
1510 : {
1511 7803 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail537;
1512 7803 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail537;
1513 7803 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail537;
1514 7803 : {
1515 7803 : tree _r;
1516 7803 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1517 7803 : if (TREE_SIDE_EFFECTS (captures[1]))
1518 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1519 7803 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 431, __FILE__, __LINE__, true);
1520 7803 : return _r;
1521 : }
1522 : next_after_fail537:;
1523 : }
1524 : else
1525 : {
1526 1054961 : if (single_use (captures[0])
1527 : )
1528 : {
1529 1054961 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail538;
1530 1054961 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail538;
1531 1054961 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail538;
1532 1054961 : {
1533 1054961 : tree res_op0;
1534 1054961 : res_op0 = captures[1];
1535 1054961 : tree res_op1;
1536 1054961 : res_op1 = TREE_OVERFLOW (res)
1537 1054961 : ? drop_tree_overflow (res) : res;
1538 1054961 : tree _r;
1539 1054961 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1540 1054961 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 432, __FILE__, __LINE__, true);
1541 1054961 : return _r;
1542 : }
1543 : next_after_fail538:;
1544 : }
1545 : }
1546 : }
1547 : }
1548 : return NULL_TREE;
1549 : }
1550 :
1551 : tree
1552 0 : generic_simplify_292 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1553 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1554 : const enum tree_code ARG_UNUSED (op),
1555 : const enum tree_code ARG_UNUSED (cmp))
1556 : {
1557 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1558 0 : if (integer_zerop (captures[3]) && single_use (captures[0])
1559 : )
1560 : {
1561 0 : {
1562 0 : tree type0 = TREE_TYPE (captures[1]);
1563 0 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1564 0 : if (integer_zerop (captures[2]))
1565 : stype = NULL_TREE;
1566 0 : if (stype
1567 : )
1568 : {
1569 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail550;
1570 0 : {
1571 0 : tree res_op0;
1572 0 : {
1573 0 : tree _o1[1], _r1;
1574 0 : _o1[0] = captures[1];
1575 0 : if (TREE_TYPE (_o1[0]) != stype)
1576 : {
1577 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1578 : }
1579 : else
1580 : _r1 = _o1[0];
1581 0 : res_op0 = _r1;
1582 : }
1583 0 : tree res_op1;
1584 0 : res_op1 = build_zero_cst (stype);
1585 0 : tree _r;
1586 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1587 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1588 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1589 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1590 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1591 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 444, __FILE__, __LINE__, true);
1592 0 : return _r;
1593 : }
1594 0 : next_after_fail550:;
1595 : }
1596 : }
1597 : }
1598 : else
1599 : {
1600 0 : {
1601 0 : bool ok = true;
1602 0 : tree type0 = TREE_TYPE (captures[1]);
1603 0 : if (wi::to_widest (captures[2]) == TYPE_PRECISION (type0) - 1)
1604 : ok = false;
1605 0 : if (ok && wi::to_wide (captures[3]) == (TYPE_PRECISION (type0) - 1)
1606 : )
1607 : {
1608 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail551;
1609 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail551;
1610 0 : {
1611 0 : tree res_op0;
1612 0 : res_op0 = captures[1];
1613 0 : tree res_op1;
1614 0 : res_op1 = build_one_cst (type0);
1615 0 : tree _r;
1616 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1617 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1618 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1619 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 445, __FILE__, __LINE__, true);
1620 0 : return _r;
1621 : }
1622 : next_after_fail551:;
1623 : }
1624 : }
1625 : }
1626 : return NULL_TREE;
1627 : }
1628 :
1629 : tree
1630 0 : generic_simplify_301 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1631 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1632 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1633 : {
1634 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1635 0 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
1636 : )
1637 : {
1638 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail565;
1639 0 : {
1640 0 : tree res_op0;
1641 0 : {
1642 0 : tree _o1[1], _r1;
1643 0 : _o1[0] = captures[0];
1644 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1645 0 : res_op0 = _r1;
1646 : }
1647 0 : tree res_op1;
1648 0 : res_op1 = captures[1];
1649 0 : tree _r;
1650 0 : _r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
1651 0 : if (!_r)
1652 0 : goto next_after_fail565;
1653 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 459, __FILE__, __LINE__, true);
1654 0 : return _r;
1655 : }
1656 : next_after_fail565:;
1657 : }
1658 : return NULL_TREE;
1659 : }
1660 :
1661 : tree
1662 23 : generic_simplify_308 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1663 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1664 : const enum tree_code ARG_UNUSED (div))
1665 : {
1666 23 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1667 30 : if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
1668 16 : && (!VECTOR_TYPE_P (type)
1669 0 : || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
1670 0 : || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
1671 39 : && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
1672 7 : || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
1673 7 : && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
1674 14 : || (element_precision (type)
1675 7 : == element_precision (TREE_TYPE (captures[2])))
1676 7 : || (INTEGRAL_TYPE_P (type)
1677 14 : && (tree_nonzero_bits (captures[0])
1678 44 : & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
1679 : true,
1680 37 : element_precision (type))) == 0))))
1681 : )
1682 : {
1683 9 : if (!VECTOR_TYPE_P (type)
1684 9 : && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1685 18 : && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
1686 : )
1687 : {
1688 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail573;
1689 0 : {
1690 0 : tree res_op0;
1691 0 : {
1692 0 : tree _o1[2], _r1;
1693 0 : _o1[0] = captures[1];
1694 0 : _o1[1] = captures[3];
1695 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1696 0 : res_op0 = _r1;
1697 : }
1698 0 : tree _r;
1699 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1700 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1701 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1702 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 465, __FILE__, __LINE__, true);
1703 0 : return _r;
1704 : }
1705 0 : next_after_fail573:;
1706 : }
1707 : else
1708 : {
1709 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail574;
1710 9 : {
1711 9 : tree res_op0;
1712 9 : res_op0 = captures[0];
1713 9 : tree res_op1;
1714 9 : res_op1 = captures[3];
1715 9 : tree _r;
1716 9 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
1717 9 : if (TREE_SIDE_EFFECTS (captures[2]))
1718 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1719 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 466, __FILE__, __LINE__, true);
1720 9 : return _r;
1721 : }
1722 0 : next_after_fail574:;
1723 : }
1724 : }
1725 : return NULL_TREE;
1726 : }
1727 :
1728 : tree
1729 7298 : generic_simplify_326 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1730 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1731 : const enum tree_code ARG_UNUSED (mod))
1732 : {
1733 7298 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1734 0 : if (ANY_INTEGRAL_TYPE_P (type)
1735 7298 : && TYPE_OVERFLOW_UNDEFINED (type)
1736 14596 : && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1737 195 : TYPE_SIGN (type))
1738 : )
1739 : {
1740 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail593;
1741 0 : {
1742 0 : tree _r;
1743 0 : _r = build_zero_cst (type);
1744 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1745 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1746 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1747 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1748 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1749 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1750 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 485, __FILE__, __LINE__, true);
1751 0 : return _r;
1752 : }
1753 0 : next_after_fail593:;
1754 : }
1755 : return NULL_TREE;
1756 : }
1757 :
1758 : tree
1759 24 : generic_simplify_338 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1760 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1761 : const combined_fn ARG_UNUSED (POW))
1762 : {
1763 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1764 24 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1765 : )
1766 : {
1767 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail607;
1768 6 : {
1769 6 : tree res_op0;
1770 6 : res_op0 = captures[0];
1771 6 : tree res_op1;
1772 6 : {
1773 6 : tree _o1[2], _r1;
1774 6 : _o1[0] = captures[2];
1775 6 : {
1776 6 : tree _o2[1], _r2;
1777 6 : _o2[0] = captures[3];
1778 6 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1779 6 : _o1[1] = _r2;
1780 : }
1781 6 : _r1 = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
1782 6 : if (!_r1)
1783 0 : goto next_after_fail607;
1784 6 : res_op1 = _r1;
1785 : }
1786 6 : tree _r;
1787 6 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
1788 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 499, __FILE__, __LINE__, true);
1789 6 : return _r;
1790 : }
1791 : next_after_fail607:;
1792 : }
1793 : return NULL_TREE;
1794 : }
1795 :
1796 : tree
1797 1963 : generic_simplify_347 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1798 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1799 : {
1800 1963 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1801 1963 : if (INTEGRAL_TYPE_P (type)
1802 : )
1803 : {
1804 1963 : {
1805 1963 : tree itype = TREE_TYPE (captures[2]);
1806 1963 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail622;
1807 1963 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail622;
1808 1963 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail622;
1809 1963 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail622;
1810 1963 : {
1811 1963 : tree res_op0;
1812 1963 : {
1813 1963 : tree _o1[2], _r1;
1814 1963 : _o1[0] = captures[2];
1815 1963 : {
1816 1963 : tree _o2[1], _r2;
1817 1963 : _o2[0] = captures[0];
1818 1963 : if (TREE_TYPE (_o2[0]) != itype)
1819 : {
1820 1963 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
1821 : }
1822 : else
1823 : _r2 = _o2[0];
1824 1963 : _o1[1] = _r2;
1825 : }
1826 1963 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1827 1963 : res_op0 = _r1;
1828 : }
1829 1963 : tree _r;
1830 1963 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1831 1963 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
1832 1963 : return _r;
1833 : }
1834 : next_after_fail622:;
1835 : }
1836 : }
1837 : return NULL_TREE;
1838 : }
1839 :
1840 : tree
1841 0 : generic_simplify_352 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1842 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1843 : {
1844 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1845 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail627;
1846 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail627;
1847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail627;
1848 0 : {
1849 0 : tree _r;
1850 0 : _r = captures[2];
1851 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 518, __FILE__, __LINE__, true);
1852 : return _r;
1853 : }
1854 : next_after_fail627:;
1855 : return NULL_TREE;
1856 : }
1857 :
1858 : tree
1859 0 : generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1860 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1861 : const enum tree_code ARG_UNUSED (op))
1862 : {
1863 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1864 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail633;
1865 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail633;
1866 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail633;
1867 0 : {
1868 0 : tree _r;
1869 0 : _r = captures[2];
1870 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 524, __FILE__, __LINE__, true);
1871 : return _r;
1872 : }
1873 : next_after_fail633:;
1874 : return NULL_TREE;
1875 : }
1876 :
1877 : tree
1878 9 : generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1879 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1880 : const combined_fn ARG_UNUSED (func))
1881 : {
1882 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1883 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail641;
1884 9 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail641;
1885 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail641;
1886 9 : {
1887 9 : tree _r;
1888 9 : _r = captures[2];
1889 9 : if (TREE_SIDE_EFFECTS (captures[1]))
1890 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1891 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 532, __FILE__, __LINE__, true);
1892 : return _r;
1893 : }
1894 : next_after_fail641:;
1895 : return NULL_TREE;
1896 : }
1897 :
1898 : tree
1899 160395 : generic_simplify_373 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1900 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1901 : const enum tree_code ARG_UNUSED (op))
1902 : {
1903 160395 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1904 320790 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1905 320790 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1906 : )
1907 : {
1908 66917 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail653;
1909 66917 : {
1910 66917 : tree res_op0;
1911 66917 : res_op0 = captures[0];
1912 66917 : tree res_op1;
1913 66917 : res_op1 = captures[2];
1914 66917 : tree _r;
1915 66917 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1916 66917 : if (TREE_SIDE_EFFECTS (captures[1]))
1917 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1918 66917 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 543, __FILE__, __LINE__, true);
1919 66917 : return _r;
1920 : }
1921 0 : next_after_fail653:;
1922 : }
1923 : return NULL_TREE;
1924 : }
1925 :
1926 : tree
1927 3936 : generic_simplify_378 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1928 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1929 : const enum tree_code ARG_UNUSED (cmp),
1930 : const enum tree_code ARG_UNUSED (bitop))
1931 : {
1932 3936 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1933 3936 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1934 : )
1935 : {
1936 3936 : if (bitop == BIT_AND_EXPR || tree_expr_nonnegative_p (captures[1])
1937 : )
1938 : {
1939 3936 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail658;
1940 3936 : {
1941 3936 : tree _r;
1942 3936 : _r = constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
1943 3936 : if (TREE_SIDE_EFFECTS (captures[0]))
1944 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1945 3936 : if (TREE_SIDE_EFFECTS (captures[1]))
1946 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1947 3936 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 548, __FILE__, __LINE__, true);
1948 3936 : return _r;
1949 : }
1950 0 : next_after_fail658:;
1951 : }
1952 : else
1953 : {
1954 0 : if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (wi::to_wide (captures[1]))
1955 : )
1956 : {
1957 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail659;
1958 0 : {
1959 0 : tree _r;
1960 0 : _r = constant_boolean_node (cmp == LT_EXPR, type);
1961 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1962 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1963 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1964 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1965 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 549, __FILE__, __LINE__, true);
1966 0 : return _r;
1967 : }
1968 0 : next_after_fail659:;
1969 : }
1970 : }
1971 : }
1972 : return NULL_TREE;
1973 : }
1974 :
1975 : tree
1976 0 : generic_simplify_391 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1977 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1978 : const enum tree_code ARG_UNUSED (cmp),
1979 : const enum tree_code ARG_UNUSED (out))
1980 : {
1981 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1982 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1983 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1984 : )
1985 : {
1986 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail704;
1987 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail704;
1988 0 : {
1989 0 : tree res_op0;
1990 0 : {
1991 0 : tree _o1[1], _r1;
1992 0 : _o1[0] = captures[0];
1993 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
1994 0 : res_op0 = _r1;
1995 : }
1996 0 : tree res_op1;
1997 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1998 0 : tree _r;
1999 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2000 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
2001 0 : return _r;
2002 : }
2003 : next_after_fail704:;
2004 : }
2005 : return NULL_TREE;
2006 : }
2007 :
2008 : tree
2009 20972162 : generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2010 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2011 : const enum tree_code ARG_UNUSED (cmp),
2012 : const enum tree_code ARG_UNUSED (acmp))
2013 : {
2014 20972162 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2015 20972162 : {
2016 20972162 : tree cst = uniform_integer_cst_p (captures[1]);
2017 20972162 : if (tree_int_cst_sgn (cst) == -1
2018 : )
2019 : {
2020 174202 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail718;
2021 174202 : {
2022 174202 : tree res_op0;
2023 174202 : res_op0 = captures[0];
2024 174202 : tree res_op1;
2025 174202 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2026 174202 : wide_int_to_tree (TREE_TYPE (cst),
2027 174202 : wi::to_wide (cst)
2028 348404 : + 1));
2029 174202 : tree _r;
2030 174202 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2031 174202 : if (TREE_SIDE_EFFECTS (captures[1]))
2032 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2033 174202 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 591, __FILE__, __LINE__, true);
2034 174202 : return _r;
2035 : }
2036 0 : next_after_fail718:;
2037 : }
2038 : }
2039 : return NULL_TREE;
2040 : }
2041 :
2042 : tree
2043 0 : generic_simplify_401 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2044 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2045 : const enum tree_code ARG_UNUSED (cmp),
2046 : const enum tree_code ARG_UNUSED (out))
2047 : {
2048 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2049 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2050 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2051 : )
2052 : {
2053 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail721;
2054 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
2055 0 : {
2056 0 : tree res_op0;
2057 0 : {
2058 0 : tree _o1[1], _r1;
2059 0 : _o1[0] = captures[0];
2060 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2061 0 : res_op0 = _r1;
2062 : }
2063 0 : tree res_op1;
2064 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2065 0 : tree _r;
2066 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2067 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
2068 0 : return _r;
2069 : }
2070 : next_after_fail721:;
2071 : }
2072 : return NULL_TREE;
2073 : }
2074 :
2075 : tree
2076 43 : generic_simplify_406 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2077 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2078 : const enum tree_code ARG_UNUSED (cmp),
2079 : const enum tree_code ARG_UNUSED (cmp2),
2080 : const enum tree_code ARG_UNUSED (cmp3),
2081 : const enum tree_code ARG_UNUSED (bit_op),
2082 : const combined_fn ARG_UNUSED (ffs))
2083 : {
2084 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2085 43 : {
2086 43 : int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2087 43 : if (integer_zerop (captures[2])
2088 : )
2089 : {
2090 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail726;
2091 11 : {
2092 11 : tree res_op0;
2093 11 : res_op0 = captures[1];
2094 11 : tree res_op1;
2095 11 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2096 11 : tree _r;
2097 11 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2098 11 : if (TREE_SIDE_EFFECTS (captures[2]))
2099 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2100 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 595, __FILE__, __LINE__, true);
2101 27 : return _r;
2102 : }
2103 0 : next_after_fail726:;
2104 : }
2105 : else
2106 : {
2107 32 : if (tree_int_cst_sgn (captures[2]) < 0
2108 : )
2109 : {
2110 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail727;
2111 0 : {
2112 0 : tree _r;
2113 0 : _r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
2114 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2115 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2116 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2117 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2118 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 596, __FILE__, __LINE__, true);
2119 0 : return _r;
2120 : }
2121 0 : next_after_fail727:;
2122 : }
2123 : else
2124 : {
2125 32 : if (wi::to_widest (captures[2]) >= prec
2126 : )
2127 : {
2128 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail728;
2129 14 : {
2130 14 : tree _r;
2131 14 : _r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
2132 14 : if (TREE_SIDE_EFFECTS (captures[1]))
2133 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2134 14 : if (TREE_SIDE_EFFECTS (captures[2]))
2135 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2136 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 597, __FILE__, __LINE__, true);
2137 14 : return _r;
2138 : }
2139 0 : next_after_fail728:;
2140 : }
2141 : else
2142 : {
2143 18 : if (wi::to_widest (captures[2]) == prec - 1
2144 : )
2145 : {
2146 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail729;
2147 2 : {
2148 2 : tree res_op0;
2149 2 : res_op0 = captures[1];
2150 2 : tree res_op1;
2151 2 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
2152 2 : wi::shifted_mask (prec - 1, 1,
2153 : false, prec));
2154 2 : tree _r;
2155 2 : _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
2156 2 : if (TREE_SIDE_EFFECTS (captures[2]))
2157 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2158 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 598, __FILE__, __LINE__, true);
2159 2 : return _r;
2160 : }
2161 0 : next_after_fail729:;
2162 : }
2163 : else
2164 : {
2165 16 : if (single_use (captures[0])
2166 : )
2167 : {
2168 16 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail730;
2169 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail730;
2170 16 : {
2171 16 : if (! tree_invariant_p (captures[1])) goto next_after_fail730;
2172 0 : tree res_op0;
2173 0 : {
2174 0 : tree _o1[2], _r1;
2175 0 : _o1[0] = unshare_expr (captures[1]);
2176 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2177 0 : _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
2178 0 : res_op0 = _r1;
2179 : }
2180 0 : tree res_op1;
2181 0 : {
2182 0 : tree _o1[2], _r1;
2183 0 : {
2184 0 : tree _o2[2], _r2;
2185 0 : _o2[0] = captures[1];
2186 0 : _o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
2187 0 : wi::mask (tree_to_uhwi (captures[2]),
2188 : false, prec));
2189 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2190 0 : _o1[0] = _r2;
2191 : }
2192 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2193 0 : _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
2194 0 : res_op1 = _r1;
2195 : }
2196 0 : tree _r;
2197 0 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2198 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 599, __FILE__, __LINE__, true);
2199 0 : return _r;
2200 : }
2201 16 : next_after_fail730:;
2202 : }
2203 : }
2204 : }
2205 : }
2206 : }
2207 : }
2208 16 : return NULL_TREE;
2209 : }
2210 :
2211 : tree
2212 0 : generic_simplify_429 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2213 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2214 : const combined_fn ARG_UNUSED (copysigns),
2215 : const combined_fn ARG_UNUSED (coss))
2216 : {
2217 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2218 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail774;
2219 0 : {
2220 0 : tree res_op0;
2221 0 : res_op0 = captures[0];
2222 0 : tree _r;
2223 0 : _r = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
2224 0 : if (!_r)
2225 0 : goto next_after_fail774;
2226 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2227 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2228 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 629, __FILE__, __LINE__, true);
2229 : return _r;
2230 : }
2231 : next_after_fail774:;
2232 : return NULL_TREE;
2233 : }
2234 :
2235 : tree
2236 0 : generic_simplify_432 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2237 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2238 : const combined_fn ARG_UNUSED (copysigns),
2239 : const combined_fn ARG_UNUSED (pows))
2240 : {
2241 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2242 0 : {
2243 0 : HOST_WIDE_INT n;
2244 0 : if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0
2245 : )
2246 : {
2247 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail777;
2248 0 : {
2249 0 : tree res_op0;
2250 0 : res_op0 = captures[0];
2251 0 : tree res_op1;
2252 0 : res_op1 = captures[2];
2253 0 : tree _r;
2254 0 : _r = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
2255 0 : if (!_r)
2256 0 : goto next_after_fail777;
2257 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2258 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2259 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2260 0 : return _r;
2261 : }
2262 0 : next_after_fail777:;
2263 : }
2264 : }
2265 0 : return NULL_TREE;
2266 : }
2267 :
2268 : tree
2269 0 : generic_simplify_434 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2270 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2271 : const combined_fn ARG_UNUSED (pow))
2272 : {
2273 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2274 0 : if (flag_unsafe_math_optimizations
2275 : )
2276 : {
2277 0 : if (! HONOR_INFINITIES (type)
2278 0 : && ! flag_trapping_math
2279 0 : && ! flag_errno_math
2280 : )
2281 : {
2282 0 : if (! HONOR_NANS (type) && ! HONOR_SIGNED_ZEROS (type)
2283 : )
2284 : {
2285 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail779;
2286 0 : {
2287 0 : tree _r;
2288 0 : _r = captures[0];
2289 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2290 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2291 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
2292 0 : return _r;
2293 : }
2294 0 : next_after_fail779:;
2295 : }
2296 : }
2297 : }
2298 : return NULL_TREE;
2299 : }
2300 :
2301 : tree
2302 0 : generic_simplify_438 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2303 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2304 : const combined_fn ARG_UNUSED (copysigns),
2305 : const combined_fn ARG_UNUSED (hypots))
2306 : {
2307 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2308 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
2309 0 : {
2310 0 : tree res_op0;
2311 0 : res_op0 = captures[0];
2312 0 : tree res_op1;
2313 0 : res_op1 = captures[1];
2314 0 : tree _r;
2315 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2316 0 : if (!_r)
2317 0 : goto next_after_fail783;
2318 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2319 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2320 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
2321 : return _r;
2322 : }
2323 : next_after_fail783:;
2324 : return NULL_TREE;
2325 : }
2326 :
2327 : tree
2328 21 : generic_simplify_443 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2329 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2330 : {
2331 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2332 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2333 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2334 : )
2335 : {
2336 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail788;
2337 0 : {
2338 0 : tree res_op0;
2339 0 : res_op0 = captures[0];
2340 0 : tree res_op1;
2341 0 : res_op1 = captures[1];
2342 0 : tree _r;
2343 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2344 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 643, __FILE__, __LINE__, true);
2345 0 : return _r;
2346 : }
2347 0 : next_after_fail788:;
2348 : }
2349 : return NULL_TREE;
2350 : }
2351 :
2352 : tree
2353 0 : generic_simplify_448 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2354 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2355 : {
2356 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2357 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail793;
2358 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail793;
2359 0 : {
2360 0 : tree res_op0;
2361 0 : res_op0 = captures[0];
2362 0 : tree res_op1;
2363 0 : {
2364 0 : tree _o1[1], _r1;
2365 0 : _o1[0] = captures[5];
2366 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2367 0 : res_op1 = _r1;
2368 : }
2369 0 : tree _r;
2370 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2371 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 647, __FILE__, __LINE__, true);
2372 : return _r;
2373 : }
2374 : next_after_fail793:;
2375 : return NULL_TREE;
2376 : }
2377 :
2378 : tree
2379 104 : generic_simplify_455 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2380 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2381 : {
2382 104 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2383 104 : {
2384 104 : bool wascmp;
2385 104 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2386 104 : && (!wascmp || element_precision (type) == 1)
2387 : )
2388 : {
2389 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail800;
2390 0 : {
2391 0 : tree res_op0;
2392 0 : res_op0 = captures[0];
2393 0 : tree res_op1;
2394 0 : res_op1 = captures[1];
2395 0 : tree _r;
2396 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2397 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2398 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2399 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 654, __FILE__, __LINE__, true);
2400 0 : return _r;
2401 : }
2402 0 : next_after_fail800:;
2403 : }
2404 : }
2405 104 : return NULL_TREE;
2406 : }
2407 :
2408 : tree
2409 8770559 : generic_simplify_461 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2410 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2411 : {
2412 8770559 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2413 17361200 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
2414 8770579 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2415 : )
2416 : {
2417 179938 : {
2418 179938 : unsigned int align;
2419 179938 : unsigned HOST_WIDE_INT bitpos;
2420 179938 : get_pointer_alignment_1 (captures[0], &align, &bitpos);
2421 179938 : if (wi::ltu_p (wi::to_wide (captures[1]), align / BITS_PER_UNIT)
2422 : )
2423 : {
2424 4916 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail806;
2425 4916 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail806;
2426 4916 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail806;
2427 4916 : {
2428 4916 : tree _r;
2429 9832 : _r = wide_int_to_tree (type, (wi::to_wide (captures[1])
2430 9832 : & (bitpos / BITS_PER_UNIT)));
2431 4916 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 659, __FILE__, __LINE__, true);
2432 4916 : return _r;
2433 : }
2434 175022 : next_after_fail806:;
2435 : }
2436 : }
2437 : }
2438 : return NULL_TREE;
2439 : }
2440 :
2441 : tree
2442 0 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2443 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2444 : const enum tree_code ARG_UNUSED (code2),
2445 : const enum tree_code ARG_UNUSED (code1))
2446 : {
2447 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2448 0 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2449 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2450 0 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2451 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2452 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2453 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2454 0 : && bitwise_equal_p (captures[2], captures[5]))
2455 : )
2456 : {
2457 0 : {
2458 0 : bool one_before = false;
2459 0 : bool one_after = false;
2460 0 : int cmp = 0;
2461 0 : bool allbits = true;
2462 0 : if (TREE_CODE (captures[2]) == INTEGER_CST
2463 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2464 : {
2465 0 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2466 0 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2467 0 : auto t2 = wi::to_wide (captures[5]);
2468 0 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2469 0 : if (cmp < 0
2470 0 : && t1 == t2 - 1)
2471 : one_before = true;
2472 0 : if (cmp > 0
2473 0 : && t1 == t2 + 1)
2474 : one_after = true;
2475 : }
2476 0 : bool val;
2477 0 : switch (code2)
2478 : {
2479 0 : case EQ_EXPR: val = (cmp == 0); break;
2480 0 : case NE_EXPR: val = (cmp != 0); break;
2481 0 : case LT_EXPR: val = (cmp < 0); break;
2482 0 : case GT_EXPR: val = (cmp > 0); break;
2483 0 : case LE_EXPR: val = (cmp <= 0); break;
2484 0 : case GE_EXPR: val = (cmp >= 0); break;
2485 0 : default: gcc_unreachable ();
2486 : }
2487 0 : if (code1 == EQ_EXPR && val
2488 : )
2489 : {
2490 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail838;
2491 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail838;
2492 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
2493 0 : {
2494 0 : tree _r;
2495 0 : _r = captures[0];
2496 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
2497 0 : return _r;
2498 : }
2499 : next_after_fail838:;
2500 : }
2501 : else
2502 : {
2503 0 : if (code1 == EQ_EXPR && !val
2504 : )
2505 : {
2506 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail839;
2507 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail839;
2508 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail839;
2509 0 : {
2510 0 : tree _r;
2511 0 : _r = constant_boolean_node (false, type);
2512 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2513 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2514 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 665, __FILE__, __LINE__, true);
2515 0 : return _r;
2516 : }
2517 : next_after_fail839:;
2518 : }
2519 : else
2520 : {
2521 0 : if (code1 == NE_EXPR && !val && allbits
2522 : )
2523 : {
2524 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail840;
2525 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail840;
2526 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail840;
2527 0 : {
2528 0 : tree _r;
2529 0 : _r = captures[3];
2530 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 666, __FILE__, __LINE__, true);
2531 0 : return _r;
2532 : }
2533 : next_after_fail840:;
2534 : }
2535 : else
2536 : {
2537 0 : if ((code1 == NE_EXPR
2538 0 : && code2 == GE_EXPR
2539 0 : && cmp == 0
2540 0 : && allbits)
2541 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2542 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2543 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2544 : )
2545 : {
2546 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail841;
2547 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail841;
2548 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail841;
2549 0 : {
2550 0 : tree res_op0;
2551 0 : res_op0 = captures[4];
2552 0 : tree res_op1;
2553 0 : {
2554 0 : tree _o1[1], _r1;
2555 0 : _o1[0] = captures[2];
2556 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2557 : {
2558 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2559 : }
2560 : else
2561 : _r1 = _o1[0];
2562 0 : res_op1 = _r1;
2563 : }
2564 0 : tree _r;
2565 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2566 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 667, __FILE__, __LINE__, true);
2567 0 : return _r;
2568 : }
2569 : next_after_fail841:;
2570 : }
2571 : else
2572 : {
2573 0 : if ((code1 == NE_EXPR
2574 0 : && code2 == LE_EXPR
2575 0 : && cmp == 0
2576 0 : && allbits)
2577 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2578 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2579 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2580 : )
2581 : {
2582 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail842;
2583 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail842;
2584 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail842;
2585 0 : {
2586 0 : tree res_op0;
2587 0 : res_op0 = captures[4];
2588 0 : tree res_op1;
2589 0 : {
2590 0 : tree _o1[1], _r1;
2591 0 : _o1[0] = captures[2];
2592 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2593 : {
2594 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2595 : }
2596 : else
2597 : _r1 = _o1[0];
2598 0 : res_op1 = _r1;
2599 : }
2600 0 : tree _r;
2601 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2602 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 668, __FILE__, __LINE__, true);
2603 0 : return _r;
2604 : }
2605 : next_after_fail842:;
2606 : }
2607 : else
2608 : {
2609 0 : if ((code1 == NE_EXPR
2610 0 : && code2 == GT_EXPR
2611 : && one_after
2612 0 : && allbits)
2613 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2614 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2615 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2616 : )
2617 : {
2618 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail843;
2619 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail843;
2620 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail843;
2621 0 : {
2622 0 : tree res_op0;
2623 0 : res_op0 = captures[4];
2624 0 : tree res_op1;
2625 0 : {
2626 0 : tree _o1[1], _r1;
2627 0 : _o1[0] = captures[2];
2628 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2629 : {
2630 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2631 : }
2632 : else
2633 : _r1 = _o1[0];
2634 0 : res_op1 = _r1;
2635 : }
2636 0 : tree _r;
2637 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2638 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 669, __FILE__, __LINE__, true);
2639 0 : return _r;
2640 : }
2641 : next_after_fail843:;
2642 : }
2643 : else
2644 : {
2645 0 : if ((code1 == NE_EXPR
2646 0 : && code2 == LT_EXPR
2647 : && one_before
2648 0 : && allbits)
2649 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2650 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2651 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2652 : )
2653 : {
2654 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail844;
2655 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail844;
2656 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail844;
2657 0 : {
2658 0 : tree res_op0;
2659 0 : res_op0 = captures[4];
2660 0 : tree res_op1;
2661 0 : {
2662 0 : tree _o1[1], _r1;
2663 0 : _o1[0] = captures[2];
2664 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2665 : {
2666 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2667 : }
2668 : else
2669 : _r1 = _o1[0];
2670 0 : res_op1 = _r1;
2671 : }
2672 0 : tree _r;
2673 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
2675 0 : return _r;
2676 : }
2677 : next_after_fail844:;
2678 : }
2679 : }
2680 : }
2681 : }
2682 : }
2683 : }
2684 : }
2685 : }
2686 : }
2687 : return NULL_TREE;
2688 : }
2689 :
2690 : tree
2691 0 : generic_simplify_500 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2692 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2693 : const enum tree_code ARG_UNUSED (minmax),
2694 : const enum tree_code ARG_UNUSED (maxmin))
2695 : {
2696 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2697 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail889;
2698 0 : {
2699 0 : tree res_op0;
2700 0 : res_op0 = captures[1];
2701 0 : tree res_op1;
2702 0 : {
2703 0 : tree _o1[1], _r1;
2704 0 : _o1[0] = captures[2];
2705 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2706 0 : res_op1 = _r1;
2707 : }
2708 0 : tree _r;
2709 0 : _r = fold_build2_loc (loc, maxmin, type, res_op0, res_op1);
2710 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 703, __FILE__, __LINE__, true);
2711 : return _r;
2712 : }
2713 0 : next_after_fail889:;
2714 0 : return NULL_TREE;
2715 : }
2716 :
2717 : tree
2718 1853 : generic_simplify_507 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2719 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2720 : {
2721 1853 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2722 1853 : if (! TYPE_UNSIGNED (type)
2723 1432 : && ! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2724 1853 : && single_use (captures[0])
2725 : )
2726 : {
2727 1432 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail897;
2728 1432 : {
2729 1432 : tree res_op0;
2730 1432 : res_op0 = captures[1];
2731 1432 : tree res_op1;
2732 1432 : {
2733 1432 : tree _o1[1], _r1;
2734 1432 : _o1[0] = captures[2];
2735 1432 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2736 1432 : res_op1 = _r1;
2737 : }
2738 1432 : tree _r;
2739 1432 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2740 1432 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
2741 1432 : return _r;
2742 : }
2743 0 : next_after_fail897:;
2744 : }
2745 : return NULL_TREE;
2746 : }
2747 :
2748 : tree
2749 47 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2750 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2751 : const enum tree_code ARG_UNUSED (minmax),
2752 : const enum tree_code ARG_UNUSED (cmp))
2753 : {
2754 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2755 47 : {
2756 47 : poly_int64 off0, off1;
2757 47 : tree base0, base1;
2758 47 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2759 : off0, off1,
2760 : 1
2761 : );
2762 47 : if (equal == 1
2763 : )
2764 : {
2765 0 : if (minmax == MIN_EXPR
2766 : )
2767 : {
2768 0 : if (known_le (off0, off1)
2769 : )
2770 : {
2771 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail906;
2772 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail906;
2773 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail906;
2774 0 : {
2775 0 : tree _r;
2776 0 : _r = captures[0];
2777 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
2778 0 : return _r;
2779 : }
2780 47 : next_after_fail906:;
2781 : }
2782 : else
2783 : {
2784 0 : if (known_gt (off0, off1)
2785 : )
2786 : {
2787 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail907;
2788 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail907;
2789 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
2790 0 : {
2791 0 : tree _r;
2792 0 : _r = captures[2];
2793 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
2794 0 : return _r;
2795 : }
2796 47 : next_after_fail907:;
2797 : }
2798 : }
2799 : }
2800 : else
2801 : {
2802 0 : if (known_ge (off0, off1)
2803 : )
2804 : {
2805 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail908;
2806 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail908;
2807 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail908;
2808 0 : {
2809 0 : tree _r;
2810 0 : _r = captures[0];
2811 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 720, __FILE__, __LINE__, true);
2812 0 : return _r;
2813 : }
2814 47 : next_after_fail908:;
2815 : }
2816 : else
2817 : {
2818 0 : if (known_lt (off0, off1)
2819 : )
2820 : {
2821 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail909;
2822 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail909;
2823 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail909;
2824 0 : {
2825 0 : tree _r;
2826 0 : _r = captures[2];
2827 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 721, __FILE__, __LINE__, true);
2828 0 : return _r;
2829 : }
2830 47 : next_after_fail909:;
2831 : }
2832 : }
2833 : }
2834 : }
2835 : }
2836 47 : return NULL_TREE;
2837 : }
2838 :
2839 : tree
2840 6 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2841 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2842 : {
2843 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2844 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail941;
2845 6 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail941;
2846 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail941;
2847 6 : {
2848 6 : tree _r;
2849 6 : _r = captures[2];
2850 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 519, __FILE__, __LINE__, true);
2851 : return _r;
2852 : }
2853 : next_after_fail941:;
2854 : return NULL_TREE;
2855 : }
2856 :
2857 : tree
2858 0 : generic_simplify_543 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2859 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2860 : const combined_fn ARG_UNUSED (cond_len_op))
2861 : {
2862 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2863 0 : {
2864 0 : tree op_type = TREE_TYPE (captures[3]);
2865 0 : if (element_precision (type) == element_precision (op_type)
2866 : )
2867 : {
2868 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail949;
2869 0 : {
2870 0 : tree res_op0;
2871 0 : {
2872 0 : tree _o1[6], _r1;
2873 0 : _o1[0] = captures[0];
2874 0 : _o1[1] = captures[1];
2875 0 : _o1[2] = captures[2];
2876 0 : {
2877 0 : tree _o2[1], _r2;
2878 0 : _o2[0] = captures[6];
2879 0 : if (TREE_TYPE (_o2[0]) != op_type)
2880 : {
2881 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2882 : }
2883 : else
2884 : _r2 = _o2[0];
2885 0 : _o1[3] = _r2;
2886 : }
2887 0 : _o1[4] = captures[4];
2888 0 : _o1[5] = captures[5];
2889 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
2890 0 : if (!_r1)
2891 0 : goto next_after_fail949;
2892 0 : res_op0 = _r1;
2893 : }
2894 0 : tree _r;
2895 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2896 0 : if (TREE_SIDE_EFFECTS (captures[3]))
2897 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
2898 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 744, __FILE__, __LINE__, true);
2899 0 : return _r;
2900 : }
2901 : next_after_fail949:;
2902 : }
2903 : }
2904 : return NULL_TREE;
2905 : }
2906 :
2907 : tree
2908 0 : generic_simplify_552 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2909 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2910 : const combined_fn ARG_UNUSED (ovf))
2911 : {
2912 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2913 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2914 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2915 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
2916 0 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) || TYPE_UNSIGNED (TREE_TYPE (captures[1])))
2917 : )
2918 : {
2919 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail958;
2920 0 : {
2921 0 : tree res_op0;
2922 0 : res_op0 = captures[1];
2923 0 : tree res_op1;
2924 0 : res_op1 = captures[2];
2925 0 : tree _r;
2926 0 : _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
2927 0 : if (!_r)
2928 0 : goto next_after_fail958;
2929 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 753, __FILE__, __LINE__, true);
2930 0 : return _r;
2931 : }
2932 : next_after_fail958:;
2933 : }
2934 : return NULL_TREE;
2935 : }
2936 :
2937 : tree
2938 0 : generic_simplify_562 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2939 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2940 : const combined_fn ARG_UNUSED (froms),
2941 : const combined_fn ARG_UNUSED (tos))
2942 : {
2943 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2944 0 : if (optimize && canonicalize_math_p ()
2945 0 : && targetm.libc_has_function (function_c99_misc, NULL_TREE)
2946 : )
2947 : {
2948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail968;
2949 0 : {
2950 0 : tree res_op0;
2951 0 : {
2952 0 : tree _o1[1], _r1;
2953 0 : _o1[0] = captures[0];
2954 0 : _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
2955 0 : if (!_r1)
2956 0 : goto next_after_fail968;
2957 0 : res_op0 = _r1;
2958 : }
2959 0 : tree _r;
2960 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2961 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 763, __FILE__, __LINE__, true);
2962 0 : return _r;
2963 : }
2964 : next_after_fail968:;
2965 : }
2966 : return NULL_TREE;
2967 : }
2968 :
2969 : tree
2970 0 : generic_simplify_574 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2971 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2972 : const combined_fn ARG_UNUSED (SIGNBIT))
2973 : {
2974 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2975 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail980;
2976 0 : {
2977 0 : tree _r;
2978 0 : _r = integer_zero_node;
2979 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2980 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2981 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 775, __FILE__, __LINE__, true);
2982 : return _r;
2983 : }
2984 0 : next_after_fail980:;
2985 0 : return NULL_TREE;
2986 : }
2987 :
2988 : tree
2989 0 : generic_simplify_580 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2990 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2991 : {
2992 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2993 0 : if (canonicalize_math_after_vectorization_p ()
2994 : )
2995 : {
2996 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
2997 : {
2998 : tree res_op0;
2999 : res_op0 = captures[0];
3000 : tree res_op1;
3001 : res_op1 = captures[1];
3002 : tree res_op2;
3003 : res_op2 = captures[2];
3004 : tree _r;
3005 : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3006 : if (!_r)
3007 : goto next_after_fail986;
3008 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 781, __FILE__, __LINE__, true);
3009 : return _r;
3010 : }
3011 0 : next_after_fail986:;
3012 : }
3013 0 : return NULL_TREE;
3014 : }
3015 :
3016 : tree
3017 0 : generic_simplify_590 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3018 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3019 : {
3020 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3021 0 : if (canonicalize_math_after_vectorization_p ()
3022 : )
3023 : {
3024 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail996;
3025 : {
3026 : tree res_op0;
3027 : res_op0 = captures[0];
3028 : tree res_op1;
3029 : res_op1 = captures[1];
3030 : tree res_op2;
3031 : res_op2 = captures[2];
3032 : tree res_op3;
3033 : res_op3 = captures[3];
3034 : tree res_op4;
3035 : res_op4 = captures[4];
3036 : tree _r;
3037 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3038 : if (!_r)
3039 : goto next_after_fail996;
3040 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 791, __FILE__, __LINE__, true);
3041 : return _r;
3042 : }
3043 0 : next_after_fail996:;
3044 : }
3045 0 : return NULL_TREE;
3046 : }
3047 :
3048 : tree
3049 0 : generic_simplify_600 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3050 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3051 : const combined_fn ARG_UNUSED (bswap),
3052 : const combined_fn ARG_UNUSED (popcount))
3053 : {
3054 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3055 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3056 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3057 : )
3058 : {
3059 0 : {
3060 0 : tree type0 = TREE_TYPE (captures[0]);
3061 0 : tree type1 = TREE_TYPE (captures[1]);
3062 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3063 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3064 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3065 : )
3066 : {
3067 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1006;
3068 0 : {
3069 0 : tree res_op0;
3070 0 : {
3071 0 : tree _o1[1], _r1;
3072 0 : {
3073 0 : tree _o2[1], _r2;
3074 0 : _o2[0] = captures[2];
3075 0 : if (TREE_TYPE (_o2[0]) != type1)
3076 : {
3077 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3078 : }
3079 : else
3080 : _r2 = _o2[0];
3081 0 : _o1[0] = _r2;
3082 : }
3083 0 : if (TREE_TYPE (_o1[0]) != type0)
3084 : {
3085 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3086 : }
3087 : else
3088 : _r1 = _o1[0];
3089 0 : res_op0 = _r1;
3090 : }
3091 0 : tree _r;
3092 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3093 0 : if (!_r)
3094 0 : goto next_after_fail1006;
3095 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
3096 0 : return _r;
3097 : }
3098 : next_after_fail1006:;
3099 : }
3100 : }
3101 : }
3102 : return NULL_TREE;
3103 : }
3104 :
3105 : tree
3106 3691642 : generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3107 : {
3108 3691642 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3109 3691642 : switch (TREE_CODE (_p0))
3110 : {
3111 179148 : CASE_CONVERT:
3112 179148 : {
3113 179148 : tree _q20 = TREE_OPERAND (_p0, 0);
3114 179148 : {
3115 179148 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3116 358294 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3117 914 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3118 840 : && element_precision (type) > element_precision (TREE_TYPE (captures[0]))
3119 179373 : && (!VECTOR_TYPE_P (type)
3120 0 : || target_supports_op_p (TREE_TYPE (captures[0]), ABSU_EXPR, optab_vector))
3121 : )
3122 : {
3123 225 : {
3124 225 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3125 225 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1020;
3126 225 : {
3127 225 : tree res_op0;
3128 225 : {
3129 225 : tree _o1[1], _r1;
3130 225 : _o1[0] = captures[0];
3131 225 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
3132 225 : res_op0 = _r1;
3133 : }
3134 225 : tree _r;
3135 225 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3136 225 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 808, __FILE__, __LINE__, true);
3137 225 : return _r;
3138 : }
3139 0 : next_after_fail1020:;
3140 : }
3141 : }
3142 : }
3143 : break;
3144 : }
3145 12 : case ABS_EXPR:
3146 12 : {
3147 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3148 12 : {
3149 12 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3150 12 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1021;
3151 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1021;
3152 12 : {
3153 12 : tree _r;
3154 12 : _r = captures[0];
3155 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 809, __FILE__, __LINE__, true);
3156 12 : return _r;
3157 : }
3158 0 : next_after_fail1021:;
3159 : }
3160 0 : break;
3161 : }
3162 57 : case NEGATE_EXPR:
3163 57 : {
3164 57 : tree _q20 = TREE_OPERAND (_p0, 0);
3165 57 : {
3166 57 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3167 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1022;
3168 57 : {
3169 57 : tree res_op0;
3170 57 : res_op0 = captures[0];
3171 57 : tree _r;
3172 57 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3173 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 810, __FILE__, __LINE__, true);
3174 3691642 : return _r;
3175 : }
3176 0 : next_after_fail1022:;
3177 : }
3178 0 : break;
3179 : }
3180 317 : case PLUS_EXPR:
3181 317 : {
3182 317 : tree _q20 = TREE_OPERAND (_p0, 0);
3183 317 : tree _q21 = TREE_OPERAND (_p0, 1);
3184 317 : if (real_zerop (_q21))
3185 : {
3186 3 : {
3187 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3188 3 : tree res = generic_simplify_1 (loc, type, _p0, captures, PLUS_EXPR);
3189 3 : if (res) return res;
3190 : }
3191 : }
3192 : break;
3193 : }
3194 7307 : case MINUS_EXPR:
3195 7307 : {
3196 7307 : tree _q20 = TREE_OPERAND (_p0, 0);
3197 7307 : tree _q21 = TREE_OPERAND (_p0, 1);
3198 7307 : if (real_zerop (_q21))
3199 : {
3200 0 : {
3201 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3202 0 : tree res = generic_simplify_1 (loc, type, _p0, captures, MINUS_EXPR);
3203 0 : if (res) return res;
3204 : }
3205 : }
3206 : break;
3207 : }
3208 0 : case VEC_COND_EXPR:
3209 0 : {
3210 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3211 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3212 0 : tree _q22 = TREE_OPERAND (_p0, 2);
3213 0 : {
3214 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3215 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1023;
3216 0 : {
3217 0 : tree res_op0;
3218 0 : res_op0 = captures[1];
3219 0 : tree res_op1;
3220 0 : {
3221 0 : tree _o1[1], _r1;
3222 0 : _o1[0] = captures[2];
3223 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3224 0 : if (EXPR_P (_r1))
3225 0 : goto next_after_fail1023;
3226 0 : res_op1 = _r1;
3227 : }
3228 0 : tree res_op2;
3229 0 : {
3230 0 : tree _o1[1], _r1;
3231 0 : _o1[0] = captures[3];
3232 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3233 0 : if (EXPR_P (_r1))
3234 0 : goto next_after_fail1023;
3235 0 : res_op2 = _r1;
3236 : }
3237 0 : tree _r;
3238 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3239 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 811, __FILE__, __LINE__, true);
3240 0 : return _r;
3241 : }
3242 0 : next_after_fail1023:;
3243 : }
3244 0 : break;
3245 : }
3246 703 : case CALL_EXPR:
3247 703 : switch (get_call_combined_fn (_p0))
3248 : {
3249 0 : case CFN_BUILT_IN_COPYSIGNF16:
3250 0 : if (call_expr_nargs (_p0) == 2)
3251 : {
3252 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3253 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3254 0 : {
3255 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3256 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF16);
3257 0 : if (res) return res;
3258 : }
3259 : }
3260 : break;
3261 0 : case CFN_BUILT_IN_COPYSIGNF32:
3262 0 : if (call_expr_nargs (_p0) == 2)
3263 : {
3264 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3265 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3266 0 : {
3267 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3268 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32);
3269 0 : if (res) return res;
3270 : }
3271 : }
3272 : break;
3273 0 : case CFN_BUILT_IN_COPYSIGNF64:
3274 0 : if (call_expr_nargs (_p0) == 2)
3275 : {
3276 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3277 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3278 0 : {
3279 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3280 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64);
3281 0 : if (res) return res;
3282 : }
3283 : }
3284 : break;
3285 0 : case CFN_BUILT_IN_COPYSIGNF128X:
3286 0 : if (call_expr_nargs (_p0) == 2)
3287 : {
3288 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3289 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3290 0 : {
3291 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3292 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128X);
3293 0 : if (res) return res;
3294 : }
3295 : }
3296 : break;
3297 0 : case CFN_BUILT_IN_COPYSIGNF128:
3298 0 : if (call_expr_nargs (_p0) == 2)
3299 : {
3300 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3301 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3302 0 : {
3303 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3304 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128);
3305 0 : if (res) return res;
3306 : }
3307 : }
3308 : break;
3309 0 : case CFN_BUILT_IN_COPYSIGNF32X:
3310 0 : if (call_expr_nargs (_p0) == 2)
3311 : {
3312 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3313 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3314 0 : {
3315 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3316 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32X);
3317 0 : if (res) return res;
3318 : }
3319 : }
3320 : break;
3321 0 : case CFN_BUILT_IN_COPYSIGNF64X:
3322 0 : if (call_expr_nargs (_p0) == 2)
3323 : {
3324 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3325 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3326 0 : {
3327 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3328 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64X);
3329 0 : if (res) return res;
3330 : }
3331 : }
3332 : break;
3333 0 : case CFN_BUILT_IN_COPYSIGN:
3334 0 : if (call_expr_nargs (_p0) == 2)
3335 : {
3336 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3337 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3338 0 : {
3339 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3340 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGN);
3341 0 : if (res) return res;
3342 : }
3343 : }
3344 : break;
3345 1 : case CFN_BUILT_IN_COPYSIGNF:
3346 1 : if (call_expr_nargs (_p0) == 2)
3347 : {
3348 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3349 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3350 1 : {
3351 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3352 1 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF);
3353 1 : if (res) return res;
3354 : }
3355 : }
3356 : break;
3357 0 : case CFN_BUILT_IN_COPYSIGNL:
3358 0 : if (call_expr_nargs (_p0) == 2)
3359 : {
3360 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3361 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3362 0 : {
3363 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3364 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNL);
3365 0 : if (res) return res;
3366 : }
3367 : }
3368 : break;
3369 0 : case CFN_COPYSIGN:
3370 0 : if (call_expr_nargs (_p0) == 2)
3371 : {
3372 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3373 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3374 0 : {
3375 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3376 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_COPYSIGN);
3377 0 : if (res) return res;
3378 : }
3379 : }
3380 : break;
3381 : default:;
3382 : }
3383 : break;
3384 3691345 : default:;
3385 : }
3386 3691345 : if (tree_expr_nonnegative_p (_p0))
3387 : {
3388 549 : {
3389 549 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3390 549 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1024;
3391 549 : {
3392 549 : tree _r;
3393 549 : _r = captures[0];
3394 549 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 812, __FILE__, __LINE__, true);
3395 549 : return _r;
3396 : }
3397 0 : next_after_fail1024:;
3398 : }
3399 : }
3400 : return NULL_TREE;
3401 : }
3402 :
3403 : tree
3404 98205673 : generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3405 : {
3406 98205673 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3407 98205673 : if (integer_zerop (_p1))
3408 : {
3409 27792704 : {
3410 27792704 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3411 27792704 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1143;
3412 27792704 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1143;
3413 27792704 : {
3414 27792704 : tree res_op0;
3415 27792704 : res_op0 = captures[0];
3416 27792704 : tree _r;
3417 27792704 : _r = non_lvalue_loc (loc, res_op0);
3418 27792704 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
3419 27792704 : return _r;
3420 : }
3421 : next_after_fail1143:;
3422 : }
3423 : }
3424 70412969 : if (real_zerop (_p1))
3425 : {
3426 5272 : {
3427 5272 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
3428 5272 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures);
3429 5272 : if (res) return res;
3430 : }
3431 : }
3432 70412874 : switch (TREE_CODE (_p0))
3433 : {
3434 6437196 : case PLUS_EXPR:
3435 6437196 : {
3436 6437196 : tree _q20 = TREE_OPERAND (_p0, 0);
3437 6437196 : tree _q21 = TREE_OPERAND (_p0, 1);
3438 6437196 : switch (TREE_CODE (_q21))
3439 : {
3440 115118 : case REAL_CST:
3441 115118 : {
3442 115118 : switch (TREE_CODE (_p1))
3443 : {
3444 70 : case REAL_CST:
3445 70 : {
3446 70 : {
3447 70 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3448 70 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
3449 70 : if (res) return res;
3450 : }
3451 67 : break;
3452 : }
3453 : default:;
3454 : }
3455 : break;
3456 : }
3457 : default:;
3458 : }
3459 : break;
3460 : }
3461 2098018 : case MINUS_EXPR:
3462 2098018 : {
3463 2098018 : tree _q20 = TREE_OPERAND (_p0, 0);
3464 2098018 : tree _q21 = TREE_OPERAND (_p0, 1);
3465 2098018 : switch (TREE_CODE (_q21))
3466 : {
3467 21807 : case REAL_CST:
3468 21807 : {
3469 21807 : switch (TREE_CODE (_p1))
3470 : {
3471 195 : case REAL_CST:
3472 195 : {
3473 195 : {
3474 195 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3475 195 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
3476 195 : if (res) return res;
3477 : }
3478 193 : break;
3479 : }
3480 : default:;
3481 : }
3482 : break;
3483 : }
3484 : default:;
3485 : }
3486 : break;
3487 : }
3488 12061 : case MAX_EXPR:
3489 12061 : {
3490 12061 : tree _q20 = TREE_OPERAND (_p0, 0);
3491 12061 : tree _q21 = TREE_OPERAND (_p0, 1);
3492 12061 : if (integer_zerop (_q21))
3493 : {
3494 4565 : switch (TREE_CODE (_p1))
3495 : {
3496 114 : case MAX_EXPR:
3497 114 : {
3498 114 : tree _q50 = TREE_OPERAND (_p1, 0);
3499 114 : tree _q51 = TREE_OPERAND (_p1, 1);
3500 114 : switch (TREE_CODE (_q50))
3501 : {
3502 48 : case NEGATE_EXPR:
3503 48 : {
3504 48 : tree _q60 = TREE_OPERAND (_q50, 0);
3505 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3506 : {
3507 48 : if (integer_zerop (_q51))
3508 : {
3509 48 : {
3510 48 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3511 48 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
3512 48 : if (res) return res;
3513 : }
3514 : }
3515 : }
3516 : break;
3517 : }
3518 : default:;
3519 : }
3520 : break;
3521 : }
3522 : default:;
3523 : }
3524 : }
3525 12013 : switch (TREE_CODE (_q20))
3526 : {
3527 18 : case NEGATE_EXPR:
3528 18 : {
3529 18 : tree _q30 = TREE_OPERAND (_q20, 0);
3530 18 : if (integer_zerop (_q21))
3531 : {
3532 18 : switch (TREE_CODE (_p1))
3533 : {
3534 18 : case MAX_EXPR:
3535 18 : {
3536 18 : tree _q60 = TREE_OPERAND (_p1, 0);
3537 18 : tree _q61 = TREE_OPERAND (_p1, 1);
3538 18 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
3539 : {
3540 18 : if (integer_zerop (_q61))
3541 : {
3542 18 : {
3543 18 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3544 18 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
3545 18 : if (res) return res;
3546 : }
3547 : }
3548 : }
3549 : break;
3550 : }
3551 : default:;
3552 : }
3553 : }
3554 : break;
3555 : }
3556 : default:;
3557 : }
3558 : break;
3559 : }
3560 12926644 : case MULT_EXPR:
3561 12926644 : {
3562 12926644 : tree _q20 = TREE_OPERAND (_p0, 0);
3563 12926644 : tree _q21 = TREE_OPERAND (_p0, 1);
3564 12926644 : switch (TREE_CODE (_q20))
3565 : {
3566 1798689 : case PLUS_EXPR:
3567 1798689 : {
3568 1798689 : tree _q30 = TREE_OPERAND (_q20, 0);
3569 1798689 : tree _q31 = TREE_OPERAND (_q20, 1);
3570 1798689 : switch (TREE_CODE (_q31))
3571 : {
3572 487132 : case INTEGER_CST:
3573 487132 : {
3574 487132 : switch (TREE_CODE (_q21))
3575 : {
3576 173110 : case INTEGER_CST:
3577 173110 : {
3578 173110 : switch (TREE_CODE (_p1))
3579 : {
3580 121370 : case INTEGER_CST:
3581 121370 : {
3582 121370 : {
3583 121370 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
3584 121370 : {
3585 121370 : bool overflowed = true;
3586 121370 : wi::overflow_type ovf1;
3587 121370 : wi::overflow_type ovf2;
3588 121370 : wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[4]),
3589 242740 : TYPE_SIGN (type), &ovf1);
3590 364110 : wide_int add = wi::add (mul, wi::to_wide (captures[5]),
3591 121370 : TYPE_SIGN (type), &ovf2);
3592 121370 : if (TYPE_OVERFLOW_UNDEFINED (type))
3593 : {
3594 : }
3595 : else
3596 60506 : overflowed = false;
3597 60506 : if (!overflowed
3598 : )
3599 : {
3600 60506 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1144;
3601 60506 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1144;
3602 60506 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1144;
3603 60506 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1144;
3604 60506 : {
3605 60506 : tree res_op0;
3606 60506 : {
3607 60506 : tree _o1[2], _r1;
3608 60506 : _o1[0] = captures[2];
3609 60506 : _o1[1] = captures[4];
3610 60506 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3611 60506 : res_op0 = _r1;
3612 : }
3613 60506 : tree res_op1;
3614 60506 : res_op1 = wide_int_to_tree (type, add);
3615 60506 : tree _r;
3616 60506 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3617 60506 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 870, __FILE__, __LINE__, true);
3618 60506 : return _r;
3619 : }
3620 60864 : next_after_fail1144:;
3621 : }
3622 121370 : }
3623 : }
3624 60864 : break;
3625 : }
3626 : default:;
3627 : }
3628 : break;
3629 : }
3630 : default:;
3631 : }
3632 : break;
3633 : }
3634 : default:;
3635 : }
3636 : break;
3637 : }
3638 : default:;
3639 : }
3640 : break;
3641 : }
3642 25740 : case LSHIFT_EXPR:
3643 25740 : {
3644 25740 : tree _q20 = TREE_OPERAND (_p0, 0);
3645 25740 : tree _q21 = TREE_OPERAND (_p0, 1);
3646 25740 : switch (TREE_CODE (_p1))
3647 : {
3648 688 : case LSHIFT_EXPR:
3649 688 : {
3650 688 : tree _q50 = TREE_OPERAND (_p1, 0);
3651 688 : tree _q51 = TREE_OPERAND (_p1, 1);
3652 688 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3653 : {
3654 7 : {
3655 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3656 7 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3657 7 : if (res) return res;
3658 : }
3659 : }
3660 : break;
3661 : }
3662 : default:;
3663 : }
3664 : break;
3665 : }
3666 231657 : case BIT_AND_EXPR:
3667 231657 : {
3668 231657 : tree _q20 = TREE_OPERAND (_p0, 0);
3669 231657 : tree _q21 = TREE_OPERAND (_p0, 1);
3670 231657 : switch (TREE_CODE (_p1))
3671 : {
3672 298 : case BIT_AND_EXPR:
3673 298 : {
3674 298 : tree _q50 = TREE_OPERAND (_p1, 0);
3675 298 : tree _q51 = TREE_OPERAND (_p1, 1);
3676 298 : {
3677 298 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
3678 298 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3679 298 : if (res) return res;
3680 : }
3681 298 : {
3682 298 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
3683 298 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3684 298 : if (res) return res;
3685 : }
3686 298 : {
3687 298 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
3688 298 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3689 298 : if (res) return res;
3690 : }
3691 298 : {
3692 298 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
3693 298 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3694 298 : if (res) return res;
3695 : }
3696 298 : break;
3697 : }
3698 231657 : default:;
3699 : }
3700 231657 : if (integer_onep (_q21))
3701 : {
3702 135076 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
3703 : {
3704 29 : {
3705 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
3706 29 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures);
3707 29 : if (res) return res;
3708 : }
3709 : }
3710 : }
3711 : break;
3712 : }
3713 70352261 : default:;
3714 : }
3715 70352261 : if (real_zerop (_p0))
3716 : {
3717 0 : {
3718 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
3719 0 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures);
3720 0 : if (res) return res;
3721 : }
3722 : }
3723 70352261 : switch (TREE_CODE (_p1))
3724 : {
3725 5333 : case BIT_AND_EXPR:
3726 5333 : {
3727 5333 : tree _q30 = TREE_OPERAND (_p1, 0);
3728 5333 : tree _q31 = TREE_OPERAND (_p1, 1);
3729 5333 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
3730 : {
3731 16 : if (integer_onep (_q31))
3732 : {
3733 16 : {
3734 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
3735 16 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures);
3736 16 : if (res) return res;
3737 : }
3738 : }
3739 : }
3740 : break;
3741 : }
3742 70352245 : default:;
3743 : }
3744 70352245 : switch (TREE_CODE (_p0))
3745 : {
3746 231628 : case BIT_AND_EXPR:
3747 231628 : {
3748 231628 : tree _q20 = TREE_OPERAND (_p0, 0);
3749 231628 : tree _q21 = TREE_OPERAND (_p0, 1);
3750 231628 : switch (TREE_CODE (_p1))
3751 : {
3752 9 : case BIT_XOR_EXPR:
3753 9 : {
3754 9 : tree _q50 = TREE_OPERAND (_p1, 0);
3755 9 : tree _q51 = TREE_OPERAND (_p1, 1);
3756 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3757 : {
3758 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3759 : {
3760 0 : {
3761 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3762 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3763 0 : if (res) return res;
3764 : }
3765 : }
3766 : }
3767 : break;
3768 : }
3769 1 : case BIT_IOR_EXPR:
3770 1 : {
3771 1 : tree _q50 = TREE_OPERAND (_p1, 0);
3772 1 : tree _q51 = TREE_OPERAND (_p1, 1);
3773 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3774 : {
3775 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3776 : {
3777 0 : {
3778 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3779 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures);
3780 0 : if (res) return res;
3781 : }
3782 : }
3783 : }
3784 : break;
3785 : }
3786 231628 : default:;
3787 : }
3788 231628 : switch (TREE_CODE (_q21))
3789 : {
3790 231324 : case INTEGER_CST:
3791 231324 : {
3792 231324 : switch (TREE_CODE (_p1))
3793 : {
3794 14367 : CASE_CONVERT:
3795 14367 : {
3796 14367 : tree _q50 = TREE_OPERAND (_p1, 0);
3797 14367 : switch (TREE_CODE (_q50))
3798 : {
3799 0 : case BIT_AND_EXPR:
3800 0 : {
3801 0 : tree _q60 = TREE_OPERAND (_q50, 0);
3802 0 : tree _q61 = TREE_OPERAND (_q50, 1);
3803 0 : switch (TREE_CODE (_q61))
3804 : {
3805 0 : case INTEGER_CST:
3806 0 : {
3807 0 : {
3808 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
3809 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3810 0 : if (res) return res;
3811 : }
3812 0 : break;
3813 : }
3814 : default:;
3815 : }
3816 : break;
3817 : }
3818 : default:;
3819 : }
3820 : break;
3821 : }
3822 298 : case BIT_AND_EXPR:
3823 298 : {
3824 298 : tree _q50 = TREE_OPERAND (_p1, 0);
3825 298 : tree _q51 = TREE_OPERAND (_p1, 1);
3826 298 : switch (TREE_CODE (_q51))
3827 : {
3828 298 : case INTEGER_CST:
3829 298 : {
3830 298 : {
3831 298 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
3832 298 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3833 298 : if (res) return res;
3834 : }
3835 198 : break;
3836 : }
3837 : default:;
3838 : }
3839 : break;
3840 : }
3841 : default:;
3842 : }
3843 : break;
3844 : }
3845 : default:;
3846 : }
3847 : break;
3848 : }
3849 1507 : case BIT_XOR_EXPR:
3850 1507 : {
3851 1507 : tree _q20 = TREE_OPERAND (_p0, 0);
3852 1507 : tree _q21 = TREE_OPERAND (_p0, 1);
3853 1507 : switch (TREE_CODE (_p1))
3854 : {
3855 0 : case BIT_AND_EXPR:
3856 0 : {
3857 0 : tree _q50 = TREE_OPERAND (_p1, 0);
3858 0 : tree _q51 = TREE_OPERAND (_p1, 1);
3859 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3860 : {
3861 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3862 : {
3863 0 : {
3864 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3865 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3866 0 : if (res) return res;
3867 : }
3868 : }
3869 : }
3870 : break;
3871 : }
3872 : default:;
3873 : }
3874 : break;
3875 : }
3876 552 : case BIT_IOR_EXPR:
3877 552 : {
3878 552 : tree _q20 = TREE_OPERAND (_p0, 0);
3879 552 : tree _q21 = TREE_OPERAND (_p0, 1);
3880 552 : switch (TREE_CODE (_p1))
3881 : {
3882 0 : case BIT_AND_EXPR:
3883 0 : {
3884 0 : tree _q50 = TREE_OPERAND (_p1, 0);
3885 0 : tree _q51 = TREE_OPERAND (_p1, 1);
3886 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3887 : {
3888 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3889 : {
3890 0 : {
3891 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3892 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures);
3893 0 : if (res) return res;
3894 : }
3895 : }
3896 : }
3897 : break;
3898 : }
3899 : default:;
3900 : }
3901 : break;
3902 : }
3903 2098016 : case MINUS_EXPR:
3904 2098016 : {
3905 2098016 : tree _q20 = TREE_OPERAND (_p0, 0);
3906 2098016 : tree _q21 = TREE_OPERAND (_p0, 1);
3907 2098016 : switch (TREE_CODE (_q20))
3908 : {
3909 2 : case BIT_AND_EXPR:
3910 2 : {
3911 2 : tree _q30 = TREE_OPERAND (_q20, 0);
3912 2 : tree _q31 = TREE_OPERAND (_q20, 1);
3913 2 : switch (TREE_CODE (_q21))
3914 : {
3915 1 : case BIT_IOR_EXPR:
3916 1 : {
3917 1 : tree _q60 = TREE_OPERAND (_q21, 0);
3918 1 : tree _q61 = TREE_OPERAND (_q21, 1);
3919 1 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
3920 : {
3921 1 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
3922 : {
3923 1 : if (integer_all_onesp (_p1))
3924 : {
3925 1 : {
3926 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
3927 1 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
3928 1 : if (res) return res;
3929 : }
3930 : }
3931 : }
3932 : }
3933 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
3934 : {
3935 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
3936 : {
3937 0 : if (integer_all_onesp (_p1))
3938 : {
3939 0 : {
3940 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
3941 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
3942 0 : if (res) return res;
3943 : }
3944 : }
3945 : }
3946 : }
3947 : break;
3948 : }
3949 : default:;
3950 : }
3951 : break;
3952 : }
3953 2098015 : default:;
3954 : }
3955 2098015 : {
3956 2098015 : tree _q20_pops[1];
3957 2098015 : if (tree_nop_convert (_q20, _q20_pops))
3958 : {
3959 875685 : tree _q30 = _q20_pops[0];
3960 875685 : switch (TREE_CODE (_q30))
3961 : {
3962 0 : case BIT_AND_EXPR:
3963 0 : {
3964 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3965 0 : tree _q41 = TREE_OPERAND (_q30, 1);
3966 0 : {
3967 0 : tree _q21_pops[1];
3968 0 : if (tree_nop_convert (_q21, _q21_pops))
3969 : {
3970 0 : tree _q70 = _q21_pops[0];
3971 0 : switch (TREE_CODE (_q70))
3972 : {
3973 0 : case BIT_IOR_EXPR:
3974 0 : {
3975 0 : tree _q80 = TREE_OPERAND (_q70, 0);
3976 0 : tree _q81 = TREE_OPERAND (_q70, 1);
3977 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
3978 : {
3979 0 : if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
3980 : {
3981 0 : if (integer_all_onesp (_p1))
3982 : {
3983 0 : {
3984 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
3985 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
3986 0 : if (res) return res;
3987 : }
3988 : }
3989 : }
3990 : }
3991 0 : if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
3992 : {
3993 0 : if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
3994 : {
3995 0 : if (integer_all_onesp (_p1))
3996 : {
3997 0 : {
3998 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
3999 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4000 0 : if (res) return res;
4001 : }
4002 : }
4003 : }
4004 : }
4005 : break;
4006 : }
4007 : default:;
4008 : }
4009 : }
4010 : }
4011 0 : break;
4012 : }
4013 : default:;
4014 : }
4015 : }
4016 : }
4017 2098015 : {
4018 2098015 : tree _q21_pops[1];
4019 2098015 : if (tree_nop_convert (_q21, _q21_pops))
4020 : {
4021 1109855 : tree _q40 = _q21_pops[0];
4022 1109855 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4023 : {
4024 34 : {
4025 34 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4026 34 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4027 34 : if (res) return res;
4028 : }
4029 : }
4030 : }
4031 : }
4032 2097985 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4033 : {
4034 47493 : {
4035 47493 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4036 47493 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4037 47493 : if (res) return res;
4038 : }
4039 : }
4040 : break;
4041 : }
4042 19230175 : CASE_CONVERT:
4043 19230175 : {
4044 19230175 : tree _q20 = TREE_OPERAND (_p0, 0);
4045 19230175 : switch (TREE_CODE (_q20))
4046 : {
4047 72 : case BIT_AND_EXPR:
4048 72 : {
4049 72 : tree _q30 = TREE_OPERAND (_q20, 0);
4050 72 : tree _q31 = TREE_OPERAND (_q20, 1);
4051 72 : switch (TREE_CODE (_q31))
4052 : {
4053 8 : case INTEGER_CST:
4054 8 : {
4055 8 : switch (TREE_CODE (_p1))
4056 : {
4057 0 : CASE_CONVERT:
4058 0 : {
4059 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4060 0 : switch (TREE_CODE (_q60))
4061 : {
4062 0 : case BIT_AND_EXPR:
4063 0 : {
4064 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4065 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4066 0 : switch (TREE_CODE (_q71))
4067 : {
4068 0 : case INTEGER_CST:
4069 0 : {
4070 0 : {
4071 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
4072 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4073 0 : if (res) return res;
4074 : }
4075 0 : break;
4076 : }
4077 : default:;
4078 : }
4079 : break;
4080 : }
4081 : default:;
4082 : }
4083 : break;
4084 : }
4085 0 : case BIT_AND_EXPR:
4086 0 : {
4087 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4088 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4089 0 : switch (TREE_CODE (_q61))
4090 : {
4091 0 : case INTEGER_CST:
4092 0 : {
4093 0 : {
4094 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
4095 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4096 0 : if (res) return res;
4097 : }
4098 0 : break;
4099 : }
4100 : default:;
4101 : }
4102 : break;
4103 : }
4104 : default:;
4105 : }
4106 : break;
4107 : }
4108 : default:;
4109 : }
4110 : break;
4111 : }
4112 4500 : case NEGATE_EXPR:
4113 4500 : {
4114 4500 : tree _q30 = TREE_OPERAND (_q20, 0);
4115 4500 : {
4116 4500 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
4117 4500 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4118 4500 : if (res) return res;
4119 : }
4120 1708 : break;
4121 : }
4122 : default:;
4123 : }
4124 : break;
4125 : }
4126 123580 : case COND_EXPR:
4127 123580 : {
4128 123580 : tree _q20 = TREE_OPERAND (_p0, 0);
4129 123580 : tree _q21 = TREE_OPERAND (_p0, 1);
4130 123580 : tree _q22 = TREE_OPERAND (_p0, 2);
4131 123580 : if (integer_zerop (_q22))
4132 : {
4133 114821 : switch (TREE_CODE (_p1))
4134 : {
4135 44 : case COND_EXPR:
4136 44 : {
4137 44 : tree _q60 = TREE_OPERAND (_p1, 0);
4138 44 : tree _q61 = TREE_OPERAND (_p1, 1);
4139 44 : tree _q62 = TREE_OPERAND (_p1, 2);
4140 44 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4141 : {
4142 6 : if (integer_zerop (_q61))
4143 : {
4144 0 : {
4145 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
4146 0 : const enum tree_code op = PLUS_EXPR;
4147 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1145;
4148 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1145;
4149 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1145;
4150 0 : {
4151 0 : tree res_op0;
4152 0 : res_op0 = captures[1];
4153 0 : tree res_op1;
4154 0 : res_op1 = captures[2];
4155 0 : tree res_op2;
4156 0 : res_op2 = captures[4];
4157 0 : tree _r;
4158 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4159 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
4160 0 : return _r;
4161 : }
4162 0 : next_after_fail1145:;
4163 : }
4164 : }
4165 : }
4166 : break;
4167 : }
4168 : default:;
4169 : }
4170 : }
4171 123580 : if (integer_zerop (_q21))
4172 : {
4173 1017 : switch (TREE_CODE (_p1))
4174 : {
4175 0 : case COND_EXPR:
4176 0 : {
4177 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4178 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4179 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4180 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4181 : {
4182 0 : if (integer_zerop (_q62))
4183 : {
4184 0 : {
4185 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
4186 0 : const enum tree_code op = PLUS_EXPR;
4187 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1146;
4188 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1146;
4189 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1146;
4190 0 : {
4191 0 : tree res_op0;
4192 0 : res_op0 = captures[1];
4193 0 : tree res_op1;
4194 0 : res_op1 = captures[2];
4195 0 : tree res_op2;
4196 0 : res_op2 = captures[4];
4197 0 : tree _r;
4198 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4199 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
4200 0 : return _r;
4201 : }
4202 0 : next_after_fail1146:;
4203 : }
4204 : }
4205 : }
4206 : break;
4207 : }
4208 : default:;
4209 : }
4210 : }
4211 123580 : switch (TREE_CODE (_q20))
4212 : {
4213 29380 : case LT_EXPR:
4214 29380 : {
4215 29380 : tree _q30 = TREE_OPERAND (_q20, 0);
4216 29380 : tree _q31 = TREE_OPERAND (_q20, 1);
4217 29380 : if (zerop (_q22))
4218 : {
4219 29318 : switch (TREE_CODE (_p1))
4220 : {
4221 0 : case COND_EXPR:
4222 0 : {
4223 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4224 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4225 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4226 0 : switch (TREE_CODE (_q80))
4227 : {
4228 0 : case GE_EXPR:
4229 0 : {
4230 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4231 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4232 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4233 : {
4234 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4235 : {
4236 0 : if (zerop (_q82))
4237 : {
4238 0 : {
4239 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4240 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
4241 0 : if (res) return res;
4242 : }
4243 : }
4244 : }
4245 : }
4246 : break;
4247 : }
4248 : default:;
4249 : }
4250 : break;
4251 : }
4252 : default:;
4253 : }
4254 : }
4255 : break;
4256 : }
4257 30494 : case LE_EXPR:
4258 30494 : {
4259 30494 : tree _q30 = TREE_OPERAND (_q20, 0);
4260 30494 : tree _q31 = TREE_OPERAND (_q20, 1);
4261 30494 : if (zerop (_q22))
4262 : {
4263 30236 : switch (TREE_CODE (_p1))
4264 : {
4265 5 : case COND_EXPR:
4266 5 : {
4267 5 : tree _q80 = TREE_OPERAND (_p1, 0);
4268 5 : tree _q81 = TREE_OPERAND (_p1, 1);
4269 5 : tree _q82 = TREE_OPERAND (_p1, 2);
4270 5 : switch (TREE_CODE (_q80))
4271 : {
4272 0 : case GT_EXPR:
4273 0 : {
4274 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4275 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4276 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4277 : {
4278 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4279 : {
4280 0 : if (zerop (_q82))
4281 : {
4282 0 : {
4283 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4284 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
4285 0 : if (res) return res;
4286 : }
4287 : }
4288 : }
4289 : }
4290 : break;
4291 : }
4292 : default:;
4293 : }
4294 : break;
4295 : }
4296 : default:;
4297 : }
4298 : }
4299 : break;
4300 : }
4301 1051 : case EQ_EXPR:
4302 1051 : {
4303 1051 : tree _q30 = TREE_OPERAND (_q20, 0);
4304 1051 : tree _q31 = TREE_OPERAND (_q20, 1);
4305 1051 : if (zerop (_q22))
4306 : {
4307 570 : switch (TREE_CODE (_p1))
4308 : {
4309 32 : case COND_EXPR:
4310 32 : {
4311 32 : tree _q80 = TREE_OPERAND (_p1, 0);
4312 32 : tree _q81 = TREE_OPERAND (_p1, 1);
4313 32 : tree _q82 = TREE_OPERAND (_p1, 2);
4314 32 : switch (TREE_CODE (_q80))
4315 : {
4316 0 : case NE_EXPR:
4317 0 : {
4318 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4319 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4320 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4321 : {
4322 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4323 : {
4324 0 : if (zerop (_q82))
4325 : {
4326 0 : {
4327 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4328 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
4329 0 : if (res) return res;
4330 : }
4331 : }
4332 : }
4333 : }
4334 : break;
4335 : }
4336 : default:;
4337 : }
4338 : break;
4339 : }
4340 : default:;
4341 : }
4342 : }
4343 : break;
4344 : }
4345 7944 : case NE_EXPR:
4346 7944 : {
4347 7944 : tree _q30 = TREE_OPERAND (_q20, 0);
4348 7944 : tree _q31 = TREE_OPERAND (_q20, 1);
4349 7944 : if (zerop (_q22))
4350 : {
4351 5343 : switch (TREE_CODE (_p1))
4352 : {
4353 7 : case COND_EXPR:
4354 7 : {
4355 7 : tree _q80 = TREE_OPERAND (_p1, 0);
4356 7 : tree _q81 = TREE_OPERAND (_p1, 1);
4357 7 : tree _q82 = TREE_OPERAND (_p1, 2);
4358 7 : switch (TREE_CODE (_q80))
4359 : {
4360 0 : case EQ_EXPR:
4361 0 : {
4362 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4363 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4364 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4365 : {
4366 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4367 : {
4368 0 : if (zerop (_q82))
4369 : {
4370 0 : {
4371 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4372 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
4373 0 : if (res) return res;
4374 : }
4375 : }
4376 : }
4377 : }
4378 : break;
4379 : }
4380 : default:;
4381 : }
4382 : break;
4383 : }
4384 : default:;
4385 : }
4386 : }
4387 : break;
4388 : }
4389 20204 : case GE_EXPR:
4390 20204 : {
4391 20204 : tree _q30 = TREE_OPERAND (_q20, 0);
4392 20204 : tree _q31 = TREE_OPERAND (_q20, 1);
4393 20204 : if (zerop (_q22))
4394 : {
4395 18929 : switch (TREE_CODE (_p1))
4396 : {
4397 0 : case COND_EXPR:
4398 0 : {
4399 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4400 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4401 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4402 0 : switch (TREE_CODE (_q80))
4403 : {
4404 0 : case LT_EXPR:
4405 0 : {
4406 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4407 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4408 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4409 : {
4410 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4411 : {
4412 0 : if (zerop (_q82))
4413 : {
4414 0 : {
4415 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4416 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
4417 0 : if (res) return res;
4418 : }
4419 : }
4420 : }
4421 : }
4422 : break;
4423 : }
4424 : default:;
4425 : }
4426 : break;
4427 : }
4428 : default:;
4429 : }
4430 : }
4431 : break;
4432 : }
4433 27714 : case GT_EXPR:
4434 27714 : {
4435 27714 : tree _q30 = TREE_OPERAND (_q20, 0);
4436 27714 : tree _q31 = TREE_OPERAND (_q20, 1);
4437 27714 : if (zerop (_q22))
4438 : {
4439 27685 : switch (TREE_CODE (_p1))
4440 : {
4441 0 : case COND_EXPR:
4442 0 : {
4443 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4444 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4445 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4446 0 : switch (TREE_CODE (_q80))
4447 : {
4448 0 : case LE_EXPR:
4449 0 : {
4450 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4451 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4452 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4453 : {
4454 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4455 : {
4456 0 : if (zerop (_q82))
4457 : {
4458 0 : {
4459 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4460 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
4461 0 : if (res) return res;
4462 : }
4463 : }
4464 : }
4465 : }
4466 : break;
4467 : }
4468 : default:;
4469 : }
4470 : break;
4471 : }
4472 : default:;
4473 : }
4474 : }
4475 : break;
4476 : }
4477 0 : case UNORDERED_EXPR:
4478 0 : {
4479 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4480 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4481 0 : if (zerop (_q22))
4482 : {
4483 0 : switch (TREE_CODE (_p1))
4484 : {
4485 0 : case COND_EXPR:
4486 0 : {
4487 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4488 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4489 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4490 0 : switch (TREE_CODE (_q80))
4491 : {
4492 0 : case ORDERED_EXPR:
4493 0 : {
4494 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4495 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4496 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4497 : {
4498 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4499 : {
4500 0 : if (zerop (_q82))
4501 : {
4502 0 : {
4503 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4504 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
4505 0 : if (res) return res;
4506 : }
4507 : }
4508 : }
4509 : }
4510 : break;
4511 : }
4512 : default:;
4513 : }
4514 : break;
4515 : }
4516 : default:;
4517 : }
4518 : }
4519 : break;
4520 : }
4521 0 : case ORDERED_EXPR:
4522 0 : {
4523 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4524 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4525 0 : if (zerop (_q22))
4526 : {
4527 0 : switch (TREE_CODE (_p1))
4528 : {
4529 0 : case COND_EXPR:
4530 0 : {
4531 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4532 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4533 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4534 0 : switch (TREE_CODE (_q80))
4535 : {
4536 0 : case UNORDERED_EXPR:
4537 0 : {
4538 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4539 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4540 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4541 : {
4542 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4543 : {
4544 0 : if (zerop (_q82))
4545 : {
4546 0 : {
4547 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4548 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
4549 0 : if (res) return res;
4550 : }
4551 : }
4552 : }
4553 : }
4554 : break;
4555 : }
4556 : default:;
4557 : }
4558 : break;
4559 : }
4560 : default:;
4561 : }
4562 : }
4563 : break;
4564 : }
4565 0 : case UNLT_EXPR:
4566 0 : {
4567 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4568 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4569 0 : if (zerop (_q22))
4570 : {
4571 0 : switch (TREE_CODE (_p1))
4572 : {
4573 0 : case COND_EXPR:
4574 0 : {
4575 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4576 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4577 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4578 0 : switch (TREE_CODE (_q80))
4579 : {
4580 0 : case GE_EXPR:
4581 0 : {
4582 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4583 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4584 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4585 : {
4586 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4587 : {
4588 0 : if (zerop (_q82))
4589 : {
4590 0 : {
4591 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4592 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
4593 0 : if (res) return res;
4594 : }
4595 : }
4596 : }
4597 : }
4598 : break;
4599 : }
4600 : default:;
4601 : }
4602 : break;
4603 : }
4604 : default:;
4605 : }
4606 : }
4607 : break;
4608 : }
4609 0 : case UNLE_EXPR:
4610 0 : {
4611 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4612 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4613 0 : if (zerop (_q22))
4614 : {
4615 0 : switch (TREE_CODE (_p1))
4616 : {
4617 0 : case COND_EXPR:
4618 0 : {
4619 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4620 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4621 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4622 0 : switch (TREE_CODE (_q80))
4623 : {
4624 0 : case GT_EXPR:
4625 0 : {
4626 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4627 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4628 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4629 : {
4630 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4631 : {
4632 0 : if (zerop (_q82))
4633 : {
4634 0 : {
4635 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4636 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
4637 0 : if (res) return res;
4638 : }
4639 : }
4640 : }
4641 : }
4642 : break;
4643 : }
4644 : default:;
4645 : }
4646 : break;
4647 : }
4648 : default:;
4649 : }
4650 : }
4651 : break;
4652 : }
4653 0 : case UNGT_EXPR:
4654 0 : {
4655 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4656 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4657 0 : if (zerop (_q22))
4658 : {
4659 0 : switch (TREE_CODE (_p1))
4660 : {
4661 0 : case COND_EXPR:
4662 0 : {
4663 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4664 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4665 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4666 0 : switch (TREE_CODE (_q80))
4667 : {
4668 0 : case LE_EXPR:
4669 0 : {
4670 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4671 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4672 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4673 : {
4674 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4675 : {
4676 0 : if (zerop (_q82))
4677 : {
4678 0 : {
4679 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4680 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
4681 0 : if (res) return res;
4682 : }
4683 : }
4684 : }
4685 : }
4686 : break;
4687 : }
4688 : default:;
4689 : }
4690 : break;
4691 : }
4692 : default:;
4693 : }
4694 : }
4695 : break;
4696 : }
4697 0 : case UNGE_EXPR:
4698 0 : {
4699 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4700 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4701 0 : if (zerop (_q22))
4702 : {
4703 0 : switch (TREE_CODE (_p1))
4704 : {
4705 0 : case COND_EXPR:
4706 0 : {
4707 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4708 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4709 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4710 0 : switch (TREE_CODE (_q80))
4711 : {
4712 0 : case LT_EXPR:
4713 0 : {
4714 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4715 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4716 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4717 : {
4718 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4719 : {
4720 0 : if (zerop (_q82))
4721 : {
4722 0 : {
4723 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4724 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
4725 0 : if (res) return res;
4726 : }
4727 : }
4728 : }
4729 : }
4730 : break;
4731 : }
4732 : default:;
4733 : }
4734 : break;
4735 : }
4736 : default:;
4737 : }
4738 : }
4739 : break;
4740 : }
4741 0 : case UNEQ_EXPR:
4742 0 : {
4743 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4744 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4745 0 : if (zerop (_q22))
4746 : {
4747 0 : switch (TREE_CODE (_p1))
4748 : {
4749 0 : case COND_EXPR:
4750 0 : {
4751 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4752 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4753 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4754 0 : switch (TREE_CODE (_q80))
4755 : {
4756 0 : case LTGT_EXPR:
4757 0 : {
4758 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4759 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4760 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4761 : {
4762 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4763 : {
4764 0 : if (zerop (_q82))
4765 : {
4766 0 : {
4767 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4768 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
4769 0 : if (res) return res;
4770 : }
4771 : }
4772 : }
4773 : }
4774 : break;
4775 : }
4776 : default:;
4777 : }
4778 : break;
4779 : }
4780 : default:;
4781 : }
4782 : }
4783 : break;
4784 : }
4785 0 : case LTGT_EXPR:
4786 0 : {
4787 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4788 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4789 0 : if (zerop (_q22))
4790 : {
4791 0 : switch (TREE_CODE (_p1))
4792 : {
4793 0 : case COND_EXPR:
4794 0 : {
4795 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4796 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4797 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4798 0 : switch (TREE_CODE (_q80))
4799 : {
4800 0 : case UNEQ_EXPR:
4801 0 : {
4802 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4803 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4804 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4805 : {
4806 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4807 : {
4808 0 : if (zerop (_q82))
4809 : {
4810 0 : {
4811 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4812 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
4813 0 : if (res) return res;
4814 : }
4815 : }
4816 : }
4817 : }
4818 : break;
4819 : }
4820 : default:;
4821 : }
4822 : break;
4823 : }
4824 : default:;
4825 : }
4826 : }
4827 : break;
4828 : }
4829 : default:;
4830 : }
4831 : break;
4832 : }
4833 168 : case VEC_COND_EXPR:
4834 168 : {
4835 168 : tree _q20 = TREE_OPERAND (_p0, 0);
4836 168 : tree _q21 = TREE_OPERAND (_p0, 1);
4837 168 : tree _q22 = TREE_OPERAND (_p0, 2);
4838 168 : if (integer_zerop (_q22))
4839 : {
4840 106 : switch (TREE_CODE (_p1))
4841 : {
4842 24 : case VEC_COND_EXPR:
4843 24 : {
4844 24 : tree _q60 = TREE_OPERAND (_p1, 0);
4845 24 : tree _q61 = TREE_OPERAND (_p1, 1);
4846 24 : tree _q62 = TREE_OPERAND (_p1, 2);
4847 24 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4848 : {
4849 0 : if (integer_zerop (_q61))
4850 : {
4851 0 : {
4852 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
4853 0 : const enum tree_code op = PLUS_EXPR;
4854 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1147;
4855 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1147;
4856 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1147;
4857 0 : {
4858 0 : tree res_op0;
4859 0 : res_op0 = captures[1];
4860 0 : tree res_op1;
4861 0 : res_op1 = captures[2];
4862 0 : tree res_op2;
4863 0 : res_op2 = captures[4];
4864 0 : tree _r;
4865 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4866 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
4867 0 : return _r;
4868 : }
4869 0 : next_after_fail1147:;
4870 : }
4871 : }
4872 : }
4873 : break;
4874 : }
4875 : default:;
4876 : }
4877 : }
4878 168 : if (integer_zerop (_q21))
4879 : {
4880 0 : switch (TREE_CODE (_p1))
4881 : {
4882 0 : case VEC_COND_EXPR:
4883 0 : {
4884 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4885 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4886 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4887 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4888 : {
4889 0 : if (integer_zerop (_q62))
4890 : {
4891 0 : {
4892 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
4893 0 : const enum tree_code op = PLUS_EXPR;
4894 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1148;
4895 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1148;
4896 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1148;
4897 0 : {
4898 0 : tree res_op0;
4899 0 : res_op0 = captures[1];
4900 0 : tree res_op1;
4901 0 : res_op1 = captures[2];
4902 0 : tree res_op2;
4903 0 : res_op2 = captures[4];
4904 0 : tree _r;
4905 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4906 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
4907 0 : return _r;
4908 : }
4909 0 : next_after_fail1148:;
4910 : }
4911 : }
4912 : }
4913 : break;
4914 : }
4915 : default:;
4916 : }
4917 : }
4918 168 : switch (TREE_CODE (_q20))
4919 : {
4920 8 : case LT_EXPR:
4921 8 : {
4922 8 : tree _q30 = TREE_OPERAND (_q20, 0);
4923 8 : tree _q31 = TREE_OPERAND (_q20, 1);
4924 8 : if (integer_zerop (_q22))
4925 : {
4926 8 : switch (TREE_CODE (_p1))
4927 : {
4928 0 : case VEC_COND_EXPR:
4929 0 : {
4930 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4931 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4932 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4933 0 : switch (TREE_CODE (_q80))
4934 : {
4935 0 : case GE_EXPR:
4936 0 : {
4937 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4938 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4939 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4940 : {
4941 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4942 : {
4943 0 : if (integer_zerop (_q82))
4944 : {
4945 0 : {
4946 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
4947 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
4948 0 : if (res) return res;
4949 : }
4950 : }
4951 : }
4952 : }
4953 : break;
4954 : }
4955 : default:;
4956 : }
4957 : break;
4958 : }
4959 : default:;
4960 : }
4961 : }
4962 : break;
4963 : }
4964 8 : case LE_EXPR:
4965 8 : {
4966 8 : tree _q30 = TREE_OPERAND (_q20, 0);
4967 8 : tree _q31 = TREE_OPERAND (_q20, 1);
4968 8 : if (integer_zerop (_q22))
4969 : {
4970 8 : switch (TREE_CODE (_p1))
4971 : {
4972 0 : case VEC_COND_EXPR:
4973 0 : {
4974 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4975 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4976 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4977 0 : switch (TREE_CODE (_q80))
4978 : {
4979 0 : case GT_EXPR:
4980 0 : {
4981 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4982 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4983 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4984 : {
4985 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4986 : {
4987 0 : if (integer_zerop (_q82))
4988 : {
4989 0 : {
4990 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
4991 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
4992 0 : if (res) return res;
4993 : }
4994 : }
4995 : }
4996 : }
4997 : break;
4998 : }
4999 : default:;
5000 : }
5001 : break;
5002 : }
5003 : default:;
5004 : }
5005 : }
5006 : break;
5007 : }
5008 34 : case EQ_EXPR:
5009 34 : {
5010 34 : tree _q30 = TREE_OPERAND (_q20, 0);
5011 34 : tree _q31 = TREE_OPERAND (_q20, 1);
5012 34 : if (integer_zerop (_q22))
5013 : {
5014 34 : switch (TREE_CODE (_p1))
5015 : {
5016 24 : case VEC_COND_EXPR:
5017 24 : {
5018 24 : tree _q80 = TREE_OPERAND (_p1, 0);
5019 24 : tree _q81 = TREE_OPERAND (_p1, 1);
5020 24 : tree _q82 = TREE_OPERAND (_p1, 2);
5021 24 : switch (TREE_CODE (_q80))
5022 : {
5023 24 : case NE_EXPR:
5024 24 : {
5025 24 : tree _q90 = TREE_OPERAND (_q80, 0);
5026 24 : tree _q91 = TREE_OPERAND (_q80, 1);
5027 24 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5028 : {
5029 24 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5030 : {
5031 24 : if (integer_zerop (_q82))
5032 : {
5033 24 : {
5034 24 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5035 24 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
5036 24 : if (res) return res;
5037 : }
5038 : }
5039 : }
5040 : }
5041 : break;
5042 : }
5043 : default:;
5044 : }
5045 : break;
5046 : }
5047 : default:;
5048 : }
5049 : }
5050 : break;
5051 : }
5052 22 : case NE_EXPR:
5053 22 : {
5054 22 : tree _q30 = TREE_OPERAND (_q20, 0);
5055 22 : tree _q31 = TREE_OPERAND (_q20, 1);
5056 22 : if (integer_zerop (_q22))
5057 : {
5058 8 : switch (TREE_CODE (_p1))
5059 : {
5060 0 : case VEC_COND_EXPR:
5061 0 : {
5062 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5063 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5064 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5065 0 : switch (TREE_CODE (_q80))
5066 : {
5067 0 : case EQ_EXPR:
5068 0 : {
5069 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5070 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5071 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5072 : {
5073 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5074 : {
5075 0 : if (integer_zerop (_q82))
5076 : {
5077 0 : {
5078 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5079 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
5080 0 : if (res) return res;
5081 : }
5082 : }
5083 : }
5084 : }
5085 : break;
5086 : }
5087 : default:;
5088 : }
5089 : break;
5090 : }
5091 : default:;
5092 : }
5093 : }
5094 : break;
5095 : }
5096 15 : case GE_EXPR:
5097 15 : {
5098 15 : tree _q30 = TREE_OPERAND (_q20, 0);
5099 15 : tree _q31 = TREE_OPERAND (_q20, 1);
5100 15 : if (integer_zerop (_q22))
5101 : {
5102 15 : switch (TREE_CODE (_p1))
5103 : {
5104 0 : case VEC_COND_EXPR:
5105 0 : {
5106 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5107 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5108 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5109 0 : switch (TREE_CODE (_q80))
5110 : {
5111 0 : case LT_EXPR:
5112 0 : {
5113 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5114 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5115 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5116 : {
5117 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5118 : {
5119 0 : if (integer_zerop (_q82))
5120 : {
5121 0 : {
5122 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5123 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
5124 0 : if (res) return res;
5125 : }
5126 : }
5127 : }
5128 : }
5129 : break;
5130 : }
5131 : default:;
5132 : }
5133 : break;
5134 : }
5135 : default:;
5136 : }
5137 : }
5138 : break;
5139 : }
5140 81 : case GT_EXPR:
5141 81 : {
5142 81 : tree _q30 = TREE_OPERAND (_q20, 0);
5143 81 : tree _q31 = TREE_OPERAND (_q20, 1);
5144 81 : if (integer_zerop (_q22))
5145 : {
5146 33 : switch (TREE_CODE (_p1))
5147 : {
5148 0 : case VEC_COND_EXPR:
5149 0 : {
5150 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5151 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5152 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5153 0 : switch (TREE_CODE (_q80))
5154 : {
5155 0 : case LE_EXPR:
5156 0 : {
5157 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5158 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5159 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5160 : {
5161 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5162 : {
5163 0 : if (integer_zerop (_q82))
5164 : {
5165 0 : {
5166 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5167 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
5168 0 : if (res) return res;
5169 : }
5170 : }
5171 : }
5172 : }
5173 : break;
5174 : }
5175 : default:;
5176 : }
5177 : break;
5178 : }
5179 : default:;
5180 : }
5181 : }
5182 : break;
5183 : }
5184 0 : case UNORDERED_EXPR:
5185 0 : {
5186 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5187 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5188 0 : if (integer_zerop (_q22))
5189 : {
5190 0 : switch (TREE_CODE (_p1))
5191 : {
5192 0 : case VEC_COND_EXPR:
5193 0 : {
5194 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5195 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5196 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5197 0 : switch (TREE_CODE (_q80))
5198 : {
5199 0 : case ORDERED_EXPR:
5200 0 : {
5201 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5202 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5203 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5204 : {
5205 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5206 : {
5207 0 : if (integer_zerop (_q82))
5208 : {
5209 0 : {
5210 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5211 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
5212 0 : if (res) return res;
5213 : }
5214 : }
5215 : }
5216 : }
5217 : break;
5218 : }
5219 : default:;
5220 : }
5221 : break;
5222 : }
5223 : default:;
5224 : }
5225 : }
5226 : break;
5227 : }
5228 0 : case ORDERED_EXPR:
5229 0 : {
5230 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5231 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5232 0 : if (integer_zerop (_q22))
5233 : {
5234 0 : switch (TREE_CODE (_p1))
5235 : {
5236 0 : case VEC_COND_EXPR:
5237 0 : {
5238 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5239 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5240 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5241 0 : switch (TREE_CODE (_q80))
5242 : {
5243 0 : case UNORDERED_EXPR:
5244 0 : {
5245 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5246 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5247 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5248 : {
5249 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5250 : {
5251 0 : if (integer_zerop (_q82))
5252 : {
5253 0 : {
5254 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5255 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
5256 0 : if (res) return res;
5257 : }
5258 : }
5259 : }
5260 : }
5261 : break;
5262 : }
5263 : default:;
5264 : }
5265 : break;
5266 : }
5267 : default:;
5268 : }
5269 : }
5270 : break;
5271 : }
5272 0 : case UNLT_EXPR:
5273 0 : {
5274 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5275 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5276 0 : if (integer_zerop (_q22))
5277 : {
5278 0 : switch (TREE_CODE (_p1))
5279 : {
5280 0 : case VEC_COND_EXPR:
5281 0 : {
5282 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5283 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5284 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5285 0 : switch (TREE_CODE (_q80))
5286 : {
5287 0 : case GE_EXPR:
5288 0 : {
5289 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5290 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5291 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5292 : {
5293 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5294 : {
5295 0 : if (integer_zerop (_q82))
5296 : {
5297 0 : {
5298 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5299 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
5300 0 : if (res) return res;
5301 : }
5302 : }
5303 : }
5304 : }
5305 : break;
5306 : }
5307 : default:;
5308 : }
5309 : break;
5310 : }
5311 : default:;
5312 : }
5313 : }
5314 : break;
5315 : }
5316 0 : case UNLE_EXPR:
5317 0 : {
5318 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5319 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5320 0 : if (integer_zerop (_q22))
5321 : {
5322 0 : switch (TREE_CODE (_p1))
5323 : {
5324 0 : case VEC_COND_EXPR:
5325 0 : {
5326 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5327 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5328 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5329 0 : switch (TREE_CODE (_q80))
5330 : {
5331 0 : case GT_EXPR:
5332 0 : {
5333 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5334 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5335 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5336 : {
5337 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5338 : {
5339 0 : if (integer_zerop (_q82))
5340 : {
5341 0 : {
5342 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5343 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
5344 0 : if (res) return res;
5345 : }
5346 : }
5347 : }
5348 : }
5349 : break;
5350 : }
5351 : default:;
5352 : }
5353 : break;
5354 : }
5355 : default:;
5356 : }
5357 : }
5358 : break;
5359 : }
5360 0 : case UNGT_EXPR:
5361 0 : {
5362 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5363 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5364 0 : if (integer_zerop (_q22))
5365 : {
5366 0 : switch (TREE_CODE (_p1))
5367 : {
5368 0 : case VEC_COND_EXPR:
5369 0 : {
5370 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5371 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5372 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5373 0 : switch (TREE_CODE (_q80))
5374 : {
5375 0 : case LE_EXPR:
5376 0 : {
5377 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5378 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5379 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5380 : {
5381 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5382 : {
5383 0 : if (integer_zerop (_q82))
5384 : {
5385 0 : {
5386 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5387 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
5388 0 : if (res) return res;
5389 : }
5390 : }
5391 : }
5392 : }
5393 : break;
5394 : }
5395 : default:;
5396 : }
5397 : break;
5398 : }
5399 : default:;
5400 : }
5401 : }
5402 : break;
5403 : }
5404 0 : case UNGE_EXPR:
5405 0 : {
5406 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5407 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5408 0 : if (integer_zerop (_q22))
5409 : {
5410 0 : switch (TREE_CODE (_p1))
5411 : {
5412 0 : case VEC_COND_EXPR:
5413 0 : {
5414 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5415 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5416 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5417 0 : switch (TREE_CODE (_q80))
5418 : {
5419 0 : case LT_EXPR:
5420 0 : {
5421 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5422 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5423 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5424 : {
5425 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5426 : {
5427 0 : if (integer_zerop (_q82))
5428 : {
5429 0 : {
5430 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5431 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
5432 0 : if (res) return res;
5433 : }
5434 : }
5435 : }
5436 : }
5437 : break;
5438 : }
5439 : default:;
5440 : }
5441 : break;
5442 : }
5443 : default:;
5444 : }
5445 : }
5446 : break;
5447 : }
5448 0 : case UNEQ_EXPR:
5449 0 : {
5450 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5451 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5452 0 : if (integer_zerop (_q22))
5453 : {
5454 0 : switch (TREE_CODE (_p1))
5455 : {
5456 0 : case VEC_COND_EXPR:
5457 0 : {
5458 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5459 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5460 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5461 0 : switch (TREE_CODE (_q80))
5462 : {
5463 0 : case LTGT_EXPR:
5464 0 : {
5465 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5466 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5467 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5468 : {
5469 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5470 : {
5471 0 : if (integer_zerop (_q82))
5472 : {
5473 0 : {
5474 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5475 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
5476 0 : if (res) return res;
5477 : }
5478 : }
5479 : }
5480 : }
5481 : break;
5482 : }
5483 : default:;
5484 : }
5485 : break;
5486 : }
5487 : default:;
5488 : }
5489 : }
5490 : break;
5491 : }
5492 0 : case LTGT_EXPR:
5493 0 : {
5494 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5495 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5496 0 : if (integer_zerop (_q22))
5497 : {
5498 0 : switch (TREE_CODE (_p1))
5499 : {
5500 0 : case VEC_COND_EXPR:
5501 0 : {
5502 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5503 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5504 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5505 0 : switch (TREE_CODE (_q80))
5506 : {
5507 0 : case UNEQ_EXPR:
5508 0 : {
5509 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5510 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5511 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5512 : {
5513 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5514 : {
5515 0 : if (integer_zerop (_q82))
5516 : {
5517 0 : {
5518 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5519 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
5520 0 : if (res) return res;
5521 : }
5522 : }
5523 : }
5524 : }
5525 : break;
5526 : }
5527 : default:;
5528 : }
5529 : break;
5530 : }
5531 : default:;
5532 : }
5533 : }
5534 : break;
5535 : }
5536 : default:;
5537 : }
5538 : break;
5539 : }
5540 70301875 : default:;
5541 : }
5542 70301875 : {
5543 70301875 : tree _p0_pops[1];
5544 70301875 : if (tree_nop_convert (_p0, _p0_pops))
5545 : {
5546 14153127 : tree _q20 = _p0_pops[0];
5547 14153127 : switch (TREE_CODE (_q20))
5548 : {
5549 142224 : case MINUS_EXPR:
5550 142224 : {
5551 142224 : tree _q30 = TREE_OPERAND (_q20, 0);
5552 142224 : tree _q31 = TREE_OPERAND (_q20, 1);
5553 142224 : switch (TREE_CODE (_q30))
5554 : {
5555 2 : case BIT_AND_EXPR:
5556 2 : {
5557 2 : tree _q40 = TREE_OPERAND (_q30, 0);
5558 2 : tree _q41 = TREE_OPERAND (_q30, 1);
5559 2 : switch (TREE_CODE (_q31))
5560 : {
5561 1 : case BIT_IOR_EXPR:
5562 1 : {
5563 1 : tree _q70 = TREE_OPERAND (_q31, 0);
5564 1 : tree _q71 = TREE_OPERAND (_q31, 1);
5565 1 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5566 : {
5567 1 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
5568 : {
5569 1 : if (integer_all_onesp (_p1))
5570 : {
5571 1 : {
5572 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
5573 1 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
5574 1 : if (res) return res;
5575 : }
5576 : }
5577 : }
5578 : }
5579 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
5580 : {
5581 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
5582 : {
5583 0 : if (integer_all_onesp (_p1))
5584 : {
5585 0 : {
5586 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
5587 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
5588 0 : if (res) return res;
5589 : }
5590 : }
5591 : }
5592 : }
5593 : break;
5594 : }
5595 : default:;
5596 : }
5597 : break;
5598 : }
5599 142223 : default:;
5600 : }
5601 142223 : {
5602 142223 : tree _q30_pops[1];
5603 142223 : if (tree_nop_convert (_q30, _q30_pops))
5604 : {
5605 90815 : tree _q40 = _q30_pops[0];
5606 90815 : switch (TREE_CODE (_q40))
5607 : {
5608 0 : case BIT_AND_EXPR:
5609 0 : {
5610 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5611 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5612 0 : {
5613 0 : tree _q31_pops[1];
5614 0 : if (tree_nop_convert (_q31, _q31_pops))
5615 : {
5616 0 : tree _q80 = _q31_pops[0];
5617 0 : switch (TREE_CODE (_q80))
5618 : {
5619 0 : case BIT_IOR_EXPR:
5620 0 : {
5621 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5622 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5623 0 : if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
5624 : {
5625 0 : if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
5626 : {
5627 0 : if (integer_all_onesp (_p1))
5628 : {
5629 0 : {
5630 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
5631 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
5632 0 : if (res) return res;
5633 : }
5634 : }
5635 : }
5636 : }
5637 0 : if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
5638 : {
5639 0 : if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
5640 : {
5641 0 : if (integer_all_onesp (_p1))
5642 : {
5643 0 : {
5644 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
5645 0 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
5646 0 : if (res) return res;
5647 : }
5648 : }
5649 : }
5650 : }
5651 : break;
5652 : }
5653 : default:;
5654 : }
5655 : }
5656 : }
5657 0 : break;
5658 : }
5659 : default:;
5660 : }
5661 : }
5662 : }
5663 142223 : break;
5664 : }
5665 : default:;
5666 : }
5667 : }
5668 : }
5669 70301874 : switch (TREE_CODE (_p1))
5670 : {
5671 8283990 : CASE_CONVERT:
5672 8283990 : {
5673 8283990 : tree _q30 = TREE_OPERAND (_p1, 0);
5674 8283990 : switch (TREE_CODE (_q30))
5675 : {
5676 353 : case NEGATE_EXPR:
5677 353 : {
5678 353 : tree _q40 = TREE_OPERAND (_q30, 0);
5679 353 : {
5680 353 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
5681 353 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
5682 353 : if (res) return res;
5683 : }
5684 295 : break;
5685 : }
5686 : default:;
5687 : }
5688 : break;
5689 : }
5690 9504 : case NEGATE_EXPR:
5691 9504 : {
5692 9504 : tree _q30 = TREE_OPERAND (_p1, 0);
5693 9504 : {
5694 9504 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5695 9504 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
5696 9504 : if (res) return res;
5697 : }
5698 0 : break;
5699 : }
5700 70292312 : default:;
5701 : }
5702 70292312 : switch (TREE_CODE (_p0))
5703 : {
5704 205369 : case NEGATE_EXPR:
5705 205369 : {
5706 205369 : tree _q20 = TREE_OPERAND (_p0, 0);
5707 205369 : {
5708 205369 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
5709 205369 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
5710 205369 : if (res) return res;
5711 : }
5712 134 : break;
5713 : }
5714 70087077 : default:;
5715 : }
5716 70087077 : {
5717 70087077 : tree _p0_pops[1];
5718 70087077 : if (tree_nop_convert (_p0, _p0_pops))
5719 : {
5720 14147158 : tree _q20 = _p0_pops[0];
5721 14147158 : switch (TREE_CODE (_q20))
5722 : {
5723 141795 : case MINUS_EXPR:
5724 141795 : {
5725 141795 : tree _q30 = TREE_OPERAND (_q20, 0);
5726 141795 : tree _q31 = TREE_OPERAND (_q20, 1);
5727 141795 : {
5728 141795 : tree _q31_pops[1];
5729 141795 : if (tree_nop_convert (_q31, _q31_pops))
5730 : {
5731 104206 : tree _q50 = _q31_pops[0];
5732 104206 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
5733 : {
5734 30 : {
5735 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
5736 30 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5737 30 : if (res) return res;
5738 : }
5739 : }
5740 : }
5741 : }
5742 141765 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5743 : {
5744 0 : {
5745 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
5746 0 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5747 0 : if (res) return res;
5748 : }
5749 : }
5750 141765 : if (CONSTANT_CLASS_P (_q31))
5751 : {
5752 18234 : if (CONSTANT_CLASS_P (_p1))
5753 : {
5754 18074 : {
5755 18074 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5756 18074 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
5757 18074 : if (res) return res;
5758 : }
5759 : }
5760 : }
5761 123691 : if (CONSTANT_CLASS_P (_q30))
5762 : {
5763 17783 : if (CONSTANT_CLASS_P (_p1))
5764 : {
5765 5863 : {
5766 5863 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5767 5863 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
5768 5863 : if (res) return res;
5769 : }
5770 : }
5771 : }
5772 : break;
5773 : }
5774 1338727 : case PLUS_EXPR:
5775 1338727 : {
5776 1338727 : tree _q30 = TREE_OPERAND (_q20, 0);
5777 1338727 : tree _q31 = TREE_OPERAND (_q20, 1);
5778 1338727 : if (CONSTANT_CLASS_P (_q31))
5779 : {
5780 1138938 : if (CONSTANT_CLASS_P (_p1))
5781 : {
5782 1051318 : {
5783 1051318 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5784 1051318 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
5785 1051318 : if (res) return res;
5786 : }
5787 : }
5788 : }
5789 : break;
5790 : }
5791 : default:;
5792 : }
5793 : }
5794 : }
5795 69012692 : switch (TREE_CODE (_p1))
5796 : {
5797 171641 : case MINUS_EXPR:
5798 171641 : {
5799 171641 : tree _q30 = TREE_OPERAND (_p1, 0);
5800 171641 : tree _q31 = TREE_OPERAND (_p1, 1);
5801 171641 : {
5802 171641 : tree _q31_pops[1];
5803 171641 : if (tree_nop_convert (_q31, _q31_pops))
5804 : {
5805 60915 : tree _q50 = _q31_pops[0];
5806 60915 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5807 : {
5808 0 : {
5809 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
5810 0 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5811 0 : if (res) return res;
5812 : }
5813 : }
5814 : }
5815 : }
5816 171641 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5817 : {
5818 329 : {
5819 329 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
5820 329 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5821 329 : if (res) return res;
5822 : }
5823 : }
5824 : break;
5825 : }
5826 69012363 : default:;
5827 : }
5828 69012363 : {
5829 69012363 : tree _p1_pops[1];
5830 69012363 : if (tree_nop_convert (_p1, _p1_pops))
5831 : {
5832 7999080 : tree _q30 = _p1_pops[0];
5833 7999080 : switch (TREE_CODE (_q30))
5834 : {
5835 3676 : case MINUS_EXPR:
5836 3676 : {
5837 3676 : tree _q40 = TREE_OPERAND (_q30, 0);
5838 3676 : tree _q41 = TREE_OPERAND (_q30, 1);
5839 3676 : {
5840 3676 : tree _q41_pops[1];
5841 3676 : if (tree_nop_convert (_q41, _q41_pops))
5842 : {
5843 529 : tree _q60 = _q41_pops[0];
5844 529 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5845 : {
5846 0 : {
5847 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
5848 0 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5849 0 : if (res) return res;
5850 : }
5851 : }
5852 : }
5853 : }
5854 3676 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5855 : {
5856 0 : {
5857 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
5858 0 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
5859 0 : if (res) return res;
5860 : }
5861 : }
5862 : break;
5863 : }
5864 : default:;
5865 : }
5866 : }
5867 : }
5868 69012363 : switch (TREE_CODE (_p0))
5869 : {
5870 6436636 : case PLUS_EXPR:
5871 6436636 : {
5872 6436636 : tree _q20 = TREE_OPERAND (_p0, 0);
5873 6436636 : tree _q21 = TREE_OPERAND (_p0, 1);
5874 6436636 : switch (TREE_CODE (_p1))
5875 : {
5876 46736 : case MINUS_EXPR:
5877 46736 : {
5878 46736 : tree _q50 = TREE_OPERAND (_p1, 0);
5879 46736 : tree _q51 = TREE_OPERAND (_p1, 1);
5880 46736 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5881 : {
5882 143 : {
5883 143 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5884 143 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5885 143 : if (res) return res;
5886 : }
5887 : }
5888 46593 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5889 : {
5890 311 : {
5891 311 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5892 311 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5893 311 : if (res) return res;
5894 : }
5895 : }
5896 : break;
5897 : }
5898 6436182 : default:;
5899 : }
5900 6436182 : if (CONSTANT_CLASS_P (_q21))
5901 : {
5902 2577962 : if (CONSTANT_CLASS_P (_p1))
5903 : {
5904 1906976 : {
5905 1906976 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5906 1906976 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
5907 1906976 : if (res) return res;
5908 : }
5909 : }
5910 : }
5911 : break;
5912 : }
5913 2049358 : case MINUS_EXPR:
5914 2049358 : {
5915 2049358 : tree _q20 = TREE_OPERAND (_p0, 0);
5916 2049358 : tree _q21 = TREE_OPERAND (_p0, 1);
5917 2049358 : switch (TREE_CODE (_p1))
5918 : {
5919 1939 : case PLUS_EXPR:
5920 1939 : {
5921 1939 : tree _q50 = TREE_OPERAND (_p1, 0);
5922 1939 : tree _q51 = TREE_OPERAND (_p1, 1);
5923 1939 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5924 : {
5925 352 : {
5926 352 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
5927 352 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5928 352 : if (res) return res;
5929 : }
5930 : }
5931 1587 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5932 : {
5933 27 : {
5934 27 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
5935 27 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5936 27 : if (res) return res;
5937 : }
5938 : }
5939 : break;
5940 : }
5941 460 : case MINUS_EXPR:
5942 460 : {
5943 460 : tree _q50 = TREE_OPERAND (_p1, 0);
5944 460 : tree _q51 = TREE_OPERAND (_p1, 1);
5945 460 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5946 : {
5947 1 : {
5948 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5949 1 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
5950 1 : if (res) return res;
5951 : }
5952 : }
5953 459 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5954 : {
5955 9 : {
5956 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
5957 9 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
5958 9 : if (res) return res;
5959 : }
5960 : }
5961 : break;
5962 : }
5963 2048969 : default:;
5964 : }
5965 2048969 : if (CONSTANT_CLASS_P (_q21))
5966 : {
5967 123287 : if (CONSTANT_CLASS_P (_p1))
5968 : {
5969 83089 : {
5970 83089 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5971 83089 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
5972 83089 : if (res) return res;
5973 : }
5974 : }
5975 : }
5976 1966077 : if (CONSTANT_CLASS_P (_q20))
5977 : {
5978 420914 : if (CONSTANT_CLASS_P (_p1))
5979 : {
5980 236613 : {
5981 236613 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5982 236613 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
5983 236613 : if (res) return res;
5984 : }
5985 : }
5986 : }
5987 : break;
5988 : }
5989 473 : case POINTER_DIFF_EXPR:
5990 473 : {
5991 473 : tree _q20 = TREE_OPERAND (_p0, 0);
5992 473 : tree _q21 = TREE_OPERAND (_p0, 1);
5993 473 : switch (TREE_CODE (_p1))
5994 : {
5995 7 : case POINTER_DIFF_EXPR:
5996 7 : {
5997 7 : tree _q50 = TREE_OPERAND (_p1, 0);
5998 7 : tree _q51 = TREE_OPERAND (_p1, 1);
5999 7 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6000 : {
6001 7 : {
6002 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6003 7 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
6004 7 : if (res) return res;
6005 : }
6006 : }
6007 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6008 : {
6009 0 : {
6010 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6011 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
6012 0 : if (res) return res;
6013 : }
6014 : }
6015 : break;
6016 : }
6017 : default:;
6018 : }
6019 : break;
6020 : }
6021 18146522 : CASE_CONVERT:
6022 18146522 : {
6023 18146522 : tree _q20 = TREE_OPERAND (_p0, 0);
6024 18146522 : switch (TREE_CODE (_p1))
6025 : {
6026 3110872 : CASE_CONVERT:
6027 3110872 : {
6028 3110872 : tree _q40 = TREE_OPERAND (_p1, 0);
6029 3110872 : {
6030 3110872 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6031 3110872 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6032 3110872 : if (res) return res;
6033 : }
6034 3110723 : break;
6035 : }
6036 18146373 : default:;
6037 : }
6038 18146373 : switch (TREE_CODE (_q20))
6039 : {
6040 162108 : case BIT_NOT_EXPR:
6041 162108 : {
6042 162108 : tree _q30 = TREE_OPERAND (_q20, 0);
6043 162108 : switch (TREE_CODE (_p1))
6044 : {
6045 185 : CASE_CONVERT:
6046 185 : {
6047 185 : tree _q50 = TREE_OPERAND (_p1, 0);
6048 185 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
6049 : {
6050 0 : {
6051 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
6052 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
6053 0 : if (res) return res;
6054 : }
6055 : }
6056 : break;
6057 : }
6058 : default:;
6059 : }
6060 : break;
6061 : }
6062 18146373 : default:;
6063 : }
6064 18146373 : switch (TREE_CODE (_p1))
6065 : {
6066 3110723 : CASE_CONVERT:
6067 3110723 : {
6068 3110723 : tree _q40 = TREE_OPERAND (_p1, 0);
6069 3110723 : switch (TREE_CODE (_q40))
6070 : {
6071 414 : case BIT_NOT_EXPR:
6072 414 : {
6073 414 : tree _q50 = TREE_OPERAND (_q40, 0);
6074 414 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6075 : {
6076 0 : {
6077 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6078 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
6079 0 : if (res) return res;
6080 : }
6081 : }
6082 : break;
6083 : }
6084 : default:;
6085 : }
6086 : break;
6087 : }
6088 : default:;
6089 : }
6090 : break;
6091 : }
6092 332775 : case BIT_NOT_EXPR:
6093 332775 : {
6094 332775 : tree _q20 = TREE_OPERAND (_p0, 0);
6095 332775 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6096 : {
6097 523 : {
6098 523 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6099 523 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
6100 523 : if (res) return res;
6101 : }
6102 : }
6103 332252 : if (integer_each_onep (_p1))
6104 : {
6105 2624 : {
6106 2624 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6107 2624 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
6108 2624 : if (res) return res;
6109 : }
6110 : }
6111 : break;
6112 : }
6113 66782092 : default:;
6114 : }
6115 66782092 : switch (TREE_CODE (_p1))
6116 : {
6117 38899 : case BIT_NOT_EXPR:
6118 38899 : {
6119 38899 : tree _q30 = TREE_OPERAND (_p1, 0);
6120 38899 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6121 : {
6122 0 : {
6123 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6124 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
6125 0 : if (res) return res;
6126 : }
6127 : }
6128 : break;
6129 : }
6130 66782092 : default:;
6131 : }
6132 66782092 : switch (TREE_CODE (_p0))
6133 : {
6134 18146373 : CASE_CONVERT:
6135 18146373 : {
6136 18146373 : tree _q20 = TREE_OPERAND (_p0, 0);
6137 18146373 : switch (TREE_CODE (_q20))
6138 : {
6139 162108 : case BIT_NOT_EXPR:
6140 162108 : {
6141 162108 : tree _q30 = TREE_OPERAND (_q20, 0);
6142 162108 : if (integer_each_onep (_p1))
6143 : {
6144 158497 : {
6145 158497 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
6146 158497 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
6147 158497 : if (res) return res;
6148 : }
6149 : }
6150 : break;
6151 : }
6152 : default:;
6153 : }
6154 : break;
6155 : }
6156 12865638 : case MULT_EXPR:
6157 12865638 : {
6158 12865638 : tree _q20 = TREE_OPERAND (_p0, 0);
6159 12865638 : tree _q21 = TREE_OPERAND (_p0, 1);
6160 12865638 : switch (TREE_CODE (_p1))
6161 : {
6162 3307458 : case MULT_EXPR:
6163 3307458 : {
6164 3307458 : tree _q50 = TREE_OPERAND (_p1, 0);
6165 3307458 : tree _q51 = TREE_OPERAND (_p1, 1);
6166 3307458 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6167 : {
6168 792089 : {
6169 792089 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
6170 792089 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6171 792089 : if (res) return res;
6172 : }
6173 : }
6174 3302707 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6175 : {
6176 21 : {
6177 21 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
6178 21 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6179 21 : if (res) return res;
6180 : }
6181 : }
6182 3302702 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6183 : {
6184 241 : {
6185 241 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
6186 241 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6187 241 : if (res) return res;
6188 : }
6189 : }
6190 3302531 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6191 : {
6192 1262346 : {
6193 1262346 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
6194 1262346 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6195 1262346 : if (res) return res;
6196 : }
6197 : }
6198 : break;
6199 : }
6200 : default:;
6201 : }
6202 : break;
6203 : }
6204 65357414 : default:;
6205 : }
6206 65357414 : switch (TREE_CODE (_p1))
6207 : {
6208 3448286 : case MULT_EXPR:
6209 3448286 : {
6210 3448286 : tree _q30 = TREE_OPERAND (_p1, 0);
6211 3448286 : tree _q31 = TREE_OPERAND (_p1, 1);
6212 3448286 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6213 : {
6214 3853 : {
6215 3853 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
6216 3853 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6217 3853 : if (res) return res;
6218 : }
6219 : }
6220 3444480 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6221 : {
6222 2 : {
6223 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6224 2 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6225 2 : if (res) return res;
6226 : }
6227 : }
6228 : break;
6229 : }
6230 65353606 : default:;
6231 : }
6232 65353606 : switch (TREE_CODE (_p0))
6233 : {
6234 11598613 : case MULT_EXPR:
6235 11598613 : {
6236 11598613 : tree _q20 = TREE_OPERAND (_p0, 0);
6237 11598613 : tree _q21 = TREE_OPERAND (_p0, 1);
6238 11598613 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6239 : {
6240 33260 : {
6241 33260 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
6242 33260 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6243 33260 : if (res) return res;
6244 : }
6245 : }
6246 11565999 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6247 : {
6248 331577 : {
6249 331577 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
6250 331577 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6251 331577 : if (res) return res;
6252 : }
6253 : }
6254 11235050 : if (integer_nonzerop (_q20))
6255 : {
6256 102 : switch (TREE_CODE (_p1))
6257 : {
6258 50 : case INTEGER_CST:
6259 50 : {
6260 50 : {
6261 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6262 50 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
6263 50 : if (res) return res;
6264 : }
6265 50 : break;
6266 : }
6267 : default:;
6268 : }
6269 : }
6270 11235050 : if (integer_nonzerop (_q21))
6271 : {
6272 7466871 : switch (TREE_CODE (_p1))
6273 : {
6274 3708425 : case INTEGER_CST:
6275 3708425 : {
6276 3708425 : {
6277 3708425 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
6278 3708425 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
6279 3708425 : if (res) return res;
6280 : }
6281 3260783 : break;
6282 : }
6283 : default:;
6284 : }
6285 : }
6286 10787408 : switch (TREE_CODE (_q20))
6287 : {
6288 201219 : case MINUS_EXPR:
6289 201219 : {
6290 201219 : tree _q30 = TREE_OPERAND (_q20, 0);
6291 201219 : tree _q31 = TREE_OPERAND (_q20, 1);
6292 201219 : if (tree_zero_one_valued_p (_q21))
6293 : {
6294 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6295 : {
6296 0 : {
6297 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
6298 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures);
6299 0 : if (res) return res;
6300 : }
6301 : }
6302 : }
6303 : break;
6304 : }
6305 10787408 : default:;
6306 : }
6307 10787408 : if (tree_zero_one_valued_p (_q20))
6308 : {
6309 39298 : switch (TREE_CODE (_q21))
6310 : {
6311 9 : case MINUS_EXPR:
6312 9 : {
6313 9 : tree _q40 = TREE_OPERAND (_q21, 0);
6314 9 : tree _q41 = TREE_OPERAND (_q21, 1);
6315 9 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
6316 : {
6317 9 : {
6318 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
6319 9 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures);
6320 9 : if (res) return res;
6321 : }
6322 : }
6323 : break;
6324 : }
6325 : default:;
6326 : }
6327 : }
6328 : break;
6329 : }
6330 3101 : case MIN_EXPR:
6331 3101 : {
6332 3101 : tree _q20 = TREE_OPERAND (_p0, 0);
6333 3101 : tree _q21 = TREE_OPERAND (_p0, 1);
6334 3101 : switch (TREE_CODE (_p1))
6335 : {
6336 0 : case MAX_EXPR:
6337 0 : {
6338 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6339 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6340 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6341 : {
6342 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6343 : {
6344 0 : {
6345 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6346 0 : if (!HONOR_NANS (captures[0])
6347 : )
6348 : {
6349 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1149;
6350 0 : {
6351 0 : tree res_op0;
6352 0 : res_op0 = captures[0];
6353 0 : tree res_op1;
6354 0 : res_op1 = captures[1];
6355 0 : tree _r;
6356 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6357 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
6358 0 : return _r;
6359 : }
6360 0 : next_after_fail1149:;
6361 : }
6362 : }
6363 : }
6364 : }
6365 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6366 : {
6367 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6368 : {
6369 0 : {
6370 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6371 0 : if (!HONOR_NANS (captures[0])
6372 : )
6373 : {
6374 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1150;
6375 0 : {
6376 0 : tree res_op0;
6377 0 : res_op0 = captures[0];
6378 0 : tree res_op1;
6379 0 : res_op1 = captures[1];
6380 0 : tree _r;
6381 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6382 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
6383 0 : return _r;
6384 : }
6385 0 : next_after_fail1150:;
6386 : }
6387 : }
6388 : }
6389 : }
6390 : break;
6391 : }
6392 : default:;
6393 : }
6394 : break;
6395 : }
6396 11995 : case MAX_EXPR:
6397 11995 : {
6398 11995 : tree _q20 = TREE_OPERAND (_p0, 0);
6399 11995 : tree _q21 = TREE_OPERAND (_p0, 1);
6400 11995 : switch (TREE_CODE (_p1))
6401 : {
6402 0 : case MIN_EXPR:
6403 0 : {
6404 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6405 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6406 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6407 : {
6408 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6409 : {
6410 0 : {
6411 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6412 0 : if (!HONOR_NANS (captures[0])
6413 : )
6414 : {
6415 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1151;
6416 0 : {
6417 0 : tree res_op0;
6418 0 : res_op0 = captures[0];
6419 0 : tree res_op1;
6420 0 : res_op1 = captures[1];
6421 0 : tree _r;
6422 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6423 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
6424 0 : return _r;
6425 : }
6426 0 : next_after_fail1151:;
6427 : }
6428 : }
6429 : }
6430 : }
6431 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6432 : {
6433 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6434 : {
6435 0 : {
6436 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6437 0 : if (!HONOR_NANS (captures[0])
6438 : )
6439 : {
6440 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1152;
6441 0 : {
6442 0 : tree res_op0;
6443 0 : res_op0 = captures[0];
6444 0 : tree res_op1;
6445 0 : res_op1 = captures[1];
6446 0 : tree _r;
6447 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6448 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
6449 0 : return _r;
6450 : }
6451 0 : next_after_fail1152:;
6452 : }
6453 : }
6454 : }
6455 : }
6456 : break;
6457 : }
6458 : default:;
6459 : }
6460 : break;
6461 : }
6462 64542399 : default:;
6463 : }
6464 64542399 : switch (TREE_CODE (_p1))
6465 : {
6466 3444414 : case MULT_EXPR:
6467 3444414 : {
6468 3444414 : tree _q30 = TREE_OPERAND (_p1, 0);
6469 3444414 : tree _q31 = TREE_OPERAND (_p1, 1);
6470 3444414 : switch (TREE_CODE (_q30))
6471 : {
6472 144123 : case MINUS_EXPR:
6473 144123 : {
6474 144123 : tree _q40 = TREE_OPERAND (_q30, 0);
6475 144123 : tree _q41 = TREE_OPERAND (_q30, 1);
6476 144123 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6477 : {
6478 16 : if (tree_zero_one_valued_p (_q31))
6479 : {
6480 0 : {
6481 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
6482 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures);
6483 0 : if (res) return res;
6484 : }
6485 : }
6486 : }
6487 : break;
6488 : }
6489 3444414 : default:;
6490 : }
6491 3444414 : if (tree_zero_one_valued_p (_q30))
6492 : {
6493 13826 : switch (TREE_CODE (_q31))
6494 : {
6495 0 : case MINUS_EXPR:
6496 0 : {
6497 0 : tree _q50 = TREE_OPERAND (_q31, 0);
6498 0 : tree _q51 = TREE_OPERAND (_q31, 1);
6499 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
6500 : {
6501 0 : {
6502 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
6503 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures);
6504 0 : if (res) return res;
6505 : }
6506 : }
6507 : break;
6508 : }
6509 : default:;
6510 : }
6511 : }
6512 : break;
6513 : }
6514 64542399 : default:;
6515 : }
6516 64542399 : switch (TREE_CODE (_p0))
6517 : {
6518 10787406 : case MULT_EXPR:
6519 10787406 : {
6520 10787406 : tree _q20 = TREE_OPERAND (_p0, 0);
6521 10787406 : tree _q21 = TREE_OPERAND (_p0, 1);
6522 10787406 : switch (TREE_CODE (_q20))
6523 : {
6524 18844 : case TRUNC_DIV_EXPR:
6525 18844 : {
6526 18844 : tree _q30 = TREE_OPERAND (_q20, 0);
6527 18844 : tree _q31 = TREE_OPERAND (_q20, 1);
6528 18844 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6529 : {
6530 2329 : switch (TREE_CODE (_p1))
6531 : {
6532 2 : case TRUNC_MOD_EXPR:
6533 2 : {
6534 2 : tree _q70 = TREE_OPERAND (_p1, 0);
6535 2 : tree _q71 = TREE_OPERAND (_p1, 1);
6536 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6537 : {
6538 2 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6539 : {
6540 2 : {
6541 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6542 2 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6543 2 : if (res) return res;
6544 : }
6545 : }
6546 : }
6547 : break;
6548 : }
6549 : default:;
6550 : }
6551 : }
6552 : break;
6553 : }
6554 0 : case CEIL_DIV_EXPR:
6555 0 : {
6556 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6557 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6558 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6559 : {
6560 0 : switch (TREE_CODE (_p1))
6561 : {
6562 0 : case CEIL_MOD_EXPR:
6563 0 : {
6564 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6565 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6566 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6567 : {
6568 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6569 : {
6570 0 : {
6571 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6572 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6573 0 : if (res) return res;
6574 : }
6575 : }
6576 : }
6577 : break;
6578 : }
6579 : default:;
6580 : }
6581 : }
6582 : break;
6583 : }
6584 0 : case FLOOR_DIV_EXPR:
6585 0 : {
6586 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6587 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6588 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6589 : {
6590 0 : switch (TREE_CODE (_p1))
6591 : {
6592 0 : case FLOOR_MOD_EXPR:
6593 0 : {
6594 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6595 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6596 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6597 : {
6598 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6599 : {
6600 0 : {
6601 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6602 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6603 0 : if (res) return res;
6604 : }
6605 : }
6606 : }
6607 : break;
6608 : }
6609 : default:;
6610 : }
6611 : }
6612 : break;
6613 : }
6614 0 : case ROUND_DIV_EXPR:
6615 0 : {
6616 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6617 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6618 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6619 : {
6620 0 : switch (TREE_CODE (_p1))
6621 : {
6622 0 : case ROUND_MOD_EXPR:
6623 0 : {
6624 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6625 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6626 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6627 : {
6628 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6629 : {
6630 0 : {
6631 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6632 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
6633 0 : if (res) return res;
6634 : }
6635 : }
6636 : }
6637 : break;
6638 : }
6639 : default:;
6640 : }
6641 : }
6642 : break;
6643 : }
6644 10787404 : default:;
6645 : }
6646 10787404 : switch (TREE_CODE (_q21))
6647 : {
6648 6 : case TRUNC_DIV_EXPR:
6649 6 : {
6650 6 : tree _q40 = TREE_OPERAND (_q21, 0);
6651 6 : tree _q41 = TREE_OPERAND (_q21, 1);
6652 6 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6653 : {
6654 0 : switch (TREE_CODE (_p1))
6655 : {
6656 0 : case TRUNC_MOD_EXPR:
6657 0 : {
6658 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6659 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6660 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6661 : {
6662 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6663 : {
6664 0 : {
6665 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6666 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6667 0 : if (res) return res;
6668 : }
6669 : }
6670 : }
6671 : break;
6672 : }
6673 : default:;
6674 : }
6675 : }
6676 : break;
6677 : }
6678 4 : case CEIL_DIV_EXPR:
6679 4 : {
6680 4 : tree _q40 = TREE_OPERAND (_q21, 0);
6681 4 : tree _q41 = TREE_OPERAND (_q21, 1);
6682 4 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6683 : {
6684 0 : switch (TREE_CODE (_p1))
6685 : {
6686 0 : case CEIL_MOD_EXPR:
6687 0 : {
6688 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6689 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6690 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6691 : {
6692 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6693 : {
6694 0 : {
6695 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6696 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6697 0 : if (res) return res;
6698 : }
6699 : }
6700 : }
6701 : break;
6702 : }
6703 : default:;
6704 : }
6705 : }
6706 : break;
6707 : }
6708 0 : case FLOOR_DIV_EXPR:
6709 0 : {
6710 0 : tree _q40 = TREE_OPERAND (_q21, 0);
6711 0 : tree _q41 = TREE_OPERAND (_q21, 1);
6712 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6713 : {
6714 0 : switch (TREE_CODE (_p1))
6715 : {
6716 0 : case FLOOR_MOD_EXPR:
6717 0 : {
6718 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6719 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6720 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6721 : {
6722 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6723 : {
6724 0 : {
6725 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6726 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6727 0 : if (res) return res;
6728 : }
6729 : }
6730 : }
6731 : break;
6732 : }
6733 : default:;
6734 : }
6735 : }
6736 : break;
6737 : }
6738 0 : case ROUND_DIV_EXPR:
6739 0 : {
6740 0 : tree _q40 = TREE_OPERAND (_q21, 0);
6741 0 : tree _q41 = TREE_OPERAND (_q21, 1);
6742 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6743 : {
6744 0 : switch (TREE_CODE (_p1))
6745 : {
6746 0 : case ROUND_MOD_EXPR:
6747 0 : {
6748 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6749 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6750 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6751 : {
6752 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6753 : {
6754 0 : {
6755 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6756 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
6757 0 : if (res) return res;
6758 : }
6759 : }
6760 : }
6761 : break;
6762 : }
6763 : default:;
6764 : }
6765 : }
6766 : break;
6767 : }
6768 : default:;
6769 : }
6770 : break;
6771 : }
6772 29758 : case TRUNC_MOD_EXPR:
6773 29758 : {
6774 29758 : tree _q20 = TREE_OPERAND (_p0, 0);
6775 29758 : tree _q21 = TREE_OPERAND (_p0, 1);
6776 29758 : switch (TREE_CODE (_p1))
6777 : {
6778 119 : case MULT_EXPR:
6779 119 : {
6780 119 : tree _q50 = TREE_OPERAND (_p1, 0);
6781 119 : tree _q51 = TREE_OPERAND (_p1, 1);
6782 119 : switch (TREE_CODE (_q50))
6783 : {
6784 106 : case TRUNC_DIV_EXPR:
6785 106 : {
6786 106 : tree _q60 = TREE_OPERAND (_q50, 0);
6787 106 : tree _q61 = TREE_OPERAND (_q50, 1);
6788 106 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6789 : {
6790 106 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6791 : {
6792 94 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6793 : {
6794 0 : {
6795 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6796 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6797 0 : if (res) return res;
6798 : }
6799 : }
6800 : }
6801 : }
6802 : break;
6803 : }
6804 119 : default:;
6805 : }
6806 119 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6807 : {
6808 0 : switch (TREE_CODE (_q51))
6809 : {
6810 0 : case TRUNC_DIV_EXPR:
6811 0 : {
6812 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6813 0 : tree _q71 = TREE_OPERAND (_q51, 1);
6814 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6815 : {
6816 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
6817 : {
6818 0 : {
6819 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6820 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6821 0 : if (res) return res;
6822 : }
6823 : }
6824 : }
6825 : break;
6826 : }
6827 : default:;
6828 : }
6829 : }
6830 : break;
6831 : }
6832 : default:;
6833 : }
6834 : break;
6835 : }
6836 0 : case CEIL_MOD_EXPR:
6837 0 : {
6838 0 : tree _q20 = TREE_OPERAND (_p0, 0);
6839 0 : tree _q21 = TREE_OPERAND (_p0, 1);
6840 0 : switch (TREE_CODE (_p1))
6841 : {
6842 0 : case MULT_EXPR:
6843 0 : {
6844 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6845 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6846 0 : switch (TREE_CODE (_q50))
6847 : {
6848 0 : case CEIL_DIV_EXPR:
6849 0 : {
6850 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6851 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6852 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6853 : {
6854 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6855 : {
6856 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6857 : {
6858 0 : {
6859 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6860 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6861 0 : if (res) return res;
6862 : }
6863 : }
6864 : }
6865 : }
6866 : break;
6867 : }
6868 0 : default:;
6869 : }
6870 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6871 : {
6872 0 : switch (TREE_CODE (_q51))
6873 : {
6874 0 : case CEIL_DIV_EXPR:
6875 0 : {
6876 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6877 0 : tree _q71 = TREE_OPERAND (_q51, 1);
6878 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6879 : {
6880 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
6881 : {
6882 0 : {
6883 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6884 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6885 0 : if (res) return res;
6886 : }
6887 : }
6888 : }
6889 : break;
6890 : }
6891 : default:;
6892 : }
6893 : }
6894 : break;
6895 : }
6896 : default:;
6897 : }
6898 : break;
6899 : }
6900 124 : case FLOOR_MOD_EXPR:
6901 124 : {
6902 124 : tree _q20 = TREE_OPERAND (_p0, 0);
6903 124 : tree _q21 = TREE_OPERAND (_p0, 1);
6904 124 : switch (TREE_CODE (_p1))
6905 : {
6906 0 : case MULT_EXPR:
6907 0 : {
6908 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6909 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6910 0 : switch (TREE_CODE (_q50))
6911 : {
6912 0 : case FLOOR_DIV_EXPR:
6913 0 : {
6914 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6915 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6916 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6917 : {
6918 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6919 : {
6920 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6921 : {
6922 0 : {
6923 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6924 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6925 0 : if (res) return res;
6926 : }
6927 : }
6928 : }
6929 : }
6930 : break;
6931 : }
6932 0 : default:;
6933 : }
6934 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6935 : {
6936 0 : switch (TREE_CODE (_q51))
6937 : {
6938 0 : case FLOOR_DIV_EXPR:
6939 0 : {
6940 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6941 0 : tree _q71 = TREE_OPERAND (_q51, 1);
6942 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6943 : {
6944 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
6945 : {
6946 0 : {
6947 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6948 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6949 0 : if (res) return res;
6950 : }
6951 : }
6952 : }
6953 : break;
6954 : }
6955 : default:;
6956 : }
6957 : }
6958 : break;
6959 : }
6960 : default:;
6961 : }
6962 : break;
6963 : }
6964 0 : case ROUND_MOD_EXPR:
6965 0 : {
6966 0 : tree _q20 = TREE_OPERAND (_p0, 0);
6967 0 : tree _q21 = TREE_OPERAND (_p0, 1);
6968 0 : switch (TREE_CODE (_p1))
6969 : {
6970 0 : case MULT_EXPR:
6971 0 : {
6972 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6973 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6974 0 : switch (TREE_CODE (_q50))
6975 : {
6976 0 : case ROUND_DIV_EXPR:
6977 0 : {
6978 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6979 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6980 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6981 : {
6982 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6983 : {
6984 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6985 : {
6986 0 : {
6987 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6988 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
6989 0 : if (res) return res;
6990 : }
6991 : }
6992 : }
6993 : }
6994 : break;
6995 : }
6996 0 : default:;
6997 : }
6998 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6999 : {
7000 0 : switch (TREE_CODE (_q51))
7001 : {
7002 0 : case ROUND_DIV_EXPR:
7003 0 : {
7004 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7005 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7006 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7007 : {
7008 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7009 : {
7010 0 : {
7011 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7012 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7013 0 : if (res) return res;
7014 : }
7015 : }
7016 : }
7017 : break;
7018 : }
7019 : default:;
7020 : }
7021 : }
7022 : break;
7023 : }
7024 : default:;
7025 : }
7026 : break;
7027 : }
7028 64542397 : default:;
7029 : }
7030 64542397 : switch (TREE_CODE (_p1))
7031 : {
7032 3062466 : case REAL_CST:
7033 3062466 : {
7034 3062466 : {
7035 3062466 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7036 3062466 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
7037 : )
7038 : {
7039 113348 : {
7040 113348 : tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
7041 113348 : if (!TREE_OVERFLOW (tem) || !flag_trapping_math
7042 : )
7043 : {
7044 113348 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1153;
7045 113348 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1153;
7046 113348 : {
7047 113348 : tree res_op0;
7048 113348 : res_op0 = captures[0];
7049 113348 : tree res_op1;
7050 113348 : res_op1 = tem;
7051 113348 : tree _r;
7052 113348 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
7053 113348 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 873, __FILE__, __LINE__, true);
7054 113348 : return _r;
7055 : }
7056 2949118 : next_after_fail1153:;
7057 : }
7058 : }
7059 : }
7060 : }
7061 2949118 : break;
7062 : }
7063 64429049 : default:;
7064 : }
7065 64429049 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
7066 : {
7067 1596038 : {
7068 1596038 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7069 1596038 : if (SCALAR_FLOAT_TYPE_P (type)
7070 : )
7071 : {
7072 691 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1154;
7073 691 : {
7074 691 : tree res_op0;
7075 691 : res_op0 = captures[0];
7076 691 : tree res_op1;
7077 691 : res_op1 = build_real (type, dconst2);
7078 691 : tree _r;
7079 691 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
7080 691 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 874, __FILE__, __LINE__, true);
7081 691 : return _r;
7082 : }
7083 0 : next_after_fail1154:;
7084 : }
7085 : else
7086 : {
7087 1595347 : if (INTEGRAL_TYPE_P (type)
7088 : )
7089 : {
7090 1595297 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1155;
7091 1595297 : {
7092 1595297 : tree res_op0;
7093 1595297 : res_op0 = captures[0];
7094 1595297 : tree res_op1;
7095 1595297 : res_op1 = build_int_cst (type, 2);
7096 1595297 : tree _r;
7097 1595297 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
7098 1595297 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
7099 1595297 : return _r;
7100 : }
7101 0 : next_after_fail1155:;
7102 : }
7103 : }
7104 : }
7105 : }
7106 62833061 : switch (TREE_CODE (_p0))
7107 : {
7108 144 : case VEC_COND_EXPR:
7109 144 : {
7110 144 : tree _q20 = TREE_OPERAND (_p0, 0);
7111 144 : tree _q21 = TREE_OPERAND (_p0, 1);
7112 144 : tree _q22 = TREE_OPERAND (_p0, 2);
7113 144 : switch (TREE_CODE (_p1))
7114 : {
7115 48 : case VEC_COND_EXPR:
7116 48 : {
7117 48 : tree _q60 = TREE_OPERAND (_p1, 0);
7118 48 : tree _q61 = TREE_OPERAND (_p1, 1);
7119 48 : tree _q62 = TREE_OPERAND (_p1, 2);
7120 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7121 : {
7122 24 : {
7123 24 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7124 24 : if (VECTOR_TYPE_P (type)
7125 24 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7126 : || types_match (type, TREE_TYPE (captures[2]))
7127 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7128 : || (optimize_vectors_before_lowering_p ()
7129 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7130 : )
7131 : {
7132 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1156;
7133 24 : {
7134 24 : tree res_op0;
7135 24 : res_op0 = captures[1];
7136 24 : tree res_op1;
7137 24 : {
7138 24 : tree _o1[2], _r1;
7139 24 : _o1[0] = captures[2];
7140 24 : _o1[1] = captures[5];
7141 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7142 24 : if (EXPR_P (_r1))
7143 0 : goto next_after_fail1156;
7144 24 : res_op1 = _r1;
7145 : }
7146 24 : tree res_op2;
7147 24 : {
7148 24 : tree _o1[2], _r1;
7149 24 : _o1[0] = captures[3];
7150 24 : _o1[1] = captures[6];
7151 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7152 24 : if (EXPR_P (_r1))
7153 0 : goto next_after_fail1156;
7154 24 : res_op2 = _r1;
7155 : }
7156 24 : tree _r;
7157 24 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7158 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
7159 24 : return _r;
7160 : }
7161 0 : next_after_fail1156:;
7162 : }
7163 : }
7164 : }
7165 : break;
7166 : }
7167 120 : default:;
7168 : }
7169 120 : {
7170 120 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7171 120 : if (VECTOR_TYPE_P (type)
7172 120 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7173 : || types_match (type, TREE_TYPE (captures[2]))
7174 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7175 : || (optimize_vectors_before_lowering_p ()
7176 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7177 : )
7178 : {
7179 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1157;
7180 120 : {
7181 120 : if (! tree_invariant_p (captures[4])) goto next_after_fail1157;
7182 26 : tree res_op0;
7183 26 : res_op0 = captures[1];
7184 26 : tree res_op1;
7185 26 : {
7186 26 : tree _o1[2], _r1;
7187 26 : _o1[0] = captures[2];
7188 26 : _o1[1] = unshare_expr (captures[4]);
7189 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7190 26 : if (EXPR_P (_r1))
7191 0 : goto next_after_fail1157;
7192 26 : res_op1 = _r1;
7193 : }
7194 26 : tree res_op2;
7195 26 : {
7196 26 : tree _o1[2], _r1;
7197 26 : _o1[0] = captures[3];
7198 26 : _o1[1] = captures[4];
7199 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7200 26 : if (EXPR_P (_r1))
7201 0 : goto next_after_fail1157;
7202 26 : res_op2 = _r1;
7203 : }
7204 26 : tree _r;
7205 26 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7206 26 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
7207 26 : return _r;
7208 : }
7209 94 : next_after_fail1157:;
7210 : }
7211 : }
7212 94 : if (integer_each_onep (_q21))
7213 : {
7214 0 : if (integer_zerop (_q22))
7215 : {
7216 0 : {
7217 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
7218 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
7219 0 : if (res) return res;
7220 : }
7221 : }
7222 : }
7223 : break;
7224 : }
7225 62833011 : default:;
7226 : }
7227 62833011 : switch (TREE_CODE (_p1))
7228 : {
7229 40 : case VEC_COND_EXPR:
7230 40 : {
7231 40 : tree _q30 = TREE_OPERAND (_p1, 0);
7232 40 : tree _q31 = TREE_OPERAND (_p1, 1);
7233 40 : tree _q32 = TREE_OPERAND (_p1, 2);
7234 40 : {
7235 40 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7236 40 : if (VECTOR_TYPE_P (type)
7237 40 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7238 : || types_match (type, TREE_TYPE (captures[3]))
7239 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7240 : || (optimize_vectors_before_lowering_p ()
7241 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7242 : )
7243 : {
7244 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1158;
7245 40 : {
7246 40 : if (! tree_invariant_p (captures[0])) goto next_after_fail1158;
7247 0 : tree res_op0;
7248 0 : res_op0 = captures[2];
7249 0 : tree res_op1;
7250 0 : {
7251 0 : tree _o1[2], _r1;
7252 0 : _o1[0] = unshare_expr (captures[0]);
7253 0 : _o1[1] = captures[3];
7254 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7255 0 : if (EXPR_P (_r1))
7256 0 : goto next_after_fail1158;
7257 0 : res_op1 = _r1;
7258 : }
7259 0 : tree res_op2;
7260 0 : {
7261 0 : tree _o1[2], _r1;
7262 0 : _o1[0] = captures[0];
7263 0 : _o1[1] = captures[4];
7264 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7265 0 : if (EXPR_P (_r1))
7266 0 : goto next_after_fail1158;
7267 0 : res_op2 = _r1;
7268 : }
7269 0 : tree _r;
7270 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7271 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
7272 0 : return _r;
7273 : }
7274 40 : next_after_fail1158:;
7275 : }
7276 : }
7277 40 : break;
7278 : }
7279 342582 : case VIEW_CONVERT_EXPR:
7280 342582 : {
7281 342582 : tree _q30 = TREE_OPERAND (_p1, 0);
7282 342582 : switch (TREE_CODE (_q30))
7283 : {
7284 0 : case VEC_COND_EXPR:
7285 0 : {
7286 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7287 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7288 0 : tree _q42 = TREE_OPERAND (_q30, 2);
7289 0 : if (integer_each_onep (_q41))
7290 : {
7291 0 : if (integer_zerop (_q42))
7292 : {
7293 0 : {
7294 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
7295 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
7296 0 : if (res) return res;
7297 : }
7298 : }
7299 : }
7300 : break;
7301 : }
7302 : default:;
7303 : }
7304 : break;
7305 : }
7306 62833011 : default:;
7307 : }
7308 62833011 : switch (TREE_CODE (_p0))
7309 : {
7310 331603 : case VIEW_CONVERT_EXPR:
7311 331603 : {
7312 331603 : tree _q20 = TREE_OPERAND (_p0, 0);
7313 331603 : switch (TREE_CODE (_q20))
7314 : {
7315 0 : case VEC_COND_EXPR:
7316 0 : {
7317 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7318 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7319 0 : tree _q32 = TREE_OPERAND (_q20, 2);
7320 0 : if (integer_each_onep (_q31))
7321 : {
7322 0 : if (integer_zerop (_q32))
7323 : {
7324 0 : {
7325 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
7326 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
7327 0 : if (res) return res;
7328 : }
7329 : }
7330 : }
7331 : break;
7332 : }
7333 : default:;
7334 : }
7335 : break;
7336 : }
7337 62833011 : default:;
7338 : }
7339 62833011 : switch (TREE_CODE (_p1))
7340 : {
7341 40 : case VEC_COND_EXPR:
7342 40 : {
7343 40 : tree _q30 = TREE_OPERAND (_p1, 0);
7344 40 : tree _q31 = TREE_OPERAND (_p1, 1);
7345 40 : tree _q32 = TREE_OPERAND (_p1, 2);
7346 40 : if (integer_each_onep (_q31))
7347 : {
7348 0 : if (integer_zerop (_q32))
7349 : {
7350 0 : {
7351 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7352 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
7353 0 : if (res) return res;
7354 : }
7355 : }
7356 : }
7357 : break;
7358 : }
7359 62833011 : default:;
7360 : }
7361 62833011 : switch (TREE_CODE (_p0))
7362 : {
7363 17982170 : CASE_CONVERT:
7364 17982170 : {
7365 17982170 : tree _q20 = TREE_OPERAND (_p0, 0);
7366 17982170 : switch (TREE_CODE (_q20))
7367 : {
7368 0 : case LT_EXPR:
7369 0 : {
7370 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7371 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7372 0 : if (integer_minus_onep (_p1))
7373 : {
7374 0 : {
7375 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7376 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7377 0 : if (res) return res;
7378 : }
7379 : }
7380 : break;
7381 : }
7382 0 : case LE_EXPR:
7383 0 : {
7384 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7385 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7386 0 : if (integer_minus_onep (_p1))
7387 : {
7388 0 : {
7389 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7390 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7391 0 : if (res) return res;
7392 : }
7393 : }
7394 : break;
7395 : }
7396 78 : case EQ_EXPR:
7397 78 : {
7398 78 : tree _q30 = TREE_OPERAND (_q20, 0);
7399 78 : tree _q31 = TREE_OPERAND (_q20, 1);
7400 78 : if (integer_minus_onep (_p1))
7401 : {
7402 0 : {
7403 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7404 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7405 0 : if (res) return res;
7406 : }
7407 : }
7408 : break;
7409 : }
7410 212 : case NE_EXPR:
7411 212 : {
7412 212 : tree _q30 = TREE_OPERAND (_q20, 0);
7413 212 : tree _q31 = TREE_OPERAND (_q20, 1);
7414 212 : if (integer_minus_onep (_p1))
7415 : {
7416 0 : {
7417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7418 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7419 0 : if (res) return res;
7420 : }
7421 : }
7422 : break;
7423 : }
7424 12 : case GE_EXPR:
7425 12 : {
7426 12 : tree _q30 = TREE_OPERAND (_q20, 0);
7427 12 : tree _q31 = TREE_OPERAND (_q20, 1);
7428 12 : if (integer_minus_onep (_p1))
7429 : {
7430 0 : {
7431 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7432 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7433 0 : if (res) return res;
7434 : }
7435 : }
7436 : break;
7437 : }
7438 1 : case GT_EXPR:
7439 1 : {
7440 1 : tree _q30 = TREE_OPERAND (_q20, 0);
7441 1 : tree _q31 = TREE_OPERAND (_q20, 1);
7442 1 : if (integer_minus_onep (_p1))
7443 : {
7444 0 : {
7445 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7446 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7447 0 : if (res) return res;
7448 : }
7449 : }
7450 : break;
7451 : }
7452 0 : case UNORDERED_EXPR:
7453 0 : {
7454 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7455 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7456 0 : if (integer_minus_onep (_p1))
7457 : {
7458 0 : {
7459 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7460 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7461 0 : if (res) return res;
7462 : }
7463 : }
7464 : break;
7465 : }
7466 0 : case ORDERED_EXPR:
7467 0 : {
7468 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7469 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7470 0 : if (integer_minus_onep (_p1))
7471 : {
7472 0 : {
7473 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7474 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7475 0 : if (res) return res;
7476 : }
7477 : }
7478 : break;
7479 : }
7480 0 : case UNLT_EXPR:
7481 0 : {
7482 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7483 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7484 0 : if (integer_minus_onep (_p1))
7485 : {
7486 0 : {
7487 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7488 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7489 0 : if (res) return res;
7490 : }
7491 : }
7492 : break;
7493 : }
7494 0 : case UNLE_EXPR:
7495 0 : {
7496 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7497 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7498 0 : if (integer_minus_onep (_p1))
7499 : {
7500 0 : {
7501 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7502 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7503 0 : if (res) return res;
7504 : }
7505 : }
7506 : break;
7507 : }
7508 0 : case UNGT_EXPR:
7509 0 : {
7510 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7511 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7512 0 : if (integer_minus_onep (_p1))
7513 : {
7514 0 : {
7515 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7516 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7517 0 : if (res) return res;
7518 : }
7519 : }
7520 : break;
7521 : }
7522 0 : case UNGE_EXPR:
7523 0 : {
7524 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7525 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7526 0 : if (integer_minus_onep (_p1))
7527 : {
7528 0 : {
7529 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7530 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7531 0 : if (res) return res;
7532 : }
7533 : }
7534 : break;
7535 : }
7536 0 : case UNEQ_EXPR:
7537 0 : {
7538 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7539 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7540 0 : if (integer_minus_onep (_p1))
7541 : {
7542 0 : {
7543 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7544 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
7545 0 : if (res) return res;
7546 : }
7547 : }
7548 : break;
7549 : }
7550 0 : case LTGT_EXPR:
7551 0 : {
7552 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7553 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7554 0 : if (integer_minus_onep (_p1))
7555 : {
7556 0 : {
7557 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7558 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
7559 0 : if (res) return res;
7560 : }
7561 : }
7562 : break;
7563 : }
7564 : default:;
7565 : }
7566 : break;
7567 : }
7568 155 : case LT_EXPR:
7569 155 : {
7570 155 : tree _q20 = TREE_OPERAND (_p0, 0);
7571 155 : tree _q21 = TREE_OPERAND (_p0, 1);
7572 155 : if (integer_minus_onep (_p1))
7573 : {
7574 0 : {
7575 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7576 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7577 0 : if (res) return res;
7578 : }
7579 : }
7580 : break;
7581 : }
7582 49 : case LE_EXPR:
7583 49 : {
7584 49 : tree _q20 = TREE_OPERAND (_p0, 0);
7585 49 : tree _q21 = TREE_OPERAND (_p0, 1);
7586 49 : if (integer_minus_onep (_p1))
7587 : {
7588 0 : {
7589 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7590 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7591 0 : if (res) return res;
7592 : }
7593 : }
7594 : break;
7595 : }
7596 147393 : case EQ_EXPR:
7597 147393 : {
7598 147393 : tree _q20 = TREE_OPERAND (_p0, 0);
7599 147393 : tree _q21 = TREE_OPERAND (_p0, 1);
7600 147393 : if (integer_minus_onep (_p1))
7601 : {
7602 23 : {
7603 23 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7604 23 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7605 23 : if (res) return res;
7606 : }
7607 : }
7608 : break;
7609 : }
7610 1676 : case NE_EXPR:
7611 1676 : {
7612 1676 : tree _q20 = TREE_OPERAND (_p0, 0);
7613 1676 : tree _q21 = TREE_OPERAND (_p0, 1);
7614 1676 : if (integer_minus_onep (_p1))
7615 : {
7616 33 : {
7617 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7618 33 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7619 33 : if (res) return res;
7620 : }
7621 : }
7622 : break;
7623 : }
7624 35 : case GE_EXPR:
7625 35 : {
7626 35 : tree _q20 = TREE_OPERAND (_p0, 0);
7627 35 : tree _q21 = TREE_OPERAND (_p0, 1);
7628 35 : if (integer_minus_onep (_p1))
7629 : {
7630 0 : {
7631 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7632 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7633 0 : if (res) return res;
7634 : }
7635 : }
7636 : break;
7637 : }
7638 103 : case GT_EXPR:
7639 103 : {
7640 103 : tree _q20 = TREE_OPERAND (_p0, 0);
7641 103 : tree _q21 = TREE_OPERAND (_p0, 1);
7642 103 : if (integer_minus_onep (_p1))
7643 : {
7644 0 : {
7645 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7646 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7647 0 : if (res) return res;
7648 : }
7649 : }
7650 : break;
7651 : }
7652 0 : case UNORDERED_EXPR:
7653 0 : {
7654 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7655 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7656 0 : if (integer_minus_onep (_p1))
7657 : {
7658 0 : {
7659 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7660 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7661 0 : if (res) return res;
7662 : }
7663 : }
7664 : break;
7665 : }
7666 0 : case ORDERED_EXPR:
7667 0 : {
7668 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7669 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7670 0 : if (integer_minus_onep (_p1))
7671 : {
7672 0 : {
7673 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7674 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7675 0 : if (res) return res;
7676 : }
7677 : }
7678 : break;
7679 : }
7680 0 : case UNLT_EXPR:
7681 0 : {
7682 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7683 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7684 0 : if (integer_minus_onep (_p1))
7685 : {
7686 0 : {
7687 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7688 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7689 0 : if (res) return res;
7690 : }
7691 : }
7692 : break;
7693 : }
7694 0 : case UNLE_EXPR:
7695 0 : {
7696 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7697 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7698 0 : if (integer_minus_onep (_p1))
7699 : {
7700 0 : {
7701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7702 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7703 0 : if (res) return res;
7704 : }
7705 : }
7706 : break;
7707 : }
7708 0 : case UNGT_EXPR:
7709 0 : {
7710 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7711 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7712 0 : if (integer_minus_onep (_p1))
7713 : {
7714 0 : {
7715 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7716 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7717 0 : if (res) return res;
7718 : }
7719 : }
7720 : break;
7721 : }
7722 0 : case UNGE_EXPR:
7723 0 : {
7724 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7725 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7726 0 : if (integer_minus_onep (_p1))
7727 : {
7728 0 : {
7729 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7730 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7731 0 : if (res) return res;
7732 : }
7733 : }
7734 : break;
7735 : }
7736 0 : case UNEQ_EXPR:
7737 0 : {
7738 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7739 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7740 0 : if (integer_minus_onep (_p1))
7741 : {
7742 0 : {
7743 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7744 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
7745 0 : if (res) return res;
7746 : }
7747 : }
7748 : break;
7749 : }
7750 0 : case LTGT_EXPR:
7751 0 : {
7752 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7753 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7754 0 : if (integer_minus_onep (_p1))
7755 : {
7756 0 : {
7757 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7758 0 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
7759 0 : if (res) return res;
7760 : }
7761 : }
7762 : break;
7763 : }
7764 519861 : case RDIV_EXPR:
7765 519861 : {
7766 519861 : tree _q20 = TREE_OPERAND (_p0, 0);
7767 519861 : tree _q21 = TREE_OPERAND (_p0, 1);
7768 519861 : switch (TREE_CODE (_p1))
7769 : {
7770 110718 : case RDIV_EXPR:
7771 110718 : {
7772 110718 : tree _q50 = TREE_OPERAND (_p1, 0);
7773 110718 : tree _q51 = TREE_OPERAND (_p1, 1);
7774 110718 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7775 : {
7776 1 : {
7777 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7778 1 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7779 1 : if (res) return res;
7780 : }
7781 : }
7782 : break;
7783 : }
7784 : default:;
7785 : }
7786 : break;
7787 : }
7788 1729469 : case MINUS_EXPR:
7789 1729469 : {
7790 1729469 : tree _q20 = TREE_OPERAND (_p0, 0);
7791 1729469 : tree _q21 = TREE_OPERAND (_p0, 1);
7792 1729469 : switch (TREE_CODE (_q20))
7793 : {
7794 41 : case CALL_EXPR:
7795 41 : switch (get_call_combined_fn (_q20))
7796 : {
7797 4 : case CFN_BUILT_IN_POPCOUNT:
7798 4 : if (call_expr_nargs (_q20) == 1)
7799 : {
7800 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
7801 4 : switch (TREE_CODE (_q21))
7802 : {
7803 4 : case CALL_EXPR:
7804 4 : switch (get_call_combined_fn (_q21))
7805 : {
7806 4 : case CFN_BUILT_IN_POPCOUNT:
7807 4 : if (call_expr_nargs (_q21) == 1)
7808 : {
7809 4 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
7810 4 : switch (TREE_CODE (_q50))
7811 : {
7812 2 : case BIT_AND_EXPR:
7813 2 : {
7814 2 : tree _q60 = TREE_OPERAND (_q50, 0);
7815 2 : tree _q61 = TREE_OPERAND (_q50, 1);
7816 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
7817 : {
7818 1 : switch (TREE_CODE (_p1))
7819 : {
7820 1 : case CALL_EXPR:
7821 1 : switch (get_call_combined_fn (_p1))
7822 : {
7823 1 : case CFN_BUILT_IN_POPCOUNT:
7824 1 : if (call_expr_nargs (_p1) == 1)
7825 : {
7826 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7827 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
7828 : {
7829 1 : {
7830 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
7831 1 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
7832 1 : if (res) return res;
7833 : }
7834 : }
7835 : }
7836 : break;
7837 : default:;
7838 : }
7839 : break;
7840 : default:;
7841 : }
7842 : }
7843 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
7844 : {
7845 1 : switch (TREE_CODE (_p1))
7846 : {
7847 1 : case CALL_EXPR:
7848 1 : switch (get_call_combined_fn (_p1))
7849 : {
7850 1 : case CFN_BUILT_IN_POPCOUNT:
7851 1 : if (call_expr_nargs (_p1) == 1)
7852 : {
7853 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7854 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
7855 : {
7856 1 : {
7857 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
7858 1 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
7859 1 : if (res) return res;
7860 : }
7861 : }
7862 : }
7863 : break;
7864 : default:;
7865 : }
7866 : break;
7867 : default:;
7868 : }
7869 : }
7870 : break;
7871 : }
7872 2 : case BIT_IOR_EXPR:
7873 2 : {
7874 2 : tree _q60 = TREE_OPERAND (_q50, 0);
7875 2 : tree _q61 = TREE_OPERAND (_q50, 1);
7876 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
7877 : {
7878 1 : switch (TREE_CODE (_p1))
7879 : {
7880 1 : case CALL_EXPR:
7881 1 : switch (get_call_combined_fn (_p1))
7882 : {
7883 1 : case CFN_BUILT_IN_POPCOUNT:
7884 1 : if (call_expr_nargs (_p1) == 1)
7885 : {
7886 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7887 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
7888 : {
7889 1 : {
7890 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
7891 1 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
7892 1 : if (res) return res;
7893 : }
7894 : }
7895 : }
7896 : break;
7897 : default:;
7898 : }
7899 : break;
7900 : default:;
7901 : }
7902 : }
7903 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
7904 : {
7905 1 : switch (TREE_CODE (_p1))
7906 : {
7907 1 : case CALL_EXPR:
7908 1 : switch (get_call_combined_fn (_p1))
7909 : {
7910 1 : case CFN_BUILT_IN_POPCOUNT:
7911 1 : if (call_expr_nargs (_p1) == 1)
7912 : {
7913 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7914 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
7915 : {
7916 1 : {
7917 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
7918 1 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
7919 1 : if (res) return res;
7920 : }
7921 : }
7922 : }
7923 : break;
7924 : default:;
7925 : }
7926 : break;
7927 : default:;
7928 : }
7929 : }
7930 : break;
7931 : }
7932 : default:;
7933 : }
7934 : }
7935 : break;
7936 : default:;
7937 : }
7938 : break;
7939 : default:;
7940 : }
7941 : }
7942 : break;
7943 0 : case CFN_BUILT_IN_POPCOUNTLL:
7944 0 : if (call_expr_nargs (_q20) == 1)
7945 : {
7946 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
7947 0 : switch (TREE_CODE (_q21))
7948 : {
7949 0 : case CALL_EXPR:
7950 0 : switch (get_call_combined_fn (_q21))
7951 : {
7952 0 : case CFN_BUILT_IN_POPCOUNTLL:
7953 0 : if (call_expr_nargs (_q21) == 1)
7954 : {
7955 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
7956 0 : switch (TREE_CODE (_q50))
7957 : {
7958 0 : case BIT_AND_EXPR:
7959 0 : {
7960 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7961 0 : tree _q61 = TREE_OPERAND (_q50, 1);
7962 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
7963 : {
7964 0 : switch (TREE_CODE (_p1))
7965 : {
7966 0 : case CALL_EXPR:
7967 0 : switch (get_call_combined_fn (_p1))
7968 : {
7969 0 : case CFN_BUILT_IN_POPCOUNTLL:
7970 0 : if (call_expr_nargs (_p1) == 1)
7971 : {
7972 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7973 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
7974 : {
7975 0 : {
7976 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
7977 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
7978 0 : if (res) return res;
7979 : }
7980 : }
7981 : }
7982 : break;
7983 : default:;
7984 : }
7985 : break;
7986 : default:;
7987 : }
7988 : }
7989 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
7990 : {
7991 0 : switch (TREE_CODE (_p1))
7992 : {
7993 0 : case CALL_EXPR:
7994 0 : switch (get_call_combined_fn (_p1))
7995 : {
7996 0 : case CFN_BUILT_IN_POPCOUNTLL:
7997 0 : if (call_expr_nargs (_p1) == 1)
7998 : {
7999 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8000 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8001 : {
8002 0 : {
8003 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8004 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8005 0 : if (res) return res;
8006 : }
8007 : }
8008 : }
8009 : break;
8010 : default:;
8011 : }
8012 : break;
8013 : default:;
8014 : }
8015 : }
8016 : break;
8017 : }
8018 0 : case BIT_IOR_EXPR:
8019 0 : {
8020 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8021 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8022 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8023 : {
8024 0 : switch (TREE_CODE (_p1))
8025 : {
8026 0 : case CALL_EXPR:
8027 0 : switch (get_call_combined_fn (_p1))
8028 : {
8029 0 : case CFN_BUILT_IN_POPCOUNTLL:
8030 0 : if (call_expr_nargs (_p1) == 1)
8031 : {
8032 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8033 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8034 : {
8035 0 : {
8036 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8037 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8038 0 : if (res) return res;
8039 : }
8040 : }
8041 : }
8042 : break;
8043 : default:;
8044 : }
8045 : break;
8046 : default:;
8047 : }
8048 : }
8049 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8050 : {
8051 0 : switch (TREE_CODE (_p1))
8052 : {
8053 0 : case CALL_EXPR:
8054 0 : switch (get_call_combined_fn (_p1))
8055 : {
8056 0 : case CFN_BUILT_IN_POPCOUNTLL:
8057 0 : if (call_expr_nargs (_p1) == 1)
8058 : {
8059 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8060 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8061 : {
8062 0 : {
8063 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8064 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8065 0 : if (res) return res;
8066 : }
8067 : }
8068 : }
8069 : break;
8070 : default:;
8071 : }
8072 : break;
8073 : default:;
8074 : }
8075 : }
8076 : break;
8077 : }
8078 : default:;
8079 : }
8080 : }
8081 : break;
8082 : default:;
8083 : }
8084 : break;
8085 : default:;
8086 : }
8087 : }
8088 : break;
8089 0 : case CFN_POPCOUNT:
8090 0 : if (call_expr_nargs (_q20) == 1)
8091 : {
8092 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8093 0 : switch (TREE_CODE (_q21))
8094 : {
8095 0 : case CALL_EXPR:
8096 0 : switch (get_call_combined_fn (_q21))
8097 : {
8098 0 : case CFN_POPCOUNT:
8099 0 : if (call_expr_nargs (_q21) == 1)
8100 : {
8101 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8102 0 : switch (TREE_CODE (_q50))
8103 : {
8104 0 : case BIT_AND_EXPR:
8105 0 : {
8106 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8107 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8108 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8109 : {
8110 0 : switch (TREE_CODE (_p1))
8111 : {
8112 0 : case CALL_EXPR:
8113 0 : switch (get_call_combined_fn (_p1))
8114 : {
8115 0 : case CFN_POPCOUNT:
8116 0 : if (call_expr_nargs (_p1) == 1)
8117 : {
8118 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8119 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8120 : {
8121 0 : {
8122 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8123 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
8124 0 : if (res) return res;
8125 : }
8126 : }
8127 : }
8128 : break;
8129 : default:;
8130 : }
8131 : break;
8132 : default:;
8133 : }
8134 : }
8135 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8136 : {
8137 0 : switch (TREE_CODE (_p1))
8138 : {
8139 0 : case CALL_EXPR:
8140 0 : switch (get_call_combined_fn (_p1))
8141 : {
8142 0 : case CFN_POPCOUNT:
8143 0 : if (call_expr_nargs (_p1) == 1)
8144 : {
8145 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8146 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8147 : {
8148 0 : {
8149 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8150 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
8151 0 : if (res) return res;
8152 : }
8153 : }
8154 : }
8155 : break;
8156 : default:;
8157 : }
8158 : break;
8159 : default:;
8160 : }
8161 : }
8162 : break;
8163 : }
8164 0 : case BIT_IOR_EXPR:
8165 0 : {
8166 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8167 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8168 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8169 : {
8170 0 : switch (TREE_CODE (_p1))
8171 : {
8172 0 : case CALL_EXPR:
8173 0 : switch (get_call_combined_fn (_p1))
8174 : {
8175 0 : case CFN_POPCOUNT:
8176 0 : if (call_expr_nargs (_p1) == 1)
8177 : {
8178 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8179 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8180 : {
8181 0 : {
8182 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8183 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
8184 0 : if (res) return res;
8185 : }
8186 : }
8187 : }
8188 : break;
8189 : default:;
8190 : }
8191 : break;
8192 : default:;
8193 : }
8194 : }
8195 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8196 : {
8197 0 : switch (TREE_CODE (_p1))
8198 : {
8199 0 : case CALL_EXPR:
8200 0 : switch (get_call_combined_fn (_p1))
8201 : {
8202 0 : case CFN_POPCOUNT:
8203 0 : if (call_expr_nargs (_p1) == 1)
8204 : {
8205 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8206 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8207 : {
8208 0 : {
8209 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8210 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
8211 0 : if (res) return res;
8212 : }
8213 : }
8214 : }
8215 : break;
8216 : default:;
8217 : }
8218 : break;
8219 : default:;
8220 : }
8221 : }
8222 : break;
8223 : }
8224 : default:;
8225 : }
8226 : }
8227 : break;
8228 : default:;
8229 : }
8230 : break;
8231 : default:;
8232 : }
8233 : }
8234 : break;
8235 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8236 0 : if (call_expr_nargs (_q20) == 1)
8237 : {
8238 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8239 0 : switch (TREE_CODE (_q21))
8240 : {
8241 0 : case CALL_EXPR:
8242 0 : switch (get_call_combined_fn (_q21))
8243 : {
8244 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8245 0 : if (call_expr_nargs (_q21) == 1)
8246 : {
8247 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8248 0 : switch (TREE_CODE (_q50))
8249 : {
8250 0 : case BIT_AND_EXPR:
8251 0 : {
8252 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8253 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8254 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8255 : {
8256 0 : switch (TREE_CODE (_p1))
8257 : {
8258 0 : case CALL_EXPR:
8259 0 : switch (get_call_combined_fn (_p1))
8260 : {
8261 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8262 0 : if (call_expr_nargs (_p1) == 1)
8263 : {
8264 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8265 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8266 : {
8267 0 : {
8268 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8269 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8270 0 : if (res) return res;
8271 : }
8272 : }
8273 : }
8274 : break;
8275 : default:;
8276 : }
8277 : break;
8278 : default:;
8279 : }
8280 : }
8281 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8282 : {
8283 0 : switch (TREE_CODE (_p1))
8284 : {
8285 0 : case CALL_EXPR:
8286 0 : switch (get_call_combined_fn (_p1))
8287 : {
8288 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8289 0 : if (call_expr_nargs (_p1) == 1)
8290 : {
8291 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8292 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8293 : {
8294 0 : {
8295 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8296 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8297 0 : if (res) return res;
8298 : }
8299 : }
8300 : }
8301 : break;
8302 : default:;
8303 : }
8304 : break;
8305 : default:;
8306 : }
8307 : }
8308 : break;
8309 : }
8310 0 : case BIT_IOR_EXPR:
8311 0 : {
8312 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8313 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8314 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8315 : {
8316 0 : switch (TREE_CODE (_p1))
8317 : {
8318 0 : case CALL_EXPR:
8319 0 : switch (get_call_combined_fn (_p1))
8320 : {
8321 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8322 0 : if (call_expr_nargs (_p1) == 1)
8323 : {
8324 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8325 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8326 : {
8327 0 : {
8328 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8329 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8330 0 : if (res) return res;
8331 : }
8332 : }
8333 : }
8334 : break;
8335 : default:;
8336 : }
8337 : break;
8338 : default:;
8339 : }
8340 : }
8341 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8342 : {
8343 0 : switch (TREE_CODE (_p1))
8344 : {
8345 0 : case CALL_EXPR:
8346 0 : switch (get_call_combined_fn (_p1))
8347 : {
8348 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8349 0 : if (call_expr_nargs (_p1) == 1)
8350 : {
8351 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8352 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8353 : {
8354 0 : {
8355 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8356 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8357 0 : if (res) return res;
8358 : }
8359 : }
8360 : }
8361 : break;
8362 : default:;
8363 : }
8364 : break;
8365 : default:;
8366 : }
8367 : }
8368 : break;
8369 : }
8370 : default:;
8371 : }
8372 : }
8373 : break;
8374 : default:;
8375 : }
8376 : break;
8377 : default:;
8378 : }
8379 : }
8380 : break;
8381 0 : case CFN_BUILT_IN_POPCOUNTL:
8382 0 : if (call_expr_nargs (_q20) == 1)
8383 : {
8384 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8385 0 : switch (TREE_CODE (_q21))
8386 : {
8387 0 : case CALL_EXPR:
8388 0 : switch (get_call_combined_fn (_q21))
8389 : {
8390 0 : case CFN_BUILT_IN_POPCOUNTL:
8391 0 : if (call_expr_nargs (_q21) == 1)
8392 : {
8393 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8394 0 : switch (TREE_CODE (_q50))
8395 : {
8396 0 : case BIT_AND_EXPR:
8397 0 : {
8398 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8399 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8400 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8401 : {
8402 0 : switch (TREE_CODE (_p1))
8403 : {
8404 0 : case CALL_EXPR:
8405 0 : switch (get_call_combined_fn (_p1))
8406 : {
8407 0 : case CFN_BUILT_IN_POPCOUNTL:
8408 0 : if (call_expr_nargs (_p1) == 1)
8409 : {
8410 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8411 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8412 : {
8413 0 : {
8414 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8415 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
8416 0 : if (res) return res;
8417 : }
8418 : }
8419 : }
8420 : break;
8421 : default:;
8422 : }
8423 : break;
8424 : default:;
8425 : }
8426 : }
8427 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8428 : {
8429 0 : switch (TREE_CODE (_p1))
8430 : {
8431 0 : case CALL_EXPR:
8432 0 : switch (get_call_combined_fn (_p1))
8433 : {
8434 0 : case CFN_BUILT_IN_POPCOUNTL:
8435 0 : if (call_expr_nargs (_p1) == 1)
8436 : {
8437 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8438 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8439 : {
8440 0 : {
8441 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8442 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
8443 0 : if (res) return res;
8444 : }
8445 : }
8446 : }
8447 : break;
8448 : default:;
8449 : }
8450 : break;
8451 : default:;
8452 : }
8453 : }
8454 : break;
8455 : }
8456 0 : case BIT_IOR_EXPR:
8457 0 : {
8458 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8459 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8460 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8461 : {
8462 0 : switch (TREE_CODE (_p1))
8463 : {
8464 0 : case CALL_EXPR:
8465 0 : switch (get_call_combined_fn (_p1))
8466 : {
8467 0 : case CFN_BUILT_IN_POPCOUNTL:
8468 0 : if (call_expr_nargs (_p1) == 1)
8469 : {
8470 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8471 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8472 : {
8473 0 : {
8474 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8475 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
8476 0 : if (res) return res;
8477 : }
8478 : }
8479 : }
8480 : break;
8481 : default:;
8482 : }
8483 : break;
8484 : default:;
8485 : }
8486 : }
8487 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8488 : {
8489 0 : switch (TREE_CODE (_p1))
8490 : {
8491 0 : case CALL_EXPR:
8492 0 : switch (get_call_combined_fn (_p1))
8493 : {
8494 0 : case CFN_BUILT_IN_POPCOUNTL:
8495 0 : if (call_expr_nargs (_p1) == 1)
8496 : {
8497 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8498 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8499 : {
8500 0 : {
8501 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8502 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
8503 0 : if (res) return res;
8504 : }
8505 : }
8506 : }
8507 : break;
8508 : default:;
8509 : }
8510 : break;
8511 : default:;
8512 : }
8513 : }
8514 : break;
8515 : }
8516 : default:;
8517 : }
8518 : }
8519 : break;
8520 : default:;
8521 : }
8522 : break;
8523 : default:;
8524 : }
8525 : }
8526 : break;
8527 : default:;
8528 : }
8529 : break;
8530 : default:;
8531 : }
8532 : break;
8533 : }
8534 1 : case VEC_PERM_EXPR:
8535 1 : {
8536 1 : tree _q20 = TREE_OPERAND (_p0, 0);
8537 1 : tree _q21 = TREE_OPERAND (_p0, 1);
8538 1 : tree _q22 = TREE_OPERAND (_p0, 2);
8539 1 : switch (TREE_CODE (_q20))
8540 : {
8541 0 : case MULT_EXPR:
8542 0 : {
8543 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8544 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8545 0 : if (tree_vec_same_elem_p (_q31))
8546 : {
8547 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8548 : {
8549 0 : {
8550 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
8551 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
8552 0 : if (res) return res;
8553 : }
8554 : }
8555 : }
8556 0 : if (tree_vec_same_elem_p (_q30))
8557 : {
8558 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8559 : {
8560 0 : {
8561 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
8562 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
8563 0 : if (res) return res;
8564 : }
8565 : }
8566 : }
8567 : break;
8568 : }
8569 1 : default:;
8570 : }
8571 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8572 : {
8573 0 : switch (TREE_CODE (_p1))
8574 : {
8575 0 : case VEC_PERM_EXPR:
8576 0 : {
8577 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8578 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8579 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8580 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
8581 : {
8582 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8583 : {
8584 0 : {
8585 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
8586 0 : if (VECTOR_INTEGER_TYPE_P (type)
8587 : )
8588 : {
8589 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1159;
8590 0 : {
8591 0 : tree res_op0;
8592 0 : {
8593 0 : tree _o1[2], _r1;
8594 0 : _o1[0] = captures[0];
8595 0 : _o1[1] = captures[2];
8596 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8597 0 : captures[3] = _r1;
8598 : }
8599 0 : res_op0 = unshare_expr (captures[3]);
8600 0 : tree res_op1;
8601 0 : res_op1 = captures[3];
8602 0 : tree res_op2;
8603 0 : res_op2 = captures[1];
8604 0 : tree _r;
8605 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
8606 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
8607 0 : return _r;
8608 : }
8609 0 : next_after_fail1159:;
8610 : }
8611 : }
8612 : }
8613 : }
8614 : break;
8615 : }
8616 0 : default:;
8617 : }
8618 0 : switch (TREE_CODE (_q22))
8619 : {
8620 0 : case VECTOR_CST:
8621 0 : {
8622 0 : switch (TREE_CODE (_p1))
8623 : {
8624 0 : case VEC_PERM_EXPR:
8625 0 : {
8626 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8627 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8628 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8629 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
8630 : {
8631 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8632 : {
8633 0 : switch (TREE_CODE (_q62))
8634 : {
8635 0 : case VECTOR_CST:
8636 0 : {
8637 0 : {
8638 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
8639 0 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures, PLUS_EXPR);
8640 0 : if (res) return res;
8641 : }
8642 0 : break;
8643 : }
8644 : default:;
8645 : }
8646 : }
8647 : }
8648 : break;
8649 : }
8650 : default:;
8651 : }
8652 : break;
8653 : }
8654 : default:;
8655 : }
8656 : }
8657 : break;
8658 : }
8659 1490396 : case CALL_EXPR:
8660 1490396 : switch (get_call_combined_fn (_p0))
8661 : {
8662 9 : case CFN_BUILT_IN_LOG:
8663 9 : if (call_expr_nargs (_p0) == 1)
8664 : {
8665 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8666 9 : switch (TREE_CODE (_p1))
8667 : {
8668 0 : case CALL_EXPR:
8669 0 : switch (get_call_combined_fn (_p1))
8670 : {
8671 0 : case CFN_BUILT_IN_LOG:
8672 0 : if (call_expr_nargs (_p1) == 1)
8673 : {
8674 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8675 0 : {
8676 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8677 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
8678 0 : if (res) return res;
8679 : }
8680 : }
8681 : break;
8682 : default:;
8683 : }
8684 : break;
8685 : default:;
8686 : }
8687 : }
8688 : break;
8689 450 : case CFN_BUILT_IN_POPCOUNT:
8690 450 : if (call_expr_nargs (_p0) == 1)
8691 : {
8692 450 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8693 450 : switch (TREE_CODE (_p1))
8694 : {
8695 22 : case CALL_EXPR:
8696 22 : switch (get_call_combined_fn (_p1))
8697 : {
8698 22 : case CFN_BUILT_IN_POPCOUNT:
8699 22 : if (call_expr_nargs (_p1) == 1)
8700 : {
8701 22 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8702 22 : {
8703 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8704 22 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8705 22 : if (res) return res;
8706 : }
8707 : }
8708 : break;
8709 : default:;
8710 : }
8711 : break;
8712 449 : default:;
8713 : }
8714 449 : switch (TREE_CODE (_q20))
8715 : {
8716 9 : case BIT_AND_EXPR:
8717 9 : {
8718 9 : tree _q30 = TREE_OPERAND (_q20, 0);
8719 9 : tree _q31 = TREE_OPERAND (_q20, 1);
8720 9 : switch (TREE_CODE (_p1))
8721 : {
8722 9 : case CALL_EXPR:
8723 9 : switch (get_call_combined_fn (_p1))
8724 : {
8725 9 : case CFN_BUILT_IN_POPCOUNT:
8726 9 : if (call_expr_nargs (_p1) == 1)
8727 : {
8728 9 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
8729 9 : switch (TREE_CODE (_q60))
8730 : {
8731 9 : case BIT_IOR_EXPR:
8732 9 : {
8733 9 : tree _q70 = TREE_OPERAND (_q60, 0);
8734 9 : tree _q71 = TREE_OPERAND (_q60, 1);
8735 9 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
8736 : {
8737 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
8738 : {
8739 1 : {
8740 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
8741 1 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8742 1 : if (res) return res;
8743 : }
8744 : }
8745 : }
8746 8 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
8747 : {
8748 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
8749 : {
8750 1 : {
8751 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
8752 1 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8753 1 : if (res) return res;
8754 : }
8755 : }
8756 : }
8757 : break;
8758 : }
8759 : default:;
8760 : }
8761 : }
8762 : break;
8763 : default:;
8764 : }
8765 : break;
8766 : default:;
8767 : }
8768 : break;
8769 : }
8770 2 : case BIT_IOR_EXPR:
8771 2 : {
8772 2 : tree _q30 = TREE_OPERAND (_q20, 0);
8773 2 : tree _q31 = TREE_OPERAND (_q20, 1);
8774 2 : switch (TREE_CODE (_p1))
8775 : {
8776 2 : case CALL_EXPR:
8777 2 : switch (get_call_combined_fn (_p1))
8778 : {
8779 2 : case CFN_BUILT_IN_POPCOUNT:
8780 2 : if (call_expr_nargs (_p1) == 1)
8781 : {
8782 2 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
8783 2 : switch (TREE_CODE (_q60))
8784 : {
8785 2 : case BIT_AND_EXPR:
8786 2 : {
8787 2 : tree _q70 = TREE_OPERAND (_q60, 0);
8788 2 : tree _q71 = TREE_OPERAND (_q60, 1);
8789 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
8790 : {
8791 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
8792 : {
8793 1 : {
8794 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
8795 1 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8796 1 : if (res) return res;
8797 : }
8798 : }
8799 : }
8800 1 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
8801 : {
8802 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
8803 : {
8804 1 : {
8805 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
8806 1 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8807 1 : if (res) return res;
8808 : }
8809 : }
8810 : }
8811 : break;
8812 : }
8813 : default:;
8814 : }
8815 : }
8816 : break;
8817 : default:;
8818 : }
8819 : break;
8820 : default:;
8821 : }
8822 : break;
8823 : }
8824 445 : default:;
8825 : }
8826 445 : switch (TREE_CODE (_p1))
8827 : {
8828 0 : case MINUS_EXPR:
8829 0 : {
8830 0 : tree _q40 = TREE_OPERAND (_p1, 0);
8831 0 : tree _q41 = TREE_OPERAND (_p1, 1);
8832 0 : switch (TREE_CODE (_q40))
8833 : {
8834 0 : case CALL_EXPR:
8835 0 : switch (get_call_combined_fn (_q40))
8836 : {
8837 0 : case CFN_BUILT_IN_POPCOUNT:
8838 0 : if (call_expr_nargs (_q40) == 1)
8839 : {
8840 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
8841 0 : switch (TREE_CODE (_q41))
8842 : {
8843 0 : case CALL_EXPR:
8844 0 : switch (get_call_combined_fn (_q41))
8845 : {
8846 0 : case CFN_BUILT_IN_POPCOUNT:
8847 0 : if (call_expr_nargs (_q41) == 1)
8848 : {
8849 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
8850 0 : switch (TREE_CODE (_q70))
8851 : {
8852 0 : case BIT_AND_EXPR:
8853 0 : {
8854 0 : tree _q80 = TREE_OPERAND (_q70, 0);
8855 0 : tree _q81 = TREE_OPERAND (_q70, 1);
8856 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
8857 : {
8858 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
8859 : {
8860 0 : {
8861 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8862 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8863 0 : if (res) return res;
8864 : }
8865 : }
8866 : }
8867 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
8868 : {
8869 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
8870 : {
8871 0 : {
8872 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8873 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8874 0 : if (res) return res;
8875 : }
8876 : }
8877 : }
8878 : break;
8879 : }
8880 0 : case BIT_IOR_EXPR:
8881 0 : {
8882 0 : tree _q80 = TREE_OPERAND (_q70, 0);
8883 0 : tree _q81 = TREE_OPERAND (_q70, 1);
8884 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
8885 : {
8886 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
8887 : {
8888 0 : {
8889 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8890 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8891 0 : if (res) return res;
8892 : }
8893 : }
8894 : }
8895 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
8896 : {
8897 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
8898 : {
8899 0 : {
8900 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8901 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8902 0 : if (res) return res;
8903 : }
8904 : }
8905 : }
8906 : break;
8907 : }
8908 : default:;
8909 : }
8910 : }
8911 : break;
8912 : default:;
8913 : }
8914 : break;
8915 : default:;
8916 : }
8917 : }
8918 : break;
8919 : default:;
8920 : }
8921 : break;
8922 : default:;
8923 : }
8924 : break;
8925 : }
8926 : default:;
8927 : }
8928 : }
8929 : break;
8930 1 : case CFN_BUILT_IN_LOG2:
8931 1 : if (call_expr_nargs (_p0) == 1)
8932 : {
8933 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8934 1 : switch (TREE_CODE (_p1))
8935 : {
8936 1 : case CALL_EXPR:
8937 1 : switch (get_call_combined_fn (_p1))
8938 : {
8939 1 : case CFN_BUILT_IN_LOG2:
8940 1 : if (call_expr_nargs (_p1) == 1)
8941 : {
8942 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8943 1 : {
8944 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8945 1 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
8946 1 : if (res) return res;
8947 : }
8948 : }
8949 : break;
8950 : default:;
8951 : }
8952 : break;
8953 : default:;
8954 : }
8955 : }
8956 : break;
8957 0 : case CFN_BUILT_IN_LOGF:
8958 0 : if (call_expr_nargs (_p0) == 1)
8959 : {
8960 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8961 0 : switch (TREE_CODE (_p1))
8962 : {
8963 0 : case CALL_EXPR:
8964 0 : switch (get_call_combined_fn (_p1))
8965 : {
8966 0 : case CFN_BUILT_IN_LOGF:
8967 0 : if (call_expr_nargs (_p1) == 1)
8968 : {
8969 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8970 0 : {
8971 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8972 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
8973 0 : if (res) return res;
8974 : }
8975 : }
8976 : break;
8977 : default:;
8978 : }
8979 : break;
8980 : default:;
8981 : }
8982 : }
8983 : break;
8984 0 : case CFN_BUILT_IN_LOGL:
8985 0 : if (call_expr_nargs (_p0) == 1)
8986 : {
8987 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8988 0 : switch (TREE_CODE (_p1))
8989 : {
8990 0 : case CALL_EXPR:
8991 0 : switch (get_call_combined_fn (_p1))
8992 : {
8993 0 : case CFN_BUILT_IN_LOGL:
8994 0 : if (call_expr_nargs (_p1) == 1)
8995 : {
8996 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8997 0 : {
8998 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8999 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
9000 0 : if (res) return res;
9001 : }
9002 : }
9003 : break;
9004 : default:;
9005 : }
9006 : break;
9007 : default:;
9008 : }
9009 : }
9010 : break;
9011 26 : case CFN_BUILT_IN_POPCOUNTLL:
9012 26 : if (call_expr_nargs (_p0) == 1)
9013 : {
9014 26 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9015 26 : switch (TREE_CODE (_p1))
9016 : {
9017 24 : case CALL_EXPR:
9018 24 : switch (get_call_combined_fn (_p1))
9019 : {
9020 24 : case CFN_BUILT_IN_POPCOUNTLL:
9021 24 : if (call_expr_nargs (_p1) == 1)
9022 : {
9023 24 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9024 24 : {
9025 24 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9026 24 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9027 24 : if (res) return res;
9028 : }
9029 : }
9030 : break;
9031 : default:;
9032 : }
9033 : break;
9034 26 : default:;
9035 : }
9036 26 : switch (TREE_CODE (_q20))
9037 : {
9038 0 : case BIT_AND_EXPR:
9039 0 : {
9040 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9041 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9042 0 : switch (TREE_CODE (_p1))
9043 : {
9044 0 : case CALL_EXPR:
9045 0 : switch (get_call_combined_fn (_p1))
9046 : {
9047 0 : case CFN_BUILT_IN_POPCOUNTLL:
9048 0 : if (call_expr_nargs (_p1) == 1)
9049 : {
9050 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9051 0 : switch (TREE_CODE (_q60))
9052 : {
9053 0 : case BIT_IOR_EXPR:
9054 0 : {
9055 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9056 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9057 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9058 : {
9059 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9060 : {
9061 0 : {
9062 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9063 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9064 0 : if (res) return res;
9065 : }
9066 : }
9067 : }
9068 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9069 : {
9070 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9071 : {
9072 0 : {
9073 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9074 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9075 0 : if (res) return res;
9076 : }
9077 : }
9078 : }
9079 : break;
9080 : }
9081 : default:;
9082 : }
9083 : }
9084 : break;
9085 : default:;
9086 : }
9087 : break;
9088 : default:;
9089 : }
9090 : break;
9091 : }
9092 0 : case BIT_IOR_EXPR:
9093 0 : {
9094 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9095 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9096 0 : switch (TREE_CODE (_p1))
9097 : {
9098 0 : case CALL_EXPR:
9099 0 : switch (get_call_combined_fn (_p1))
9100 : {
9101 0 : case CFN_BUILT_IN_POPCOUNTLL:
9102 0 : if (call_expr_nargs (_p1) == 1)
9103 : {
9104 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9105 0 : switch (TREE_CODE (_q60))
9106 : {
9107 0 : case BIT_AND_EXPR:
9108 0 : {
9109 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9110 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9111 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9112 : {
9113 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9114 : {
9115 0 : {
9116 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9117 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9118 0 : if (res) return res;
9119 : }
9120 : }
9121 : }
9122 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9123 : {
9124 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9125 : {
9126 0 : {
9127 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9128 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9129 0 : if (res) return res;
9130 : }
9131 : }
9132 : }
9133 : break;
9134 : }
9135 : default:;
9136 : }
9137 : }
9138 : break;
9139 : default:;
9140 : }
9141 : break;
9142 : default:;
9143 : }
9144 : break;
9145 : }
9146 26 : default:;
9147 : }
9148 26 : switch (TREE_CODE (_p1))
9149 : {
9150 0 : case MINUS_EXPR:
9151 0 : {
9152 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9153 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9154 0 : switch (TREE_CODE (_q40))
9155 : {
9156 0 : case CALL_EXPR:
9157 0 : switch (get_call_combined_fn (_q40))
9158 : {
9159 0 : case CFN_BUILT_IN_POPCOUNTLL:
9160 0 : if (call_expr_nargs (_q40) == 1)
9161 : {
9162 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9163 0 : switch (TREE_CODE (_q41))
9164 : {
9165 0 : case CALL_EXPR:
9166 0 : switch (get_call_combined_fn (_q41))
9167 : {
9168 0 : case CFN_BUILT_IN_POPCOUNTLL:
9169 0 : if (call_expr_nargs (_q41) == 1)
9170 : {
9171 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9172 0 : switch (TREE_CODE (_q70))
9173 : {
9174 0 : case BIT_AND_EXPR:
9175 0 : {
9176 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9177 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9178 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9179 : {
9180 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9181 : {
9182 0 : {
9183 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9184 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9185 0 : if (res) return res;
9186 : }
9187 : }
9188 : }
9189 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9190 : {
9191 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9192 : {
9193 0 : {
9194 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9195 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9196 0 : if (res) return res;
9197 : }
9198 : }
9199 : }
9200 : break;
9201 : }
9202 0 : case BIT_IOR_EXPR:
9203 0 : {
9204 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9205 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9206 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9207 : {
9208 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9209 : {
9210 0 : {
9211 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9212 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9213 0 : if (res) return res;
9214 : }
9215 : }
9216 : }
9217 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9218 : {
9219 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9220 : {
9221 0 : {
9222 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9223 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9224 0 : if (res) return res;
9225 : }
9226 : }
9227 : }
9228 : break;
9229 : }
9230 : default:;
9231 : }
9232 : }
9233 : break;
9234 : default:;
9235 : }
9236 : break;
9237 : default:;
9238 : }
9239 : }
9240 : break;
9241 : default:;
9242 : }
9243 : break;
9244 : default:;
9245 : }
9246 : break;
9247 : }
9248 : default:;
9249 : }
9250 : }
9251 : break;
9252 0 : case CFN_BUILT_IN_LOG10F:
9253 0 : if (call_expr_nargs (_p0) == 1)
9254 : {
9255 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9256 0 : switch (TREE_CODE (_p1))
9257 : {
9258 0 : case CALL_EXPR:
9259 0 : switch (get_call_combined_fn (_p1))
9260 : {
9261 0 : case CFN_BUILT_IN_LOG10F:
9262 0 : if (call_expr_nargs (_p1) == 1)
9263 : {
9264 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9265 0 : {
9266 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9267 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
9268 0 : if (res) return res;
9269 : }
9270 : }
9271 : break;
9272 : default:;
9273 : }
9274 : break;
9275 : default:;
9276 : }
9277 : }
9278 : break;
9279 0 : case CFN_BUILT_IN_LOG10L:
9280 0 : if (call_expr_nargs (_p0) == 1)
9281 : {
9282 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9283 0 : switch (TREE_CODE (_p1))
9284 : {
9285 0 : case CALL_EXPR:
9286 0 : switch (get_call_combined_fn (_p1))
9287 : {
9288 0 : case CFN_BUILT_IN_LOG10L:
9289 0 : if (call_expr_nargs (_p1) == 1)
9290 : {
9291 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9292 0 : {
9293 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9294 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
9295 0 : if (res) return res;
9296 : }
9297 : }
9298 : break;
9299 : default:;
9300 : }
9301 : break;
9302 : default:;
9303 : }
9304 : }
9305 : break;
9306 4 : case CFN_POPCOUNT:
9307 4 : if (call_expr_nargs (_p0) == 1)
9308 : {
9309 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9310 4 : switch (TREE_CODE (_p1))
9311 : {
9312 1 : case CALL_EXPR:
9313 1 : switch (get_call_combined_fn (_p1))
9314 : {
9315 1 : case CFN_POPCOUNT:
9316 1 : if (call_expr_nargs (_p1) == 1)
9317 : {
9318 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9319 1 : {
9320 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9321 1 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9322 1 : if (res) return res;
9323 : }
9324 : }
9325 : break;
9326 : default:;
9327 : }
9328 : break;
9329 4 : default:;
9330 : }
9331 4 : switch (TREE_CODE (_q20))
9332 : {
9333 0 : case BIT_AND_EXPR:
9334 0 : {
9335 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9336 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9337 0 : switch (TREE_CODE (_p1))
9338 : {
9339 0 : case CALL_EXPR:
9340 0 : switch (get_call_combined_fn (_p1))
9341 : {
9342 0 : case CFN_POPCOUNT:
9343 0 : if (call_expr_nargs (_p1) == 1)
9344 : {
9345 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9346 0 : switch (TREE_CODE (_q60))
9347 : {
9348 0 : case BIT_IOR_EXPR:
9349 0 : {
9350 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9351 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9352 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9353 : {
9354 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9355 : {
9356 0 : {
9357 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9358 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9359 0 : if (res) return res;
9360 : }
9361 : }
9362 : }
9363 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9364 : {
9365 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9366 : {
9367 0 : {
9368 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9369 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9370 0 : if (res) return res;
9371 : }
9372 : }
9373 : }
9374 : break;
9375 : }
9376 : default:;
9377 : }
9378 : }
9379 : break;
9380 : default:;
9381 : }
9382 : break;
9383 : default:;
9384 : }
9385 : break;
9386 : }
9387 0 : case BIT_IOR_EXPR:
9388 0 : {
9389 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9390 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9391 0 : switch (TREE_CODE (_p1))
9392 : {
9393 0 : case CALL_EXPR:
9394 0 : switch (get_call_combined_fn (_p1))
9395 : {
9396 0 : case CFN_POPCOUNT:
9397 0 : if (call_expr_nargs (_p1) == 1)
9398 : {
9399 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9400 0 : switch (TREE_CODE (_q60))
9401 : {
9402 0 : case BIT_AND_EXPR:
9403 0 : {
9404 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9405 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9406 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9407 : {
9408 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9409 : {
9410 0 : {
9411 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9412 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9413 0 : if (res) return res;
9414 : }
9415 : }
9416 : }
9417 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9418 : {
9419 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9420 : {
9421 0 : {
9422 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9423 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9424 0 : if (res) return res;
9425 : }
9426 : }
9427 : }
9428 : break;
9429 : }
9430 : default:;
9431 : }
9432 : }
9433 : break;
9434 : default:;
9435 : }
9436 : break;
9437 : default:;
9438 : }
9439 : break;
9440 : }
9441 4 : default:;
9442 : }
9443 4 : switch (TREE_CODE (_p1))
9444 : {
9445 0 : case MINUS_EXPR:
9446 0 : {
9447 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9448 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9449 0 : switch (TREE_CODE (_q40))
9450 : {
9451 0 : case CALL_EXPR:
9452 0 : switch (get_call_combined_fn (_q40))
9453 : {
9454 0 : case CFN_POPCOUNT:
9455 0 : if (call_expr_nargs (_q40) == 1)
9456 : {
9457 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9458 0 : switch (TREE_CODE (_q41))
9459 : {
9460 0 : case CALL_EXPR:
9461 0 : switch (get_call_combined_fn (_q41))
9462 : {
9463 0 : case CFN_POPCOUNT:
9464 0 : if (call_expr_nargs (_q41) == 1)
9465 : {
9466 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9467 0 : switch (TREE_CODE (_q70))
9468 : {
9469 0 : case BIT_AND_EXPR:
9470 0 : {
9471 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9472 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9473 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9474 : {
9475 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9476 : {
9477 0 : {
9478 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9479 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9480 0 : if (res) return res;
9481 : }
9482 : }
9483 : }
9484 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9485 : {
9486 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9487 : {
9488 0 : {
9489 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9490 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9491 0 : if (res) return res;
9492 : }
9493 : }
9494 : }
9495 : break;
9496 : }
9497 0 : case BIT_IOR_EXPR:
9498 0 : {
9499 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9500 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9501 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9502 : {
9503 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9504 : {
9505 0 : {
9506 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9507 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9508 0 : if (res) return res;
9509 : }
9510 : }
9511 : }
9512 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9513 : {
9514 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9515 : {
9516 0 : {
9517 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9518 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9519 0 : if (res) return res;
9520 : }
9521 : }
9522 : }
9523 : break;
9524 : }
9525 : default:;
9526 : }
9527 : }
9528 : break;
9529 : default:;
9530 : }
9531 : break;
9532 : default:;
9533 : }
9534 : }
9535 : break;
9536 : default:;
9537 : }
9538 : break;
9539 : default:;
9540 : }
9541 : break;
9542 : }
9543 : default:;
9544 : }
9545 : }
9546 : break;
9547 0 : case CFN_LOG:
9548 0 : if (call_expr_nargs (_p0) == 1)
9549 : {
9550 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9551 0 : switch (TREE_CODE (_p1))
9552 : {
9553 0 : case CALL_EXPR:
9554 0 : switch (get_call_combined_fn (_p1))
9555 : {
9556 0 : case CFN_LOG:
9557 0 : if (call_expr_nargs (_p1) == 1)
9558 : {
9559 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9560 0 : {
9561 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9562 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_LOG);
9563 0 : if (res) return res;
9564 : }
9565 : }
9566 : break;
9567 : default:;
9568 : }
9569 : break;
9570 : default:;
9571 : }
9572 : }
9573 : break;
9574 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9575 0 : if (call_expr_nargs (_p0) == 1)
9576 : {
9577 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9578 0 : switch (TREE_CODE (_p1))
9579 : {
9580 0 : case CALL_EXPR:
9581 0 : switch (get_call_combined_fn (_p1))
9582 : {
9583 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9584 0 : if (call_expr_nargs (_p1) == 1)
9585 : {
9586 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9587 0 : {
9588 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9589 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9590 0 : if (res) return res;
9591 : }
9592 : }
9593 : break;
9594 : default:;
9595 : }
9596 : break;
9597 0 : default:;
9598 : }
9599 0 : switch (TREE_CODE (_q20))
9600 : {
9601 0 : case BIT_AND_EXPR:
9602 0 : {
9603 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9604 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9605 0 : switch (TREE_CODE (_p1))
9606 : {
9607 0 : case CALL_EXPR:
9608 0 : switch (get_call_combined_fn (_p1))
9609 : {
9610 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9611 0 : if (call_expr_nargs (_p1) == 1)
9612 : {
9613 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9614 0 : switch (TREE_CODE (_q60))
9615 : {
9616 0 : case BIT_IOR_EXPR:
9617 0 : {
9618 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9619 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9620 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9621 : {
9622 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9623 : {
9624 0 : {
9625 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9626 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9627 0 : if (res) return res;
9628 : }
9629 : }
9630 : }
9631 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9632 : {
9633 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9634 : {
9635 0 : {
9636 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9637 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9638 0 : if (res) return res;
9639 : }
9640 : }
9641 : }
9642 : break;
9643 : }
9644 : default:;
9645 : }
9646 : }
9647 : break;
9648 : default:;
9649 : }
9650 : break;
9651 : default:;
9652 : }
9653 : break;
9654 : }
9655 0 : case BIT_IOR_EXPR:
9656 0 : {
9657 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9658 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9659 0 : switch (TREE_CODE (_p1))
9660 : {
9661 0 : case CALL_EXPR:
9662 0 : switch (get_call_combined_fn (_p1))
9663 : {
9664 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9665 0 : if (call_expr_nargs (_p1) == 1)
9666 : {
9667 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9668 0 : switch (TREE_CODE (_q60))
9669 : {
9670 0 : case BIT_AND_EXPR:
9671 0 : {
9672 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9673 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9674 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9675 : {
9676 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9677 : {
9678 0 : {
9679 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9680 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9681 0 : if (res) return res;
9682 : }
9683 : }
9684 : }
9685 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9686 : {
9687 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9688 : {
9689 0 : {
9690 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9691 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9692 0 : if (res) return res;
9693 : }
9694 : }
9695 : }
9696 : break;
9697 : }
9698 : default:;
9699 : }
9700 : }
9701 : break;
9702 : default:;
9703 : }
9704 : break;
9705 : default:;
9706 : }
9707 : break;
9708 : }
9709 0 : default:;
9710 : }
9711 0 : switch (TREE_CODE (_p1))
9712 : {
9713 0 : case MINUS_EXPR:
9714 0 : {
9715 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9716 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9717 0 : switch (TREE_CODE (_q40))
9718 : {
9719 0 : case CALL_EXPR:
9720 0 : switch (get_call_combined_fn (_q40))
9721 : {
9722 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9723 0 : if (call_expr_nargs (_q40) == 1)
9724 : {
9725 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9726 0 : switch (TREE_CODE (_q41))
9727 : {
9728 0 : case CALL_EXPR:
9729 0 : switch (get_call_combined_fn (_q41))
9730 : {
9731 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9732 0 : if (call_expr_nargs (_q41) == 1)
9733 : {
9734 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9735 0 : switch (TREE_CODE (_q70))
9736 : {
9737 0 : case BIT_AND_EXPR:
9738 0 : {
9739 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9740 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9741 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9742 : {
9743 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9744 : {
9745 0 : {
9746 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9747 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9748 0 : if (res) return res;
9749 : }
9750 : }
9751 : }
9752 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9753 : {
9754 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9755 : {
9756 0 : {
9757 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9758 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9759 0 : if (res) return res;
9760 : }
9761 : }
9762 : }
9763 : break;
9764 : }
9765 0 : case BIT_IOR_EXPR:
9766 0 : {
9767 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9768 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9769 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9770 : {
9771 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9772 : {
9773 0 : {
9774 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9775 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9776 0 : if (res) return res;
9777 : }
9778 : }
9779 : }
9780 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9781 : {
9782 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9783 : {
9784 0 : {
9785 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9786 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9787 0 : if (res) return res;
9788 : }
9789 : }
9790 : }
9791 : break;
9792 : }
9793 : default:;
9794 : }
9795 : }
9796 : break;
9797 : default:;
9798 : }
9799 : break;
9800 : default:;
9801 : }
9802 : }
9803 : break;
9804 : default:;
9805 : }
9806 : break;
9807 : default:;
9808 : }
9809 : break;
9810 : }
9811 : default:;
9812 : }
9813 : }
9814 : break;
9815 0 : case CFN_LOG2:
9816 0 : if (call_expr_nargs (_p0) == 1)
9817 : {
9818 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9819 0 : switch (TREE_CODE (_p1))
9820 : {
9821 0 : case CALL_EXPR:
9822 0 : switch (get_call_combined_fn (_p1))
9823 : {
9824 0 : case CFN_LOG2:
9825 0 : if (call_expr_nargs (_p1) == 1)
9826 : {
9827 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9828 0 : {
9829 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9830 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_LOG2);
9831 0 : if (res) return res;
9832 : }
9833 : }
9834 : break;
9835 : default:;
9836 : }
9837 : break;
9838 : default:;
9839 : }
9840 : }
9841 : break;
9842 135 : case CFN_BUILT_IN_POPCOUNTL:
9843 135 : if (call_expr_nargs (_p0) == 1)
9844 : {
9845 135 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9846 135 : switch (TREE_CODE (_p1))
9847 : {
9848 69 : case CALL_EXPR:
9849 69 : switch (get_call_combined_fn (_p1))
9850 : {
9851 69 : case CFN_BUILT_IN_POPCOUNTL:
9852 69 : if (call_expr_nargs (_p1) == 1)
9853 : {
9854 69 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9855 69 : {
9856 69 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9857 69 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9858 69 : if (res) return res;
9859 : }
9860 : }
9861 : break;
9862 : default:;
9863 : }
9864 : break;
9865 135 : default:;
9866 : }
9867 135 : switch (TREE_CODE (_q20))
9868 : {
9869 0 : case BIT_AND_EXPR:
9870 0 : {
9871 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9872 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9873 0 : switch (TREE_CODE (_p1))
9874 : {
9875 0 : case CALL_EXPR:
9876 0 : switch (get_call_combined_fn (_p1))
9877 : {
9878 0 : case CFN_BUILT_IN_POPCOUNTL:
9879 0 : if (call_expr_nargs (_p1) == 1)
9880 : {
9881 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9882 0 : switch (TREE_CODE (_q60))
9883 : {
9884 0 : case BIT_IOR_EXPR:
9885 0 : {
9886 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9887 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9888 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9889 : {
9890 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9891 : {
9892 0 : {
9893 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9894 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9895 0 : if (res) return res;
9896 : }
9897 : }
9898 : }
9899 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9900 : {
9901 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9902 : {
9903 0 : {
9904 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9905 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9906 0 : if (res) return res;
9907 : }
9908 : }
9909 : }
9910 : break;
9911 : }
9912 : default:;
9913 : }
9914 : }
9915 : break;
9916 : default:;
9917 : }
9918 : break;
9919 : default:;
9920 : }
9921 : break;
9922 : }
9923 0 : case BIT_IOR_EXPR:
9924 0 : {
9925 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9926 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9927 0 : switch (TREE_CODE (_p1))
9928 : {
9929 0 : case CALL_EXPR:
9930 0 : switch (get_call_combined_fn (_p1))
9931 : {
9932 0 : case CFN_BUILT_IN_POPCOUNTL:
9933 0 : if (call_expr_nargs (_p1) == 1)
9934 : {
9935 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9936 0 : switch (TREE_CODE (_q60))
9937 : {
9938 0 : case BIT_AND_EXPR:
9939 0 : {
9940 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9941 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9942 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9943 : {
9944 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9945 : {
9946 0 : {
9947 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9948 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9949 0 : if (res) return res;
9950 : }
9951 : }
9952 : }
9953 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9954 : {
9955 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9956 : {
9957 0 : {
9958 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9959 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9960 0 : if (res) return res;
9961 : }
9962 : }
9963 : }
9964 : break;
9965 : }
9966 : default:;
9967 : }
9968 : }
9969 : break;
9970 : default:;
9971 : }
9972 : break;
9973 : default:;
9974 : }
9975 : break;
9976 : }
9977 135 : default:;
9978 : }
9979 135 : switch (TREE_CODE (_p1))
9980 : {
9981 0 : case MINUS_EXPR:
9982 0 : {
9983 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9984 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9985 0 : switch (TREE_CODE (_q40))
9986 : {
9987 0 : case CALL_EXPR:
9988 0 : switch (get_call_combined_fn (_q40))
9989 : {
9990 0 : case CFN_BUILT_IN_POPCOUNTL:
9991 0 : if (call_expr_nargs (_q40) == 1)
9992 : {
9993 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9994 0 : switch (TREE_CODE (_q41))
9995 : {
9996 0 : case CALL_EXPR:
9997 0 : switch (get_call_combined_fn (_q41))
9998 : {
9999 0 : case CFN_BUILT_IN_POPCOUNTL:
10000 0 : if (call_expr_nargs (_q41) == 1)
10001 : {
10002 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10003 0 : switch (TREE_CODE (_q70))
10004 : {
10005 0 : case BIT_AND_EXPR:
10006 0 : {
10007 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10008 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10009 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10010 : {
10011 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10012 : {
10013 0 : {
10014 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10015 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
10016 0 : if (res) return res;
10017 : }
10018 : }
10019 : }
10020 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10021 : {
10022 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10023 : {
10024 0 : {
10025 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10026 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
10027 0 : if (res) return res;
10028 : }
10029 : }
10030 : }
10031 : break;
10032 : }
10033 0 : case BIT_IOR_EXPR:
10034 0 : {
10035 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10036 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10037 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10038 : {
10039 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10040 : {
10041 0 : {
10042 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10043 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
10044 0 : if (res) return res;
10045 : }
10046 : }
10047 : }
10048 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10049 : {
10050 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10051 : {
10052 0 : {
10053 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10054 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
10055 0 : if (res) return res;
10056 : }
10057 : }
10058 : }
10059 : break;
10060 : }
10061 : default:;
10062 : }
10063 : }
10064 : break;
10065 : default:;
10066 : }
10067 : break;
10068 : default:;
10069 : }
10070 : }
10071 : break;
10072 : default:;
10073 : }
10074 : break;
10075 : default:;
10076 : }
10077 : break;
10078 : }
10079 : default:;
10080 : }
10081 : }
10082 : break;
10083 0 : case CFN_LOG10:
10084 0 : if (call_expr_nargs (_p0) == 1)
10085 : {
10086 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10087 0 : switch (TREE_CODE (_p1))
10088 : {
10089 0 : case CALL_EXPR:
10090 0 : switch (get_call_combined_fn (_p1))
10091 : {
10092 0 : case CFN_LOG10:
10093 0 : if (call_expr_nargs (_p1) == 1)
10094 : {
10095 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10096 0 : {
10097 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10098 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_LOG10);
10099 0 : if (res) return res;
10100 : }
10101 : }
10102 : break;
10103 : default:;
10104 : }
10105 : break;
10106 : default:;
10107 : }
10108 : }
10109 : break;
10110 0 : case CFN_BUILT_IN_LOG10:
10111 0 : if (call_expr_nargs (_p0) == 1)
10112 : {
10113 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10114 0 : switch (TREE_CODE (_p1))
10115 : {
10116 0 : case CALL_EXPR:
10117 0 : switch (get_call_combined_fn (_p1))
10118 : {
10119 0 : case CFN_BUILT_IN_LOG10:
10120 0 : if (call_expr_nargs (_p1) == 1)
10121 : {
10122 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10123 0 : {
10124 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10125 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
10126 0 : if (res) return res;
10127 : }
10128 : }
10129 : break;
10130 : default:;
10131 : }
10132 : break;
10133 : default:;
10134 : }
10135 : }
10136 : break;
10137 0 : case CFN_BUILT_IN_LOG2F:
10138 0 : if (call_expr_nargs (_p0) == 1)
10139 : {
10140 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10141 0 : switch (TREE_CODE (_p1))
10142 : {
10143 0 : case CALL_EXPR:
10144 0 : switch (get_call_combined_fn (_p1))
10145 : {
10146 0 : case CFN_BUILT_IN_LOG2F:
10147 0 : if (call_expr_nargs (_p1) == 1)
10148 : {
10149 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10150 0 : {
10151 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10152 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
10153 0 : if (res) return res;
10154 : }
10155 : }
10156 : break;
10157 : default:;
10158 : }
10159 : break;
10160 : default:;
10161 : }
10162 : }
10163 : break;
10164 0 : case CFN_BUILT_IN_LOG2L:
10165 0 : if (call_expr_nargs (_p0) == 1)
10166 : {
10167 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10168 0 : switch (TREE_CODE (_p1))
10169 : {
10170 0 : case CALL_EXPR:
10171 0 : switch (get_call_combined_fn (_p1))
10172 : {
10173 0 : case CFN_BUILT_IN_LOG2L:
10174 0 : if (call_expr_nargs (_p1) == 1)
10175 : {
10176 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10177 0 : {
10178 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10179 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
10180 0 : if (res) return res;
10181 : }
10182 : }
10183 : break;
10184 : default:;
10185 : }
10186 : break;
10187 : default:;
10188 : }
10189 : }
10190 : break;
10191 : default:;
10192 : }
10193 : break;
10194 62833000 : default:;
10195 : }
10196 62833000 : switch (TREE_CODE (_p1))
10197 : {
10198 0 : case VEC_PERM_EXPR:
10199 0 : {
10200 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10201 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10202 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10203 0 : switch (TREE_CODE (_q30))
10204 : {
10205 0 : case MULT_EXPR:
10206 0 : {
10207 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10208 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10209 0 : if (tree_vec_same_elem_p (_q41))
10210 : {
10211 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
10212 : {
10213 0 : {
10214 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
10215 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
10216 0 : if (res) return res;
10217 : }
10218 : }
10219 : }
10220 0 : if (tree_vec_same_elem_p (_q40))
10221 : {
10222 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
10223 : {
10224 0 : {
10225 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
10226 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
10227 0 : if (res) return res;
10228 : }
10229 : }
10230 : }
10231 : break;
10232 : }
10233 : default:;
10234 : }
10235 : break;
10236 : }
10237 : default:;
10238 : }
10239 : return NULL_TREE;
10240 : }
10241 :
10242 : tree
10243 346227 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10244 : {
10245 346227 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10246 346227 : switch (TREE_CODE (_p0))
10247 : {
10248 0 : case VEC_COND_EXPR:
10249 0 : {
10250 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10251 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10252 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10253 0 : switch (TREE_CODE (_p1))
10254 : {
10255 0 : case VEC_COND_EXPR:
10256 0 : {
10257 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10258 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10259 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10260 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10261 : {
10262 0 : {
10263 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10264 0 : if (VECTOR_TYPE_P (type)
10265 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10266 0 : || types_match (type, TREE_TYPE (captures[2]))
10267 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10268 : || (optimize_vectors_before_lowering_p ()
10269 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10270 : )
10271 : {
10272 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1759;
10273 0 : {
10274 0 : tree res_op0;
10275 0 : res_op0 = captures[1];
10276 0 : tree res_op1;
10277 0 : {
10278 0 : tree _o1[2], _r1;
10279 0 : _o1[0] = captures[2];
10280 0 : _o1[1] = captures[5];
10281 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10282 0 : if (EXPR_P (_r1))
10283 0 : goto next_after_fail1759;
10284 0 : res_op1 = _r1;
10285 : }
10286 0 : tree res_op2;
10287 0 : {
10288 0 : tree _o1[2], _r1;
10289 0 : _o1[0] = captures[3];
10290 0 : _o1[1] = captures[6];
10291 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10292 0 : if (EXPR_P (_r1))
10293 0 : goto next_after_fail1759;
10294 0 : res_op2 = _r1;
10295 : }
10296 0 : tree _r;
10297 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10298 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
10299 0 : return _r;
10300 : }
10301 0 : next_after_fail1759:;
10302 : }
10303 : }
10304 : }
10305 : break;
10306 : }
10307 0 : default:;
10308 : }
10309 0 : {
10310 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10311 0 : if (VECTOR_TYPE_P (type)
10312 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10313 0 : || types_match (type, TREE_TYPE (captures[2]))
10314 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10315 : || (optimize_vectors_before_lowering_p ()
10316 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10317 : )
10318 : {
10319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1760;
10320 0 : {
10321 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1760;
10322 0 : tree res_op0;
10323 0 : res_op0 = captures[1];
10324 0 : tree res_op1;
10325 0 : {
10326 0 : tree _o1[2], _r1;
10327 0 : _o1[0] = captures[2];
10328 0 : _o1[1] = unshare_expr (captures[4]);
10329 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10330 0 : if (EXPR_P (_r1))
10331 0 : goto next_after_fail1760;
10332 0 : res_op1 = _r1;
10333 : }
10334 0 : tree res_op2;
10335 0 : {
10336 0 : tree _o1[2], _r1;
10337 0 : _o1[0] = captures[3];
10338 0 : _o1[1] = captures[4];
10339 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10340 0 : if (EXPR_P (_r1))
10341 0 : goto next_after_fail1760;
10342 0 : res_op2 = _r1;
10343 : }
10344 0 : tree _r;
10345 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10346 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
10347 0 : return _r;
10348 : }
10349 0 : next_after_fail1760:;
10350 : }
10351 : }
10352 0 : break;
10353 : }
10354 346227 : default:;
10355 : }
10356 346227 : switch (TREE_CODE (_p1))
10357 : {
10358 0 : case VEC_COND_EXPR:
10359 0 : {
10360 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10361 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10362 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10363 0 : {
10364 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10365 0 : if (VECTOR_TYPE_P (type)
10366 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10367 0 : || types_match (type, TREE_TYPE (captures[3]))
10368 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10369 : || (optimize_vectors_before_lowering_p ()
10370 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10371 : )
10372 : {
10373 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1761;
10374 0 : {
10375 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1761;
10376 0 : tree res_op0;
10377 0 : res_op0 = captures[2];
10378 0 : tree res_op1;
10379 0 : {
10380 0 : tree _o1[2], _r1;
10381 0 : _o1[0] = unshare_expr (captures[0]);
10382 0 : _o1[1] = captures[3];
10383 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10384 0 : if (EXPR_P (_r1))
10385 0 : goto next_after_fail1761;
10386 0 : res_op1 = _r1;
10387 : }
10388 0 : tree res_op2;
10389 0 : {
10390 0 : tree _o1[2], _r1;
10391 0 : _o1[0] = captures[0];
10392 0 : _o1[1] = captures[4];
10393 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10394 0 : if (EXPR_P (_r1))
10395 0 : goto next_after_fail1761;
10396 0 : res_op2 = _r1;
10397 : }
10398 0 : tree _r;
10399 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10400 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
10401 0 : return _r;
10402 : }
10403 0 : next_after_fail1761:;
10404 : }
10405 : }
10406 0 : break;
10407 : }
10408 346227 : default:;
10409 : }
10410 346227 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10411 : {
10412 0 : {
10413 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10414 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
10415 0 : if (res) return res;
10416 : }
10417 : }
10418 346227 : switch (TREE_CODE (_p0))
10419 : {
10420 0 : case FLOAT_EXPR:
10421 0 : {
10422 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10423 0 : switch (TREE_CODE (_p1))
10424 : {
10425 0 : case FLOAT_EXPR:
10426 0 : {
10427 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10428 0 : {
10429 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10430 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
10431 0 : if (res) return res;
10432 : }
10433 0 : break;
10434 : }
10435 : default:;
10436 : }
10437 : break;
10438 : }
10439 0 : case NEGATE_EXPR:
10440 0 : {
10441 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10442 0 : switch (TREE_CODE (_p1))
10443 : {
10444 0 : case NEGATE_EXPR:
10445 0 : {
10446 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10447 0 : {
10448 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10449 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
10450 0 : if (res) return res;
10451 : }
10452 0 : break;
10453 : }
10454 0 : default:;
10455 : }
10456 0 : if (CONSTANT_CLASS_P (_p1))
10457 : {
10458 0 : {
10459 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10460 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
10461 0 : if (res) return res;
10462 : }
10463 : }
10464 : break;
10465 : }
10466 346227 : default:;
10467 : }
10468 346227 : switch (TREE_CODE (_p1))
10469 : {
10470 154 : case REAL_CST:
10471 154 : {
10472 154 : {
10473 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10474 154 : tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
10475 154 : if (res) return res;
10476 : }
10477 152 : break;
10478 : }
10479 : default:;
10480 : }
10481 : return NULL_TREE;
10482 : }
10483 :
10484 : tree
10485 14158214 : generic_simplify_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
10486 : {
10487 14158214 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10488 14158214 : switch (TREE_CODE (_p0))
10489 : {
10490 1765285 : case LT_EXPR:
10491 1765285 : {
10492 1765285 : tree _q20 = TREE_OPERAND (_p0, 0);
10493 1765285 : tree _q21 = TREE_OPERAND (_p0, 1);
10494 1765285 : switch (TREE_CODE (_q20))
10495 : {
10496 11147 : case MINUS_EXPR:
10497 11147 : {
10498 11147 : tree _q30 = TREE_OPERAND (_q20, 0);
10499 11147 : tree _q31 = TREE_OPERAND (_q20, 1);
10500 11147 : switch (TREE_CODE (_q30))
10501 : {
10502 485 : case SSA_NAME:
10503 485 : {
10504 485 : switch (TREE_CODE (_q31))
10505 : {
10506 0 : case CALL_EXPR:
10507 0 : switch (get_call_combined_fn (_q31))
10508 : {
10509 0 : case CFN_BUILT_IN_FLOORF:
10510 0 : if (call_expr_nargs (_q31) == 1)
10511 : {
10512 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
10513 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
10514 : {
10515 0 : switch (TREE_CODE (_q50))
10516 : {
10517 0 : case SSA_NAME:
10518 0 : {
10519 0 : switch (TREE_CODE (_q21))
10520 : {
10521 0 : case MINUS_EXPR:
10522 0 : {
10523 0 : tree _q80 = TREE_OPERAND (_q21, 0);
10524 0 : tree _q81 = TREE_OPERAND (_q21, 1);
10525 0 : switch (TREE_CODE (_q80))
10526 : {
10527 0 : case CALL_EXPR:
10528 0 : switch (get_call_combined_fn (_q80))
10529 : {
10530 0 : case CFN_BUILT_IN_CEILF:
10531 0 : if (call_expr_nargs (_q80) == 1)
10532 : {
10533 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
10534 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
10535 : {
10536 0 : switch (TREE_CODE (_q90))
10537 : {
10538 0 : case SSA_NAME:
10539 0 : {
10540 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
10541 : {
10542 0 : switch (TREE_CODE (_q81))
10543 : {
10544 0 : case SSA_NAME:
10545 0 : {
10546 0 : switch (TREE_CODE (_p1))
10547 : {
10548 0 : case CALL_EXPR:
10549 0 : switch (get_call_combined_fn (_p1))
10550 : {
10551 0 : case CFN_BUILT_IN_FLOORF:
10552 0 : if (call_expr_nargs (_p1) == 1)
10553 : {
10554 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
10555 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
10556 : {
10557 0 : switch (TREE_CODE (_q140))
10558 : {
10559 0 : case SSA_NAME:
10560 0 : {
10561 0 : switch (TREE_CODE (_p2))
10562 : {
10563 0 : case CALL_EXPR:
10564 0 : switch (get_call_combined_fn (_p2))
10565 : {
10566 0 : case CFN_BUILT_IN_CEILF:
10567 0 : if (call_expr_nargs (_p2) == 1)
10568 : {
10569 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
10570 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
10571 : {
10572 0 : switch (TREE_CODE (_q170))
10573 : {
10574 0 : case SSA_NAME:
10575 0 : {
10576 0 : {
10577 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10578 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
10579 0 : if (res) return res;
10580 : }
10581 0 : break;
10582 : }
10583 : default:;
10584 : }
10585 : }
10586 : }
10587 : break;
10588 : default:;
10589 : }
10590 : break;
10591 : default:;
10592 : }
10593 : break;
10594 : }
10595 : default:;
10596 : }
10597 : }
10598 : }
10599 : break;
10600 : default:;
10601 : }
10602 : break;
10603 : default:;
10604 : }
10605 : break;
10606 : }
10607 : default:;
10608 : }
10609 : }
10610 : break;
10611 : }
10612 : default:;
10613 : }
10614 : }
10615 : }
10616 : break;
10617 : default:;
10618 : }
10619 : break;
10620 : default:;
10621 : }
10622 : break;
10623 : }
10624 : default:;
10625 : }
10626 : break;
10627 : }
10628 : default:;
10629 : }
10630 : }
10631 : }
10632 : break;
10633 0 : case CFN_BUILT_IN_FLOORL:
10634 0 : if (call_expr_nargs (_q31) == 1)
10635 : {
10636 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
10637 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
10638 : {
10639 0 : switch (TREE_CODE (_q50))
10640 : {
10641 0 : case SSA_NAME:
10642 0 : {
10643 0 : switch (TREE_CODE (_q21))
10644 : {
10645 0 : case MINUS_EXPR:
10646 0 : {
10647 0 : tree _q80 = TREE_OPERAND (_q21, 0);
10648 0 : tree _q81 = TREE_OPERAND (_q21, 1);
10649 0 : switch (TREE_CODE (_q80))
10650 : {
10651 0 : case CALL_EXPR:
10652 0 : switch (get_call_combined_fn (_q80))
10653 : {
10654 0 : case CFN_BUILT_IN_CEILL:
10655 0 : if (call_expr_nargs (_q80) == 1)
10656 : {
10657 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
10658 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
10659 : {
10660 0 : switch (TREE_CODE (_q90))
10661 : {
10662 0 : case SSA_NAME:
10663 0 : {
10664 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
10665 : {
10666 0 : switch (TREE_CODE (_q81))
10667 : {
10668 0 : case SSA_NAME:
10669 0 : {
10670 0 : switch (TREE_CODE (_p1))
10671 : {
10672 0 : case CALL_EXPR:
10673 0 : switch (get_call_combined_fn (_p1))
10674 : {
10675 0 : case CFN_BUILT_IN_FLOORL:
10676 0 : if (call_expr_nargs (_p1) == 1)
10677 : {
10678 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
10679 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
10680 : {
10681 0 : switch (TREE_CODE (_q140))
10682 : {
10683 0 : case SSA_NAME:
10684 0 : {
10685 0 : switch (TREE_CODE (_p2))
10686 : {
10687 0 : case CALL_EXPR:
10688 0 : switch (get_call_combined_fn (_p2))
10689 : {
10690 0 : case CFN_BUILT_IN_CEILL:
10691 0 : if (call_expr_nargs (_p2) == 1)
10692 : {
10693 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
10694 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
10695 : {
10696 0 : switch (TREE_CODE (_q170))
10697 : {
10698 0 : case SSA_NAME:
10699 0 : {
10700 0 : {
10701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10702 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
10703 0 : if (res) return res;
10704 : }
10705 0 : break;
10706 : }
10707 : default:;
10708 : }
10709 : }
10710 : }
10711 : break;
10712 : default:;
10713 : }
10714 : break;
10715 : default:;
10716 : }
10717 : break;
10718 : }
10719 : default:;
10720 : }
10721 : }
10722 : }
10723 : break;
10724 : default:;
10725 : }
10726 : break;
10727 : default:;
10728 : }
10729 : break;
10730 : }
10731 : default:;
10732 : }
10733 : }
10734 : break;
10735 : }
10736 : default:;
10737 : }
10738 : }
10739 : }
10740 : break;
10741 : default:;
10742 : }
10743 : break;
10744 : default:;
10745 : }
10746 : break;
10747 : }
10748 : default:;
10749 : }
10750 : break;
10751 : }
10752 : default:;
10753 : }
10754 : }
10755 : }
10756 : break;
10757 0 : case CFN_FLOOR:
10758 0 : if (call_expr_nargs (_q31) == 1)
10759 : {
10760 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
10761 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
10762 : {
10763 0 : switch (TREE_CODE (_q50))
10764 : {
10765 0 : case SSA_NAME:
10766 0 : {
10767 0 : switch (TREE_CODE (_q21))
10768 : {
10769 0 : case MINUS_EXPR:
10770 0 : {
10771 0 : tree _q80 = TREE_OPERAND (_q21, 0);
10772 0 : tree _q81 = TREE_OPERAND (_q21, 1);
10773 0 : switch (TREE_CODE (_q80))
10774 : {
10775 0 : case CALL_EXPR:
10776 0 : switch (get_call_combined_fn (_q80))
10777 : {
10778 0 : case CFN_CEIL:
10779 0 : if (call_expr_nargs (_q80) == 1)
10780 : {
10781 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
10782 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
10783 : {
10784 0 : switch (TREE_CODE (_q90))
10785 : {
10786 0 : case SSA_NAME:
10787 0 : {
10788 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
10789 : {
10790 0 : switch (TREE_CODE (_q81))
10791 : {
10792 0 : case SSA_NAME:
10793 0 : {
10794 0 : switch (TREE_CODE (_p1))
10795 : {
10796 0 : case CALL_EXPR:
10797 0 : switch (get_call_combined_fn (_p1))
10798 : {
10799 0 : case CFN_FLOOR:
10800 0 : if (call_expr_nargs (_p1) == 1)
10801 : {
10802 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
10803 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
10804 : {
10805 0 : switch (TREE_CODE (_q140))
10806 : {
10807 0 : case SSA_NAME:
10808 0 : {
10809 0 : switch (TREE_CODE (_p2))
10810 : {
10811 0 : case CALL_EXPR:
10812 0 : switch (get_call_combined_fn (_p2))
10813 : {
10814 0 : case CFN_CEIL:
10815 0 : if (call_expr_nargs (_p2) == 1)
10816 : {
10817 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
10818 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
10819 : {
10820 0 : switch (TREE_CODE (_q170))
10821 : {
10822 0 : case SSA_NAME:
10823 0 : {
10824 0 : {
10825 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10826 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
10827 0 : if (res) return res;
10828 : }
10829 0 : break;
10830 : }
10831 : default:;
10832 : }
10833 : }
10834 : }
10835 : break;
10836 : default:;
10837 : }
10838 : break;
10839 : default:;
10840 : }
10841 : break;
10842 : }
10843 : default:;
10844 : }
10845 : }
10846 : }
10847 : break;
10848 : default:;
10849 : }
10850 : break;
10851 : default:;
10852 : }
10853 : break;
10854 : }
10855 : default:;
10856 : }
10857 : }
10858 : break;
10859 : }
10860 : default:;
10861 : }
10862 : }
10863 : }
10864 : break;
10865 : default:;
10866 : }
10867 : break;
10868 : default:;
10869 : }
10870 : break;
10871 : }
10872 : default:;
10873 : }
10874 : break;
10875 : }
10876 : default:;
10877 : }
10878 : }
10879 : }
10880 : break;
10881 0 : case CFN_BUILT_IN_FLOOR:
10882 0 : if (call_expr_nargs (_q31) == 1)
10883 : {
10884 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
10885 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
10886 : {
10887 0 : switch (TREE_CODE (_q50))
10888 : {
10889 0 : case SSA_NAME:
10890 0 : {
10891 0 : switch (TREE_CODE (_q21))
10892 : {
10893 0 : case MINUS_EXPR:
10894 0 : {
10895 0 : tree _q80 = TREE_OPERAND (_q21, 0);
10896 0 : tree _q81 = TREE_OPERAND (_q21, 1);
10897 0 : switch (TREE_CODE (_q80))
10898 : {
10899 0 : case CALL_EXPR:
10900 0 : switch (get_call_combined_fn (_q80))
10901 : {
10902 0 : case CFN_BUILT_IN_CEIL:
10903 0 : if (call_expr_nargs (_q80) == 1)
10904 : {
10905 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
10906 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
10907 : {
10908 0 : switch (TREE_CODE (_q90))
10909 : {
10910 0 : case SSA_NAME:
10911 0 : {
10912 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
10913 : {
10914 0 : switch (TREE_CODE (_q81))
10915 : {
10916 0 : case SSA_NAME:
10917 0 : {
10918 0 : switch (TREE_CODE (_p1))
10919 : {
10920 0 : case CALL_EXPR:
10921 0 : switch (get_call_combined_fn (_p1))
10922 : {
10923 0 : case CFN_BUILT_IN_FLOOR:
10924 0 : if (call_expr_nargs (_p1) == 1)
10925 : {
10926 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
10927 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
10928 : {
10929 0 : switch (TREE_CODE (_q140))
10930 : {
10931 0 : case SSA_NAME:
10932 0 : {
10933 0 : switch (TREE_CODE (_p2))
10934 : {
10935 0 : case CALL_EXPR:
10936 0 : switch (get_call_combined_fn (_p2))
10937 : {
10938 0 : case CFN_BUILT_IN_CEIL:
10939 0 : if (call_expr_nargs (_p2) == 1)
10940 : {
10941 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
10942 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
10943 : {
10944 0 : switch (TREE_CODE (_q170))
10945 : {
10946 0 : case SSA_NAME:
10947 0 : {
10948 0 : {
10949 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10950 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
10951 0 : if (res) return res;
10952 : }
10953 0 : break;
10954 : }
10955 : default:;
10956 : }
10957 : }
10958 : }
10959 : break;
10960 : default:;
10961 : }
10962 : break;
10963 : default:;
10964 : }
10965 : break;
10966 : }
10967 : default:;
10968 : }
10969 : }
10970 : }
10971 : break;
10972 : default:;
10973 : }
10974 : break;
10975 : default:;
10976 : }
10977 : break;
10978 : }
10979 : default:;
10980 : }
10981 : }
10982 : break;
10983 : }
10984 : default:;
10985 : }
10986 : }
10987 : }
10988 : break;
10989 : default:;
10990 : }
10991 : break;
10992 : default:;
10993 : }
10994 : break;
10995 : }
10996 : default:;
10997 : }
10998 : break;
10999 : }
11000 : default:;
11001 : }
11002 : }
11003 : }
11004 : break;
11005 : default:;
11006 : }
11007 : break;
11008 : default:;
11009 : }
11010 : break;
11011 : }
11012 : default:;
11013 : }
11014 : break;
11015 : }
11016 109280 : CASE_CONVERT:
11017 109280 : {
11018 109280 : tree _q30 = TREE_OPERAND (_q20, 0);
11019 109280 : switch (TREE_CODE (_q21))
11020 : {
11021 15656 : case INTEGER_CST:
11022 15656 : {
11023 15656 : switch (TREE_CODE (_p1))
11024 : {
11025 15 : CASE_CONVERT:
11026 15 : {
11027 15 : tree _q60 = TREE_OPERAND (_p1, 0);
11028 15 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11029 : {
11030 0 : switch (TREE_CODE (_p2))
11031 : {
11032 0 : case INTEGER_CST:
11033 0 : {
11034 0 : {
11035 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11036 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11037 0 : if (res) return res;
11038 : }
11039 0 : break;
11040 : }
11041 : default:;
11042 : }
11043 : }
11044 : break;
11045 : }
11046 15656 : default:;
11047 : }
11048 15656 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11049 : {
11050 6 : switch (TREE_CODE (_p2))
11051 : {
11052 6 : case INTEGER_CST:
11053 6 : {
11054 6 : {
11055 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11056 6 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11057 6 : if (res) return res;
11058 : }
11059 6 : break;
11060 : }
11061 : default:;
11062 : }
11063 : }
11064 15656 : switch (TREE_CODE (_p1))
11065 : {
11066 25 : case PLUS_EXPR:
11067 25 : {
11068 25 : tree _q60 = TREE_OPERAND (_p1, 0);
11069 25 : tree _q61 = TREE_OPERAND (_p1, 1);
11070 25 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11071 : {
11072 7 : switch (TREE_CODE (_q61))
11073 : {
11074 7 : case INTEGER_CST:
11075 7 : {
11076 7 : switch (TREE_CODE (_p2))
11077 : {
11078 7 : case INTEGER_CST:
11079 7 : {
11080 7 : {
11081 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11082 7 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
11083 7 : if (res) return res;
11084 : }
11085 0 : break;
11086 : }
11087 : default:;
11088 : }
11089 : break;
11090 : }
11091 : default:;
11092 : }
11093 : }
11094 : break;
11095 : }
11096 0 : case MINUS_EXPR:
11097 0 : {
11098 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11099 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11100 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11101 : {
11102 0 : switch (TREE_CODE (_q61))
11103 : {
11104 0 : case INTEGER_CST:
11105 0 : {
11106 0 : switch (TREE_CODE (_p2))
11107 : {
11108 0 : case INTEGER_CST:
11109 0 : {
11110 0 : {
11111 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11112 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
11113 0 : if (res) return res;
11114 : }
11115 0 : break;
11116 : }
11117 : default:;
11118 : }
11119 : break;
11120 : }
11121 : default:;
11122 : }
11123 : }
11124 : break;
11125 : }
11126 : default:;
11127 : }
11128 : break;
11129 : }
11130 : default:;
11131 : }
11132 : break;
11133 : }
11134 1765278 : default:;
11135 : }
11136 1765278 : switch (TREE_CODE (_q21))
11137 : {
11138 360515 : case INTEGER_CST:
11139 360515 : {
11140 360515 : switch (TREE_CODE (_p1))
11141 : {
11142 1118 : CASE_CONVERT:
11143 1118 : {
11144 1118 : tree _q50 = TREE_OPERAND (_p1, 0);
11145 1118 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11146 : {
11147 36 : switch (TREE_CODE (_p2))
11148 : {
11149 5 : case INTEGER_CST:
11150 5 : {
11151 5 : {
11152 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11153 5 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11154 5 : if (res) return res;
11155 : }
11156 5 : break;
11157 : }
11158 : default:;
11159 : }
11160 : }
11161 : break;
11162 : }
11163 360515 : default:;
11164 : }
11165 360515 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11166 : {
11167 81 : switch (TREE_CODE (_p2))
11168 : {
11169 8 : case INTEGER_CST:
11170 8 : {
11171 8 : {
11172 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11173 8 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11174 8 : if (res) return res;
11175 : }
11176 0 : break;
11177 : }
11178 : default:;
11179 : }
11180 : }
11181 360507 : switch (TREE_CODE (_p1))
11182 : {
11183 9050 : case PLUS_EXPR:
11184 9050 : {
11185 9050 : tree _q50 = TREE_OPERAND (_p1, 0);
11186 9050 : tree _q51 = TREE_OPERAND (_p1, 1);
11187 9050 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11188 : {
11189 9015 : switch (TREE_CODE (_q51))
11190 : {
11191 9015 : case INTEGER_CST:
11192 9015 : {
11193 9015 : switch (TREE_CODE (_p2))
11194 : {
11195 36 : case INTEGER_CST:
11196 36 : {
11197 36 : {
11198 36 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
11199 36 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
11200 36 : if (res) return res;
11201 : }
11202 36 : break;
11203 : }
11204 : default:;
11205 : }
11206 : break;
11207 : }
11208 : default:;
11209 : }
11210 : }
11211 : break;
11212 : }
11213 62 : case MINUS_EXPR:
11214 62 : {
11215 62 : tree _q50 = TREE_OPERAND (_p1, 0);
11216 62 : tree _q51 = TREE_OPERAND (_p1, 1);
11217 62 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11218 : {
11219 0 : switch (TREE_CODE (_q51))
11220 : {
11221 0 : case INTEGER_CST:
11222 0 : {
11223 0 : switch (TREE_CODE (_p2))
11224 : {
11225 0 : case INTEGER_CST:
11226 0 : {
11227 0 : {
11228 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
11229 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
11230 0 : if (res) return res;
11231 : }
11232 0 : break;
11233 : }
11234 : default:;
11235 : }
11236 : break;
11237 : }
11238 : default:;
11239 : }
11240 : }
11241 : break;
11242 : }
11243 : default:;
11244 : }
11245 : break;
11246 : }
11247 1765270 : default:;
11248 : }
11249 1765270 : switch (TREE_CODE (_p1))
11250 : {
11251 0 : case MIN_EXPR:
11252 0 : {
11253 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11254 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11255 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11256 : {
11257 0 : switch (TREE_CODE (_p2))
11258 : {
11259 0 : case MIN_EXPR:
11260 0 : {
11261 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11262 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11263 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11264 : {
11265 0 : {
11266 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
11267 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11268 0 : if (res) return res;
11269 : }
11270 : }
11271 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11272 : {
11273 0 : {
11274 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
11275 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11276 0 : if (res) return res;
11277 : }
11278 : }
11279 : break;
11280 : }
11281 : default:;
11282 : }
11283 : }
11284 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11285 : {
11286 0 : switch (TREE_CODE (_p2))
11287 : {
11288 0 : case MIN_EXPR:
11289 0 : {
11290 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11291 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11292 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11293 : {
11294 0 : {
11295 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
11296 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11297 0 : if (res) return res;
11298 : }
11299 : }
11300 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11301 : {
11302 0 : {
11303 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
11304 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11305 0 : if (res) return res;
11306 : }
11307 : }
11308 : break;
11309 : }
11310 : default:;
11311 : }
11312 : }
11313 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11314 : {
11315 0 : switch (TREE_CODE (_p2))
11316 : {
11317 0 : case MIN_EXPR:
11318 0 : {
11319 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11320 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11321 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11322 : {
11323 0 : {
11324 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
11325 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11326 0 : if (res) return res;
11327 : }
11328 : }
11329 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11330 : {
11331 0 : {
11332 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
11333 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11334 0 : if (res) return res;
11335 : }
11336 : }
11337 : break;
11338 : }
11339 0 : default:;
11340 : }
11341 0 : {
11342 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
11343 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11344 0 : if (res) return res;
11345 : }
11346 : }
11347 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11348 : {
11349 0 : switch (TREE_CODE (_p2))
11350 : {
11351 0 : case MIN_EXPR:
11352 0 : {
11353 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11354 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11355 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11356 : {
11357 0 : {
11358 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
11359 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11360 0 : if (res) return res;
11361 : }
11362 : }
11363 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11364 : {
11365 0 : {
11366 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
11367 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11368 0 : if (res) return res;
11369 : }
11370 : }
11371 : break;
11372 : }
11373 0 : default:;
11374 : }
11375 0 : {
11376 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
11377 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11378 0 : if (res) return res;
11379 : }
11380 : }
11381 : break;
11382 : }
11383 21 : case MAX_EXPR:
11384 21 : {
11385 21 : tree _q50 = TREE_OPERAND (_p1, 0);
11386 21 : tree _q51 = TREE_OPERAND (_p1, 1);
11387 21 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11388 : {
11389 1 : switch (TREE_CODE (_p2))
11390 : {
11391 0 : case MAX_EXPR:
11392 0 : {
11393 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11394 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11395 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11396 : {
11397 0 : {
11398 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
11399 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11400 0 : if (res) return res;
11401 : }
11402 : }
11403 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11404 : {
11405 0 : {
11406 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
11407 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11408 0 : if (res) return res;
11409 : }
11410 : }
11411 : break;
11412 : }
11413 1 : default:;
11414 : }
11415 1 : {
11416 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11417 1 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11418 1 : if (res) return res;
11419 : }
11420 : }
11421 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11422 : {
11423 4 : switch (TREE_CODE (_p2))
11424 : {
11425 0 : case MAX_EXPR:
11426 0 : {
11427 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11428 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11429 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11430 : {
11431 0 : {
11432 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
11433 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11434 0 : if (res) return res;
11435 : }
11436 : }
11437 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11438 : {
11439 0 : {
11440 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
11441 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11442 0 : if (res) return res;
11443 : }
11444 : }
11445 : break;
11446 : }
11447 : default:;
11448 : }
11449 : }
11450 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11451 : {
11452 8 : switch (TREE_CODE (_p2))
11453 : {
11454 0 : case MAX_EXPR:
11455 0 : {
11456 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11457 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11458 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11459 : {
11460 0 : {
11461 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
11462 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11463 0 : if (res) return res;
11464 : }
11465 : }
11466 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11467 : {
11468 0 : {
11469 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
11470 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11471 0 : if (res) return res;
11472 : }
11473 : }
11474 : break;
11475 : }
11476 : default:;
11477 : }
11478 : }
11479 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11480 : {
11481 1 : switch (TREE_CODE (_p2))
11482 : {
11483 1 : case MAX_EXPR:
11484 1 : {
11485 1 : tree _q80 = TREE_OPERAND (_p2, 0);
11486 1 : tree _q81 = TREE_OPERAND (_p2, 1);
11487 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11488 : {
11489 0 : {
11490 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
11491 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11492 0 : if (res) return res;
11493 : }
11494 : }
11495 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11496 : {
11497 1 : {
11498 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
11499 1 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11500 1 : if (res) return res;
11501 : }
11502 : }
11503 : break;
11504 : }
11505 : default:;
11506 : }
11507 : }
11508 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11509 : {
11510 4 : {
11511 4 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
11512 4 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11513 4 : if (res) return res;
11514 : }
11515 : }
11516 : break;
11517 : }
11518 1765268 : default:;
11519 : }
11520 1765268 : {
11521 1765268 : tree _q20_pops[1];
11522 1765268 : if (tree_nop_convert (_q20, _q20_pops))
11523 : {
11524 63984 : tree _q30 = _q20_pops[0];
11525 63984 : if (integer_zerop (_q21))
11526 : {
11527 7509 : switch (TREE_CODE (_p1))
11528 : {
11529 0 : case MIN_EXPR:
11530 0 : {
11531 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11532 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11533 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11534 : {
11535 0 : switch (TREE_CODE (_q61))
11536 : {
11537 0 : case INTEGER_CST:
11538 0 : {
11539 0 : switch (TREE_CODE (_p2))
11540 : {
11541 0 : case INTEGER_CST:
11542 0 : {
11543 0 : {
11544 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
11545 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11546 0 : if (res) return res;
11547 : }
11548 0 : break;
11549 : }
11550 : default:;
11551 : }
11552 : break;
11553 : }
11554 : default:;
11555 : }
11556 : }
11557 : break;
11558 : }
11559 : default:;
11560 : }
11561 : }
11562 : }
11563 : }
11564 1765268 : if (tree_expr_nonnegative_p (_q20))
11565 : {
11566 513418 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11567 : {
11568 166 : switch (TREE_CODE (_p2))
11569 : {
11570 5 : case ABS_EXPR:
11571 5 : {
11572 5 : tree _q60 = TREE_OPERAND (_p2, 0);
11573 5 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11574 : {
11575 0 : {
11576 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
11577 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
11578 0 : if (res) return res;
11579 : }
11580 : }
11581 : break;
11582 : }
11583 : default:;
11584 : }
11585 : }
11586 : }
11587 : break;
11588 : }
11589 543803 : case GE_EXPR:
11590 543803 : {
11591 543803 : tree _q20 = TREE_OPERAND (_p0, 0);
11592 543803 : tree _q21 = TREE_OPERAND (_p0, 1);
11593 543803 : switch (TREE_CODE (_q20))
11594 : {
11595 37653 : case MINUS_EXPR:
11596 37653 : {
11597 37653 : tree _q30 = TREE_OPERAND (_q20, 0);
11598 37653 : tree _q31 = TREE_OPERAND (_q20, 1);
11599 37653 : switch (TREE_CODE (_q30))
11600 : {
11601 258 : case SSA_NAME:
11602 258 : {
11603 258 : switch (TREE_CODE (_q31))
11604 : {
11605 0 : case CALL_EXPR:
11606 0 : switch (get_call_combined_fn (_q31))
11607 : {
11608 0 : case CFN_BUILT_IN_FLOORF:
11609 0 : if (call_expr_nargs (_q31) == 1)
11610 : {
11611 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11612 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11613 : {
11614 0 : switch (TREE_CODE (_q50))
11615 : {
11616 0 : case SSA_NAME:
11617 0 : {
11618 0 : switch (TREE_CODE (_q21))
11619 : {
11620 0 : case MINUS_EXPR:
11621 0 : {
11622 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11623 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11624 0 : switch (TREE_CODE (_q80))
11625 : {
11626 0 : case CALL_EXPR:
11627 0 : switch (get_call_combined_fn (_q80))
11628 : {
11629 0 : case CFN_BUILT_IN_CEILF:
11630 0 : if (call_expr_nargs (_q80) == 1)
11631 : {
11632 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11633 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11634 : {
11635 0 : switch (TREE_CODE (_q90))
11636 : {
11637 0 : case SSA_NAME:
11638 0 : {
11639 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11640 : {
11641 0 : switch (TREE_CODE (_q81))
11642 : {
11643 0 : case SSA_NAME:
11644 0 : {
11645 0 : switch (TREE_CODE (_p1))
11646 : {
11647 0 : case CALL_EXPR:
11648 0 : switch (get_call_combined_fn (_p1))
11649 : {
11650 0 : case CFN_BUILT_IN_CEILF:
11651 0 : if (call_expr_nargs (_p1) == 1)
11652 : {
11653 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11654 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11655 : {
11656 0 : switch (TREE_CODE (_q140))
11657 : {
11658 0 : case SSA_NAME:
11659 0 : {
11660 0 : switch (TREE_CODE (_p2))
11661 : {
11662 0 : case CALL_EXPR:
11663 0 : switch (get_call_combined_fn (_p2))
11664 : {
11665 0 : case CFN_BUILT_IN_FLOORF:
11666 0 : if (call_expr_nargs (_p2) == 1)
11667 : {
11668 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11669 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11670 : {
11671 0 : switch (TREE_CODE (_q170))
11672 : {
11673 0 : case SSA_NAME:
11674 0 : {
11675 0 : {
11676 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11677 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
11678 0 : if (res) return res;
11679 : }
11680 0 : break;
11681 : }
11682 : default:;
11683 : }
11684 : }
11685 : }
11686 : break;
11687 : default:;
11688 : }
11689 : break;
11690 : default:;
11691 : }
11692 : break;
11693 : }
11694 : default:;
11695 : }
11696 : }
11697 : }
11698 : break;
11699 : default:;
11700 : }
11701 : break;
11702 : default:;
11703 : }
11704 : break;
11705 : }
11706 : default:;
11707 : }
11708 : }
11709 : break;
11710 : }
11711 : default:;
11712 : }
11713 : }
11714 : }
11715 : break;
11716 : default:;
11717 : }
11718 : break;
11719 : default:;
11720 : }
11721 : break;
11722 : }
11723 : default:;
11724 : }
11725 : break;
11726 : }
11727 : default:;
11728 : }
11729 : }
11730 : }
11731 : break;
11732 0 : case CFN_BUILT_IN_FLOORL:
11733 0 : if (call_expr_nargs (_q31) == 1)
11734 : {
11735 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11736 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11737 : {
11738 0 : switch (TREE_CODE (_q50))
11739 : {
11740 0 : case SSA_NAME:
11741 0 : {
11742 0 : switch (TREE_CODE (_q21))
11743 : {
11744 0 : case MINUS_EXPR:
11745 0 : {
11746 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11747 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11748 0 : switch (TREE_CODE (_q80))
11749 : {
11750 0 : case CALL_EXPR:
11751 0 : switch (get_call_combined_fn (_q80))
11752 : {
11753 0 : case CFN_BUILT_IN_CEILL:
11754 0 : if (call_expr_nargs (_q80) == 1)
11755 : {
11756 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11757 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11758 : {
11759 0 : switch (TREE_CODE (_q90))
11760 : {
11761 0 : case SSA_NAME:
11762 0 : {
11763 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11764 : {
11765 0 : switch (TREE_CODE (_q81))
11766 : {
11767 0 : case SSA_NAME:
11768 0 : {
11769 0 : switch (TREE_CODE (_p1))
11770 : {
11771 0 : case CALL_EXPR:
11772 0 : switch (get_call_combined_fn (_p1))
11773 : {
11774 0 : case CFN_BUILT_IN_CEILL:
11775 0 : if (call_expr_nargs (_p1) == 1)
11776 : {
11777 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11778 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11779 : {
11780 0 : switch (TREE_CODE (_q140))
11781 : {
11782 0 : case SSA_NAME:
11783 0 : {
11784 0 : switch (TREE_CODE (_p2))
11785 : {
11786 0 : case CALL_EXPR:
11787 0 : switch (get_call_combined_fn (_p2))
11788 : {
11789 0 : case CFN_BUILT_IN_FLOORL:
11790 0 : if (call_expr_nargs (_p2) == 1)
11791 : {
11792 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11793 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11794 : {
11795 0 : switch (TREE_CODE (_q170))
11796 : {
11797 0 : case SSA_NAME:
11798 0 : {
11799 0 : {
11800 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11801 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
11802 0 : if (res) return res;
11803 : }
11804 0 : break;
11805 : }
11806 : default:;
11807 : }
11808 : }
11809 : }
11810 : break;
11811 : default:;
11812 : }
11813 : break;
11814 : default:;
11815 : }
11816 : break;
11817 : }
11818 : default:;
11819 : }
11820 : }
11821 : }
11822 : break;
11823 : default:;
11824 : }
11825 : break;
11826 : default:;
11827 : }
11828 : break;
11829 : }
11830 : default:;
11831 : }
11832 : }
11833 : break;
11834 : }
11835 : default:;
11836 : }
11837 : }
11838 : }
11839 : break;
11840 : default:;
11841 : }
11842 : break;
11843 : default:;
11844 : }
11845 : break;
11846 : }
11847 : default:;
11848 : }
11849 : break;
11850 : }
11851 : default:;
11852 : }
11853 : }
11854 : }
11855 : break;
11856 0 : case CFN_FLOOR:
11857 0 : if (call_expr_nargs (_q31) == 1)
11858 : {
11859 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11860 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11861 : {
11862 0 : switch (TREE_CODE (_q50))
11863 : {
11864 0 : case SSA_NAME:
11865 0 : {
11866 0 : switch (TREE_CODE (_q21))
11867 : {
11868 0 : case MINUS_EXPR:
11869 0 : {
11870 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11871 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11872 0 : switch (TREE_CODE (_q80))
11873 : {
11874 0 : case CALL_EXPR:
11875 0 : switch (get_call_combined_fn (_q80))
11876 : {
11877 0 : case CFN_CEIL:
11878 0 : if (call_expr_nargs (_q80) == 1)
11879 : {
11880 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11881 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11882 : {
11883 0 : switch (TREE_CODE (_q90))
11884 : {
11885 0 : case SSA_NAME:
11886 0 : {
11887 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11888 : {
11889 0 : switch (TREE_CODE (_q81))
11890 : {
11891 0 : case SSA_NAME:
11892 0 : {
11893 0 : switch (TREE_CODE (_p1))
11894 : {
11895 0 : case CALL_EXPR:
11896 0 : switch (get_call_combined_fn (_p1))
11897 : {
11898 0 : case CFN_CEIL:
11899 0 : if (call_expr_nargs (_p1) == 1)
11900 : {
11901 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11902 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11903 : {
11904 0 : switch (TREE_CODE (_q140))
11905 : {
11906 0 : case SSA_NAME:
11907 0 : {
11908 0 : switch (TREE_CODE (_p2))
11909 : {
11910 0 : case CALL_EXPR:
11911 0 : switch (get_call_combined_fn (_p2))
11912 : {
11913 0 : case CFN_FLOOR:
11914 0 : if (call_expr_nargs (_p2) == 1)
11915 : {
11916 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11917 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11918 : {
11919 0 : switch (TREE_CODE (_q170))
11920 : {
11921 0 : case SSA_NAME:
11922 0 : {
11923 0 : {
11924 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11925 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
11926 0 : if (res) return res;
11927 : }
11928 0 : break;
11929 : }
11930 : default:;
11931 : }
11932 : }
11933 : }
11934 : break;
11935 : default:;
11936 : }
11937 : break;
11938 : default:;
11939 : }
11940 : break;
11941 : }
11942 : default:;
11943 : }
11944 : }
11945 : }
11946 : break;
11947 : default:;
11948 : }
11949 : break;
11950 : default:;
11951 : }
11952 : break;
11953 : }
11954 : default:;
11955 : }
11956 : }
11957 : break;
11958 : }
11959 : default:;
11960 : }
11961 : }
11962 : }
11963 : break;
11964 : default:;
11965 : }
11966 : break;
11967 : default:;
11968 : }
11969 : break;
11970 : }
11971 : default:;
11972 : }
11973 : break;
11974 : }
11975 : default:;
11976 : }
11977 : }
11978 : }
11979 : break;
11980 0 : case CFN_BUILT_IN_FLOOR:
11981 0 : if (call_expr_nargs (_q31) == 1)
11982 : {
11983 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11984 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11985 : {
11986 0 : switch (TREE_CODE (_q50))
11987 : {
11988 0 : case SSA_NAME:
11989 0 : {
11990 0 : switch (TREE_CODE (_q21))
11991 : {
11992 0 : case MINUS_EXPR:
11993 0 : {
11994 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11995 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11996 0 : switch (TREE_CODE (_q80))
11997 : {
11998 0 : case CALL_EXPR:
11999 0 : switch (get_call_combined_fn (_q80))
12000 : {
12001 0 : case CFN_BUILT_IN_CEIL:
12002 0 : if (call_expr_nargs (_q80) == 1)
12003 : {
12004 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12005 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12006 : {
12007 0 : switch (TREE_CODE (_q90))
12008 : {
12009 0 : case SSA_NAME:
12010 0 : {
12011 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12012 : {
12013 0 : switch (TREE_CODE (_q81))
12014 : {
12015 0 : case SSA_NAME:
12016 0 : {
12017 0 : switch (TREE_CODE (_p1))
12018 : {
12019 0 : case CALL_EXPR:
12020 0 : switch (get_call_combined_fn (_p1))
12021 : {
12022 0 : case CFN_BUILT_IN_CEIL:
12023 0 : if (call_expr_nargs (_p1) == 1)
12024 : {
12025 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12026 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12027 : {
12028 0 : switch (TREE_CODE (_q140))
12029 : {
12030 0 : case SSA_NAME:
12031 0 : {
12032 0 : switch (TREE_CODE (_p2))
12033 : {
12034 0 : case CALL_EXPR:
12035 0 : switch (get_call_combined_fn (_p2))
12036 : {
12037 0 : case CFN_BUILT_IN_FLOOR:
12038 0 : if (call_expr_nargs (_p2) == 1)
12039 : {
12040 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12041 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12042 : {
12043 0 : switch (TREE_CODE (_q170))
12044 : {
12045 0 : case SSA_NAME:
12046 0 : {
12047 0 : {
12048 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12049 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
12050 0 : if (res) return res;
12051 : }
12052 0 : break;
12053 : }
12054 : default:;
12055 : }
12056 : }
12057 : }
12058 : break;
12059 : default:;
12060 : }
12061 : break;
12062 : default:;
12063 : }
12064 : break;
12065 : }
12066 : default:;
12067 : }
12068 : }
12069 : }
12070 : break;
12071 : default:;
12072 : }
12073 : break;
12074 : default:;
12075 : }
12076 : break;
12077 : }
12078 : default:;
12079 : }
12080 : }
12081 : break;
12082 : }
12083 : default:;
12084 : }
12085 : }
12086 : }
12087 : break;
12088 : default:;
12089 : }
12090 : break;
12091 : default:;
12092 : }
12093 : break;
12094 : }
12095 : default:;
12096 : }
12097 : break;
12098 : }
12099 : default:;
12100 : }
12101 : }
12102 : }
12103 : break;
12104 : default:;
12105 : }
12106 : break;
12107 : default:;
12108 : }
12109 : break;
12110 : }
12111 : default:;
12112 : }
12113 : break;
12114 : }
12115 53965 : CASE_CONVERT:
12116 53965 : {
12117 53965 : tree _q30 = TREE_OPERAND (_q20, 0);
12118 53965 : switch (TREE_CODE (_q21))
12119 : {
12120 25108 : case INTEGER_CST:
12121 25108 : {
12122 25108 : switch (TREE_CODE (_p1))
12123 : {
12124 9064 : CASE_CONVERT:
12125 9064 : {
12126 9064 : tree _q60 = TREE_OPERAND (_p1, 0);
12127 9064 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12128 : {
12129 5349 : switch (TREE_CODE (_p2))
12130 : {
12131 5341 : case INTEGER_CST:
12132 5341 : {
12133 5341 : {
12134 5341 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12135 5341 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12136 5341 : if (res) return res;
12137 : }
12138 5341 : break;
12139 : }
12140 : default:;
12141 : }
12142 : }
12143 : break;
12144 : }
12145 25108 : default:;
12146 : }
12147 25108 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12148 : {
12149 312 : switch (TREE_CODE (_p2))
12150 : {
12151 299 : case INTEGER_CST:
12152 299 : {
12153 299 : {
12154 299 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12155 299 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12156 299 : if (res) return res;
12157 : }
12158 294 : break;
12159 : }
12160 : default:;
12161 : }
12162 : }
12163 25103 : switch (TREE_CODE (_p1))
12164 : {
12165 415 : case PLUS_EXPR:
12166 415 : {
12167 415 : tree _q60 = TREE_OPERAND (_p1, 0);
12168 415 : tree _q61 = TREE_OPERAND (_p1, 1);
12169 415 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12170 : {
12171 0 : switch (TREE_CODE (_q61))
12172 : {
12173 0 : case INTEGER_CST:
12174 0 : {
12175 0 : switch (TREE_CODE (_p2))
12176 : {
12177 0 : case INTEGER_CST:
12178 0 : {
12179 0 : {
12180 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12181 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
12182 0 : if (res) return res;
12183 : }
12184 0 : break;
12185 : }
12186 : default:;
12187 : }
12188 : break;
12189 : }
12190 : default:;
12191 : }
12192 : }
12193 : break;
12194 : }
12195 76 : case MINUS_EXPR:
12196 76 : {
12197 76 : tree _q60 = TREE_OPERAND (_p1, 0);
12198 76 : tree _q61 = TREE_OPERAND (_p1, 1);
12199 76 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12200 : {
12201 0 : switch (TREE_CODE (_q61))
12202 : {
12203 0 : case INTEGER_CST:
12204 0 : {
12205 0 : switch (TREE_CODE (_p2))
12206 : {
12207 0 : case INTEGER_CST:
12208 0 : {
12209 0 : {
12210 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12211 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
12212 0 : if (res) return res;
12213 : }
12214 0 : break;
12215 : }
12216 : default:;
12217 : }
12218 : break;
12219 : }
12220 : default:;
12221 : }
12222 : }
12223 : break;
12224 : }
12225 : default:;
12226 : }
12227 : break;
12228 : }
12229 : default:;
12230 : }
12231 : break;
12232 : }
12233 543798 : default:;
12234 : }
12235 543798 : switch (TREE_CODE (_q21))
12236 : {
12237 201432 : case INTEGER_CST:
12238 201432 : {
12239 201432 : switch (TREE_CODE (_p1))
12240 : {
12241 52863 : CASE_CONVERT:
12242 52863 : {
12243 52863 : tree _q50 = TREE_OPERAND (_p1, 0);
12244 52863 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12245 : {
12246 150 : switch (TREE_CODE (_p2))
12247 : {
12248 45 : case INTEGER_CST:
12249 45 : {
12250 45 : {
12251 45 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12252 45 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12253 45 : if (res) return res;
12254 : }
12255 45 : break;
12256 : }
12257 : default:;
12258 : }
12259 : }
12260 : break;
12261 : }
12262 201432 : default:;
12263 : }
12264 201432 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12265 : {
12266 40343 : switch (TREE_CODE (_p2))
12267 : {
12268 10469 : case INTEGER_CST:
12269 10469 : {
12270 10469 : {
12271 10469 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12272 10469 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12273 10469 : if (res) return res;
12274 : }
12275 15 : break;
12276 : }
12277 : default:;
12278 : }
12279 : }
12280 190978 : switch (TREE_CODE (_p1))
12281 : {
12282 16630 : case PLUS_EXPR:
12283 16630 : {
12284 16630 : tree _q50 = TREE_OPERAND (_p1, 0);
12285 16630 : tree _q51 = TREE_OPERAND (_p1, 1);
12286 16630 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12287 : {
12288 6430 : switch (TREE_CODE (_q51))
12289 : {
12290 6430 : case INTEGER_CST:
12291 6430 : {
12292 6430 : switch (TREE_CODE (_p2))
12293 : {
12294 6430 : case INTEGER_CST:
12295 6430 : {
12296 6430 : {
12297 6430 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12298 6430 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
12299 6430 : if (res) return res;
12300 : }
12301 0 : break;
12302 : }
12303 : default:;
12304 : }
12305 : break;
12306 : }
12307 : default:;
12308 : }
12309 : }
12310 : break;
12311 : }
12312 218 : case MINUS_EXPR:
12313 218 : {
12314 218 : tree _q50 = TREE_OPERAND (_p1, 0);
12315 218 : tree _q51 = TREE_OPERAND (_p1, 1);
12316 218 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12317 : {
12318 0 : switch (TREE_CODE (_q51))
12319 : {
12320 0 : case INTEGER_CST:
12321 0 : {
12322 0 : switch (TREE_CODE (_p2))
12323 : {
12324 0 : case INTEGER_CST:
12325 0 : {
12326 0 : {
12327 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12328 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
12329 0 : if (res) return res;
12330 : }
12331 0 : break;
12332 : }
12333 : default:;
12334 : }
12335 : break;
12336 : }
12337 : default:;
12338 : }
12339 : }
12340 : break;
12341 : }
12342 : default:;
12343 : }
12344 : break;
12345 : }
12346 526914 : default:;
12347 : }
12348 526914 : switch (TREE_CODE (_p1))
12349 : {
12350 24 : case MIN_EXPR:
12351 24 : {
12352 24 : tree _q50 = TREE_OPERAND (_p1, 0);
12353 24 : tree _q51 = TREE_OPERAND (_p1, 1);
12354 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12355 : {
12356 23 : switch (TREE_CODE (_p2))
12357 : {
12358 0 : case MIN_EXPR:
12359 0 : {
12360 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12361 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12362 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12363 : {
12364 0 : {
12365 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12366 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12367 0 : if (res) return res;
12368 : }
12369 : }
12370 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12371 : {
12372 0 : {
12373 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12374 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12375 0 : if (res) return res;
12376 : }
12377 : }
12378 : break;
12379 : }
12380 23 : default:;
12381 : }
12382 23 : {
12383 23 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
12384 23 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12385 23 : if (res) return res;
12386 : }
12387 : }
12388 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12389 : {
12390 0 : switch (TREE_CODE (_p2))
12391 : {
12392 0 : case MIN_EXPR:
12393 0 : {
12394 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12395 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12396 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12397 : {
12398 0 : {
12399 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12400 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12401 0 : if (res) return res;
12402 : }
12403 : }
12404 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12405 : {
12406 0 : {
12407 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12408 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12409 0 : if (res) return res;
12410 : }
12411 : }
12412 : break;
12413 : }
12414 : default:;
12415 : }
12416 : }
12417 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12418 : {
12419 0 : switch (TREE_CODE (_p2))
12420 : {
12421 0 : case MIN_EXPR:
12422 0 : {
12423 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12424 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12425 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12426 : {
12427 0 : {
12428 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12429 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12430 0 : if (res) return res;
12431 : }
12432 : }
12433 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12434 : {
12435 0 : {
12436 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12437 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12438 0 : if (res) return res;
12439 : }
12440 : }
12441 : break;
12442 : }
12443 : default:;
12444 : }
12445 : }
12446 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12447 : {
12448 0 : switch (TREE_CODE (_p2))
12449 : {
12450 0 : case MIN_EXPR:
12451 0 : {
12452 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12453 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12454 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12455 : {
12456 0 : {
12457 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12458 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12459 0 : if (res) return res;
12460 : }
12461 : }
12462 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12463 : {
12464 0 : {
12465 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12466 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12467 0 : if (res) return res;
12468 : }
12469 : }
12470 : break;
12471 : }
12472 : default:;
12473 : }
12474 : }
12475 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12476 : {
12477 0 : {
12478 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
12479 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12480 0 : if (res) return res;
12481 : }
12482 : }
12483 : break;
12484 : }
12485 9 : case MAX_EXPR:
12486 9 : {
12487 9 : tree _q50 = TREE_OPERAND (_p1, 0);
12488 9 : tree _q51 = TREE_OPERAND (_p1, 1);
12489 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12490 : {
12491 1 : switch (TREE_CODE (_p2))
12492 : {
12493 0 : case MAX_EXPR:
12494 0 : {
12495 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12496 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12497 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12498 : {
12499 0 : {
12500 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12501 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12502 0 : if (res) return res;
12503 : }
12504 : }
12505 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12506 : {
12507 0 : {
12508 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12509 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12510 0 : if (res) return res;
12511 : }
12512 : }
12513 : break;
12514 : }
12515 : default:;
12516 : }
12517 : }
12518 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12519 : {
12520 1 : switch (TREE_CODE (_p2))
12521 : {
12522 0 : case MAX_EXPR:
12523 0 : {
12524 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12525 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12526 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12527 : {
12528 0 : {
12529 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12530 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12531 0 : if (res) return res;
12532 : }
12533 : }
12534 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12535 : {
12536 0 : {
12537 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12538 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12539 0 : if (res) return res;
12540 : }
12541 : }
12542 : break;
12543 : }
12544 : default:;
12545 : }
12546 : }
12547 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12548 : {
12549 1 : switch (TREE_CODE (_p2))
12550 : {
12551 0 : case MAX_EXPR:
12552 0 : {
12553 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12554 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12555 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12556 : {
12557 0 : {
12558 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12559 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12560 0 : if (res) return res;
12561 : }
12562 : }
12563 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12564 : {
12565 0 : {
12566 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12567 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12568 0 : if (res) return res;
12569 : }
12570 : }
12571 : break;
12572 : }
12573 1 : default:;
12574 : }
12575 1 : {
12576 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
12577 1 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12578 1 : if (res) return res;
12579 : }
12580 : }
12581 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12582 : {
12583 8 : switch (TREE_CODE (_p2))
12584 : {
12585 0 : case MAX_EXPR:
12586 0 : {
12587 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12588 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12589 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12590 : {
12591 0 : {
12592 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12593 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12594 0 : if (res) return res;
12595 : }
12596 : }
12597 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12598 : {
12599 0 : {
12600 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12601 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12602 0 : if (res) return res;
12603 : }
12604 : }
12605 : break;
12606 : }
12607 8 : default:;
12608 : }
12609 8 : {
12610 8 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
12611 8 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12612 8 : if (res) return res;
12613 : }
12614 : }
12615 : break;
12616 : }
12617 526904 : default:;
12618 : }
12619 526904 : {
12620 526904 : tree _q20_pops[1];
12621 526904 : if (tree_nop_convert (_q20, _q20_pops))
12622 : {
12623 21206 : tree _q30 = _q20_pops[0];
12624 21206 : if (integer_zerop (_q21))
12625 : {
12626 18022 : switch (TREE_CODE (_p1))
12627 : {
12628 0 : case MAX_EXPR:
12629 0 : {
12630 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12631 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12632 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12633 : {
12634 0 : switch (TREE_CODE (_q61))
12635 : {
12636 0 : case INTEGER_CST:
12637 0 : {
12638 0 : switch (TREE_CODE (_p2))
12639 : {
12640 0 : case INTEGER_CST:
12641 0 : {
12642 0 : {
12643 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
12644 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12645 0 : if (res) return res;
12646 : }
12647 0 : break;
12648 : }
12649 : default:;
12650 : }
12651 : break;
12652 : }
12653 : default:;
12654 : }
12655 : }
12656 : break;
12657 : }
12658 : default:;
12659 : }
12660 : }
12661 : }
12662 : }
12663 526904 : if (tree_expr_nonnegative_p (_q21))
12664 : {
12665 377503 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12666 : {
12667 29947 : switch (TREE_CODE (_p2))
12668 : {
12669 0 : case ABS_EXPR:
12670 0 : {
12671 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12672 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12673 : {
12674 0 : {
12675 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12676 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12677 0 : if (res) return res;
12678 : }
12679 : }
12680 : break;
12681 : }
12682 : default:;
12683 : }
12684 : }
12685 : }
12686 : break;
12687 : }
12688 949727 : case GT_EXPR:
12689 949727 : {
12690 949727 : tree _q20 = TREE_OPERAND (_p0, 0);
12691 949727 : tree _q21 = TREE_OPERAND (_p0, 1);
12692 949727 : switch (TREE_CODE (_q20))
12693 : {
12694 962 : case MINUS_EXPR:
12695 962 : {
12696 962 : tree _q30 = TREE_OPERAND (_q20, 0);
12697 962 : tree _q31 = TREE_OPERAND (_q20, 1);
12698 962 : switch (TREE_CODE (_q30))
12699 : {
12700 0 : case CALL_EXPR:
12701 0 : switch (get_call_combined_fn (_q30))
12702 : {
12703 0 : case CFN_BUILT_IN_CEIL:
12704 0 : if (call_expr_nargs (_q30) == 1)
12705 : {
12706 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
12707 0 : switch (TREE_CODE (_q40))
12708 : {
12709 0 : case SSA_NAME:
12710 0 : {
12711 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
12712 : {
12713 0 : switch (TREE_CODE (_q31))
12714 : {
12715 0 : case SSA_NAME:
12716 0 : {
12717 0 : switch (TREE_CODE (_q21))
12718 : {
12719 0 : case MINUS_EXPR:
12720 0 : {
12721 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12722 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12723 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
12724 : {
12725 0 : switch (TREE_CODE (_q80))
12726 : {
12727 0 : case SSA_NAME:
12728 0 : {
12729 0 : switch (TREE_CODE (_q81))
12730 : {
12731 0 : case CALL_EXPR:
12732 0 : switch (get_call_combined_fn (_q81))
12733 : {
12734 0 : case CFN_BUILT_IN_FLOOR:
12735 0 : if (call_expr_nargs (_q81) == 1)
12736 : {
12737 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
12738 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
12739 : {
12740 0 : switch (TREE_CODE (_q110))
12741 : {
12742 0 : case SSA_NAME:
12743 0 : {
12744 0 : switch (TREE_CODE (_p1))
12745 : {
12746 0 : case CALL_EXPR:
12747 0 : switch (get_call_combined_fn (_p1))
12748 : {
12749 0 : case CFN_BUILT_IN_FLOOR:
12750 0 : if (call_expr_nargs (_p1) == 1)
12751 : {
12752 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12753 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
12754 : {
12755 0 : switch (TREE_CODE (_q140))
12756 : {
12757 0 : case SSA_NAME:
12758 0 : {
12759 0 : switch (TREE_CODE (_p2))
12760 : {
12761 0 : case CALL_EXPR:
12762 0 : switch (get_call_combined_fn (_p2))
12763 : {
12764 0 : case CFN_BUILT_IN_CEIL:
12765 0 : if (call_expr_nargs (_p2) == 1)
12766 : {
12767 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12768 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
12769 : {
12770 0 : switch (TREE_CODE (_q170))
12771 : {
12772 0 : case SSA_NAME:
12773 0 : {
12774 0 : {
12775 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
12776 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
12777 0 : if (res) return res;
12778 : }
12779 0 : break;
12780 : }
12781 : default:;
12782 : }
12783 : }
12784 : }
12785 : break;
12786 : default:;
12787 : }
12788 : break;
12789 : default:;
12790 : }
12791 : break;
12792 : }
12793 : default:;
12794 : }
12795 : }
12796 : }
12797 : break;
12798 : default:;
12799 : }
12800 : break;
12801 : default:;
12802 : }
12803 : break;
12804 : }
12805 : default:;
12806 : }
12807 : }
12808 : }
12809 : break;
12810 : default:;
12811 : }
12812 : break;
12813 : default:;
12814 : }
12815 : break;
12816 : }
12817 : default:;
12818 : }
12819 : }
12820 : break;
12821 : }
12822 : default:;
12823 : }
12824 : break;
12825 : }
12826 : default:;
12827 : }
12828 : }
12829 : break;
12830 : }
12831 : default:;
12832 : }
12833 : }
12834 : break;
12835 0 : case CFN_CEIL:
12836 0 : if (call_expr_nargs (_q30) == 1)
12837 : {
12838 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
12839 0 : switch (TREE_CODE (_q40))
12840 : {
12841 0 : case SSA_NAME:
12842 0 : {
12843 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
12844 : {
12845 0 : switch (TREE_CODE (_q31))
12846 : {
12847 0 : case SSA_NAME:
12848 0 : {
12849 0 : switch (TREE_CODE (_q21))
12850 : {
12851 0 : case MINUS_EXPR:
12852 0 : {
12853 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12854 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12855 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
12856 : {
12857 0 : switch (TREE_CODE (_q80))
12858 : {
12859 0 : case SSA_NAME:
12860 0 : {
12861 0 : switch (TREE_CODE (_q81))
12862 : {
12863 0 : case CALL_EXPR:
12864 0 : switch (get_call_combined_fn (_q81))
12865 : {
12866 0 : case CFN_FLOOR:
12867 0 : if (call_expr_nargs (_q81) == 1)
12868 : {
12869 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
12870 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
12871 : {
12872 0 : switch (TREE_CODE (_q110))
12873 : {
12874 0 : case SSA_NAME:
12875 0 : {
12876 0 : switch (TREE_CODE (_p1))
12877 : {
12878 0 : case CALL_EXPR:
12879 0 : switch (get_call_combined_fn (_p1))
12880 : {
12881 0 : case CFN_FLOOR:
12882 0 : if (call_expr_nargs (_p1) == 1)
12883 : {
12884 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12885 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
12886 : {
12887 0 : switch (TREE_CODE (_q140))
12888 : {
12889 0 : case SSA_NAME:
12890 0 : {
12891 0 : switch (TREE_CODE (_p2))
12892 : {
12893 0 : case CALL_EXPR:
12894 0 : switch (get_call_combined_fn (_p2))
12895 : {
12896 0 : case CFN_CEIL:
12897 0 : if (call_expr_nargs (_p2) == 1)
12898 : {
12899 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12900 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
12901 : {
12902 0 : switch (TREE_CODE (_q170))
12903 : {
12904 0 : case SSA_NAME:
12905 0 : {
12906 0 : {
12907 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
12908 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
12909 0 : if (res) return res;
12910 : }
12911 0 : break;
12912 : }
12913 : default:;
12914 : }
12915 : }
12916 : }
12917 : break;
12918 : default:;
12919 : }
12920 : break;
12921 : default:;
12922 : }
12923 : break;
12924 : }
12925 : default:;
12926 : }
12927 : }
12928 : }
12929 : break;
12930 : default:;
12931 : }
12932 : break;
12933 : default:;
12934 : }
12935 : break;
12936 : }
12937 : default:;
12938 : }
12939 : }
12940 : }
12941 : break;
12942 : default:;
12943 : }
12944 : break;
12945 : default:;
12946 : }
12947 : break;
12948 : }
12949 : default:;
12950 : }
12951 : }
12952 : break;
12953 : }
12954 : default:;
12955 : }
12956 : break;
12957 : }
12958 : default:;
12959 : }
12960 : }
12961 : break;
12962 : }
12963 : default:;
12964 : }
12965 : }
12966 : break;
12967 0 : case CFN_BUILT_IN_CEILF:
12968 0 : if (call_expr_nargs (_q30) == 1)
12969 : {
12970 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
12971 0 : switch (TREE_CODE (_q40))
12972 : {
12973 0 : case SSA_NAME:
12974 0 : {
12975 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
12976 : {
12977 0 : switch (TREE_CODE (_q31))
12978 : {
12979 0 : case SSA_NAME:
12980 0 : {
12981 0 : switch (TREE_CODE (_q21))
12982 : {
12983 0 : case MINUS_EXPR:
12984 0 : {
12985 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12986 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12987 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
12988 : {
12989 0 : switch (TREE_CODE (_q80))
12990 : {
12991 0 : case SSA_NAME:
12992 0 : {
12993 0 : switch (TREE_CODE (_q81))
12994 : {
12995 0 : case CALL_EXPR:
12996 0 : switch (get_call_combined_fn (_q81))
12997 : {
12998 0 : case CFN_BUILT_IN_FLOORF:
12999 0 : if (call_expr_nargs (_q81) == 1)
13000 : {
13001 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13002 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13003 : {
13004 0 : switch (TREE_CODE (_q110))
13005 : {
13006 0 : case SSA_NAME:
13007 0 : {
13008 0 : switch (TREE_CODE (_p1))
13009 : {
13010 0 : case CALL_EXPR:
13011 0 : switch (get_call_combined_fn (_p1))
13012 : {
13013 0 : case CFN_BUILT_IN_FLOORF:
13014 0 : if (call_expr_nargs (_p1) == 1)
13015 : {
13016 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13017 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13018 : {
13019 0 : switch (TREE_CODE (_q140))
13020 : {
13021 0 : case SSA_NAME:
13022 0 : {
13023 0 : switch (TREE_CODE (_p2))
13024 : {
13025 0 : case CALL_EXPR:
13026 0 : switch (get_call_combined_fn (_p2))
13027 : {
13028 0 : case CFN_BUILT_IN_CEILF:
13029 0 : if (call_expr_nargs (_p2) == 1)
13030 : {
13031 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13032 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13033 : {
13034 0 : switch (TREE_CODE (_q170))
13035 : {
13036 0 : case SSA_NAME:
13037 0 : {
13038 0 : {
13039 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13040 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
13041 0 : if (res) return res;
13042 : }
13043 0 : break;
13044 : }
13045 : default:;
13046 : }
13047 : }
13048 : }
13049 : break;
13050 : default:;
13051 : }
13052 : break;
13053 : default:;
13054 : }
13055 : break;
13056 : }
13057 : default:;
13058 : }
13059 : }
13060 : }
13061 : break;
13062 : default:;
13063 : }
13064 : break;
13065 : default:;
13066 : }
13067 : break;
13068 : }
13069 : default:;
13070 : }
13071 : }
13072 : }
13073 : break;
13074 : default:;
13075 : }
13076 : break;
13077 : default:;
13078 : }
13079 : break;
13080 : }
13081 : default:;
13082 : }
13083 : }
13084 : break;
13085 : }
13086 : default:;
13087 : }
13088 : break;
13089 : }
13090 : default:;
13091 : }
13092 : }
13093 : break;
13094 : }
13095 : default:;
13096 : }
13097 : }
13098 : break;
13099 0 : case CFN_BUILT_IN_CEILL:
13100 0 : if (call_expr_nargs (_q30) == 1)
13101 : {
13102 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13103 0 : switch (TREE_CODE (_q40))
13104 : {
13105 0 : case SSA_NAME:
13106 0 : {
13107 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13108 : {
13109 0 : switch (TREE_CODE (_q31))
13110 : {
13111 0 : case SSA_NAME:
13112 0 : {
13113 0 : switch (TREE_CODE (_q21))
13114 : {
13115 0 : case MINUS_EXPR:
13116 0 : {
13117 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13118 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13119 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13120 : {
13121 0 : switch (TREE_CODE (_q80))
13122 : {
13123 0 : case SSA_NAME:
13124 0 : {
13125 0 : switch (TREE_CODE (_q81))
13126 : {
13127 0 : case CALL_EXPR:
13128 0 : switch (get_call_combined_fn (_q81))
13129 : {
13130 0 : case CFN_BUILT_IN_FLOORL:
13131 0 : if (call_expr_nargs (_q81) == 1)
13132 : {
13133 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13134 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13135 : {
13136 0 : switch (TREE_CODE (_q110))
13137 : {
13138 0 : case SSA_NAME:
13139 0 : {
13140 0 : switch (TREE_CODE (_p1))
13141 : {
13142 0 : case CALL_EXPR:
13143 0 : switch (get_call_combined_fn (_p1))
13144 : {
13145 0 : case CFN_BUILT_IN_FLOORL:
13146 0 : if (call_expr_nargs (_p1) == 1)
13147 : {
13148 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13149 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13150 : {
13151 0 : switch (TREE_CODE (_q140))
13152 : {
13153 0 : case SSA_NAME:
13154 0 : {
13155 0 : switch (TREE_CODE (_p2))
13156 : {
13157 0 : case CALL_EXPR:
13158 0 : switch (get_call_combined_fn (_p2))
13159 : {
13160 0 : case CFN_BUILT_IN_CEILL:
13161 0 : if (call_expr_nargs (_p2) == 1)
13162 : {
13163 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13164 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13165 : {
13166 0 : switch (TREE_CODE (_q170))
13167 : {
13168 0 : case SSA_NAME:
13169 0 : {
13170 0 : {
13171 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13172 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
13173 0 : if (res) return res;
13174 : }
13175 0 : break;
13176 : }
13177 : default:;
13178 : }
13179 : }
13180 : }
13181 : break;
13182 : default:;
13183 : }
13184 : break;
13185 : default:;
13186 : }
13187 : break;
13188 : }
13189 : default:;
13190 : }
13191 : }
13192 : }
13193 : break;
13194 : default:;
13195 : }
13196 : break;
13197 : default:;
13198 : }
13199 : break;
13200 : }
13201 : default:;
13202 : }
13203 : }
13204 : }
13205 : break;
13206 : default:;
13207 : }
13208 : break;
13209 : default:;
13210 : }
13211 : break;
13212 : }
13213 : default:;
13214 : }
13215 : }
13216 : break;
13217 : }
13218 : default:;
13219 : }
13220 : break;
13221 : }
13222 : default:;
13223 : }
13224 : }
13225 : break;
13226 : }
13227 : default:;
13228 : }
13229 : }
13230 : break;
13231 : default:;
13232 : }
13233 : break;
13234 : default:;
13235 : }
13236 : break;
13237 : }
13238 93410 : CASE_CONVERT:
13239 93410 : {
13240 93410 : tree _q30 = TREE_OPERAND (_q20, 0);
13241 93410 : switch (TREE_CODE (_q21))
13242 : {
13243 4137 : case INTEGER_CST:
13244 4137 : {
13245 4137 : switch (TREE_CODE (_p1))
13246 : {
13247 169 : CASE_CONVERT:
13248 169 : {
13249 169 : tree _q60 = TREE_OPERAND (_p1, 0);
13250 169 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13251 : {
13252 63 : switch (TREE_CODE (_p2))
13253 : {
13254 62 : case INTEGER_CST:
13255 62 : {
13256 62 : {
13257 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13258 62 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13259 62 : if (res) return res;
13260 : }
13261 62 : break;
13262 : }
13263 : default:;
13264 : }
13265 : }
13266 : break;
13267 : }
13268 4137 : default:;
13269 : }
13270 4137 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
13271 : {
13272 5 : switch (TREE_CODE (_p2))
13273 : {
13274 3 : case INTEGER_CST:
13275 3 : {
13276 3 : {
13277 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13278 3 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13279 3 : if (res) return res;
13280 : }
13281 3 : break;
13282 : }
13283 : default:;
13284 : }
13285 : }
13286 4137 : switch (TREE_CODE (_p1))
13287 : {
13288 1266 : case PLUS_EXPR:
13289 1266 : {
13290 1266 : tree _q60 = TREE_OPERAND (_p1, 0);
13291 1266 : tree _q61 = TREE_OPERAND (_p1, 1);
13292 1266 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13293 : {
13294 24 : switch (TREE_CODE (_q61))
13295 : {
13296 24 : case INTEGER_CST:
13297 24 : {
13298 24 : switch (TREE_CODE (_p2))
13299 : {
13300 24 : case INTEGER_CST:
13301 24 : {
13302 24 : {
13303 24 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13304 24 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
13305 24 : if (res) return res;
13306 : }
13307 24 : break;
13308 : }
13309 : default:;
13310 : }
13311 : break;
13312 : }
13313 : default:;
13314 : }
13315 : }
13316 : break;
13317 : }
13318 0 : case MINUS_EXPR:
13319 0 : {
13320 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13321 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13322 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13323 : {
13324 0 : switch (TREE_CODE (_q61))
13325 : {
13326 0 : case INTEGER_CST:
13327 0 : {
13328 0 : switch (TREE_CODE (_p2))
13329 : {
13330 0 : case INTEGER_CST:
13331 0 : {
13332 0 : {
13333 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13334 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
13335 0 : if (res) return res;
13336 : }
13337 0 : break;
13338 : }
13339 : default:;
13340 : }
13341 : break;
13342 : }
13343 : default:;
13344 : }
13345 : }
13346 : break;
13347 : }
13348 : default:;
13349 : }
13350 : break;
13351 : }
13352 : default:;
13353 : }
13354 : break;
13355 : }
13356 949727 : default:;
13357 : }
13358 949727 : switch (TREE_CODE (_q21))
13359 : {
13360 512495 : case INTEGER_CST:
13361 512495 : {
13362 512495 : switch (TREE_CODE (_p1))
13363 : {
13364 49961 : CASE_CONVERT:
13365 49961 : {
13366 49961 : tree _q50 = TREE_OPERAND (_p1, 0);
13367 49961 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13368 : {
13369 9920 : switch (TREE_CODE (_p2))
13370 : {
13371 9885 : case INTEGER_CST:
13372 9885 : {
13373 9885 : {
13374 9885 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13375 9885 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13376 9885 : if (res) return res;
13377 : }
13378 9619 : break;
13379 : }
13380 : default:;
13381 : }
13382 : }
13383 : break;
13384 : }
13385 512229 : default:;
13386 : }
13387 512229 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13388 : {
13389 8805 : switch (TREE_CODE (_p2))
13390 : {
13391 8655 : case INTEGER_CST:
13392 8655 : {
13393 8655 : {
13394 8655 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13395 8655 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13396 8655 : if (res) return res;
13397 : }
13398 31 : break;
13399 : }
13400 : default:;
13401 : }
13402 : }
13403 503605 : switch (TREE_CODE (_p1))
13404 : {
13405 42761 : case PLUS_EXPR:
13406 42761 : {
13407 42761 : tree _q50 = TREE_OPERAND (_p1, 0);
13408 42761 : tree _q51 = TREE_OPERAND (_p1, 1);
13409 42761 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13410 : {
13411 735 : switch (TREE_CODE (_q51))
13412 : {
13413 735 : case INTEGER_CST:
13414 735 : {
13415 735 : switch (TREE_CODE (_p2))
13416 : {
13417 727 : case INTEGER_CST:
13418 727 : {
13419 727 : {
13420 727 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13421 727 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
13422 727 : if (res) return res;
13423 : }
13424 17 : break;
13425 : }
13426 : default:;
13427 : }
13428 : break;
13429 : }
13430 : default:;
13431 : }
13432 : }
13433 : break;
13434 : }
13435 200 : case MINUS_EXPR:
13436 200 : {
13437 200 : tree _q50 = TREE_OPERAND (_p1, 0);
13438 200 : tree _q51 = TREE_OPERAND (_p1, 1);
13439 200 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13440 : {
13441 4 : switch (TREE_CODE (_q51))
13442 : {
13443 0 : case INTEGER_CST:
13444 0 : {
13445 0 : switch (TREE_CODE (_p2))
13446 : {
13447 0 : case INTEGER_CST:
13448 0 : {
13449 0 : {
13450 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13451 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
13452 0 : if (res) return res;
13453 : }
13454 0 : break;
13455 : }
13456 : default:;
13457 : }
13458 : break;
13459 : }
13460 : default:;
13461 : }
13462 : }
13463 : break;
13464 : }
13465 : default:;
13466 : }
13467 : break;
13468 : }
13469 940127 : default:;
13470 : }
13471 940127 : switch (TREE_CODE (_p1))
13472 : {
13473 18 : case MIN_EXPR:
13474 18 : {
13475 18 : tree _q50 = TREE_OPERAND (_p1, 0);
13476 18 : tree _q51 = TREE_OPERAND (_p1, 1);
13477 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13478 : {
13479 7 : switch (TREE_CODE (_p2))
13480 : {
13481 0 : case MIN_EXPR:
13482 0 : {
13483 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13484 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13485 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13486 : {
13487 0 : {
13488 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13489 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13490 0 : if (res) return res;
13491 : }
13492 : }
13493 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13494 : {
13495 0 : {
13496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13497 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13498 0 : if (res) return res;
13499 : }
13500 : }
13501 : break;
13502 : }
13503 7 : default:;
13504 : }
13505 7 : {
13506 7 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
13507 7 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13508 7 : if (res) return res;
13509 : }
13510 : }
13511 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13512 : {
13513 0 : switch (TREE_CODE (_p2))
13514 : {
13515 0 : case MIN_EXPR:
13516 0 : {
13517 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13518 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13519 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13520 : {
13521 0 : {
13522 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13523 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13524 0 : if (res) return res;
13525 : }
13526 : }
13527 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13528 : {
13529 0 : {
13530 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13531 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13532 0 : if (res) return res;
13533 : }
13534 : }
13535 : break;
13536 : }
13537 : default:;
13538 : }
13539 : }
13540 18 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13541 : {
13542 8 : switch (TREE_CODE (_p2))
13543 : {
13544 0 : case MIN_EXPR:
13545 0 : {
13546 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13547 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13548 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13549 : {
13550 0 : {
13551 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
13552 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13553 0 : if (res) return res;
13554 : }
13555 : }
13556 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13557 : {
13558 0 : {
13559 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13560 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13561 0 : if (res) return res;
13562 : }
13563 : }
13564 : break;
13565 : }
13566 : default:;
13567 : }
13568 : }
13569 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13570 : {
13571 7 : switch (TREE_CODE (_p2))
13572 : {
13573 0 : case MIN_EXPR:
13574 0 : {
13575 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13576 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13577 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13578 : {
13579 0 : {
13580 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13581 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13582 0 : if (res) return res;
13583 : }
13584 : }
13585 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13586 : {
13587 0 : {
13588 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13589 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13590 0 : if (res) return res;
13591 : }
13592 : }
13593 : break;
13594 : }
13595 : default:;
13596 : }
13597 : }
13598 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13599 : {
13600 0 : {
13601 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
13602 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13603 0 : if (res) return res;
13604 : }
13605 : }
13606 : break;
13607 : }
13608 100 : case MAX_EXPR:
13609 100 : {
13610 100 : tree _q50 = TREE_OPERAND (_p1, 0);
13611 100 : tree _q51 = TREE_OPERAND (_p1, 1);
13612 100 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13613 : {
13614 0 : switch (TREE_CODE (_p2))
13615 : {
13616 0 : case MAX_EXPR:
13617 0 : {
13618 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13619 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13620 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13621 : {
13622 0 : {
13623 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13624 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13625 0 : if (res) return res;
13626 : }
13627 : }
13628 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13629 : {
13630 0 : {
13631 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13632 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13633 0 : if (res) return res;
13634 : }
13635 : }
13636 : break;
13637 : }
13638 : default:;
13639 : }
13640 : }
13641 100 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13642 : {
13643 2 : switch (TREE_CODE (_p2))
13644 : {
13645 1 : case MAX_EXPR:
13646 1 : {
13647 1 : tree _q80 = TREE_OPERAND (_p2, 0);
13648 1 : tree _q81 = TREE_OPERAND (_p2, 1);
13649 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13650 : {
13651 0 : {
13652 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13653 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13654 0 : if (res) return res;
13655 : }
13656 : }
13657 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13658 : {
13659 1 : {
13660 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13661 1 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13662 1 : if (res) return res;
13663 : }
13664 : }
13665 : break;
13666 : }
13667 : default:;
13668 : }
13669 : }
13670 99 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13671 : {
13672 1 : switch (TREE_CODE (_p2))
13673 : {
13674 0 : case MAX_EXPR:
13675 0 : {
13676 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13677 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13678 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13679 : {
13680 0 : {
13681 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
13682 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13683 0 : if (res) return res;
13684 : }
13685 : }
13686 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13687 : {
13688 0 : {
13689 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13690 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13691 0 : if (res) return res;
13692 : }
13693 : }
13694 : break;
13695 : }
13696 1 : default:;
13697 : }
13698 1 : {
13699 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
13700 1 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13701 1 : if (res) return res;
13702 : }
13703 : }
13704 98 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13705 : {
13706 0 : switch (TREE_CODE (_p2))
13707 : {
13708 0 : case MAX_EXPR:
13709 0 : {
13710 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13711 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13712 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13713 : {
13714 0 : {
13715 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13716 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13717 0 : if (res) return res;
13718 : }
13719 : }
13720 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13721 : {
13722 0 : {
13723 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13724 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13725 0 : if (res) return res;
13726 : }
13727 : }
13728 : break;
13729 : }
13730 0 : default:;
13731 : }
13732 0 : {
13733 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
13734 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13735 0 : if (res) return res;
13736 : }
13737 : }
13738 : break;
13739 : }
13740 940125 : default:;
13741 : }
13742 940125 : if (integer_zerop (_q20))
13743 : {
13744 0 : {
13745 0 : tree _q21_pops[1];
13746 0 : if (tree_nop_convert (_q21, _q21_pops))
13747 : {
13748 0 : tree _q40 = _q21_pops[0];
13749 0 : switch (TREE_CODE (_p1))
13750 : {
13751 0 : case MIN_EXPR:
13752 0 : {
13753 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13754 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13755 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13756 : {
13757 0 : switch (TREE_CODE (_q61))
13758 : {
13759 0 : case INTEGER_CST:
13760 0 : {
13761 0 : switch (TREE_CODE (_p2))
13762 : {
13763 0 : case INTEGER_CST:
13764 0 : {
13765 0 : {
13766 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
13767 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13768 0 : if (res) return res;
13769 : }
13770 0 : break;
13771 : }
13772 : default:;
13773 : }
13774 : break;
13775 : }
13776 : default:;
13777 : }
13778 : }
13779 : break;
13780 : }
13781 : default:;
13782 : }
13783 : }
13784 : }
13785 : }
13786 940125 : if (tree_expr_nonnegative_p (_q21))
13787 : {
13788 627358 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13789 : {
13790 574 : switch (TREE_CODE (_p2))
13791 : {
13792 0 : case ABS_EXPR:
13793 0 : {
13794 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13795 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13796 : {
13797 0 : {
13798 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13799 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13800 0 : if (res) return res;
13801 : }
13802 : }
13803 : break;
13804 : }
13805 : default:;
13806 : }
13807 : }
13808 : }
13809 940125 : switch (TREE_CODE (_q20))
13810 : {
13811 56739 : case PLUS_EXPR:
13812 56739 : {
13813 56739 : tree _q30 = TREE_OPERAND (_q20, 0);
13814 56739 : tree _q31 = TREE_OPERAND (_q20, 1);
13815 56739 : if (integer_onep (_q31))
13816 : {
13817 28654 : switch (TREE_CODE (_p1))
13818 : {
13819 2 : case NEGATE_EXPR:
13820 2 : {
13821 2 : tree _q70 = TREE_OPERAND (_p1, 0);
13822 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
13823 : {
13824 2 : if (integer_onep (_p2))
13825 : {
13826 2 : {
13827 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13828 2 : if (TYPE_UNSIGNED (type)
13829 : )
13830 : {
13831 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1798;
13832 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1798;
13833 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1798;
13834 2 : {
13835 2 : tree res_op0;
13836 2 : {
13837 2 : tree _o1[2], _r1;
13838 2 : _o1[0] = unshare_expr (captures[0]);
13839 2 : _o1[1] = captures[1];
13840 2 : _r1 = fold_build2_loc (loc, GE_EXPR, boolean_type_node, _o1[0], _o1[1]);
13841 2 : res_op0 = _r1;
13842 : }
13843 2 : tree res_op1;
13844 2 : {
13845 2 : tree _o1[1], _r1;
13846 2 : _o1[0] = captures[0];
13847 2 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13848 2 : res_op1 = _r1;
13849 : }
13850 2 : tree res_op2;
13851 2 : res_op2 = captures[2];
13852 2 : tree _r;
13853 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
13854 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
13855 2 : return _r;
13856 : }
13857 0 : next_after_fail1798:;
13858 : }
13859 : }
13860 : }
13861 : }
13862 : break;
13863 : }
13864 : default:;
13865 : }
13866 : }
13867 : break;
13868 : }
13869 : default:;
13870 : }
13871 : break;
13872 : }
13873 1355651 : case LE_EXPR:
13874 1355651 : {
13875 1355651 : tree _q20 = TREE_OPERAND (_p0, 0);
13876 1355651 : tree _q21 = TREE_OPERAND (_p0, 1);
13877 1355651 : switch (TREE_CODE (_q20))
13878 : {
13879 201 : case MINUS_EXPR:
13880 201 : {
13881 201 : tree _q30 = TREE_OPERAND (_q20, 0);
13882 201 : tree _q31 = TREE_OPERAND (_q20, 1);
13883 201 : switch (TREE_CODE (_q30))
13884 : {
13885 0 : case CALL_EXPR:
13886 0 : switch (get_call_combined_fn (_q30))
13887 : {
13888 0 : case CFN_BUILT_IN_CEIL:
13889 0 : if (call_expr_nargs (_q30) == 1)
13890 : {
13891 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13892 0 : switch (TREE_CODE (_q40))
13893 : {
13894 0 : case SSA_NAME:
13895 0 : {
13896 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13897 : {
13898 0 : switch (TREE_CODE (_q31))
13899 : {
13900 0 : case SSA_NAME:
13901 0 : {
13902 0 : switch (TREE_CODE (_q21))
13903 : {
13904 0 : case MINUS_EXPR:
13905 0 : {
13906 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13907 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13908 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13909 : {
13910 0 : switch (TREE_CODE (_q80))
13911 : {
13912 0 : case SSA_NAME:
13913 0 : {
13914 0 : switch (TREE_CODE (_q81))
13915 : {
13916 0 : case CALL_EXPR:
13917 0 : switch (get_call_combined_fn (_q81))
13918 : {
13919 0 : case CFN_BUILT_IN_FLOOR:
13920 0 : if (call_expr_nargs (_q81) == 1)
13921 : {
13922 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13923 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13924 : {
13925 0 : switch (TREE_CODE (_q110))
13926 : {
13927 0 : case SSA_NAME:
13928 0 : {
13929 0 : switch (TREE_CODE (_p1))
13930 : {
13931 0 : case CALL_EXPR:
13932 0 : switch (get_call_combined_fn (_p1))
13933 : {
13934 0 : case CFN_BUILT_IN_CEIL:
13935 0 : if (call_expr_nargs (_p1) == 1)
13936 : {
13937 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13938 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13939 : {
13940 0 : switch (TREE_CODE (_q140))
13941 : {
13942 0 : case SSA_NAME:
13943 0 : {
13944 0 : switch (TREE_CODE (_p2))
13945 : {
13946 0 : case CALL_EXPR:
13947 0 : switch (get_call_combined_fn (_p2))
13948 : {
13949 0 : case CFN_BUILT_IN_FLOOR:
13950 0 : if (call_expr_nargs (_p2) == 1)
13951 : {
13952 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13953 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13954 : {
13955 0 : switch (TREE_CODE (_q170))
13956 : {
13957 0 : case SSA_NAME:
13958 0 : {
13959 0 : {
13960 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13961 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
13962 0 : if (res) return res;
13963 : }
13964 0 : break;
13965 : }
13966 : default:;
13967 : }
13968 : }
13969 : }
13970 : break;
13971 : default:;
13972 : }
13973 : break;
13974 : default:;
13975 : }
13976 : break;
13977 : }
13978 : default:;
13979 : }
13980 : }
13981 : }
13982 : break;
13983 : default:;
13984 : }
13985 : break;
13986 : default:;
13987 : }
13988 : break;
13989 : }
13990 : default:;
13991 : }
13992 : }
13993 : }
13994 : break;
13995 : default:;
13996 : }
13997 : break;
13998 : default:;
13999 : }
14000 : break;
14001 : }
14002 : default:;
14003 : }
14004 : }
14005 : break;
14006 : }
14007 : default:;
14008 : }
14009 : break;
14010 : }
14011 : default:;
14012 : }
14013 : }
14014 : break;
14015 : }
14016 : default:;
14017 : }
14018 : }
14019 : break;
14020 0 : case CFN_CEIL:
14021 0 : if (call_expr_nargs (_q30) == 1)
14022 : {
14023 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14024 0 : switch (TREE_CODE (_q40))
14025 : {
14026 0 : case SSA_NAME:
14027 0 : {
14028 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14029 : {
14030 0 : switch (TREE_CODE (_q31))
14031 : {
14032 0 : case SSA_NAME:
14033 0 : {
14034 0 : switch (TREE_CODE (_q21))
14035 : {
14036 0 : case MINUS_EXPR:
14037 0 : {
14038 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14039 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14040 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14041 : {
14042 0 : switch (TREE_CODE (_q80))
14043 : {
14044 0 : case SSA_NAME:
14045 0 : {
14046 0 : switch (TREE_CODE (_q81))
14047 : {
14048 0 : case CALL_EXPR:
14049 0 : switch (get_call_combined_fn (_q81))
14050 : {
14051 0 : case CFN_FLOOR:
14052 0 : if (call_expr_nargs (_q81) == 1)
14053 : {
14054 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14055 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14056 : {
14057 0 : switch (TREE_CODE (_q110))
14058 : {
14059 0 : case SSA_NAME:
14060 0 : {
14061 0 : switch (TREE_CODE (_p1))
14062 : {
14063 0 : case CALL_EXPR:
14064 0 : switch (get_call_combined_fn (_p1))
14065 : {
14066 0 : case CFN_CEIL:
14067 0 : if (call_expr_nargs (_p1) == 1)
14068 : {
14069 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14070 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14071 : {
14072 0 : switch (TREE_CODE (_q140))
14073 : {
14074 0 : case SSA_NAME:
14075 0 : {
14076 0 : switch (TREE_CODE (_p2))
14077 : {
14078 0 : case CALL_EXPR:
14079 0 : switch (get_call_combined_fn (_p2))
14080 : {
14081 0 : case CFN_FLOOR:
14082 0 : if (call_expr_nargs (_p2) == 1)
14083 : {
14084 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14085 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14086 : {
14087 0 : switch (TREE_CODE (_q170))
14088 : {
14089 0 : case SSA_NAME:
14090 0 : {
14091 0 : {
14092 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14093 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
14094 0 : if (res) return res;
14095 : }
14096 0 : break;
14097 : }
14098 : default:;
14099 : }
14100 : }
14101 : }
14102 : break;
14103 : default:;
14104 : }
14105 : break;
14106 : default:;
14107 : }
14108 : break;
14109 : }
14110 : default:;
14111 : }
14112 : }
14113 : }
14114 : break;
14115 : default:;
14116 : }
14117 : break;
14118 : default:;
14119 : }
14120 : break;
14121 : }
14122 : default:;
14123 : }
14124 : }
14125 : }
14126 : break;
14127 : default:;
14128 : }
14129 : break;
14130 : default:;
14131 : }
14132 : break;
14133 : }
14134 : default:;
14135 : }
14136 : }
14137 : break;
14138 : }
14139 : default:;
14140 : }
14141 : break;
14142 : }
14143 : default:;
14144 : }
14145 : }
14146 : break;
14147 : }
14148 : default:;
14149 : }
14150 : }
14151 : break;
14152 0 : case CFN_BUILT_IN_CEILF:
14153 0 : if (call_expr_nargs (_q30) == 1)
14154 : {
14155 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14156 0 : switch (TREE_CODE (_q40))
14157 : {
14158 0 : case SSA_NAME:
14159 0 : {
14160 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14161 : {
14162 0 : switch (TREE_CODE (_q31))
14163 : {
14164 0 : case SSA_NAME:
14165 0 : {
14166 0 : switch (TREE_CODE (_q21))
14167 : {
14168 0 : case MINUS_EXPR:
14169 0 : {
14170 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14171 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14172 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14173 : {
14174 0 : switch (TREE_CODE (_q80))
14175 : {
14176 0 : case SSA_NAME:
14177 0 : {
14178 0 : switch (TREE_CODE (_q81))
14179 : {
14180 0 : case CALL_EXPR:
14181 0 : switch (get_call_combined_fn (_q81))
14182 : {
14183 0 : case CFN_BUILT_IN_FLOORF:
14184 0 : if (call_expr_nargs (_q81) == 1)
14185 : {
14186 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14187 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14188 : {
14189 0 : switch (TREE_CODE (_q110))
14190 : {
14191 0 : case SSA_NAME:
14192 0 : {
14193 0 : switch (TREE_CODE (_p1))
14194 : {
14195 0 : case CALL_EXPR:
14196 0 : switch (get_call_combined_fn (_p1))
14197 : {
14198 0 : case CFN_BUILT_IN_CEILF:
14199 0 : if (call_expr_nargs (_p1) == 1)
14200 : {
14201 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14202 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14203 : {
14204 0 : switch (TREE_CODE (_q140))
14205 : {
14206 0 : case SSA_NAME:
14207 0 : {
14208 0 : switch (TREE_CODE (_p2))
14209 : {
14210 0 : case CALL_EXPR:
14211 0 : switch (get_call_combined_fn (_p2))
14212 : {
14213 0 : case CFN_BUILT_IN_FLOORF:
14214 0 : if (call_expr_nargs (_p2) == 1)
14215 : {
14216 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14217 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14218 : {
14219 0 : switch (TREE_CODE (_q170))
14220 : {
14221 0 : case SSA_NAME:
14222 0 : {
14223 0 : {
14224 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14225 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
14226 0 : if (res) return res;
14227 : }
14228 0 : break;
14229 : }
14230 : default:;
14231 : }
14232 : }
14233 : }
14234 : break;
14235 : default:;
14236 : }
14237 : break;
14238 : default:;
14239 : }
14240 : break;
14241 : }
14242 : default:;
14243 : }
14244 : }
14245 : }
14246 : break;
14247 : default:;
14248 : }
14249 : break;
14250 : default:;
14251 : }
14252 : break;
14253 : }
14254 : default:;
14255 : }
14256 : }
14257 : }
14258 : break;
14259 : default:;
14260 : }
14261 : break;
14262 : default:;
14263 : }
14264 : break;
14265 : }
14266 : default:;
14267 : }
14268 : }
14269 : break;
14270 : }
14271 : default:;
14272 : }
14273 : break;
14274 : }
14275 : default:;
14276 : }
14277 : }
14278 : break;
14279 : }
14280 : default:;
14281 : }
14282 : }
14283 : break;
14284 0 : case CFN_BUILT_IN_CEILL:
14285 0 : if (call_expr_nargs (_q30) == 1)
14286 : {
14287 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14288 0 : switch (TREE_CODE (_q40))
14289 : {
14290 0 : case SSA_NAME:
14291 0 : {
14292 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14293 : {
14294 0 : switch (TREE_CODE (_q31))
14295 : {
14296 0 : case SSA_NAME:
14297 0 : {
14298 0 : switch (TREE_CODE (_q21))
14299 : {
14300 0 : case MINUS_EXPR:
14301 0 : {
14302 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14303 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14304 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14305 : {
14306 0 : switch (TREE_CODE (_q80))
14307 : {
14308 0 : case SSA_NAME:
14309 0 : {
14310 0 : switch (TREE_CODE (_q81))
14311 : {
14312 0 : case CALL_EXPR:
14313 0 : switch (get_call_combined_fn (_q81))
14314 : {
14315 0 : case CFN_BUILT_IN_FLOORL:
14316 0 : if (call_expr_nargs (_q81) == 1)
14317 : {
14318 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14319 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14320 : {
14321 0 : switch (TREE_CODE (_q110))
14322 : {
14323 0 : case SSA_NAME:
14324 0 : {
14325 0 : switch (TREE_CODE (_p1))
14326 : {
14327 0 : case CALL_EXPR:
14328 0 : switch (get_call_combined_fn (_p1))
14329 : {
14330 0 : case CFN_BUILT_IN_CEILL:
14331 0 : if (call_expr_nargs (_p1) == 1)
14332 : {
14333 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14334 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14335 : {
14336 0 : switch (TREE_CODE (_q140))
14337 : {
14338 0 : case SSA_NAME:
14339 0 : {
14340 0 : switch (TREE_CODE (_p2))
14341 : {
14342 0 : case CALL_EXPR:
14343 0 : switch (get_call_combined_fn (_p2))
14344 : {
14345 0 : case CFN_BUILT_IN_FLOORL:
14346 0 : if (call_expr_nargs (_p2) == 1)
14347 : {
14348 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14349 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14350 : {
14351 0 : switch (TREE_CODE (_q170))
14352 : {
14353 0 : case SSA_NAME:
14354 0 : {
14355 0 : {
14356 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14357 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
14358 0 : if (res) return res;
14359 : }
14360 0 : break;
14361 : }
14362 : default:;
14363 : }
14364 : }
14365 : }
14366 : break;
14367 : default:;
14368 : }
14369 : break;
14370 : default:;
14371 : }
14372 : break;
14373 : }
14374 : default:;
14375 : }
14376 : }
14377 : }
14378 : break;
14379 : default:;
14380 : }
14381 : break;
14382 : default:;
14383 : }
14384 : break;
14385 : }
14386 : default:;
14387 : }
14388 : }
14389 : }
14390 : break;
14391 : default:;
14392 : }
14393 : break;
14394 : default:;
14395 : }
14396 : break;
14397 : }
14398 : default:;
14399 : }
14400 : }
14401 : break;
14402 : }
14403 : default:;
14404 : }
14405 : break;
14406 : }
14407 : default:;
14408 : }
14409 : }
14410 : break;
14411 : }
14412 : default:;
14413 : }
14414 : }
14415 : break;
14416 : default:;
14417 : }
14418 : break;
14419 : default:;
14420 : }
14421 : break;
14422 : }
14423 1355651 : default:;
14424 : }
14425 1355651 : if (integer_zerop (_q21))
14426 : {
14427 121807 : switch (TREE_CODE (_p1))
14428 : {
14429 248 : case NEGATE_EXPR:
14430 248 : {
14431 248 : tree _q50 = TREE_OPERAND (_p1, 0);
14432 248 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14433 : {
14434 70 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
14435 : {
14436 70 : if (integer_zerop (_p2))
14437 : {
14438 70 : {
14439 70 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
14440 70 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
14441 : )
14442 : {
14443 68 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1799;
14444 68 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1799;
14445 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1799;
14446 68 : {
14447 68 : tree res_op0;
14448 68 : res_op0 = captures[2];
14449 68 : tree res_op1;
14450 68 : res_op1 = captures[1];
14451 68 : tree _r;
14452 68 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
14453 68 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
14454 68 : return _r;
14455 : }
14456 2 : next_after_fail1799:;
14457 : }
14458 : }
14459 : }
14460 : }
14461 : }
14462 : break;
14463 : }
14464 : default:;
14465 : }
14466 : }
14467 1355583 : switch (TREE_CODE (_q20))
14468 : {
14469 139884 : CASE_CONVERT:
14470 139884 : {
14471 139884 : tree _q30 = TREE_OPERAND (_q20, 0);
14472 139884 : switch (TREE_CODE (_q21))
14473 : {
14474 104655 : case INTEGER_CST:
14475 104655 : {
14476 104655 : switch (TREE_CODE (_p1))
14477 : {
14478 501 : CASE_CONVERT:
14479 501 : {
14480 501 : tree _q60 = TREE_OPERAND (_p1, 0);
14481 501 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14482 : {
14483 8 : switch (TREE_CODE (_p2))
14484 : {
14485 8 : case INTEGER_CST:
14486 8 : {
14487 8 : {
14488 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14489 8 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14490 8 : if (res) return res;
14491 : }
14492 8 : break;
14493 : }
14494 : default:;
14495 : }
14496 : }
14497 : break;
14498 : }
14499 104655 : default:;
14500 : }
14501 104655 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
14502 : {
14503 21 : switch (TREE_CODE (_p2))
14504 : {
14505 21 : case INTEGER_CST:
14506 21 : {
14507 21 : {
14508 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14509 21 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14510 21 : if (res) return res;
14511 : }
14512 21 : break;
14513 : }
14514 : default:;
14515 : }
14516 : }
14517 104655 : switch (TREE_CODE (_p1))
14518 : {
14519 130 : case PLUS_EXPR:
14520 130 : {
14521 130 : tree _q60 = TREE_OPERAND (_p1, 0);
14522 130 : tree _q61 = TREE_OPERAND (_p1, 1);
14523 130 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14524 : {
14525 6 : switch (TREE_CODE (_q61))
14526 : {
14527 6 : case INTEGER_CST:
14528 6 : {
14529 6 : switch (TREE_CODE (_p2))
14530 : {
14531 6 : case INTEGER_CST:
14532 6 : {
14533 6 : {
14534 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14535 6 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
14536 6 : if (res) return res;
14537 : }
14538 6 : break;
14539 : }
14540 : default:;
14541 : }
14542 : break;
14543 : }
14544 : default:;
14545 : }
14546 : }
14547 : break;
14548 : }
14549 724 : case MINUS_EXPR:
14550 724 : {
14551 724 : tree _q60 = TREE_OPERAND (_p1, 0);
14552 724 : tree _q61 = TREE_OPERAND (_p1, 1);
14553 724 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14554 : {
14555 0 : switch (TREE_CODE (_q61))
14556 : {
14557 0 : case INTEGER_CST:
14558 0 : {
14559 0 : switch (TREE_CODE (_p2))
14560 : {
14561 0 : case INTEGER_CST:
14562 0 : {
14563 0 : {
14564 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14565 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
14566 0 : if (res) return res;
14567 : }
14568 0 : break;
14569 : }
14570 : default:;
14571 : }
14572 : break;
14573 : }
14574 : default:;
14575 : }
14576 : }
14577 : break;
14578 : }
14579 : default:;
14580 : }
14581 : break;
14582 : }
14583 : default:;
14584 : }
14585 : break;
14586 : }
14587 1355583 : default:;
14588 : }
14589 1355583 : switch (TREE_CODE (_q21))
14590 : {
14591 967942 : case INTEGER_CST:
14592 967942 : {
14593 967942 : switch (TREE_CODE (_p1))
14594 : {
14595 22898 : CASE_CONVERT:
14596 22898 : {
14597 22898 : tree _q50 = TREE_OPERAND (_p1, 0);
14598 22898 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14599 : {
14600 228 : switch (TREE_CODE (_p2))
14601 : {
14602 210 : case INTEGER_CST:
14603 210 : {
14604 210 : {
14605 210 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14606 210 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14607 210 : if (res) return res;
14608 : }
14609 110 : break;
14610 : }
14611 : default:;
14612 : }
14613 : }
14614 : break;
14615 : }
14616 967842 : default:;
14617 : }
14618 967842 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14619 : {
14620 258 : switch (TREE_CODE (_p2))
14621 : {
14622 221 : case INTEGER_CST:
14623 221 : {
14624 221 : {
14625 221 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14626 221 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14627 221 : if (res) return res;
14628 : }
14629 79 : break;
14630 : }
14631 : default:;
14632 : }
14633 : }
14634 967700 : switch (TREE_CODE (_p1))
14635 : {
14636 3072 : case PLUS_EXPR:
14637 3072 : {
14638 3072 : tree _q50 = TREE_OPERAND (_p1, 0);
14639 3072 : tree _q51 = TREE_OPERAND (_p1, 1);
14640 3072 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14641 : {
14642 181 : switch (TREE_CODE (_q51))
14643 : {
14644 181 : case INTEGER_CST:
14645 181 : {
14646 181 : switch (TREE_CODE (_p2))
14647 : {
14648 170 : case INTEGER_CST:
14649 170 : {
14650 170 : {
14651 170 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
14652 170 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
14653 170 : if (res) return res;
14654 : }
14655 170 : break;
14656 : }
14657 : default:;
14658 : }
14659 : break;
14660 : }
14661 : default:;
14662 : }
14663 : }
14664 : break;
14665 : }
14666 8129 : case MINUS_EXPR:
14667 8129 : {
14668 8129 : tree _q50 = TREE_OPERAND (_p1, 0);
14669 8129 : tree _q51 = TREE_OPERAND (_p1, 1);
14670 8129 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14671 : {
14672 0 : switch (TREE_CODE (_q51))
14673 : {
14674 0 : case INTEGER_CST:
14675 0 : {
14676 0 : switch (TREE_CODE (_p2))
14677 : {
14678 0 : case INTEGER_CST:
14679 0 : {
14680 0 : {
14681 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
14682 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
14683 0 : if (res) return res;
14684 : }
14685 0 : break;
14686 : }
14687 : default:;
14688 : }
14689 : break;
14690 : }
14691 : default:;
14692 : }
14693 : }
14694 : break;
14695 : }
14696 : default:;
14697 : }
14698 : break;
14699 : }
14700 1355341 : default:;
14701 : }
14702 1355341 : switch (TREE_CODE (_p1))
14703 : {
14704 37 : case MIN_EXPR:
14705 37 : {
14706 37 : tree _q50 = TREE_OPERAND (_p1, 0);
14707 37 : tree _q51 = TREE_OPERAND (_p1, 1);
14708 37 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14709 : {
14710 1 : switch (TREE_CODE (_p2))
14711 : {
14712 0 : case MIN_EXPR:
14713 0 : {
14714 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14715 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14716 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14717 : {
14718 0 : {
14719 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14720 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14721 0 : if (res) return res;
14722 : }
14723 : }
14724 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14725 : {
14726 0 : {
14727 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14728 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14729 0 : if (res) return res;
14730 : }
14731 : }
14732 : break;
14733 : }
14734 : default:;
14735 : }
14736 : }
14737 37 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14738 : {
14739 1 : switch (TREE_CODE (_p2))
14740 : {
14741 0 : case MIN_EXPR:
14742 0 : {
14743 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14744 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14745 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14746 : {
14747 0 : {
14748 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14749 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14750 0 : if (res) return res;
14751 : }
14752 : }
14753 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14754 : {
14755 0 : {
14756 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14757 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14758 0 : if (res) return res;
14759 : }
14760 : }
14761 : break;
14762 : }
14763 : default:;
14764 : }
14765 : }
14766 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14767 : {
14768 1 : switch (TREE_CODE (_p2))
14769 : {
14770 0 : case MIN_EXPR:
14771 0 : {
14772 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14773 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14774 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14775 : {
14776 0 : {
14777 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14778 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14779 0 : if (res) return res;
14780 : }
14781 : }
14782 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14783 : {
14784 0 : {
14785 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14786 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14787 0 : if (res) return res;
14788 : }
14789 : }
14790 : break;
14791 : }
14792 1 : default:;
14793 : }
14794 1 : {
14795 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
14796 1 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14797 1 : if (res) return res;
14798 : }
14799 : }
14800 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14801 : {
14802 1 : switch (TREE_CODE (_p2))
14803 : {
14804 0 : case MIN_EXPR:
14805 0 : {
14806 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14807 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14808 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14809 : {
14810 0 : {
14811 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14812 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14813 0 : if (res) return res;
14814 : }
14815 : }
14816 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14817 : {
14818 0 : {
14819 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14820 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14821 0 : if (res) return res;
14822 : }
14823 : }
14824 : break;
14825 : }
14826 1 : default:;
14827 : }
14828 1 : {
14829 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
14830 1 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14831 1 : if (res) return res;
14832 : }
14833 : }
14834 : break;
14835 : }
14836 12 : case MAX_EXPR:
14837 12 : {
14838 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14839 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14840 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14841 : {
14842 0 : switch (TREE_CODE (_p2))
14843 : {
14844 0 : case MAX_EXPR:
14845 0 : {
14846 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14847 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14848 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14849 : {
14850 0 : {
14851 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14852 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14853 0 : if (res) return res;
14854 : }
14855 : }
14856 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14857 : {
14858 0 : {
14859 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14860 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14861 0 : if (res) return res;
14862 : }
14863 : }
14864 : break;
14865 : }
14866 0 : default:;
14867 : }
14868 0 : {
14869 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
14870 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14871 0 : if (res) return res;
14872 : }
14873 : }
14874 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14875 : {
14876 0 : switch (TREE_CODE (_p2))
14877 : {
14878 0 : case MAX_EXPR:
14879 0 : {
14880 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14881 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14882 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14883 : {
14884 0 : {
14885 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14886 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14887 0 : if (res) return res;
14888 : }
14889 : }
14890 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14891 : {
14892 0 : {
14893 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14894 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14895 0 : if (res) return res;
14896 : }
14897 : }
14898 : break;
14899 : }
14900 : default:;
14901 : }
14902 : }
14903 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14904 : {
14905 0 : switch (TREE_CODE (_p2))
14906 : {
14907 0 : case MAX_EXPR:
14908 0 : {
14909 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14910 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14911 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14912 : {
14913 0 : {
14914 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14915 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14916 0 : if (res) return res;
14917 : }
14918 : }
14919 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14920 : {
14921 0 : {
14922 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14923 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14924 0 : if (res) return res;
14925 : }
14926 : }
14927 : break;
14928 : }
14929 : default:;
14930 : }
14931 : }
14932 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14933 : {
14934 0 : switch (TREE_CODE (_p2))
14935 : {
14936 0 : case MAX_EXPR:
14937 0 : {
14938 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14939 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14940 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14941 : {
14942 0 : {
14943 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14944 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14945 0 : if (res) return res;
14946 : }
14947 : }
14948 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14949 : {
14950 0 : {
14951 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14952 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14953 0 : if (res) return res;
14954 : }
14955 : }
14956 : break;
14957 : }
14958 : default:;
14959 : }
14960 : }
14961 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14962 : {
14963 0 : {
14964 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
14965 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14966 0 : if (res) return res;
14967 : }
14968 : }
14969 : break;
14970 : }
14971 1355339 : default:;
14972 : }
14973 1355339 : if (integer_zerop (_q20))
14974 : {
14975 2 : {
14976 2 : tree _q21_pops[1];
14977 2 : if (tree_nop_convert (_q21, _q21_pops))
14978 : {
14979 0 : tree _q40 = _q21_pops[0];
14980 0 : switch (TREE_CODE (_p1))
14981 : {
14982 0 : case MAX_EXPR:
14983 0 : {
14984 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14985 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14986 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14987 : {
14988 0 : switch (TREE_CODE (_q61))
14989 : {
14990 0 : case INTEGER_CST:
14991 0 : {
14992 0 : switch (TREE_CODE (_p2))
14993 : {
14994 0 : case INTEGER_CST:
14995 0 : {
14996 0 : {
14997 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
14998 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14999 0 : if (res) return res;
15000 : }
15001 0 : break;
15002 : }
15003 : default:;
15004 : }
15005 : break;
15006 : }
15007 : default:;
15008 : }
15009 : }
15010 : break;
15011 : }
15012 : default:;
15013 : }
15014 : }
15015 : }
15016 : }
15017 1355339 : if (tree_expr_nonnegative_p (_q20))
15018 : {
15019 859633 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
15020 : {
15021 11 : switch (TREE_CODE (_p2))
15022 : {
15023 0 : case ABS_EXPR:
15024 0 : {
15025 0 : tree _q60 = TREE_OPERAND (_p2, 0);
15026 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
15027 : {
15028 0 : {
15029 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
15030 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
15031 0 : if (res) return res;
15032 : }
15033 : }
15034 : break;
15035 : }
15036 : default:;
15037 : }
15038 : }
15039 : }
15040 : break;
15041 : }
15042 3147161 : case NE_EXPR:
15043 3147161 : {
15044 3147161 : tree _q20 = TREE_OPERAND (_p0, 0);
15045 3147161 : tree _q21 = TREE_OPERAND (_p0, 1);
15046 3147161 : if (integer_zerop (_q21))
15047 : {
15048 1941016 : switch (TREE_CODE (_p1))
15049 : {
15050 93485 : case PLUS_EXPR:
15051 93485 : {
15052 93485 : tree _q50 = TREE_OPERAND (_p1, 0);
15053 93485 : tree _q51 = TREE_OPERAND (_p1, 1);
15054 93485 : {
15055 93485 : tree _q50_pops[1];
15056 93485 : if (tree_nop_convert (_q50, _q50_pops))
15057 : {
15058 11495 : tree _q60 = _q50_pops[0];
15059 11495 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15060 : {
15061 1635 : if (integer_all_onesp (_q51))
15062 : {
15063 1635 : if (integer_zerop (_p2))
15064 : {
15065 1629 : {
15066 1629 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
15067 1629 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures);
15068 1629 : if (res) return res;
15069 : }
15070 : }
15071 : }
15072 : }
15073 : }
15074 : }
15075 91856 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15076 : {
15077 2007 : if (integer_all_onesp (_q51))
15078 : {
15079 1971 : if (integer_zerop (_p2))
15080 : {
15081 1963 : {
15082 1963 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
15083 1963 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures);
15084 1963 : if (res) return res;
15085 : }
15086 : }
15087 : }
15088 : }
15089 : break;
15090 : }
15091 1937424 : default:;
15092 : }
15093 1937424 : {
15094 1937424 : tree _p1_pops[1];
15095 1937424 : if (tree_nop_convert (_p1, _p1_pops))
15096 : {
15097 152474 : tree _q50 = _p1_pops[0];
15098 152474 : switch (TREE_CODE (_q50))
15099 : {
15100 215 : case PLUS_EXPR:
15101 215 : {
15102 215 : tree _q60 = TREE_OPERAND (_q50, 0);
15103 215 : tree _q61 = TREE_OPERAND (_q50, 1);
15104 215 : {
15105 215 : tree _q60_pops[1];
15106 215 : if (tree_nop_convert (_q60, _q60_pops))
15107 : {
15108 52 : tree _q70 = _q60_pops[0];
15109 52 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15110 : {
15111 2 : if (integer_all_onesp (_q61))
15112 : {
15113 2 : if (integer_zerop (_p2))
15114 : {
15115 2 : {
15116 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
15117 2 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures);
15118 2 : if (res) return res;
15119 : }
15120 : }
15121 : }
15122 : }
15123 : }
15124 : }
15125 213 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15126 : {
15127 16 : if (integer_all_onesp (_q61))
15128 : {
15129 0 : if (integer_zerop (_p2))
15130 : {
15131 0 : {
15132 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
15133 0 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures);
15134 0 : if (res) return res;
15135 : }
15136 : }
15137 : }
15138 : }
15139 : break;
15140 : }
15141 : default:;
15142 : }
15143 : }
15144 : }
15145 : }
15146 3143567 : if (tree_zero_one_valued_p (_q20))
15147 : {
15148 156677 : if (integer_zerop (_q21))
15149 : {
15150 154914 : switch (TREE_CODE (_p1))
15151 : {
15152 5 : case BIT_XOR_EXPR:
15153 5 : {
15154 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15155 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15156 5 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15157 : {
15158 1 : {
15159 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15160 1 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
15161 1 : if (res) return res;
15162 : }
15163 : }
15164 4 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15165 : {
15166 4 : {
15167 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15168 4 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
15169 4 : if (res) return res;
15170 : }
15171 : }
15172 : break;
15173 : }
15174 1 : case BIT_IOR_EXPR:
15175 1 : {
15176 1 : tree _q50 = TREE_OPERAND (_p1, 0);
15177 1 : tree _q51 = TREE_OPERAND (_p1, 1);
15178 1 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15179 : {
15180 1 : {
15181 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15182 1 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15183 1 : if (res) return res;
15184 : }
15185 : }
15186 0 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15187 : {
15188 0 : {
15189 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15190 0 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15191 0 : if (res) return res;
15192 : }
15193 : }
15194 : break;
15195 : }
15196 110 : case PLUS_EXPR:
15197 110 : {
15198 110 : tree _q50 = TREE_OPERAND (_p1, 0);
15199 110 : tree _q51 = TREE_OPERAND (_p1, 1);
15200 110 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15201 : {
15202 8 : {
15203 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15204 8 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15205 8 : if (res) return res;
15206 : }
15207 : }
15208 109 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15209 : {
15210 1 : {
15211 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15212 1 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15213 1 : if (res) return res;
15214 : }
15215 : }
15216 : break;
15217 : }
15218 : default:;
15219 : }
15220 : }
15221 : }
15222 3143559 : if (integer_zerop (_q21))
15223 : {
15224 1937414 : switch (TREE_CODE (_p1))
15225 : {
15226 89 : case TRUNC_DIV_EXPR:
15227 89 : {
15228 89 : tree _q50 = TREE_OPERAND (_p1, 0);
15229 89 : tree _q51 = TREE_OPERAND (_p1, 1);
15230 89 : if (integer_zerop (_p2))
15231 : {
15232 51 : {
15233 51 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15234 51 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
15235 51 : if (res) return res;
15236 : }
15237 : }
15238 : break;
15239 : }
15240 0 : case CEIL_DIV_EXPR:
15241 0 : {
15242 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15243 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15244 0 : if (integer_zerop (_p2))
15245 : {
15246 0 : {
15247 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15248 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
15249 0 : if (res) return res;
15250 : }
15251 : }
15252 : break;
15253 : }
15254 0 : case FLOOR_DIV_EXPR:
15255 0 : {
15256 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15257 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15258 0 : if (integer_zerop (_p2))
15259 : {
15260 0 : {
15261 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15262 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
15263 0 : if (res) return res;
15264 : }
15265 : }
15266 : break;
15267 : }
15268 0 : case ROUND_DIV_EXPR:
15269 0 : {
15270 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15271 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15272 0 : if (integer_zerop (_p2))
15273 : {
15274 0 : {
15275 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15276 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
15277 0 : if (res) return res;
15278 : }
15279 : }
15280 : break;
15281 : }
15282 31 : case EXACT_DIV_EXPR:
15283 31 : {
15284 31 : tree _q50 = TREE_OPERAND (_p1, 0);
15285 31 : tree _q51 = TREE_OPERAND (_p1, 1);
15286 31 : if (integer_zerop (_p2))
15287 : {
15288 0 : {
15289 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15290 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
15291 0 : if (res) return res;
15292 : }
15293 : }
15294 : break;
15295 : }
15296 595 : case MULT_EXPR:
15297 595 : {
15298 595 : tree _q50 = TREE_OPERAND (_p1, 0);
15299 595 : tree _q51 = TREE_OPERAND (_p1, 1);
15300 595 : if (integer_zerop (_p2))
15301 : {
15302 40 : {
15303 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15304 40 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
15305 40 : if (res) return res;
15306 : }
15307 40 : {
15308 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
15309 40 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
15310 40 : if (res) return res;
15311 : }
15312 : }
15313 : break;
15314 : }
15315 268 : case BIT_AND_EXPR:
15316 268 : {
15317 268 : tree _q50 = TREE_OPERAND (_p1, 0);
15318 268 : tree _q51 = TREE_OPERAND (_p1, 1);
15319 268 : if (integer_zerop (_p2))
15320 : {
15321 42 : {
15322 42 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15323 42 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15324 42 : if (res) return res;
15325 : }
15326 42 : {
15327 42 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
15328 42 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15329 42 : if (res) return res;
15330 : }
15331 : }
15332 : break;
15333 : }
15334 : default:;
15335 : }
15336 : }
15337 3143557 : switch (TREE_CODE (_q20))
15338 : {
15339 273958 : case BIT_AND_EXPR:
15340 273958 : {
15341 273958 : tree _q30 = TREE_OPERAND (_q20, 0);
15342 273958 : tree _q31 = TREE_OPERAND (_q20, 1);
15343 273958 : switch (TREE_CODE (_q31))
15344 : {
15345 203431 : case INTEGER_CST:
15346 203431 : {
15347 203431 : if (integer_zerop (_q21))
15348 : {
15349 203418 : switch (TREE_CODE (_p1))
15350 : {
15351 139 : case PLUS_EXPR:
15352 139 : {
15353 139 : tree _q70 = TREE_OPERAND (_p1, 0);
15354 139 : tree _q71 = TREE_OPERAND (_p1, 1);
15355 139 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
15356 : {
15357 18 : switch (TREE_CODE (_q71))
15358 : {
15359 18 : case INTEGER_CST:
15360 18 : {
15361 18 : switch (TREE_CODE (_p2))
15362 : {
15363 18 : case BIT_IOR_EXPR:
15364 18 : {
15365 18 : tree _q100 = TREE_OPERAND (_p2, 0);
15366 18 : tree _q101 = TREE_OPERAND (_p2, 1);
15367 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
15368 : {
15369 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
15370 : {
15371 18 : {
15372 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
15373 18 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15374 18 : if (res) return res;
15375 : }
15376 : }
15377 : }
15378 : break;
15379 : }
15380 : default:;
15381 : }
15382 : break;
15383 : }
15384 : default:;
15385 : }
15386 : }
15387 : break;
15388 : }
15389 34 : case BIT_AND_EXPR:
15390 34 : {
15391 34 : tree _q70 = TREE_OPERAND (_p1, 0);
15392 34 : tree _q71 = TREE_OPERAND (_p1, 1);
15393 34 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
15394 : {
15395 18 : switch (TREE_CODE (_q71))
15396 : {
15397 18 : case INTEGER_CST:
15398 18 : {
15399 18 : switch (TREE_CODE (_p2))
15400 : {
15401 18 : case BIT_IOR_EXPR:
15402 18 : {
15403 18 : tree _q100 = TREE_OPERAND (_p2, 0);
15404 18 : tree _q101 = TREE_OPERAND (_p2, 1);
15405 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
15406 : {
15407 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
15408 : {
15409 18 : {
15410 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
15411 18 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15412 18 : if (res) return res;
15413 : }
15414 : }
15415 : }
15416 : break;
15417 : }
15418 : default:;
15419 : }
15420 : break;
15421 : }
15422 : default:;
15423 : }
15424 : }
15425 : break;
15426 : }
15427 : default:;
15428 : }
15429 : }
15430 : break;
15431 : }
15432 : default:;
15433 : }
15434 : break;
15435 : }
15436 353900 : CASE_CONVERT:
15437 353900 : {
15438 353900 : tree _q30 = TREE_OPERAND (_q20, 0);
15439 353900 : switch (TREE_CODE (_q21))
15440 : {
15441 292748 : case INTEGER_CST:
15442 292748 : {
15443 292748 : switch (TREE_CODE (_p1))
15444 : {
15445 95515 : CASE_CONVERT:
15446 95515 : {
15447 95515 : tree _q60 = TREE_OPERAND (_p1, 0);
15448 95515 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15449 : {
15450 57 : switch (TREE_CODE (_p2))
15451 : {
15452 9 : case INTEGER_CST:
15453 9 : {
15454 9 : {
15455 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15456 9 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15457 9 : if (res) return res;
15458 : }
15459 9 : break;
15460 : }
15461 : default:;
15462 : }
15463 : }
15464 : break;
15465 : }
15466 292748 : default:;
15467 : }
15468 292748 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
15469 : {
15470 48 : switch (TREE_CODE (_p2))
15471 : {
15472 0 : case INTEGER_CST:
15473 0 : {
15474 0 : {
15475 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15476 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15477 0 : if (res) return res;
15478 : }
15479 0 : break;
15480 : }
15481 : default:;
15482 : }
15483 : }
15484 : break;
15485 : }
15486 : default:;
15487 : }
15488 : break;
15489 : }
15490 3143533 : default:;
15491 : }
15492 3143533 : switch (TREE_CODE (_q21))
15493 : {
15494 2233026 : case INTEGER_CST:
15495 2233026 : {
15496 2233026 : switch (TREE_CODE (_p1))
15497 : {
15498 389937 : CASE_CONVERT:
15499 389937 : {
15500 389937 : tree _q50 = TREE_OPERAND (_p1, 0);
15501 389937 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15502 : {
15503 71425 : switch (TREE_CODE (_p2))
15504 : {
15505 70230 : case INTEGER_CST:
15506 70230 : {
15507 70230 : {
15508 70230 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15509 70230 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15510 70230 : if (res) return res;
15511 : }
15512 70230 : break;
15513 : }
15514 : default:;
15515 : }
15516 : }
15517 : break;
15518 : }
15519 2233026 : default:;
15520 : }
15521 2233026 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
15522 : {
15523 52592 : switch (TREE_CODE (_p2))
15524 : {
15525 50112 : case INTEGER_CST:
15526 50112 : {
15527 50112 : {
15528 50112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15529 50112 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15530 50112 : if (res) return res;
15531 : }
15532 50112 : break;
15533 : }
15534 : default:;
15535 : }
15536 : }
15537 : break;
15538 : }
15539 3143533 : default:;
15540 : }
15541 3143533 : switch (TREE_CODE (_p1))
15542 : {
15543 12368 : case MINUS_EXPR:
15544 12368 : {
15545 12368 : tree _q50 = TREE_OPERAND (_p1, 0);
15546 12368 : tree _q51 = TREE_OPERAND (_p1, 1);
15547 12368 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15548 : {
15549 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15550 : {
15551 0 : if (integer_zerop (_p2))
15552 : {
15553 0 : {
15554 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15555 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures);
15556 0 : if (res) return res;
15557 : }
15558 : }
15559 : }
15560 : }
15561 12368 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15562 : {
15563 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15564 : {
15565 19 : if (integer_zerop (_p2))
15566 : {
15567 0 : {
15568 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15569 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures);
15570 0 : if (res) return res;
15571 : }
15572 : }
15573 : }
15574 : }
15575 : break;
15576 : }
15577 14 : case BIT_XOR_EXPR:
15578 14 : {
15579 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15580 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15581 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15582 : {
15583 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15584 : {
15585 7 : if (integer_zerop (_p2))
15586 : {
15587 0 : {
15588 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15589 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
15590 0 : if (res) return res;
15591 : }
15592 : }
15593 : }
15594 : }
15595 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15596 : {
15597 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15598 : {
15599 0 : if (integer_zerop (_p2))
15600 : {
15601 0 : {
15602 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15603 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
15604 0 : if (res) return res;
15605 : }
15606 : }
15607 : }
15608 : }
15609 : break;
15610 : }
15611 255 : case BIT_AND_EXPR:
15612 255 : {
15613 255 : tree _q50 = TREE_OPERAND (_p1, 0);
15614 255 : tree _q51 = TREE_OPERAND (_p1, 1);
15615 255 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15616 : {
15617 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15618 : {
15619 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15620 : {
15621 0 : {
15622 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15623 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15624 0 : if (res) return res;
15625 : }
15626 : }
15627 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15628 : {
15629 0 : {
15630 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15631 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15632 0 : if (res) return res;
15633 : }
15634 : }
15635 : }
15636 : }
15637 255 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15638 : {
15639 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15640 : {
15641 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15642 : {
15643 0 : {
15644 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15645 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15646 0 : if (res) return res;
15647 : }
15648 : }
15649 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15650 : {
15651 0 : {
15652 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15653 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15654 0 : if (res) return res;
15655 : }
15656 : }
15657 : }
15658 : }
15659 : break;
15660 : }
15661 9237 : case BIT_IOR_EXPR:
15662 9237 : {
15663 9237 : tree _q50 = TREE_OPERAND (_p1, 0);
15664 9237 : tree _q51 = TREE_OPERAND (_p1, 1);
15665 9237 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15666 : {
15667 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15668 : {
15669 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15670 : {
15671 0 : {
15672 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15673 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15674 0 : if (res) return res;
15675 : }
15676 : }
15677 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15678 : {
15679 0 : {
15680 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15681 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15682 0 : if (res) return res;
15683 : }
15684 : }
15685 : }
15686 : }
15687 9237 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15688 : {
15689 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15690 : {
15691 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15692 : {
15693 0 : {
15694 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15695 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15696 0 : if (res) return res;
15697 : }
15698 : }
15699 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15700 : {
15701 0 : {
15702 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15703 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15704 0 : if (res) return res;
15705 : }
15706 : }
15707 : }
15708 : }
15709 : break;
15710 : }
15711 0 : case MIN_EXPR:
15712 0 : {
15713 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15714 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15715 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15716 : {
15717 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15718 : {
15719 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15720 : {
15721 0 : {
15722 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15723 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
15724 0 : if (res) return res;
15725 : }
15726 : }
15727 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15728 : {
15729 0 : {
15730 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15731 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
15732 0 : if (res) return res;
15733 : }
15734 : }
15735 : }
15736 0 : switch (TREE_CODE (_p2))
15737 : {
15738 0 : case MIN_EXPR:
15739 0 : {
15740 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15741 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15742 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15743 : {
15744 0 : {
15745 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15746 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15747 0 : if (res) return res;
15748 : }
15749 : }
15750 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15751 : {
15752 0 : {
15753 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15754 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15755 0 : if (res) return res;
15756 : }
15757 : }
15758 : break;
15759 : }
15760 : default:;
15761 : }
15762 : }
15763 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15764 : {
15765 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15766 : {
15767 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15768 : {
15769 0 : {
15770 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15771 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
15772 0 : if (res) return res;
15773 : }
15774 : }
15775 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15776 : {
15777 0 : {
15778 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15779 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
15780 0 : if (res) return res;
15781 : }
15782 : }
15783 : }
15784 0 : switch (TREE_CODE (_p2))
15785 : {
15786 0 : case MIN_EXPR:
15787 0 : {
15788 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15789 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15790 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15791 : {
15792 0 : {
15793 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15794 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15795 0 : if (res) return res;
15796 : }
15797 : }
15798 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15799 : {
15800 0 : {
15801 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15802 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15803 0 : if (res) return res;
15804 : }
15805 : }
15806 : break;
15807 : }
15808 : default:;
15809 : }
15810 : }
15811 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15812 : {
15813 0 : switch (TREE_CODE (_p2))
15814 : {
15815 0 : case MIN_EXPR:
15816 0 : {
15817 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15818 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15819 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15820 : {
15821 0 : {
15822 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15823 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15824 0 : if (res) return res;
15825 : }
15826 : }
15827 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15828 : {
15829 0 : {
15830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15831 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15832 0 : if (res) return res;
15833 : }
15834 : }
15835 : break;
15836 : }
15837 : default:;
15838 : }
15839 : }
15840 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15841 : {
15842 0 : switch (TREE_CODE (_p2))
15843 : {
15844 0 : case MIN_EXPR:
15845 0 : {
15846 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15847 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15848 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15849 : {
15850 0 : {
15851 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15852 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15853 0 : if (res) return res;
15854 : }
15855 : }
15856 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15857 : {
15858 0 : {
15859 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15860 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
15861 0 : if (res) return res;
15862 : }
15863 : }
15864 : break;
15865 : }
15866 : default:;
15867 : }
15868 : }
15869 : break;
15870 : }
15871 0 : case MAX_EXPR:
15872 0 : {
15873 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15874 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15875 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15876 : {
15877 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15878 : {
15879 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15880 : {
15881 0 : {
15882 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15883 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
15884 0 : if (res) return res;
15885 : }
15886 : }
15887 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15888 : {
15889 0 : {
15890 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15891 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
15892 0 : if (res) return res;
15893 : }
15894 : }
15895 : }
15896 0 : switch (TREE_CODE (_p2))
15897 : {
15898 0 : case MAX_EXPR:
15899 0 : {
15900 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15901 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15902 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15903 : {
15904 0 : {
15905 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15906 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15907 0 : if (res) return res;
15908 : }
15909 : }
15910 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15911 : {
15912 0 : {
15913 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15914 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15915 0 : if (res) return res;
15916 : }
15917 : }
15918 : break;
15919 : }
15920 : default:;
15921 : }
15922 : }
15923 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15924 : {
15925 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15926 : {
15927 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
15928 : {
15929 0 : {
15930 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15931 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
15932 0 : if (res) return res;
15933 : }
15934 : }
15935 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15936 : {
15937 0 : {
15938 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15939 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
15940 0 : if (res) return res;
15941 : }
15942 : }
15943 : }
15944 0 : switch (TREE_CODE (_p2))
15945 : {
15946 0 : case MAX_EXPR:
15947 0 : {
15948 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15949 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15950 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15951 : {
15952 0 : {
15953 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15954 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15955 0 : if (res) return res;
15956 : }
15957 : }
15958 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15959 : {
15960 0 : {
15961 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15962 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15963 0 : if (res) return res;
15964 : }
15965 : }
15966 : break;
15967 : }
15968 : default:;
15969 : }
15970 : }
15971 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15972 : {
15973 0 : switch (TREE_CODE (_p2))
15974 : {
15975 0 : case MAX_EXPR:
15976 0 : {
15977 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15978 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15979 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15980 : {
15981 0 : {
15982 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15983 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15984 0 : if (res) return res;
15985 : }
15986 : }
15987 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15988 : {
15989 0 : {
15990 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15991 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
15992 0 : if (res) return res;
15993 : }
15994 : }
15995 : break;
15996 : }
15997 : default:;
15998 : }
15999 : }
16000 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16001 : {
16002 0 : switch (TREE_CODE (_p2))
16003 : {
16004 0 : case MAX_EXPR:
16005 0 : {
16006 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16007 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16008 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16009 : {
16010 0 : {
16011 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
16012 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16013 0 : if (res) return res;
16014 : }
16015 : }
16016 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16017 : {
16018 0 : {
16019 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16020 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16021 0 : if (res) return res;
16022 : }
16023 : }
16024 : break;
16025 : }
16026 : default:;
16027 : }
16028 : }
16029 : break;
16030 : }
16031 23835 : case MULT_EXPR:
16032 23835 : {
16033 23835 : tree _q50 = TREE_OPERAND (_p1, 0);
16034 23835 : tree _q51 = TREE_OPERAND (_p1, 1);
16035 23835 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16036 : {
16037 19149 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16038 : {
16039 0 : switch (TREE_CODE (_p2))
16040 : {
16041 0 : case MULT_EXPR:
16042 0 : {
16043 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16044 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16045 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16046 : {
16047 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
16048 : {
16049 0 : {
16050 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16051 0 : const enum tree_code op = MULT_EXPR;
16052 0 : if (ANY_INTEGRAL_TYPE_P (type)
16053 : )
16054 : {
16055 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1800;
16056 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1800;
16057 0 : {
16058 0 : tree _r;
16059 0 : _r = captures[2];
16060 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
16061 0 : return _r;
16062 : }
16063 0 : next_after_fail1800:;
16064 : }
16065 : }
16066 : }
16067 : }
16068 : break;
16069 : }
16070 : default:;
16071 : }
16072 : }
16073 : }
16074 23835 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16075 : {
16076 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16077 : {
16078 0 : switch (TREE_CODE (_p2))
16079 : {
16080 0 : case MULT_EXPR:
16081 0 : {
16082 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16083 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16084 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16085 : {
16086 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
16087 : {
16088 0 : {
16089 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16090 0 : const enum tree_code op = MULT_EXPR;
16091 0 : if (ANY_INTEGRAL_TYPE_P (type)
16092 : )
16093 : {
16094 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1801;
16095 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
16096 0 : {
16097 0 : tree _r;
16098 0 : _r = captures[2];
16099 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
16100 0 : return _r;
16101 : }
16102 0 : next_after_fail1801:;
16103 : }
16104 : }
16105 : }
16106 : }
16107 : break;
16108 : }
16109 : default:;
16110 : }
16111 : }
16112 : }
16113 : break;
16114 : }
16115 102564 : case PLUS_EXPR:
16116 102564 : {
16117 102564 : tree _q50 = TREE_OPERAND (_p1, 0);
16118 102564 : tree _q51 = TREE_OPERAND (_p1, 1);
16119 102564 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16120 : {
16121 369 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16122 : {
16123 0 : switch (TREE_CODE (_p2))
16124 : {
16125 0 : case PLUS_EXPR:
16126 0 : {
16127 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16128 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16129 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16130 : {
16131 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
16132 : {
16133 0 : {
16134 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16135 0 : const enum tree_code op = PLUS_EXPR;
16136 0 : if (ANY_INTEGRAL_TYPE_P (type)
16137 : )
16138 : {
16139 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1802;
16140 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
16141 0 : {
16142 0 : tree _r;
16143 0 : _r = captures[2];
16144 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
16145 0 : return _r;
16146 : }
16147 0 : next_after_fail1802:;
16148 : }
16149 : }
16150 : }
16151 : }
16152 : break;
16153 : }
16154 0 : case MULT_EXPR:
16155 0 : {
16156 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16157 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16158 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16159 : {
16160 0 : if (uniform_integer_cst_p (_q81))
16161 : {
16162 0 : {
16163 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
16164 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16165 : )
16166 : {
16167 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1803;
16168 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1803;
16169 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
16170 0 : {
16171 0 : tree _r;
16172 0 : _r = captures[2];
16173 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
16174 0 : return _r;
16175 : }
16176 0 : next_after_fail1803:;
16177 : }
16178 : }
16179 : }
16180 : }
16181 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16182 : {
16183 0 : if (uniform_integer_cst_p (_q81))
16184 : {
16185 0 : {
16186 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
16187 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16188 : )
16189 : {
16190 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1804;
16191 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1804;
16192 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
16193 0 : {
16194 0 : tree _r;
16195 0 : _r = captures[2];
16196 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
16197 0 : return _r;
16198 : }
16199 0 : next_after_fail1804:;
16200 : }
16201 : }
16202 : }
16203 : }
16204 : break;
16205 : }
16206 : default:;
16207 : }
16208 : }
16209 : }
16210 102564 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16211 : {
16212 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16213 : {
16214 0 : switch (TREE_CODE (_p2))
16215 : {
16216 0 : case PLUS_EXPR:
16217 0 : {
16218 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16219 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16220 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16221 : {
16222 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
16223 : {
16224 0 : {
16225 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16226 0 : const enum tree_code op = PLUS_EXPR;
16227 0 : if (ANY_INTEGRAL_TYPE_P (type)
16228 : )
16229 : {
16230 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1805;
16231 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
16232 0 : {
16233 0 : tree _r;
16234 0 : _r = captures[2];
16235 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
16236 0 : return _r;
16237 : }
16238 0 : next_after_fail1805:;
16239 : }
16240 : }
16241 : }
16242 : }
16243 : break;
16244 : }
16245 0 : case MULT_EXPR:
16246 0 : {
16247 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16248 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16249 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16250 : {
16251 0 : if (uniform_integer_cst_p (_q81))
16252 : {
16253 0 : {
16254 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
16255 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16256 : )
16257 : {
16258 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1806;
16259 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1806;
16260 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1806;
16261 0 : {
16262 0 : tree _r;
16263 0 : _r = captures[2];
16264 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
16265 0 : return _r;
16266 : }
16267 0 : next_after_fail1806:;
16268 : }
16269 : }
16270 : }
16271 : }
16272 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16273 : {
16274 0 : if (uniform_integer_cst_p (_q81))
16275 : {
16276 0 : {
16277 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
16278 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16279 : )
16280 : {
16281 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1807;
16282 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1807;
16283 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1807;
16284 0 : {
16285 0 : tree _r;
16286 0 : _r = captures[2];
16287 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
16288 0 : return _r;
16289 : }
16290 0 : next_after_fail1807:;
16291 : }
16292 : }
16293 : }
16294 : }
16295 : break;
16296 : }
16297 : default:;
16298 : }
16299 : }
16300 : }
16301 : break;
16302 : }
16303 3143533 : default:;
16304 : }
16305 3143533 : switch (TREE_CODE (_q21))
16306 : {
16307 2233026 : case INTEGER_CST:
16308 2233026 : {
16309 2233026 : switch (TREE_CODE (_p1))
16310 : {
16311 228 : case NEGATE_EXPR:
16312 228 : {
16313 228 : tree _q50 = TREE_OPERAND (_p1, 0);
16314 228 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16315 : {
16316 42 : switch (TREE_CODE (_p2))
16317 : {
16318 14 : case INTEGER_CST:
16319 14 : {
16320 14 : {
16321 14 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16322 14 : if (!TYPE_SATURATING (type)
16323 14 : && (TYPE_OVERFLOW_WRAPS (type)
16324 5 : || !wi::only_sign_bit_p (wi::to_wide (captures[1])))
16325 41 : && wi::eq_p (wi::neg (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
16326 : )
16327 : {
16328 11 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1808;
16329 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1808;
16330 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1808;
16331 11 : {
16332 11 : tree _r;
16333 11 : _r = captures[2];
16334 11 : if (TREE_SIDE_EFFECTS (captures[1]))
16335 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16336 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
16337 11 : return _r;
16338 : }
16339 3 : next_after_fail1808:;
16340 : }
16341 : }
16342 3 : break;
16343 : }
16344 : default:;
16345 : }
16346 : }
16347 : break;
16348 : }
16349 99 : case BIT_NOT_EXPR:
16350 99 : {
16351 99 : tree _q50 = TREE_OPERAND (_p1, 0);
16352 99 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16353 : {
16354 20 : switch (TREE_CODE (_p2))
16355 : {
16356 20 : case INTEGER_CST:
16357 20 : {
16358 20 : {
16359 20 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16360 20 : if (wi::eq_p (wi::bit_not (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
16361 : )
16362 : {
16363 20 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1809;
16364 20 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1809;
16365 20 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1809;
16366 20 : {
16367 20 : tree _r;
16368 20 : _r = captures[2];
16369 20 : if (TREE_SIDE_EFFECTS (captures[1]))
16370 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16371 20 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
16372 20 : return _r;
16373 : }
16374 0 : next_after_fail1809:;
16375 : }
16376 : }
16377 0 : break;
16378 : }
16379 : default:;
16380 : }
16381 : }
16382 : break;
16383 : }
16384 5 : case ABS_EXPR:
16385 5 : {
16386 5 : tree _q50 = TREE_OPERAND (_p1, 0);
16387 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16388 : {
16389 1 : switch (TREE_CODE (_p2))
16390 : {
16391 1 : case INTEGER_CST:
16392 1 : {
16393 1 : {
16394 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16395 1 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
16396 : )
16397 : {
16398 0 : if (ABS_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
16399 : )
16400 : {
16401 0 : {
16402 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
16403 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1810;
16404 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1810;
16405 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1810;
16406 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1810;
16407 0 : {
16408 0 : tree res_op0;
16409 0 : {
16410 0 : tree _o1[1], _r1;
16411 0 : _o1[0] = captures[0];
16412 0 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
16413 0 : res_op0 = _r1;
16414 : }
16415 0 : tree _r;
16416 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16417 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16418 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
16420 0 : return _r;
16421 : }
16422 1 : next_after_fail1810:;
16423 : }
16424 : }
16425 : else
16426 : {
16427 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1811;
16428 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1811;
16429 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1811;
16430 0 : {
16431 0 : tree _r;
16432 0 : _r = captures[2];
16433 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16434 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16435 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
16436 0 : return _r;
16437 : }
16438 1 : next_after_fail1811:;
16439 : }
16440 : }
16441 : }
16442 1 : break;
16443 : }
16444 : default:;
16445 : }
16446 : }
16447 : break;
16448 : }
16449 0 : case ABSU_EXPR:
16450 0 : {
16451 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16452 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16453 : {
16454 0 : switch (TREE_CODE (_p2))
16455 : {
16456 0 : case INTEGER_CST:
16457 0 : {
16458 0 : {
16459 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16460 0 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
16461 : )
16462 : {
16463 0 : if (ABSU_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
16464 : )
16465 : {
16466 : {
16467 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
16468 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1812;
16469 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1812;
16470 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1812;
16471 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1812;
16472 : {
16473 : tree res_op0;
16474 : {
16475 : tree _o1[1], _r1;
16476 : _o1[0] = captures[0];
16477 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
16478 : res_op0 = _r1;
16479 : }
16480 : tree _r;
16481 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16482 : if (TREE_SIDE_EFFECTS (captures[1]))
16483 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16484 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
16485 : return _r;
16486 : }
16487 : next_after_fail1812:;
16488 : }
16489 : }
16490 : else
16491 : {
16492 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1813;
16493 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1813;
16494 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1813;
16495 0 : {
16496 0 : tree _r;
16497 0 : _r = captures[2];
16498 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16499 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16500 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
16501 0 : return _r;
16502 : }
16503 0 : next_after_fail1813:;
16504 : }
16505 : }
16506 : }
16507 0 : break;
16508 : }
16509 : default:;
16510 : }
16511 : }
16512 : break;
16513 : }
16514 : default:;
16515 : }
16516 : break;
16517 : }
16518 : default:;
16519 : }
16520 : break;
16521 : }
16522 2635977 : case EQ_EXPR:
16523 2635977 : {
16524 2635977 : tree _q20 = TREE_OPERAND (_p0, 0);
16525 2635977 : tree _q21 = TREE_OPERAND (_p0, 1);
16526 2635977 : if (tree_zero_one_valued_p (_q20))
16527 : {
16528 156602 : if (integer_zerop (_q21))
16529 : {
16530 808 : switch (TREE_CODE (_p2))
16531 : {
16532 1 : case BIT_XOR_EXPR:
16533 1 : {
16534 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16535 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16536 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16537 : {
16538 1 : {
16539 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16540 1 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16541 1 : if (res) return res;
16542 : }
16543 : }
16544 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16545 : {
16546 0 : {
16547 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16548 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16549 0 : if (res) return res;
16550 : }
16551 : }
16552 : break;
16553 : }
16554 1 : case BIT_IOR_EXPR:
16555 1 : {
16556 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16557 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16558 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16559 : {
16560 1 : {
16561 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16562 1 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16563 1 : if (res) return res;
16564 : }
16565 : }
16566 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16567 : {
16568 0 : {
16569 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16570 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16571 0 : if (res) return res;
16572 : }
16573 : }
16574 : break;
16575 : }
16576 1 : case PLUS_EXPR:
16577 1 : {
16578 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16579 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16580 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16581 : {
16582 1 : {
16583 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16584 1 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16585 1 : if (res) return res;
16586 : }
16587 : }
16588 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16589 : {
16590 0 : {
16591 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16592 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16593 0 : if (res) return res;
16594 : }
16595 : }
16596 : break;
16597 : }
16598 : default:;
16599 : }
16600 : }
16601 : }
16602 2635974 : if (integer_zerop (_q21))
16603 : {
16604 683951 : switch (TREE_CODE (_p2))
16605 : {
16606 16003 : case PLUS_EXPR:
16607 16003 : {
16608 16003 : tree _q60 = TREE_OPERAND (_p2, 0);
16609 16003 : tree _q61 = TREE_OPERAND (_p2, 1);
16610 16003 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16611 : {
16612 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16613 : {
16614 0 : {
16615 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16616 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16617 0 : if (res) return res;
16618 : }
16619 : }
16620 : }
16621 16003 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16622 : {
16623 1961 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16624 : {
16625 0 : {
16626 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16627 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16628 0 : if (res) return res;
16629 : }
16630 : }
16631 : }
16632 : break;
16633 : }
16634 108 : case BIT_IOR_EXPR:
16635 108 : {
16636 108 : tree _q60 = TREE_OPERAND (_p2, 0);
16637 108 : tree _q61 = TREE_OPERAND (_p2, 1);
16638 108 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16639 : {
16640 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16641 : {
16642 0 : {
16643 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16644 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16645 0 : if (res) return res;
16646 : }
16647 : }
16648 : }
16649 108 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16650 : {
16651 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16652 : {
16653 0 : {
16654 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16655 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16656 0 : if (res) return res;
16657 : }
16658 : }
16659 : }
16660 : break;
16661 : }
16662 0 : case BIT_XOR_EXPR:
16663 0 : {
16664 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16665 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16666 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16667 : {
16668 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16669 : {
16670 0 : {
16671 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16672 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16673 0 : if (res) return res;
16674 : }
16675 : }
16676 : }
16677 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16678 : {
16679 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16680 : {
16681 0 : {
16682 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16683 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16684 0 : if (res) return res;
16685 : }
16686 : }
16687 : }
16688 : break;
16689 : }
16690 1 : case LROTATE_EXPR:
16691 1 : {
16692 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16693 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16694 1 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16695 : {
16696 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16697 : {
16698 1 : {
16699 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16700 1 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16701 1 : if (res) return res;
16702 : }
16703 : }
16704 : }
16705 : break;
16706 : }
16707 0 : case RROTATE_EXPR:
16708 0 : {
16709 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16710 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16711 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16712 : {
16713 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16714 : {
16715 0 : {
16716 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16717 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16718 0 : if (res) return res;
16719 : }
16720 : }
16721 : }
16722 : break;
16723 : }
16724 48 : case LSHIFT_EXPR:
16725 48 : {
16726 48 : tree _q60 = TREE_OPERAND (_p2, 0);
16727 48 : tree _q61 = TREE_OPERAND (_p2, 1);
16728 48 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16729 : {
16730 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16731 : {
16732 0 : {
16733 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16734 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16735 0 : if (res) return res;
16736 : }
16737 : }
16738 : }
16739 : break;
16740 : }
16741 46 : case RSHIFT_EXPR:
16742 46 : {
16743 46 : tree _q60 = TREE_OPERAND (_p2, 0);
16744 46 : tree _q61 = TREE_OPERAND (_p2, 1);
16745 46 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16746 : {
16747 20 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16748 : {
16749 20 : {
16750 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16751 20 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16752 20 : if (res) return res;
16753 : }
16754 : }
16755 : }
16756 : break;
16757 : }
16758 183 : case MINUS_EXPR:
16759 183 : {
16760 183 : tree _q60 = TREE_OPERAND (_p2, 0);
16761 183 : tree _q61 = TREE_OPERAND (_p2, 1);
16762 183 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16763 : {
16764 7 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16765 : {
16766 0 : {
16767 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16768 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16769 0 : if (res) return res;
16770 : }
16771 : }
16772 : }
16773 : break;
16774 : }
16775 150771 : case POINTER_PLUS_EXPR:
16776 150771 : {
16777 150771 : tree _q60 = TREE_OPERAND (_p2, 0);
16778 150771 : tree _q61 = TREE_OPERAND (_p2, 1);
16779 150771 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16780 : {
16781 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16782 : {
16783 0 : {
16784 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16785 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16786 0 : if (res) return res;
16787 : }
16788 : }
16789 : }
16790 : break;
16791 : }
16792 : default:;
16793 : }
16794 : }
16795 2635953 : if (integer_onep (_q21))
16796 : {
16797 48032 : switch (TREE_CODE (_p2))
16798 : {
16799 91 : case TRUNC_DIV_EXPR:
16800 91 : {
16801 91 : tree _q60 = TREE_OPERAND (_p2, 0);
16802 91 : tree _q61 = TREE_OPERAND (_p2, 1);
16803 91 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16804 : {
16805 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16806 : {
16807 0 : {
16808 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16809 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
16810 0 : if (res) return res;
16811 : }
16812 : }
16813 : }
16814 : break;
16815 : }
16816 0 : case CEIL_DIV_EXPR:
16817 0 : {
16818 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16819 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16820 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16821 : {
16822 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16823 : {
16824 0 : {
16825 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16826 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
16827 0 : if (res) return res;
16828 : }
16829 : }
16830 : }
16831 : break;
16832 : }
16833 0 : case FLOOR_DIV_EXPR:
16834 0 : {
16835 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16836 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16837 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16838 : {
16839 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16840 : {
16841 0 : {
16842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16843 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
16844 0 : if (res) return res;
16845 : }
16846 : }
16847 : }
16848 : break;
16849 : }
16850 0 : case ROUND_DIV_EXPR:
16851 0 : {
16852 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16853 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16854 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16855 : {
16856 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16857 : {
16858 0 : {
16859 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16860 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
16861 0 : if (res) return res;
16862 : }
16863 : }
16864 : }
16865 : break;
16866 : }
16867 0 : case EXACT_DIV_EXPR:
16868 0 : {
16869 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16870 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16871 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16872 : {
16873 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16874 : {
16875 0 : {
16876 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16877 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
16878 0 : if (res) return res;
16879 : }
16880 : }
16881 : }
16882 : break;
16883 : }
16884 0 : case MULT_EXPR:
16885 0 : {
16886 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16887 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16888 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16889 : {
16890 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16891 : {
16892 0 : {
16893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16894 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
16895 0 : if (res) return res;
16896 : }
16897 : }
16898 : }
16899 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16900 : {
16901 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16902 : {
16903 0 : {
16904 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16905 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
16906 0 : if (res) return res;
16907 : }
16908 : }
16909 : }
16910 : break;
16911 : }
16912 : default:;
16913 : }
16914 : }
16915 2635953 : if (integer_all_onesp (_q21))
16916 : {
16917 41257 : switch (TREE_CODE (_p2))
16918 : {
16919 0 : case BIT_AND_EXPR:
16920 0 : {
16921 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16922 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16923 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16924 : {
16925 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16926 : {
16927 0 : {
16928 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16929 0 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16930 0 : if (res) return res;
16931 : }
16932 : }
16933 : }
16934 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16935 : {
16936 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16937 : {
16938 0 : {
16939 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16940 0 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16941 0 : if (res) return res;
16942 : }
16943 : }
16944 : }
16945 : break;
16946 : }
16947 : default:;
16948 : }
16949 : }
16950 2635953 : switch (TREE_CODE (_q20))
16951 : {
16952 78677 : CASE_CONVERT:
16953 78677 : {
16954 78677 : tree _q30 = TREE_OPERAND (_q20, 0);
16955 78677 : switch (TREE_CODE (_q21))
16956 : {
16957 24377 : case INTEGER_CST:
16958 24377 : {
16959 24377 : switch (TREE_CODE (_p1))
16960 : {
16961 10866 : CASE_CONVERT:
16962 10866 : {
16963 10866 : tree _q60 = TREE_OPERAND (_p1, 0);
16964 10866 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
16965 : {
16966 57 : switch (TREE_CODE (_p2))
16967 : {
16968 56 : case INTEGER_CST:
16969 56 : {
16970 56 : {
16971 56 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16972 56 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16973 56 : if (res) return res;
16974 : }
16975 56 : break;
16976 : }
16977 : default:;
16978 : }
16979 : }
16980 : break;
16981 : }
16982 24377 : default:;
16983 : }
16984 24377 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
16985 : {
16986 118 : switch (TREE_CODE (_p2))
16987 : {
16988 112 : case INTEGER_CST:
16989 112 : {
16990 112 : {
16991 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16992 112 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16993 112 : if (res) return res;
16994 : }
16995 112 : break;
16996 : }
16997 : default:;
16998 : }
16999 : }
17000 : break;
17001 : }
17002 : default:;
17003 : }
17004 : break;
17005 : }
17006 2635953 : default:;
17007 : }
17008 2635953 : switch (TREE_CODE (_q21))
17009 : {
17010 1808094 : case INTEGER_CST:
17011 1808094 : {
17012 1808094 : switch (TREE_CODE (_p1))
17013 : {
17014 423075 : CASE_CONVERT:
17015 423075 : {
17016 423075 : tree _q50 = TREE_OPERAND (_p1, 0);
17017 423075 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17018 : {
17019 321 : switch (TREE_CODE (_p2))
17020 : {
17021 7 : case INTEGER_CST:
17022 7 : {
17023 7 : {
17024 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17025 7 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17026 7 : if (res) return res;
17027 : }
17028 0 : break;
17029 : }
17030 : default:;
17031 : }
17032 : }
17033 : break;
17034 : }
17035 1808087 : default:;
17036 : }
17037 1808087 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17038 : {
17039 58 : switch (TREE_CODE (_p2))
17040 : {
17041 5 : case INTEGER_CST:
17042 5 : {
17043 5 : {
17044 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17045 5 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17046 5 : if (res) return res;
17047 : }
17048 0 : break;
17049 : }
17050 : default:;
17051 : }
17052 : }
17053 : break;
17054 : }
17055 2635941 : default:;
17056 : }
17057 2635941 : if (tree_expr_nonnegative_p (_q21))
17058 : {
17059 2480756 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17060 : {
17061 80 : switch (TREE_CODE (_p2))
17062 : {
17063 0 : case ABS_EXPR:
17064 0 : {
17065 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17066 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17067 : {
17068 0 : {
17069 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17070 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17071 0 : if (res) return res;
17072 : }
17073 : }
17074 : break;
17075 : }
17076 : default:;
17077 : }
17078 : }
17079 : }
17080 2635941 : if (tree_expr_nonnegative_p (_q20))
17081 : {
17082 1811916 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17083 : {
17084 22468 : switch (TREE_CODE (_p2))
17085 : {
17086 0 : case ABS_EXPR:
17087 0 : {
17088 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17089 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17090 : {
17091 0 : {
17092 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17093 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17094 0 : if (res) return res;
17095 : }
17096 : }
17097 : break;
17098 : }
17099 : default:;
17100 : }
17101 : }
17102 1811916 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17103 : {
17104 25 : switch (TREE_CODE (_p2))
17105 : {
17106 0 : case ABS_EXPR:
17107 0 : {
17108 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17109 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17110 : {
17111 0 : {
17112 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17113 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures);
17114 0 : if (res) return res;
17115 : }
17116 : }
17117 : break;
17118 : }
17119 : default:;
17120 : }
17121 : }
17122 : }
17123 2635941 : if (tree_expr_nonnegative_p (_q21))
17124 : {
17125 2480756 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17126 : {
17127 23010 : switch (TREE_CODE (_p2))
17128 : {
17129 0 : case ABS_EXPR:
17130 0 : {
17131 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17132 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17133 : {
17134 0 : {
17135 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17136 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures);
17137 0 : if (res) return res;
17138 : }
17139 : }
17140 : break;
17141 : }
17142 : default:;
17143 : }
17144 : }
17145 : }
17146 : break;
17147 : }
17148 1219147 : case INTEGER_CST:
17149 1219147 : {
17150 1219147 : {
17151 1219147 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
17152 1219147 : if (integer_zerop (captures[0])
17153 : )
17154 : {
17155 638959 : if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)
17156 : )
17157 : {
17158 630747 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1814;
17159 459226 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1814;
17160 447568 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1814;
17161 447568 : {
17162 447568 : tree _r;
17163 447568 : _r = captures[2];
17164 447568 : if (TREE_SIDE_EFFECTS (captures[0]))
17165 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17166 447568 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
17167 447568 : return _r;
17168 : }
17169 404797 : next_after_fail1814:;
17170 : }
17171 : }
17172 : else
17173 : {
17174 580188 : if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)
17175 : )
17176 : {
17177 579196 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1815;
17178 456156 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1815;
17179 366782 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1815;
17180 366782 : {
17181 366782 : tree _r;
17182 366782 : _r = captures[1];
17183 366782 : if (TREE_SIDE_EFFECTS (captures[0]))
17184 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17185 366782 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
17186 366782 : return _r;
17187 : }
17188 404797 : next_after_fail1815:;
17189 : }
17190 : }
17191 : }
17192 404797 : break;
17193 : }
17194 13313337 : default:;
17195 : }
17196 13313337 : switch (TREE_CODE (_p1))
17197 : {
17198 830803 : case COND_EXPR:
17199 830803 : {
17200 830803 : tree _q30 = TREE_OPERAND (_p1, 0);
17201 830803 : tree _q31 = TREE_OPERAND (_p1, 1);
17202 830803 : tree _q32 = TREE_OPERAND (_p1, 2);
17203 830803 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17204 : {
17205 609 : {
17206 609 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
17207 609 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1816;
17208 609 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1816;
17209 55 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1816;
17210 54 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1816;
17211 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1816;
17212 10 : {
17213 10 : tree res_op0;
17214 10 : res_op0 = captures[0];
17215 10 : tree res_op1;
17216 10 : res_op1 = captures[1];
17217 10 : tree res_op2;
17218 10 : res_op2 = captures[3];
17219 10 : tree _r;
17220 10 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17221 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
17222 10 : return _r;
17223 : }
17224 599 : next_after_fail1816:;
17225 : }
17226 : }
17227 : break;
17228 : }
17229 13313327 : default:;
17230 : }
17231 13313327 : switch (TREE_CODE (_p2))
17232 : {
17233 872896 : case COND_EXPR:
17234 872896 : {
17235 872896 : tree _q40 = TREE_OPERAND (_p2, 0);
17236 872896 : tree _q41 = TREE_OPERAND (_p2, 1);
17237 872896 : tree _q42 = TREE_OPERAND (_p2, 2);
17238 872896 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17239 : {
17240 3762 : {
17241 3762 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
17242 3762 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1817;
17243 3762 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1817;
17244 3762 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1817;
17245 184 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1817;
17246 184 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1817;
17247 184 : {
17248 184 : tree res_op0;
17249 184 : res_op0 = captures[0];
17250 184 : tree res_op1;
17251 184 : res_op1 = captures[1];
17252 184 : tree res_op2;
17253 184 : res_op2 = captures[3];
17254 184 : tree _r;
17255 184 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17256 184 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
17257 184 : return _r;
17258 : }
17259 3578 : next_after_fail1817:;
17260 : }
17261 : }
17262 872712 : {
17263 872712 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
17264 872712 : if (inverse_conditions_p (captures[0], captures[2])
17265 : )
17266 : {
17267 1186 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1818;
17268 1186 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1818;
17269 1186 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1818;
17270 1186 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1818;
17271 1186 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
17272 1186 : {
17273 1186 : tree res_op0;
17274 1186 : res_op0 = captures[0];
17275 1186 : tree res_op1;
17276 1186 : res_op1 = captures[1];
17277 1186 : tree res_op2;
17278 1186 : res_op2 = captures[3];
17279 1186 : tree _r;
17280 1186 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17281 1186 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
17282 1186 : return _r;
17283 : }
17284 871526 : next_after_fail1818:;
17285 : }
17286 : }
17287 871526 : break;
17288 : }
17289 13311957 : default:;
17290 : }
17291 13311957 : switch (TREE_CODE (_p1))
17292 : {
17293 830793 : case COND_EXPR:
17294 830793 : {
17295 830793 : tree _q30 = TREE_OPERAND (_p1, 0);
17296 830793 : tree _q31 = TREE_OPERAND (_p1, 1);
17297 830793 : tree _q32 = TREE_OPERAND (_p1, 2);
17298 830793 : {
17299 830793 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
17300 830793 : if (inverse_conditions_p (captures[0], captures[1])
17301 : )
17302 : {
17303 136 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1819;
17304 136 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1819;
17305 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1819;
17306 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1819;
17307 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
17308 2 : {
17309 2 : tree res_op0;
17310 2 : res_op0 = captures[0];
17311 2 : tree res_op1;
17312 2 : res_op1 = captures[3];
17313 2 : tree res_op2;
17314 2 : res_op2 = captures[4];
17315 2 : tree _r;
17316 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17317 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
17318 2 : return _r;
17319 : }
17320 830791 : next_after_fail1819:;
17321 : }
17322 : }
17323 830791 : break;
17324 : }
17325 13311955 : default:;
17326 : }
17327 13311955 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
17328 : {
17329 50924 : {
17330 50924 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
17331 50924 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1820;
17332 50924 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
17333 50924 : {
17334 50924 : tree _r;
17335 50924 : _r = captures[1];
17336 50924 : if (TREE_SIDE_EFFECTS (captures[0]))
17337 357 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17338 50924 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1035, __FILE__, __LINE__, true);
17339 50924 : return _r;
17340 : }
17341 0 : next_after_fail1820:;
17342 : }
17343 : }
17344 13261031 : switch (TREE_CODE (_p0))
17345 : {
17346 2606004 : case EQ_EXPR:
17347 2606004 : {
17348 2606004 : tree _q20 = TREE_OPERAND (_p0, 0);
17349 2606004 : tree _q21 = TREE_OPERAND (_p0, 1);
17350 2606004 : if (zerop (_q21))
17351 : {
17352 871989 : switch (TREE_CODE (_p2))
17353 : {
17354 36 : case NEGATE_EXPR:
17355 36 : {
17356 36 : tree _q60 = TREE_OPERAND (_p2, 0);
17357 36 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17358 : {
17359 16 : {
17360 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17361 16 : const enum tree_code cmp = EQ_EXPR;
17362 16 : if (!HONOR_SIGNED_ZEROS (type)
17363 16 : && bitwise_equal_p (captures[0], captures[1])
17364 : )
17365 : {
17366 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1821;
17367 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1821;
17368 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1821;
17369 0 : {
17370 0 : tree _r;
17371 0 : _r = captures[2];
17372 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
17373 0 : return _r;
17374 : }
17375 16 : next_after_fail1821:;
17376 : }
17377 : }
17378 : }
17379 : break;
17380 : }
17381 871989 : default:;
17382 : }
17383 871989 : if (zerop (_p1))
17384 : {
17385 43257 : switch (TREE_CODE (_p2))
17386 : {
17387 14 : case NEGATE_EXPR:
17388 14 : {
17389 14 : tree _q60 = TREE_OPERAND (_p2, 0);
17390 14 : {
17391 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
17392 14 : const enum tree_code cmp = EQ_EXPR;
17393 14 : if (!HONOR_SIGNED_ZEROS (type)
17394 14 : && bitwise_equal_p (captures[0], captures[2])
17395 : )
17396 : {
17397 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1822;
17398 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1822;
17399 7 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1822;
17400 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1822;
17401 7 : {
17402 7 : tree _r;
17403 7 : _r = captures[1];
17404 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
17405 7 : return _r;
17406 : }
17407 7 : next_after_fail1822:;
17408 : }
17409 : }
17410 7 : break;
17411 : }
17412 : default:;
17413 : }
17414 : }
17415 : }
17416 2605997 : switch (TREE_CODE (_q20))
17417 : {
17418 28 : case MINUS_EXPR:
17419 28 : {
17420 28 : tree _q30 = TREE_OPERAND (_q20, 0);
17421 28 : tree _q31 = TREE_OPERAND (_q20, 1);
17422 28 : if (zerop (_q21))
17423 : {
17424 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17425 : {
17426 0 : switch (TREE_CODE (_p2))
17427 : {
17428 0 : case MINUS_EXPR:
17429 0 : {
17430 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17431 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17432 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17433 : {
17434 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17435 : {
17436 0 : {
17437 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17438 0 : const enum tree_code cmp = EQ_EXPR;
17439 0 : if (!HONOR_SIGNED_ZEROS (type)
17440 : )
17441 : {
17442 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1823;
17443 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1823;
17444 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1823;
17445 0 : {
17446 0 : tree _r;
17447 0 : _r = captures[3];
17448 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
17449 0 : return _r;
17450 : }
17451 0 : next_after_fail1823:;
17452 : }
17453 : }
17454 : }
17455 : }
17456 : break;
17457 : }
17458 : default:;
17459 : }
17460 : }
17461 : }
17462 28 : if (integer_zerop (_q21))
17463 : {
17464 0 : if (integer_zerop (_p1))
17465 : {
17466 0 : switch (TREE_CODE (_p2))
17467 : {
17468 0 : case MINUS_EXPR:
17469 0 : {
17470 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17471 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17472 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17473 : {
17474 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17475 : {
17476 0 : {
17477 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17478 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17479 0 : if (res) return res;
17480 : }
17481 : }
17482 : }
17483 : break;
17484 : }
17485 : default:;
17486 : }
17487 : }
17488 : }
17489 : break;
17490 : }
17491 59608 : case CALL_EXPR:
17492 59608 : switch (get_call_combined_fn (_q20))
17493 : {
17494 0 : case CFN_BUILT_IN_SIGNBITF:
17495 0 : if (call_expr_nargs (_q20) == 1)
17496 : {
17497 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17498 0 : if (integer_zerop (_q21))
17499 : {
17500 0 : switch (TREE_CODE (_p1))
17501 : {
17502 0 : case NEGATE_EXPR:
17503 0 : {
17504 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17505 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17506 : {
17507 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17508 : {
17509 0 : {
17510 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17511 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITF);
17512 0 : if (res) return res;
17513 : }
17514 : }
17515 : }
17516 : break;
17517 : }
17518 : default:;
17519 : }
17520 : }
17521 : }
17522 : break;
17523 0 : case CFN_BUILT_IN_SIGNBITL:
17524 0 : if (call_expr_nargs (_q20) == 1)
17525 : {
17526 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17527 0 : if (integer_zerop (_q21))
17528 : {
17529 0 : switch (TREE_CODE (_p1))
17530 : {
17531 0 : case NEGATE_EXPR:
17532 0 : {
17533 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17534 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17535 : {
17536 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17537 : {
17538 0 : {
17539 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17540 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITL);
17541 0 : if (res) return res;
17542 : }
17543 : }
17544 : }
17545 : break;
17546 : }
17547 : default:;
17548 : }
17549 : }
17550 : }
17551 : break;
17552 0 : case CFN_SIGNBIT:
17553 0 : if (call_expr_nargs (_q20) == 1)
17554 : {
17555 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17556 0 : if (integer_zerop (_q21))
17557 : {
17558 0 : switch (TREE_CODE (_p1))
17559 : {
17560 0 : case NEGATE_EXPR:
17561 0 : {
17562 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17563 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17564 : {
17565 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17566 : {
17567 0 : {
17568 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17569 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_SIGNBIT);
17570 0 : if (res) return res;
17571 : }
17572 : }
17573 : }
17574 : break;
17575 : }
17576 : default:;
17577 : }
17578 : }
17579 : }
17580 : break;
17581 411 : case CFN_BUILT_IN_SIGNBIT:
17582 411 : if (call_expr_nargs (_q20) == 1)
17583 : {
17584 411 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17585 411 : if (integer_zerop (_q21))
17586 : {
17587 411 : switch (TREE_CODE (_p1))
17588 : {
17589 3 : case NEGATE_EXPR:
17590 3 : {
17591 3 : tree _q60 = TREE_OPERAND (_p1, 0);
17592 3 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17593 : {
17594 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17595 : {
17596 3 : {
17597 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17598 3 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBIT);
17599 3 : if (res) return res;
17600 : }
17601 : }
17602 : }
17603 : break;
17604 : }
17605 : default:;
17606 : }
17607 : }
17608 : }
17609 : break;
17610 : default:;
17611 : }
17612 : break;
17613 : default:;
17614 : }
17615 : break;
17616 : }
17617 177 : case UNEQ_EXPR:
17618 177 : {
17619 177 : tree _q20 = TREE_OPERAND (_p0, 0);
17620 177 : tree _q21 = TREE_OPERAND (_p0, 1);
17621 177 : if (zerop (_q21))
17622 : {
17623 1 : switch (TREE_CODE (_p2))
17624 : {
17625 0 : case NEGATE_EXPR:
17626 0 : {
17627 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17628 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17629 : {
17630 0 : {
17631 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17632 0 : const enum tree_code cmp = UNEQ_EXPR;
17633 0 : if (!HONOR_SIGNED_ZEROS (type)
17634 0 : && bitwise_equal_p (captures[0], captures[1])
17635 : )
17636 : {
17637 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1824;
17638 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1824;
17639 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1824;
17640 0 : {
17641 0 : tree _r;
17642 0 : _r = captures[2];
17643 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
17644 0 : return _r;
17645 : }
17646 0 : next_after_fail1824:;
17647 : }
17648 : }
17649 : }
17650 : break;
17651 : }
17652 1 : default:;
17653 : }
17654 1 : if (zerop (_p1))
17655 : {
17656 0 : switch (TREE_CODE (_p2))
17657 : {
17658 0 : case NEGATE_EXPR:
17659 0 : {
17660 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17661 0 : {
17662 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
17663 0 : const enum tree_code cmp = UNEQ_EXPR;
17664 0 : if (!HONOR_SIGNED_ZEROS (type)
17665 0 : && bitwise_equal_p (captures[0], captures[2])
17666 : )
17667 : {
17668 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1825;
17669 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1825;
17670 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1825;
17671 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1825;
17672 0 : {
17673 0 : tree _r;
17674 0 : _r = captures[1];
17675 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
17676 0 : return _r;
17677 : }
17678 0 : next_after_fail1825:;
17679 : }
17680 : }
17681 0 : break;
17682 : }
17683 : default:;
17684 : }
17685 : }
17686 : }
17687 177 : switch (TREE_CODE (_q20))
17688 : {
17689 0 : case MINUS_EXPR:
17690 0 : {
17691 0 : tree _q30 = TREE_OPERAND (_q20, 0);
17692 0 : tree _q31 = TREE_OPERAND (_q20, 1);
17693 0 : if (zerop (_q21))
17694 : {
17695 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17696 : {
17697 0 : switch (TREE_CODE (_p2))
17698 : {
17699 0 : case MINUS_EXPR:
17700 0 : {
17701 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17702 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17703 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17704 : {
17705 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17706 : {
17707 0 : {
17708 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17709 0 : const enum tree_code cmp = UNEQ_EXPR;
17710 0 : if (!HONOR_SIGNED_ZEROS (type)
17711 : )
17712 : {
17713 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1826;
17714 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1826;
17715 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1826;
17716 0 : {
17717 0 : tree _r;
17718 0 : _r = captures[3];
17719 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
17720 0 : return _r;
17721 : }
17722 0 : next_after_fail1826:;
17723 : }
17724 : }
17725 : }
17726 : }
17727 : break;
17728 : }
17729 : default:;
17730 : }
17731 : }
17732 : }
17733 0 : if (integer_zerop (_q21))
17734 : {
17735 0 : if (integer_zerop (_p1))
17736 : {
17737 0 : switch (TREE_CODE (_p2))
17738 : {
17739 0 : case MINUS_EXPR:
17740 0 : {
17741 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17742 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17743 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17744 : {
17745 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17746 : {
17747 0 : {
17748 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17749 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
17750 0 : if (res) return res;
17751 : }
17752 : }
17753 : }
17754 : break;
17755 : }
17756 : default:;
17757 : }
17758 : }
17759 : }
17760 : break;
17761 : }
17762 : default:;
17763 : }
17764 : break;
17765 : }
17766 3141396 : case NE_EXPR:
17767 3141396 : {
17768 3141396 : tree _q20 = TREE_OPERAND (_p0, 0);
17769 3141396 : tree _q21 = TREE_OPERAND (_p0, 1);
17770 3141396 : if (zerop (_q21))
17771 : {
17772 2004575 : switch (TREE_CODE (_p2))
17773 : {
17774 50 : case NEGATE_EXPR:
17775 50 : {
17776 50 : tree _q60 = TREE_OPERAND (_p2, 0);
17777 50 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17778 : {
17779 10 : {
17780 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
17781 10 : const enum tree_code cmp = NE_EXPR;
17782 10 : if (!HONOR_SIGNED_ZEROS (type)
17783 10 : && bitwise_equal_p (captures[0], captures[1])
17784 : )
17785 : {
17786 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1827;
17787 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1827;
17788 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1827;
17789 0 : {
17790 0 : tree _r;
17791 0 : _r = captures[1];
17792 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
17793 0 : return _r;
17794 : }
17795 10 : next_after_fail1827:;
17796 : }
17797 : }
17798 : }
17799 : break;
17800 : }
17801 2004575 : default:;
17802 : }
17803 2004575 : if (integer_zerop (_p2))
17804 : {
17805 353833 : {
17806 353833 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
17807 353833 : const enum tree_code cmp = NE_EXPR;
17808 353833 : if (!HONOR_SIGNED_ZEROS (type)
17809 353833 : && bitwise_equal_p (captures[0], captures[1])
17810 : )
17811 : {
17812 530 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1828;
17813 498 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1828;
17814 498 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1828;
17815 498 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1828;
17816 498 : {
17817 498 : tree _r;
17818 498 : _r = captures[1];
17819 498 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
17820 498 : return _r;
17821 : }
17822 353335 : next_after_fail1828:;
17823 : }
17824 : }
17825 : }
17826 : }
17827 3140898 : switch (TREE_CODE (_q20))
17828 : {
17829 562 : case MINUS_EXPR:
17830 562 : {
17831 562 : tree _q30 = TREE_OPERAND (_q20, 0);
17832 562 : tree _q31 = TREE_OPERAND (_q20, 1);
17833 562 : if (zerop (_q21))
17834 : {
17835 76 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17836 : {
17837 0 : switch (TREE_CODE (_p2))
17838 : {
17839 0 : case MINUS_EXPR:
17840 0 : {
17841 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17842 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17843 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17844 : {
17845 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17846 : {
17847 0 : {
17848 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
17849 0 : const enum tree_code cmp = NE_EXPR;
17850 0 : if (!HONOR_SIGNED_ZEROS (type)
17851 : )
17852 : {
17853 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1829;
17854 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1829;
17855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1829;
17856 0 : {
17857 0 : tree _r;
17858 0 : _r = captures[0];
17859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
17860 0 : return _r;
17861 : }
17862 0 : next_after_fail1829:;
17863 : }
17864 : }
17865 : }
17866 : }
17867 : break;
17868 : }
17869 : default:;
17870 : }
17871 : }
17872 : }
17873 562 : if (integer_zerop (_q21))
17874 : {
17875 25 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17876 : {
17877 0 : if (integer_zerop (_p2))
17878 : {
17879 0 : {
17880 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
17881 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17882 0 : if (res) return res;
17883 : }
17884 : }
17885 : }
17886 : }
17887 : break;
17888 : }
17889 273934 : case BIT_AND_EXPR:
17890 273934 : {
17891 273934 : tree _q30 = TREE_OPERAND (_q20, 0);
17892 273934 : tree _q31 = TREE_OPERAND (_q20, 1);
17893 273934 : if (integer_pow2p (_q31))
17894 : {
17895 201643 : if (integer_zerop (_q21))
17896 : {
17897 201643 : switch (TREE_CODE (_p1))
17898 : {
17899 2317 : case INTEGER_CST:
17900 2317 : {
17901 2317 : if (integer_zerop (_p2))
17902 : {
17903 1394 : {
17904 1394 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
17905 1394 : if (!POINTER_TYPE_P (type) && integer_pow2p (captures[2])
17906 : )
17907 : {
17908 642 : {
17909 642 : int shift = (wi::exact_log2 (wi::to_wide (captures[2]))
17910 642 : - wi::exact_log2 (wi::to_wide (captures[1])));
17911 642 : if (shift > 0
17912 : )
17913 : {
17914 367 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1830;
17915 367 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1830;
17916 367 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1830;
17917 367 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1830;
17918 367 : {
17919 367 : tree res_op0;
17920 367 : {
17921 367 : tree _o1[2], _r1;
17922 367 : {
17923 367 : tree _o2[1], _r2;
17924 367 : _o2[0] = captures[0];
17925 367 : if (TREE_TYPE (_o2[0]) != type)
17926 : {
17927 364 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
17928 : }
17929 : else
17930 : _r2 = _o2[0];
17931 367 : _o1[0] = _r2;
17932 : }
17933 367 : _o1[1] = build_int_cst (integer_type_node, shift);
17934 367 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17935 367 : res_op0 = _r1;
17936 : }
17937 367 : tree res_op1;
17938 367 : res_op1 = captures[2];
17939 367 : tree _r;
17940 367 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
17941 367 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1042, __FILE__, __LINE__, true);
17942 642 : return _r;
17943 : }
17944 : next_after_fail1830:;
17945 : }
17946 : else
17947 : {
17948 275 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1831;
17949 275 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1831;
17950 275 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1831;
17951 275 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1831;
17952 275 : {
17953 275 : tree res_op0;
17954 275 : {
17955 275 : tree _o1[1], _r1;
17956 275 : {
17957 275 : tree _o2[2], _r2;
17958 275 : _o2[0] = captures[0];
17959 275 : _o2[1] = build_int_cst (integer_type_node, -shift);
17960 275 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
17961 275 : _o1[0] = _r2;
17962 : }
17963 275 : if (TREE_TYPE (_o1[0]) != type)
17964 : {
17965 139 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
17966 : }
17967 : else
17968 : _r1 = _o1[0];
17969 275 : res_op0 = _r1;
17970 : }
17971 275 : tree res_op1;
17972 275 : res_op1 = captures[2];
17973 275 : tree _r;
17974 275 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
17975 275 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
17976 275 : return _r;
17977 : }
17978 : next_after_fail1831:;
17979 : }
17980 : }
17981 : }
17982 : }
17983 : }
17984 : break;
17985 : }
17986 : default:;
17987 : }
17988 : }
17989 : }
17990 : break;
17991 : }
17992 382914 : case CALL_EXPR:
17993 382914 : switch (get_call_combined_fn (_q20))
17994 : {
17995 30 : case CFN_BUILT_IN_SIGNBITF:
17996 30 : if (call_expr_nargs (_q20) == 1)
17997 : {
17998 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17999 30 : if (integer_zerop (_q21))
18000 : {
18001 30 : switch (TREE_CODE (_p1))
18002 : {
18003 0 : case NEGATE_EXPR:
18004 0 : {
18005 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18006 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18007 : {
18008 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18009 : {
18010 0 : {
18011 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18012 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITF);
18013 0 : if (res) return res;
18014 : }
18015 : }
18016 : }
18017 : break;
18018 : }
18019 : default:;
18020 : }
18021 : }
18022 : }
18023 : break;
18024 30 : case CFN_BUILT_IN_SIGNBITL:
18025 30 : if (call_expr_nargs (_q20) == 1)
18026 : {
18027 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18028 30 : if (integer_zerop (_q21))
18029 : {
18030 30 : switch (TREE_CODE (_p1))
18031 : {
18032 0 : case NEGATE_EXPR:
18033 0 : {
18034 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18035 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18036 : {
18037 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18038 : {
18039 0 : {
18040 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18041 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITL);
18042 0 : if (res) return res;
18043 : }
18044 : }
18045 : }
18046 : break;
18047 : }
18048 : default:;
18049 : }
18050 : }
18051 : }
18052 : break;
18053 0 : case CFN_SIGNBIT:
18054 0 : if (call_expr_nargs (_q20) == 1)
18055 : {
18056 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18057 0 : if (integer_zerop (_q21))
18058 : {
18059 0 : switch (TREE_CODE (_p1))
18060 : {
18061 0 : case NEGATE_EXPR:
18062 0 : {
18063 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18064 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18065 : {
18066 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18067 : {
18068 0 : {
18069 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18070 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_SIGNBIT);
18071 0 : if (res) return res;
18072 : }
18073 : }
18074 : }
18075 : break;
18076 : }
18077 : default:;
18078 : }
18079 : }
18080 : }
18081 : break;
18082 2896 : case CFN_BUILT_IN_SIGNBIT:
18083 2896 : if (call_expr_nargs (_q20) == 1)
18084 : {
18085 2896 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18086 2896 : if (integer_zerop (_q21))
18087 : {
18088 2896 : switch (TREE_CODE (_p1))
18089 : {
18090 4 : case NEGATE_EXPR:
18091 4 : {
18092 4 : tree _q60 = TREE_OPERAND (_p1, 0);
18093 4 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18094 : {
18095 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18096 : {
18097 3 : {
18098 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18099 3 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBIT);
18100 3 : if (res) return res;
18101 : }
18102 : }
18103 : }
18104 : break;
18105 : }
18106 : default:;
18107 : }
18108 : }
18109 : }
18110 : break;
18111 : default:;
18112 : }
18113 : break;
18114 3140253 : default:;
18115 : }
18116 3140253 : if (integer_zerop (_q21))
18117 : {
18118 1934252 : switch (TREE_CODE (_p1))
18119 : {
18120 563995 : case CALL_EXPR:
18121 563995 : switch (get_call_combined_fn (_p1))
18122 : {
18123 0 : case CFN_PARITY:
18124 0 : if (call_expr_nargs (_p1) == 1)
18125 : {
18126 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18127 0 : switch (TREE_CODE (_q50))
18128 : {
18129 0 : CASE_CONVERT:
18130 0 : {
18131 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18132 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18133 : {
18134 0 : if (integer_zerop (_p2))
18135 : {
18136 0 : {
18137 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18138 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
18139 0 : if (res) return res;
18140 : }
18141 : }
18142 : }
18143 : break;
18144 : }
18145 0 : default:;
18146 : }
18147 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18148 : {
18149 0 : if (integer_zerop (_p2))
18150 : {
18151 0 : {
18152 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18153 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
18154 0 : if (res) return res;
18155 : }
18156 : }
18157 : }
18158 : }
18159 : break;
18160 7 : case CFN_BUILT_IN_FFS:
18161 7 : if (call_expr_nargs (_p1) == 1)
18162 : {
18163 7 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18164 7 : switch (TREE_CODE (_q50))
18165 : {
18166 0 : CASE_CONVERT:
18167 0 : {
18168 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18169 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18170 : {
18171 0 : if (integer_zerop (_p2))
18172 : {
18173 0 : {
18174 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18175 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
18176 0 : if (res) return res;
18177 : }
18178 : }
18179 : }
18180 : break;
18181 : }
18182 7 : default:;
18183 : }
18184 7 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18185 : {
18186 0 : if (integer_zerop (_p2))
18187 : {
18188 0 : {
18189 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18190 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
18191 0 : if (res) return res;
18192 : }
18193 : }
18194 : }
18195 : }
18196 : break;
18197 0 : case CFN_BUILT_IN_FFSIMAX:
18198 0 : if (call_expr_nargs (_p1) == 1)
18199 : {
18200 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18201 0 : switch (TREE_CODE (_q50))
18202 : {
18203 0 : CASE_CONVERT:
18204 0 : {
18205 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18206 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18207 : {
18208 0 : if (integer_zerop (_p2))
18209 : {
18210 0 : {
18211 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18212 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
18213 0 : if (res) return res;
18214 : }
18215 : }
18216 : }
18217 : break;
18218 : }
18219 0 : default:;
18220 : }
18221 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18222 : {
18223 0 : if (integer_zerop (_p2))
18224 : {
18225 0 : {
18226 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18227 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
18228 0 : if (res) return res;
18229 : }
18230 : }
18231 : }
18232 : }
18233 : break;
18234 2 : case CFN_BUILT_IN_POPCOUNT:
18235 2 : if (call_expr_nargs (_p1) == 1)
18236 : {
18237 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18238 2 : switch (TREE_CODE (_q50))
18239 : {
18240 1 : CASE_CONVERT:
18241 1 : {
18242 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18243 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18244 : {
18245 1 : if (integer_zerop (_p2))
18246 : {
18247 1 : {
18248 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18249 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
18250 1 : if (res) return res;
18251 : }
18252 : }
18253 : }
18254 : break;
18255 : }
18256 1 : default:;
18257 : }
18258 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18259 : {
18260 0 : if (integer_zerop (_p2))
18261 : {
18262 0 : {
18263 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18264 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
18265 0 : if (res) return res;
18266 : }
18267 : }
18268 : }
18269 : }
18270 : break;
18271 2 : case CFN_BUILT_IN_PARITYL:
18272 2 : if (call_expr_nargs (_p1) == 1)
18273 : {
18274 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18275 2 : switch (TREE_CODE (_q50))
18276 : {
18277 1 : CASE_CONVERT:
18278 1 : {
18279 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18280 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18281 : {
18282 1 : if (integer_zerop (_p2))
18283 : {
18284 1 : {
18285 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18286 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
18287 1 : if (res) return res;
18288 : }
18289 : }
18290 : }
18291 : break;
18292 : }
18293 1 : default:;
18294 : }
18295 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18296 : {
18297 0 : if (integer_zerop (_p2))
18298 : {
18299 0 : {
18300 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18301 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
18302 0 : if (res) return res;
18303 : }
18304 : }
18305 : }
18306 : }
18307 : break;
18308 16 : case CFN_BUILT_IN_FFSL:
18309 16 : if (call_expr_nargs (_p1) == 1)
18310 : {
18311 16 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18312 16 : switch (TREE_CODE (_q50))
18313 : {
18314 16 : CASE_CONVERT:
18315 16 : {
18316 16 : tree _q60 = TREE_OPERAND (_q50, 0);
18317 16 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18318 : {
18319 0 : if (integer_zerop (_p2))
18320 : {
18321 0 : {
18322 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18323 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
18324 0 : if (res) return res;
18325 : }
18326 : }
18327 : }
18328 : break;
18329 : }
18330 16 : default:;
18331 : }
18332 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18333 : {
18334 0 : if (integer_zerop (_p2))
18335 : {
18336 0 : {
18337 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18338 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
18339 0 : if (res) return res;
18340 : }
18341 : }
18342 : }
18343 : }
18344 : break;
18345 2 : case CFN_BUILT_IN_POPCOUNTLL:
18346 2 : if (call_expr_nargs (_p1) == 1)
18347 : {
18348 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18349 2 : switch (TREE_CODE (_q50))
18350 : {
18351 1 : CASE_CONVERT:
18352 1 : {
18353 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18354 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18355 : {
18356 1 : if (integer_zerop (_p2))
18357 : {
18358 1 : {
18359 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18360 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
18361 1 : if (res) return res;
18362 : }
18363 : }
18364 : }
18365 : break;
18366 : }
18367 1 : default:;
18368 : }
18369 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18370 : {
18371 0 : if (integer_zerop (_p2))
18372 : {
18373 0 : {
18374 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18375 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
18376 0 : if (res) return res;
18377 : }
18378 : }
18379 : }
18380 : }
18381 : break;
18382 0 : case CFN_POPCOUNT:
18383 0 : if (call_expr_nargs (_p1) == 1)
18384 : {
18385 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18386 0 : switch (TREE_CODE (_q50))
18387 : {
18388 0 : CASE_CONVERT:
18389 0 : {
18390 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18391 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18392 : {
18393 0 : if (integer_zerop (_p2))
18394 : {
18395 0 : {
18396 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18397 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
18398 0 : if (res) return res;
18399 : }
18400 : }
18401 : }
18402 : break;
18403 : }
18404 0 : default:;
18405 : }
18406 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18407 : {
18408 0 : if (integer_zerop (_p2))
18409 : {
18410 0 : {
18411 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18412 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
18413 0 : if (res) return res;
18414 : }
18415 : }
18416 : }
18417 : }
18418 : break;
18419 0 : case CFN_BUILT_IN_PARITYIMAX:
18420 0 : if (call_expr_nargs (_p1) == 1)
18421 : {
18422 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18423 0 : switch (TREE_CODE (_q50))
18424 : {
18425 0 : CASE_CONVERT:
18426 0 : {
18427 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18428 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18429 : {
18430 0 : if (integer_zerop (_p2))
18431 : {
18432 0 : {
18433 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18434 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
18435 0 : if (res) return res;
18436 : }
18437 : }
18438 : }
18439 : break;
18440 : }
18441 0 : default:;
18442 : }
18443 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18444 : {
18445 0 : if (integer_zerop (_p2))
18446 : {
18447 0 : {
18448 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18449 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
18450 0 : if (res) return res;
18451 : }
18452 : }
18453 : }
18454 : }
18455 : break;
18456 2 : case CFN_BUILT_IN_CLRSBL:
18457 2 : if (call_expr_nargs (_p1) == 1)
18458 : {
18459 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18460 2 : switch (TREE_CODE (_q50))
18461 : {
18462 0 : CASE_CONVERT:
18463 0 : {
18464 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18465 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18466 : {
18467 0 : switch (TREE_CODE (_p2))
18468 : {
18469 0 : case INTEGER_CST:
18470 0 : {
18471 0 : {
18472 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18473 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
18474 0 : if (res) return res;
18475 : }
18476 0 : break;
18477 : }
18478 : default:;
18479 : }
18480 : }
18481 : break;
18482 : }
18483 2 : default:;
18484 : }
18485 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18486 : {
18487 1 : switch (TREE_CODE (_p2))
18488 : {
18489 1 : case INTEGER_CST:
18490 1 : {
18491 1 : {
18492 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18493 1 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
18494 1 : if (res) return res;
18495 : }
18496 0 : break;
18497 : }
18498 : default:;
18499 : }
18500 : }
18501 : }
18502 : break;
18503 0 : case CFN_FFS:
18504 0 : if (call_expr_nargs (_p1) == 1)
18505 : {
18506 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18507 0 : switch (TREE_CODE (_q50))
18508 : {
18509 0 : CASE_CONVERT:
18510 0 : {
18511 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18512 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18513 : {
18514 0 : if (integer_zerop (_p2))
18515 : {
18516 0 : {
18517 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18518 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
18519 0 : if (res) return res;
18520 : }
18521 : }
18522 : }
18523 : break;
18524 : }
18525 0 : default:;
18526 : }
18527 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18528 : {
18529 0 : if (integer_zerop (_p2))
18530 : {
18531 0 : {
18532 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18533 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
18534 0 : if (res) return res;
18535 : }
18536 : }
18537 : }
18538 : }
18539 : break;
18540 2 : case CFN_BUILT_IN_PARITY:
18541 2 : if (call_expr_nargs (_p1) == 1)
18542 : {
18543 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18544 2 : switch (TREE_CODE (_q50))
18545 : {
18546 1 : CASE_CONVERT:
18547 1 : {
18548 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18549 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18550 : {
18551 1 : if (integer_zerop (_p2))
18552 : {
18553 1 : {
18554 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18555 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
18556 1 : if (res) return res;
18557 : }
18558 : }
18559 : }
18560 : break;
18561 : }
18562 1 : default:;
18563 : }
18564 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18565 : {
18566 0 : if (integer_zerop (_p2))
18567 : {
18568 0 : {
18569 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18570 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
18571 0 : if (res) return res;
18572 : }
18573 : }
18574 : }
18575 : }
18576 : break;
18577 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
18578 0 : if (call_expr_nargs (_p1) == 1)
18579 : {
18580 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18581 0 : switch (TREE_CODE (_q50))
18582 : {
18583 0 : CASE_CONVERT:
18584 0 : {
18585 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18586 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18587 : {
18588 0 : if (integer_zerop (_p2))
18589 : {
18590 0 : {
18591 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18592 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
18593 0 : if (res) return res;
18594 : }
18595 : }
18596 : }
18597 : break;
18598 : }
18599 0 : default:;
18600 : }
18601 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18602 : {
18603 0 : if (integer_zerop (_p2))
18604 : {
18605 0 : {
18606 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18607 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
18608 0 : if (res) return res;
18609 : }
18610 : }
18611 : }
18612 : }
18613 : break;
18614 0 : case CFN_BUILT_IN_CLRSBIMAX:
18615 0 : if (call_expr_nargs (_p1) == 1)
18616 : {
18617 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18618 0 : switch (TREE_CODE (_q50))
18619 : {
18620 0 : CASE_CONVERT:
18621 0 : {
18622 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18623 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18624 : {
18625 0 : switch (TREE_CODE (_p2))
18626 : {
18627 0 : case INTEGER_CST:
18628 0 : {
18629 0 : {
18630 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18631 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
18632 0 : if (res) return res;
18633 : }
18634 0 : break;
18635 : }
18636 : default:;
18637 : }
18638 : }
18639 : break;
18640 : }
18641 0 : default:;
18642 : }
18643 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18644 : {
18645 0 : switch (TREE_CODE (_p2))
18646 : {
18647 0 : case INTEGER_CST:
18648 0 : {
18649 0 : {
18650 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18651 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
18652 0 : if (res) return res;
18653 : }
18654 0 : break;
18655 : }
18656 : default:;
18657 : }
18658 : }
18659 : }
18660 : break;
18661 2 : case CFN_BUILT_IN_CLRSBLL:
18662 2 : if (call_expr_nargs (_p1) == 1)
18663 : {
18664 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18665 2 : switch (TREE_CODE (_q50))
18666 : {
18667 0 : CASE_CONVERT:
18668 0 : {
18669 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18670 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18671 : {
18672 0 : switch (TREE_CODE (_p2))
18673 : {
18674 0 : case INTEGER_CST:
18675 0 : {
18676 0 : {
18677 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18678 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
18679 0 : if (res) return res;
18680 : }
18681 0 : break;
18682 : }
18683 : default:;
18684 : }
18685 : }
18686 : break;
18687 : }
18688 2 : default:;
18689 : }
18690 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18691 : {
18692 1 : switch (TREE_CODE (_p2))
18693 : {
18694 1 : case INTEGER_CST:
18695 1 : {
18696 1 : {
18697 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18698 1 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
18699 1 : if (res) return res;
18700 : }
18701 0 : break;
18702 : }
18703 : default:;
18704 : }
18705 : }
18706 : }
18707 : break;
18708 0 : case CFN_CLRSB:
18709 0 : if (call_expr_nargs (_p1) == 1)
18710 : {
18711 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18712 0 : switch (TREE_CODE (_q50))
18713 : {
18714 0 : CASE_CONVERT:
18715 0 : {
18716 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18717 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18718 : {
18719 0 : switch (TREE_CODE (_p2))
18720 : {
18721 0 : case INTEGER_CST:
18722 0 : {
18723 0 : {
18724 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18725 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
18726 0 : if (res) return res;
18727 : }
18728 0 : break;
18729 : }
18730 : default:;
18731 : }
18732 : }
18733 : break;
18734 : }
18735 0 : default:;
18736 : }
18737 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18738 : {
18739 0 : switch (TREE_CODE (_p2))
18740 : {
18741 0 : case INTEGER_CST:
18742 0 : {
18743 0 : {
18744 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18745 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
18746 0 : if (res) return res;
18747 : }
18748 0 : break;
18749 : }
18750 : default:;
18751 : }
18752 : }
18753 : }
18754 : break;
18755 0 : case CFN_BUILT_IN_BSWAP128:
18756 0 : if (call_expr_nargs (_p1) == 1)
18757 : {
18758 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18759 0 : switch (TREE_CODE (_q50))
18760 : {
18761 0 : CASE_CONVERT:
18762 0 : {
18763 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18764 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18765 : {
18766 0 : if (integer_zerop (_p2))
18767 : {
18768 0 : {
18769 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18770 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
18771 0 : if (res) return res;
18772 : }
18773 : }
18774 : }
18775 : break;
18776 : }
18777 0 : default:;
18778 : }
18779 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18780 : {
18781 0 : if (integer_zerop (_p2))
18782 : {
18783 0 : {
18784 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18785 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
18786 0 : if (res) return res;
18787 : }
18788 : }
18789 : }
18790 : }
18791 : break;
18792 2 : case CFN_BUILT_IN_POPCOUNTL:
18793 2 : if (call_expr_nargs (_p1) == 1)
18794 : {
18795 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18796 2 : switch (TREE_CODE (_q50))
18797 : {
18798 1 : CASE_CONVERT:
18799 1 : {
18800 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18801 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18802 : {
18803 1 : if (integer_zerop (_p2))
18804 : {
18805 1 : {
18806 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18807 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
18808 1 : if (res) return res;
18809 : }
18810 : }
18811 : }
18812 : break;
18813 : }
18814 1 : default:;
18815 : }
18816 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18817 : {
18818 0 : if (integer_zerop (_p2))
18819 : {
18820 0 : {
18821 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18822 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
18823 0 : if (res) return res;
18824 : }
18825 : }
18826 : }
18827 : }
18828 : break;
18829 2 : case CFN_BUILT_IN_CLRSB:
18830 2 : if (call_expr_nargs (_p1) == 1)
18831 : {
18832 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18833 2 : switch (TREE_CODE (_q50))
18834 : {
18835 0 : CASE_CONVERT:
18836 0 : {
18837 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18838 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18839 : {
18840 0 : switch (TREE_CODE (_p2))
18841 : {
18842 0 : case INTEGER_CST:
18843 0 : {
18844 0 : {
18845 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18846 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
18847 0 : if (res) return res;
18848 : }
18849 0 : break;
18850 : }
18851 : default:;
18852 : }
18853 : }
18854 : break;
18855 : }
18856 2 : default:;
18857 : }
18858 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18859 : {
18860 1 : switch (TREE_CODE (_p2))
18861 : {
18862 1 : case INTEGER_CST:
18863 1 : {
18864 1 : {
18865 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18866 1 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
18867 1 : if (res) return res;
18868 : }
18869 0 : break;
18870 : }
18871 : default:;
18872 : }
18873 : }
18874 : }
18875 : break;
18876 0 : case CFN_BUILT_IN_FFSLL:
18877 0 : if (call_expr_nargs (_p1) == 1)
18878 : {
18879 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18880 0 : switch (TREE_CODE (_q50))
18881 : {
18882 0 : CASE_CONVERT:
18883 0 : {
18884 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18885 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18886 : {
18887 0 : if (integer_zerop (_p2))
18888 : {
18889 0 : {
18890 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18891 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
18892 0 : if (res) return res;
18893 : }
18894 : }
18895 : }
18896 : break;
18897 : }
18898 0 : default:;
18899 : }
18900 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18901 : {
18902 0 : if (integer_zerop (_p2))
18903 : {
18904 0 : {
18905 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18906 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
18907 0 : if (res) return res;
18908 : }
18909 : }
18910 : }
18911 : }
18912 : break;
18913 2 : case CFN_BUILT_IN_PARITYLL:
18914 2 : if (call_expr_nargs (_p1) == 1)
18915 : {
18916 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18917 2 : switch (TREE_CODE (_q50))
18918 : {
18919 1 : CASE_CONVERT:
18920 1 : {
18921 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18922 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18923 : {
18924 1 : if (integer_zerop (_p2))
18925 : {
18926 1 : {
18927 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18928 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
18929 1 : if (res) return res;
18930 : }
18931 : }
18932 : }
18933 : break;
18934 : }
18935 1 : default:;
18936 : }
18937 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18938 : {
18939 0 : if (integer_zerop (_p2))
18940 : {
18941 0 : {
18942 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18943 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
18944 0 : if (res) return res;
18945 : }
18946 : }
18947 : }
18948 : }
18949 : break;
18950 3 : case CFN_BUILT_IN_BSWAP16:
18951 3 : if (call_expr_nargs (_p1) == 1)
18952 : {
18953 3 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18954 3 : switch (TREE_CODE (_q50))
18955 : {
18956 0 : CASE_CONVERT:
18957 0 : {
18958 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18959 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18960 : {
18961 0 : if (integer_zerop (_p2))
18962 : {
18963 0 : {
18964 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18965 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
18966 0 : if (res) return res;
18967 : }
18968 : }
18969 : }
18970 : break;
18971 : }
18972 3 : default:;
18973 : }
18974 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18975 : {
18976 1 : if (integer_zerop (_p2))
18977 : {
18978 1 : {
18979 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18980 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
18981 1 : if (res) return res;
18982 : }
18983 : }
18984 : }
18985 : }
18986 : break;
18987 2 : case CFN_BUILT_IN_BSWAP32:
18988 2 : if (call_expr_nargs (_p1) == 1)
18989 : {
18990 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18991 2 : switch (TREE_CODE (_q50))
18992 : {
18993 0 : CASE_CONVERT:
18994 0 : {
18995 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18996 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18997 : {
18998 0 : if (integer_zerop (_p2))
18999 : {
19000 0 : {
19001 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19002 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
19003 0 : if (res) return res;
19004 : }
19005 : }
19006 : }
19007 : break;
19008 : }
19009 2 : default:;
19010 : }
19011 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19012 : {
19013 1 : if (integer_zerop (_p2))
19014 : {
19015 1 : {
19016 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19017 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
19018 1 : if (res) return res;
19019 : }
19020 : }
19021 : }
19022 : }
19023 : break;
19024 2 : case CFN_BUILT_IN_BSWAP64:
19025 2 : if (call_expr_nargs (_p1) == 1)
19026 : {
19027 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19028 2 : switch (TREE_CODE (_q50))
19029 : {
19030 1 : CASE_CONVERT:
19031 1 : {
19032 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19033 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19034 : {
19035 1 : if (integer_zerop (_p2))
19036 : {
19037 1 : {
19038 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19039 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
19040 1 : if (res) return res;
19041 : }
19042 : }
19043 : }
19044 : break;
19045 : }
19046 1 : default:;
19047 : }
19048 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19049 : {
19050 0 : if (integer_zerop (_p2))
19051 : {
19052 0 : {
19053 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19054 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
19055 0 : if (res) return res;
19056 : }
19057 : }
19058 : }
19059 : }
19060 : break;
19061 : default:;
19062 : }
19063 : break;
19064 : default:;
19065 : }
19066 : }
19067 : break;
19068 : }
19069 7 : case LTGT_EXPR:
19070 7 : {
19071 7 : tree _q20 = TREE_OPERAND (_p0, 0);
19072 7 : tree _q21 = TREE_OPERAND (_p0, 1);
19073 7 : if (zerop (_q21))
19074 : {
19075 0 : switch (TREE_CODE (_p2))
19076 : {
19077 0 : case NEGATE_EXPR:
19078 0 : {
19079 0 : tree _q60 = TREE_OPERAND (_p2, 0);
19080 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19081 : {
19082 0 : {
19083 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19084 0 : const enum tree_code cmp = LTGT_EXPR;
19085 0 : if (!HONOR_SIGNED_ZEROS (type)
19086 0 : && bitwise_equal_p (captures[0], captures[1])
19087 : )
19088 : {
19089 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1832;
19090 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1832;
19091 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1832;
19092 0 : {
19093 0 : tree _r;
19094 0 : _r = captures[1];
19095 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
19096 0 : return _r;
19097 : }
19098 0 : next_after_fail1832:;
19099 : }
19100 : }
19101 : }
19102 : break;
19103 : }
19104 0 : default:;
19105 : }
19106 0 : if (integer_zerop (_p2))
19107 : {
19108 0 : {
19109 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19110 0 : const enum tree_code cmp = LTGT_EXPR;
19111 0 : if (!HONOR_SIGNED_ZEROS (type)
19112 0 : && bitwise_equal_p (captures[0], captures[1])
19113 : )
19114 : {
19115 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1833;
19116 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1833;
19117 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1833;
19118 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1833;
19119 0 : {
19120 0 : tree _r;
19121 0 : _r = captures[1];
19122 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
19123 0 : return _r;
19124 : }
19125 0 : next_after_fail1833:;
19126 : }
19127 : }
19128 : }
19129 : }
19130 7 : switch (TREE_CODE (_q20))
19131 : {
19132 0 : case MINUS_EXPR:
19133 0 : {
19134 0 : tree _q30 = TREE_OPERAND (_q20, 0);
19135 0 : tree _q31 = TREE_OPERAND (_q20, 1);
19136 0 : if (zerop (_q21))
19137 : {
19138 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19139 : {
19140 0 : switch (TREE_CODE (_p2))
19141 : {
19142 0 : case MINUS_EXPR:
19143 0 : {
19144 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19145 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19146 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19147 : {
19148 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19149 : {
19150 0 : {
19151 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19152 0 : const enum tree_code cmp = LTGT_EXPR;
19153 0 : if (!HONOR_SIGNED_ZEROS (type)
19154 : )
19155 : {
19156 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1834;
19157 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1834;
19158 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1834;
19159 0 : {
19160 0 : tree _r;
19161 0 : _r = captures[0];
19162 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
19163 0 : return _r;
19164 : }
19165 0 : next_after_fail1834:;
19166 : }
19167 : }
19168 : }
19169 : }
19170 : break;
19171 : }
19172 : default:;
19173 : }
19174 : }
19175 : }
19176 0 : if (integer_zerop (_q21))
19177 : {
19178 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19179 : {
19180 0 : if (integer_zerop (_p2))
19181 : {
19182 0 : {
19183 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19184 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
19185 0 : if (res) return res;
19186 : }
19187 : }
19188 : }
19189 : }
19190 : break;
19191 : }
19192 : default:;
19193 : }
19194 : break;
19195 : }
19196 526880 : case GE_EXPR:
19197 526880 : {
19198 526880 : tree _q20 = TREE_OPERAND (_p0, 0);
19199 526880 : tree _q21 = TREE_OPERAND (_p0, 1);
19200 526880 : switch (TREE_CODE (_q20))
19201 : {
19202 53893 : CASE_CONVERT:
19203 53893 : {
19204 53893 : tree _q30 = TREE_OPERAND (_q20, 0);
19205 53893 : if (zerop (_q21))
19206 : {
19207 23509 : switch (TREE_CODE (_p2))
19208 : {
19209 13 : case NEGATE_EXPR:
19210 13 : {
19211 13 : tree _q70 = TREE_OPERAND (_p2, 0);
19212 13 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
19213 : {
19214 13 : {
19215 13 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
19216 13 : const enum tree_code cmp = GE_EXPR;
19217 13 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19218 13 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19219 0 : && element_precision (captures[1])
19220 0 : <= element_precision (captures[0])
19221 13 : && bitwise_equal_p (captures[1], captures[2])
19222 : )
19223 : {
19224 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19225 : )
19226 : {
19227 0 : {
19228 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19229 0 : if (types_match (captures[0], stype)
19230 : )
19231 : {
19232 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1835;
19233 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1835;
19234 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1835;
19235 0 : {
19236 0 : tree res_op0;
19237 0 : res_op0 = captures[0];
19238 0 : tree _r;
19239 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19240 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
19241 0 : return _r;
19242 : }
19243 13 : next_after_fail1835:;
19244 : }
19245 : else
19246 : {
19247 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1836;
19248 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1836;
19249 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1836;
19250 0 : {
19251 0 : tree res_op0;
19252 0 : {
19253 0 : tree _o1[1], _r1;
19254 0 : _o1[0] = captures[2];
19255 0 : if (TREE_TYPE (_o1[0]) != stype)
19256 : {
19257 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19258 : }
19259 : else
19260 : _r1 = _o1[0];
19261 0 : res_op0 = _r1;
19262 : }
19263 0 : tree _r;
19264 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19265 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
19266 0 : return _r;
19267 : }
19268 13 : next_after_fail1836:;
19269 : }
19270 : }
19271 : }
19272 : else
19273 : {
19274 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1837;
19275 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1837;
19276 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1837;
19277 0 : {
19278 0 : tree res_op0;
19279 0 : res_op0 = captures[2];
19280 0 : tree _r;
19281 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19282 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
19283 0 : return _r;
19284 : }
19285 13 : next_after_fail1837:;
19286 : }
19287 : }
19288 : }
19289 : }
19290 : break;
19291 : }
19292 : default:;
19293 : }
19294 : }
19295 : break;
19296 : }
19297 526880 : default:;
19298 : }
19299 526880 : if (zerop (_q21))
19300 : {
19301 140068 : switch (TREE_CODE (_p2))
19302 : {
19303 30023 : case NEGATE_EXPR:
19304 30023 : {
19305 30023 : tree _q60 = TREE_OPERAND (_p2, 0);
19306 30023 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19307 : {
19308 30017 : {
19309 30017 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
19310 30017 : const enum tree_code cmp = GE_EXPR;
19311 30017 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19312 30009 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19313 60018 : && element_precision (captures[1])
19314 30009 : <= element_precision (captures[0])
19315 60026 : && bitwise_equal_p (captures[1], captures[2])
19316 : )
19317 : {
19318 29911 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19319 : )
19320 : {
19321 46 : {
19322 46 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19323 46 : if (types_match (captures[0], stype)
19324 : )
19325 : {
19326 13 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1838;
19327 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1838;
19328 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1838;
19329 13 : {
19330 13 : tree res_op0;
19331 13 : res_op0 = captures[0];
19332 13 : tree _r;
19333 13 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19334 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
19335 13 : return _r;
19336 : }
19337 106 : next_after_fail1838:;
19338 : }
19339 : else
19340 : {
19341 33 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1839;
19342 33 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1839;
19343 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1839;
19344 33 : {
19345 33 : tree res_op0;
19346 33 : {
19347 33 : tree _o1[1], _r1;
19348 33 : _o1[0] = captures[2];
19349 33 : if (TREE_TYPE (_o1[0]) != stype)
19350 : {
19351 33 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19352 : }
19353 : else
19354 : _r1 = _o1[0];
19355 33 : res_op0 = _r1;
19356 : }
19357 33 : tree _r;
19358 33 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19359 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
19360 33 : return _r;
19361 : }
19362 106 : next_after_fail1839:;
19363 : }
19364 : }
19365 : }
19366 : else
19367 : {
19368 29865 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1840;
19369 29865 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1840;
19370 29865 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1840;
19371 29865 : {
19372 29865 : tree res_op0;
19373 29865 : res_op0 = captures[2];
19374 29865 : tree _r;
19375 29865 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19376 29865 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
19377 29865 : return _r;
19378 : }
19379 106 : next_after_fail1840:;
19380 : }
19381 : }
19382 : }
19383 : }
19384 : break;
19385 : }
19386 : default:;
19387 : }
19388 : }
19389 496969 : switch (TREE_CODE (_q20))
19390 : {
19391 31436 : case MINUS_EXPR:
19392 31436 : {
19393 31436 : tree _q30 = TREE_OPERAND (_q20, 0);
19394 31436 : tree _q31 = TREE_OPERAND (_q20, 1);
19395 31436 : if (zerop (_q21))
19396 : {
19397 30916 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19398 : {
19399 1 : switch (TREE_CODE (_p2))
19400 : {
19401 1 : case MINUS_EXPR:
19402 1 : {
19403 1 : tree _q80 = TREE_OPERAND (_p2, 0);
19404 1 : tree _q81 = TREE_OPERAND (_p2, 1);
19405 1 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19406 : {
19407 1 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19408 : {
19409 1 : {
19410 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19411 1 : const enum tree_code cmp = GE_EXPR;
19412 1 : if (!HONOR_SIGNED_ZEROS (type)
19413 1 : && !TYPE_UNSIGNED (type)
19414 : )
19415 : {
19416 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1841;
19417 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1841;
19418 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1841;
19419 1 : {
19420 1 : tree res_op0;
19421 1 : res_op0 = captures[0];
19422 1 : tree _r;
19423 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19424 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
19425 1 : return _r;
19426 : }
19427 0 : next_after_fail1841:;
19428 : }
19429 : }
19430 : }
19431 : }
19432 : break;
19433 : }
19434 : default:;
19435 : }
19436 : }
19437 : }
19438 : break;
19439 : }
19440 496968 : default:;
19441 : }
19442 496968 : if (integer_zerop (_q21))
19443 : {
19444 109605 : switch (TREE_CODE (_p1))
19445 : {
19446 65 : case BIT_NOT_EXPR:
19447 65 : {
19448 65 : tree _q50 = TREE_OPERAND (_p1, 0);
19449 65 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
19450 : {
19451 9 : {
19452 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
19453 9 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
19454 9 : if (res) return res;
19455 : }
19456 : }
19457 : break;
19458 : }
19459 109596 : default:;
19460 : }
19461 109596 : switch (TREE_CODE (_p2))
19462 : {
19463 30 : case BIT_NOT_EXPR:
19464 30 : {
19465 30 : tree _q60 = TREE_OPERAND (_p2, 0);
19466 30 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19467 : {
19468 9 : {
19469 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19470 9 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
19471 9 : if (res) return res;
19472 : }
19473 : }
19474 : break;
19475 : }
19476 : default:;
19477 : }
19478 : }
19479 : break;
19480 : }
19481 940055 : case GT_EXPR:
19482 940055 : {
19483 940055 : tree _q20 = TREE_OPERAND (_p0, 0);
19484 940055 : tree _q21 = TREE_OPERAND (_p0, 1);
19485 940055 : switch (TREE_CODE (_q20))
19486 : {
19487 93371 : CASE_CONVERT:
19488 93371 : {
19489 93371 : tree _q30 = TREE_OPERAND (_q20, 0);
19490 93371 : if (zerop (_q21))
19491 : {
19492 1563 : switch (TREE_CODE (_p2))
19493 : {
19494 20 : case NEGATE_EXPR:
19495 20 : {
19496 20 : tree _q70 = TREE_OPERAND (_p2, 0);
19497 20 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
19498 : {
19499 0 : {
19500 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
19501 0 : const enum tree_code cmp = GT_EXPR;
19502 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19503 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19504 0 : && element_precision (captures[1])
19505 0 : <= element_precision (captures[0])
19506 0 : && bitwise_equal_p (captures[1], captures[2])
19507 : )
19508 : {
19509 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19510 : )
19511 : {
19512 0 : {
19513 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19514 0 : if (types_match (captures[0], stype)
19515 : )
19516 : {
19517 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1842;
19518 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1842;
19519 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1842;
19520 0 : {
19521 0 : tree res_op0;
19522 0 : res_op0 = captures[0];
19523 0 : tree _r;
19524 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19525 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
19526 0 : return _r;
19527 : }
19528 0 : next_after_fail1842:;
19529 : }
19530 : else
19531 : {
19532 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1843;
19533 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1843;
19534 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1843;
19535 0 : {
19536 0 : tree res_op0;
19537 0 : {
19538 0 : tree _o1[1], _r1;
19539 0 : _o1[0] = captures[2];
19540 0 : if (TREE_TYPE (_o1[0]) != stype)
19541 : {
19542 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19543 : }
19544 : else
19545 : _r1 = _o1[0];
19546 0 : res_op0 = _r1;
19547 : }
19548 0 : tree _r;
19549 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19550 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
19551 0 : return _r;
19552 : }
19553 0 : next_after_fail1843:;
19554 : }
19555 : }
19556 : }
19557 : else
19558 : {
19559 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1844;
19560 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1844;
19561 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1844;
19562 0 : {
19563 0 : tree res_op0;
19564 0 : res_op0 = captures[2];
19565 0 : tree _r;
19566 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19567 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
19568 0 : return _r;
19569 : }
19570 0 : next_after_fail1844:;
19571 : }
19572 : }
19573 : }
19574 : }
19575 : break;
19576 : }
19577 : default:;
19578 : }
19579 : }
19580 : break;
19581 : }
19582 940055 : default:;
19583 : }
19584 940055 : if (zerop (_q21))
19585 : {
19586 246429 : switch (TREE_CODE (_p2))
19587 : {
19588 306 : case NEGATE_EXPR:
19589 306 : {
19590 306 : tree _q60 = TREE_OPERAND (_p2, 0);
19591 306 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19592 : {
19593 128 : {
19594 128 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
19595 128 : const enum tree_code cmp = GT_EXPR;
19596 128 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19597 96 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19598 192 : && element_precision (captures[1])
19599 96 : <= element_precision (captures[0])
19600 224 : && bitwise_equal_p (captures[1], captures[2])
19601 : )
19602 : {
19603 91 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19604 : )
19605 : {
19606 0 : {
19607 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19608 0 : if (types_match (captures[0], stype)
19609 : )
19610 : {
19611 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1845;
19612 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1845;
19613 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1845;
19614 0 : {
19615 0 : tree res_op0;
19616 0 : res_op0 = captures[0];
19617 0 : tree _r;
19618 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19619 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
19620 0 : return _r;
19621 : }
19622 37 : next_after_fail1845:;
19623 : }
19624 : else
19625 : {
19626 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1846;
19627 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1846;
19628 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1846;
19629 0 : {
19630 0 : tree res_op0;
19631 0 : {
19632 0 : tree _o1[1], _r1;
19633 0 : _o1[0] = captures[2];
19634 0 : if (TREE_TYPE (_o1[0]) != stype)
19635 : {
19636 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19637 : }
19638 : else
19639 : _r1 = _o1[0];
19640 0 : res_op0 = _r1;
19641 : }
19642 0 : tree _r;
19643 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19644 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
19645 0 : return _r;
19646 : }
19647 37 : next_after_fail1846:;
19648 : }
19649 : }
19650 : }
19651 : else
19652 : {
19653 91 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1847;
19654 91 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1847;
19655 91 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1847;
19656 91 : {
19657 91 : tree res_op0;
19658 91 : res_op0 = captures[2];
19659 91 : tree _r;
19660 91 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19661 91 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
19662 91 : return _r;
19663 : }
19664 37 : next_after_fail1847:;
19665 : }
19666 : }
19667 : }
19668 : }
19669 : break;
19670 : }
19671 : default:;
19672 : }
19673 : }
19674 939964 : switch (TREE_CODE (_q20))
19675 : {
19676 944 : case MINUS_EXPR:
19677 944 : {
19678 944 : tree _q30 = TREE_OPERAND (_q20, 0);
19679 944 : tree _q31 = TREE_OPERAND (_q20, 1);
19680 944 : if (zerop (_q21))
19681 : {
19682 160 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19683 : {
19684 15 : switch (TREE_CODE (_p2))
19685 : {
19686 9 : case MINUS_EXPR:
19687 9 : {
19688 9 : tree _q80 = TREE_OPERAND (_p2, 0);
19689 9 : tree _q81 = TREE_OPERAND (_p2, 1);
19690 9 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19691 : {
19692 9 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19693 : {
19694 9 : {
19695 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19696 9 : const enum tree_code cmp = GT_EXPR;
19697 9 : if (!HONOR_SIGNED_ZEROS (type)
19698 9 : && !TYPE_UNSIGNED (type)
19699 : )
19700 : {
19701 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1848;
19702 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1848;
19703 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1848;
19704 9 : {
19705 9 : tree res_op0;
19706 9 : res_op0 = captures[0];
19707 9 : tree _r;
19708 9 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19709 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
19710 9 : return _r;
19711 : }
19712 0 : next_after_fail1848:;
19713 : }
19714 : }
19715 : }
19716 : }
19717 : break;
19718 : }
19719 : default:;
19720 : }
19721 : }
19722 : }
19723 : break;
19724 : }
19725 : default:;
19726 : }
19727 : break;
19728 : }
19729 1355303 : case LE_EXPR:
19730 1355303 : {
19731 1355303 : tree _q20 = TREE_OPERAND (_p0, 0);
19732 1355303 : tree _q21 = TREE_OPERAND (_p0, 1);
19733 1355303 : switch (TREE_CODE (_q20))
19734 : {
19735 139884 : CASE_CONVERT:
19736 139884 : {
19737 139884 : tree _q30 = TREE_OPERAND (_q20, 0);
19738 139884 : if (zerop (_q21))
19739 : {
19740 1304 : switch (TREE_CODE (_p2))
19741 : {
19742 0 : case NEGATE_EXPR:
19743 0 : {
19744 0 : tree _q70 = TREE_OPERAND (_p2, 0);
19745 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
19746 : {
19747 0 : {
19748 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
19749 0 : const enum tree_code cmp = LE_EXPR;
19750 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19751 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19752 0 : && element_precision (captures[1])
19753 0 : <= element_precision (captures[0])
19754 0 : && bitwise_equal_p (captures[1], captures[2])
19755 : )
19756 : {
19757 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
19758 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
19759 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19760 : )
19761 : {
19762 0 : {
19763 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19764 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
19765 0 : if (types_match (captures[0], stype)
19766 : )
19767 : {
19768 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1849;
19769 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1849;
19770 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1849;
19771 0 : {
19772 0 : tree res_op0;
19773 0 : {
19774 0 : tree _o1[1], _r1;
19775 0 : {
19776 0 : tree _o2[1], _r2;
19777 0 : _o2[0] = captures[0];
19778 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
19779 0 : _o1[0] = _r2;
19780 : }
19781 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19782 0 : res_op0 = _r1;
19783 : }
19784 0 : tree _r;
19785 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19786 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
19787 0 : return _r;
19788 : }
19789 0 : next_after_fail1849:;
19790 : }
19791 : else
19792 : {
19793 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1850;
19794 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1850;
19795 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1850;
19796 0 : {
19797 0 : tree res_op0;
19798 0 : {
19799 0 : tree _o1[1], _r1;
19800 0 : {
19801 0 : tree _o2[1], _r2;
19802 0 : {
19803 0 : tree _o3[1], _r3;
19804 0 : _o3[0] = captures[2];
19805 0 : if (TREE_TYPE (_o3[0]) != stype)
19806 : {
19807 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
19808 : }
19809 : else
19810 : _r3 = _o3[0];
19811 0 : _o2[0] = _r3;
19812 : }
19813 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
19814 0 : _o1[0] = _r2;
19815 : }
19816 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19817 0 : res_op0 = _r1;
19818 : }
19819 0 : tree _r;
19820 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
19822 0 : return _r;
19823 : }
19824 0 : next_after_fail1850:;
19825 : }
19826 : }
19827 : }
19828 : else
19829 : {
19830 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1851;
19831 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1851;
19832 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1851;
19833 0 : {
19834 0 : tree res_op0;
19835 0 : {
19836 0 : tree _o1[1], _r1;
19837 0 : {
19838 0 : tree _o2[1], _r2;
19839 0 : _o2[0] = captures[2];
19840 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
19841 0 : _o1[0] = _r2;
19842 : }
19843 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19844 0 : res_op0 = _r1;
19845 : }
19846 0 : tree _r;
19847 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19848 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
19849 0 : return _r;
19850 : }
19851 0 : next_after_fail1851:;
19852 : }
19853 : }
19854 : }
19855 : }
19856 : break;
19857 : }
19858 : default:;
19859 : }
19860 : }
19861 : break;
19862 : }
19863 1355303 : default:;
19864 : }
19865 1355303 : if (zerop (_q21))
19866 : {
19867 122244 : switch (TREE_CODE (_p2))
19868 : {
19869 7 : case NEGATE_EXPR:
19870 7 : {
19871 7 : tree _q60 = TREE_OPERAND (_p2, 0);
19872 7 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19873 : {
19874 7 : {
19875 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
19876 7 : const enum tree_code cmp = LE_EXPR;
19877 7 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19878 7 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19879 14 : && element_precision (captures[1])
19880 7 : <= element_precision (captures[0])
19881 14 : && bitwise_equal_p (captures[1], captures[2])
19882 : )
19883 : {
19884 14 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
19885 7 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
19886 7 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19887 : )
19888 : {
19889 7 : {
19890 7 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19891 7 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
19892 7 : if (types_match (captures[0], stype)
19893 : )
19894 : {
19895 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1852;
19896 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1852;
19897 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1852;
19898 7 : {
19899 7 : tree res_op0;
19900 7 : {
19901 7 : tree _o1[1], _r1;
19902 7 : {
19903 7 : tree _o2[1], _r2;
19904 7 : _o2[0] = captures[0];
19905 7 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
19906 7 : _o1[0] = _r2;
19907 : }
19908 7 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19909 7 : res_op0 = _r1;
19910 : }
19911 7 : tree _r;
19912 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19913 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
19914 7 : return _r;
19915 : }
19916 0 : next_after_fail1852:;
19917 : }
19918 : else
19919 : {
19920 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1853;
19921 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1853;
19922 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1853;
19923 0 : {
19924 0 : tree res_op0;
19925 0 : {
19926 0 : tree _o1[1], _r1;
19927 0 : {
19928 0 : tree _o2[1], _r2;
19929 0 : {
19930 0 : tree _o3[1], _r3;
19931 0 : _o3[0] = captures[2];
19932 0 : if (TREE_TYPE (_o3[0]) != stype)
19933 : {
19934 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
19935 : }
19936 : else
19937 : _r3 = _o3[0];
19938 0 : _o2[0] = _r3;
19939 : }
19940 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
19941 0 : _o1[0] = _r2;
19942 : }
19943 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19944 0 : res_op0 = _r1;
19945 : }
19946 0 : tree _r;
19947 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19948 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
19949 0 : return _r;
19950 : }
19951 0 : next_after_fail1853:;
19952 : }
19953 : }
19954 : }
19955 : else
19956 : {
19957 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1854;
19958 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1854;
19959 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1854;
19960 0 : {
19961 0 : tree res_op0;
19962 0 : {
19963 0 : tree _o1[1], _r1;
19964 0 : {
19965 0 : tree _o2[1], _r2;
19966 0 : _o2[0] = captures[2];
19967 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
19968 0 : _o1[0] = _r2;
19969 : }
19970 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19971 0 : res_op0 = _r1;
19972 : }
19973 0 : tree _r;
19974 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19975 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
19976 0 : return _r;
19977 : }
19978 0 : next_after_fail1854:;
19979 : }
19980 : }
19981 : }
19982 : }
19983 : break;
19984 : }
19985 : default:;
19986 : }
19987 : }
19988 1355296 : switch (TREE_CODE (_q20))
19989 : {
19990 193 : case MINUS_EXPR:
19991 193 : {
19992 193 : tree _q30 = TREE_OPERAND (_q20, 0);
19993 193 : tree _q31 = TREE_OPERAND (_q20, 1);
19994 193 : if (zerop (_q21))
19995 : {
19996 148 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19997 : {
19998 0 : switch (TREE_CODE (_p2))
19999 : {
20000 0 : case MINUS_EXPR:
20001 0 : {
20002 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20003 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20004 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20005 : {
20006 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20007 : {
20008 0 : {
20009 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20010 0 : const enum tree_code cmp = LE_EXPR;
20011 0 : if (!HONOR_SIGNED_ZEROS (type)
20012 0 : && !TYPE_UNSIGNED (type)
20013 : )
20014 : {
20015 0 : if (ANY_INTEGRAL_TYPE_P (type)
20016 0 : && !TYPE_OVERFLOW_WRAPS (type)
20017 : )
20018 : {
20019 0 : {
20020 0 : tree utype = unsigned_type_for (type);
20021 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1855;
20022 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1855;
20023 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1855;
20024 0 : {
20025 0 : tree res_op0;
20026 0 : {
20027 0 : tree _o1[1], _r1;
20028 0 : {
20029 0 : tree _o2[1], _r2;
20030 0 : _o2[0] = captures[0];
20031 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20032 0 : _o1[0] = _r2;
20033 : }
20034 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20035 0 : res_op0 = _r1;
20036 : }
20037 0 : tree _r;
20038 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20039 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
20040 0 : return _r;
20041 : }
20042 0 : next_after_fail1855:;
20043 : }
20044 : }
20045 : else
20046 : {
20047 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1856;
20048 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1856;
20049 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1856;
20050 0 : {
20051 0 : tree res_op0;
20052 0 : {
20053 0 : tree _o1[1], _r1;
20054 0 : _o1[0] = captures[0];
20055 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20056 0 : res_op0 = _r1;
20057 : }
20058 0 : tree _r;
20059 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
20060 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
20061 0 : return _r;
20062 : }
20063 0 : next_after_fail1856:;
20064 : }
20065 : }
20066 : }
20067 : }
20068 : }
20069 : break;
20070 : }
20071 : default:;
20072 : }
20073 : }
20074 : }
20075 : break;
20076 : }
20077 : default:;
20078 : }
20079 : break;
20080 : }
20081 1765134 : case LT_EXPR:
20082 1765134 : {
20083 1765134 : tree _q20 = TREE_OPERAND (_p0, 0);
20084 1765134 : tree _q21 = TREE_OPERAND (_p0, 1);
20085 1765134 : switch (TREE_CODE (_q20))
20086 : {
20087 109168 : CASE_CONVERT:
20088 109168 : {
20089 109168 : tree _q30 = TREE_OPERAND (_q20, 0);
20090 109168 : if (zerop (_q21))
20091 : {
20092 14384 : switch (TREE_CODE (_p2))
20093 : {
20094 8 : case NEGATE_EXPR:
20095 8 : {
20096 8 : tree _q70 = TREE_OPERAND (_p2, 0);
20097 8 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
20098 : {
20099 0 : {
20100 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
20101 0 : const enum tree_code cmp = LT_EXPR;
20102 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20103 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20104 0 : && element_precision (captures[1])
20105 0 : <= element_precision (captures[0])
20106 0 : && bitwise_equal_p (captures[1], captures[2])
20107 : )
20108 : {
20109 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20110 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20111 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20112 : )
20113 : {
20114 0 : {
20115 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20116 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20117 0 : if (types_match (captures[0], stype)
20118 : )
20119 : {
20120 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1857;
20121 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1857;
20122 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1857;
20123 0 : {
20124 0 : tree res_op0;
20125 0 : {
20126 0 : tree _o1[1], _r1;
20127 0 : {
20128 0 : tree _o2[1], _r2;
20129 0 : _o2[0] = captures[0];
20130 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20131 0 : _o1[0] = _r2;
20132 : }
20133 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20134 0 : res_op0 = _r1;
20135 : }
20136 0 : tree _r;
20137 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20138 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
20139 0 : return _r;
20140 : }
20141 0 : next_after_fail1857:;
20142 : }
20143 : else
20144 : {
20145 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1858;
20146 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1858;
20147 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1858;
20148 0 : {
20149 0 : tree res_op0;
20150 0 : {
20151 0 : tree _o1[1], _r1;
20152 0 : {
20153 0 : tree _o2[1], _r2;
20154 0 : {
20155 0 : tree _o3[1], _r3;
20156 0 : _o3[0] = captures[2];
20157 0 : if (TREE_TYPE (_o3[0]) != stype)
20158 : {
20159 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20160 : }
20161 : else
20162 : _r3 = _o3[0];
20163 0 : _o2[0] = _r3;
20164 : }
20165 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20166 0 : _o1[0] = _r2;
20167 : }
20168 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20169 0 : res_op0 = _r1;
20170 : }
20171 0 : tree _r;
20172 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20173 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
20174 0 : return _r;
20175 : }
20176 0 : next_after_fail1858:;
20177 : }
20178 : }
20179 : }
20180 : else
20181 : {
20182 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1859;
20183 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1859;
20184 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1859;
20185 0 : {
20186 0 : tree res_op0;
20187 0 : {
20188 0 : tree _o1[1], _r1;
20189 0 : {
20190 0 : tree _o2[1], _r2;
20191 0 : _o2[0] = captures[2];
20192 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20193 0 : _o1[0] = _r2;
20194 : }
20195 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20196 0 : res_op0 = _r1;
20197 : }
20198 0 : tree _r;
20199 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20200 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
20201 0 : return _r;
20202 : }
20203 0 : next_after_fail1859:;
20204 : }
20205 : }
20206 : }
20207 : }
20208 : break;
20209 : }
20210 : default:;
20211 : }
20212 : }
20213 : break;
20214 : }
20215 1765134 : default:;
20216 : }
20217 1765134 : if (zerop (_q21))
20218 : {
20219 371280 : switch (TREE_CODE (_p2))
20220 : {
20221 33 : case NEGATE_EXPR:
20222 33 : {
20223 33 : tree _q60 = TREE_OPERAND (_p2, 0);
20224 33 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20225 : {
20226 25 : {
20227 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
20228 25 : const enum tree_code cmp = LT_EXPR;
20229 25 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20230 25 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20231 50 : && element_precision (captures[1])
20232 25 : <= element_precision (captures[0])
20233 50 : && bitwise_equal_p (captures[1], captures[2])
20234 : )
20235 : {
20236 50 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20237 25 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20238 26 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20239 : )
20240 : {
20241 24 : {
20242 24 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20243 24 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20244 24 : if (types_match (captures[0], stype)
20245 : )
20246 : {
20247 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1860;
20248 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1860;
20249 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1860;
20250 24 : {
20251 24 : tree res_op0;
20252 24 : {
20253 24 : tree _o1[1], _r1;
20254 24 : {
20255 24 : tree _o2[1], _r2;
20256 24 : _o2[0] = captures[0];
20257 24 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20258 24 : _o1[0] = _r2;
20259 : }
20260 24 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20261 24 : res_op0 = _r1;
20262 : }
20263 24 : tree _r;
20264 24 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20265 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
20266 24 : return _r;
20267 : }
20268 0 : next_after_fail1860:;
20269 : }
20270 : else
20271 : {
20272 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1861;
20273 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1861;
20274 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1861;
20275 0 : {
20276 0 : tree res_op0;
20277 0 : {
20278 0 : tree _o1[1], _r1;
20279 0 : {
20280 0 : tree _o2[1], _r2;
20281 0 : {
20282 0 : tree _o3[1], _r3;
20283 0 : _o3[0] = captures[2];
20284 0 : if (TREE_TYPE (_o3[0]) != stype)
20285 : {
20286 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20287 : }
20288 : else
20289 : _r3 = _o3[0];
20290 0 : _o2[0] = _r3;
20291 : }
20292 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20293 0 : _o1[0] = _r2;
20294 : }
20295 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20296 0 : res_op0 = _r1;
20297 : }
20298 0 : tree _r;
20299 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20300 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
20301 0 : return _r;
20302 : }
20303 0 : next_after_fail1861:;
20304 : }
20305 : }
20306 : }
20307 : else
20308 : {
20309 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1862;
20310 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1862;
20311 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1862;
20312 1 : {
20313 1 : tree res_op0;
20314 1 : {
20315 1 : tree _o1[1], _r1;
20316 1 : {
20317 1 : tree _o2[1], _r2;
20318 1 : _o2[0] = captures[2];
20319 1 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20320 1 : _o1[0] = _r2;
20321 : }
20322 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20323 1 : res_op0 = _r1;
20324 : }
20325 1 : tree _r;
20326 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20327 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
20328 1 : return _r;
20329 : }
20330 0 : next_after_fail1862:;
20331 : }
20332 : }
20333 : }
20334 : }
20335 : break;
20336 : }
20337 : default:;
20338 : }
20339 : }
20340 1765109 : switch (TREE_CODE (_q20))
20341 : {
20342 11147 : case MINUS_EXPR:
20343 11147 : {
20344 11147 : tree _q30 = TREE_OPERAND (_q20, 0);
20345 11147 : tree _q31 = TREE_OPERAND (_q20, 1);
20346 11147 : if (zerop (_q21))
20347 : {
20348 7358 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20349 : {
20350 0 : switch (TREE_CODE (_p2))
20351 : {
20352 0 : case MINUS_EXPR:
20353 0 : {
20354 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20355 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20356 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20357 : {
20358 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20359 : {
20360 0 : {
20361 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20362 0 : const enum tree_code cmp = LT_EXPR;
20363 0 : if (!HONOR_SIGNED_ZEROS (type)
20364 0 : && !TYPE_UNSIGNED (type)
20365 : )
20366 : {
20367 0 : if (ANY_INTEGRAL_TYPE_P (type)
20368 0 : && !TYPE_OVERFLOW_WRAPS (type)
20369 : )
20370 : {
20371 0 : {
20372 0 : tree utype = unsigned_type_for (type);
20373 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1863;
20374 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1863;
20375 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1863;
20376 0 : {
20377 0 : tree res_op0;
20378 0 : {
20379 0 : tree _o1[1], _r1;
20380 0 : {
20381 0 : tree _o2[1], _r2;
20382 0 : _o2[0] = captures[0];
20383 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20384 0 : _o1[0] = _r2;
20385 : }
20386 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20387 0 : res_op0 = _r1;
20388 : }
20389 0 : tree _r;
20390 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20391 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
20392 0 : return _r;
20393 : }
20394 0 : next_after_fail1863:;
20395 : }
20396 : }
20397 : else
20398 : {
20399 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1864;
20400 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1864;
20401 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1864;
20402 0 : {
20403 0 : tree res_op0;
20404 0 : {
20405 0 : tree _o1[1], _r1;
20406 0 : _o1[0] = captures[0];
20407 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20408 0 : res_op0 = _r1;
20409 : }
20410 0 : tree _r;
20411 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
20412 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
20413 0 : return _r;
20414 : }
20415 0 : next_after_fail1864:;
20416 : }
20417 : }
20418 : }
20419 : }
20420 : }
20421 : break;
20422 : }
20423 : default:;
20424 : }
20425 : }
20426 : }
20427 : break;
20428 : }
20429 1765109 : default:;
20430 : }
20431 1765109 : if (integer_zerop (_q21))
20432 : {
20433 315433 : switch (TREE_CODE (_p1))
20434 : {
20435 21 : case BIT_NOT_EXPR:
20436 21 : {
20437 21 : tree _q50 = TREE_OPERAND (_p1, 0);
20438 21 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
20439 : {
20440 13 : {
20441 13 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
20442 13 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
20443 13 : if (res) return res;
20444 : }
20445 : }
20446 : break;
20447 : }
20448 315420 : default:;
20449 : }
20450 315420 : switch (TREE_CODE (_p2))
20451 : {
20452 8 : case BIT_NOT_EXPR:
20453 8 : {
20454 8 : tree _q60 = TREE_OPERAND (_p2, 0);
20455 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20456 : {
20457 8 : {
20458 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20459 8 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
20460 8 : if (res) return res;
20461 : }
20462 : }
20463 : break;
20464 : }
20465 315412 : default:;
20466 : }
20467 315412 : switch (TREE_CODE (_p1))
20468 : {
20469 279599 : case INTEGER_CST:
20470 279599 : {
20471 279599 : if (integer_zerop (_p2))
20472 : {
20473 8659 : {
20474 8659 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20475 8659 : if (integer_pow2p (captures[1])
20476 8659 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
20477 : )
20478 : {
20479 8442 : {
20480 8442 : int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
20481 8442 : if (shift >= 0
20482 : )
20483 : {
20484 8427 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1865;
20485 8427 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1865;
20486 8427 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1865;
20487 8427 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1865;
20488 8427 : {
20489 8427 : tree res_op0;
20490 8427 : {
20491 8427 : tree _o1[1], _r1;
20492 8427 : {
20493 8427 : tree _o2[2], _r2;
20494 8427 : _o2[0] = captures[0];
20495 8427 : _o2[1] = build_int_cst (integer_type_node, shift);
20496 8427 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
20497 8427 : _o1[0] = _r2;
20498 : }
20499 8427 : if (TREE_TYPE (_o1[0]) != type)
20500 : {
20501 8402 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
20502 : }
20503 : else
20504 : _r1 = _o1[0];
20505 8427 : res_op0 = _r1;
20506 : }
20507 8427 : tree res_op1;
20508 8427 : res_op1 = captures[1];
20509 8427 : tree _r;
20510 8427 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20511 8427 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1053, __FILE__, __LINE__, true);
20512 8442 : return _r;
20513 : }
20514 : next_after_fail1865:;
20515 : }
20516 : else
20517 : {
20518 15 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1866;
20519 15 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1866;
20520 15 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1866;
20521 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1866;
20522 15 : {
20523 15 : tree res_op0;
20524 15 : {
20525 15 : tree _o1[1], _r1;
20526 15 : _o1[0] = captures[0];
20527 15 : if (TREE_TYPE (_o1[0]) != type)
20528 : {
20529 15 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
20530 : }
20531 : else
20532 : _r1 = _o1[0];
20533 15 : res_op0 = _r1;
20534 : }
20535 15 : tree res_op1;
20536 15 : res_op1 = captures[1];
20537 15 : tree _r;
20538 15 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20539 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
20540 15 : return _r;
20541 : }
20542 : next_after_fail1866:;
20543 : }
20544 : }
20545 : }
20546 : }
20547 : }
20548 : break;
20549 : }
20550 : default:;
20551 : }
20552 : }
20553 : break;
20554 : }
20555 13221341 : default:;
20556 : }
20557 13221341 : {
20558 13221341 : tree _p0_pops[1];
20559 13221341 : if (tree_logical_inverted_value (_p0, _p0_pops))
20560 : {
20561 585903 : tree _q20 = _p0_pops[0];
20562 585903 : if (tree_truth_valued_p (_q20))
20563 : {
20564 4464 : {
20565 4464 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
20566 8928 : if (COND_EXPR == VEC_COND_EXPR
20567 4464 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
20568 : )
20569 : {
20570 3125 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1867;
20571 46 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1867;
20572 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1867;
20573 37 : {
20574 37 : tree res_op0;
20575 37 : res_op0 = captures[0];
20576 37 : tree res_op1;
20577 37 : res_op1 = captures[2];
20578 37 : tree res_op2;
20579 37 : res_op2 = captures[1];
20580 37 : tree _r;
20581 37 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
20582 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
20583 37 : return _r;
20584 : }
20585 4427 : next_after_fail1867:;
20586 : }
20587 : }
20588 : }
20589 : }
20590 : }
20591 13221304 : return NULL_TREE;
20592 : }
20593 : #pragma GCC diagnostic pop
|