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 1904281 : tree_power_of_two_cand (tree t, tree *res_ops)
11 : {
12 1904281 : const tree type = TREE_TYPE (t);
13 1904281 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 1904281 : if (TREE_SIDE_EFFECTS (t)) return false;
15 1903516 : switch (TREE_CODE (t))
16 : {
17 1576274 : case INTEGER_CST:
18 1576274 : {
19 1576274 : {
20 1576274 : tree captures[1] ATTRIBUTE_UNUSED = { t };
21 1576274 : {
22 1576274 : res_ops[0] = captures[0];
23 1576274 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 12, __FILE__, __LINE__, false);
24 : return true;
25 : }
26 : }
27 16 : break;
28 : }
29 16 : case LSHIFT_EXPR:
30 16 : {
31 16 : tree _p0 = TREE_OPERAND (t, 0);
32 16 : tree _p1 = TREE_OPERAND (t, 1);
33 16 : switch (TREE_CODE (_p0))
34 : {
35 16 : case INTEGER_CST:
36 16 : {
37 16 : {
38 16 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
39 16 : {
40 16 : res_ops[0] = captures[0];
41 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 13, __FILE__, __LINE__, false);
42 16 : return true;
43 : }
44 : }
45 : break;
46 : }
47 : default:;
48 : }
49 : break;
50 : }
51 : default:;
52 : }
53 : return false;
54 : }
55 :
56 : bool
57 80111997 : tree_with_possible_nonzero_bits (tree t)
58 : {
59 80111997 : const tree type = TREE_TYPE (t);
60 80111997 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
61 80111997 : if (TREE_SIDE_EFFECTS (t)) return false;
62 75105468 : switch (TREE_CODE (t))
63 : {
64 1995397 : case BIT_AND_EXPR:
65 1995397 : {
66 1995397 : tree _p0 = TREE_OPERAND (t, 0);
67 1995397 : tree _p1 = TREE_OPERAND (t, 1);
68 1995397 : if (tree_with_possible_nonzero_bits_1 (_p0))
69 : {
70 861717 : {
71 861717 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
72 861717 : {
73 861717 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
74 861717 : return true;
75 : }
76 : }
77 : }
78 1133680 : if (tree_with_possible_nonzero_bits_1 (_p1))
79 : {
80 957772 : {
81 957772 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
82 957772 : {
83 957772 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
84 957772 : return true;
85 : }
86 : }
87 : }
88 : break;
89 : }
90 73285979 : default:;
91 : }
92 73285979 : if (tree_with_possible_nonzero_bits_1 (t))
93 : {
94 40669953 : {
95 40669953 : tree captures[1] ATTRIBUTE_UNUSED = { t };
96 40669953 : {
97 40669953 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 36, __FILE__, __LINE__, false);
98 40669953 : return true;
99 : }
100 : }
101 : }
102 : return false;
103 : }
104 :
105 : bool
106 747614 : tree_vec_same_elem_p (tree t)
107 : {
108 747614 : const tree type = TREE_TYPE (t);
109 747614 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
110 747614 : if (TREE_SIDE_EFFECTS (t)) return false;
111 747614 : switch (TREE_CODE (t))
112 : {
113 0 : case VEC_DUPLICATE_EXPR:
114 0 : {
115 0 : tree _p0 = TREE_OPERAND (t, 0);
116 0 : {
117 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
118 0 : {
119 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 46, __FILE__, __LINE__, false);
120 0 : return true;
121 : }
122 : }
123 : break;
124 : }
125 : case CONSTRUCTOR:
126 : {
127 : {
128 : tree captures[1] ATTRIBUTE_UNUSED = { t };
129 : if (TREE_CODE (captures[0]) == SSA_NAME
130 : && uniform_vector_p (gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])))
131 : )
132 : {
133 : {
134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 47, __FILE__, __LINE__, false);
135 : return true;
136 : }
137 : }
138 : }
139 : break;
140 : }
141 747614 : default:;
142 : }
143 747614 : {
144 747614 : tree captures[1] ATTRIBUTE_UNUSED = { t };
145 747614 : if (uniform_vector_p (captures[0])
146 : )
147 : {
148 13913 : {
149 13913 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 48, __FILE__, __LINE__, false);
150 13913 : return true;
151 : }
152 : }
153 : }
154 : return false;
155 : }
156 :
157 : tree
158 196 : generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
159 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
160 : {
161 196 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
162 196 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail89;
163 196 : {
164 196 : if (! tree_invariant_p (captures[3])) goto next_after_fail89;
165 15 : tree res_op0;
166 15 : {
167 15 : tree _o1[2], _r1;
168 15 : _o1[0] = captures[2];
169 15 : _o1[1] = unshare_expr (captures[3]);
170 15 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
171 15 : res_op0 = _r1;
172 : }
173 15 : tree res_op1;
174 15 : {
175 15 : tree _o1[2], _r1;
176 15 : _o1[0] = captures[4];
177 15 : _o1[1] = captures[3];
178 15 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
179 15 : if (EXPR_P (_r1))
180 14 : goto next_after_fail89;
181 1 : res_op1 = _r1;
182 : }
183 1 : tree _r;
184 1 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
185 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 62, __FILE__, __LINE__, true);
186 : return _r;
187 : }
188 : next_after_fail89:;
189 : return NULL_TREE;
190 : }
191 :
192 : tree
193 0 : generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
194 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
195 : const enum tree_code ARG_UNUSED (op))
196 : {
197 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
198 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail98;
199 0 : {
200 0 : tree res_op0;
201 0 : res_op0 = captures[0];
202 0 : tree res_op1;
203 0 : res_op1 = captures[1];
204 0 : tree _r;
205 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
206 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 71, __FILE__, __LINE__, true);
207 : return _r;
208 : }
209 0 : next_after_fail98:;
210 0 : return NULL_TREE;
211 : }
212 :
213 : tree
214 390 : generic_simplify_30 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
215 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
216 : const enum tree_code ARG_UNUSED (op),
217 : const enum tree_code ARG_UNUSED (rop))
218 : {
219 390 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
220 390 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
221 390 : && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
222 : )
223 : {
224 390 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail105;
225 390 : {
226 390 : tree res_op0;
227 390 : {
228 390 : tree _o1[1], _r1;
229 390 : _o1[0] = captures[0];
230 390 : if (TREE_TYPE (_o1[0]) != type)
231 : {
232 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
233 : }
234 : else
235 : _r1 = _o1[0];
236 390 : res_op0 = _r1;
237 : }
238 390 : tree res_op1;
239 390 : {
240 390 : tree _o1[2], _r1;
241 390 : {
242 390 : tree _o2[1], _r2;
243 390 : _o2[0] = captures[1];
244 390 : if (TREE_TYPE (_o2[0]) != type)
245 : {
246 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
247 : }
248 : else
249 : _r2 = _o2[0];
250 390 : _o1[0] = _r2;
251 : }
252 390 : {
253 390 : tree _o2[1], _r2;
254 390 : _o2[0] = captures[2];
255 390 : if (TREE_TYPE (_o2[0]) != type)
256 : {
257 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
258 : }
259 : else
260 : _r2 = _o2[0];
261 390 : _o1[1] = _r2;
262 : }
263 390 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
264 390 : res_op1 = _r1;
265 : }
266 390 : tree _r;
267 390 : _r = fold_build2_loc (loc, rop, type, res_op0, res_op1);
268 390 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 78, __FILE__, __LINE__, true);
269 390 : return _r;
270 : }
271 0 : next_after_fail105:;
272 : }
273 : return NULL_TREE;
274 : }
275 :
276 : tree
277 0 : generic_simplify_42 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
278 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
279 : const enum tree_code ARG_UNUSED (op))
280 : {
281 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
282 0 : if (INTEGRAL_TYPE_P (type)
283 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
284 : )
285 : {
286 0 : {
287 0 : tree t = type;
288 0 : if (!TYPE_OVERFLOW_WRAPS (t))
289 0 : t = unsigned_type_for (t);
290 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
291 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail119;
292 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail119;
293 0 : {
294 0 : tree res_op0;
295 0 : {
296 0 : tree _o1[2], _r1;
297 0 : {
298 0 : tree _o2[1], _r2;
299 0 : _o2[0] = captures[2];
300 0 : if (TREE_TYPE (_o2[0]) != t)
301 : {
302 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
303 : }
304 : else
305 : _r2 = _o2[0];
306 0 : _o1[0] = _r2;
307 : }
308 0 : _o1[1] = wide_int_to_tree (t, c);
309 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
310 0 : res_op0 = _r1;
311 : }
312 0 : tree _r;
313 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
314 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 90, __FILE__, __LINE__, true);
315 0 : return _r;
316 : }
317 0 : next_after_fail119:;
318 0 : }
319 : }
320 : return NULL_TREE;
321 : }
322 :
323 : tree
324 64 : generic_simplify_50 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
325 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
326 : const enum tree_code ARG_UNUSED (cmp),
327 : const enum tree_code ARG_UNUSED (icmp),
328 : const enum tree_code ARG_UNUSED (ncmp))
329 : {
330 64 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
331 64 : {
332 64 : enum tree_code ic = invert_tree_comparison
333 64 : (cmp, HONOR_NANS (captures[0]));
334 64 : if (ic == icmp
335 : )
336 : {
337 64 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail128;
338 64 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail128;
339 64 : {
340 64 : tree res_op0;
341 64 : res_op0 = captures[0];
342 64 : tree res_op1;
343 64 : res_op1 = captures[1];
344 64 : tree _r;
345 64 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
346 64 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 96, __FILE__, __LINE__, true);
347 64 : return _r;
348 : }
349 : next_after_fail128:;
350 : }
351 : else
352 : {
353 0 : if (ic == ncmp
354 : )
355 : {
356 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail129;
357 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail129;
358 0 : {
359 0 : tree res_op0;
360 0 : res_op0 = captures[0];
361 0 : tree res_op1;
362 0 : res_op1 = captures[1];
363 0 : tree _r;
364 0 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
365 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 97, __FILE__, __LINE__, true);
366 0 : return _r;
367 : }
368 : next_after_fail129:;
369 : }
370 : }
371 : }
372 : return NULL_TREE;
373 : }
374 :
375 : tree
376 241875 : generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
377 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
378 : const enum tree_code ARG_UNUSED (outer_op))
379 : {
380 241875 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
381 241875 : if (!TYPE_SATURATING (type)
382 : )
383 : {
384 241875 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
385 483743 : && !FIXED_POINT_TYPE_P (type)
386 : )
387 : {
388 241868 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
389 : )
390 : {
391 228548 : if (!CONSTANT_CLASS_P (captures[1])
392 : )
393 : {
394 228548 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail151;
395 228548 : {
396 228548 : tree res_op0;
397 228548 : {
398 228548 : tree _o1[2], _r1;
399 228548 : {
400 228548 : tree _o2[1], _r2;
401 228548 : _o2[0] = captures[0];
402 228548 : if (TREE_TYPE (_o2[0]) != type)
403 : {
404 3344 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
405 : }
406 : else
407 : _r2 = _o2[0];
408 228548 : _o1[0] = _r2;
409 : }
410 228548 : _o1[1] = captures[2];
411 228548 : _r1 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
412 228548 : if (EXPR_P (_r1))
413 0 : goto next_after_fail151;
414 228548 : res_op0 = _r1;
415 : }
416 228548 : tree res_op1;
417 228548 : {
418 228548 : tree _o1[1], _r1;
419 228548 : _o1[0] = captures[1];
420 228548 : if (TREE_TYPE (_o1[0]) != type)
421 : {
422 3367 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
423 : }
424 : else
425 : _r1 = _o1[0];
426 228548 : res_op1 = _r1;
427 : }
428 228548 : tree _r;
429 228548 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
430 228548 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 119, __FILE__, __LINE__, true);
431 228548 : return _r;
432 : }
433 : next_after_fail151:;
434 : }
435 : }
436 : else
437 : {
438 26640 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
439 26640 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
440 : )
441 : {
442 2321 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail152;
443 2321 : {
444 2321 : tree res_op0;
445 2321 : {
446 2321 : tree _o1[2], _r1;
447 2321 : {
448 2321 : tree _o2[2], _r2;
449 2321 : _o2[0] = captures[0];
450 2321 : {
451 2321 : tree _o3[1], _r3;
452 2321 : _o3[0] = captures[2];
453 2321 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
454 : {
455 2321 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
456 : }
457 : else
458 : _r3 = _o3[0];
459 2321 : _o2[1] = _r3;
460 : }
461 2321 : _r2 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
462 2321 : if (EXPR_P (_r2))
463 0 : goto next_after_fail152;
464 2321 : _o1[0] = _r2;
465 : }
466 2321 : _o1[1] = captures[1];
467 2321 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
468 2321 : res_op0 = _r1;
469 : }
470 2321 : tree _r;
471 2321 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
472 2321 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 120, __FILE__, __LINE__, true);
473 2321 : return _r;
474 : }
475 : next_after_fail152:;
476 : }
477 : else
478 : {
479 10999 : if (types_match (type, captures[1]) && !TYPE_OVERFLOW_SANITIZED (type)
480 : )
481 : {
482 10971 : {
483 10971 : tree cst = const_binop (outer_op, type, captures[0], captures[2]);
484 10971 : if (cst && !TREE_OVERFLOW (cst)
485 : )
486 : {
487 10964 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail153;
488 10964 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail153;
489 10964 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail153;
490 10964 : {
491 10964 : tree res_op0;
492 10964 : res_op0 = cst;
493 10964 : tree res_op1;
494 10964 : res_op1 = captures[1];
495 10964 : tree _r;
496 10964 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
497 10964 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 121, __FILE__, __LINE__, true);
498 10964 : return _r;
499 : }
500 : next_after_fail153:;
501 : }
502 : }
503 : }
504 : }
505 : }
506 : }
507 : }
508 : return NULL_TREE;
509 : }
510 :
511 : tree
512 1 : generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
513 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
514 : {
515 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
516 1 : if (INTEGRAL_TYPE_P (type)
517 : )
518 : {
519 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail178;
520 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail178;
521 1 : {
522 1 : tree res_op0;
523 1 : res_op0 = unshare_expr (captures[1]);
524 1 : tree res_op1;
525 1 : {
526 1 : tree _o1[2], _r1;
527 1 : _o1[0] = captures[4];
528 1 : _o1[1] = captures[1];
529 1 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
530 1 : res_op1 = _r1;
531 : }
532 1 : tree _r;
533 1 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
534 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 146, __FILE__, __LINE__, true);
535 1 : return _r;
536 : }
537 : next_after_fail178:;
538 : }
539 : return NULL_TREE;
540 : }
541 :
542 : tree
543 2654 : generic_simplify_95 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
544 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
545 : {
546 2654 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
547 2654 : if (!TYPE_SATURATING (type)
548 : )
549 : {
550 2654 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
551 2654 : && !TYPE_OVERFLOW_SANITIZED (type)
552 : )
553 : {
554 13 : {
555 13 : tree t1 = type;
556 13 : if (INTEGRAL_TYPE_P (type)
557 21 : && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
558 8 : t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
559 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail186;
560 13 : {
561 13 : tree res_op0;
562 13 : {
563 13 : tree _o1[2], _r1;
564 13 : {
565 13 : tree _o2[1], _r2;
566 13 : _o2[0] = captures[0];
567 13 : if (TREE_TYPE (_o2[0]) != t1)
568 : {
569 8 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
570 : }
571 : else
572 : _r2 = _o2[0];
573 13 : _o1[0] = _r2;
574 : }
575 13 : {
576 13 : tree _o2[1], _r2;
577 13 : _o2[0] = captures[1];
578 13 : if (TREE_TYPE (_o2[0]) != t1)
579 : {
580 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
581 : }
582 : else
583 : _r2 = _o2[0];
584 13 : _o1[1] = _r2;
585 : }
586 13 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
587 13 : res_op0 = _r1;
588 : }
589 13 : tree _r;
590 13 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
591 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 153, __FILE__, __LINE__, true);
592 13 : return _r;
593 : }
594 0 : next_after_fail186:;
595 : }
596 : }
597 : }
598 : return NULL_TREE;
599 : }
600 :
601 : tree
602 9 : generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
603 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
604 : {
605 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
606 9 : if (INTEGRAL_TYPE_P (type)
607 9 : && (
608 :
609 9 : || !TREE_SIDE_EFFECTS (captures[1]))
610 : )
611 : {
612 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail203;
613 2 : {
614 2 : tree res_op0;
615 2 : {
616 2 : tree _o1[1], _r1;
617 2 : _o1[0] = captures[2];
618 2 : if (TREE_TYPE (_o1[0]) != boolean_type_node)
619 : {
620 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
621 : }
622 : else
623 : _r1 = _o1[0];
624 2 : res_op0 = _r1;
625 : }
626 2 : tree res_op1;
627 2 : res_op1 = captures[1];
628 2 : tree res_op2;
629 2 : res_op2 = captures[0];
630 2 : tree _r;
631 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
632 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 170, __FILE__, __LINE__, true);
633 2 : return _r;
634 : }
635 0 : next_after_fail203:;
636 : }
637 : return NULL_TREE;
638 : }
639 :
640 : tree
641 0 : generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
642 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
643 : const enum tree_code ARG_UNUSED (bitop),
644 : const enum tree_code ARG_UNUSED (cmp))
645 : {
646 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
647 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
648 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
649 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
650 : )
651 : {
652 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail209;
653 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail209;
654 0 : {
655 0 : tree res_op0;
656 0 : {
657 0 : tree _o1[2], _r1;
658 0 : _o1[0] = captures[0];
659 0 : {
660 0 : tree _o2[1], _r2;
661 0 : _o2[0] = captures[2];
662 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
663 : {
664 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
665 : }
666 : else
667 : _r2 = _o2[0];
668 0 : _o1[1] = _r2;
669 : }
670 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
671 0 : res_op0 = _r1;
672 : }
673 0 : tree res_op1;
674 0 : res_op1 = captures[1];
675 0 : tree _r;
676 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
677 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 176, __FILE__, __LINE__, true);
678 0 : return _r;
679 : }
680 : next_after_fail209:;
681 : }
682 : return NULL_TREE;
683 : }
684 :
685 : tree
686 8 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
687 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
688 : {
689 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
690 16 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
691 16 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
692 : )
693 : {
694 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail220;
695 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail220;
696 0 : {
697 0 : tree _r;
698 0 : _r = captures[2];
699 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
700 0 : return _r;
701 : }
702 : next_after_fail220:;
703 : }
704 : return NULL_TREE;
705 : }
706 :
707 : tree
708 1 : generic_simplify_132 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
709 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
710 : {
711 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
712 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail229;
713 1 : {
714 1 : tree res_op0;
715 1 : {
716 1 : tree _o1[2], _r1;
717 1 : _o1[0] = captures[1];
718 1 : _o1[1] = captures[2];
719 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
720 1 : res_op0 = _r1;
721 : }
722 1 : tree _r;
723 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
724 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 191, __FILE__, __LINE__, true);
725 : return _r;
726 : }
727 0 : next_after_fail229:;
728 0 : return NULL_TREE;
729 : }
730 :
731 : tree
732 2 : generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
733 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
734 : const enum tree_code ARG_UNUSED (bitop),
735 : const enum tree_code ARG_UNUSED (rbitop))
736 : {
737 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
738 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail243;
739 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail243;
740 2 : {
741 2 : tree _r;
742 2 : _r = captures[2];
743 2 : if (TREE_SIDE_EFFECTS (captures[1]))
744 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
745 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
746 : return _r;
747 : }
748 : next_after_fail243:;
749 : return NULL_TREE;
750 : }
751 :
752 : tree
753 700 : generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
754 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
755 : const enum tree_code ARG_UNUSED (op))
756 : {
757 700 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
758 700 : if (bitwise_equal_p (captures[4], captures[7])
759 : )
760 : {
761 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail250;
762 40 : {
763 40 : tree res_op0;
764 40 : {
765 40 : tree _o1[2], _r1;
766 40 : {
767 40 : tree _o2[2], _r2;
768 40 : _o2[0] = captures[5];
769 40 : {
770 40 : tree _o3[1], _r3;
771 40 : _o3[0] = captures[6];
772 40 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
773 : {
774 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
775 : }
776 : else
777 : _r3 = _o3[0];
778 40 : _o2[1] = _r3;
779 : }
780 40 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
781 40 : _o1[0] = _r2;
782 : }
783 40 : {
784 40 : tree _o2[1], _r2;
785 40 : _o2[0] = captures[4];
786 40 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
787 : {
788 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
789 : }
790 : else
791 : _r2 = _o2[0];
792 40 : _o1[1] = _r2;
793 : }
794 40 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
795 40 : res_op0 = _r1;
796 : }
797 40 : tree _r;
798 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
799 40 : if (TREE_SIDE_EFFECTS (captures[7]))
800 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
801 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
802 40 : return _r;
803 : }
804 0 : next_after_fail250:;
805 : }
806 : return NULL_TREE;
807 : }
808 :
809 : tree
810 31 : generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
811 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
812 : const enum tree_code ARG_UNUSED (code2),
813 : const enum tree_code ARG_UNUSED (code1))
814 : {
815 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
816 31 : if ((TREE_CODE (captures[2]) == INTEGER_CST
817 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
818 31 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
819 24 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
820 0 : && operand_equal_p (captures[2], captures[4]))
821 : )
822 : {
823 7 : {
824 7 : int cmp = 0;
825 7 : if (TREE_CODE (captures[2]) == INTEGER_CST
826 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
827 7 : cmp = tree_int_cst_compare (captures[2], captures[4]);
828 7 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
829 7 : && (code2 == LT_EXPR || code2 == LE_EXPR)
830 : )
831 : {
832 7 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
833 : )
834 : {
835 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail276;
836 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail276;
837 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail276;
838 7 : {
839 7 : tree _r;
840 7 : _r = captures[3];
841 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
842 7 : return _r;
843 : }
844 : next_after_fail276:;
845 : }
846 : else
847 : {
848 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail277;
849 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail277;
850 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail277;
851 0 : {
852 0 : tree _r;
853 0 : _r = captures[0];
854 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 219, __FILE__, __LINE__, true);
855 0 : return _r;
856 : }
857 : next_after_fail277:;
858 : }
859 : }
860 : else
861 : {
862 0 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
863 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
864 : )
865 : {
866 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
867 : )
868 : {
869 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail278;
870 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail278;
871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail278;
872 0 : {
873 0 : tree _r;
874 0 : _r = captures[3];
875 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 220, __FILE__, __LINE__, true);
876 0 : return _r;
877 : }
878 : next_after_fail278:;
879 : }
880 : else
881 : {
882 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail279;
883 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail279;
884 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail279;
885 0 : {
886 0 : tree _r;
887 0 : _r = captures[0];
888 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 221, __FILE__, __LINE__, true);
889 0 : return _r;
890 : }
891 : next_after_fail279:;
892 : }
893 : }
894 : else
895 : {
896 0 : if (cmp == 0
897 0 : && ((code1 == LT_EXPR && code2 == GT_EXPR)
898 0 : || (code1 == GT_EXPR && code2 == LT_EXPR))
899 : )
900 : {
901 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail280;
902 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail280;
903 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
904 0 : {
905 0 : tree res_op0;
906 0 : res_op0 = captures[1];
907 0 : tree res_op1;
908 0 : res_op1 = captures[4];
909 0 : tree _r;
910 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
911 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 222, __FILE__, __LINE__, true);
912 0 : return _r;
913 : }
914 : next_after_fail280:;
915 : }
916 : else
917 : {
918 0 : if (cmp >= 0
919 0 : && (code1 == LT_EXPR || code1 == LE_EXPR)
920 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
921 : )
922 : {
923 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail281;
924 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail281;
925 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail281;
926 0 : {
927 0 : tree _r;
928 0 : _r = constant_boolean_node (true, type);
929 0 : if (TREE_SIDE_EFFECTS (captures[1]))
930 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
931 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
932 0 : return _r;
933 : }
934 : next_after_fail281:;
935 : }
936 : else
937 : {
938 0 : if (cmp <= 0
939 0 : && (code1 == GT_EXPR || code1 == GE_EXPR)
940 0 : && (code2 == LT_EXPR || code2 == LE_EXPR)
941 : )
942 : {
943 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail282;
944 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail282;
945 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail282;
946 0 : {
947 0 : tree _r;
948 0 : _r = constant_boolean_node (true, type);
949 0 : if (TREE_SIDE_EFFECTS (captures[1]))
950 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
951 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 224, __FILE__, __LINE__, true);
952 0 : return _r;
953 : }
954 : next_after_fail282:;
955 : }
956 : }
957 : }
958 : }
959 : }
960 : }
961 : }
962 : return NULL_TREE;
963 : }
964 :
965 : tree
966 14 : generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
967 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
968 : {
969 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
970 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
971 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
972 : )
973 : {
974 14 : {
975 14 : unsigned int shift = tree_to_uhwi (captures[1]);
976 14 : unsigned int prec = TYPE_PRECISION (type);
977 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
978 0 : || tree_int_cst_sgn (captures[2]) >= 0)
979 28 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
980 : )
981 : {
982 6 : {
983 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
984 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail330;
985 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail330;
986 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail330;
987 6 : {
988 6 : tree res_op0;
989 6 : {
990 6 : tree _o1[1], _r1;
991 6 : _o1[0] = captures[0];
992 6 : if (TREE_TYPE (_o1[0]) != type)
993 : {
994 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
995 : }
996 : else
997 : _r1 = _o1[0];
998 6 : res_op0 = _r1;
999 : }
1000 6 : tree res_op1;
1001 6 : res_op1 = wide_int_to_tree (type, mask << shift);
1002 6 : tree _r;
1003 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1004 6 : if (TREE_SIDE_EFFECTS (captures[3]))
1005 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1006 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 245, __FILE__, __LINE__, true);
1007 6 : return _r;
1008 : }
1009 0 : next_after_fail330:;
1010 6 : }
1011 : }
1012 : }
1013 : }
1014 : return NULL_TREE;
1015 : }
1016 :
1017 : tree
1018 9 : generic_simplify_199 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1019 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1020 : const combined_fn ARG_UNUSED (LDEXP))
1021 : {
1022 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1023 9 : if (flag_unsafe_math_optimizations
1024 : )
1025 : {
1026 9 : if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst1)
1027 : )
1028 : {
1029 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail339;
1030 9 : {
1031 9 : tree res_op0;
1032 9 : res_op0 = captures[0];
1033 9 : tree res_op1;
1034 9 : res_op1 = captures[2];
1035 9 : tree _r;
1036 9 : _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
1037 9 : if (!_r)
1038 0 : goto next_after_fail339;
1039 9 : if (TREE_SIDE_EFFECTS (captures[1]))
1040 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1041 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 254, __FILE__, __LINE__, true);
1042 9 : return _r;
1043 : }
1044 : next_after_fail339:;
1045 : }
1046 : }
1047 : return NULL_TREE;
1048 : }
1049 :
1050 : tree
1051 169 : generic_simplify_206 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1052 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1053 : const enum tree_code ARG_UNUSED (op))
1054 : {
1055 169 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1056 338 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1057 338 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
1058 169 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
1059 : && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
1060 169 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1061 507 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
1062 : )
1063 : {
1064 169 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail346;
1065 169 : {
1066 169 : tree res_op0;
1067 169 : res_op0 = captures[2];
1068 169 : tree res_op1;
1069 169 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1070 169 : tree _r;
1071 169 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1072 169 : if (TREE_SIDE_EFFECTS (captures[3]))
1073 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1074 169 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 261, __FILE__, __LINE__, true);
1075 169 : return _r;
1076 : }
1077 0 : next_after_fail346:;
1078 : }
1079 : return NULL_TREE;
1080 : }
1081 :
1082 : tree
1083 11685 : generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1084 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1085 : const enum tree_code ARG_UNUSED (op))
1086 : {
1087 11685 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1088 11685 : if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1089 11685 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1090 11685 : && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
1091 : )
1092 : {
1093 11685 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail374;
1094 11685 : {
1095 11685 : tree res_op0;
1096 11685 : res_op0 = captures[3];
1097 11685 : tree res_op1;
1098 11685 : res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
1099 11685 : tree _r;
1100 11685 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1101 11685 : if (TREE_SIDE_EFFECTS (captures[2]))
1102 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1103 11685 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 288, __FILE__, __LINE__, true);
1104 11685 : return _r;
1105 : }
1106 0 : next_after_fail374:;
1107 : }
1108 : return NULL_TREE;
1109 : }
1110 :
1111 : tree
1112 1366 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1113 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1114 : const enum tree_code ARG_UNUSED (cmp),
1115 : const enum tree_code ARG_UNUSED (ocmp))
1116 : {
1117 1366 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1118 1366 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1119 374 : && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE
1120 1718 : && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0])))
1121 : )
1122 : {
1123 352 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail381;
1124 352 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
1125 352 : {
1126 352 : tree res_op0;
1127 352 : res_op0 = captures[0];
1128 352 : tree res_op1;
1129 352 : res_op1 = captures[1];
1130 352 : tree _r;
1131 352 : _r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
1132 352 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
1133 352 : return _r;
1134 : }
1135 : next_after_fail381:;
1136 : }
1137 : return NULL_TREE;
1138 : }
1139 :
1140 : tree
1141 6 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1142 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1143 : const enum tree_code ARG_UNUSED (cmp),
1144 : const enum tree_code ARG_UNUSED (icmp))
1145 : {
1146 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1147 6 : {
1148 6 : int c1 = wi::clz (wi::to_wide (captures[0]));
1149 6 : int c2 = wi::clz (wi::to_wide (captures[2]));
1150 6 : if (c1 < c2
1151 : )
1152 : {
1153 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail391;
1154 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail391;
1155 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail391;
1156 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail391;
1157 0 : {
1158 0 : tree _r;
1159 0 : _r = constant_boolean_node (cmp == NE_EXPR ? false : true, type);
1160 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1161 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1162 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 304, __FILE__, __LINE__, true);
1163 0 : return _r;
1164 : }
1165 : next_after_fail391:;
1166 : }
1167 : else
1168 : {
1169 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail392;
1170 6 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail392;
1171 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail392;
1172 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail392;
1173 6 : {
1174 6 : tree res_op0;
1175 6 : res_op0 = captures[1];
1176 6 : tree res_op1;
1177 6 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), c1 - c2);
1178 6 : tree _r;
1179 6 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1180 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 305, __FILE__, __LINE__, true);
1181 6 : return _r;
1182 : }
1183 : next_after_fail392:;
1184 : }
1185 : }
1186 : return NULL_TREE;
1187 : }
1188 :
1189 : tree
1190 14 : generic_simplify_243 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1191 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1192 : const enum tree_code ARG_UNUSED (cmp),
1193 : const combined_fn ARG_UNUSED (bswap))
1194 : {
1195 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1196 14 : {
1197 14 : tree ctype = TREE_TYPE (captures[0]);
1198 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail411;
1199 14 : {
1200 14 : tree res_op0;
1201 14 : {
1202 14 : tree _o1[1], _r1;
1203 14 : _o1[0] = captures[1];
1204 14 : if (TREE_TYPE (_o1[0]) != ctype)
1205 : {
1206 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1207 : }
1208 : else
1209 : _r1 = _o1[0];
1210 14 : res_op0 = _r1;
1211 : }
1212 14 : tree res_op1;
1213 14 : {
1214 14 : tree _o1[1], _r1;
1215 14 : _o1[0] = captures[2];
1216 14 : if (TREE_TYPE (_o1[0]) != ctype)
1217 : {
1218 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1219 : }
1220 : else
1221 : _r1 = _o1[0];
1222 14 : res_op1 = _r1;
1223 : }
1224 14 : tree _r;
1225 14 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1226 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 324, __FILE__, __LINE__, true);
1227 : return _r;
1228 : }
1229 0 : next_after_fail411:;
1230 : }
1231 0 : return NULL_TREE;
1232 : }
1233 :
1234 : tree
1235 133289 : generic_simplify_251 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1236 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1237 : const enum tree_code ARG_UNUSED (cmp))
1238 : {
1239 133289 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1240 261768 : if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1241 133555 : || ! tree_expr_maybe_nan_p (captures[0])
1242 : )
1243 : {
1244 128287 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail424;
1245 128287 : {
1246 128287 : tree _r;
1247 128287 : _r = constant_boolean_node (true, type);
1248 128287 : if (TREE_SIDE_EFFECTS (captures[0]))
1249 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1250 128287 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 336, __FILE__, __LINE__, true);
1251 128287 : return _r;
1252 : }
1253 0 : next_after_fail424:;
1254 : }
1255 : else
1256 : {
1257 5002 : if (cmp != EQ_EXPR
1258 5002 : && (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1259 79 : || ! flag_trapping_math)
1260 : )
1261 : {
1262 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail425;
1263 0 : {
1264 0 : tree res_op0;
1265 0 : res_op0 = unshare_expr (captures[0]);
1266 0 : tree res_op1;
1267 0 : res_op1 = captures[0];
1268 0 : tree _r;
1269 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1270 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 337, __FILE__, __LINE__, true);
1271 0 : return _r;
1272 : }
1273 0 : next_after_fail425:;
1274 : }
1275 : }
1276 : return NULL_TREE;
1277 : }
1278 :
1279 : tree
1280 19110 : generic_simplify_258 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1281 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1282 : const enum tree_code ARG_UNUSED (cmp))
1283 : {
1284 19110 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1285 19110 : if (flag_associative_math
1286 : )
1287 : {
1288 13 : {
1289 13 : tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
1290 13 : if (tem && !TREE_OVERFLOW (tem)
1291 : )
1292 : {
1293 13 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail446;
1294 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail446;
1295 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail446;
1296 13 : {
1297 13 : tree res_op0;
1298 13 : res_op0 = tem;
1299 13 : tree res_op1;
1300 13 : res_op1 = captures[1];
1301 13 : tree _r;
1302 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1303 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 357, __FILE__, __LINE__, true);
1304 13 : return _r;
1305 : }
1306 : next_after_fail446:;
1307 : }
1308 : }
1309 : }
1310 : return NULL_TREE;
1311 : }
1312 :
1313 : tree
1314 59 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1315 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1316 : const enum tree_code ARG_UNUSED (cmp),
1317 : const enum tree_code ARG_UNUSED (scmp))
1318 : {
1319 59 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1320 96 : if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1321 96 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1322 37 : && (cmp == EQ_EXPR
1323 37 : || cmp == NE_EXPR
1324 36 : || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
1325 : )
1326 : {
1327 23 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
1328 23 : {
1329 23 : tree res_op0;
1330 23 : res_op0 = captures[0];
1331 23 : tree res_op1;
1332 23 : res_op1 = captures[1];
1333 23 : tree _r;
1334 23 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1335 23 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
1336 23 : return _r;
1337 : }
1338 0 : next_after_fail479:;
1339 : }
1340 : return NULL_TREE;
1341 : }
1342 :
1343 : tree
1344 17819552 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1345 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1346 : const enum tree_code ARG_UNUSED (cmp))
1347 : {
1348 17819552 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1349 35378177 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1350 11641271 : && !(targetm.have_canonicalize_funcptr_for_compare ()
1351 0 : && ((POINTER_TYPE_P (TREE_TYPE (captures[1]))
1352 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))
1353 0 : || (POINTER_TYPE_P (TREE_TYPE (captures[3]))
1354 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3]))))))
1355 17819552 : && single_use (captures[0])
1356 : )
1357 : {
1358 11641271 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
1359 5045158 : && (TREE_CODE (captures[3]) == INTEGER_CST
1360 1864846 : || captures[2] != captures[3])
1361 3180312 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1362 : || cmp == NE_EXPR
1363 1467968 : || cmp == EQ_EXPR)
1364 2171873 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
1365 13781361 : && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
1366 1672 : || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
1367 : )
1368 : {
1369 2140062 : if (TREE_CODE (captures[2]) == INTEGER_CST
1370 : )
1371 : {
1372 2140062 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail489;
1373 2140062 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail489;
1374 2140062 : {
1375 2140062 : tree res_op0;
1376 2140062 : res_op0 = captures[1];
1377 2140062 : tree res_op1;
1378 2140062 : res_op1 = force_fit_type (TREE_TYPE (captures[1]),
1379 2140062 : wide_int::from (wi::to_wide (captures[2]),
1380 2140062 : MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
1381 : TYPE_PRECISION (TREE_TYPE (captures[1]))),
1382 2140062 : TYPE_SIGN (TREE_TYPE (captures[2]))),
1383 2140062 : 0, TREE_OVERFLOW (captures[2]));
1384 2140062 : tree _r;
1385 2140062 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1386 2140062 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
1387 2140062 : return _r;
1388 : }
1389 : next_after_fail489:;
1390 : }
1391 : else
1392 : {
1393 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail490;
1394 0 : {
1395 0 : tree res_op0;
1396 0 : res_op0 = captures[1];
1397 0 : tree res_op1;
1398 0 : {
1399 0 : tree _o1[1], _r1;
1400 0 : _o1[0] = captures[2];
1401 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1402 : {
1403 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1404 : }
1405 : else
1406 : _r1 = _o1[0];
1407 0 : res_op1 = _r1;
1408 : }
1409 0 : tree _r;
1410 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1411 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
1412 0 : return _r;
1413 : }
1414 0 : next_after_fail490:;
1415 : }
1416 : }
1417 : else
1418 : {
1419 9501209 : if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
1420 : )
1421 : {
1422 5649436 : if ((cmp == EQ_EXPR || cmp == NE_EXPR
1423 2956142 : || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1424 397372 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1425 313598 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
1426 8521804 : && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
1427 5565644 : || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
1428 5565644 : >= TYPE_PRECISION (TREE_TYPE (captures[3])))
1429 0 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1430 0 : == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
1431 5565644 : || (TREE_CODE (captures[2]) == INTEGER_CST
1432 4465928 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1433 4465928 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
1434 : )
1435 : {
1436 4431110 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail491;
1437 4431110 : {
1438 4431110 : tree res_op0;
1439 4431110 : res_op0 = captures[1];
1440 4431110 : tree res_op1;
1441 4431110 : {
1442 4431110 : tree _o1[1], _r1;
1443 4431110 : _o1[0] = captures[3];
1444 4431110 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1445 : {
1446 4431092 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1447 : }
1448 : else
1449 : _r1 = _o1[0];
1450 4431110 : res_op1 = _r1;
1451 : }
1452 4431110 : tree _r;
1453 4431110 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1454 4431110 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
1455 4431110 : return _r;
1456 : }
1457 0 : next_after_fail491:;
1458 : }
1459 : else
1460 : {
1461 1218326 : if (TREE_CODE (captures[2]) == INTEGER_CST
1462 83164 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1463 1301490 : && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
1464 : )
1465 : {
1466 38259 : {
1467 38259 : tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1468 38259 : tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1469 38259 : bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
1470 38259 : bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
1471 38259 : if (above || below
1472 : )
1473 : {
1474 32106 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1475 : )
1476 : {
1477 27507 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail492;
1478 27507 : {
1479 27507 : tree _r;
1480 27507 : _r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
1481 27507 : if (TREE_SIDE_EFFECTS (captures[1]))
1482 10 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1483 27507 : if (TREE_SIDE_EFFECTS (captures[2]))
1484 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1485 27507 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
1486 27507 : return _r;
1487 : }
1488 0 : next_after_fail492:;
1489 : }
1490 : else
1491 : {
1492 4599 : if (cmp == LT_EXPR || cmp == LE_EXPR
1493 : )
1494 : {
1495 3922 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail493;
1496 3922 : {
1497 3922 : tree _r;
1498 3922 : _r = constant_boolean_node (above ? true : false, type);
1499 3922 : if (TREE_SIDE_EFFECTS (captures[1]))
1500 10 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1501 3922 : if (TREE_SIDE_EFFECTS (captures[2]))
1502 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1503 3922 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 396, __FILE__, __LINE__, true);
1504 3922 : return _r;
1505 : }
1506 0 : next_after_fail493:;
1507 : }
1508 : else
1509 : {
1510 677 : if (cmp == GT_EXPR || cmp == GE_EXPR
1511 : )
1512 : {
1513 677 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail494;
1514 677 : {
1515 677 : tree _r;
1516 931 : _r = constant_boolean_node (above ? false : true, type);
1517 677 : if (TREE_SIDE_EFFECTS (captures[1]))
1518 4 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1519 677 : if (TREE_SIDE_EFFECTS (captures[2]))
1520 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1521 677 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 397, __FILE__, __LINE__, true);
1522 677 : return _r;
1523 : }
1524 0 : next_after_fail494:;
1525 : }
1526 : }
1527 : }
1528 : }
1529 : }
1530 : }
1531 : }
1532 : }
1533 : else
1534 : {
1535 7700759 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1536 3627098 : && (TYPE_PRECISION (TREE_TYPE (captures[0]))
1537 3627098 : < TYPE_PRECISION (TREE_TYPE (captures[1])))
1538 946591 : && (cmp == EQ_EXPR || cmp == NE_EXPR)
1539 4480711 : && types_match (TREE_TYPE (captures[1]),
1540 628938 : TREE_TYPE (captures[3]))
1541 : )
1542 : {
1543 0 : {
1544 0 : tree itype = TREE_TYPE (captures[0]);
1545 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail495;
1546 0 : {
1547 0 : tree res_op0;
1548 0 : {
1549 0 : tree _o1[1], _r1;
1550 0 : {
1551 0 : tree _o2[2], _r2;
1552 0 : _o2[0] = captures[1];
1553 0 : _o2[1] = captures[3];
1554 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1555 0 : _o1[0] = _r2;
1556 : }
1557 0 : if (TREE_TYPE (_o1[0]) != itype)
1558 : {
1559 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
1560 : }
1561 : else
1562 : _r1 = _o1[0];
1563 0 : res_op0 = _r1;
1564 : }
1565 0 : tree res_op1;
1566 0 : res_op1 = build_zero_cst (itype);
1567 0 : tree _r;
1568 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1569 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 398, __FILE__, __LINE__, true);
1570 0 : return _r;
1571 : }
1572 0 : next_after_fail495:;
1573 : }
1574 : }
1575 : }
1576 : }
1577 : }
1578 : else
1579 : {
1580 11822677 : if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
1581 1094766 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1582 547383 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
1583 7272809 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1584 547264 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
1585 : )
1586 : {
1587 547264 : {
1588 547264 : tree type1 = TREE_TYPE (captures[3]);
1589 547264 : if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
1590 : {
1591 343967 : REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
1592 343967 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
1593 343967 : && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
1594 177476 : type1 = float_type_node;
1595 343967 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
1596 343967 : && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
1597 292 : type1 = double_type_node;
1598 : }
1599 547264 : tree newtype
1600 547264 : = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
1601 547264 : ? TREE_TYPE (captures[1]) : type1);
1602 547264 : if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
1603 547264 : && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))
1604 : )
1605 : {
1606 44604 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail496;
1607 44604 : {
1608 44604 : tree res_op0;
1609 44604 : {
1610 44604 : tree _o1[1], _r1;
1611 44604 : _o1[0] = captures[1];
1612 44604 : if (TREE_TYPE (_o1[0]) != newtype)
1613 : {
1614 11436 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1615 : }
1616 : else
1617 : _r1 = _o1[0];
1618 44604 : res_op0 = _r1;
1619 : }
1620 44604 : tree res_op1;
1621 44604 : {
1622 44604 : tree _o1[1], _r1;
1623 44604 : _o1[0] = captures[3];
1624 44604 : if (TREE_TYPE (_o1[0]) != newtype)
1625 : {
1626 44604 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1627 : }
1628 : else
1629 : _r1 = _o1[0];
1630 44604 : res_op1 = _r1;
1631 : }
1632 44604 : tree _r;
1633 44604 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1634 44604 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 399, __FILE__, __LINE__, true);
1635 44604 : return _r;
1636 : }
1637 0 : next_after_fail496:;
1638 : }
1639 : }
1640 : }
1641 : }
1642 : return NULL_TREE;
1643 : }
1644 :
1645 : tree
1646 0 : generic_simplify_299 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1647 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1648 : const enum tree_code ARG_UNUSED (cmp))
1649 : {
1650 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1651 0 : if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[0])))
1652 0 : && can_compare_p (cmp == EQ_EXPR ? EQ : NE, TYPE_MODE (TREE_TYPE (captures[0])),
1653 : ccp_jump)
1654 : )
1655 : {
1656 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail564;
1657 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail564;
1658 0 : {
1659 0 : tree res_op0;
1660 0 : res_op0 = captures[0];
1661 0 : tree res_op1;
1662 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1663 0 : tree _r;
1664 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1665 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 457, __FILE__, __LINE__, true);
1666 0 : return _r;
1667 : }
1668 : next_after_fail564:;
1669 : }
1670 : return NULL_TREE;
1671 : }
1672 :
1673 : tree
1674 0 : generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1675 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1676 : const combined_fn ARG_UNUSED (copysigns))
1677 : {
1678 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1679 0 : if (!REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
1680 : )
1681 : {
1682 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail570;
1683 0 : {
1684 0 : tree res_op0;
1685 0 : res_op0 = captures[0];
1686 0 : tree _r;
1687 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1688 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1689 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1690 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
1691 0 : return _r;
1692 : }
1693 0 : next_after_fail570:;
1694 : }
1695 : return NULL_TREE;
1696 : }
1697 :
1698 : tree
1699 23 : generic_simplify_310 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1700 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1701 : const enum tree_code ARG_UNUSED (div))
1702 : {
1703 23 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1704 30 : if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
1705 16 : && (!VECTOR_TYPE_P (type)
1706 0 : || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
1707 0 : || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
1708 39 : && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
1709 7 : || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
1710 7 : && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
1711 14 : || (element_precision (type)
1712 7 : == element_precision (TREE_TYPE (captures[2])))
1713 7 : || (INTEGRAL_TYPE_P (type)
1714 14 : && (tree_nonzero_bits (captures[0])
1715 44 : & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
1716 : true,
1717 37 : element_precision (type))) == 0))))
1718 : )
1719 : {
1720 9 : if (!VECTOR_TYPE_P (type)
1721 9 : && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1722 18 : && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
1723 : )
1724 : {
1725 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail577;
1726 0 : {
1727 0 : tree res_op0;
1728 0 : {
1729 0 : tree _o1[2], _r1;
1730 0 : _o1[0] = captures[1];
1731 0 : _o1[1] = captures[3];
1732 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1733 0 : res_op0 = _r1;
1734 : }
1735 0 : tree _r;
1736 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1737 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1738 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1739 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 468, __FILE__, __LINE__, true);
1740 0 : return _r;
1741 : }
1742 0 : next_after_fail577:;
1743 : }
1744 : else
1745 : {
1746 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail578;
1747 9 : {
1748 9 : tree res_op0;
1749 9 : res_op0 = captures[0];
1750 9 : tree res_op1;
1751 9 : res_op1 = captures[3];
1752 9 : tree _r;
1753 9 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
1754 9 : if (TREE_SIDE_EFFECTS (captures[2]))
1755 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1756 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
1757 9 : return _r;
1758 : }
1759 0 : next_after_fail578:;
1760 : }
1761 : }
1762 : return NULL_TREE;
1763 : }
1764 :
1765 : tree
1766 227 : generic_simplify_326 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1767 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1768 : const enum tree_code ARG_UNUSED (mod))
1769 : {
1770 227 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1771 227 : if (!integer_zerop (captures[0])
1772 : )
1773 : {
1774 93 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail595;
1775 93 : {
1776 93 : tree _r;
1777 93 : _r = build_zero_cst (type);
1778 93 : if (TREE_SIDE_EFFECTS (captures[0]))
1779 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1780 93 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 486, __FILE__, __LINE__, true);
1781 93 : return _r;
1782 : }
1783 0 : next_after_fail595:;
1784 : }
1785 : return NULL_TREE;
1786 : }
1787 :
1788 : tree
1789 3 : generic_simplify_336 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1790 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1791 : const combined_fn ARG_UNUSED (TANH),
1792 : const combined_fn ARG_UNUSED (SINH),
1793 : const combined_fn ARG_UNUSED (COSH))
1794 : {
1795 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1796 3 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1797 : )
1798 : {
1799 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail607;
1800 3 : {
1801 3 : tree res_op0;
1802 3 : res_op0 = build_one_cst (type);
1803 3 : tree res_op1;
1804 3 : {
1805 3 : tree _o1[1], _r1;
1806 3 : _o1[0] = captures[1];
1807 3 : _r1 = maybe_build_call_expr_loc (loc, COSH, TREE_TYPE (_o1[0]), 1, _o1[0]);
1808 3 : if (!_r1)
1809 0 : goto next_after_fail607;
1810 3 : res_op1 = _r1;
1811 : }
1812 3 : tree _r;
1813 3 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1814 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 498, __FILE__, __LINE__, true);
1815 3 : return _r;
1816 : }
1817 : next_after_fail607:;
1818 : }
1819 : return NULL_TREE;
1820 : }
1821 :
1822 : tree
1823 7447 : generic_simplify_344 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1824 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1825 : const enum tree_code ARG_UNUSED (cmp),
1826 : const enum tree_code ARG_UNUSED (op))
1827 : {
1828 7447 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1829 7447 : {
1830 7447 : tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
1831 7447 : if (types_match (from_type, to_type)
1832 7447 : || (TYPE_UNSIGNED (from_type)
1833 37 : && !TYPE_UNSIGNED (to_type)
1834 37 : && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type)
1835 37 : && integer_zerop (captures[1])
1836 31 : && (cmp == LT_EXPR || cmp == GE_EXPR))
1837 : )
1838 : {
1839 7417 : {
1840 7417 : wi::overflow_type overflow = wi::OVF_NONE;
1841 7417 : enum tree_code code, cmp_code = cmp;
1842 7417 : wide_int real_c1;
1843 7417 : wide_int c1 = wi::to_wide (captures[1]);
1844 7417 : wide_int c2 = wi::to_wide (captures[2]);
1845 7417 : wide_int c3 = wi::to_wide (captures[3]);
1846 7417 : signop sgn = TYPE_SIGN (from_type);
1847 7417 : if (!types_match (from_type, to_type))
1848 : {
1849 7 : if (cmp_code == LT_EXPR)
1850 : cmp_code = GT_EXPR;
1851 0 : if (cmp_code == GE_EXPR)
1852 0 : cmp_code = LE_EXPR;
1853 7 : c1 = wi::max_value (to_type);
1854 : }
1855 7417 : if (op == PLUS_EXPR)
1856 7417 : real_c1 = wi::sub (c3, c2, sgn, &overflow);
1857 : else
1858 0 : real_c1 = wi::add (c3, c2, sgn, &overflow);
1859 7417 : code = cmp_code;
1860 7417 : if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type))
1861 : {
1862 14834 : if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn)
1863 7417 : && !overflow)
1864 : {
1865 631 : if (cmp_code == LE_EXPR)
1866 : code = LT_EXPR;
1867 631 : if (cmp_code == GT_EXPR)
1868 7417 : code = GE_EXPR;
1869 : }
1870 14834 : if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn)
1871 7417 : && !overflow)
1872 : {
1873 6353 : if (cmp_code == LT_EXPR)
1874 : code = LE_EXPR;
1875 6353 : if (cmp_code == GE_EXPR)
1876 : code = GT_EXPR;
1877 : }
1878 1081 : if (code != cmp_code || !wi::cmp (real_c1, c1, sgn))
1879 : {
1880 7194 : if (cmp_code == LT_EXPR || cmp_code == LE_EXPR)
1881 : code = MIN_EXPR;
1882 7194 : if (cmp_code == GT_EXPR || cmp_code == GE_EXPR)
1883 : code = MAX_EXPR;
1884 : }
1885 : }
1886 223 : if (code == MAX_EXPR
1887 : )
1888 : {
1889 7194 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail617;
1890 7194 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail617;
1891 7194 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail617;
1892 7194 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail617;
1893 7194 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail617;
1894 7194 : {
1895 7194 : tree res_op0;
1896 7194 : {
1897 7194 : tree _o1[2], _r1;
1898 7194 : _o1[0] = captures[0];
1899 7194 : _o1[1] = wide_int_to_tree (from_type, real_c1);
1900 7194 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1901 7194 : res_op0 = _r1;
1902 : }
1903 7194 : tree res_op1;
1904 7194 : res_op1 = wide_int_to_tree (from_type, c2);
1905 7194 : tree _r;
1906 7194 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1907 7194 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 508, __FILE__, __LINE__, true);
1908 7194 : return _r;
1909 : }
1910 223 : next_after_fail617:;
1911 : }
1912 : else
1913 : {
1914 223 : if (code == MIN_EXPR
1915 : )
1916 : {
1917 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail618;
1918 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail618;
1919 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail618;
1920 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail618;
1921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
1922 0 : {
1923 0 : tree res_op0;
1924 0 : {
1925 0 : tree _o1[2], _r1;
1926 0 : _o1[0] = captures[0];
1927 0 : _o1[1] = wide_int_to_tree (from_type, real_c1);
1928 0 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1929 0 : res_op0 = _r1;
1930 : }
1931 0 : tree res_op1;
1932 0 : res_op1 = wide_int_to_tree (from_type, c2);
1933 0 : tree _r;
1934 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1935 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 509, __FILE__, __LINE__, true);
1936 0 : return _r;
1937 : }
1938 223 : next_after_fail618:;
1939 : }
1940 : }
1941 7417 : }
1942 : }
1943 : }
1944 : return NULL_TREE;
1945 : }
1946 :
1947 : tree
1948 17 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1949 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1950 : const enum tree_code ARG_UNUSED (cmp))
1951 : {
1952 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1953 17 : if (INTEGRAL_TYPE_P (type)
1954 17 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1955 17 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1956 34 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
1957 : )
1958 : {
1959 17 : {
1960 17 : tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
1961 17 : if (cmp == GE_EXPR
1962 : )
1963 : {
1964 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail653;
1965 9 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail653;
1966 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail653;
1967 9 : {
1968 9 : tree res_op0;
1969 9 : {
1970 9 : tree _o1[1], _r1;
1971 9 : {
1972 9 : tree _o2[2], _r2;
1973 9 : _o2[0] = captures[0];
1974 9 : _o2[1] = shifter;
1975 9 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1976 9 : _o1[0] = _r2;
1977 : }
1978 9 : if (TREE_TYPE (_o1[0]) != type)
1979 : {
1980 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1981 : }
1982 : else
1983 : _r1 = _o1[0];
1984 9 : res_op0 = _r1;
1985 : }
1986 9 : tree res_op1;
1987 9 : res_op1 = captures[1];
1988 9 : tree _r;
1989 9 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
1990 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 542, __FILE__, __LINE__, true);
1991 9 : return _r;
1992 : }
1993 : next_after_fail653:;
1994 : }
1995 : else
1996 : {
1997 8 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail654;
1998 8 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail654;
1999 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail654;
2000 8 : {
2001 8 : tree res_op0;
2002 8 : {
2003 8 : tree _o1[2], _r1;
2004 8 : {
2005 8 : tree _o2[1], _r2;
2006 8 : {
2007 8 : tree _o3[2], _r3;
2008 8 : _o3[0] = captures[0];
2009 8 : _o3[1] = shifter;
2010 8 : _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2011 8 : _o2[0] = _r3;
2012 : }
2013 8 : if (TREE_TYPE (_o2[0]) != type)
2014 : {
2015 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
2016 : }
2017 : else
2018 : _r2 = _o2[0];
2019 8 : _o1[0] = _r2;
2020 : }
2021 8 : _o1[1] = captures[1];
2022 8 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2023 8 : res_op0 = _r1;
2024 : }
2025 8 : tree _r;
2026 8 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2027 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 543, __FILE__, __LINE__, true);
2028 8 : return _r;
2029 : }
2030 : next_after_fail654:;
2031 : }
2032 : }
2033 : }
2034 : return NULL_TREE;
2035 : }
2036 :
2037 : tree
2038 22204446 : generic_simplify_394 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2039 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2040 : const enum tree_code ARG_UNUSED (cmp))
2041 : {
2042 22204446 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2043 44402742 : if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2044 11108 : || POINTER_TYPE_P (TREE_TYPE (captures[2]))
2045 2632 : || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
2046 44402742 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2047 : )
2048 : {
2049 22204446 : {
2050 22204446 : tree cst = uniform_integer_cst_p (captures[2]);
2051 22204446 : tree arg1_type = TREE_TYPE (cst);
2052 22204446 : unsigned int prec = TYPE_PRECISION (arg1_type);
2053 22204446 : wide_int max = wi::max_value (arg1_type);
2054 22204446 : wide_int signed_max = wi::max_value (prec, SIGNED);
2055 22204446 : wide_int min = wi::min_value (arg1_type);
2056 22204446 : if (wi::to_wide (cst) == max
2057 : )
2058 : {
2059 172855 : if (cmp == GT_EXPR
2060 : )
2061 : {
2062 118166 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
2063 118166 : {
2064 118166 : tree _r;
2065 118166 : _r = constant_boolean_node (false, type);
2066 118166 : if (TREE_SIDE_EFFECTS (captures[0]))
2067 80 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2068 118166 : if (TREE_SIDE_EFFECTS (captures[2]))
2069 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2070 118166 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2071 118166 : return _r;
2072 : }
2073 0 : next_after_fail694:;
2074 : }
2075 : else
2076 : {
2077 54689 : if (cmp == GE_EXPR
2078 : )
2079 : {
2080 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
2081 7 : {
2082 7 : tree res_op0;
2083 7 : res_op0 = captures[0];
2084 7 : tree res_op1;
2085 7 : res_op1 = captures[2];
2086 7 : tree _r;
2087 7 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2088 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2089 7 : return _r;
2090 : }
2091 0 : next_after_fail695:;
2092 : }
2093 : else
2094 : {
2095 54682 : if (cmp == LE_EXPR
2096 : )
2097 : {
2098 54672 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
2099 54672 : {
2100 54672 : tree _r;
2101 54672 : _r = constant_boolean_node (true, type);
2102 54672 : if (TREE_SIDE_EFFECTS (captures[0]))
2103 23 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2104 54672 : if (TREE_SIDE_EFFECTS (captures[2]))
2105 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2106 54672 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
2107 54672 : return _r;
2108 : }
2109 0 : next_after_fail696:;
2110 : }
2111 : else
2112 : {
2113 10 : if (cmp == LT_EXPR
2114 : )
2115 : {
2116 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail697;
2117 10 : {
2118 10 : tree res_op0;
2119 10 : res_op0 = captures[0];
2120 10 : tree res_op1;
2121 10 : res_op1 = captures[2];
2122 10 : tree _r;
2123 10 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2124 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
2125 10 : return _r;
2126 : }
2127 0 : next_after_fail697:;
2128 : }
2129 : }
2130 : }
2131 : }
2132 : }
2133 : else
2134 : {
2135 22031591 : if (wi::to_wide (cst) == min
2136 : )
2137 : {
2138 1335641 : if (cmp == LT_EXPR
2139 : )
2140 : {
2141 434277 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail698;
2142 434277 : {
2143 434277 : tree _r;
2144 434277 : _r = constant_boolean_node (false, type);
2145 434277 : if (TREE_SIDE_EFFECTS (captures[0]))
2146 50 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2147 434277 : if (TREE_SIDE_EFFECTS (captures[2]))
2148 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2149 434277 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
2150 434277 : return _r;
2151 : }
2152 0 : next_after_fail698:;
2153 : }
2154 : else
2155 : {
2156 901364 : if (cmp == LE_EXPR
2157 : )
2158 : {
2159 99401 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail699;
2160 99401 : {
2161 99401 : tree res_op0;
2162 99401 : res_op0 = captures[0];
2163 99401 : tree res_op1;
2164 99401 : res_op1 = captures[2];
2165 99401 : tree _r;
2166 99401 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2167 99401 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
2168 99401 : return _r;
2169 : }
2170 0 : next_after_fail699:;
2171 : }
2172 : else
2173 : {
2174 801963 : if (cmp == GE_EXPR
2175 : )
2176 : {
2177 236977 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail700;
2178 236977 : {
2179 236977 : tree _r;
2180 236977 : _r = constant_boolean_node (true, type);
2181 236977 : if (TREE_SIDE_EFFECTS (captures[0]))
2182 287 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2183 236977 : if (TREE_SIDE_EFFECTS (captures[2]))
2184 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2185 236977 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
2186 236977 : return _r;
2187 : }
2188 0 : next_after_fail700:;
2189 : }
2190 : else
2191 : {
2192 564986 : if (cmp == GT_EXPR
2193 : )
2194 : {
2195 564986 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail701;
2196 564986 : {
2197 564986 : tree res_op0;
2198 564986 : res_op0 = captures[0];
2199 564986 : tree res_op1;
2200 564986 : res_op1 = captures[2];
2201 564986 : tree _r;
2202 564986 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2203 564986 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
2204 564986 : return _r;
2205 : }
2206 0 : next_after_fail701:;
2207 : }
2208 : }
2209 : }
2210 : }
2211 : }
2212 : else
2213 : {
2214 20695957 : if (wi::to_wide (cst) == max - 1
2215 : )
2216 : {
2217 386802 : if (cmp == GT_EXPR
2218 : )
2219 : {
2220 154826 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail702;
2221 154826 : {
2222 154826 : tree res_op0;
2223 154826 : res_op0 = captures[0];
2224 154826 : tree res_op1;
2225 154826 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2226 154826 : wide_int_to_tree (TREE_TYPE (cst),
2227 154826 : wi::to_wide (cst)
2228 309652 : + 1));
2229 154826 : tree _r;
2230 154826 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2231 154826 : if (TREE_SIDE_EFFECTS (captures[2]))
2232 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2233 154826 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
2234 154826 : return _r;
2235 : }
2236 0 : next_after_fail702:;
2237 : }
2238 : else
2239 : {
2240 231976 : if (cmp == LE_EXPR
2241 : )
2242 : {
2243 231976 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail703;
2244 231976 : {
2245 231976 : tree res_op0;
2246 231976 : res_op0 = captures[0];
2247 231976 : tree res_op1;
2248 231976 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2249 231976 : wide_int_to_tree (TREE_TYPE (cst),
2250 231976 : wi::to_wide (cst)
2251 463952 : + 1));
2252 231976 : tree _r;
2253 231976 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2254 231976 : if (TREE_SIDE_EFFECTS (captures[2]))
2255 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2256 231976 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
2257 231976 : return _r;
2258 : }
2259 0 : next_after_fail703:;
2260 : }
2261 : }
2262 : }
2263 : else
2264 : {
2265 20309153 : if (wi::to_wide (cst) == min + 1
2266 : )
2267 : {
2268 717895 : if (cmp == GE_EXPR
2269 : )
2270 : {
2271 59520 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail704;
2272 59520 : {
2273 59520 : tree res_op0;
2274 59520 : res_op0 = captures[0];
2275 59520 : tree res_op1;
2276 59520 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2277 59520 : wide_int_to_tree (TREE_TYPE (cst),
2278 59520 : wi::to_wide (cst)
2279 119040 : - 1));
2280 59520 : tree _r;
2281 59520 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2282 59520 : if (TREE_SIDE_EFFECTS (captures[2]))
2283 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2284 59520 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
2285 59520 : return _r;
2286 : }
2287 0 : next_after_fail704:;
2288 : }
2289 : else
2290 : {
2291 658375 : if (cmp == LT_EXPR
2292 : )
2293 : {
2294 25729 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail705;
2295 25729 : {
2296 25729 : tree res_op0;
2297 25729 : res_op0 = captures[0];
2298 25729 : tree res_op1;
2299 25729 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2300 25729 : wide_int_to_tree (TREE_TYPE (cst),
2301 25729 : wi::to_wide (cst)
2302 51458 : - 1));
2303 25729 : tree _r;
2304 25729 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2305 25729 : if (TREE_SIDE_EFFECTS (captures[2]))
2306 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2307 25729 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 578, __FILE__, __LINE__, true);
2308 25729 : return _r;
2309 : }
2310 0 : next_after_fail705:;
2311 : }
2312 : }
2313 : }
2314 : else
2315 : {
2316 19591253 : if (wi::to_wide (cst) == signed_max
2317 161349 : && TYPE_UNSIGNED (arg1_type)
2318 161349 : && TYPE_MODE (arg1_type) != BLKmode
2319 19591260 : && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
2320 19752029 : && INTEGRAL_TYPE_P (arg1_type)
2321 : )
2322 : {
2323 160769 : if (cmp == LE_EXPR || cmp == GT_EXPR
2324 : )
2325 : {
2326 160769 : {
2327 160769 : tree st = signed_type_for (TREE_TYPE (captures[2]));
2328 160769 : if (cst == captures[2] && cmp == LE_EXPR
2329 : )
2330 : {
2331 22849 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail706;
2332 22849 : {
2333 22849 : tree res_op0;
2334 22849 : {
2335 22849 : tree _o1[1], _r1;
2336 22849 : _o1[0] = captures[1];
2337 22849 : if (TREE_TYPE (_o1[0]) != st)
2338 : {
2339 22849 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2340 : }
2341 : else
2342 : _r1 = _o1[0];
2343 22849 : res_op0 = _r1;
2344 : }
2345 22849 : tree res_op1;
2346 22849 : res_op1 = build_zero_cst (st);
2347 22849 : tree _r;
2348 22849 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2349 22849 : if (TREE_SIDE_EFFECTS (captures[2]))
2350 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2351 22849 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
2352 22849 : return _r;
2353 : }
2354 0 : next_after_fail706:;
2355 0 : }
2356 : else
2357 : {
2358 137920 : if (cst == captures[2] && cmp == GT_EXPR
2359 : )
2360 : {
2361 137834 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail707;
2362 137834 : {
2363 137834 : tree res_op0;
2364 137834 : {
2365 137834 : tree _o1[1], _r1;
2366 137834 : _o1[0] = captures[1];
2367 137834 : if (TREE_TYPE (_o1[0]) != st)
2368 : {
2369 137834 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2370 : }
2371 : else
2372 : _r1 = _o1[0];
2373 137834 : res_op0 = _r1;
2374 : }
2375 137834 : tree res_op1;
2376 137834 : res_op1 = build_zero_cst (st);
2377 137834 : tree _r;
2378 137834 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2379 137834 : if (TREE_SIDE_EFFECTS (captures[2]))
2380 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2381 137834 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 580, __FILE__, __LINE__, true);
2382 137834 : return _r;
2383 : }
2384 0 : next_after_fail707:;
2385 0 : }
2386 : else
2387 : {
2388 86 : if (cmp == LE_EXPR
2389 : )
2390 : {
2391 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail708;
2392 30 : {
2393 30 : tree res_op0;
2394 30 : {
2395 30 : tree _o1[1], _r1;
2396 30 : _o1[0] = captures[1];
2397 30 : if (TREE_TYPE (_o1[0]) != st)
2398 : {
2399 30 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2400 : }
2401 : else
2402 : _r1 = _o1[0];
2403 30 : res_op0 = _r1;
2404 : }
2405 30 : tree res_op1;
2406 30 : res_op1 = build_zero_cst (st);
2407 30 : tree _r;
2408 30 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2409 30 : if (TREE_SIDE_EFFECTS (captures[2]))
2410 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2411 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
2412 30 : return _r;
2413 : }
2414 0 : next_after_fail708:;
2415 : }
2416 : else
2417 : {
2418 56 : if (cmp == GT_EXPR
2419 : )
2420 : {
2421 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail709;
2422 56 : {
2423 56 : tree res_op0;
2424 56 : {
2425 56 : tree _o1[1], _r1;
2426 56 : _o1[0] = captures[1];
2427 56 : if (TREE_TYPE (_o1[0]) != st)
2428 : {
2429 56 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2430 : }
2431 : else
2432 : _r1 = _o1[0];
2433 56 : res_op0 = _r1;
2434 : }
2435 56 : tree res_op1;
2436 56 : res_op1 = build_zero_cst (st);
2437 56 : tree _r;
2438 56 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2439 56 : if (TREE_SIDE_EFFECTS (captures[2]))
2440 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2441 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
2442 56 : return _r;
2443 : }
2444 0 : next_after_fail709:;
2445 : }
2446 : }
2447 : }
2448 : }
2449 : }
2450 : }
2451 : }
2452 : }
2453 : }
2454 : }
2455 : }
2456 22204460 : }
2457 : }
2458 : return NULL_TREE;
2459 : }
2460 :
2461 : tree
2462 0 : generic_simplify_452 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2463 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2464 : {
2465 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2466 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail799;
2467 0 : {
2468 0 : tree res_op0;
2469 0 : res_op0 = captures[0];
2470 0 : tree res_op1;
2471 0 : res_op1 = captures[1];
2472 0 : tree _r;
2473 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2474 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 653, __FILE__, __LINE__, true);
2475 : return _r;
2476 : }
2477 0 : next_after_fail799:;
2478 0 : return NULL_TREE;
2479 : }
2480 :
2481 : tree
2482 352 : generic_simplify_458 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2483 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2484 : const enum tree_code ARG_UNUSED (bitop),
2485 : const enum tree_code ARG_UNUSED (op))
2486 : {
2487 352 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2488 352 : {
2489 352 : tree pmop[2];
2490 352 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK,
2491 : NULL_TREE, NULL_TREE, captures[2], bitop, captures[3],
2492 : captures[4], pmop);
2493 352 : if (utype
2494 : )
2495 : {
2496 351 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail805;
2497 351 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail805;
2498 351 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail805;
2499 351 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail805;
2500 351 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail805;
2501 351 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail805;
2502 351 : {
2503 351 : tree res_op0;
2504 351 : {
2505 351 : tree _o1[2], _r1;
2506 351 : {
2507 351 : tree _o2[2], _r2;
2508 351 : {
2509 351 : tree _o3[1], _r3;
2510 351 : _o3[0] = pmop[0];
2511 351 : if (TREE_TYPE (_o3[0]) != utype)
2512 : {
2513 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2514 : }
2515 : else
2516 : _r3 = _o3[0];
2517 351 : _o2[0] = _r3;
2518 : }
2519 351 : {
2520 351 : tree _o3[1], _r3;
2521 351 : _o3[0] = pmop[1];
2522 351 : if (TREE_TYPE (_o3[0]) != utype)
2523 : {
2524 74 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2525 : }
2526 : else
2527 : _r3 = _o3[0];
2528 351 : _o2[1] = _r3;
2529 : }
2530 351 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2531 351 : _o1[0] = _r2;
2532 : }
2533 351 : {
2534 351 : tree _o2[1], _r2;
2535 351 : _o2[0] = captures[5];
2536 351 : if (TREE_TYPE (_o2[0]) != utype)
2537 : {
2538 14 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2539 : }
2540 : else
2541 : _r2 = _o2[0];
2542 351 : _o1[1] = _r2;
2543 : }
2544 351 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2545 351 : res_op0 = _r1;
2546 : }
2547 351 : tree _r;
2548 351 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2549 351 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
2550 351 : return _r;
2551 : }
2552 1 : next_after_fail805:;
2553 : }
2554 : }
2555 1 : return NULL_TREE;
2556 : }
2557 :
2558 : tree
2559 111 : generic_simplify_474 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2560 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2561 : const enum tree_code ARG_UNUSED (code2),
2562 : const enum tree_code ARG_UNUSED (code1))
2563 : {
2564 111 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2565 111 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2566 47 : && TREE_CODE (captures[4]) == INTEGER_CST)
2567 111 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2568 14 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2569 4 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2570 10 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2571 54 : && operand_equal_p (captures[2], captures[4]))
2572 : )
2573 : {
2574 51 : {
2575 51 : int cmp = 0;
2576 51 : if (TREE_CODE (captures[2]) == INTEGER_CST
2577 47 : && TREE_CODE (captures[4]) == INTEGER_CST)
2578 47 : cmp = tree_int_cst_compare (captures[2], captures[4]);
2579 51 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
2580 4 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2581 : )
2582 : {
2583 0 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
2584 : )
2585 : {
2586 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail835;
2587 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail835;
2588 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail835;
2589 0 : {
2590 0 : tree _r;
2591 0 : _r = captures[0];
2592 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
2593 0 : return _r;
2594 : }
2595 : next_after_fail835:;
2596 : }
2597 : else
2598 : {
2599 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail836;
2600 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail836;
2601 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
2602 0 : {
2603 0 : tree _r;
2604 0 : _r = captures[3];
2605 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
2606 0 : return _r;
2607 : }
2608 : next_after_fail836:;
2609 : }
2610 : }
2611 : else
2612 : {
2613 51 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
2614 47 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2615 : )
2616 : {
2617 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
2618 : )
2619 : {
2620 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail837;
2621 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail837;
2622 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
2623 0 : {
2624 0 : tree _r;
2625 0 : _r = captures[0];
2626 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
2627 0 : return _r;
2628 : }
2629 : next_after_fail837:;
2630 : }
2631 : else
2632 : {
2633 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail838;
2634 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail838;
2635 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
2636 0 : {
2637 0 : tree _r;
2638 0 : _r = captures[3];
2639 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
2640 0 : return _r;
2641 : }
2642 : next_after_fail838:;
2643 : }
2644 : }
2645 : else
2646 : {
2647 51 : if (cmp == 0
2648 4 : && ((code1 == LE_EXPR && code2 == GE_EXPR)
2649 4 : || (code1 == GE_EXPR && code2 == LE_EXPR))
2650 : )
2651 : {
2652 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail839;
2653 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail839;
2654 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail839;
2655 0 : {
2656 0 : tree res_op0;
2657 0 : res_op0 = captures[1];
2658 0 : tree res_op1;
2659 0 : res_op1 = captures[2];
2660 0 : tree _r;
2661 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
2663 0 : return _r;
2664 : }
2665 : next_after_fail839:;
2666 : }
2667 : else
2668 : {
2669 51 : if (cmp <= 0
2670 50 : && (code1 == LT_EXPR || code1 == LE_EXPR)
2671 4 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2672 : )
2673 : {
2674 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail840;
2675 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail840;
2676 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail840;
2677 4 : {
2678 4 : tree _r;
2679 4 : _r = constant_boolean_node (false, type);
2680 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2681 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2682 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 685, __FILE__, __LINE__, true);
2683 4 : return _r;
2684 : }
2685 : next_after_fail840:;
2686 : }
2687 : else
2688 : {
2689 46 : if (cmp >= 0
2690 1 : && (code1 == GT_EXPR || code1 == GE_EXPR)
2691 1 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2692 : )
2693 : {
2694 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail841;
2695 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail841;
2696 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail841;
2697 1 : {
2698 1 : tree _r;
2699 1 : _r = constant_boolean_node (false, type);
2700 1 : if (TREE_SIDE_EFFECTS (captures[1]))
2701 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2702 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 686, __FILE__, __LINE__, true);
2703 1 : return _r;
2704 : }
2705 : next_after_fail841:;
2706 : }
2707 : }
2708 : }
2709 : }
2710 : }
2711 : }
2712 : }
2713 : return NULL_TREE;
2714 : }
2715 :
2716 : tree
2717 34 : generic_simplify_491 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2718 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2719 : const combined_fn ARG_UNUSED (bswap))
2720 : {
2721 34 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2722 34 : if (BITS_PER_UNIT == 8
2723 34 : && tree_fits_uhwi_p (captures[2])
2724 34 : && tree_to_uhwi (captures[2]) < 256
2725 : )
2726 : {
2727 32 : {
2728 32 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2729 32 : tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
2730 32 : tree nst = build_int_cst (integer_type_node, prec - 8);
2731 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail881;
2732 32 : {
2733 32 : tree res_op0;
2734 32 : {
2735 32 : tree _o1[1], _r1;
2736 32 : {
2737 32 : tree _o2[2], _r2;
2738 32 : {
2739 32 : tree _o3[1], _r3;
2740 32 : _o3[0] = captures[1];
2741 32 : if (TREE_TYPE (_o3[0]) != utype)
2742 : {
2743 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2744 : }
2745 : else
2746 : _r3 = _o3[0];
2747 32 : _o2[0] = _r3;
2748 : }
2749 32 : _o2[1] = nst;
2750 32 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
2751 32 : _o1[0] = _r2;
2752 : }
2753 32 : if (TREE_TYPE (_o1[0]) != type)
2754 : {
2755 18 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2756 : }
2757 : else
2758 : _r1 = _o1[0];
2759 32 : res_op0 = _r1;
2760 : }
2761 32 : tree res_op1;
2762 32 : res_op1 = captures[2];
2763 32 : tree _r;
2764 32 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2765 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
2766 32 : return _r;
2767 : }
2768 0 : next_after_fail881:;
2769 : }
2770 : }
2771 : return NULL_TREE;
2772 : }
2773 :
2774 : tree
2775 422353 : generic_simplify_495 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2776 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2777 : const enum tree_code ARG_UNUSED (op))
2778 : {
2779 422353 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2780 844706 : if (INTEGRAL_TYPE_P (type)
2781 422353 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2782 66154 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2783 66154 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2784 66154 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2785 66154 : && type_has_mode_precision_p (type)
2786 66154 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2787 33 : && types_match (captures[2], captures[4])
2788 33 : && (tree_int_cst_min_precision (captures[5], TYPE_SIGN (TREE_TYPE (captures[2])))
2789 33 : <= TYPE_PRECISION (TREE_TYPE (captures[2])))
2790 422380 : && (wi::to_wide (captures[5])
2791 422407 : & wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])),
2792 422407 : true, TYPE_PRECISION (type))) == 0
2793 : )
2794 : {
2795 25 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2796 : )
2797 : {
2798 12 : {
2799 12 : tree ntype = TREE_TYPE (captures[2]);
2800 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail885;
2801 12 : {
2802 12 : tree res_op0;
2803 12 : {
2804 12 : tree _o1[2], _r1;
2805 12 : {
2806 12 : tree _o2[2], _r2;
2807 12 : _o2[0] = captures[2];
2808 12 : _o2[1] = captures[4];
2809 12 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2810 12 : _o1[0] = _r2;
2811 : }
2812 12 : {
2813 12 : tree _o2[1], _r2;
2814 12 : _o2[0] = captures[5];
2815 12 : if (TREE_TYPE (_o2[0]) != ntype)
2816 : {
2817 12 : _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
2818 : }
2819 : else
2820 : _r2 = _o2[0];
2821 12 : _o1[1] = _r2;
2822 : }
2823 12 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2824 12 : res_op0 = _r1;
2825 : }
2826 12 : tree _r;
2827 12 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2828 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 699, __FILE__, __LINE__, true);
2829 12 : return _r;
2830 : }
2831 0 : next_after_fail885:;
2832 : }
2833 : }
2834 : else
2835 : {
2836 13 : {
2837 13 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2838 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail886;
2839 13 : {
2840 13 : tree res_op0;
2841 13 : {
2842 13 : tree _o1[2], _r1;
2843 13 : {
2844 13 : tree _o2[2], _r2;
2845 13 : {
2846 13 : tree _o3[1], _r3;
2847 13 : _o3[0] = captures[2];
2848 13 : if (TREE_TYPE (_o3[0]) != utype)
2849 : {
2850 13 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2851 : }
2852 : else
2853 : _r3 = _o3[0];
2854 13 : _o2[0] = _r3;
2855 : }
2856 13 : {
2857 13 : tree _o3[1], _r3;
2858 13 : _o3[0] = captures[4];
2859 13 : if (TREE_TYPE (_o3[0]) != utype)
2860 : {
2861 13 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2862 : }
2863 : else
2864 : _r3 = _o3[0];
2865 13 : _o2[1] = _r3;
2866 : }
2867 13 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2868 13 : _o1[0] = _r2;
2869 : }
2870 13 : {
2871 13 : tree _o2[1], _r2;
2872 13 : _o2[0] = captures[5];
2873 13 : if (TREE_TYPE (_o2[0]) != utype)
2874 : {
2875 13 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2876 : }
2877 : else
2878 : _r2 = _o2[0];
2879 13 : _o1[1] = _r2;
2880 : }
2881 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2882 13 : res_op0 = _r1;
2883 : }
2884 13 : tree _r;
2885 13 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2886 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
2887 13 : return _r;
2888 : }
2889 0 : next_after_fail886:;
2890 : }
2891 : }
2892 : }
2893 : return NULL_TREE;
2894 : }
2895 :
2896 : tree
2897 0 : generic_simplify_526 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2898 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2899 : const enum tree_code ARG_UNUSED (minmax))
2900 : {
2901 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2902 0 : if (TYPE_UNSIGNED(type)
2903 : )
2904 : {
2905 0 : if (minmax == MIN_EXPR
2906 : )
2907 : {
2908 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail920;
2909 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail920;
2910 0 : {
2911 0 : tree _r;
2912 0 : _r = captures[1];
2913 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 731, __FILE__, __LINE__, true);
2914 0 : return _r;
2915 : }
2916 : next_after_fail920:;
2917 : }
2918 : else
2919 : {
2920 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail921;
2921 0 : {
2922 0 : tree _r;
2923 0 : _r = captures[0];
2924 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2925 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2926 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 732, __FILE__, __LINE__, true);
2927 0 : return _r;
2928 : }
2929 0 : next_after_fail921:;
2930 : }
2931 : }
2932 : return NULL_TREE;
2933 : }
2934 :
2935 : tree
2936 0 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2937 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2938 : const combined_fn ARG_UNUSED (minmax))
2939 : {
2940 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2941 0 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
2942 : )
2943 : {
2944 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail942;
2945 0 : {
2946 0 : tree _r;
2947 0 : _r = captures[0];
2948 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
2949 0 : return _r;
2950 : }
2951 0 : next_after_fail942:;
2952 : }
2953 : return NULL_TREE;
2954 : }
2955 :
2956 : tree
2957 6 : generic_simplify_540 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2958 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2959 : {
2960 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2961 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail947;
2962 6 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail947;
2963 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail947;
2964 6 : {
2965 6 : tree _r;
2966 6 : _r = captures[2];
2967 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 531, __FILE__, __LINE__, true);
2968 : return _r;
2969 : }
2970 : next_after_fail947:;
2971 : return NULL_TREE;
2972 : }
2973 :
2974 : tree
2975 0 : generic_simplify_546 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2976 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2977 : const combined_fn ARG_UNUSED (cond_op))
2978 : {
2979 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2980 0 : {
2981 0 : tree op_type = TREE_TYPE (captures[4]);
2982 0 : if (element_precision (type) == element_precision (op_type)
2983 : )
2984 : {
2985 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail953;
2986 0 : {
2987 0 : tree res_op0;
2988 0 : {
2989 0 : tree _o1[5], _r1;
2990 0 : _o1[0] = captures[0];
2991 0 : _o1[1] = captures[1];
2992 0 : _o1[2] = captures[2];
2993 0 : _o1[3] = captures[3];
2994 0 : {
2995 0 : tree _o2[1], _r2;
2996 0 : _o2[0] = captures[5];
2997 0 : if (TREE_TYPE (_o2[0]) != op_type)
2998 : {
2999 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
3000 : }
3001 : else
3002 : _r2 = _o2[0];
3003 0 : _o1[4] = _r2;
3004 : }
3005 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
3006 0 : if (!_r1)
3007 0 : goto next_after_fail953;
3008 0 : res_op0 = _r1;
3009 : }
3010 0 : tree _r;
3011 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3012 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3013 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3014 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 747, __FILE__, __LINE__, true);
3015 0 : return _r;
3016 : }
3017 : next_after_fail953:;
3018 : }
3019 : }
3020 : return NULL_TREE;
3021 : }
3022 :
3023 : tree
3024 0 : generic_simplify_555 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3025 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3026 : const enum tree_code ARG_UNUSED (rotate),
3027 : const enum tree_code ARG_UNUSED (orotate))
3028 : {
3029 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3030 0 : {
3031 0 : auto prec = element_precision (TREE_TYPE (captures[0]));
3032 0 : if (prec == wi::to_wide (captures[2])
3033 : )
3034 : {
3035 0 : if (expr_not_equal_to (captures[3], wi::uhwi (prec,
3036 0 : TYPE_PRECISION (TREE_TYPE (captures[3]))),
3037 : gimple_match_ctx (captures[1]))
3038 : )
3039 : {
3040 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail962;
3041 0 : {
3042 0 : tree res_op0;
3043 0 : res_op0 = captures[0];
3044 0 : tree res_op1;
3045 0 : res_op1 = captures[3];
3046 0 : tree _r;
3047 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3048 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3049 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3050 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 756, __FILE__, __LINE__, true);
3051 0 : return _r;
3052 : }
3053 0 : next_after_fail962:;
3054 : }
3055 : else
3056 : {
3057 0 : if (single_use (captures[1])
3058 0 : && pow2p_hwi (prec)
3059 0 : && cfun
3060 0 : && (fold_before_rtl_expansion_p ()
3061 0 : || !flag_tree_vrp
3062 0 : || optimize_debug)
3063 : )
3064 : {
3065 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail963;
3066 0 : {
3067 0 : tree res_op0;
3068 0 : res_op0 = captures[0];
3069 0 : tree res_op1;
3070 0 : {
3071 0 : tree _o1[2], _r1;
3072 0 : _o1[0] = captures[3];
3073 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[3]), prec - 1);
3074 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3075 0 : res_op1 = _r1;
3076 : }
3077 0 : tree _r;
3078 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3079 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3081 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 757, __FILE__, __LINE__, true);
3082 0 : return _r;
3083 : }
3084 0 : next_after_fail963:;
3085 : }
3086 : }
3087 : }
3088 : }
3089 0 : return NULL_TREE;
3090 : }
3091 :
3092 : tree
3093 0 : generic_simplify_577 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3094 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3095 : {
3096 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3097 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail987;
3098 0 : {
3099 0 : tree _r;
3100 0 : _r = captures[0];
3101 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3102 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3103 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 781, __FILE__, __LINE__, true);
3104 : return _r;
3105 : }
3106 0 : next_after_fail987:;
3107 0 : return NULL_TREE;
3108 : }
3109 :
3110 : tree
3111 0 : generic_simplify_582 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3112 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3113 : const combined_fn ARG_UNUSED (fns))
3114 : {
3115 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3116 0 : if (canonicalize_math_p ()
3117 : )
3118 : {
3119 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail992;
3120 0 : {
3121 0 : tree res_op0;
3122 0 : res_op0 = captures[0];
3123 0 : tree _r;
3124 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 786, __FILE__, __LINE__, true);
3126 0 : return _r;
3127 : }
3128 0 : next_after_fail992:;
3129 : }
3130 : return NULL_TREE;
3131 : }
3132 :
3133 : tree
3134 0 : generic_simplify_590 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3135 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3136 : const combined_fn ARG_UNUSED (fmas))
3137 : {
3138 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3139 0 : if (canonicalize_math_after_vectorization_p ()
3140 : )
3141 : {
3142 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1000;
3143 : {
3144 : tree res_op0;
3145 : res_op0 = captures[0];
3146 : tree res_op1;
3147 : res_op1 = captures[1];
3148 : tree res_op2;
3149 : res_op2 = captures[2];
3150 : tree _r;
3151 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3152 : if (!_r)
3153 : goto next_after_fail1000;
3154 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 794, __FILE__, __LINE__, true);
3155 : return _r;
3156 : }
3157 0 : next_after_fail1000:;
3158 : }
3159 0 : return NULL_TREE;
3160 : }
3161 :
3162 : tree
3163 0 : generic_simplify_600 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3164 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3165 : {
3166 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3167 0 : if (canonicalize_math_after_vectorization_p ()
3168 : )
3169 : {
3170 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1010;
3171 : {
3172 : tree res_op0;
3173 : res_op0 = captures[0];
3174 : tree res_op1;
3175 : res_op1 = captures[1];
3176 : tree res_op2;
3177 : res_op2 = captures[2];
3178 : tree res_op3;
3179 : res_op3 = captures[3];
3180 : tree res_op4;
3181 : res_op4 = captures[4];
3182 : tree _r;
3183 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3184 : if (!_r)
3185 : goto next_after_fail1010;
3186 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 804, __FILE__, __LINE__, true);
3187 : return _r;
3188 : }
3189 0 : next_after_fail1010:;
3190 : }
3191 0 : return NULL_TREE;
3192 : }
3193 :
3194 : tree
3195 0 : generic_simplify_609 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3196 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3197 : const combined_fn ARG_UNUSED (ctz))
3198 : {
3199 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3200 0 : {
3201 0 : tree t = TREE_TYPE (captures[0]);
3202 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1019;
3203 0 : {
3204 0 : tree res_op0;
3205 0 : {
3206 0 : tree _o1[1], _r1;
3207 0 : _o1[0] = captures[1];
3208 0 : if (TREE_TYPE (_o1[0]) != t)
3209 : {
3210 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3211 : }
3212 : else
3213 : _r1 = _o1[0];
3214 0 : res_op0 = _r1;
3215 : }
3216 0 : tree _r;
3217 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3218 0 : if (!_r)
3219 0 : goto next_after_fail1019;
3220 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 810, __FILE__, __LINE__, true);
3221 : return _r;
3222 : }
3223 : next_after_fail1019:;
3224 : }
3225 : return NULL_TREE;
3226 : }
3227 :
3228 : tree
3229 0 : generic_simplify_619 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3230 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3231 : const combined_fn ARG_UNUSED (bswap),
3232 : const combined_fn ARG_UNUSED (parity))
3233 : {
3234 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3235 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3236 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3237 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3238 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3239 : )
3240 : {
3241 0 : {
3242 0 : tree type0 = TREE_TYPE (captures[0]);
3243 0 : tree type1 = TREE_TYPE (captures[1]);
3244 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1030;
3245 0 : {
3246 0 : tree res_op0;
3247 0 : {
3248 0 : tree _o1[1], _r1;
3249 0 : {
3250 0 : tree _o2[1], _r2;
3251 0 : _o2[0] = captures[2];
3252 0 : if (TREE_TYPE (_o2[0]) != type1)
3253 : {
3254 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3255 : }
3256 : else
3257 : _r2 = _o2[0];
3258 0 : _o1[0] = _r2;
3259 : }
3260 0 : if (TREE_TYPE (_o1[0]) != type0)
3261 : {
3262 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3263 : }
3264 : else
3265 : _r1 = _o1[0];
3266 0 : res_op0 = _r1;
3267 : }
3268 0 : tree _r;
3269 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3270 0 : if (!_r)
3271 0 : goto next_after_fail1030;
3272 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 817, __FILE__, __LINE__, true);
3273 0 : return _r;
3274 : }
3275 : next_after_fail1030:;
3276 : }
3277 : }
3278 : return NULL_TREE;
3279 : }
3280 :
3281 : tree
3282 4196002 : generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3283 : {
3284 4196002 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3285 4196002 : switch (TREE_CODE (_p0))
3286 : {
3287 40097 : case PLUS_EXPR:
3288 40097 : {
3289 40097 : tree _q20 = TREE_OPERAND (_p0, 0);
3290 40097 : tree _q21 = TREE_OPERAND (_p0, 1);
3291 40097 : if (tree_negate_expr_p (_q21))
3292 : {
3293 38915 : {
3294 38915 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3295 38915 : tree res = generic_simplify_511 (loc, type, _p0, captures);
3296 38915 : if (res) return res;
3297 : }
3298 : }
3299 1182 : if (tree_negate_expr_p (_q20))
3300 : {
3301 17 : {
3302 17 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
3303 17 : tree res = generic_simplify_511 (loc, type, _p0, captures);
3304 17 : if (res) return res;
3305 : }
3306 : }
3307 : break;
3308 : }
3309 106965 : case MINUS_EXPR:
3310 106965 : {
3311 106965 : tree _q20 = TREE_OPERAND (_p0, 0);
3312 106965 : tree _q21 = TREE_OPERAND (_p0, 1);
3313 106965 : {
3314 106965 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3315 106965 : if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type))
3316 182216 : || (FLOAT_TYPE_P (type)
3317 75251 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
3318 75251 : && !HONOR_SIGNED_ZEROS (type))
3319 : )
3320 : {
3321 31771 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1077;
3322 31771 : {
3323 31771 : tree res_op0;
3324 31771 : res_op0 = captures[1];
3325 31771 : tree res_op1;
3326 31771 : res_op1 = captures[0];
3327 31771 : tree _r;
3328 31771 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3329 31771 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 855, __FILE__, __LINE__, true);
3330 31771 : return _r;
3331 : }
3332 0 : next_after_fail1077:;
3333 : }
3334 : }
3335 75194 : break;
3336 : }
3337 16 : case POINTER_DIFF_EXPR:
3338 16 : {
3339 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3340 16 : tree _q21 = TREE_OPERAND (_p0, 1);
3341 16 : {
3342 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3343 16 : tree res = generic_simplify_512 (loc, type, _p0, captures);
3344 16 : if (res) return res;
3345 : }
3346 0 : break;
3347 : }
3348 4113 : case MULT_EXPR:
3349 4113 : {
3350 4113 : tree _q20 = TREE_OPERAND (_p0, 0);
3351 4113 : tree _q21 = TREE_OPERAND (_p0, 1);
3352 4113 : if (tree_negate_expr_p (_q21))
3353 : {
3354 1820 : {
3355 1820 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3356 1820 : tree res = generic_simplify_515 (loc, type, _p0, captures);
3357 1820 : if (res) return res;
3358 : }
3359 : }
3360 2707 : if (tree_negate_expr_p (_q20))
3361 : {
3362 27 : {
3363 27 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
3364 27 : tree res = generic_simplify_515 (loc, type, _p0, captures);
3365 27 : if (res) return res;
3366 : }
3367 : }
3368 : break;
3369 : }
3370 188 : case RDIV_EXPR:
3371 188 : {
3372 188 : tree _q20 = TREE_OPERAND (_p0, 0);
3373 188 : tree _q21 = TREE_OPERAND (_p0, 1);
3374 188 : if (tree_negate_expr_p (_q21))
3375 : {
3376 60 : {
3377 60 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3378 60 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3379 60 : && single_use (captures[0])
3380 : )
3381 : {
3382 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1078;
3383 60 : {
3384 60 : tree res_op0;
3385 60 : res_op0 = captures[1];
3386 60 : tree res_op1;
3387 60 : {
3388 60 : tree _o1[1], _r1;
3389 60 : _o1[0] = captures[2];
3390 60 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3391 60 : res_op1 = _r1;
3392 : }
3393 60 : tree _r;
3394 60 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3395 60 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 856, __FILE__, __LINE__, true);
3396 60 : return _r;
3397 : }
3398 0 : next_after_fail1078:;
3399 : }
3400 : }
3401 : }
3402 128 : if (tree_negate_expr_p (_q20))
3403 : {
3404 0 : {
3405 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3406 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3407 0 : && single_use (captures[0])
3408 : )
3409 : {
3410 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1079;
3411 0 : {
3412 0 : tree res_op0;
3413 0 : {
3414 0 : tree _o1[1], _r1;
3415 0 : _o1[0] = captures[1];
3416 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3417 0 : res_op0 = _r1;
3418 : }
3419 0 : tree res_op1;
3420 0 : res_op1 = captures[2];
3421 0 : tree _r;
3422 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3423 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
3424 0 : return _r;
3425 : }
3426 0 : next_after_fail1079:;
3427 : }
3428 : }
3429 : }
3430 : break;
3431 : }
3432 1321191 : CASE_CONVERT:
3433 1321191 : {
3434 1321191 : tree _q20 = TREE_OPERAND (_p0, 0);
3435 1321191 : switch (TREE_CODE (_q20))
3436 : {
3437 58 : case RSHIFT_EXPR:
3438 58 : {
3439 58 : tree _q30 = TREE_OPERAND (_q20, 0);
3440 58 : tree _q31 = TREE_OPERAND (_q20, 1);
3441 58 : switch (TREE_CODE (_q31))
3442 : {
3443 43 : case INTEGER_CST:
3444 43 : {
3445 43 : {
3446 43 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3447 43 : tree res = generic_simplify_516 (loc, type, _p0, captures);
3448 43 : if (res) return res;
3449 : }
3450 36 : break;
3451 : }
3452 : default:;
3453 : }
3454 : break;
3455 : }
3456 207 : case NEGATE_EXPR:
3457 207 : {
3458 207 : tree _q30 = TREE_OPERAND (_q20, 0);
3459 207 : {
3460 207 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3461 207 : if (!TYPE_SATURATING (type)
3462 : )
3463 : {
3464 207 : if (INTEGRAL_TYPE_P (type)
3465 207 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
3466 17 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3467 32 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
3468 206 : && !TYPE_OVERFLOW_SANITIZED (type)
3469 429 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
3470 : )
3471 : {
3472 206 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1080;
3473 206 : {
3474 206 : tree res_op0;
3475 206 : res_op0 = captures[0];
3476 206 : tree _r;
3477 206 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3478 206 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
3479 206 : return _r;
3480 : }
3481 0 : next_after_fail1080:;
3482 : }
3483 : }
3484 : }
3485 : break;
3486 : }
3487 1320978 : default:;
3488 : }
3489 1320978 : {
3490 1320978 : tree _q20_pops[1];
3491 1320978 : if (tree_logical_inverted_value (_q20, _q20_pops))
3492 : {
3493 1 : tree _q30 = _q20_pops[0];
3494 1 : {
3495 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3496 1 : if (INTEGRAL_TYPE_P (type)
3497 1 : && TREE_CODE (type) != BOOLEAN_TYPE
3498 1 : && TYPE_PRECISION (type) > 1
3499 1 : && TREE_CODE (captures[2]) == SSA_NAME
3500 1 : && ssa_name_has_boolean_range (captures[2])
3501 : )
3502 : {
3503 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1081;
3504 0 : {
3505 0 : tree res_op0;
3506 0 : {
3507 0 : tree _o1[1], _r1;
3508 0 : _o1[0] = captures[2];
3509 0 : if (TREE_TYPE (_o1[0]) != type)
3510 : {
3511 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3512 : }
3513 : else
3514 : _r1 = _o1[0];
3515 0 : res_op0 = _r1;
3516 : }
3517 0 : tree res_op1;
3518 0 : res_op1 = build_all_ones_cst (type);
3519 0 : tree _r;
3520 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3521 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
3522 0 : return _r;
3523 : }
3524 0 : next_after_fail1081:;
3525 : }
3526 : }
3527 : }
3528 : }
3529 1320978 : if (tree_negate_expr_p (_q20))
3530 : {
3531 1592 : {
3532 1592 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3533 1592 : if (!TYPE_SATURATING (type)
3534 : )
3535 : {
3536 1592 : if (SCALAR_FLOAT_TYPE_P (type)
3537 1592 : && ((DECIMAL_FLOAT_TYPE_P (type)
3538 0 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
3539 0 : && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0])))
3540 0 : || !HONOR_SIGN_DEPENDENT_ROUNDING (type))
3541 : )
3542 : {
3543 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1082;
3544 0 : {
3545 0 : tree res_op0;
3546 0 : {
3547 0 : tree _o1[1], _r1;
3548 0 : _o1[0] = captures[0];
3549 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3550 0 : res_op0 = _r1;
3551 : }
3552 0 : tree _r;
3553 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3554 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 860, __FILE__, __LINE__, true);
3555 0 : return _r;
3556 : }
3557 0 : next_after_fail1082:;
3558 : }
3559 : }
3560 : }
3561 : }
3562 : break;
3563 : }
3564 384 : case RSHIFT_EXPR:
3565 384 : {
3566 384 : tree _q20 = TREE_OPERAND (_p0, 0);
3567 384 : tree _q21 = TREE_OPERAND (_p0, 1);
3568 384 : switch (TREE_CODE (_q21))
3569 : {
3570 366 : case INTEGER_CST:
3571 366 : {
3572 366 : {
3573 366 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3574 366 : tree res = generic_simplify_516 (loc, type, _p0, captures);
3575 366 : if (res) return res;
3576 : }
3577 329 : break;
3578 : }
3579 : default:;
3580 : }
3581 : break;
3582 : }
3583 147 : case BIT_NOT_EXPR:
3584 147 : {
3585 147 : tree _q20 = TREE_OPERAND (_p0, 0);
3586 147 : {
3587 147 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3588 147 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3589 147 : if (res) return res;
3590 : }
3591 0 : break;
3592 : }
3593 3769 : case NEGATE_EXPR:
3594 3769 : {
3595 3769 : tree _q20 = TREE_OPERAND (_p0, 0);
3596 3769 : {
3597 3769 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3598 3769 : tree res = generic_simplify_514 (loc, type, _p0, captures);
3599 3769 : if (res) return res;
3600 : }
3601 13 : break;
3602 : }
3603 72 : case VEC_COND_EXPR:
3604 72 : {
3605 72 : tree _q20 = TREE_OPERAND (_p0, 0);
3606 72 : tree _q21 = TREE_OPERAND (_p0, 1);
3607 72 : tree _q22 = TREE_OPERAND (_p0, 2);
3608 72 : {
3609 72 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3610 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1083;
3611 72 : {
3612 72 : tree res_op0;
3613 72 : res_op0 = captures[1];
3614 72 : tree res_op1;
3615 72 : {
3616 72 : tree _o1[1], _r1;
3617 72 : _o1[0] = captures[2];
3618 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3619 72 : if (EXPR_P (_r1))
3620 0 : goto next_after_fail1083;
3621 72 : res_op1 = _r1;
3622 : }
3623 72 : tree res_op2;
3624 72 : {
3625 72 : tree _o1[1], _r1;
3626 72 : _o1[0] = captures[3];
3627 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3628 72 : if (EXPR_P (_r1))
3629 0 : goto next_after_fail1083;
3630 72 : res_op2 = _r1;
3631 : }
3632 72 : tree _r;
3633 72 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3634 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3635 72 : return _r;
3636 : }
3637 0 : next_after_fail1083:;
3638 : }
3639 0 : break;
3640 : }
3641 267506 : case CALL_EXPR:
3642 267506 : switch (get_call_combined_fn (_p0))
3643 : {
3644 12 : case CFN_BUILT_IN_FMA:
3645 12 : if (call_expr_nargs (_p0) == 3)
3646 : {
3647 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3648 12 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3649 12 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3650 12 : {
3651 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3652 12 : tree res = generic_simplify_517 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
3653 12 : if (res) return res;
3654 : }
3655 : }
3656 : break;
3657 0 : case CFN_COND_FMA:
3658 0 : if (call_expr_nargs (_p0) == 5)
3659 : {
3660 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3661 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3662 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3663 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3664 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3665 0 : {
3666 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3667 0 : const combined_fn fmas = CFN_COND_FMA;
3668 0 : if (canonicalize_math_after_vectorization_p ()
3669 : )
3670 : {
3671 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3672 : )
3673 : {
3674 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1084;
3675 : {
3676 : tree res_op0;
3677 : res_op0 = captures[1];
3678 : tree res_op1;
3679 : res_op1 = captures[2];
3680 : tree res_op2;
3681 : res_op2 = captures[3];
3682 : tree res_op3;
3683 : res_op3 = captures[4];
3684 : tree res_op4;
3685 : res_op4 = captures[5];
3686 : tree _r;
3687 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3688 : if (!_r)
3689 : goto next_after_fail1084;
3690 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 861, __FILE__, __LINE__, true);
3691 : return _r;
3692 : }
3693 0 : next_after_fail1084:;
3694 : }
3695 : }
3696 : }
3697 : }
3698 : break;
3699 4 : case CFN_BUILT_IN_FMAF:
3700 4 : if (call_expr_nargs (_p0) == 3)
3701 : {
3702 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3703 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3704 4 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3705 4 : {
3706 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3707 4 : tree res = generic_simplify_517 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
3708 4 : if (res) return res;
3709 : }
3710 : }
3711 : break;
3712 0 : case CFN_BUILT_IN_FMAL:
3713 0 : if (call_expr_nargs (_p0) == 3)
3714 : {
3715 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3716 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3717 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3718 0 : {
3719 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3720 0 : tree res = generic_simplify_517 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
3721 0 : if (res) return res;
3722 : }
3723 : }
3724 : break;
3725 0 : case CFN_FMA:
3726 0 : if (call_expr_nargs (_p0) == 3)
3727 : {
3728 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3729 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3730 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3731 0 : {
3732 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3733 0 : tree res = generic_simplify_517 (loc, type, _p0, captures, CFN_FMA);
3734 0 : if (res) return res;
3735 : }
3736 : }
3737 : break;
3738 0 : case CFN_FMS:
3739 0 : if (call_expr_nargs (_p0) == 3)
3740 : {
3741 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3742 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3743 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3744 0 : {
3745 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3746 0 : if (canonicalize_math_after_vectorization_p ()
3747 : )
3748 : {
3749 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3750 : )
3751 : {
3752 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1085;
3753 : {
3754 : tree res_op0;
3755 : res_op0 = captures[1];
3756 : tree res_op1;
3757 : res_op1 = captures[2];
3758 : tree res_op2;
3759 : res_op2 = captures[3];
3760 : tree _r;
3761 : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3762 : if (!_r)
3763 : goto next_after_fail1085;
3764 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3765 : return _r;
3766 : }
3767 0 : next_after_fail1085:;
3768 : }
3769 : }
3770 : }
3771 : }
3772 0 : if (call_expr_nargs (_p0) == 5)
3773 : {
3774 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3775 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3776 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3777 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3778 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3779 0 : {
3780 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3781 0 : if (canonicalize_math_after_vectorization_p ()
3782 : )
3783 : {
3784 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3785 : )
3786 : {
3787 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1086;
3788 : {
3789 : tree res_op0;
3790 : res_op0 = captures[1];
3791 : tree res_op1;
3792 : res_op1 = captures[2];
3793 : tree res_op2;
3794 : res_op2 = captures[3];
3795 : tree res_op3;
3796 : res_op3 = captures[4];
3797 : tree res_op4;
3798 : res_op4 = captures[5];
3799 : tree _r;
3800 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3801 : if (!_r)
3802 : goto next_after_fail1086;
3803 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3804 : return _r;
3805 : }
3806 0 : next_after_fail1086:;
3807 : }
3808 : }
3809 : }
3810 : }
3811 : break;
3812 0 : case CFN_COND_FNMA:
3813 0 : if (call_expr_nargs (_p0) == 5)
3814 : {
3815 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3816 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3817 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3818 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3819 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3820 0 : {
3821 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3822 0 : if (canonicalize_math_after_vectorization_p ()
3823 : )
3824 : {
3825 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3826 : )
3827 : {
3828 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1087;
3829 : {
3830 : tree res_op0;
3831 : res_op0 = captures[1];
3832 : tree res_op1;
3833 : res_op1 = captures[2];
3834 : tree res_op2;
3835 : res_op2 = captures[3];
3836 : tree res_op3;
3837 : res_op3 = captures[4];
3838 : tree res_op4;
3839 : res_op4 = captures[5];
3840 : tree _r;
3841 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3842 : if (!_r)
3843 : goto next_after_fail1087;
3844 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3845 : return _r;
3846 : }
3847 0 : next_after_fail1087:;
3848 : }
3849 : }
3850 : }
3851 : }
3852 : break;
3853 0 : case CFN_COND_FNMS:
3854 0 : if (call_expr_nargs (_p0) == 5)
3855 : {
3856 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3857 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3858 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3859 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3860 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3861 0 : {
3862 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3863 0 : if (canonicalize_math_after_vectorization_p ()
3864 : )
3865 : {
3866 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3867 : )
3868 : {
3869 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1088;
3870 : {
3871 : tree res_op0;
3872 : res_op0 = captures[1];
3873 : tree res_op1;
3874 : res_op1 = captures[2];
3875 : tree res_op2;
3876 : res_op2 = captures[3];
3877 : tree res_op3;
3878 : res_op3 = captures[4];
3879 : tree res_op4;
3880 : res_op4 = captures[5];
3881 : tree _r;
3882 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3883 : if (!_r)
3884 : goto next_after_fail1088;
3885 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 865, __FILE__, __LINE__, true);
3886 : return _r;
3887 : }
3888 0 : next_after_fail1088:;
3889 : }
3890 : }
3891 : }
3892 : }
3893 : break;
3894 0 : case CFN_FNMA:
3895 0 : if (call_expr_nargs (_p0) == 3)
3896 : {
3897 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3898 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3899 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3900 0 : {
3901 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3902 0 : if (canonicalize_math_after_vectorization_p ()
3903 : )
3904 : {
3905 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3906 : )
3907 : {
3908 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1089;
3909 : {
3910 : tree res_op0;
3911 : res_op0 = captures[1];
3912 : tree res_op1;
3913 : res_op1 = captures[2];
3914 : tree res_op2;
3915 : res_op2 = captures[3];
3916 : tree _r;
3917 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3918 : if (!_r)
3919 : goto next_after_fail1089;
3920 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 866, __FILE__, __LINE__, true);
3921 : return _r;
3922 : }
3923 0 : next_after_fail1089:;
3924 : }
3925 : }
3926 : }
3927 : }
3928 : break;
3929 0 : case CFN_FNMS:
3930 0 : if (call_expr_nargs (_p0) == 3)
3931 : {
3932 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3933 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3934 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3935 0 : {
3936 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3937 0 : if (canonicalize_math_after_vectorization_p ()
3938 : )
3939 : {
3940 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3941 : )
3942 : {
3943 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1090;
3944 : {
3945 : tree res_op0;
3946 : res_op0 = captures[1];
3947 : tree res_op1;
3948 : res_op1 = captures[2];
3949 : tree res_op2;
3950 : res_op2 = captures[3];
3951 : tree _r;
3952 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3953 : if (!_r)
3954 : goto next_after_fail1090;
3955 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 867, __FILE__, __LINE__, true);
3956 : return _r;
3957 : }
3958 0 : next_after_fail1090:;
3959 : }
3960 : }
3961 : }
3962 : }
3963 : break;
3964 : default:;
3965 : }
3966 : break;
3967 4119565 : default:;
3968 : }
3969 4119565 : {
3970 4119565 : tree _p0_pops[1];
3971 4119565 : if (tree_nop_convert (_p0, _p0_pops))
3972 : {
3973 1552053 : tree _q20 = _p0_pops[0];
3974 1552053 : switch (TREE_CODE (_q20))
3975 : {
3976 0 : case POINTER_DIFF_EXPR:
3977 0 : {
3978 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3979 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3980 0 : {
3981 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
3982 0 : tree res = generic_simplify_512 (loc, type, _p0, captures);
3983 0 : if (res) return res;
3984 : }
3985 0 : break;
3986 : }
3987 0 : case BIT_NOT_EXPR:
3988 0 : {
3989 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3990 0 : {
3991 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3992 0 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3993 0 : if (res) return res;
3994 : }
3995 0 : break;
3996 : }
3997 0 : case NEGATE_EXPR:
3998 0 : {
3999 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4000 0 : {
4001 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
4002 0 : tree res = generic_simplify_514 (loc, type, _p0, captures);
4003 0 : if (res) return res;
4004 : }
4005 0 : break;
4006 : }
4007 : default:;
4008 : }
4009 : }
4010 : }
4011 4119565 : {
4012 4119565 : tree _p0_pops[1];
4013 4119565 : if (tree_logical_inverted_value (_p0, _p0_pops))
4014 : {
4015 70 : tree _q20 = _p0_pops[0];
4016 70 : {
4017 70 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
4018 70 : if (INTEGRAL_TYPE_P (type)
4019 70 : && TREE_CODE (type) != BOOLEAN_TYPE
4020 70 : && TYPE_PRECISION (type) > 1
4021 70 : && TREE_CODE (captures[2]) == SSA_NAME
4022 70 : && ssa_name_has_boolean_range (captures[2])
4023 : )
4024 : {
4025 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1091;
4026 0 : {
4027 0 : tree res_op0;
4028 0 : {
4029 0 : tree _o1[1], _r1;
4030 0 : _o1[0] = captures[2];
4031 0 : if (TREE_TYPE (_o1[0]) != type)
4032 : {
4033 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4034 : }
4035 : else
4036 : _r1 = _o1[0];
4037 0 : res_op0 = _r1;
4038 : }
4039 0 : tree res_op1;
4040 0 : res_op1 = build_all_ones_cst (type);
4041 0 : tree _r;
4042 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4043 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
4044 0 : return _r;
4045 : }
4046 0 : next_after_fail1091:;
4047 : }
4048 : }
4049 : }
4050 : }
4051 4119565 : {
4052 4119565 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4053 4119565 : tree res = generic_simplify_436 (loc, type, _p0, captures);
4054 4119565 : if (res) return res;
4055 : }
4056 4105498 : return NULL_TREE;
4057 : }
4058 :
4059 : tree
4060 26705762 : generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4061 : {
4062 26705762 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4063 26705762 : switch (TREE_CODE (_p1))
4064 : {
4065 68 : case NEGATE_EXPR:
4066 68 : {
4067 68 : tree _q30 = TREE_OPERAND (_p1, 0);
4068 68 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4069 : {
4070 0 : {
4071 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4072 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4073 0 : if (res) return res;
4074 : }
4075 : }
4076 : break;
4077 : }
4078 26705762 : default:;
4079 : }
4080 26705762 : switch (TREE_CODE (_p0))
4081 : {
4082 1032 : case NEGATE_EXPR:
4083 1032 : {
4084 1032 : tree _q20 = TREE_OPERAND (_p0, 0);
4085 1032 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4086 : {
4087 83 : {
4088 83 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4089 83 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4090 83 : if (res) return res;
4091 : }
4092 : }
4093 : break;
4094 : }
4095 0 : case CEIL_MOD_EXPR:
4096 0 : {
4097 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4098 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4099 0 : if (integer_pow2p (_q21))
4100 : {
4101 0 : if (integer_zerop (_p1))
4102 : {
4103 0 : {
4104 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4105 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
4106 0 : if (res) return res;
4107 : }
4108 : }
4109 : }
4110 : break;
4111 : }
4112 876 : case FLOOR_MOD_EXPR:
4113 876 : {
4114 876 : tree _q20 = TREE_OPERAND (_p0, 0);
4115 876 : tree _q21 = TREE_OPERAND (_p0, 1);
4116 876 : if (integer_pow2p (_q21))
4117 : {
4118 26 : if (integer_zerop (_p1))
4119 : {
4120 26 : {
4121 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4122 26 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
4123 26 : if (res) return res;
4124 : }
4125 : }
4126 : }
4127 : break;
4128 : }
4129 0 : case ROUND_MOD_EXPR:
4130 0 : {
4131 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4132 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4133 0 : if (integer_pow2p (_q21))
4134 : {
4135 0 : if (integer_zerop (_p1))
4136 : {
4137 0 : {
4138 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4139 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
4140 0 : if (res) return res;
4141 : }
4142 : }
4143 : }
4144 : break;
4145 : }
4146 90453 : case TRUNC_MOD_EXPR:
4147 90453 : {
4148 90453 : tree _q20 = TREE_OPERAND (_p0, 0);
4149 90453 : tree _q21 = TREE_OPERAND (_p0, 1);
4150 90453 : if (integer_pow2p (_q21))
4151 : {
4152 38745 : if (integer_zerop (_p1))
4153 : {
4154 549 : {
4155 549 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4156 549 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
4157 549 : if (res) return res;
4158 : }
4159 : }
4160 : }
4161 : break;
4162 : }
4163 4895121 : CASE_CONVERT:
4164 4895121 : {
4165 4895121 : tree _q20 = TREE_OPERAND (_p0, 0);
4166 4895121 : switch (TREE_CODE (_p1))
4167 : {
4168 2 : case LSHIFT_EXPR:
4169 2 : {
4170 2 : tree _q40 = TREE_OPERAND (_p1, 0);
4171 2 : tree _q41 = TREE_OPERAND (_p1, 1);
4172 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4173 : {
4174 0 : {
4175 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4176 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4177 0 : if (res) return res;
4178 : }
4179 : }
4180 : break;
4181 : }
4182 4895121 : default:;
4183 : }
4184 4895121 : {
4185 4895121 : tree _p1_pops[1];
4186 4895121 : if (tree_nop_convert (_p1, _p1_pops))
4187 : {
4188 853586 : tree _q40 = _p1_pops[0];
4189 853586 : switch (TREE_CODE (_q40))
4190 : {
4191 0 : case LSHIFT_EXPR:
4192 0 : {
4193 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4194 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4195 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4196 : {
4197 0 : {
4198 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
4199 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4200 0 : if (res) return res;
4201 : }
4202 : }
4203 : break;
4204 : }
4205 : default:;
4206 : }
4207 : }
4208 : }
4209 4895121 : switch (TREE_CODE (_q20))
4210 : {
4211 82 : case EXACT_DIV_EXPR:
4212 82 : {
4213 82 : tree _q30 = TREE_OPERAND (_q20, 0);
4214 82 : tree _q31 = TREE_OPERAND (_q20, 1);
4215 82 : switch (TREE_CODE (_q31))
4216 : {
4217 82 : case INTEGER_CST:
4218 82 : {
4219 82 : switch (TREE_CODE (_p1))
4220 : {
4221 0 : CASE_CONVERT:
4222 0 : {
4223 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4224 0 : switch (TREE_CODE (_q60))
4225 : {
4226 0 : case EXACT_DIV_EXPR:
4227 0 : {
4228 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4229 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4230 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
4231 : {
4232 0 : {
4233 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
4234 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR);
4235 0 : if (res) return res;
4236 : }
4237 : }
4238 : break;
4239 : }
4240 : default:;
4241 : }
4242 : break;
4243 : }
4244 : default:;
4245 : }
4246 : break;
4247 : }
4248 : default:;
4249 : }
4250 : break;
4251 : }
4252 4895121 : default:;
4253 : }
4254 4895121 : switch (TREE_CODE (_p1))
4255 : {
4256 30006 : case PLUS_EXPR:
4257 30006 : {
4258 30006 : tree _q40 = TREE_OPERAND (_p1, 0);
4259 30006 : tree _q41 = TREE_OPERAND (_p1, 1);
4260 30006 : switch (TREE_CODE (_q41))
4261 : {
4262 26 : CASE_CONVERT:
4263 26 : {
4264 26 : tree _q60 = TREE_OPERAND (_q41, 0);
4265 26 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4266 : {
4267 0 : {
4268 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4269 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4270 0 : if (res) return res;
4271 : }
4272 : }
4273 : break;
4274 : }
4275 30006 : default:;
4276 : }
4277 30006 : switch (TREE_CODE (_q40))
4278 : {
4279 4003 : CASE_CONVERT:
4280 4003 : {
4281 4003 : tree _q50 = TREE_OPERAND (_q40, 0);
4282 4003 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4283 : {
4284 0 : {
4285 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4286 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4287 0 : if (res) return res;
4288 : }
4289 : }
4290 : break;
4291 : }
4292 30006 : default:;
4293 : }
4294 30006 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4295 : {
4296 0 : {
4297 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4298 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4299 0 : if (res) return res;
4300 : }
4301 : }
4302 30006 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4303 : {
4304 0 : {
4305 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4306 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4307 0 : if (res) return res;
4308 : }
4309 : }
4310 : break;
4311 : }
4312 4895121 : default:;
4313 : }
4314 4895121 : {
4315 4895121 : tree _p1_pops[1];
4316 4895121 : if (tree_nop_convert (_p1, _p1_pops))
4317 : {
4318 853586 : tree _q40 = _p1_pops[0];
4319 853586 : switch (TREE_CODE (_q40))
4320 : {
4321 472 : case PLUS_EXPR:
4322 472 : {
4323 472 : tree _q50 = TREE_OPERAND (_q40, 0);
4324 472 : tree _q51 = TREE_OPERAND (_q40, 1);
4325 472 : switch (TREE_CODE (_q51))
4326 : {
4327 0 : CASE_CONVERT:
4328 0 : {
4329 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4330 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4331 : {
4332 0 : {
4333 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4334 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4335 0 : if (res) return res;
4336 : }
4337 : }
4338 : break;
4339 : }
4340 472 : default:;
4341 : }
4342 472 : switch (TREE_CODE (_q50))
4343 : {
4344 403 : CASE_CONVERT:
4345 403 : {
4346 403 : tree _q60 = TREE_OPERAND (_q50, 0);
4347 403 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4348 : {
4349 0 : {
4350 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4351 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4352 0 : if (res) return res;
4353 : }
4354 : }
4355 : break;
4356 : }
4357 472 : default:;
4358 : }
4359 472 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4360 : {
4361 0 : {
4362 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4363 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4364 0 : if (res) return res;
4365 : }
4366 : }
4367 472 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4368 : {
4369 0 : {
4370 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4371 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4372 0 : if (res) return res;
4373 : }
4374 : }
4375 : break;
4376 : }
4377 : default:;
4378 : }
4379 : }
4380 : }
4381 4895121 : break;
4382 : }
4383 26705184 : default:;
4384 : }
4385 26705184 : {
4386 26705184 : tree _p0_pops[1];
4387 26705184 : if (tree_nop_convert (_p0, _p0_pops))
4388 : {
4389 2817926 : tree _q20 = _p0_pops[0];
4390 2817926 : switch (TREE_CODE (_q20))
4391 : {
4392 1 : case LSHIFT_EXPR:
4393 1 : {
4394 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4395 1 : tree _q31 = TREE_OPERAND (_q20, 1);
4396 1 : switch (TREE_CODE (_p1))
4397 : {
4398 0 : CASE_CONVERT:
4399 0 : {
4400 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4401 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4402 : {
4403 0 : {
4404 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4405 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4406 0 : if (res) return res;
4407 : }
4408 : }
4409 : break;
4410 : }
4411 1 : default:;
4412 : }
4413 1 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4414 : {
4415 1 : {
4416 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4417 1 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4418 1 : if (res) return res;
4419 : }
4420 : }
4421 : break;
4422 : }
4423 2404 : case PLUS_EXPR:
4424 2404 : {
4425 2404 : tree _q30 = TREE_OPERAND (_q20, 0);
4426 2404 : tree _q31 = TREE_OPERAND (_q20, 1);
4427 2404 : switch (TREE_CODE (_q31))
4428 : {
4429 0 : CASE_CONVERT:
4430 0 : {
4431 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4432 0 : switch (TREE_CODE (_p1))
4433 : {
4434 0 : CASE_CONVERT:
4435 0 : {
4436 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4437 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
4438 : {
4439 0 : {
4440 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4441 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4442 0 : if (res) return res;
4443 : }
4444 : }
4445 : break;
4446 : }
4447 : default:;
4448 : }
4449 : break;
4450 : }
4451 2404 : default:;
4452 : }
4453 2404 : switch (TREE_CODE (_q30))
4454 : {
4455 1217 : CASE_CONVERT:
4456 1217 : {
4457 1217 : tree _q40 = TREE_OPERAND (_q30, 0);
4458 1217 : switch (TREE_CODE (_p1))
4459 : {
4460 10 : CASE_CONVERT:
4461 10 : {
4462 10 : tree _q70 = TREE_OPERAND (_p1, 0);
4463 10 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
4464 : {
4465 0 : {
4466 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4467 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4468 0 : if (res) return res;
4469 : }
4470 : }
4471 : break;
4472 : }
4473 1217 : default:;
4474 : }
4475 1217 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4476 : {
4477 0 : {
4478 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4479 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4480 0 : if (res) return res;
4481 : }
4482 : }
4483 : break;
4484 : }
4485 2404 : default:;
4486 : }
4487 2404 : switch (TREE_CODE (_q31))
4488 : {
4489 0 : CASE_CONVERT:
4490 0 : {
4491 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4492 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
4493 : {
4494 0 : {
4495 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4496 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4497 0 : if (res) return res;
4498 : }
4499 : }
4500 : break;
4501 : }
4502 2404 : default:;
4503 : }
4504 2404 : switch (TREE_CODE (_p1))
4505 : {
4506 79 : CASE_CONVERT:
4507 79 : {
4508 79 : tree _q60 = TREE_OPERAND (_p1, 0);
4509 79 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4510 : {
4511 0 : {
4512 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4513 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4514 0 : if (res) return res;
4515 : }
4516 : }
4517 79 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4518 : {
4519 0 : {
4520 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4521 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4522 0 : if (res) return res;
4523 : }
4524 : }
4525 : break;
4526 : }
4527 2404 : default:;
4528 : }
4529 2404 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4530 : {
4531 0 : {
4532 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4533 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4534 0 : if (res) return res;
4535 : }
4536 : }
4537 2404 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4538 : {
4539 0 : {
4540 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4541 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4542 0 : if (res) return res;
4543 : }
4544 : }
4545 : break;
4546 : }
4547 : default:;
4548 : }
4549 : }
4550 : }
4551 26705183 : {
4552 26705183 : tree _p1_pops[1];
4553 26705183 : if (tree_nop_convert (_p1, _p1_pops))
4554 : {
4555 1082514 : tree _q30 = _p1_pops[0];
4556 1082514 : switch (TREE_CODE (_q30))
4557 : {
4558 0 : case LSHIFT_EXPR:
4559 0 : {
4560 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4561 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4562 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
4563 : {
4564 0 : {
4565 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
4566 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4567 0 : if (res) return res;
4568 : }
4569 : }
4570 : break;
4571 : }
4572 : default:;
4573 : }
4574 : }
4575 : }
4576 26705183 : switch (TREE_CODE (_p0))
4577 : {
4578 1735 : case LSHIFT_EXPR:
4579 1735 : {
4580 1735 : tree _q20 = TREE_OPERAND (_p0, 0);
4581 1735 : tree _q21 = TREE_OPERAND (_p0, 1);
4582 1735 : switch (TREE_CODE (_p1))
4583 : {
4584 61 : CASE_CONVERT:
4585 61 : {
4586 61 : tree _q50 = TREE_OPERAND (_p1, 0);
4587 61 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4588 : {
4589 4 : {
4590 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4591 4 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4592 4 : if (res) return res;
4593 : }
4594 : }
4595 : break;
4596 : }
4597 1734 : default:;
4598 : }
4599 1734 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4600 : {
4601 27 : {
4602 27 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4603 27 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4604 27 : if (res) return res;
4605 : }
4606 : }
4607 1730 : if (tree_zero_one_valued_p (_q20))
4608 : {
4609 233 : switch (TREE_CODE (_q21))
4610 : {
4611 10 : case INTEGER_CST:
4612 10 : {
4613 10 : if (integer_zerop (_p1))
4614 : {
4615 2 : {
4616 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4617 2 : if (tree_fits_shwi_p (captures[1])
4618 2 : && tree_to_shwi (captures[1]) > 0
4619 4 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
4620 : )
4621 : {
4622 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1487;
4623 2 : {
4624 2 : tree res_op0;
4625 2 : res_op0 = captures[0];
4626 2 : tree res_op1;
4627 2 : res_op1 = captures[2];
4628 2 : tree _r;
4629 2 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4630 2 : if (TREE_SIDE_EFFECTS (captures[1]))
4631 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4632 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
4633 2 : return _r;
4634 : }
4635 0 : next_after_fail1487:;
4636 : }
4637 : }
4638 : }
4639 : break;
4640 : }
4641 : default:;
4642 : }
4643 : }
4644 : break;
4645 : }
4646 26705176 : default:;
4647 : }
4648 26705176 : switch (TREE_CODE (_p1))
4649 : {
4650 154 : case LSHIFT_EXPR:
4651 154 : {
4652 154 : tree _q30 = TREE_OPERAND (_p1, 0);
4653 154 : tree _q31 = TREE_OPERAND (_p1, 1);
4654 154 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4655 : {
4656 0 : {
4657 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4658 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4659 0 : if (res) return res;
4660 : }
4661 : }
4662 : break;
4663 : }
4664 26705176 : default:;
4665 : }
4666 26705176 : switch (TREE_CODE (_p0))
4667 : {
4668 45863 : case VIEW_CONVERT_EXPR:
4669 45863 : {
4670 45863 : tree _q20 = TREE_OPERAND (_p0, 0);
4671 45863 : if (tree_zero_one_valued_p (_q20))
4672 : {
4673 0 : if (integer_zerop (_p1))
4674 : {
4675 0 : {
4676 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4677 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4678 0 : if (res) return res;
4679 : }
4680 : }
4681 : }
4682 : break;
4683 : }
4684 16730 : case RSHIFT_EXPR:
4685 16730 : {
4686 16730 : tree _q20 = TREE_OPERAND (_p0, 0);
4687 16730 : tree _q21 = TREE_OPERAND (_p0, 1);
4688 16730 : switch (TREE_CODE (_q21))
4689 : {
4690 15745 : case INTEGER_CST:
4691 15745 : {
4692 15745 : switch (TREE_CODE (_p1))
4693 : {
4694 60 : case RSHIFT_EXPR:
4695 60 : {
4696 60 : tree _q50 = TREE_OPERAND (_p1, 0);
4697 60 : tree _q51 = TREE_OPERAND (_p1, 1);
4698 60 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4699 : {
4700 16 : switch (TREE_CODE (_q51))
4701 : {
4702 16 : case INTEGER_CST:
4703 16 : {
4704 16 : {
4705 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4706 16 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
4707 16 : if (res) return res;
4708 : }
4709 15 : break;
4710 : }
4711 : default:;
4712 : }
4713 : }
4714 : break;
4715 : }
4716 15744 : default:;
4717 : }
4718 15744 : if (integer_zerop (_p1))
4719 : {
4720 1512 : {
4721 1512 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4722 1512 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
4723 1512 : if (res) return res;
4724 : }
4725 : }
4726 : break;
4727 : }
4728 : default:;
4729 : }
4730 : break;
4731 : }
4732 826147 : case BIT_AND_EXPR:
4733 826147 : {
4734 826147 : tree _q20 = TREE_OPERAND (_p0, 0);
4735 826147 : tree _q21 = TREE_OPERAND (_p0, 1);
4736 826147 : if (tree_truth_valued_p (_q20))
4737 : {
4738 21 : if (tree_truth_valued_p (_q21))
4739 : {
4740 20 : switch (TREE_CODE (_p1))
4741 : {
4742 0 : case BIT_XOR_EXPR:
4743 0 : {
4744 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4745 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4746 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4747 : {
4748 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4749 : {
4750 0 : {
4751 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4752 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1488;
4753 0 : {
4754 0 : tree res_op0;
4755 0 : {
4756 0 : tree _o1[2], _r1;
4757 0 : _o1[0] = captures[0];
4758 0 : _o1[1] = captures[1];
4759 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4760 0 : res_op0 = _r1;
4761 : }
4762 0 : tree _r;
4763 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4764 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
4765 0 : return _r;
4766 : }
4767 0 : next_after_fail1488:;
4768 : }
4769 : }
4770 : }
4771 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4772 : {
4773 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4774 : {
4775 0 : {
4776 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4777 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1489;
4778 0 : {
4779 0 : tree res_op0;
4780 0 : {
4781 0 : tree _o1[2], _r1;
4782 0 : _o1[0] = captures[0];
4783 0 : _o1[1] = captures[1];
4784 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4785 0 : res_op0 = _r1;
4786 : }
4787 0 : tree _r;
4788 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4789 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
4790 0 : return _r;
4791 : }
4792 0 : next_after_fail1489:;
4793 : }
4794 : }
4795 : }
4796 : break;
4797 : }
4798 : default:;
4799 : }
4800 : }
4801 : }
4802 : break;
4803 : }
4804 581 : case BIT_XOR_EXPR:
4805 581 : {
4806 581 : tree _q20 = TREE_OPERAND (_p0, 0);
4807 581 : tree _q21 = TREE_OPERAND (_p0, 1);
4808 581 : switch (TREE_CODE (_p1))
4809 : {
4810 0 : case BIT_AND_EXPR:
4811 0 : {
4812 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4813 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4814 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4815 : {
4816 0 : if (tree_truth_valued_p (_q50))
4817 : {
4818 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4819 : {
4820 0 : if (tree_truth_valued_p (_q51))
4821 : {
4822 0 : {
4823 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4824 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1490;
4825 0 : {
4826 0 : tree res_op0;
4827 0 : {
4828 0 : tree _o1[2], _r1;
4829 0 : _o1[0] = captures[0];
4830 0 : _o1[1] = captures[1];
4831 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4832 0 : res_op0 = _r1;
4833 : }
4834 0 : tree _r;
4835 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4836 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
4837 0 : return _r;
4838 : }
4839 0 : next_after_fail1490:;
4840 : }
4841 : }
4842 : }
4843 : }
4844 : }
4845 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4846 : {
4847 0 : if (tree_truth_valued_p (_q50))
4848 : {
4849 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4850 : {
4851 0 : if (tree_truth_valued_p (_q51))
4852 : {
4853 0 : {
4854 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1491;
4856 0 : {
4857 0 : tree res_op0;
4858 0 : {
4859 0 : tree _o1[2], _r1;
4860 0 : _o1[0] = captures[0];
4861 0 : _o1[1] = captures[1];
4862 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4863 0 : res_op0 = _r1;
4864 : }
4865 0 : tree _r;
4866 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4867 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
4868 0 : return _r;
4869 : }
4870 0 : next_after_fail1491:;
4871 : }
4872 : }
4873 : }
4874 : }
4875 : }
4876 : break;
4877 : }
4878 : default:;
4879 : }
4880 : break;
4881 : }
4882 404 : case BIT_NOT_EXPR:
4883 404 : {
4884 404 : tree _q20 = TREE_OPERAND (_p0, 0);
4885 404 : if (tree_truth_valued_p (_q20))
4886 : {
4887 0 : if (tree_truth_valued_p (_p1))
4888 : {
4889 0 : {
4890 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
4891 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures);
4892 0 : if (res) return res;
4893 : }
4894 : }
4895 : }
4896 : break;
4897 : }
4898 64977 : case MULT_EXPR:
4899 64977 : {
4900 64977 : tree _q20 = TREE_OPERAND (_p0, 0);
4901 64977 : tree _q21 = TREE_OPERAND (_p0, 1);
4902 64977 : switch (TREE_CODE (_p1))
4903 : {
4904 879 : case MULT_EXPR:
4905 879 : {
4906 879 : tree _q50 = TREE_OPERAND (_p1, 0);
4907 879 : tree _q51 = TREE_OPERAND (_p1, 1);
4908 879 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4909 : {
4910 568 : {
4911 568 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4912 568 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
4913 568 : if (res) return res;
4914 : }
4915 : }
4916 871 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4917 : {
4918 0 : {
4919 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4920 0 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
4921 0 : if (res) return res;
4922 : }
4923 : }
4924 871 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4925 : {
4926 0 : {
4927 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4928 0 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
4929 0 : if (res) return res;
4930 : }
4931 : }
4932 871 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4933 : {
4934 19 : {
4935 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4936 19 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
4937 19 : if (res) return res;
4938 : }
4939 : }
4940 : break;
4941 : }
4942 64969 : default:;
4943 : }
4944 64969 : switch (TREE_CODE (_q21))
4945 : {
4946 57159 : case INTEGER_CST:
4947 57159 : {
4948 57159 : switch (TREE_CODE (_p1))
4949 : {
4950 834 : case MULT_EXPR:
4951 834 : {
4952 834 : tree _q50 = TREE_OPERAND (_p1, 0);
4953 834 : tree _q51 = TREE_OPERAND (_p1, 1);
4954 834 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4955 : {
4956 528 : {
4957 528 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4958 528 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, EQ_EXPR);
4959 528 : if (res) return res;
4960 : }
4961 : }
4962 : break;
4963 : }
4964 : default:;
4965 : }
4966 : break;
4967 : }
4968 : default:;
4969 : }
4970 : break;
4971 : }
4972 6719 : case EXACT_DIV_EXPR:
4973 6719 : {
4974 6719 : tree _q20 = TREE_OPERAND (_p0, 0);
4975 6719 : tree _q21 = TREE_OPERAND (_p0, 1);
4976 6719 : switch (TREE_CODE (_q21))
4977 : {
4978 6719 : case INTEGER_CST:
4979 6719 : {
4980 6719 : switch (TREE_CODE (_p1))
4981 : {
4982 0 : case EXACT_DIV_EXPR:
4983 0 : {
4984 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4985 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4986 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4987 : {
4988 0 : {
4989 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
4990 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR);
4991 0 : if (res) return res;
4992 : }
4993 : }
4994 : break;
4995 : }
4996 : default:;
4997 : }
4998 : break;
4999 : }
5000 : default:;
5001 : }
5002 : break;
5003 : }
5004 5333 : case TRUNC_DIV_EXPR:
5005 5333 : {
5006 5333 : tree _q20 = TREE_OPERAND (_p0, 0);
5007 5333 : tree _q21 = TREE_OPERAND (_p0, 1);
5008 5333 : switch (TREE_CODE (_q21))
5009 : {
5010 3847 : case INTEGER_CST:
5011 3847 : {
5012 3847 : switch (TREE_CODE (_p1))
5013 : {
5014 986 : case INTEGER_CST:
5015 986 : {
5016 986 : {
5017 986 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5018 986 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, EQ_EXPR);
5019 986 : if (res) return res;
5020 : }
5021 21 : break;
5022 : }
5023 : default:;
5024 : }
5025 : break;
5026 : }
5027 : default:;
5028 : }
5029 : break;
5030 : }
5031 649783 : case PLUS_EXPR:
5032 649783 : {
5033 649783 : tree _q20 = TREE_OPERAND (_p0, 0);
5034 649783 : tree _q21 = TREE_OPERAND (_p0, 1);
5035 649783 : switch (TREE_CODE (_p1))
5036 : {
5037 49687 : case PLUS_EXPR:
5038 49687 : {
5039 49687 : tree _q50 = TREE_OPERAND (_p1, 0);
5040 49687 : tree _q51 = TREE_OPERAND (_p1, 1);
5041 49687 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5042 : {
5043 367 : {
5044 367 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5045 734 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5046 662 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5047 261 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5048 : )
5049 : {
5050 295 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1492;
5051 295 : {
5052 295 : tree res_op0;
5053 295 : res_op0 = captures[0];
5054 295 : tree res_op1;
5055 295 : res_op1 = captures[2];
5056 295 : tree _r;
5057 295 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5058 295 : if (TREE_SIDE_EFFECTS (captures[1]))
5059 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5060 295 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
5061 295 : return _r;
5062 : }
5063 0 : next_after_fail1492:;
5064 : }
5065 : }
5066 : }
5067 49392 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5068 : {
5069 2 : {
5070 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5071 4 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5072 2 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5073 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5074 : )
5075 : {
5076 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1493;
5077 0 : {
5078 0 : tree res_op0;
5079 0 : res_op0 = captures[0];
5080 0 : tree res_op1;
5081 0 : res_op1 = captures[2];
5082 0 : tree _r;
5083 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5084 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
5087 0 : return _r;
5088 : }
5089 0 : next_after_fail1493:;
5090 : }
5091 : }
5092 : }
5093 49392 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5094 : {
5095 2 : {
5096 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5097 4 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5098 2 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5099 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5100 : )
5101 : {
5102 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1494;
5103 0 : {
5104 0 : tree res_op0;
5105 0 : res_op0 = captures[0];
5106 0 : tree res_op1;
5107 0 : res_op1 = captures[2];
5108 0 : tree _r;
5109 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5110 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5111 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5112 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
5113 0 : return _r;
5114 : }
5115 0 : next_after_fail1494:;
5116 : }
5117 : }
5118 : }
5119 49392 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5120 : {
5121 47 : {
5122 47 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5123 94 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5124 47 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5125 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5126 : )
5127 : {
5128 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1495;
5129 0 : {
5130 0 : tree res_op0;
5131 0 : res_op0 = captures[0];
5132 0 : tree res_op1;
5133 0 : res_op1 = captures[2];
5134 0 : tree _r;
5135 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5136 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5137 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5138 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
5139 0 : return _r;
5140 : }
5141 0 : next_after_fail1495:;
5142 : }
5143 : }
5144 : }
5145 : break;
5146 : }
5147 649488 : default:;
5148 : }
5149 649488 : switch (TREE_CODE (_q21))
5150 : {
5151 2717 : CASE_CONVERT:
5152 2717 : {
5153 2717 : tree _q40 = TREE_OPERAND (_q21, 0);
5154 2717 : switch (TREE_CODE (_p1))
5155 : {
5156 158 : CASE_CONVERT:
5157 158 : {
5158 158 : tree _q60 = TREE_OPERAND (_p1, 0);
5159 158 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
5160 : {
5161 0 : {
5162 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5163 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5164 0 : if (res) return res;
5165 : }
5166 : }
5167 : break;
5168 : }
5169 : default:;
5170 : }
5171 : break;
5172 : }
5173 649488 : default:;
5174 : }
5175 649488 : switch (TREE_CODE (_q20))
5176 : {
5177 26318 : CASE_CONVERT:
5178 26318 : {
5179 26318 : tree _q30 = TREE_OPERAND (_q20, 0);
5180 26318 : switch (TREE_CODE (_p1))
5181 : {
5182 373 : CASE_CONVERT:
5183 373 : {
5184 373 : tree _q60 = TREE_OPERAND (_p1, 0);
5185 373 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5186 : {
5187 1 : {
5188 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5189 1 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5190 1 : if (res) return res;
5191 : }
5192 : }
5193 : break;
5194 : }
5195 26317 : default:;
5196 : }
5197 26317 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5198 : {
5199 0 : {
5200 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5201 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5202 0 : if (res) return res;
5203 : }
5204 : }
5205 : break;
5206 : }
5207 649487 : default:;
5208 : }
5209 649487 : switch (TREE_CODE (_q21))
5210 : {
5211 2717 : CASE_CONVERT:
5212 2717 : {
5213 2717 : tree _q40 = TREE_OPERAND (_q21, 0);
5214 2717 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5215 : {
5216 0 : {
5217 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5218 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5219 0 : if (res) return res;
5220 : }
5221 : }
5222 : break;
5223 : }
5224 649487 : default:;
5225 : }
5226 649487 : switch (TREE_CODE (_p1))
5227 : {
5228 14394 : CASE_CONVERT:
5229 14394 : {
5230 14394 : tree _q50 = TREE_OPERAND (_p1, 0);
5231 14394 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5232 : {
5233 0 : {
5234 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5235 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5236 0 : if (res) return res;
5237 : }
5238 : }
5239 14394 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5240 : {
5241 0 : {
5242 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5243 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5244 0 : if (res) return res;
5245 : }
5246 : }
5247 : break;
5248 : }
5249 649487 : default:;
5250 : }
5251 649487 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5252 : {
5253 2365 : {
5254 2365 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5255 2365 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5256 2365 : if (res) return res;
5257 : }
5258 : }
5259 647184 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5260 : {
5261 67 : {
5262 67 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5263 67 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5264 67 : if (res) return res;
5265 : }
5266 : }
5267 : break;
5268 : }
5269 62359 : case POINTER_PLUS_EXPR:
5270 62359 : {
5271 62359 : tree _q20 = TREE_OPERAND (_p0, 0);
5272 62359 : tree _q21 = TREE_OPERAND (_p0, 1);
5273 62359 : switch (TREE_CODE (_p1))
5274 : {
5275 2448 : case POINTER_PLUS_EXPR:
5276 2448 : {
5277 2448 : tree _q50 = TREE_OPERAND (_p1, 0);
5278 2448 : tree _q51 = TREE_OPERAND (_p1, 1);
5279 2448 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5280 : {
5281 14 : {
5282 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5283 14 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5284 14 : if (res) return res;
5285 : }
5286 : }
5287 : break;
5288 : }
5289 62345 : default:;
5290 : }
5291 62345 : switch (TREE_CODE (_q20))
5292 : {
5293 1118 : CASE_CONVERT:
5294 1118 : {
5295 1118 : tree _q30 = TREE_OPERAND (_q20, 0);
5296 1118 : switch (TREE_CODE (_p1))
5297 : {
5298 84 : CASE_CONVERT:
5299 84 : {
5300 84 : tree _q60 = TREE_OPERAND (_p1, 0);
5301 84 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5302 : {
5303 54 : {
5304 54 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5305 54 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5306 54 : if (res) return res;
5307 : }
5308 : }
5309 : break;
5310 : }
5311 1064 : default:;
5312 : }
5313 1064 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5314 : {
5315 0 : {
5316 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5317 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5318 0 : if (res) return res;
5319 : }
5320 : }
5321 : break;
5322 : }
5323 62291 : default:;
5324 : }
5325 62291 : switch (TREE_CODE (_p1))
5326 : {
5327 412 : CASE_CONVERT:
5328 412 : {
5329 412 : tree _q50 = TREE_OPERAND (_p1, 0);
5330 412 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5331 : {
5332 0 : {
5333 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5334 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5335 0 : if (res) return res;
5336 : }
5337 : }
5338 : break;
5339 : }
5340 62291 : default:;
5341 : }
5342 62291 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5343 : {
5344 1494 : {
5345 1494 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5346 1494 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5347 1494 : if (res) return res;
5348 : }
5349 : }
5350 : break;
5351 : }
5352 153601 : case MINUS_EXPR:
5353 153601 : {
5354 153601 : tree _q20 = TREE_OPERAND (_p0, 0);
5355 153601 : tree _q21 = TREE_OPERAND (_p0, 1);
5356 153601 : switch (TREE_CODE (_p1))
5357 : {
5358 165 : case MINUS_EXPR:
5359 165 : {
5360 165 : tree _q50 = TREE_OPERAND (_p1, 0);
5361 165 : tree _q51 = TREE_OPERAND (_p1, 1);
5362 165 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5363 : {
5364 25 : {
5365 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5366 50 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5367 25 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5368 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5369 : )
5370 : {
5371 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1496;
5372 0 : {
5373 0 : tree res_op0;
5374 0 : res_op0 = captures[0];
5375 0 : tree res_op1;
5376 0 : res_op1 = captures[2];
5377 0 : tree _r;
5378 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5379 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5380 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5381 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 926, __FILE__, __LINE__, true);
5382 0 : return _r;
5383 : }
5384 0 : next_after_fail1496:;
5385 : }
5386 : }
5387 : }
5388 165 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5389 : {
5390 25 : {
5391 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5392 50 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
5393 25 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
5394 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
5395 : )
5396 : {
5397 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1497;
5398 0 : {
5399 0 : tree res_op0;
5400 0 : res_op0 = captures[2];
5401 0 : tree res_op1;
5402 0 : res_op1 = captures[1];
5403 0 : tree _r;
5404 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5405 0 : if (TREE_SIDE_EFFECTS (captures[0]))
5406 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5407 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
5408 0 : return _r;
5409 : }
5410 0 : next_after_fail1497:;
5411 : }
5412 : }
5413 : }
5414 : break;
5415 : }
5416 153601 : default:;
5417 : }
5418 153601 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5419 : {
5420 77 : {
5421 77 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5422 77 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR);
5423 77 : if (res) return res;
5424 : }
5425 : }
5426 : break;
5427 : }
5428 30948 : case POINTER_DIFF_EXPR:
5429 30948 : {
5430 30948 : tree _q20 = TREE_OPERAND (_p0, 0);
5431 30948 : tree _q21 = TREE_OPERAND (_p0, 1);
5432 30948 : switch (TREE_CODE (_p1))
5433 : {
5434 1006 : case POINTER_DIFF_EXPR:
5435 1006 : {
5436 1006 : tree _q50 = TREE_OPERAND (_p1, 0);
5437 1006 : tree _q51 = TREE_OPERAND (_p1, 1);
5438 1006 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5439 : {
5440 0 : {
5441 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5442 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
5443 0 : if (res) return res;
5444 : }
5445 : }
5446 1006 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5447 : {
5448 0 : {
5449 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5450 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5451 0 : if (res) return res;
5452 : }
5453 : }
5454 : break;
5455 : }
5456 : default:;
5457 : }
5458 : break;
5459 : }
5460 26699872 : default:;
5461 : }
5462 26699872 : {
5463 26699872 : tree _p0_pops[1];
5464 26699872 : if (tree_logical_inverted_value (_p0, _p0_pops))
5465 : {
5466 7826 : tree _q20 = _p0_pops[0];
5467 7826 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5468 : {
5469 9 : if (tree_truth_valued_p (_p1))
5470 : {
5471 0 : {
5472 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5473 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5474 0 : if (res) return res;
5475 : }
5476 : }
5477 : }
5478 : }
5479 : }
5480 26699872 : if (tree_truth_valued_p (_p0))
5481 : {
5482 629375 : switch (TREE_CODE (_p1))
5483 : {
5484 24 : case BIT_NOT_EXPR:
5485 24 : {
5486 24 : tree _q30 = TREE_OPERAND (_p1, 0);
5487 24 : if (tree_truth_valued_p (_q30))
5488 : {
5489 4 : {
5490 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5491 4 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures);
5492 4 : if (res) return res;
5493 : }
5494 : }
5495 : break;
5496 : }
5497 629375 : default:;
5498 : }
5499 629375 : {
5500 629375 : tree _p1_pops[1];
5501 629375 : if (tree_logical_inverted_value (_p1, _p1_pops))
5502 : {
5503 90 : tree _q30 = _p1_pops[0];
5504 90 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5505 : {
5506 0 : {
5507 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5508 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5509 0 : if (res) return res;
5510 : }
5511 : }
5512 : }
5513 : }
5514 : }
5515 26699872 : switch (TREE_CODE (_p1))
5516 : {
5517 84476 : case PLUS_EXPR:
5518 84476 : {
5519 84476 : tree _q30 = TREE_OPERAND (_p1, 0);
5520 84476 : tree _q31 = TREE_OPERAND (_p1, 1);
5521 84476 : switch (TREE_CODE (_q31))
5522 : {
5523 26 : CASE_CONVERT:
5524 26 : {
5525 26 : tree _q50 = TREE_OPERAND (_q31, 0);
5526 26 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5527 : {
5528 0 : {
5529 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5530 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5531 0 : if (res) return res;
5532 : }
5533 : }
5534 : break;
5535 : }
5536 84476 : default:;
5537 : }
5538 84476 : switch (TREE_CODE (_q30))
5539 : {
5540 20203 : CASE_CONVERT:
5541 20203 : {
5542 20203 : tree _q40 = TREE_OPERAND (_q30, 0);
5543 20203 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5544 : {
5545 0 : {
5546 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5547 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5548 0 : if (res) return res;
5549 : }
5550 : }
5551 : break;
5552 : }
5553 84476 : default:;
5554 : }
5555 84476 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5556 : {
5557 0 : {
5558 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5559 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5560 0 : if (res) return res;
5561 : }
5562 : }
5563 84476 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5564 : {
5565 0 : {
5566 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5567 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
5568 0 : if (res) return res;
5569 : }
5570 : }
5571 : break;
5572 : }
5573 26699872 : default:;
5574 : }
5575 26699872 : {
5576 26699872 : tree _p1_pops[1];
5577 26699872 : if (tree_nop_convert (_p1, _p1_pops))
5578 : {
5579 1082457 : tree _q30 = _p1_pops[0];
5580 1082457 : switch (TREE_CODE (_q30))
5581 : {
5582 1719 : case PLUS_EXPR:
5583 1719 : {
5584 1719 : tree _q40 = TREE_OPERAND (_q30, 0);
5585 1719 : tree _q41 = TREE_OPERAND (_q30, 1);
5586 1719 : switch (TREE_CODE (_q41))
5587 : {
5588 2 : CASE_CONVERT:
5589 2 : {
5590 2 : tree _q60 = TREE_OPERAND (_q41, 0);
5591 2 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5592 : {
5593 0 : {
5594 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5595 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5596 0 : if (res) return res;
5597 : }
5598 : }
5599 : break;
5600 : }
5601 1719 : default:;
5602 : }
5603 1719 : switch (TREE_CODE (_q40))
5604 : {
5605 1613 : CASE_CONVERT:
5606 1613 : {
5607 1613 : tree _q50 = TREE_OPERAND (_q40, 0);
5608 1613 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5609 : {
5610 0 : {
5611 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5612 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5613 0 : if (res) return res;
5614 : }
5615 : }
5616 : break;
5617 : }
5618 1719 : default:;
5619 : }
5620 1719 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5621 : {
5622 0 : {
5623 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5624 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5625 0 : if (res) return res;
5626 : }
5627 : }
5628 1719 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5629 : {
5630 0 : {
5631 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5632 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5633 0 : if (res) return res;
5634 : }
5635 : }
5636 : break;
5637 : }
5638 : default:;
5639 : }
5640 : }
5641 : }
5642 26699872 : switch (TREE_CODE (_p0))
5643 : {
5644 4895120 : CASE_CONVERT:
5645 4895120 : {
5646 4895120 : tree _q20 = TREE_OPERAND (_p0, 0);
5647 4895120 : switch (TREE_CODE (_p1))
5648 : {
5649 151 : case POINTER_PLUS_EXPR:
5650 151 : {
5651 151 : tree _q40 = TREE_OPERAND (_p1, 0);
5652 151 : tree _q41 = TREE_OPERAND (_p1, 1);
5653 151 : switch (TREE_CODE (_q40))
5654 : {
5655 96 : CASE_CONVERT:
5656 96 : {
5657 96 : tree _q50 = TREE_OPERAND (_q40, 0);
5658 96 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5659 : {
5660 3 : {
5661 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5662 3 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5663 3 : if (res) return res;
5664 : }
5665 : }
5666 : break;
5667 : }
5668 148 : default:;
5669 : }
5670 148 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
5671 : {
5672 0 : {
5673 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5674 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5675 0 : if (res) return res;
5676 : }
5677 : }
5678 : break;
5679 : }
5680 4895117 : default:;
5681 : }
5682 4895117 : {
5683 4895117 : tree _p1_pops[1];
5684 4895117 : if (tree_nop_convert (_p1, _p1_pops))
5685 : {
5686 853586 : tree _q40 = _p1_pops[0];
5687 853586 : switch (TREE_CODE (_q40))
5688 : {
5689 18 : case POINTER_PLUS_EXPR:
5690 18 : {
5691 18 : tree _q50 = TREE_OPERAND (_q40, 0);
5692 18 : tree _q51 = TREE_OPERAND (_q40, 1);
5693 18 : switch (TREE_CODE (_q50))
5694 : {
5695 0 : CASE_CONVERT:
5696 0 : {
5697 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5698 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5699 : {
5700 0 : {
5701 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5702 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5703 0 : if (res) return res;
5704 : }
5705 : }
5706 : break;
5707 : }
5708 18 : default:;
5709 : }
5710 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5711 : {
5712 0 : {
5713 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5714 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5715 0 : if (res) return res;
5716 : }
5717 : }
5718 : break;
5719 : }
5720 : default:;
5721 : }
5722 : }
5723 : }
5724 4895117 : break;
5725 : }
5726 26699869 : default:;
5727 : }
5728 26699869 : {
5729 26699869 : tree _p0_pops[1];
5730 26699869 : if (tree_nop_convert (_p0, _p0_pops))
5731 : {
5732 2817922 : tree _q20 = _p0_pops[0];
5733 2817922 : switch (TREE_CODE (_q20))
5734 : {
5735 97 : case POINTER_PLUS_EXPR:
5736 97 : {
5737 97 : tree _q30 = TREE_OPERAND (_q20, 0);
5738 97 : tree _q31 = TREE_OPERAND (_q20, 1);
5739 97 : switch (TREE_CODE (_q30))
5740 : {
5741 21 : CASE_CONVERT:
5742 21 : {
5743 21 : tree _q40 = TREE_OPERAND (_q30, 0);
5744 21 : switch (TREE_CODE (_p1))
5745 : {
5746 0 : CASE_CONVERT:
5747 0 : {
5748 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5749 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5750 : {
5751 0 : {
5752 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5753 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5754 0 : if (res) return res;
5755 : }
5756 : }
5757 : break;
5758 : }
5759 21 : default:;
5760 : }
5761 21 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5762 : {
5763 0 : {
5764 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5765 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5766 0 : if (res) return res;
5767 : }
5768 : }
5769 : break;
5770 : }
5771 97 : default:;
5772 : }
5773 97 : switch (TREE_CODE (_p1))
5774 : {
5775 27 : CASE_CONVERT:
5776 27 : {
5777 27 : tree _q60 = TREE_OPERAND (_p1, 0);
5778 27 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5779 : {
5780 0 : {
5781 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5782 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5783 0 : if (res) return res;
5784 : }
5785 : }
5786 : break;
5787 : }
5788 97 : default:;
5789 : }
5790 97 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5791 : {
5792 0 : {
5793 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5794 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5795 0 : if (res) return res;
5796 : }
5797 : }
5798 : break;
5799 : }
5800 : default:;
5801 : }
5802 : }
5803 : }
5804 26699869 : switch (TREE_CODE (_p1))
5805 : {
5806 6139 : case POINTER_PLUS_EXPR:
5807 6139 : {
5808 6139 : tree _q30 = TREE_OPERAND (_p1, 0);
5809 6139 : tree _q31 = TREE_OPERAND (_p1, 1);
5810 6139 : switch (TREE_CODE (_q30))
5811 : {
5812 3440 : CASE_CONVERT:
5813 3440 : {
5814 3440 : tree _q40 = TREE_OPERAND (_q30, 0);
5815 3440 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5816 : {
5817 0 : {
5818 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5819 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5820 0 : if (res) return res;
5821 : }
5822 : }
5823 : break;
5824 : }
5825 6139 : default:;
5826 : }
5827 6139 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5828 : {
5829 0 : {
5830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5831 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5832 0 : if (res) return res;
5833 : }
5834 : }
5835 : break;
5836 : }
5837 26699869 : default:;
5838 : }
5839 26699869 : {
5840 26699869 : tree _p1_pops[1];
5841 26699869 : if (tree_nop_convert (_p1, _p1_pops))
5842 : {
5843 1082457 : tree _q30 = _p1_pops[0];
5844 1082457 : switch (TREE_CODE (_q30))
5845 : {
5846 32 : case POINTER_PLUS_EXPR:
5847 32 : {
5848 32 : tree _q40 = TREE_OPERAND (_q30, 0);
5849 32 : tree _q41 = TREE_OPERAND (_q30, 1);
5850 32 : switch (TREE_CODE (_q40))
5851 : {
5852 0 : CASE_CONVERT:
5853 0 : {
5854 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5855 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5856 : {
5857 0 : {
5858 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5859 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5860 0 : if (res) return res;
5861 : }
5862 : }
5863 : break;
5864 : }
5865 32 : default:;
5866 : }
5867 32 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5868 : {
5869 0 : {
5870 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5871 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5872 0 : if (res) return res;
5873 : }
5874 : }
5875 : break;
5876 : }
5877 : default:;
5878 : }
5879 : }
5880 : }
5881 26699869 : switch (TREE_CODE (_p0))
5882 : {
5883 60797 : case POINTER_PLUS_EXPR:
5884 60797 : {
5885 60797 : tree _q20 = TREE_OPERAND (_p0, 0);
5886 60797 : tree _q21 = TREE_OPERAND (_p0, 1);
5887 60797 : switch (TREE_CODE (_p1))
5888 : {
5889 11822 : case ADDR_EXPR:
5890 11822 : {
5891 11822 : {
5892 11822 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5893 11822 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5894 11822 : if (res) return res;
5895 : }
5896 11821 : break;
5897 : }
5898 60796 : default:;
5899 : }
5900 60796 : switch (TREE_CODE (_q20))
5901 : {
5902 1073 : case ADDR_EXPR:
5903 1073 : {
5904 1073 : switch (TREE_CODE (_p1))
5905 : {
5906 15 : case POINTER_PLUS_EXPR:
5907 15 : {
5908 15 : tree _q50 = TREE_OPERAND (_p1, 0);
5909 15 : tree _q51 = TREE_OPERAND (_p1, 1);
5910 15 : switch (TREE_CODE (_q50))
5911 : {
5912 6 : case ADDR_EXPR:
5913 6 : {
5914 6 : {
5915 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
5916 6 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
5917 6 : if (res) return res;
5918 : }
5919 6 : break;
5920 : }
5921 : default:;
5922 : }
5923 : break;
5924 : }
5925 : default:;
5926 : }
5927 : break;
5928 : }
5929 : default:;
5930 : }
5931 : break;
5932 : }
5933 89434 : case ADDR_EXPR:
5934 89434 : {
5935 89434 : switch (TREE_CODE (_p1))
5936 : {
5937 0 : case POINTER_PLUS_EXPR:
5938 0 : {
5939 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5940 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5941 0 : {
5942 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5943 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5944 0 : if (res) return res;
5945 : }
5946 0 : break;
5947 : }
5948 : default:;
5949 : }
5950 : break;
5951 : }
5952 26699868 : default:;
5953 : }
5954 26699868 : switch (TREE_CODE (_p1))
5955 : {
5956 3400 : case MINUS_EXPR:
5957 3400 : {
5958 3400 : tree _q30 = TREE_OPERAND (_p1, 0);
5959 3400 : tree _q31 = TREE_OPERAND (_p1, 1);
5960 3400 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5961 : {
5962 0 : {
5963 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5964 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR);
5965 0 : if (res) return res;
5966 : }
5967 : }
5968 : break;
5969 : }
5970 26699868 : default:;
5971 : }
5972 26699868 : switch (TREE_CODE (_p0))
5973 : {
5974 4368 : case TRUNC_DIV_EXPR:
5975 4368 : {
5976 4368 : tree _q20 = TREE_OPERAND (_p0, 0);
5977 4368 : tree _q21 = TREE_OPERAND (_p0, 1);
5978 4368 : if (integer_zerop (_p1))
5979 : {
5980 331 : {
5981 331 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5982 331 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
5983 331 : if (res) return res;
5984 : }
5985 : }
5986 : break;
5987 : }
5988 4895117 : CASE_CONVERT:
5989 4895117 : {
5990 4895117 : tree _q20 = TREE_OPERAND (_p0, 0);
5991 4895117 : switch (TREE_CODE (_p1))
5992 : {
5993 1238023 : CASE_CONVERT:
5994 1238023 : {
5995 1238023 : tree _q40 = TREE_OPERAND (_p1, 0);
5996 1238023 : switch (TREE_CODE (_q40))
5997 : {
5998 0 : case MINUS_EXPR:
5999 0 : {
6000 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6001 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6002 0 : switch (TREE_CODE (_q50))
6003 : {
6004 0 : case INTEGER_CST:
6005 0 : {
6006 0 : switch (TREE_CODE (_q51))
6007 : {
6008 0 : CASE_CONVERT:
6009 0 : {
6010 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6011 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6012 : {
6013 0 : {
6014 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
6015 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6016 0 : if (res) return res;
6017 : }
6018 : }
6019 : break;
6020 : }
6021 : default:;
6022 : }
6023 : break;
6024 : }
6025 : default:;
6026 : }
6027 : break;
6028 : }
6029 : default:;
6030 : }
6031 : break;
6032 : }
6033 4895117 : default:;
6034 : }
6035 4895117 : switch (TREE_CODE (_q20))
6036 : {
6037 242 : case MINUS_EXPR:
6038 242 : {
6039 242 : tree _q30 = TREE_OPERAND (_q20, 0);
6040 242 : tree _q31 = TREE_OPERAND (_q20, 1);
6041 242 : switch (TREE_CODE (_q30))
6042 : {
6043 56 : case INTEGER_CST:
6044 56 : {
6045 56 : switch (TREE_CODE (_q31))
6046 : {
6047 0 : CASE_CONVERT:
6048 0 : {
6049 0 : tree _q50 = TREE_OPERAND (_q31, 0);
6050 0 : switch (TREE_CODE (_p1))
6051 : {
6052 0 : CASE_CONVERT:
6053 0 : {
6054 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6055 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
6056 : {
6057 0 : {
6058 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6059 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6060 0 : if (res) return res;
6061 : }
6062 : }
6063 : break;
6064 : }
6065 0 : default:;
6066 : }
6067 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
6068 : {
6069 0 : {
6070 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6071 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6072 0 : if (res) return res;
6073 : }
6074 : }
6075 : break;
6076 : }
6077 56 : default:;
6078 : }
6079 56 : switch (TREE_CODE (_p1))
6080 : {
6081 0 : CASE_CONVERT:
6082 0 : {
6083 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6084 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
6085 : {
6086 0 : {
6087 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6088 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6089 0 : if (res) return res;
6090 : }
6091 : }
6092 : break;
6093 : }
6094 56 : default:;
6095 : }
6096 56 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6097 : {
6098 0 : {
6099 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6100 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6101 0 : if (res) return res;
6102 : }
6103 : }
6104 : break;
6105 : }
6106 : default:;
6107 : }
6108 : break;
6109 : }
6110 4895117 : default:;
6111 : }
6112 4895117 : switch (TREE_CODE (_p1))
6113 : {
6114 1238023 : CASE_CONVERT:
6115 1238023 : {
6116 1238023 : tree _q40 = TREE_OPERAND (_p1, 0);
6117 1238023 : switch (TREE_CODE (_q40))
6118 : {
6119 0 : case MINUS_EXPR:
6120 0 : {
6121 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6122 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6123 0 : switch (TREE_CODE (_q50))
6124 : {
6125 0 : case INTEGER_CST:
6126 0 : {
6127 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6128 : {
6129 0 : {
6130 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
6131 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6132 0 : if (res) return res;
6133 : }
6134 : }
6135 : break;
6136 : }
6137 : default:;
6138 : }
6139 : break;
6140 : }
6141 : default:;
6142 : }
6143 : break;
6144 : }
6145 277 : case MINUS_EXPR:
6146 277 : {
6147 277 : tree _q40 = TREE_OPERAND (_p1, 0);
6148 277 : tree _q41 = TREE_OPERAND (_p1, 1);
6149 277 : switch (TREE_CODE (_q40))
6150 : {
6151 70 : case INTEGER_CST:
6152 70 : {
6153 70 : switch (TREE_CODE (_q41))
6154 : {
6155 12 : CASE_CONVERT:
6156 12 : {
6157 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6158 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6159 : {
6160 0 : {
6161 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6162 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6163 0 : if (res) return res;
6164 : }
6165 : }
6166 : break;
6167 : }
6168 70 : default:;
6169 : }
6170 70 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6171 : {
6172 0 : {
6173 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6174 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6175 0 : if (res) return res;
6176 : }
6177 : }
6178 : break;
6179 : }
6180 : default:;
6181 : }
6182 : break;
6183 : }
6184 : default:;
6185 : }
6186 : break;
6187 : }
6188 153524 : case MINUS_EXPR:
6189 153524 : {
6190 153524 : tree _q20 = TREE_OPERAND (_p0, 0);
6191 153524 : tree _q21 = TREE_OPERAND (_p0, 1);
6192 153524 : switch (TREE_CODE (_q20))
6193 : {
6194 41104 : case INTEGER_CST:
6195 41104 : {
6196 41104 : switch (TREE_CODE (_q21))
6197 : {
6198 23956 : CASE_CONVERT:
6199 23956 : {
6200 23956 : tree _q40 = TREE_OPERAND (_q21, 0);
6201 23956 : switch (TREE_CODE (_p1))
6202 : {
6203 0 : CASE_CONVERT:
6204 0 : {
6205 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6206 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
6207 : {
6208 0 : {
6209 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6210 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6211 0 : if (res) return res;
6212 : }
6213 : }
6214 : break;
6215 : }
6216 23956 : default:;
6217 : }
6218 23956 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6219 : {
6220 0 : {
6221 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6222 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6223 0 : if (res) return res;
6224 : }
6225 : }
6226 : break;
6227 : }
6228 41104 : default:;
6229 : }
6230 41104 : switch (TREE_CODE (_p1))
6231 : {
6232 24 : CASE_CONVERT:
6233 24 : {
6234 24 : tree _q50 = TREE_OPERAND (_p1, 0);
6235 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6236 : {
6237 0 : {
6238 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6239 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6240 0 : if (res) return res;
6241 : }
6242 : }
6243 : break;
6244 : }
6245 41104 : default:;
6246 : }
6247 41104 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6248 : {
6249 2 : {
6250 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6251 2 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6252 2 : if (res) return res;
6253 : }
6254 : }
6255 : break;
6256 : }
6257 : default:;
6258 : }
6259 : break;
6260 : }
6261 26699630 : default:;
6262 : }
6263 26699630 : switch (TREE_CODE (_p1))
6264 : {
6265 1526460 : CASE_CONVERT:
6266 1526460 : {
6267 1526460 : tree _q30 = TREE_OPERAND (_p1, 0);
6268 1526460 : switch (TREE_CODE (_q30))
6269 : {
6270 12 : case MINUS_EXPR:
6271 12 : {
6272 12 : tree _q40 = TREE_OPERAND (_q30, 0);
6273 12 : tree _q41 = TREE_OPERAND (_q30, 1);
6274 12 : switch (TREE_CODE (_q40))
6275 : {
6276 12 : case INTEGER_CST:
6277 12 : {
6278 12 : switch (TREE_CODE (_q41))
6279 : {
6280 12 : CASE_CONVERT:
6281 12 : {
6282 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6283 12 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6284 : {
6285 0 : {
6286 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6287 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6288 0 : if (res) return res;
6289 : }
6290 : }
6291 : break;
6292 : }
6293 12 : default:;
6294 : }
6295 12 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6296 : {
6297 0 : {
6298 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6299 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6300 0 : if (res) return res;
6301 : }
6302 : }
6303 : break;
6304 : }
6305 : default:;
6306 : }
6307 : break;
6308 : }
6309 : default:;
6310 : }
6311 : break;
6312 : }
6313 3400 : case MINUS_EXPR:
6314 3400 : {
6315 3400 : tree _q30 = TREE_OPERAND (_p1, 0);
6316 3400 : tree _q31 = TREE_OPERAND (_p1, 1);
6317 3400 : switch (TREE_CODE (_q30))
6318 : {
6319 206 : case INTEGER_CST:
6320 206 : {
6321 206 : switch (TREE_CODE (_q31))
6322 : {
6323 16 : CASE_CONVERT:
6324 16 : {
6325 16 : tree _q50 = TREE_OPERAND (_q31, 0);
6326 16 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6327 : {
6328 0 : {
6329 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6330 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6331 0 : if (res) return res;
6332 : }
6333 : }
6334 : break;
6335 : }
6336 206 : default:;
6337 : }
6338 206 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6339 : {
6340 0 : {
6341 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6342 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6343 0 : if (res) return res;
6344 : }
6345 : }
6346 : break;
6347 : }
6348 : default:;
6349 : }
6350 : break;
6351 : }
6352 26699630 : default:;
6353 : }
6354 26699630 : switch (TREE_CODE (_p0))
6355 : {
6356 1141 : case LT_EXPR:
6357 1141 : {
6358 1141 : tree _q20 = TREE_OPERAND (_p0, 0);
6359 1141 : tree _q21 = TREE_OPERAND (_p0, 1);
6360 1141 : switch (TREE_CODE (_p1))
6361 : {
6362 16 : case GT_EXPR:
6363 16 : {
6364 16 : tree _q50 = TREE_OPERAND (_p1, 0);
6365 16 : tree _q51 = TREE_OPERAND (_p1, 1);
6366 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6367 : {
6368 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6369 : {
6370 0 : {
6371 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6372 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6373 0 : if (res) return res;
6374 : }
6375 : }
6376 : }
6377 : break;
6378 : }
6379 0 : case EQ_EXPR:
6380 0 : {
6381 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6382 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6383 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6384 : {
6385 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6386 : {
6387 0 : {
6388 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6389 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6390 0 : if (res) return res;
6391 : }
6392 : }
6393 : }
6394 : break;
6395 : }
6396 2 : case NE_EXPR:
6397 2 : {
6398 2 : tree _q50 = TREE_OPERAND (_p1, 0);
6399 2 : tree _q51 = TREE_OPERAND (_p1, 1);
6400 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6401 : {
6402 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6403 : {
6404 0 : {
6405 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6406 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6407 0 : if (res) return res;
6408 : }
6409 : }
6410 : }
6411 : break;
6412 : }
6413 : default:;
6414 : }
6415 : break;
6416 : }
6417 1541 : case LE_EXPR:
6418 1541 : {
6419 1541 : tree _q20 = TREE_OPERAND (_p0, 0);
6420 1541 : tree _q21 = TREE_OPERAND (_p0, 1);
6421 1541 : switch (TREE_CODE (_p1))
6422 : {
6423 4 : case GE_EXPR:
6424 4 : {
6425 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6426 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6427 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6428 : {
6429 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6430 : {
6431 0 : {
6432 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6433 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6434 0 : if (res) return res;
6435 : }
6436 : }
6437 : }
6438 : break;
6439 : }
6440 0 : case EQ_EXPR:
6441 0 : {
6442 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6443 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6444 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6445 : {
6446 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6447 : {
6448 0 : {
6449 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6450 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6451 0 : if (res) return res;
6452 : }
6453 : }
6454 : }
6455 : break;
6456 : }
6457 8 : case NE_EXPR:
6458 8 : {
6459 8 : tree _q50 = TREE_OPERAND (_p1, 0);
6460 8 : tree _q51 = TREE_OPERAND (_p1, 1);
6461 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6462 : {
6463 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6464 : {
6465 0 : {
6466 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6467 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6468 0 : if (res) return res;
6469 : }
6470 : }
6471 : }
6472 : break;
6473 : }
6474 : default:;
6475 : }
6476 : break;
6477 : }
6478 65149 : case GT_EXPR:
6479 65149 : {
6480 65149 : tree _q20 = TREE_OPERAND (_p0, 0);
6481 65149 : tree _q21 = TREE_OPERAND (_p0, 1);
6482 65149 : switch (TREE_CODE (_p1))
6483 : {
6484 63400 : case GT_EXPR:
6485 63400 : {
6486 63400 : tree _q50 = TREE_OPERAND (_p1, 0);
6487 63400 : tree _q51 = TREE_OPERAND (_p1, 1);
6488 63400 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6489 : {
6490 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6491 : {
6492 0 : {
6493 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6494 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6495 0 : if (res) return res;
6496 : }
6497 0 : {
6498 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6499 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6500 0 : if (res) return res;
6501 : }
6502 : }
6503 : }
6504 : break;
6505 : }
6506 57 : case EQ_EXPR:
6507 57 : {
6508 57 : tree _q50 = TREE_OPERAND (_p1, 0);
6509 57 : tree _q51 = TREE_OPERAND (_p1, 1);
6510 57 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6511 : {
6512 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6513 : {
6514 0 : {
6515 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6516 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6517 0 : if (res) return res;
6518 : }
6519 : }
6520 : }
6521 : break;
6522 : }
6523 37 : case NE_EXPR:
6524 37 : {
6525 37 : tree _q50 = TREE_OPERAND (_p1, 0);
6526 37 : tree _q51 = TREE_OPERAND (_p1, 1);
6527 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6528 : {
6529 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6530 : {
6531 0 : {
6532 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6533 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6534 0 : if (res) return res;
6535 : }
6536 : }
6537 : }
6538 : break;
6539 : }
6540 41 : case LT_EXPR:
6541 41 : {
6542 41 : tree _q50 = TREE_OPERAND (_p1, 0);
6543 41 : tree _q51 = TREE_OPERAND (_p1, 1);
6544 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6545 : {
6546 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6547 : {
6548 0 : {
6549 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6550 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6551 0 : if (res) return res;
6552 : }
6553 : }
6554 : }
6555 : break;
6556 : }
6557 : default:;
6558 : }
6559 : break;
6560 : }
6561 6618 : case GE_EXPR:
6562 6618 : {
6563 6618 : tree _q20 = TREE_OPERAND (_p0, 0);
6564 6618 : tree _q21 = TREE_OPERAND (_p0, 1);
6565 6618 : switch (TREE_CODE (_p1))
6566 : {
6567 26 : case GE_EXPR:
6568 26 : {
6569 26 : tree _q50 = TREE_OPERAND (_p1, 0);
6570 26 : tree _q51 = TREE_OPERAND (_p1, 1);
6571 26 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6572 : {
6573 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6574 : {
6575 0 : {
6576 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6577 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6578 0 : if (res) return res;
6579 : }
6580 0 : {
6581 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6582 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6583 0 : if (res) return res;
6584 : }
6585 : }
6586 : }
6587 : break;
6588 : }
6589 90 : case EQ_EXPR:
6590 90 : {
6591 90 : tree _q50 = TREE_OPERAND (_p1, 0);
6592 90 : tree _q51 = TREE_OPERAND (_p1, 1);
6593 90 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6594 : {
6595 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6596 : {
6597 0 : {
6598 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6599 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6600 0 : if (res) return res;
6601 : }
6602 : }
6603 : }
6604 : break;
6605 : }
6606 56 : case NE_EXPR:
6607 56 : {
6608 56 : tree _q50 = TREE_OPERAND (_p1, 0);
6609 56 : tree _q51 = TREE_OPERAND (_p1, 1);
6610 56 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6611 : {
6612 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6613 : {
6614 0 : {
6615 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6616 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6617 0 : if (res) return res;
6618 : }
6619 : }
6620 : }
6621 : break;
6622 : }
6623 8 : case LE_EXPR:
6624 8 : {
6625 8 : tree _q50 = TREE_OPERAND (_p1, 0);
6626 8 : tree _q51 = TREE_OPERAND (_p1, 1);
6627 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6628 : {
6629 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6630 : {
6631 0 : {
6632 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6633 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6634 0 : if (res) return res;
6635 : }
6636 : }
6637 : }
6638 : break;
6639 : }
6640 : default:;
6641 : }
6642 : break;
6643 : }
6644 32209 : case EQ_EXPR:
6645 32209 : {
6646 32209 : tree _q20 = TREE_OPERAND (_p0, 0);
6647 32209 : tree _q21 = TREE_OPERAND (_p0, 1);
6648 32209 : switch (TREE_CODE (_p1))
6649 : {
6650 4 : case LT_EXPR:
6651 4 : {
6652 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6653 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6654 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6655 : {
6656 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6657 : {
6658 0 : {
6659 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6660 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6661 0 : if (res) return res;
6662 : }
6663 : }
6664 : }
6665 : break;
6666 : }
6667 4 : case LE_EXPR:
6668 4 : {
6669 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6670 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6671 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6672 : {
6673 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6674 : {
6675 0 : {
6676 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6677 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6678 0 : if (res) return res;
6679 : }
6680 : }
6681 : }
6682 : break;
6683 : }
6684 75 : case GT_EXPR:
6685 75 : {
6686 75 : tree _q50 = TREE_OPERAND (_p1, 0);
6687 75 : tree _q51 = TREE_OPERAND (_p1, 1);
6688 75 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6689 : {
6690 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6691 : {
6692 0 : {
6693 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6694 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6695 0 : if (res) return res;
6696 : }
6697 : }
6698 : }
6699 : break;
6700 : }
6701 112 : case GE_EXPR:
6702 112 : {
6703 112 : tree _q50 = TREE_OPERAND (_p1, 0);
6704 112 : tree _q51 = TREE_OPERAND (_p1, 1);
6705 112 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6706 : {
6707 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6708 : {
6709 0 : {
6710 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6711 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6712 0 : if (res) return res;
6713 : }
6714 : }
6715 : }
6716 : break;
6717 : }
6718 : default:;
6719 : }
6720 : break;
6721 : }
6722 11802 : case NE_EXPR:
6723 11802 : {
6724 11802 : tree _q20 = TREE_OPERAND (_p0, 0);
6725 11802 : tree _q21 = TREE_OPERAND (_p0, 1);
6726 11802 : switch (TREE_CODE (_p1))
6727 : {
6728 3 : case LT_EXPR:
6729 3 : {
6730 3 : tree _q50 = TREE_OPERAND (_p1, 0);
6731 3 : tree _q51 = TREE_OPERAND (_p1, 1);
6732 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6733 : {
6734 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6735 : {
6736 0 : {
6737 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6738 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6739 0 : if (res) return res;
6740 : }
6741 : }
6742 : }
6743 : break;
6744 : }
6745 0 : case LE_EXPR:
6746 0 : {
6747 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6748 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6749 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6750 : {
6751 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6752 : {
6753 0 : {
6754 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6755 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6756 0 : if (res) return res;
6757 : }
6758 : }
6759 : }
6760 : break;
6761 : }
6762 21 : case GT_EXPR:
6763 21 : {
6764 21 : tree _q50 = TREE_OPERAND (_p1, 0);
6765 21 : tree _q51 = TREE_OPERAND (_p1, 1);
6766 21 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6767 : {
6768 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6769 : {
6770 0 : {
6771 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6772 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6773 0 : if (res) return res;
6774 : }
6775 : }
6776 : }
6777 : break;
6778 : }
6779 2 : case GE_EXPR:
6780 2 : {
6781 2 : tree _q50 = TREE_OPERAND (_p1, 0);
6782 2 : tree _q51 = TREE_OPERAND (_p1, 1);
6783 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6784 : {
6785 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6786 : {
6787 0 : {
6788 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6789 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6790 0 : if (res) return res;
6791 : }
6792 : }
6793 : }
6794 : break;
6795 : }
6796 : default:;
6797 : }
6798 : break;
6799 : }
6800 10358 : case MIN_EXPR:
6801 10358 : {
6802 10358 : tree _q20 = TREE_OPERAND (_p0, 0);
6803 10358 : tree _q21 = TREE_OPERAND (_p0, 1);
6804 10358 : switch (TREE_CODE (_p1))
6805 : {
6806 0 : case MAX_EXPR:
6807 0 : {
6808 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6809 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6810 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6811 : {
6812 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6813 : {
6814 0 : {
6815 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6816 0 : if (!HONOR_NANS (captures[0])
6817 : )
6818 : {
6819 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1498;
6820 0 : {
6821 0 : tree res_op0;
6822 0 : res_op0 = captures[0];
6823 0 : tree res_op1;
6824 0 : res_op1 = captures[1];
6825 0 : tree _r;
6826 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6827 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6828 0 : return _r;
6829 : }
6830 0 : next_after_fail1498:;
6831 : }
6832 : }
6833 : }
6834 : }
6835 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6836 : {
6837 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6838 : {
6839 0 : {
6840 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6841 0 : if (!HONOR_NANS (captures[0])
6842 : )
6843 : {
6844 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1499;
6845 0 : {
6846 0 : tree res_op0;
6847 0 : res_op0 = captures[0];
6848 0 : tree res_op1;
6849 0 : res_op1 = captures[1];
6850 0 : tree _r;
6851 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6852 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6853 0 : return _r;
6854 : }
6855 0 : next_after_fail1499:;
6856 : }
6857 : }
6858 : }
6859 : }
6860 : break;
6861 : }
6862 10358 : default:;
6863 : }
6864 10358 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6865 : {
6866 0 : {
6867 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6868 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6869 0 : if (res) return res;
6870 : }
6871 : }
6872 10358 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6873 : {
6874 0 : {
6875 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6876 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6877 0 : if (res) return res;
6878 : }
6879 : }
6880 : break;
6881 : }
6882 647 : case MAX_EXPR:
6883 647 : {
6884 647 : tree _q20 = TREE_OPERAND (_p0, 0);
6885 647 : tree _q21 = TREE_OPERAND (_p0, 1);
6886 647 : switch (TREE_CODE (_p1))
6887 : {
6888 0 : case MIN_EXPR:
6889 0 : {
6890 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6891 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6892 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6893 : {
6894 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6895 : {
6896 0 : {
6897 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6898 0 : if (!HONOR_NANS (captures[0])
6899 : )
6900 : {
6901 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1500;
6902 0 : {
6903 0 : tree res_op0;
6904 0 : res_op0 = captures[0];
6905 0 : tree res_op1;
6906 0 : res_op1 = captures[1];
6907 0 : tree _r;
6908 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6909 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6910 0 : return _r;
6911 : }
6912 0 : next_after_fail1500:;
6913 : }
6914 : }
6915 : }
6916 : }
6917 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6918 : {
6919 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6920 : {
6921 0 : {
6922 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6923 0 : if (!HONOR_NANS (captures[0])
6924 : )
6925 : {
6926 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1501;
6927 0 : {
6928 0 : tree res_op0;
6929 0 : res_op0 = captures[0];
6930 0 : tree res_op1;
6931 0 : res_op1 = captures[1];
6932 0 : tree _r;
6933 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6934 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6935 0 : return _r;
6936 : }
6937 0 : next_after_fail1501:;
6938 : }
6939 : }
6940 : }
6941 : }
6942 : break;
6943 : }
6944 647 : default:;
6945 : }
6946 647 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6947 : {
6948 0 : {
6949 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6950 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6951 0 : if (res) return res;
6952 : }
6953 : }
6954 647 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6955 : {
6956 1 : {
6957 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6958 1 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6959 1 : if (res) return res;
6960 : }
6961 : }
6962 : break;
6963 : }
6964 26699630 : default:;
6965 : }
6966 26699630 : if (tree_with_possible_nonzero_bits (_p0))
6967 : {
6968 9595798 : if (tree_with_known_nonzero_bits (_p1))
6969 : {
6970 8138392 : {
6971 8138392 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6972 8138392 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR);
6973 8138392 : if (res) return res;
6974 : }
6975 : }
6976 : }
6977 26680855 : if (tree_with_known_nonzero_bits (_p0))
6978 : {
6979 6171446 : if (tree_with_possible_nonzero_bits (_p1))
6980 : {
6981 6139163 : {
6982 6139163 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
6983 6139163 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR);
6984 6139163 : if (res) return res;
6985 : }
6986 : }
6987 : }
6988 26680354 : switch (TREE_CODE (_p1))
6989 : {
6990 143 : case MIN_EXPR:
6991 143 : {
6992 143 : tree _q30 = TREE_OPERAND (_p1, 0);
6993 143 : tree _q31 = TREE_OPERAND (_p1, 1);
6994 143 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6995 : {
6996 0 : {
6997 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6998 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6999 0 : if (res) return res;
7000 : }
7001 : }
7002 143 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7003 : {
7004 0 : {
7005 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7006 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
7007 0 : if (res) return res;
7008 : }
7009 : }
7010 : break;
7011 : }
7012 54 : case MAX_EXPR:
7013 54 : {
7014 54 : tree _q30 = TREE_OPERAND (_p1, 0);
7015 54 : tree _q31 = TREE_OPERAND (_p1, 1);
7016 54 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7017 : {
7018 0 : {
7019 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7020 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7021 0 : if (res) return res;
7022 : }
7023 : }
7024 54 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7025 : {
7026 0 : {
7027 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7028 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7029 0 : if (res) return res;
7030 : }
7031 : }
7032 : break;
7033 : }
7034 26680354 : default:;
7035 : }
7036 26680354 : switch (TREE_CODE (_p0))
7037 : {
7038 10358 : case MIN_EXPR:
7039 10358 : {
7040 10358 : tree _q20 = TREE_OPERAND (_p0, 0);
7041 10358 : tree _q21 = TREE_OPERAND (_p0, 1);
7042 10358 : switch (TREE_CODE (_q21))
7043 : {
7044 158 : case INTEGER_CST:
7045 158 : {
7046 158 : switch (TREE_CODE (_p1))
7047 : {
7048 0 : case INTEGER_CST:
7049 0 : {
7050 0 : {
7051 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7052 0 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR);
7053 0 : if (res) return res;
7054 : }
7055 0 : break;
7056 : }
7057 : default:;
7058 : }
7059 : break;
7060 : }
7061 : default:;
7062 : }
7063 : break;
7064 : }
7065 647 : case MAX_EXPR:
7066 647 : {
7067 647 : tree _q20 = TREE_OPERAND (_p0, 0);
7068 647 : tree _q21 = TREE_OPERAND (_p0, 1);
7069 647 : switch (TREE_CODE (_q21))
7070 : {
7071 409 : case INTEGER_CST:
7072 409 : {
7073 409 : switch (TREE_CODE (_p1))
7074 : {
7075 42 : case INTEGER_CST:
7076 42 : {
7077 42 : {
7078 42 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7079 42 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, EQ_EXPR);
7080 42 : if (res) return res;
7081 : }
7082 0 : break;
7083 : }
7084 : default:;
7085 : }
7086 : break;
7087 : }
7088 605 : default:;
7089 : }
7090 605 : if (integer_zerop (_p1))
7091 : {
7092 11 : {
7093 11 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7094 11 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
7095 11 : if (res) return res;
7096 : }
7097 : }
7098 : break;
7099 : }
7100 825995 : case BIT_AND_EXPR:
7101 825995 : {
7102 825995 : tree _q20 = TREE_OPERAND (_p0, 0);
7103 825995 : tree _q21 = TREE_OPERAND (_p0, 1);
7104 825995 : switch (TREE_CODE (_q20))
7105 : {
7106 743 : case LSHIFT_EXPR:
7107 743 : {
7108 743 : tree _q30 = TREE_OPERAND (_q20, 0);
7109 743 : tree _q31 = TREE_OPERAND (_q20, 1);
7110 743 : if (integer_pow2p (_q30))
7111 : {
7112 735 : if (integer_pow2p (_q21))
7113 : {
7114 1 : if (integer_zerop (_p1))
7115 : {
7116 1 : {
7117 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7118 1 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7119 1 : if (res) return res;
7120 : }
7121 : }
7122 : }
7123 : }
7124 742 : switch (TREE_CODE (_q31))
7125 : {
7126 0 : case INTEGER_CST:
7127 0 : {
7128 0 : switch (TREE_CODE (_q21))
7129 : {
7130 0 : case INTEGER_CST:
7131 0 : {
7132 0 : switch (TREE_CODE (_p1))
7133 : {
7134 0 : case INTEGER_CST:
7135 0 : {
7136 0 : {
7137 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7138 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, EQ_EXPR);
7139 0 : if (res) return res;
7140 : }
7141 0 : break;
7142 : }
7143 : default:;
7144 : }
7145 : break;
7146 : }
7147 : default:;
7148 : }
7149 : break;
7150 : }
7151 742 : default:;
7152 : }
7153 742 : if (integer_onep (_q30))
7154 : {
7155 734 : if (integer_pow2p (_q21))
7156 : {
7157 0 : if (integer_zerop (_p1))
7158 : {
7159 0 : {
7160 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
7161 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7162 0 : if (res) return res;
7163 : }
7164 : }
7165 : }
7166 : }
7167 : break;
7168 : }
7169 2715 : case RSHIFT_EXPR:
7170 2715 : {
7171 2715 : tree _q30 = TREE_OPERAND (_q20, 0);
7172 2715 : tree _q31 = TREE_OPERAND (_q20, 1);
7173 2715 : if (integer_pow2p (_q30))
7174 : {
7175 1 : if (integer_pow2p (_q21))
7176 : {
7177 1 : if (integer_zerop (_p1))
7178 : {
7179 1 : {
7180 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7181 1 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7182 1 : if (res) return res;
7183 : }
7184 : }
7185 : }
7186 : }
7187 2714 : switch (TREE_CODE (_q31))
7188 : {
7189 418 : case INTEGER_CST:
7190 418 : {
7191 418 : switch (TREE_CODE (_q21))
7192 : {
7193 418 : case INTEGER_CST:
7194 418 : {
7195 418 : switch (TREE_CODE (_p1))
7196 : {
7197 418 : case INTEGER_CST:
7198 418 : {
7199 418 : {
7200 418 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7201 418 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, EQ_EXPR);
7202 418 : if (res) return res;
7203 : }
7204 0 : break;
7205 : }
7206 : default:;
7207 : }
7208 : break;
7209 : }
7210 : default:;
7211 : }
7212 : break;
7213 : }
7214 : default:;
7215 : }
7216 : break;
7217 : }
7218 825575 : default:;
7219 : }
7220 825575 : {
7221 825575 : tree _q20_pops[1];
7222 825575 : if (tree_nop_convert (_q20, _q20_pops))
7223 : {
7224 21021 : tree _q30 = _q20_pops[0];
7225 21021 : switch (TREE_CODE (_q30))
7226 : {
7227 0 : case LSHIFT_EXPR:
7228 0 : {
7229 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7230 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7231 0 : if (integer_onep (_q40))
7232 : {
7233 0 : if (integer_pow2p (_q21))
7234 : {
7235 0 : if (integer_zerop (_p1))
7236 : {
7237 0 : {
7238 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
7239 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7240 0 : if (res) return res;
7241 : }
7242 : }
7243 : }
7244 : }
7245 : break;
7246 : }
7247 : default:;
7248 : }
7249 : }
7250 : }
7251 825575 : break;
7252 : }
7253 1728 : case LSHIFT_EXPR:
7254 1728 : {
7255 1728 : tree _q20 = TREE_OPERAND (_p0, 0);
7256 1728 : tree _q21 = TREE_OPERAND (_p0, 1);
7257 1728 : switch (TREE_CODE (_q20))
7258 : {
7259 310 : case INTEGER_CST:
7260 310 : {
7261 310 : switch (TREE_CODE (_p1))
7262 : {
7263 20 : case INTEGER_CST:
7264 20 : {
7265 20 : {
7266 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7267 20 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR);
7268 20 : if (res) return res;
7269 : }
7270 3 : break;
7271 : }
7272 : default:;
7273 : }
7274 : break;
7275 : }
7276 : default:;
7277 : }
7278 : break;
7279 : }
7280 0 : case LROTATE_EXPR:
7281 0 : {
7282 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7283 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7284 0 : switch (TREE_CODE (_p1))
7285 : {
7286 0 : case LROTATE_EXPR:
7287 0 : {
7288 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7289 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7290 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7291 : {
7292 0 : {
7293 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7294 0 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7295 0 : if (res) return res;
7296 : }
7297 : }
7298 : break;
7299 : }
7300 0 : default:;
7301 : }
7302 0 : switch (TREE_CODE (_q21))
7303 : {
7304 0 : case INTEGER_CST:
7305 0 : {
7306 0 : switch (TREE_CODE (_p1))
7307 : {
7308 0 : case INTEGER_CST:
7309 0 : {
7310 0 : {
7311 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7312 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7313 0 : if (res) return res;
7314 : }
7315 0 : break;
7316 : }
7317 : default:;
7318 : }
7319 : break;
7320 : }
7321 0 : default:;
7322 : }
7323 0 : switch (TREE_CODE (_p1))
7324 : {
7325 0 : case INTEGER_CST:
7326 0 : {
7327 0 : {
7328 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7329 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7330 0 : if (res) return res;
7331 : }
7332 0 : break;
7333 : }
7334 : default:;
7335 : }
7336 : break;
7337 : }
7338 42 : case RROTATE_EXPR:
7339 42 : {
7340 42 : tree _q20 = TREE_OPERAND (_p0, 0);
7341 42 : tree _q21 = TREE_OPERAND (_p0, 1);
7342 42 : switch (TREE_CODE (_p1))
7343 : {
7344 0 : case RROTATE_EXPR:
7345 0 : {
7346 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7347 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7348 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7349 : {
7350 0 : {
7351 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7352 0 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7353 0 : if (res) return res;
7354 : }
7355 : }
7356 : break;
7357 : }
7358 42 : default:;
7359 : }
7360 42 : switch (TREE_CODE (_q21))
7361 : {
7362 42 : case INTEGER_CST:
7363 42 : {
7364 42 : switch (TREE_CODE (_p1))
7365 : {
7366 0 : case INTEGER_CST:
7367 0 : {
7368 0 : {
7369 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7370 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7371 0 : if (res) return res;
7372 : }
7373 0 : break;
7374 : }
7375 : default:;
7376 : }
7377 : break;
7378 : }
7379 42 : default:;
7380 : }
7381 42 : switch (TREE_CODE (_p1))
7382 : {
7383 0 : case INTEGER_CST:
7384 0 : {
7385 0 : {
7386 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7387 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7388 0 : if (res) return res;
7389 : }
7390 0 : break;
7391 : }
7392 : default:;
7393 : }
7394 : break;
7395 : }
7396 64969 : case MULT_EXPR:
7397 64969 : {
7398 64969 : tree _q20 = TREE_OPERAND (_p0, 0);
7399 64969 : tree _q21 = TREE_OPERAND (_p0, 1);
7400 64969 : switch (TREE_CODE (_q20))
7401 : {
7402 66 : case TRUNC_DIV_EXPR:
7403 66 : {
7404 66 : tree _q30 = TREE_OPERAND (_q20, 0);
7405 66 : tree _q31 = TREE_OPERAND (_q20, 1);
7406 66 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7407 : {
7408 47 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7409 : {
7410 47 : {
7411 47 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7412 47 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures);
7413 47 : if (res) return res;
7414 : }
7415 : }
7416 : }
7417 : break;
7418 : }
7419 64922 : default:;
7420 : }
7421 64922 : switch (TREE_CODE (_q21))
7422 : {
7423 0 : case TRUNC_DIV_EXPR:
7424 0 : {
7425 0 : tree _q40 = TREE_OPERAND (_q21, 0);
7426 0 : tree _q41 = TREE_OPERAND (_q21, 1);
7427 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7428 : {
7429 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7430 : {
7431 0 : {
7432 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
7433 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures);
7434 0 : if (res) return res;
7435 : }
7436 : }
7437 : }
7438 : break;
7439 : }
7440 : default:;
7441 : }
7442 : break;
7443 : }
7444 26679828 : default:;
7445 : }
7446 26679828 : switch (TREE_CODE (_p1))
7447 : {
7448 13629 : case MULT_EXPR:
7449 13629 : {
7450 13629 : tree _q30 = TREE_OPERAND (_p1, 0);
7451 13629 : tree _q31 = TREE_OPERAND (_p1, 1);
7452 13629 : switch (TREE_CODE (_q30))
7453 : {
7454 0 : case TRUNC_DIV_EXPR:
7455 0 : {
7456 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7457 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7458 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7459 : {
7460 0 : if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
7461 : {
7462 0 : {
7463 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
7464 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures);
7465 0 : if (res) return res;
7466 : }
7467 : }
7468 : }
7469 : break;
7470 : }
7471 13629 : default:;
7472 : }
7473 13629 : switch (TREE_CODE (_q31))
7474 : {
7475 0 : case TRUNC_DIV_EXPR:
7476 0 : {
7477 0 : tree _q50 = TREE_OPERAND (_q31, 0);
7478 0 : tree _q51 = TREE_OPERAND (_q31, 1);
7479 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7480 : {
7481 0 : if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
7482 : {
7483 0 : {
7484 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
7485 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures);
7486 0 : if (res) return res;
7487 : }
7488 : }
7489 : }
7490 : break;
7491 : }
7492 : default:;
7493 : }
7494 : break;
7495 : }
7496 26679828 : default:;
7497 : }
7498 26679828 : switch (TREE_CODE (_p0))
7499 : {
7500 587 : case VEC_COND_EXPR:
7501 587 : {
7502 587 : tree _q20 = TREE_OPERAND (_p0, 0);
7503 587 : tree _q21 = TREE_OPERAND (_p0, 1);
7504 587 : tree _q22 = TREE_OPERAND (_p0, 2);
7505 587 : switch (TREE_CODE (_p1))
7506 : {
7507 107 : case VEC_COND_EXPR:
7508 107 : {
7509 107 : tree _q60 = TREE_OPERAND (_p1, 0);
7510 107 : tree _q61 = TREE_OPERAND (_p1, 1);
7511 107 : tree _q62 = TREE_OPERAND (_p1, 2);
7512 107 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7513 : {
7514 60 : {
7515 60 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7516 60 : if (VECTOR_TYPE_P (type)
7517 60 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7518 60 : || types_match (type, TREE_TYPE (captures[2]))
7519 60 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7520 : || (optimize_vectors_before_lowering_p ()
7521 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7522 : )
7523 : {
7524 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1502;
7525 60 : {
7526 60 : tree res_op0;
7527 60 : res_op0 = captures[1];
7528 60 : tree res_op1;
7529 60 : {
7530 60 : tree _o1[2], _r1;
7531 60 : _o1[0] = captures[2];
7532 60 : _o1[1] = captures[5];
7533 60 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7534 60 : if (EXPR_P (_r1))
7535 60 : goto next_after_fail1502;
7536 0 : res_op1 = _r1;
7537 : }
7538 0 : tree res_op2;
7539 0 : {
7540 0 : tree _o1[2], _r1;
7541 0 : _o1[0] = captures[3];
7542 0 : _o1[1] = captures[6];
7543 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7544 0 : if (EXPR_P (_r1))
7545 0 : goto next_after_fail1502;
7546 0 : res_op2 = _r1;
7547 : }
7548 0 : tree _r;
7549 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7550 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
7551 0 : return _r;
7552 : }
7553 60 : next_after_fail1502:;
7554 : }
7555 : }
7556 : }
7557 : break;
7558 : }
7559 587 : default:;
7560 : }
7561 587 : {
7562 587 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7563 587 : if (VECTOR_TYPE_P (type)
7564 587 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7565 587 : || types_match (type, TREE_TYPE (captures[2]))
7566 587 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7567 : || (optimize_vectors_before_lowering_p ()
7568 79 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7569 : )
7570 : {
7571 587 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1503;
7572 587 : {
7573 587 : if (! tree_invariant_p (captures[4])) goto next_after_fail1503;
7574 86 : tree res_op0;
7575 86 : res_op0 = captures[1];
7576 86 : tree res_op1;
7577 86 : {
7578 86 : tree _o1[2], _r1;
7579 86 : _o1[0] = captures[2];
7580 86 : _o1[1] = unshare_expr (captures[4]);
7581 86 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7582 86 : if (EXPR_P (_r1))
7583 48 : goto next_after_fail1503;
7584 38 : res_op1 = _r1;
7585 : }
7586 38 : tree res_op2;
7587 38 : {
7588 38 : tree _o1[2], _r1;
7589 38 : _o1[0] = captures[3];
7590 38 : _o1[1] = captures[4];
7591 38 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7592 38 : if (EXPR_P (_r1))
7593 17 : goto next_after_fail1503;
7594 21 : res_op2 = _r1;
7595 : }
7596 21 : tree _r;
7597 21 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7598 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
7599 21 : return _r;
7600 : }
7601 566 : next_after_fail1503:;
7602 : }
7603 : }
7604 566 : break;
7605 : }
7606 1936674 : case CALL_EXPR:
7607 1936674 : switch (get_call_combined_fn (_p0))
7608 : {
7609 1 : case CFN_BUILT_IN_BITREVERSE128:
7610 1 : if (call_expr_nargs (_p0) == 1)
7611 : {
7612 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7613 1 : switch (TREE_CODE (_p1))
7614 : {
7615 1 : case INTEGER_CST:
7616 1 : {
7617 1 : {
7618 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7619 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
7620 1 : if (res) return res;
7621 : }
7622 1 : break;
7623 : }
7624 0 : case CALL_EXPR:
7625 0 : switch (get_call_combined_fn (_p1))
7626 : {
7627 0 : case CFN_BUILT_IN_BITREVERSE128:
7628 0 : if (call_expr_nargs (_p1) == 1)
7629 : {
7630 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7631 0 : {
7632 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7633 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
7634 0 : if (res) return res;
7635 : }
7636 : }
7637 : break;
7638 : default:;
7639 : }
7640 : break;
7641 : default:;
7642 : }
7643 : }
7644 : break;
7645 1 : case CFN_BUILT_IN_BITREVERSE16:
7646 1 : if (call_expr_nargs (_p0) == 1)
7647 : {
7648 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7649 1 : switch (TREE_CODE (_p1))
7650 : {
7651 1 : case INTEGER_CST:
7652 1 : {
7653 1 : {
7654 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7655 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
7656 1 : if (res) return res;
7657 : }
7658 1 : break;
7659 : }
7660 0 : case CALL_EXPR:
7661 0 : switch (get_call_combined_fn (_p1))
7662 : {
7663 0 : case CFN_BUILT_IN_BITREVERSE16:
7664 0 : if (call_expr_nargs (_p1) == 1)
7665 : {
7666 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7667 0 : {
7668 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7669 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
7670 0 : if (res) return res;
7671 : }
7672 : }
7673 : break;
7674 : default:;
7675 : }
7676 : break;
7677 : default:;
7678 : }
7679 : }
7680 : break;
7681 1 : case CFN_BUILT_IN_BITREVERSE32:
7682 1 : if (call_expr_nargs (_p0) == 1)
7683 : {
7684 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7685 1 : switch (TREE_CODE (_p1))
7686 : {
7687 1 : case INTEGER_CST:
7688 1 : {
7689 1 : {
7690 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7691 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
7692 1 : if (res) return res;
7693 : }
7694 1 : break;
7695 : }
7696 0 : case CALL_EXPR:
7697 0 : switch (get_call_combined_fn (_p1))
7698 : {
7699 0 : case CFN_BUILT_IN_BITREVERSE32:
7700 0 : if (call_expr_nargs (_p1) == 1)
7701 : {
7702 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7703 0 : {
7704 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7705 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
7706 0 : if (res) return res;
7707 : }
7708 : }
7709 : break;
7710 : default:;
7711 : }
7712 : break;
7713 : default:;
7714 : }
7715 : }
7716 : break;
7717 1 : case CFN_BUILT_IN_BITREVERSE64:
7718 1 : if (call_expr_nargs (_p0) == 1)
7719 : {
7720 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7721 1 : switch (TREE_CODE (_p1))
7722 : {
7723 1 : case INTEGER_CST:
7724 1 : {
7725 1 : {
7726 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7727 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
7728 1 : if (res) return res;
7729 : }
7730 1 : break;
7731 : }
7732 0 : case CALL_EXPR:
7733 0 : switch (get_call_combined_fn (_p1))
7734 : {
7735 0 : case CFN_BUILT_IN_BITREVERSE64:
7736 0 : if (call_expr_nargs (_p1) == 1)
7737 : {
7738 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7739 0 : {
7740 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7741 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
7742 0 : if (res) return res;
7743 : }
7744 : }
7745 : break;
7746 : default:;
7747 : }
7748 : break;
7749 : default:;
7750 : }
7751 : }
7752 : break;
7753 0 : case CFN_BUILT_IN_BSWAP128:
7754 0 : if (call_expr_nargs (_p0) == 1)
7755 : {
7756 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7757 0 : switch (TREE_CODE (_p1))
7758 : {
7759 0 : case INTEGER_CST:
7760 0 : {
7761 0 : {
7762 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7763 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7764 0 : if (res) return res;
7765 : }
7766 0 : break;
7767 : }
7768 0 : case CALL_EXPR:
7769 0 : switch (get_call_combined_fn (_p1))
7770 : {
7771 0 : case CFN_BUILT_IN_BSWAP128:
7772 0 : if (call_expr_nargs (_p1) == 1)
7773 : {
7774 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7775 0 : {
7776 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7777 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7778 0 : if (res) return res;
7779 : }
7780 : }
7781 : break;
7782 : default:;
7783 : }
7784 : break;
7785 : default:;
7786 : }
7787 : }
7788 : break;
7789 1 : case CFN_BUILT_IN_BITREVERSE8:
7790 1 : if (call_expr_nargs (_p0) == 1)
7791 : {
7792 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7793 1 : switch (TREE_CODE (_p1))
7794 : {
7795 1 : case INTEGER_CST:
7796 1 : {
7797 1 : {
7798 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7799 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
7800 1 : if (res) return res;
7801 : }
7802 1 : break;
7803 : }
7804 0 : case CALL_EXPR:
7805 0 : switch (get_call_combined_fn (_p1))
7806 : {
7807 0 : case CFN_BUILT_IN_BITREVERSE8:
7808 0 : if (call_expr_nargs (_p1) == 1)
7809 : {
7810 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7811 0 : {
7812 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7813 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
7814 0 : if (res) return res;
7815 : }
7816 : }
7817 : break;
7818 : default:;
7819 : }
7820 : break;
7821 : default:;
7822 : }
7823 : }
7824 : break;
7825 2 : case CFN_BUILT_IN_BSWAP16:
7826 2 : if (call_expr_nargs (_p0) == 1)
7827 : {
7828 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7829 2 : switch (TREE_CODE (_p1))
7830 : {
7831 1 : case INTEGER_CST:
7832 1 : {
7833 1 : {
7834 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7835 1 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7836 1 : if (res) return res;
7837 : }
7838 1 : break;
7839 : }
7840 1 : case CALL_EXPR:
7841 1 : switch (get_call_combined_fn (_p1))
7842 : {
7843 1 : case CFN_BUILT_IN_BSWAP16:
7844 1 : if (call_expr_nargs (_p1) == 1)
7845 : {
7846 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7847 1 : {
7848 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7849 1 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7850 1 : if (res) return res;
7851 : }
7852 : }
7853 : break;
7854 : default:;
7855 : }
7856 : break;
7857 : default:;
7858 : }
7859 : }
7860 : break;
7861 6 : case CFN_BUILT_IN_BSWAP32:
7862 6 : if (call_expr_nargs (_p0) == 1)
7863 : {
7864 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7865 6 : switch (TREE_CODE (_p1))
7866 : {
7867 3 : case INTEGER_CST:
7868 3 : {
7869 3 : {
7870 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7871 3 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7872 3 : if (res) return res;
7873 : }
7874 3 : break;
7875 : }
7876 3 : case CALL_EXPR:
7877 3 : switch (get_call_combined_fn (_p1))
7878 : {
7879 3 : case CFN_BUILT_IN_BSWAP32:
7880 3 : if (call_expr_nargs (_p1) == 1)
7881 : {
7882 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7883 3 : {
7884 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7885 3 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7886 3 : if (res) return res;
7887 : }
7888 : }
7889 : break;
7890 : default:;
7891 : }
7892 : break;
7893 : default:;
7894 : }
7895 : }
7896 : break;
7897 6 : case CFN_BUILT_IN_BSWAP64:
7898 6 : if (call_expr_nargs (_p0) == 1)
7899 : {
7900 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7901 6 : switch (TREE_CODE (_p1))
7902 : {
7903 3 : case INTEGER_CST:
7904 3 : {
7905 3 : {
7906 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7907 3 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7908 3 : if (res) return res;
7909 : }
7910 3 : break;
7911 : }
7912 3 : case CALL_EXPR:
7913 3 : switch (get_call_combined_fn (_p1))
7914 : {
7915 3 : case CFN_BUILT_IN_BSWAP64:
7916 3 : if (call_expr_nargs (_p1) == 1)
7917 : {
7918 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7919 3 : {
7920 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7921 3 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7922 3 : if (res) return res;
7923 : }
7924 : }
7925 : break;
7926 : default:;
7927 : }
7928 : break;
7929 : default:;
7930 : }
7931 : }
7932 : break;
7933 : default:;
7934 : }
7935 : break;
7936 26679800 : default:;
7937 : }
7938 26679800 : switch (TREE_CODE (_p1))
7939 : {
7940 122 : case VEC_COND_EXPR:
7941 122 : {
7942 122 : tree _q30 = TREE_OPERAND (_p1, 0);
7943 122 : tree _q31 = TREE_OPERAND (_p1, 1);
7944 122 : tree _q32 = TREE_OPERAND (_p1, 2);
7945 122 : {
7946 122 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7947 122 : if (VECTOR_TYPE_P (type)
7948 122 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7949 122 : || types_match (type, TREE_TYPE (captures[3]))
7950 122 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7951 : || (optimize_vectors_before_lowering_p ()
7952 21 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7953 : )
7954 : {
7955 122 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1504;
7956 122 : {
7957 122 : if (! tree_invariant_p (captures[0])) goto next_after_fail1504;
7958 0 : tree res_op0;
7959 0 : res_op0 = captures[2];
7960 0 : tree res_op1;
7961 0 : {
7962 0 : tree _o1[2], _r1;
7963 0 : _o1[0] = unshare_expr (captures[0]);
7964 0 : _o1[1] = captures[3];
7965 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7966 0 : if (EXPR_P (_r1))
7967 0 : goto next_after_fail1504;
7968 0 : res_op1 = _r1;
7969 : }
7970 0 : tree res_op2;
7971 0 : {
7972 0 : tree _o1[2], _r1;
7973 0 : _o1[0] = captures[0];
7974 0 : _o1[1] = captures[4];
7975 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7976 0 : if (EXPR_P (_r1))
7977 0 : goto next_after_fail1504;
7978 0 : res_op2 = _r1;
7979 : }
7980 0 : tree _r;
7981 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7982 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
7983 0 : return _r;
7984 : }
7985 122 : next_after_fail1504:;
7986 : }
7987 : }
7988 122 : break;
7989 : }
7990 26679800 : default:;
7991 : }
7992 26679800 : switch (TREE_CODE (_p0))
7993 : {
7994 41168 : case COND_EXPR:
7995 41168 : {
7996 41168 : tree _q20 = TREE_OPERAND (_p0, 0);
7997 41168 : tree _q21 = TREE_OPERAND (_p0, 1);
7998 41168 : tree _q22 = TREE_OPERAND (_p0, 2);
7999 41168 : switch (TREE_CODE (_p1))
8000 : {
8001 37 : case COND_EXPR:
8002 37 : {
8003 37 : tree _q60 = TREE_OPERAND (_p1, 0);
8004 37 : tree _q61 = TREE_OPERAND (_p1, 1);
8005 37 : tree _q62 = TREE_OPERAND (_p1, 2);
8006 37 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8007 : {
8008 3 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8009 : {
8010 3 : {
8011 3 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8012 3 : const enum tree_code eqne = EQ_EXPR;
8013 3 : if (!HONOR_NANS (captures[1])
8014 3 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8015 3 : && types_match (type, TREE_TYPE (captures[0]))
8016 3 : && expr_no_side_effects_p (captures[1])
8017 4 : && expr_no_side_effects_p (captures[2])
8018 : )
8019 : {
8020 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1505;
8021 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1505;
8022 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1505;
8023 1 : {
8024 1 : tree res_op0;
8025 1 : {
8026 1 : tree _o1[2], _r1;
8027 1 : {
8028 1 : tree _o2[2], _r2;
8029 1 : _o2[0] = captures[0];
8030 1 : _o2[1] = captures[3];
8031 1 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8032 1 : _o1[0] = _r2;
8033 : }
8034 1 : {
8035 1 : tree _o2[2], _r2;
8036 1 : _o2[0] = captures[1];
8037 1 : _o2[1] = captures[2];
8038 1 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8039 1 : _o1[1] = _r2;
8040 : }
8041 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8042 1 : res_op0 = _r1;
8043 : }
8044 1 : tree res_op1;
8045 1 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8046 1 : tree res_op2;
8047 1 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8048 1 : tree _r;
8049 1 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8050 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
8051 1 : return _r;
8052 : }
8053 2 : next_after_fail1505:;
8054 : }
8055 : }
8056 : }
8057 : }
8058 36 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8059 : {
8060 7 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8061 : {
8062 7 : {
8063 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8064 7 : const enum tree_code eqne = EQ_EXPR;
8065 7 : if (!HONOR_NANS (captures[1])
8066 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8067 0 : && types_match (type, TREE_TYPE (captures[0]))
8068 0 : && expr_no_side_effects_p (captures[1])
8069 7 : && expr_no_side_effects_p (captures[2])
8070 : )
8071 : {
8072 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1506;
8073 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1506;
8074 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1506;
8075 0 : {
8076 0 : tree res_op0;
8077 0 : {
8078 0 : tree _o1[2], _r1;
8079 0 : {
8080 0 : tree _o2[2], _r2;
8081 0 : _o2[0] = captures[0];
8082 0 : _o2[1] = captures[3];
8083 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8084 0 : _o1[0] = _r2;
8085 : }
8086 0 : {
8087 0 : tree _o2[2], _r2;
8088 0 : _o2[0] = captures[1];
8089 0 : _o2[1] = captures[2];
8090 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8091 0 : _o1[1] = _r2;
8092 : }
8093 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8094 0 : res_op0 = _r1;
8095 : }
8096 0 : tree res_op1;
8097 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8098 0 : tree res_op2;
8099 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8100 0 : tree _r;
8101 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8102 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
8103 0 : return _r;
8104 : }
8105 7 : next_after_fail1506:;
8106 : }
8107 : }
8108 : }
8109 : }
8110 : break;
8111 : }
8112 : default:;
8113 : }
8114 : break;
8115 : }
8116 566 : case VEC_COND_EXPR:
8117 566 : {
8118 566 : tree _q20 = TREE_OPERAND (_p0, 0);
8119 566 : tree _q21 = TREE_OPERAND (_p0, 1);
8120 566 : tree _q22 = TREE_OPERAND (_p0, 2);
8121 566 : switch (TREE_CODE (_p1))
8122 : {
8123 107 : case VEC_COND_EXPR:
8124 107 : {
8125 107 : tree _q60 = TREE_OPERAND (_p1, 0);
8126 107 : tree _q61 = TREE_OPERAND (_p1, 1);
8127 107 : tree _q62 = TREE_OPERAND (_p1, 2);
8128 107 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8129 : {
8130 66 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8131 : {
8132 66 : {
8133 66 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8134 66 : const enum tree_code eqne = EQ_EXPR;
8135 66 : if (!HONOR_NANS (captures[1])
8136 6 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8137 6 : && types_match (type, TREE_TYPE (captures[0]))
8138 6 : && expr_no_side_effects_p (captures[1])
8139 72 : && expr_no_side_effects_p (captures[2])
8140 : )
8141 : {
8142 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1507;
8143 6 : {
8144 6 : tree res_op0;
8145 6 : {
8146 6 : tree _o1[2], _r1;
8147 6 : {
8148 6 : tree _o2[2], _r2;
8149 6 : _o2[0] = captures[0];
8150 6 : _o2[1] = captures[3];
8151 6 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8152 6 : _o1[0] = _r2;
8153 : }
8154 6 : {
8155 6 : tree _o2[2], _r2;
8156 6 : _o2[0] = captures[1];
8157 6 : _o2[1] = captures[2];
8158 6 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8159 6 : _o1[1] = _r2;
8160 : }
8161 6 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8162 6 : res_op0 = _r1;
8163 : }
8164 6 : tree res_op1;
8165 6 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8166 6 : tree res_op2;
8167 6 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8168 6 : tree _r;
8169 6 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8170 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
8171 6 : return _r;
8172 : }
8173 0 : next_after_fail1507:;
8174 : }
8175 : }
8176 : }
8177 : }
8178 101 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8179 : {
8180 37 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8181 : {
8182 37 : {
8183 37 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8184 37 : const enum tree_code eqne = EQ_EXPR;
8185 37 : if (!HONOR_NANS (captures[1])
8186 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8187 0 : && types_match (type, TREE_TYPE (captures[0]))
8188 0 : && expr_no_side_effects_p (captures[1])
8189 37 : && expr_no_side_effects_p (captures[2])
8190 : )
8191 : {
8192 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1508;
8193 0 : {
8194 0 : tree res_op0;
8195 0 : {
8196 0 : tree _o1[2], _r1;
8197 0 : {
8198 0 : tree _o2[2], _r2;
8199 0 : _o2[0] = captures[0];
8200 0 : _o2[1] = captures[3];
8201 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8202 0 : _o1[0] = _r2;
8203 : }
8204 0 : {
8205 0 : tree _o2[2], _r2;
8206 0 : _o2[0] = captures[1];
8207 0 : _o2[1] = captures[2];
8208 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8209 0 : _o1[1] = _r2;
8210 : }
8211 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8212 0 : res_op0 = _r1;
8213 : }
8214 0 : tree res_op1;
8215 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8216 0 : tree res_op2;
8217 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8218 0 : tree _r;
8219 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8220 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
8221 0 : return _r;
8222 : }
8223 0 : next_after_fail1508:;
8224 : }
8225 : }
8226 : }
8227 : }
8228 : break;
8229 : }
8230 : default:;
8231 : }
8232 : break;
8233 : }
8234 1141 : case LT_EXPR:
8235 1141 : {
8236 1141 : tree _q20 = TREE_OPERAND (_p0, 0);
8237 1141 : tree _q21 = TREE_OPERAND (_p0, 1);
8238 1141 : if (integer_truep (_p1))
8239 : {
8240 5 : {
8241 5 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8242 5 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8243 5 : if (res) return res;
8244 : }
8245 : }
8246 1141 : if (integer_zerop (_p1))
8247 : {
8248 424 : {
8249 424 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8250 424 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8251 424 : if (res) return res;
8252 : }
8253 : }
8254 : break;
8255 : }
8256 1541 : case LE_EXPR:
8257 1541 : {
8258 1541 : tree _q20 = TREE_OPERAND (_p0, 0);
8259 1541 : tree _q21 = TREE_OPERAND (_p0, 1);
8260 1541 : if (integer_truep (_p1))
8261 : {
8262 0 : {
8263 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8264 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8265 0 : if (res) return res;
8266 : }
8267 : }
8268 1541 : if (integer_zerop (_p1))
8269 : {
8270 677 : {
8271 677 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8272 677 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8273 677 : if (res) return res;
8274 : }
8275 : }
8276 : break;
8277 : }
8278 32209 : case EQ_EXPR:
8279 32209 : {
8280 32209 : tree _q20 = TREE_OPERAND (_p0, 0);
8281 32209 : tree _q21 = TREE_OPERAND (_p0, 1);
8282 32209 : if (integer_truep (_p1))
8283 : {
8284 48 : {
8285 48 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8286 48 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8287 48 : if (res) return res;
8288 : }
8289 : }
8290 32204 : if (integer_zerop (_p1))
8291 : {
8292 7584 : {
8293 7584 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8294 7584 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8295 7584 : if (res) return res;
8296 : }
8297 : }
8298 : break;
8299 : }
8300 11802 : case NE_EXPR:
8301 11802 : {
8302 11802 : tree _q20 = TREE_OPERAND (_p0, 0);
8303 11802 : tree _q21 = TREE_OPERAND (_p0, 1);
8304 11802 : if (integer_truep (_p1))
8305 : {
8306 126 : {
8307 126 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8308 126 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8309 126 : if (res) return res;
8310 : }
8311 : }
8312 11682 : if (integer_zerop (_p1))
8313 : {
8314 9899 : {
8315 9899 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8316 9899 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8317 9899 : if (res) return res;
8318 : }
8319 : }
8320 : break;
8321 : }
8322 6618 : case GE_EXPR:
8323 6618 : {
8324 6618 : tree _q20 = TREE_OPERAND (_p0, 0);
8325 6618 : tree _q21 = TREE_OPERAND (_p0, 1);
8326 6618 : if (integer_truep (_p1))
8327 : {
8328 0 : {
8329 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8330 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8331 0 : if (res) return res;
8332 : }
8333 : }
8334 6618 : if (integer_zerop (_p1))
8335 : {
8336 5499 : {
8337 5499 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8338 5499 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8339 5499 : if (res) return res;
8340 : }
8341 : }
8342 : break;
8343 : }
8344 65149 : case GT_EXPR:
8345 65149 : {
8346 65149 : tree _q20 = TREE_OPERAND (_p0, 0);
8347 65149 : tree _q21 = TREE_OPERAND (_p0, 1);
8348 65149 : if (integer_truep (_p1))
8349 : {
8350 0 : {
8351 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8352 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8353 0 : if (res) return res;
8354 : }
8355 : }
8356 65149 : if (integer_zerop (_p1))
8357 : {
8358 447 : {
8359 447 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8360 447 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8361 447 : if (res) return res;
8362 : }
8363 : }
8364 : break;
8365 : }
8366 1023 : case UNORDERED_EXPR:
8367 1023 : {
8368 1023 : tree _q20 = TREE_OPERAND (_p0, 0);
8369 1023 : tree _q21 = TREE_OPERAND (_p0, 1);
8370 1023 : if (integer_truep (_p1))
8371 : {
8372 0 : {
8373 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8374 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8375 0 : if (res) return res;
8376 : }
8377 : }
8378 1023 : if (integer_zerop (_p1))
8379 : {
8380 1017 : {
8381 1017 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8382 1017 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8383 1017 : if (res) return res;
8384 : }
8385 : }
8386 : break;
8387 : }
8388 0 : case ORDERED_EXPR:
8389 0 : {
8390 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8391 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8392 0 : if (integer_truep (_p1))
8393 : {
8394 0 : {
8395 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8396 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8397 0 : if (res) return res;
8398 : }
8399 : }
8400 0 : if (integer_zerop (_p1))
8401 : {
8402 0 : {
8403 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8404 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8405 0 : if (res) return res;
8406 : }
8407 : }
8408 : break;
8409 : }
8410 0 : case UNLT_EXPR:
8411 0 : {
8412 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8413 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8414 0 : if (integer_truep (_p1))
8415 : {
8416 0 : {
8417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8418 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8419 0 : if (res) return res;
8420 : }
8421 : }
8422 0 : if (integer_zerop (_p1))
8423 : {
8424 0 : {
8425 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8426 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8427 0 : if (res) return res;
8428 : }
8429 : }
8430 : break;
8431 : }
8432 0 : case UNLE_EXPR:
8433 0 : {
8434 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8435 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8436 0 : if (integer_truep (_p1))
8437 : {
8438 0 : {
8439 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8440 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8441 0 : if (res) return res;
8442 : }
8443 : }
8444 0 : if (integer_zerop (_p1))
8445 : {
8446 0 : {
8447 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8448 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8449 0 : if (res) return res;
8450 : }
8451 : }
8452 : break;
8453 : }
8454 0 : case UNGT_EXPR:
8455 0 : {
8456 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8457 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8458 0 : if (integer_truep (_p1))
8459 : {
8460 0 : {
8461 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8462 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8463 0 : if (res) return res;
8464 : }
8465 : }
8466 0 : if (integer_zerop (_p1))
8467 : {
8468 0 : {
8469 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8470 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8471 0 : if (res) return res;
8472 : }
8473 : }
8474 : break;
8475 : }
8476 0 : case UNGE_EXPR:
8477 0 : {
8478 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8479 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8480 0 : if (integer_truep (_p1))
8481 : {
8482 0 : {
8483 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8484 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8485 0 : if (res) return res;
8486 : }
8487 : }
8488 0 : if (integer_zerop (_p1))
8489 : {
8490 0 : {
8491 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8492 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8493 0 : if (res) return res;
8494 : }
8495 : }
8496 : break;
8497 : }
8498 0 : case UNEQ_EXPR:
8499 0 : {
8500 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8501 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8502 0 : if (integer_truep (_p1))
8503 : {
8504 0 : {
8505 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8506 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8507 0 : if (res) return res;
8508 : }
8509 : }
8510 0 : if (integer_zerop (_p1))
8511 : {
8512 0 : {
8513 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8514 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8515 0 : if (res) return res;
8516 : }
8517 : }
8518 : break;
8519 : }
8520 0 : case LTGT_EXPR:
8521 0 : {
8522 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8523 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8524 0 : if (integer_truep (_p1))
8525 : {
8526 0 : {
8527 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8528 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8529 0 : if (res) return res;
8530 : }
8531 : }
8532 0 : if (integer_zerop (_p1))
8533 : {
8534 0 : {
8535 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8536 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8537 0 : if (res) return res;
8538 : }
8539 : }
8540 : break;
8541 : }
8542 153523 : case MINUS_EXPR:
8543 153523 : {
8544 153523 : tree _q20 = TREE_OPERAND (_p0, 0);
8545 153523 : tree _q21 = TREE_OPERAND (_p0, 1);
8546 153523 : if (integer_zerop (_p1))
8547 : {
8548 57033 : {
8549 57033 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8550 57033 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
8551 57033 : if (res) return res;
8552 : }
8553 : }
8554 : break;
8555 : }
8556 30948 : case POINTER_DIFF_EXPR:
8557 30948 : {
8558 30948 : tree _q20 = TREE_OPERAND (_p0, 0);
8559 30948 : tree _q21 = TREE_OPERAND (_p0, 1);
8560 30948 : if (integer_zerop (_p1))
8561 : {
8562 1473 : {
8563 1473 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8564 1473 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, EQ_EXPR);
8565 1473 : if (res) return res;
8566 : }
8567 : }
8568 : break;
8569 : }
8570 64922 : case MULT_EXPR:
8571 64922 : {
8572 64922 : tree _q20 = TREE_OPERAND (_p0, 0);
8573 64922 : tree _q21 = TREE_OPERAND (_p0, 1);
8574 64922 : switch (TREE_CODE (_q21))
8575 : {
8576 57159 : case INTEGER_CST:
8577 57159 : {
8578 57159 : switch (TREE_CODE (_p1))
8579 : {
8580 9674 : case INTEGER_CST:
8581 9674 : {
8582 9674 : {
8583 9674 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8584 9674 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR);
8585 9674 : if (res) return res;
8586 : }
8587 8724 : break;
8588 : }
8589 56209 : default:;
8590 : }
8591 56209 : if (integer_zerop (_p1))
8592 : {
8593 4279 : {
8594 4279 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8595 4279 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8596 4279 : if (res) return res;
8597 : }
8598 : }
8599 : break;
8600 : }
8601 : default:;
8602 : }
8603 : break;
8604 : }
8605 26595569 : default:;
8606 : }
8607 26595569 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8608 : {
8609 90688 : {
8610 90688 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8611 90688 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, EQ_EXPR);
8612 90688 : if (res) return res;
8613 : }
8614 : }
8615 26509804 : switch (TREE_CODE (_p0))
8616 : {
8617 4841454 : CASE_CONVERT:
8618 4841454 : {
8619 4841454 : tree _q20 = TREE_OPERAND (_p0, 0);
8620 4841454 : switch (TREE_CODE (_p1))
8621 : {
8622 1184447 : CASE_CONVERT:
8623 1184447 : {
8624 1184447 : tree _q40 = TREE_OPERAND (_p1, 0);
8625 1184447 : {
8626 1184447 : tree _q40_pops[1];
8627 1184447 : if (tree_maybe_bit_not (_q40, _q40_pops))
8628 : {
8629 0 : tree _q50 = _q40_pops[0];
8630 0 : {
8631 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
8632 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR);
8633 0 : if (res) return res;
8634 : }
8635 : }
8636 : }
8637 1184447 : break;
8638 : }
8639 4841454 : default:;
8640 : }
8641 4841454 : {
8642 4841454 : tree _q20_pops[1];
8643 4841454 : if (tree_maybe_bit_not (_q20, _q20_pops))
8644 : {
8645 232 : tree _q30 = _q20_pops[0];
8646 232 : switch (TREE_CODE (_p1))
8647 : {
8648 74 : CASE_CONVERT:
8649 74 : {
8650 74 : tree _q50 = TREE_OPERAND (_p1, 0);
8651 74 : {
8652 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
8653 74 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR);
8654 74 : if (res) return res;
8655 : }
8656 74 : break;
8657 : }
8658 : default:;
8659 : }
8660 : }
8661 : }
8662 4841454 : break;
8663 : }
8664 26509804 : default:;
8665 : }
8666 26509804 : {
8667 26509804 : tree _p1_pops[1];
8668 26509804 : if (tree_maybe_bit_not (_p1, _p1_pops))
8669 : {
8670 19074304 : tree _q30 = _p1_pops[0];
8671 19074304 : {
8672 19074304 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8673 19074304 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR);
8674 19074304 : if (res) return res;
8675 : }
8676 : }
8677 : }
8678 26509802 : switch (TREE_CODE (_p0))
8679 : {
8680 404 : case BIT_NOT_EXPR:
8681 404 : {
8682 404 : tree _q20 = TREE_OPERAND (_p0, 0);
8683 404 : switch (TREE_CODE (_p1))
8684 : {
8685 1 : case BIT_NOT_EXPR:
8686 1 : {
8687 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8688 1 : {
8689 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8690 1 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8691 1 : if (res) return res;
8692 : }
8693 0 : break;
8694 : }
8695 403 : default:;
8696 : }
8697 403 : {
8698 403 : tree _p1_pops[1];
8699 403 : if (tree_nop_convert (_p1, _p1_pops))
8700 : {
8701 3 : tree _q40 = _p1_pops[0];
8702 3 : switch (TREE_CODE (_q40))
8703 : {
8704 0 : case BIT_NOT_EXPR:
8705 0 : {
8706 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8707 0 : {
8708 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8709 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8710 0 : if (res) return res;
8711 : }
8712 0 : break;
8713 : }
8714 : default:;
8715 : }
8716 : }
8717 : }
8718 403 : if (CONSTANT_CLASS_P (_p1))
8719 : {
8720 195 : {
8721 195 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8722 195 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8723 195 : if (res) return res;
8724 : }
8725 : }
8726 : break;
8727 : }
8728 26509606 : default:;
8729 : }
8730 26509606 : {
8731 26509606 : tree _p0_pops[1];
8732 26509606 : if (tree_maybe_bit_not (_p0, _p0_pops))
8733 : {
8734 94568 : tree _q20 = _p0_pops[0];
8735 94568 : {
8736 94568 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
8737 94568 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR);
8738 94568 : if (res) return res;
8739 : }
8740 : }
8741 : }
8742 26509605 : {
8743 26509605 : tree _p0_pops[1];
8744 26509605 : if (tree_nop_convert (_p0, _p0_pops))
8745 : {
8746 2764274 : tree _q20 = _p0_pops[0];
8747 2764274 : switch (TREE_CODE (_q20))
8748 : {
8749 41 : case BIT_NOT_EXPR:
8750 41 : {
8751 41 : tree _q30 = TREE_OPERAND (_q20, 0);
8752 41 : switch (TREE_CODE (_p1))
8753 : {
8754 0 : case BIT_NOT_EXPR:
8755 0 : {
8756 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8757 0 : {
8758 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8759 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR);
8760 0 : if (res) return res;
8761 : }
8762 0 : break;
8763 : }
8764 41 : default:;
8765 : }
8766 41 : {
8767 41 : tree _p1_pops[1];
8768 41 : if (tree_nop_convert (_p1, _p1_pops))
8769 : {
8770 0 : tree _q50 = _p1_pops[0];
8771 0 : switch (TREE_CODE (_q50))
8772 : {
8773 0 : case BIT_NOT_EXPR:
8774 0 : {
8775 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8776 0 : {
8777 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8778 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR);
8779 0 : if (res) return res;
8780 : }
8781 0 : break;
8782 : }
8783 : default:;
8784 : }
8785 : }
8786 : }
8787 41 : if (CONSTANT_CLASS_P (_p1))
8788 : {
8789 41 : {
8790 41 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8791 41 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8792 41 : if (res) return res;
8793 : }
8794 : }
8795 : break;
8796 : }
8797 : default:;
8798 : }
8799 : }
8800 : }
8801 26509564 : switch (TREE_CODE (_p1))
8802 : {
8803 928774 : case REAL_CST:
8804 928774 : {
8805 928774 : {
8806 928774 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8807 928774 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR);
8808 928774 : if (res) return res;
8809 : }
8810 927772 : break;
8811 : }
8812 26508562 : default:;
8813 : }
8814 26508562 : switch (TREE_CODE (_p0))
8815 : {
8816 647131 : case PLUS_EXPR:
8817 647131 : {
8818 647131 : tree _q20 = TREE_OPERAND (_p0, 0);
8819 647131 : tree _q21 = TREE_OPERAND (_p0, 1);
8820 647131 : switch (TREE_CODE (_q21))
8821 : {
8822 576 : case REAL_CST:
8823 576 : {
8824 576 : switch (TREE_CODE (_p1))
8825 : {
8826 405 : case REAL_CST:
8827 405 : {
8828 405 : {
8829 405 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8830 405 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
8831 405 : if (res) return res;
8832 : }
8833 405 : break;
8834 : }
8835 : default:;
8836 : }
8837 : break;
8838 : }
8839 : default:;
8840 : }
8841 : break;
8842 : }
8843 96490 : case MINUS_EXPR:
8844 96490 : {
8845 96490 : tree _q20 = TREE_OPERAND (_p0, 0);
8846 96490 : tree _q21 = TREE_OPERAND (_p0, 1);
8847 96490 : switch (TREE_CODE (_q21))
8848 : {
8849 60 : case REAL_CST:
8850 60 : {
8851 60 : switch (TREE_CODE (_p1))
8852 : {
8853 60 : case REAL_CST:
8854 60 : {
8855 60 : {
8856 60 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8857 60 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
8858 60 : if (res) return res;
8859 : }
8860 60 : break;
8861 : }
8862 : default:;
8863 : }
8864 : break;
8865 : }
8866 96490 : default:;
8867 : }
8868 96490 : switch (TREE_CODE (_q20))
8869 : {
8870 273 : case REAL_CST:
8871 273 : {
8872 273 : switch (TREE_CODE (_p1))
8873 : {
8874 245 : case REAL_CST:
8875 245 : {
8876 245 : {
8877 245 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8878 245 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
8879 245 : if (res) return res;
8880 : }
8881 244 : break;
8882 : }
8883 : default:;
8884 : }
8885 : break;
8886 : }
8887 : default:;
8888 : }
8889 : break;
8890 : }
8891 2632 : case FLOAT_EXPR:
8892 2632 : {
8893 2632 : tree _q20 = TREE_OPERAND (_p0, 0);
8894 2632 : switch (TREE_CODE (_p1))
8895 : {
8896 1 : case FLOAT_EXPR:
8897 1 : {
8898 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8899 1 : {
8900 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8901 1 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8902 1 : if (res) return res;
8903 : }
8904 0 : break;
8905 : }
8906 180 : case REAL_CST:
8907 180 : {
8908 180 : {
8909 180 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8910 180 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8911 180 : if (res) return res;
8912 : }
8913 149 : break;
8914 : }
8915 : default:;
8916 : }
8917 : break;
8918 : }
8919 6719 : case EXACT_DIV_EXPR:
8920 6719 : {
8921 6719 : tree _q20 = TREE_OPERAND (_p0, 0);
8922 6719 : tree _q21 = TREE_OPERAND (_p0, 1);
8923 6719 : switch (TREE_CODE (_p1))
8924 : {
8925 33 : case INTEGER_CST:
8926 33 : {
8927 33 : {
8928 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8929 33 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
8930 33 : if (res) return res;
8931 : }
8932 0 : break;
8933 : }
8934 : default:;
8935 : }
8936 : break;
8937 : }
8938 1029 : case NEGATE_EXPR:
8939 1029 : {
8940 1029 : tree _q20 = TREE_OPERAND (_p0, 0);
8941 1029 : switch (TREE_CODE (_p1))
8942 : {
8943 1 : case NEGATE_EXPR:
8944 1 : {
8945 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8946 1 : {
8947 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8948 1 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8949 1 : if (res) return res;
8950 : }
8951 0 : break;
8952 : }
8953 1028 : default:;
8954 : }
8955 1028 : if (CONSTANT_CLASS_P (_p1))
8956 : {
8957 210 : {
8958 210 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8959 210 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8960 210 : if (res) return res;
8961 : }
8962 : }
8963 : break;
8964 : }
8965 1372 : case ABS_EXPR:
8966 1372 : {
8967 1372 : tree _q20 = TREE_OPERAND (_p0, 0);
8968 1372 : if (zerop (_p1))
8969 : {
8970 66 : {
8971 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8972 66 : const enum tree_code eqne = EQ_EXPR;
8973 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1509;
8974 66 : {
8975 66 : tree res_op0;
8976 66 : res_op0 = captures[0];
8977 66 : tree res_op1;
8978 66 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8979 66 : tree _r;
8980 66 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8981 66 : if (TREE_SIDE_EFFECTS (captures[1]))
8982 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8983 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
8984 66 : return _r;
8985 : }
8986 0 : next_after_fail1509:;
8987 : }
8988 : }
8989 : break;
8990 : }
8991 1 : case ABSU_EXPR:
8992 1 : {
8993 1 : tree _q20 = TREE_OPERAND (_p0, 0);
8994 1 : if (zerop (_p1))
8995 : {
8996 0 : {
8997 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8998 0 : const enum tree_code eqne = EQ_EXPR;
8999 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1510;
9000 0 : {
9001 0 : tree res_op0;
9002 0 : res_op0 = captures[0];
9003 0 : tree res_op1;
9004 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
9005 0 : tree _r;
9006 0 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
9007 0 : if (TREE_SIDE_EFFECTS (captures[1]))
9008 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
9009 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
9010 0 : return _r;
9011 : }
9012 0 : next_after_fail1510:;
9013 : }
9014 : }
9015 : break;
9016 : }
9017 4841377 : CASE_CONVERT:
9018 4841377 : {
9019 4841377 : tree _q20 = TREE_OPERAND (_p0, 0);
9020 4841377 : switch (TREE_CODE (_p1))
9021 : {
9022 1184447 : CASE_CONVERT:
9023 1184447 : {
9024 1184447 : tree _q40 = TREE_OPERAND (_p1, 0);
9025 1184447 : {
9026 1184447 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9027 1184447 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
9028 1184447 : if (res) return res;
9029 : }
9030 551704 : break;
9031 : }
9032 4208634 : default:;
9033 : }
9034 4208634 : {
9035 4208634 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
9036 4208634 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR);
9037 4208634 : if (res) return res;
9038 : }
9039 2134688 : switch (TREE_CODE (_q20))
9040 : {
9041 3 : case BIT_IOR_EXPR:
9042 3 : {
9043 3 : tree _q30 = TREE_OPERAND (_q20, 0);
9044 3 : tree _q31 = TREE_OPERAND (_q20, 1);
9045 3 : switch (TREE_CODE (_q31))
9046 : {
9047 0 : case INTEGER_CST:
9048 0 : {
9049 0 : switch (TREE_CODE (_p1))
9050 : {
9051 0 : case INTEGER_CST:
9052 0 : {
9053 0 : {
9054 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9055 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR);
9056 0 : if (res) return res;
9057 : }
9058 0 : break;
9059 : }
9060 : default:;
9061 : }
9062 : break;
9063 : }
9064 : default:;
9065 : }
9066 : break;
9067 : }
9068 : default:;
9069 : }
9070 : break;
9071 : }
9072 8859118 : case SSA_NAME:
9073 8859118 : {
9074 8859118 : switch (TREE_CODE (_p1))
9075 : {
9076 799935 : case ADDR_EXPR:
9077 799935 : {
9078 799935 : {
9079 799935 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9080 799935 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
9081 799935 : if (res) return res;
9082 : }
9083 799935 : break;
9084 : }
9085 : default:;
9086 : }
9087 : break;
9088 : }
9089 33696 : case BIT_IOR_EXPR:
9090 33696 : {
9091 33696 : tree _q20 = TREE_OPERAND (_p0, 0);
9092 33696 : tree _q21 = TREE_OPERAND (_p0, 1);
9093 33696 : switch (TREE_CODE (_q21))
9094 : {
9095 1507 : case INTEGER_CST:
9096 1507 : {
9097 1507 : switch (TREE_CODE (_p1))
9098 : {
9099 464 : case INTEGER_CST:
9100 464 : {
9101 464 : {
9102 464 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9103 464 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR);
9104 464 : if (res) return res;
9105 : }
9106 464 : break;
9107 : }
9108 : default:;
9109 : }
9110 : break;
9111 : }
9112 : default:;
9113 : }
9114 : break;
9115 : }
9116 577 : case BIT_XOR_EXPR:
9117 577 : {
9118 577 : tree _q20 = TREE_OPERAND (_p0, 0);
9119 577 : tree _q21 = TREE_OPERAND (_p0, 1);
9120 577 : if (integer_zerop (_p1))
9121 : {
9122 163 : {
9123 163 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9124 163 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9125 163 : if (res) return res;
9126 : }
9127 : }
9128 414 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9129 : {
9130 29 : {
9131 29 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9132 29 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9133 29 : if (res) return res;
9134 : }
9135 : }
9136 385 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9137 : {
9138 30 : {
9139 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9140 30 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9141 30 : if (res) return res;
9142 : }
9143 : }
9144 : break;
9145 : }
9146 1936664 : case CALL_EXPR:
9147 1936664 : switch (get_call_combined_fn (_p0))
9148 : {
9149 3 : case CFN_BUILT_IN_SQRTF:
9150 3 : if (call_expr_nargs (_p0) == 1)
9151 : {
9152 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9153 3 : switch (TREE_CODE (_p1))
9154 : {
9155 0 : case REAL_CST:
9156 0 : {
9157 0 : {
9158 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9159 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
9160 0 : if (res) return res;
9161 : }
9162 0 : break;
9163 : }
9164 3 : case CALL_EXPR:
9165 3 : switch (get_call_combined_fn (_p1))
9166 : {
9167 3 : case CFN_BUILT_IN_SQRTF:
9168 3 : if (call_expr_nargs (_p1) == 1)
9169 : {
9170 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9171 3 : {
9172 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9173 3 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
9174 3 : if (res) return res;
9175 : }
9176 : }
9177 : break;
9178 : default:;
9179 : }
9180 : break;
9181 : default:;
9182 : }
9183 : }
9184 : break;
9185 3 : case CFN_BUILT_IN_SQRTL:
9186 3 : if (call_expr_nargs (_p0) == 1)
9187 : {
9188 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9189 3 : switch (TREE_CODE (_p1))
9190 : {
9191 0 : case REAL_CST:
9192 0 : {
9193 0 : {
9194 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9195 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
9196 0 : if (res) return res;
9197 : }
9198 0 : break;
9199 : }
9200 3 : case CALL_EXPR:
9201 3 : switch (get_call_combined_fn (_p1))
9202 : {
9203 3 : case CFN_BUILT_IN_SQRTL:
9204 3 : if (call_expr_nargs (_p1) == 1)
9205 : {
9206 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9207 3 : {
9208 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9209 3 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
9210 3 : if (res) return res;
9211 : }
9212 : }
9213 : break;
9214 : default:;
9215 : }
9216 : break;
9217 : default:;
9218 : }
9219 : }
9220 : break;
9221 0 : case CFN_BUILT_IN_SQRT:
9222 0 : if (call_expr_nargs (_p0) == 1)
9223 : {
9224 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9225 0 : switch (TREE_CODE (_p1))
9226 : {
9227 0 : case REAL_CST:
9228 0 : {
9229 0 : {
9230 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9231 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
9232 0 : if (res) return res;
9233 : }
9234 0 : break;
9235 : }
9236 0 : case CALL_EXPR:
9237 0 : switch (get_call_combined_fn (_p1))
9238 : {
9239 0 : case CFN_BUILT_IN_SQRT:
9240 0 : if (call_expr_nargs (_p1) == 1)
9241 : {
9242 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9243 0 : {
9244 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9245 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
9246 0 : if (res) return res;
9247 : }
9248 : }
9249 : break;
9250 : default:;
9251 : }
9252 : break;
9253 : default:;
9254 : }
9255 : }
9256 : break;
9257 0 : case CFN_SQRT:
9258 0 : if (call_expr_nargs (_p0) == 1)
9259 : {
9260 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9261 0 : switch (TREE_CODE (_p1))
9262 : {
9263 0 : case REAL_CST:
9264 0 : {
9265 0 : {
9266 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9267 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
9268 0 : if (res) return res;
9269 : }
9270 0 : break;
9271 : }
9272 0 : case CALL_EXPR:
9273 0 : switch (get_call_combined_fn (_p1))
9274 : {
9275 0 : case CFN_SQRT:
9276 0 : if (call_expr_nargs (_p1) == 1)
9277 : {
9278 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9279 0 : {
9280 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9281 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
9282 0 : if (res) return res;
9283 : }
9284 : }
9285 : break;
9286 : default:;
9287 : }
9288 : break;
9289 : default:;
9290 : }
9291 : }
9292 : break;
9293 : default:;
9294 : }
9295 : break;
9296 23801318 : default:;
9297 : }
9298 23801318 : switch (TREE_CODE (_p1))
9299 : {
9300 22 : case BIT_XOR_EXPR:
9301 22 : {
9302 22 : tree _q30 = TREE_OPERAND (_p1, 0);
9303 22 : tree _q31 = TREE_OPERAND (_p1, 1);
9304 22 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9305 : {
9306 0 : {
9307 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9308 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9309 0 : if (res) return res;
9310 : }
9311 : }
9312 22 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9313 : {
9314 0 : {
9315 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9316 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9317 0 : if (res) return res;
9318 : }
9319 : }
9320 : break;
9321 : }
9322 23801318 : default:;
9323 : }
9324 23801318 : switch (TREE_CODE (_p0))
9325 : {
9326 825575 : case BIT_AND_EXPR:
9327 825575 : {
9328 825575 : tree _q20 = TREE_OPERAND (_p0, 0);
9329 825575 : tree _q21 = TREE_OPERAND (_p0, 1);
9330 825575 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9331 : {
9332 131 : {
9333 131 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9334 131 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9335 131 : if (res) return res;
9336 : }
9337 : }
9338 825574 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9339 : {
9340 141241 : {
9341 141241 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9342 141241 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9343 141241 : if (res) return res;
9344 : }
9345 : }
9346 : break;
9347 : }
9348 23801317 : default:;
9349 : }
9350 23801317 : switch (TREE_CODE (_p1))
9351 : {
9352 24609 : case BIT_AND_EXPR:
9353 24609 : {
9354 24609 : tree _q30 = TREE_OPERAND (_p1, 0);
9355 24609 : tree _q31 = TREE_OPERAND (_p1, 1);
9356 24609 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9357 : {
9358 0 : {
9359 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9360 0 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9361 0 : if (res) return res;
9362 : }
9363 : }
9364 24609 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9365 : {
9366 0 : {
9367 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9368 0 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9369 0 : if (res) return res;
9370 : }
9371 : }
9372 : break;
9373 : }
9374 23801317 : default:;
9375 : }
9376 23801317 : switch (TREE_CODE (_p0))
9377 : {
9378 2134688 : CASE_CONVERT:
9379 2134688 : {
9380 2134688 : tree _q20 = TREE_OPERAND (_p0, 0);
9381 2134688 : switch (TREE_CODE (_q20))
9382 : {
9383 2 : case BIT_AND_EXPR:
9384 2 : {
9385 2 : tree _q30 = TREE_OPERAND (_q20, 0);
9386 2 : tree _q31 = TREE_OPERAND (_q20, 1);
9387 2 : switch (TREE_CODE (_q30))
9388 : {
9389 0 : CASE_CONVERT:
9390 0 : {
9391 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9392 0 : switch (TREE_CODE (_q31))
9393 : {
9394 0 : case INTEGER_CST:
9395 0 : {
9396 0 : switch (TREE_CODE (_p1))
9397 : {
9398 0 : CASE_CONVERT:
9399 0 : {
9400 0 : tree _q70 = TREE_OPERAND (_p1, 0);
9401 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
9402 : {
9403 0 : {
9404 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
9405 0 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
9406 0 : if (res) return res;
9407 : }
9408 : }
9409 : break;
9410 : }
9411 : default:;
9412 : }
9413 : break;
9414 : }
9415 : default:;
9416 : }
9417 : break;
9418 : }
9419 : default:;
9420 : }
9421 : break;
9422 : }
9423 2134688 : default:;
9424 : }
9425 2134688 : switch (TREE_CODE (_p1))
9426 : {
9427 551704 : CASE_CONVERT:
9428 551704 : {
9429 551704 : tree _q40 = TREE_OPERAND (_p1, 0);
9430 551704 : switch (TREE_CODE (_q40))
9431 : {
9432 7 : case BIT_AND_EXPR:
9433 7 : {
9434 7 : tree _q50 = TREE_OPERAND (_q40, 0);
9435 7 : tree _q51 = TREE_OPERAND (_q40, 1);
9436 7 : switch (TREE_CODE (_q50))
9437 : {
9438 7 : CASE_CONVERT:
9439 7 : {
9440 7 : tree _q60 = TREE_OPERAND (_q50, 0);
9441 7 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9442 : {
9443 0 : switch (TREE_CODE (_q51))
9444 : {
9445 0 : case INTEGER_CST:
9446 0 : {
9447 0 : {
9448 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
9449 0 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
9450 0 : if (res) return res;
9451 : }
9452 0 : break;
9453 : }
9454 : default:;
9455 : }
9456 : }
9457 : break;
9458 : }
9459 : default:;
9460 : }
9461 : break;
9462 : }
9463 : default:;
9464 : }
9465 : break;
9466 : }
9467 : default:;
9468 : }
9469 : break;
9470 : }
9471 33696 : case BIT_IOR_EXPR:
9472 33696 : {
9473 33696 : tree _q20 = TREE_OPERAND (_p0, 0);
9474 33696 : tree _q21 = TREE_OPERAND (_p0, 1);
9475 33696 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9476 : {
9477 24 : {
9478 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9479 24 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9480 24 : if (res) return res;
9481 : }
9482 : }
9483 33696 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9484 : {
9485 46 : {
9486 46 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9487 46 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9488 46 : if (res) return res;
9489 : }
9490 : }
9491 : break;
9492 : }
9493 23801317 : default:;
9494 : }
9495 23801317 : switch (TREE_CODE (_p1))
9496 : {
9497 618 : case BIT_IOR_EXPR:
9498 618 : {
9499 618 : tree _q30 = TREE_OPERAND (_p1, 0);
9500 618 : tree _q31 = TREE_OPERAND (_p1, 1);
9501 618 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9502 : {
9503 0 : {
9504 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
9505 0 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9506 0 : if (res) return res;
9507 : }
9508 : }
9509 618 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9510 : {
9511 0 : {
9512 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
9513 0 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9514 0 : if (res) return res;
9515 : }
9516 : }
9517 : break;
9518 : }
9519 23801317 : default:;
9520 : }
9521 23801317 : switch (TREE_CODE (_p0))
9522 : {
9523 2134688 : CASE_CONVERT:
9524 2134688 : {
9525 2134688 : tree _q20 = TREE_OPERAND (_p0, 0);
9526 2134688 : switch (TREE_CODE (_q20))
9527 : {
9528 980 : case BIT_XOR_EXPR:
9529 980 : {
9530 980 : tree _q30 = TREE_OPERAND (_q20, 0);
9531 980 : tree _q31 = TREE_OPERAND (_q20, 1);
9532 980 : switch (TREE_CODE (_q31))
9533 : {
9534 7 : case INTEGER_CST:
9535 7 : {
9536 7 : switch (TREE_CODE (_p1))
9537 : {
9538 0 : case INTEGER_CST:
9539 0 : {
9540 0 : {
9541 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9542 0 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9543 0 : if (res) return res;
9544 : }
9545 0 : break;
9546 : }
9547 : default:;
9548 : }
9549 : break;
9550 : }
9551 : default:;
9552 : }
9553 : break;
9554 : }
9555 : default:;
9556 : }
9557 : break;
9558 : }
9559 355 : case BIT_XOR_EXPR:
9560 355 : {
9561 355 : tree _q20 = TREE_OPERAND (_p0, 0);
9562 355 : tree _q21 = TREE_OPERAND (_p0, 1);
9563 355 : switch (TREE_CODE (_q21))
9564 : {
9565 103 : case INTEGER_CST:
9566 103 : {
9567 103 : switch (TREE_CODE (_p1))
9568 : {
9569 16 : case INTEGER_CST:
9570 16 : {
9571 16 : {
9572 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9573 16 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9574 16 : if (res) return res;
9575 : }
9576 0 : break;
9577 : }
9578 : default:;
9579 : }
9580 : break;
9581 : }
9582 : default:;
9583 : }
9584 : break;
9585 : }
9586 23801301 : default:;
9587 : }
9588 23801301 : {
9589 23801301 : tree _p0_pops[1];
9590 23801301 : if (tree_nop_convert (_p0, _p0_pops))
9591 : {
9592 1781755 : tree _q20 = _p0_pops[0];
9593 1781755 : if (integer_zerop (_p1))
9594 : {
9595 670573 : {
9596 670573 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9597 670573 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
9598 670573 : if (res) return res;
9599 : }
9600 : }
9601 : }
9602 : }
9603 23274372 : if (integer_zerop (_p1))
9604 : {
9605 9604238 : {
9606 9604238 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9607 9604238 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
9608 9604238 : if (res) return res;
9609 : }
9610 : }
9611 23200272 : switch (TREE_CODE (_p0))
9612 : {
9613 825574 : case BIT_AND_EXPR:
9614 825574 : {
9615 825574 : tree _q20 = TREE_OPERAND (_p0, 0);
9616 825574 : tree _q21 = TREE_OPERAND (_p0, 1);
9617 825574 : switch (TREE_CODE (_p1))
9618 : {
9619 24331 : case BIT_AND_EXPR:
9620 24331 : {
9621 24331 : tree _q50 = TREE_OPERAND (_p1, 0);
9622 24331 : tree _q51 = TREE_OPERAND (_p1, 1);
9623 24331 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9624 : {
9625 23806 : {
9626 23806 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9627 23806 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9628 23806 : if (res) return res;
9629 : }
9630 : }
9631 525 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9632 : {
9633 28 : {
9634 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9635 28 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9636 28 : if (res) return res;
9637 : }
9638 : }
9639 497 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9640 : {
9641 28 : {
9642 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
9643 28 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9644 28 : if (res) return res;
9645 : }
9646 : }
9647 469 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9648 : {
9649 28 : {
9650 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
9651 28 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9652 28 : if (res) return res;
9653 : }
9654 : }
9655 : break;
9656 : }
9657 801684 : default:;
9658 : }
9659 801684 : if (integer_pow2p (_q21))
9660 : {
9661 279654 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9662 : {
9663 108475 : {
9664 108475 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9665 108475 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
9666 108475 : if (res) return res;
9667 : }
9668 : }
9669 : }
9670 693229 : switch (TREE_CODE (_q20))
9671 : {
9672 46515 : CASE_CONVERT:
9673 46515 : {
9674 46515 : tree _q30 = TREE_OPERAND (_q20, 0);
9675 46515 : if (integer_pow2p (_q21))
9676 : {
9677 9446 : if (integer_zerop (_p1))
9678 : {
9679 9444 : {
9680 9444 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
9681 9444 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9682 9444 : if (res) return res;
9683 : }
9684 : }
9685 : }
9686 : break;
9687 : }
9688 692272 : default:;
9689 : }
9690 692272 : if (integer_pow2p (_q21))
9691 : {
9692 170242 : if (integer_zerop (_p1))
9693 : {
9694 170101 : {
9695 170101 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
9696 170101 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9697 170101 : if (res) return res;
9698 : }
9699 : }
9700 : }
9701 : break;
9702 : }
9703 1211 : case GE_EXPR:
9704 1211 : {
9705 1211 : tree _q20 = TREE_OPERAND (_p0, 0);
9706 1211 : tree _q21 = TREE_OPERAND (_p0, 1);
9707 1211 : if (integer_zerop (_q21))
9708 : {
9709 98 : switch (TREE_CODE (_p1))
9710 : {
9711 5 : case GE_EXPR:
9712 5 : {
9713 5 : tree _q50 = TREE_OPERAND (_p1, 0);
9714 5 : tree _q51 = TREE_OPERAND (_p1, 1);
9715 5 : if (integer_zerop (_q51))
9716 : {
9717 5 : {
9718 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9719 5 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
9720 5 : if (res) return res;
9721 : }
9722 : }
9723 : break;
9724 : }
9725 1 : case LT_EXPR:
9726 1 : {
9727 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9728 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9729 1 : if (integer_zerop (_q51))
9730 : {
9731 1 : {
9732 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
9733 1 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9734 1 : if (res) return res;
9735 : }
9736 : }
9737 : break;
9738 : }
9739 : default:;
9740 : }
9741 : }
9742 : break;
9743 : }
9744 837 : case LT_EXPR:
9745 837 : {
9746 837 : tree _q20 = TREE_OPERAND (_p0, 0);
9747 837 : tree _q21 = TREE_OPERAND (_p0, 1);
9748 837 : if (integer_zerop (_q21))
9749 : {
9750 140 : switch (TREE_CODE (_p1))
9751 : {
9752 11 : case LT_EXPR:
9753 11 : {
9754 11 : tree _q50 = TREE_OPERAND (_p1, 0);
9755 11 : tree _q51 = TREE_OPERAND (_p1, 1);
9756 11 : if (integer_zerop (_q51))
9757 : {
9758 9 : {
9759 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9760 9 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
9761 9 : if (res) return res;
9762 : }
9763 : }
9764 : break;
9765 : }
9766 1 : case GE_EXPR:
9767 1 : {
9768 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9769 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9770 1 : if (integer_zerop (_q51))
9771 : {
9772 1 : {
9773 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9774 1 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9775 1 : if (res) return res;
9776 : }
9777 : }
9778 : break;
9779 : }
9780 : default:;
9781 : }
9782 : }
9783 : break;
9784 : }
9785 33696 : case BIT_IOR_EXPR:
9786 33696 : {
9787 33696 : tree _q20 = TREE_OPERAND (_p0, 0);
9788 33696 : tree _q21 = TREE_OPERAND (_p0, 1);
9789 33696 : switch (TREE_CODE (_q21))
9790 : {
9791 658 : CASE_CONVERT:
9792 658 : {
9793 658 : tree _q40 = TREE_OPERAND (_q21, 0);
9794 658 : switch (TREE_CODE (_q40))
9795 : {
9796 0 : case NE_EXPR:
9797 0 : {
9798 0 : tree _q50 = TREE_OPERAND (_q40, 0);
9799 0 : tree _q51 = TREE_OPERAND (_q40, 1);
9800 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9801 : {
9802 0 : if (integer_zerop (_q51))
9803 : {
9804 0 : if (integer_zerop (_p1))
9805 : {
9806 0 : {
9807 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9808 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9809 0 : if (res) return res;
9810 : }
9811 : }
9812 : }
9813 : }
9814 : break;
9815 : }
9816 : default:;
9817 : }
9818 : break;
9819 : }
9820 33696 : default:;
9821 : }
9822 33696 : switch (TREE_CODE (_q20))
9823 : {
9824 643 : CASE_CONVERT:
9825 643 : {
9826 643 : tree _q30 = TREE_OPERAND (_q20, 0);
9827 643 : switch (TREE_CODE (_q30))
9828 : {
9829 0 : case NE_EXPR:
9830 0 : {
9831 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9832 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9833 0 : if (integer_zerop (_q41))
9834 : {
9835 0 : if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
9836 : {
9837 0 : if (integer_zerop (_p1))
9838 : {
9839 0 : {
9840 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
9841 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9842 0 : if (res) return res;
9843 : }
9844 : }
9845 : }
9846 : }
9847 : break;
9848 : }
9849 : default:;
9850 : }
9851 : break;
9852 : }
9853 33696 : default:;
9854 : }
9855 33696 : switch (TREE_CODE (_q21))
9856 : {
9857 1 : case NE_EXPR:
9858 1 : {
9859 1 : tree _q40 = TREE_OPERAND (_q21, 0);
9860 1 : tree _q41 = TREE_OPERAND (_q21, 1);
9861 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
9862 : {
9863 0 : if (integer_zerop (_q41))
9864 : {
9865 0 : if (integer_zerop (_p1))
9866 : {
9867 0 : {
9868 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9869 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9870 0 : if (res) return res;
9871 : }
9872 : }
9873 : }
9874 : }
9875 : break;
9876 : }
9877 33696 : default:;
9878 : }
9879 33696 : switch (TREE_CODE (_q20))
9880 : {
9881 8 : case NE_EXPR:
9882 8 : {
9883 8 : tree _q30 = TREE_OPERAND (_q20, 0);
9884 8 : tree _q31 = TREE_OPERAND (_q20, 1);
9885 8 : if (integer_zerop (_q31))
9886 : {
9887 0 : if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
9888 : {
9889 0 : if (integer_zerop (_p1))
9890 : {
9891 0 : {
9892 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
9893 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9894 0 : if (res) return res;
9895 : }
9896 : }
9897 : }
9898 : }
9899 : break;
9900 : }
9901 : default:;
9902 : }
9903 : break;
9904 : }
9905 1607756 : CASE_CONVERT:
9906 1607756 : {
9907 1607756 : tree _q20 = TREE_OPERAND (_p0, 0);
9908 1607756 : switch (TREE_CODE (_q20))
9909 : {
9910 221191 : case ADDR_EXPR:
9911 221191 : {
9912 221191 : switch (TREE_CODE (_p1))
9913 : {
9914 193081 : CASE_CONVERT:
9915 193081 : {
9916 193081 : tree _q40 = TREE_OPERAND (_p1, 0);
9917 193081 : switch (TREE_CODE (_q40))
9918 : {
9919 193081 : case ADDR_EXPR:
9920 193081 : {
9921 193081 : {
9922 193081 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
9923 193081 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, EQ_EXPR);
9924 193081 : if (res) return res;
9925 : }
9926 30 : break;
9927 : }
9928 : default:;
9929 : }
9930 : break;
9931 : }
9932 20883 : case ADDR_EXPR:
9933 20883 : {
9934 20883 : {
9935 20883 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9936 20883 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, EQ_EXPR);
9937 20883 : if (res) return res;
9938 : }
9939 7896 : break;
9940 : }
9941 : default:;
9942 : }
9943 : break;
9944 : }
9945 : default:;
9946 : }
9947 : break;
9948 : }
9949 18467 : case ADDR_EXPR:
9950 18467 : {
9951 18467 : switch (TREE_CODE (_p1))
9952 : {
9953 119 : CASE_CONVERT:
9954 119 : {
9955 119 : tree _q30 = TREE_OPERAND (_p1, 0);
9956 119 : switch (TREE_CODE (_q30))
9957 : {
9958 119 : case ADDR_EXPR:
9959 119 : {
9960 119 : {
9961 119 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
9962 119 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR);
9963 119 : if (res) return res;
9964 : }
9965 0 : break;
9966 : }
9967 : default:;
9968 : }
9969 : break;
9970 : }
9971 15972 : case ADDR_EXPR:
9972 15972 : {
9973 15972 : {
9974 15972 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9975 15972 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR);
9976 15972 : if (res) return res;
9977 : }
9978 7100 : break;
9979 : }
9980 : default:;
9981 : }
9982 : break;
9983 : }
9984 22851633 : default:;
9985 : }
9986 22851633 : {
9987 22851633 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9988 22851633 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
9989 22851633 : if (res) return res;
9990 : }
9991 22848502 : switch (TREE_CODE (_p0))
9992 : {
9993 1401718 : CASE_CONVERT:
9994 1401718 : {
9995 1401718 : tree _q20 = TREE_OPERAND (_p0, 0);
9996 1401718 : switch (TREE_CODE (_p1))
9997 : {
9998 251568 : case INTEGER_CST:
9999 251568 : {
10000 251568 : {
10001 251568 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10002 251568 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR);
10003 251568 : if (res) return res;
10004 : }
10005 250197 : break;
10006 : }
10007 1400347 : default:;
10008 : }
10009 1400347 : switch (TREE_CODE (_q20))
10010 : {
10011 0 : case NE_EXPR:
10012 0 : {
10013 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10014 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10015 0 : switch (TREE_CODE (_q31))
10016 : {
10017 0 : case INTEGER_CST:
10018 0 : {
10019 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10020 : {
10021 0 : {
10022 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10023 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
10024 0 : if (res) return res;
10025 : }
10026 : }
10027 : break;
10028 : }
10029 : default:;
10030 : }
10031 : break;
10032 : }
10033 0 : case EQ_EXPR:
10034 0 : {
10035 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10036 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10037 0 : switch (TREE_CODE (_q31))
10038 : {
10039 0 : case INTEGER_CST:
10040 0 : {
10041 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10042 : {
10043 0 : {
10044 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10045 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10046 0 : if (res) return res;
10047 : }
10048 : }
10049 : break;
10050 : }
10051 : default:;
10052 : }
10053 : break;
10054 : }
10055 : default:;
10056 : }
10057 : break;
10058 : }
10059 22847131 : default:;
10060 : }
10061 22847131 : switch (TREE_CODE (_p1))
10062 : {
10063 646962 : CASE_CONVERT:
10064 646962 : {
10065 646962 : tree _q30 = TREE_OPERAND (_p1, 0);
10066 646962 : switch (TREE_CODE (_q30))
10067 : {
10068 0 : case NE_EXPR:
10069 0 : {
10070 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10071 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10072 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10073 : {
10074 0 : switch (TREE_CODE (_q41))
10075 : {
10076 0 : case INTEGER_CST:
10077 0 : {
10078 0 : {
10079 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10080 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
10081 0 : if (res) return res;
10082 : }
10083 0 : break;
10084 : }
10085 : default:;
10086 : }
10087 : }
10088 : break;
10089 : }
10090 0 : case EQ_EXPR:
10091 0 : {
10092 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10093 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10094 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10095 : {
10096 0 : switch (TREE_CODE (_q41))
10097 : {
10098 0 : case INTEGER_CST:
10099 0 : {
10100 0 : {
10101 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10102 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10103 0 : if (res) return res;
10104 : }
10105 0 : break;
10106 : }
10107 : default:;
10108 : }
10109 : }
10110 : break;
10111 : }
10112 : default:;
10113 : }
10114 : break;
10115 : }
10116 22847131 : default:;
10117 : }
10118 22847131 : if (integer_onep (_p1))
10119 : {
10120 1735280 : {
10121 1735280 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10122 1735280 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
10123 1735280 : && types_match (type, TREE_TYPE (captures[0]))
10124 : )
10125 : {
10126 113958 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1511;
10127 113958 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
10128 113958 : {
10129 113958 : tree res_op0;
10130 113958 : res_op0 = captures[0];
10131 113958 : tree _r;
10132 113958 : _r = non_lvalue_loc (loc, res_op0);
10133 113958 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
10134 113958 : return _r;
10135 : }
10136 : next_after_fail1511:;
10137 : }
10138 : }
10139 : }
10140 22733173 : switch (TREE_CODE (_p0))
10141 : {
10142 691980 : case BIT_AND_EXPR:
10143 691980 : {
10144 691980 : tree _q20 = TREE_OPERAND (_p0, 0);
10145 691980 : tree _q21 = TREE_OPERAND (_p0, 1);
10146 691980 : switch (TREE_CODE (_q21))
10147 : {
10148 420 : case VECTOR_CST:
10149 420 : {
10150 420 : if (integer_zerop (_p1))
10151 : {
10152 393 : {
10153 393 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10154 393 : const enum tree_code cmp = EQ_EXPR;
10155 393 : const enum tree_code icmp = LE_EXPR;
10156 393 : {
10157 393 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10158 393 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10159 : )
10160 : {
10161 2 : {
10162 2 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10163 2 : ? optab_vector : optab_default;
10164 2 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10165 2 : if (target_supports_op_p (utype, icmp, optab)
10166 2 : || (optimize_vectors_before_lowering_p ()
10167 2 : && (!target_supports_op_p (type, cmp, optab)
10168 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10169 : )
10170 : {
10171 2 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10172 : )
10173 : {
10174 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1512;
10175 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
10176 2 : {
10177 2 : tree res_op0;
10178 2 : res_op0 = captures[1];
10179 2 : tree res_op1;
10180 2 : res_op1 = csts;
10181 2 : tree _r;
10182 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10183 2 : if (TREE_SIDE_EFFECTS (captures[2]))
10184 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10185 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
10186 2 : return _r;
10187 : }
10188 391 : next_after_fail1512:;
10189 : }
10190 : else
10191 : {
10192 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1513;
10193 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
10194 0 : {
10195 0 : tree res_op0;
10196 0 : {
10197 0 : tree _o1[1], _r1;
10198 0 : _o1[0] = captures[1];
10199 0 : if (TREE_TYPE (_o1[0]) != utype)
10200 : {
10201 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10202 : }
10203 : else
10204 : _r1 = _o1[0];
10205 0 : res_op0 = _r1;
10206 : }
10207 0 : tree res_op1;
10208 0 : res_op1 = csts;
10209 0 : tree _r;
10210 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10211 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10212 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10213 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
10214 0 : return _r;
10215 : }
10216 391 : next_after_fail1513:;
10217 : }
10218 : }
10219 : }
10220 : }
10221 : }
10222 : }
10223 : }
10224 : break;
10225 : }
10226 630784 : case INTEGER_CST:
10227 630784 : {
10228 630784 : if (integer_zerop (_p1))
10229 : {
10230 521956 : {
10231 521956 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10232 521956 : const enum tree_code cmp = EQ_EXPR;
10233 521956 : const enum tree_code icmp = LE_EXPR;
10234 521956 : {
10235 521956 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10236 521956 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10237 : )
10238 : {
10239 1046 : {
10240 1046 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10241 1046 : ? optab_vector : optab_default;
10242 1046 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10243 1046 : if (target_supports_op_p (utype, icmp, optab)
10244 1046 : || (optimize_vectors_before_lowering_p ()
10245 902 : && (!target_supports_op_p (type, cmp, optab)
10246 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10247 : )
10248 : {
10249 902 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10250 : )
10251 : {
10252 613 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1514;
10253 613 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
10254 613 : {
10255 613 : tree res_op0;
10256 613 : res_op0 = captures[1];
10257 613 : tree res_op1;
10258 613 : res_op1 = csts;
10259 613 : tree _r;
10260 613 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10261 613 : if (TREE_SIDE_EFFECTS (captures[2]))
10262 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10263 613 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
10264 613 : return _r;
10265 : }
10266 521054 : next_after_fail1514:;
10267 : }
10268 : else
10269 : {
10270 289 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1515;
10271 289 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
10272 289 : {
10273 289 : tree res_op0;
10274 289 : {
10275 289 : tree _o1[1], _r1;
10276 289 : _o1[0] = captures[1];
10277 289 : if (TREE_TYPE (_o1[0]) != utype)
10278 : {
10279 289 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10280 : }
10281 : else
10282 : _r1 = _o1[0];
10283 289 : res_op0 = _r1;
10284 : }
10285 289 : tree res_op1;
10286 289 : res_op1 = csts;
10287 289 : tree _r;
10288 289 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10289 289 : if (TREE_SIDE_EFFECTS (captures[2]))
10290 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10291 289 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
10292 289 : return _r;
10293 : }
10294 521054 : next_after_fail1515:;
10295 : }
10296 : }
10297 : }
10298 : }
10299 : }
10300 : }
10301 : }
10302 : break;
10303 : }
10304 691076 : default:;
10305 : }
10306 691076 : switch (TREE_CODE (_q20))
10307 : {
10308 0 : case VECTOR_CST:
10309 0 : {
10310 0 : if (integer_zerop (_p1))
10311 : {
10312 0 : {
10313 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10314 0 : const enum tree_code cmp = EQ_EXPR;
10315 0 : const enum tree_code icmp = LE_EXPR;
10316 0 : {
10317 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10318 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10319 : )
10320 : {
10321 0 : {
10322 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10323 0 : ? optab_vector : optab_default;
10324 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10325 0 : if (target_supports_op_p (utype, icmp, optab)
10326 0 : || (optimize_vectors_before_lowering_p ()
10327 0 : && (!target_supports_op_p (type, cmp, optab)
10328 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10329 : )
10330 : {
10331 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10332 : )
10333 : {
10334 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1516;
10335 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
10336 0 : {
10337 0 : tree res_op0;
10338 0 : res_op0 = captures[1];
10339 0 : tree res_op1;
10340 0 : res_op1 = csts;
10341 0 : tree _r;
10342 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10343 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10344 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10345 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
10346 0 : return _r;
10347 : }
10348 0 : next_after_fail1516:;
10349 : }
10350 : else
10351 : {
10352 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1517;
10353 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
10354 0 : {
10355 0 : tree res_op0;
10356 0 : {
10357 0 : tree _o1[1], _r1;
10358 0 : _o1[0] = captures[1];
10359 0 : if (TREE_TYPE (_o1[0]) != utype)
10360 : {
10361 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10362 : }
10363 : else
10364 : _r1 = _o1[0];
10365 0 : res_op0 = _r1;
10366 : }
10367 0 : tree res_op1;
10368 0 : res_op1 = csts;
10369 0 : tree _r;
10370 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10371 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10372 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10373 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
10374 0 : return _r;
10375 : }
10376 0 : next_after_fail1517:;
10377 : }
10378 : }
10379 : }
10380 : }
10381 : }
10382 : }
10383 : }
10384 : break;
10385 : }
10386 0 : case INTEGER_CST:
10387 0 : {
10388 0 : if (integer_zerop (_p1))
10389 : {
10390 0 : {
10391 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10392 0 : const enum tree_code cmp = EQ_EXPR;
10393 0 : const enum tree_code icmp = LE_EXPR;
10394 0 : {
10395 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10396 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10397 : )
10398 : {
10399 0 : {
10400 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10401 0 : ? optab_vector : optab_default;
10402 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10403 0 : if (target_supports_op_p (utype, icmp, optab)
10404 0 : || (optimize_vectors_before_lowering_p ()
10405 0 : && (!target_supports_op_p (type, cmp, optab)
10406 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10407 : )
10408 : {
10409 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10410 : )
10411 : {
10412 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1518;
10413 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
10414 0 : {
10415 0 : tree res_op0;
10416 0 : res_op0 = captures[1];
10417 0 : tree res_op1;
10418 0 : res_op1 = csts;
10419 0 : tree _r;
10420 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10421 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10422 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10423 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
10424 0 : return _r;
10425 : }
10426 0 : next_after_fail1518:;
10427 : }
10428 : else
10429 : {
10430 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1519;
10431 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
10432 0 : {
10433 0 : tree res_op0;
10434 0 : {
10435 0 : tree _o1[1], _r1;
10436 0 : _o1[0] = captures[1];
10437 0 : if (TREE_TYPE (_o1[0]) != utype)
10438 : {
10439 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10440 : }
10441 : else
10442 : _r1 = _o1[0];
10443 0 : res_op0 = _r1;
10444 : }
10445 0 : tree res_op1;
10446 0 : res_op1 = csts;
10447 0 : tree _r;
10448 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10449 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10450 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10451 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
10452 0 : return _r;
10453 : }
10454 0 : next_after_fail1519:;
10455 : }
10456 : }
10457 : }
10458 : }
10459 : }
10460 : }
10461 : }
10462 : break;
10463 : }
10464 : default:;
10465 : }
10466 : break;
10467 : }
10468 16690 : case RSHIFT_EXPR:
10469 16690 : {
10470 16690 : tree _q20 = TREE_OPERAND (_p0, 0);
10471 16690 : tree _q21 = TREE_OPERAND (_p0, 1);
10472 16690 : switch (TREE_CODE (_q20))
10473 : {
10474 1 : case MULT_EXPR:
10475 1 : {
10476 1 : tree _q30 = TREE_OPERAND (_q20, 0);
10477 1 : tree _q31 = TREE_OPERAND (_q20, 1);
10478 1 : switch (TREE_CODE (_q30))
10479 : {
10480 1 : CASE_CONVERT:
10481 1 : {
10482 1 : tree _q40 = TREE_OPERAND (_q30, 0);
10483 1 : switch (TREE_CODE (_q31))
10484 : {
10485 1 : CASE_CONVERT:
10486 1 : {
10487 1 : tree _q60 = TREE_OPERAND (_q31, 0);
10488 1 : switch (TREE_CODE (_q21))
10489 : {
10490 1 : case INTEGER_CST:
10491 1 : {
10492 1 : if (integer_zerop (_p1))
10493 : {
10494 1 : {
10495 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
10496 1 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10497 1 : if (res) return res;
10498 : }
10499 : }
10500 : break;
10501 : }
10502 : default:;
10503 : }
10504 : break;
10505 : }
10506 : default:;
10507 : }
10508 : break;
10509 : }
10510 : default:;
10511 : }
10512 : break;
10513 : }
10514 : default:;
10515 : }
10516 : break;
10517 : }
10518 647119 : case PLUS_EXPR:
10519 647119 : {
10520 647119 : tree _q20 = TREE_OPERAND (_p0, 0);
10521 647119 : tree _q21 = TREE_OPERAND (_p0, 1);
10522 647119 : switch (TREE_CODE (_q21))
10523 : {
10524 601956 : case INTEGER_CST:
10525 601956 : {
10526 601956 : switch (TREE_CODE (_p1))
10527 : {
10528 338731 : case INTEGER_CST:
10529 338731 : {
10530 338731 : {
10531 338731 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10532 338731 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
10533 338731 : if (res) return res;
10534 : }
10535 14 : break;
10536 : }
10537 : default:;
10538 : }
10539 : break;
10540 : }
10541 : default:;
10542 : }
10543 : break;
10544 : }
10545 96489 : case MINUS_EXPR:
10546 96489 : {
10547 96489 : tree _q20 = TREE_OPERAND (_p0, 0);
10548 96489 : tree _q21 = TREE_OPERAND (_p0, 1);
10549 96489 : switch (TREE_CODE (_q21))
10550 : {
10551 19 : case INTEGER_CST:
10552 19 : {
10553 19 : switch (TREE_CODE (_p1))
10554 : {
10555 16 : case INTEGER_CST:
10556 16 : {
10557 16 : {
10558 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10559 16 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
10560 16 : if (res) return res;
10561 : }
10562 16 : break;
10563 : }
10564 : default:;
10565 : }
10566 : break;
10567 : }
10568 96489 : default:;
10569 : }
10570 96489 : switch (TREE_CODE (_q20))
10571 : {
10572 38636 : case INTEGER_CST:
10573 38636 : {
10574 38636 : switch (TREE_CODE (_p1))
10575 : {
10576 37593 : case INTEGER_CST:
10577 37593 : {
10578 37593 : {
10579 37593 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10580 37593 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10581 37593 : if (res) return res;
10582 : }
10583 0 : break;
10584 : }
10585 : default:;
10586 : }
10587 : break;
10588 : }
10589 : default:;
10590 : }
10591 : break;
10592 : }
10593 1932434 : case CALL_EXPR:
10594 1932434 : switch (get_call_combined_fn (_p0))
10595 : {
10596 19 : case CFN_BUILT_IN_CLZ:
10597 19 : if (call_expr_nargs (_p0) == 1)
10598 : {
10599 19 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10600 19 : switch (TREE_CODE (_p1))
10601 : {
10602 19 : case INTEGER_CST:
10603 19 : {
10604 19 : {
10605 19 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10606 19 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
10607 19 : if (res) return res;
10608 : }
10609 16 : break;
10610 : }
10611 : default:;
10612 : }
10613 : }
10614 : break;
10615 17 : case CFN_BUILT_IN_CTZ:
10616 17 : if (call_expr_nargs (_p0) == 1)
10617 : {
10618 17 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10619 17 : switch (TREE_CODE (_p1))
10620 : {
10621 17 : case INTEGER_CST:
10622 17 : {
10623 17 : {
10624 17 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10625 17 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
10626 17 : if (res) return res;
10627 : }
10628 16 : break;
10629 : }
10630 : default:;
10631 : }
10632 : }
10633 : break;
10634 4 : case CFN_BUILT_IN_FFS:
10635 4 : if (call_expr_nargs (_p0) == 1)
10636 : {
10637 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10638 4 : switch (TREE_CODE (_p1))
10639 : {
10640 4 : case INTEGER_CST:
10641 4 : {
10642 4 : {
10643 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10644 4 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
10645 4 : if (res) return res;
10646 : }
10647 0 : break;
10648 : }
10649 : default:;
10650 : }
10651 : }
10652 : break;
10653 0 : case CFN_REDUC_IOR:
10654 0 : if (call_expr_nargs (_p0) == 1)
10655 : {
10656 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10657 0 : if (integer_zerop (_p1))
10658 : {
10659 0 : {
10660 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10661 0 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR);
10662 0 : if (res) return res;
10663 : }
10664 : }
10665 : }
10666 : break;
10667 0 : case CFN_BUILT_IN_FFSIMAX:
10668 0 : if (call_expr_nargs (_p0) == 1)
10669 : {
10670 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10671 0 : switch (TREE_CODE (_p1))
10672 : {
10673 0 : case INTEGER_CST:
10674 0 : {
10675 0 : {
10676 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10677 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
10678 0 : if (res) return res;
10679 : }
10680 0 : break;
10681 : }
10682 : default:;
10683 : }
10684 : }
10685 : break;
10686 15 : case CFN_BUILT_IN_POPCOUNT:
10687 15 : if (call_expr_nargs (_p0) == 1)
10688 : {
10689 15 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10690 15 : if (integer_zerop (_p1))
10691 : {
10692 1 : {
10693 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10694 1 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
10695 1 : if (res) return res;
10696 : }
10697 : }
10698 : }
10699 : break;
10700 0 : case CFN_BUILT_IN_CLZL:
10701 0 : if (call_expr_nargs (_p0) == 1)
10702 : {
10703 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10704 0 : switch (TREE_CODE (_p1))
10705 : {
10706 0 : case INTEGER_CST:
10707 0 : {
10708 0 : {
10709 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10710 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
10711 0 : if (res) return res;
10712 : }
10713 0 : break;
10714 : }
10715 : default:;
10716 : }
10717 : }
10718 : break;
10719 16 : case CFN_BUILT_IN_CTZL:
10720 16 : if (call_expr_nargs (_p0) == 1)
10721 : {
10722 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10723 16 : switch (TREE_CODE (_p1))
10724 : {
10725 16 : case INTEGER_CST:
10726 16 : {
10727 16 : {
10728 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10729 16 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
10730 16 : if (res) return res;
10731 : }
10732 16 : break;
10733 : }
10734 : default:;
10735 : }
10736 : }
10737 : break;
10738 1 : case CFN_BUILT_IN_FFSL:
10739 1 : if (call_expr_nargs (_p0) == 1)
10740 : {
10741 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10742 1 : switch (TREE_CODE (_p1))
10743 : {
10744 1 : case INTEGER_CST:
10745 1 : {
10746 1 : {
10747 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10748 1 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
10749 1 : if (res) return res;
10750 : }
10751 0 : break;
10752 : }
10753 : default:;
10754 : }
10755 : }
10756 : break;
10757 7 : case CFN_BUILT_IN_POPCOUNTLL:
10758 7 : if (call_expr_nargs (_p0) == 1)
10759 : {
10760 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10761 7 : if (integer_zerop (_p1))
10762 : {
10763 1 : {
10764 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10765 1 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10766 1 : if (res) return res;
10767 : }
10768 : }
10769 : }
10770 : break;
10771 0 : case CFN_BUILT_IN_CTZIMAX:
10772 0 : if (call_expr_nargs (_p0) == 1)
10773 : {
10774 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10775 0 : switch (TREE_CODE (_p1))
10776 : {
10777 0 : case INTEGER_CST:
10778 0 : {
10779 0 : {
10780 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10781 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
10782 0 : if (res) return res;
10783 : }
10784 0 : break;
10785 : }
10786 : default:;
10787 : }
10788 : }
10789 : break;
10790 0 : case CFN_POPCOUNT:
10791 0 : if (call_expr_nargs (_p0) == 1)
10792 : {
10793 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10794 0 : if (integer_zerop (_p1))
10795 : {
10796 0 : {
10797 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10798 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
10799 0 : if (res) return res;
10800 : }
10801 : }
10802 : }
10803 : break;
10804 0 : case CFN_CLZ:
10805 0 : if (call_expr_nargs (_p0) == 1)
10806 : {
10807 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10808 0 : switch (TREE_CODE (_p1))
10809 : {
10810 0 : case INTEGER_CST:
10811 0 : {
10812 0 : {
10813 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10814 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
10815 0 : if (res) return res;
10816 : }
10817 0 : break;
10818 : }
10819 : default:;
10820 : }
10821 : }
10822 0 : if (call_expr_nargs (_p0) == 2)
10823 : {
10824 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10825 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10826 0 : switch (TREE_CODE (_p1))
10827 : {
10828 0 : case INTEGER_CST:
10829 0 : {
10830 0 : {
10831 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10832 0 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
10833 0 : if (res) return res;
10834 : }
10835 0 : break;
10836 : }
10837 : default:;
10838 : }
10839 : }
10840 : break;
10841 0 : case CFN_CTZ:
10842 0 : if (call_expr_nargs (_p0) == 1)
10843 : {
10844 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10845 0 : switch (TREE_CODE (_p1))
10846 : {
10847 0 : case INTEGER_CST:
10848 0 : {
10849 0 : {
10850 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10851 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
10852 0 : if (res) return res;
10853 : }
10854 0 : break;
10855 : }
10856 : default:;
10857 : }
10858 : }
10859 0 : if (call_expr_nargs (_p0) == 2)
10860 : {
10861 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10862 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10863 0 : switch (TREE_CODE (_p1))
10864 : {
10865 0 : case INTEGER_CST:
10866 0 : {
10867 0 : {
10868 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10869 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR);
10870 0 : if (res) return res;
10871 : }
10872 0 : break;
10873 : }
10874 : default:;
10875 : }
10876 : }
10877 : break;
10878 0 : case CFN_FFS:
10879 0 : if (call_expr_nargs (_p0) == 1)
10880 : {
10881 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10882 0 : switch (TREE_CODE (_p1))
10883 : {
10884 0 : case INTEGER_CST:
10885 0 : {
10886 0 : {
10887 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10888 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_FFS);
10889 0 : if (res) return res;
10890 : }
10891 0 : break;
10892 : }
10893 : default:;
10894 : }
10895 : }
10896 : break;
10897 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10898 0 : if (call_expr_nargs (_p0) == 1)
10899 : {
10900 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10901 0 : if (integer_zerop (_p1))
10902 : {
10903 0 : {
10904 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10905 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10906 0 : if (res) return res;
10907 : }
10908 : }
10909 : }
10910 : break;
10911 0 : case CFN_BUILT_IN_CLZIMAX:
10912 0 : if (call_expr_nargs (_p0) == 1)
10913 : {
10914 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10915 0 : switch (TREE_CODE (_p1))
10916 : {
10917 0 : case INTEGER_CST:
10918 0 : {
10919 0 : {
10920 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10921 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
10922 0 : if (res) return res;
10923 : }
10924 0 : break;
10925 : }
10926 : default:;
10927 : }
10928 : }
10929 : break;
10930 7 : case CFN_BUILT_IN_POPCOUNTL:
10931 7 : if (call_expr_nargs (_p0) == 1)
10932 : {
10933 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10934 7 : if (integer_zerop (_p1))
10935 : {
10936 1 : {
10937 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10938 1 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
10939 1 : if (res) return res;
10940 : }
10941 : }
10942 : }
10943 : break;
10944 16 : case CFN_BUILT_IN_CLZLL:
10945 16 : if (call_expr_nargs (_p0) == 1)
10946 : {
10947 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10948 16 : switch (TREE_CODE (_p1))
10949 : {
10950 16 : case INTEGER_CST:
10951 16 : {
10952 16 : {
10953 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10954 16 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
10955 16 : if (res) return res;
10956 : }
10957 16 : break;
10958 : }
10959 : default:;
10960 : }
10961 : }
10962 : break;
10963 0 : case CFN_BUILT_IN_CTZLL:
10964 0 : if (call_expr_nargs (_p0) == 1)
10965 : {
10966 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10967 0 : switch (TREE_CODE (_p1))
10968 : {
10969 0 : case INTEGER_CST:
10970 0 : {
10971 0 : {
10972 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10973 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10974 0 : if (res) return res;
10975 : }
10976 0 : break;
10977 : }
10978 : default:;
10979 : }
10980 : }
10981 : break;
10982 0 : case CFN_BUILT_IN_FFSLL:
10983 0 : if (call_expr_nargs (_p0) == 1)
10984 : {
10985 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10986 0 : switch (TREE_CODE (_p1))
10987 : {
10988 0 : case INTEGER_CST:
10989 0 : {
10990 0 : {
10991 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10992 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
10993 0 : if (res) return res;
10994 : }
10995 0 : break;
10996 : }
10997 : default:;
10998 : }
10999 : }
11000 : break;
11001 : default:;
11002 : }
11003 : break;
11004 : default:;
11005 : }
11006 : return NULL_TREE;
11007 : }
11008 :
11009 : tree
11010 351790 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11011 : {
11012 351790 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11013 351790 : switch (TREE_CODE (_p0))
11014 : {
11015 0 : case VEC_COND_EXPR:
11016 0 : {
11017 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11018 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11019 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11020 0 : switch (TREE_CODE (_p1))
11021 : {
11022 0 : case VEC_COND_EXPR:
11023 0 : {
11024 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11025 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11026 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11027 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11028 : {
11029 0 : {
11030 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11031 0 : if (VECTOR_TYPE_P (type)
11032 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11033 0 : || types_match (type, TREE_TYPE (captures[2]))
11034 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11035 : || (optimize_vectors_before_lowering_p ()
11036 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11037 : )
11038 : {
11039 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1778;
11040 0 : {
11041 0 : tree res_op0;
11042 0 : res_op0 = captures[1];
11043 0 : tree res_op1;
11044 0 : {
11045 0 : tree _o1[2], _r1;
11046 0 : _o1[0] = captures[2];
11047 0 : _o1[1] = captures[5];
11048 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11049 0 : if (EXPR_P (_r1))
11050 0 : goto next_after_fail1778;
11051 0 : res_op1 = _r1;
11052 : }
11053 0 : tree res_op2;
11054 0 : {
11055 0 : tree _o1[2], _r1;
11056 0 : _o1[0] = captures[3];
11057 0 : _o1[1] = captures[6];
11058 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11059 0 : if (EXPR_P (_r1))
11060 0 : goto next_after_fail1778;
11061 0 : res_op2 = _r1;
11062 : }
11063 0 : tree _r;
11064 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11065 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
11066 0 : return _r;
11067 : }
11068 0 : next_after_fail1778:;
11069 : }
11070 : }
11071 : }
11072 : break;
11073 : }
11074 0 : default:;
11075 : }
11076 0 : {
11077 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11078 0 : if (VECTOR_TYPE_P (type)
11079 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11080 0 : || types_match (type, TREE_TYPE (captures[2]))
11081 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11082 : || (optimize_vectors_before_lowering_p ()
11083 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11084 : )
11085 : {
11086 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1779;
11087 0 : {
11088 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1779;
11089 0 : tree res_op0;
11090 0 : res_op0 = captures[1];
11091 0 : tree res_op1;
11092 0 : {
11093 0 : tree _o1[2], _r1;
11094 0 : _o1[0] = captures[2];
11095 0 : _o1[1] = unshare_expr (captures[4]);
11096 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11097 0 : if (EXPR_P (_r1))
11098 0 : goto next_after_fail1779;
11099 0 : res_op1 = _r1;
11100 : }
11101 0 : tree res_op2;
11102 0 : {
11103 0 : tree _o1[2], _r1;
11104 0 : _o1[0] = captures[3];
11105 0 : _o1[1] = captures[4];
11106 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11107 0 : if (EXPR_P (_r1))
11108 0 : goto next_after_fail1779;
11109 0 : res_op2 = _r1;
11110 : }
11111 0 : tree _r;
11112 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11113 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
11114 0 : return _r;
11115 : }
11116 0 : next_after_fail1779:;
11117 : }
11118 : }
11119 0 : break;
11120 : }
11121 351790 : default:;
11122 : }
11123 351790 : switch (TREE_CODE (_p1))
11124 : {
11125 0 : case VEC_COND_EXPR:
11126 0 : {
11127 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11128 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11129 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11130 0 : {
11131 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11132 0 : if (VECTOR_TYPE_P (type)
11133 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
11134 0 : || types_match (type, TREE_TYPE (captures[3]))
11135 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11136 : || (optimize_vectors_before_lowering_p ()
11137 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11138 : )
11139 : {
11140 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1780;
11141 0 : {
11142 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1780;
11143 0 : tree res_op0;
11144 0 : res_op0 = captures[2];
11145 0 : tree res_op1;
11146 0 : {
11147 0 : tree _o1[2], _r1;
11148 0 : _o1[0] = unshare_expr (captures[0]);
11149 0 : _o1[1] = captures[3];
11150 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11151 0 : if (EXPR_P (_r1))
11152 0 : goto next_after_fail1780;
11153 0 : res_op1 = _r1;
11154 : }
11155 0 : tree res_op2;
11156 0 : {
11157 0 : tree _o1[2], _r1;
11158 0 : _o1[0] = captures[0];
11159 0 : _o1[1] = captures[4];
11160 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
11161 0 : if (EXPR_P (_r1))
11162 0 : goto next_after_fail1780;
11163 0 : res_op2 = _r1;
11164 : }
11165 0 : tree _r;
11166 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11167 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
11168 0 : return _r;
11169 : }
11170 0 : next_after_fail1780:;
11171 : }
11172 : }
11173 0 : break;
11174 : }
11175 351790 : default:;
11176 : }
11177 351790 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11178 : {
11179 0 : {
11180 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11181 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
11182 0 : if (res) return res;
11183 : }
11184 : }
11185 351790 : switch (TREE_CODE (_p0))
11186 : {
11187 0 : case FLOAT_EXPR:
11188 0 : {
11189 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11190 0 : switch (TREE_CODE (_p1))
11191 : {
11192 0 : case FLOAT_EXPR:
11193 0 : {
11194 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11195 0 : {
11196 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11197 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
11198 0 : if (res) return res;
11199 : }
11200 0 : break;
11201 : }
11202 : default:;
11203 : }
11204 : break;
11205 : }
11206 0 : case NEGATE_EXPR:
11207 0 : {
11208 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11209 0 : switch (TREE_CODE (_p1))
11210 : {
11211 0 : case NEGATE_EXPR:
11212 0 : {
11213 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11214 0 : {
11215 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11216 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11217 0 : if (res) return res;
11218 : }
11219 0 : break;
11220 : }
11221 0 : default:;
11222 : }
11223 0 : if (CONSTANT_CLASS_P (_p1))
11224 : {
11225 0 : {
11226 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11227 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11228 0 : if (res) return res;
11229 : }
11230 : }
11231 : break;
11232 : }
11233 351790 : default:;
11234 : }
11235 351790 : switch (TREE_CODE (_p1))
11236 : {
11237 154 : case REAL_CST:
11238 154 : {
11239 154 : {
11240 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11241 154 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
11242 154 : if (res) return res;
11243 : }
11244 152 : break;
11245 : }
11246 : default:;
11247 : }
11248 : return NULL_TREE;
11249 : }
11250 :
11251 : tree
11252 12470522 : 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)
11253 : {
11254 12470522 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11255 12470522 : switch (TREE_CODE (_p0))
11256 : {
11257 1760210 : case LT_EXPR:
11258 1760210 : {
11259 1760210 : tree _q20 = TREE_OPERAND (_p0, 0);
11260 1760210 : tree _q21 = TREE_OPERAND (_p0, 1);
11261 1760210 : switch (TREE_CODE (_q20))
11262 : {
11263 11288 : case MINUS_EXPR:
11264 11288 : {
11265 11288 : tree _q30 = TREE_OPERAND (_q20, 0);
11266 11288 : tree _q31 = TREE_OPERAND (_q20, 1);
11267 11288 : switch (TREE_CODE (_q30))
11268 : {
11269 592 : case SSA_NAME:
11270 592 : {
11271 592 : switch (TREE_CODE (_q31))
11272 : {
11273 0 : case CALL_EXPR:
11274 0 : switch (get_call_combined_fn (_q31))
11275 : {
11276 0 : case CFN_BUILT_IN_FLOORF:
11277 0 : if (call_expr_nargs (_q31) == 1)
11278 : {
11279 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11280 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11281 : {
11282 0 : switch (TREE_CODE (_q50))
11283 : {
11284 0 : case SSA_NAME:
11285 0 : {
11286 0 : switch (TREE_CODE (_q21))
11287 : {
11288 0 : case MINUS_EXPR:
11289 0 : {
11290 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11291 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11292 0 : switch (TREE_CODE (_q80))
11293 : {
11294 0 : case CALL_EXPR:
11295 0 : switch (get_call_combined_fn (_q80))
11296 : {
11297 0 : case CFN_BUILT_IN_CEILF:
11298 0 : if (call_expr_nargs (_q80) == 1)
11299 : {
11300 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11301 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11302 : {
11303 0 : switch (TREE_CODE (_q90))
11304 : {
11305 0 : case SSA_NAME:
11306 0 : {
11307 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11308 : {
11309 0 : switch (TREE_CODE (_q81))
11310 : {
11311 0 : case SSA_NAME:
11312 0 : {
11313 0 : switch (TREE_CODE (_p1))
11314 : {
11315 0 : case CALL_EXPR:
11316 0 : switch (get_call_combined_fn (_p1))
11317 : {
11318 0 : case CFN_BUILT_IN_FLOORF:
11319 0 : if (call_expr_nargs (_p1) == 1)
11320 : {
11321 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11322 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11323 : {
11324 0 : switch (TREE_CODE (_q140))
11325 : {
11326 0 : case SSA_NAME:
11327 0 : {
11328 0 : switch (TREE_CODE (_p2))
11329 : {
11330 0 : case CALL_EXPR:
11331 0 : switch (get_call_combined_fn (_p2))
11332 : {
11333 0 : case CFN_BUILT_IN_CEILF:
11334 0 : if (call_expr_nargs (_p2) == 1)
11335 : {
11336 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11337 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11338 : {
11339 0 : switch (TREE_CODE (_q170))
11340 : {
11341 0 : case SSA_NAME:
11342 0 : {
11343 0 : {
11344 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11345 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
11346 0 : if (res) return res;
11347 : }
11348 0 : break;
11349 : }
11350 : default:;
11351 : }
11352 : }
11353 : }
11354 : break;
11355 : default:;
11356 : }
11357 : break;
11358 : default:;
11359 : }
11360 : break;
11361 : }
11362 : default:;
11363 : }
11364 : }
11365 : }
11366 : break;
11367 : default:;
11368 : }
11369 : break;
11370 : default:;
11371 : }
11372 : break;
11373 : }
11374 : default:;
11375 : }
11376 : }
11377 : break;
11378 : }
11379 : default:;
11380 : }
11381 : }
11382 : }
11383 : break;
11384 : default:;
11385 : }
11386 : break;
11387 : default:;
11388 : }
11389 : break;
11390 : }
11391 : default:;
11392 : }
11393 : break;
11394 : }
11395 : default:;
11396 : }
11397 : }
11398 : }
11399 : break;
11400 0 : case CFN_BUILT_IN_FLOORL:
11401 0 : if (call_expr_nargs (_q31) == 1)
11402 : {
11403 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11404 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11405 : {
11406 0 : switch (TREE_CODE (_q50))
11407 : {
11408 0 : case SSA_NAME:
11409 0 : {
11410 0 : switch (TREE_CODE (_q21))
11411 : {
11412 0 : case MINUS_EXPR:
11413 0 : {
11414 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11415 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11416 0 : switch (TREE_CODE (_q80))
11417 : {
11418 0 : case CALL_EXPR:
11419 0 : switch (get_call_combined_fn (_q80))
11420 : {
11421 0 : case CFN_BUILT_IN_CEILL:
11422 0 : if (call_expr_nargs (_q80) == 1)
11423 : {
11424 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11425 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11426 : {
11427 0 : switch (TREE_CODE (_q90))
11428 : {
11429 0 : case SSA_NAME:
11430 0 : {
11431 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11432 : {
11433 0 : switch (TREE_CODE (_q81))
11434 : {
11435 0 : case SSA_NAME:
11436 0 : {
11437 0 : switch (TREE_CODE (_p1))
11438 : {
11439 0 : case CALL_EXPR:
11440 0 : switch (get_call_combined_fn (_p1))
11441 : {
11442 0 : case CFN_BUILT_IN_FLOORL:
11443 0 : if (call_expr_nargs (_p1) == 1)
11444 : {
11445 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11446 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11447 : {
11448 0 : switch (TREE_CODE (_q140))
11449 : {
11450 0 : case SSA_NAME:
11451 0 : {
11452 0 : switch (TREE_CODE (_p2))
11453 : {
11454 0 : case CALL_EXPR:
11455 0 : switch (get_call_combined_fn (_p2))
11456 : {
11457 0 : case CFN_BUILT_IN_CEILL:
11458 0 : if (call_expr_nargs (_p2) == 1)
11459 : {
11460 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11461 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11462 : {
11463 0 : switch (TREE_CODE (_q170))
11464 : {
11465 0 : case SSA_NAME:
11466 0 : {
11467 0 : {
11468 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11469 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
11470 0 : if (res) return res;
11471 : }
11472 0 : break;
11473 : }
11474 : default:;
11475 : }
11476 : }
11477 : }
11478 : break;
11479 : default:;
11480 : }
11481 : break;
11482 : default:;
11483 : }
11484 : break;
11485 : }
11486 : default:;
11487 : }
11488 : }
11489 : }
11490 : break;
11491 : default:;
11492 : }
11493 : break;
11494 : default:;
11495 : }
11496 : break;
11497 : }
11498 : default:;
11499 : }
11500 : }
11501 : break;
11502 : }
11503 : default:;
11504 : }
11505 : }
11506 : }
11507 : break;
11508 : default:;
11509 : }
11510 : break;
11511 : default:;
11512 : }
11513 : break;
11514 : }
11515 : default:;
11516 : }
11517 : break;
11518 : }
11519 : default:;
11520 : }
11521 : }
11522 : }
11523 : break;
11524 0 : case CFN_FLOOR:
11525 0 : if (call_expr_nargs (_q31) == 1)
11526 : {
11527 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11528 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11529 : {
11530 0 : switch (TREE_CODE (_q50))
11531 : {
11532 0 : case SSA_NAME:
11533 0 : {
11534 0 : switch (TREE_CODE (_q21))
11535 : {
11536 0 : case MINUS_EXPR:
11537 0 : {
11538 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11539 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11540 0 : switch (TREE_CODE (_q80))
11541 : {
11542 0 : case CALL_EXPR:
11543 0 : switch (get_call_combined_fn (_q80))
11544 : {
11545 0 : case CFN_CEIL:
11546 0 : if (call_expr_nargs (_q80) == 1)
11547 : {
11548 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11549 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11550 : {
11551 0 : switch (TREE_CODE (_q90))
11552 : {
11553 0 : case SSA_NAME:
11554 0 : {
11555 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11556 : {
11557 0 : switch (TREE_CODE (_q81))
11558 : {
11559 0 : case SSA_NAME:
11560 0 : {
11561 0 : switch (TREE_CODE (_p1))
11562 : {
11563 0 : case CALL_EXPR:
11564 0 : switch (get_call_combined_fn (_p1))
11565 : {
11566 0 : case CFN_FLOOR:
11567 0 : if (call_expr_nargs (_p1) == 1)
11568 : {
11569 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11570 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11571 : {
11572 0 : switch (TREE_CODE (_q140))
11573 : {
11574 0 : case SSA_NAME:
11575 0 : {
11576 0 : switch (TREE_CODE (_p2))
11577 : {
11578 0 : case CALL_EXPR:
11579 0 : switch (get_call_combined_fn (_p2))
11580 : {
11581 0 : case CFN_CEIL:
11582 0 : if (call_expr_nargs (_p2) == 1)
11583 : {
11584 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11585 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11586 : {
11587 0 : switch (TREE_CODE (_q170))
11588 : {
11589 0 : case SSA_NAME:
11590 0 : {
11591 0 : {
11592 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11593 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
11594 0 : if (res) return res;
11595 : }
11596 0 : break;
11597 : }
11598 : default:;
11599 : }
11600 : }
11601 : }
11602 : break;
11603 : default:;
11604 : }
11605 : break;
11606 : default:;
11607 : }
11608 : break;
11609 : }
11610 : default:;
11611 : }
11612 : }
11613 : }
11614 : break;
11615 : default:;
11616 : }
11617 : break;
11618 : default:;
11619 : }
11620 : break;
11621 : }
11622 : default:;
11623 : }
11624 : }
11625 : break;
11626 : }
11627 : default:;
11628 : }
11629 : }
11630 : }
11631 : break;
11632 : default:;
11633 : }
11634 : break;
11635 : default:;
11636 : }
11637 : break;
11638 : }
11639 : default:;
11640 : }
11641 : break;
11642 : }
11643 : default:;
11644 : }
11645 : }
11646 : }
11647 : break;
11648 0 : case CFN_BUILT_IN_FLOOR:
11649 0 : if (call_expr_nargs (_q31) == 1)
11650 : {
11651 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11652 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11653 : {
11654 0 : switch (TREE_CODE (_q50))
11655 : {
11656 0 : case SSA_NAME:
11657 0 : {
11658 0 : switch (TREE_CODE (_q21))
11659 : {
11660 0 : case MINUS_EXPR:
11661 0 : {
11662 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11663 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11664 0 : switch (TREE_CODE (_q80))
11665 : {
11666 0 : case CALL_EXPR:
11667 0 : switch (get_call_combined_fn (_q80))
11668 : {
11669 0 : case CFN_BUILT_IN_CEIL:
11670 0 : if (call_expr_nargs (_q80) == 1)
11671 : {
11672 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11673 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11674 : {
11675 0 : switch (TREE_CODE (_q90))
11676 : {
11677 0 : case SSA_NAME:
11678 0 : {
11679 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11680 : {
11681 0 : switch (TREE_CODE (_q81))
11682 : {
11683 0 : case SSA_NAME:
11684 0 : {
11685 0 : switch (TREE_CODE (_p1))
11686 : {
11687 0 : case CALL_EXPR:
11688 0 : switch (get_call_combined_fn (_p1))
11689 : {
11690 0 : case CFN_BUILT_IN_FLOOR:
11691 0 : if (call_expr_nargs (_p1) == 1)
11692 : {
11693 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11694 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11695 : {
11696 0 : switch (TREE_CODE (_q140))
11697 : {
11698 0 : case SSA_NAME:
11699 0 : {
11700 0 : switch (TREE_CODE (_p2))
11701 : {
11702 0 : case CALL_EXPR:
11703 0 : switch (get_call_combined_fn (_p2))
11704 : {
11705 0 : case CFN_BUILT_IN_CEIL:
11706 0 : if (call_expr_nargs (_p2) == 1)
11707 : {
11708 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11709 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11710 : {
11711 0 : switch (TREE_CODE (_q170))
11712 : {
11713 0 : case SSA_NAME:
11714 0 : {
11715 0 : {
11716 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11717 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
11718 0 : if (res) return res;
11719 : }
11720 0 : break;
11721 : }
11722 : default:;
11723 : }
11724 : }
11725 : }
11726 : break;
11727 : default:;
11728 : }
11729 : break;
11730 : default:;
11731 : }
11732 : break;
11733 : }
11734 : default:;
11735 : }
11736 : }
11737 : }
11738 : break;
11739 : default:;
11740 : }
11741 : break;
11742 : default:;
11743 : }
11744 : break;
11745 : }
11746 : default:;
11747 : }
11748 : }
11749 : break;
11750 : }
11751 : default:;
11752 : }
11753 : }
11754 : }
11755 : break;
11756 : default:;
11757 : }
11758 : break;
11759 : default:;
11760 : }
11761 : break;
11762 : }
11763 : default:;
11764 : }
11765 : break;
11766 : }
11767 : default:;
11768 : }
11769 : }
11770 : }
11771 : break;
11772 : default:;
11773 : }
11774 : break;
11775 : default:;
11776 : }
11777 : break;
11778 : }
11779 : default:;
11780 : }
11781 : break;
11782 : }
11783 1760210 : default:;
11784 : }
11785 1760210 : switch (TREE_CODE (_p1))
11786 : {
11787 8 : case BIT_IOR_EXPR:
11788 8 : {
11789 8 : tree _q50 = TREE_OPERAND (_p1, 0);
11790 8 : tree _q51 = TREE_OPERAND (_p1, 1);
11791 8 : switch (TREE_CODE (_q51))
11792 : {
11793 8 : case INTEGER_CST:
11794 8 : {
11795 8 : switch (TREE_CODE (_p2))
11796 : {
11797 0 : case BIT_AND_EXPR:
11798 0 : {
11799 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11800 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11801 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11802 : {
11803 0 : switch (TREE_CODE (_q81))
11804 : {
11805 0 : case INTEGER_CST:
11806 0 : {
11807 0 : {
11808 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
11809 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11810 0 : if (res) return res;
11811 : }
11812 0 : break;
11813 : }
11814 : default:;
11815 : }
11816 : }
11817 : break;
11818 : }
11819 : default:;
11820 : }
11821 : break;
11822 : }
11823 : default:;
11824 : }
11825 : break;
11826 : }
11827 1760210 : default:;
11828 : }
11829 1760210 : switch (TREE_CODE (_q20))
11830 : {
11831 94663 : CASE_CONVERT:
11832 94663 : {
11833 94663 : tree _q30 = TREE_OPERAND (_q20, 0);
11834 94663 : switch (TREE_CODE (_q21))
11835 : {
11836 17142 : case INTEGER_CST:
11837 17142 : {
11838 17142 : switch (TREE_CODE (_p1))
11839 : {
11840 15 : CASE_CONVERT:
11841 15 : {
11842 15 : tree _q60 = TREE_OPERAND (_p1, 0);
11843 15 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11844 : {
11845 0 : switch (TREE_CODE (_p2))
11846 : {
11847 0 : case INTEGER_CST:
11848 0 : {
11849 0 : {
11850 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11851 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11852 0 : if (res) return res;
11853 : }
11854 0 : break;
11855 : }
11856 : default:;
11857 : }
11858 : }
11859 : break;
11860 : }
11861 17142 : default:;
11862 : }
11863 17142 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11864 : {
11865 6 : switch (TREE_CODE (_p2))
11866 : {
11867 6 : case INTEGER_CST:
11868 6 : {
11869 6 : {
11870 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11871 6 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11872 6 : if (res) return res;
11873 : }
11874 6 : break;
11875 : }
11876 : default:;
11877 : }
11878 : }
11879 17142 : switch (TREE_CODE (_p1))
11880 : {
11881 25 : case PLUS_EXPR:
11882 25 : {
11883 25 : tree _q60 = TREE_OPERAND (_p1, 0);
11884 25 : tree _q61 = TREE_OPERAND (_p1, 1);
11885 25 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11886 : {
11887 7 : switch (TREE_CODE (_q61))
11888 : {
11889 7 : case INTEGER_CST:
11890 7 : {
11891 7 : switch (TREE_CODE (_p2))
11892 : {
11893 7 : case INTEGER_CST:
11894 7 : {
11895 7 : {
11896 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11897 7 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
11898 7 : if (res) return res;
11899 : }
11900 0 : break;
11901 : }
11902 : default:;
11903 : }
11904 : break;
11905 : }
11906 : default:;
11907 : }
11908 : }
11909 : break;
11910 : }
11911 0 : case MINUS_EXPR:
11912 0 : {
11913 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11914 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11915 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11916 : {
11917 0 : switch (TREE_CODE (_q61))
11918 : {
11919 0 : case INTEGER_CST:
11920 0 : {
11921 0 : switch (TREE_CODE (_p2))
11922 : {
11923 0 : case INTEGER_CST:
11924 0 : {
11925 0 : {
11926 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11927 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
11928 0 : if (res) return res;
11929 : }
11930 0 : break;
11931 : }
11932 : default:;
11933 : }
11934 : break;
11935 : }
11936 : default:;
11937 : }
11938 : }
11939 : break;
11940 : }
11941 : default:;
11942 : }
11943 : break;
11944 : }
11945 : default:;
11946 : }
11947 : break;
11948 : }
11949 1760203 : default:;
11950 : }
11951 1760203 : switch (TREE_CODE (_q21))
11952 : {
11953 368451 : case INTEGER_CST:
11954 368451 : {
11955 368451 : switch (TREE_CODE (_p1))
11956 : {
11957 1120 : CASE_CONVERT:
11958 1120 : {
11959 1120 : tree _q50 = TREE_OPERAND (_p1, 0);
11960 1120 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11961 : {
11962 36 : switch (TREE_CODE (_p2))
11963 : {
11964 5 : case INTEGER_CST:
11965 5 : {
11966 5 : {
11967 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11968 5 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11969 5 : if (res) return res;
11970 : }
11971 5 : break;
11972 : }
11973 : default:;
11974 : }
11975 : }
11976 : break;
11977 : }
11978 368451 : default:;
11979 : }
11980 368451 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11981 : {
11982 81 : switch (TREE_CODE (_p2))
11983 : {
11984 8 : case INTEGER_CST:
11985 8 : {
11986 8 : {
11987 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11988 8 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11989 8 : if (res) return res;
11990 : }
11991 0 : break;
11992 : }
11993 : default:;
11994 : }
11995 : }
11996 368443 : switch (TREE_CODE (_p1))
11997 : {
11998 9142 : case PLUS_EXPR:
11999 9142 : {
12000 9142 : tree _q50 = TREE_OPERAND (_p1, 0);
12001 9142 : tree _q51 = TREE_OPERAND (_p1, 1);
12002 9142 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12003 : {
12004 9107 : switch (TREE_CODE (_q51))
12005 : {
12006 9107 : case INTEGER_CST:
12007 9107 : {
12008 9107 : switch (TREE_CODE (_p2))
12009 : {
12010 36 : case INTEGER_CST:
12011 36 : {
12012 36 : {
12013 36 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12014 36 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
12015 36 : if (res) return res;
12016 : }
12017 36 : break;
12018 : }
12019 : default:;
12020 : }
12021 : break;
12022 : }
12023 : default:;
12024 : }
12025 : }
12026 : break;
12027 : }
12028 62 : case MINUS_EXPR:
12029 62 : {
12030 62 : tree _q50 = TREE_OPERAND (_p1, 0);
12031 62 : tree _q51 = TREE_OPERAND (_p1, 1);
12032 62 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12033 : {
12034 0 : switch (TREE_CODE (_q51))
12035 : {
12036 0 : case INTEGER_CST:
12037 0 : {
12038 0 : switch (TREE_CODE (_p2))
12039 : {
12040 0 : case INTEGER_CST:
12041 0 : {
12042 0 : {
12043 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12044 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
12045 0 : if (res) return res;
12046 : }
12047 0 : break;
12048 : }
12049 : default:;
12050 : }
12051 : break;
12052 : }
12053 : default:;
12054 : }
12055 : }
12056 : break;
12057 : }
12058 : default:;
12059 : }
12060 : break;
12061 : }
12062 1760195 : default:;
12063 : }
12064 1760195 : switch (TREE_CODE (_p1))
12065 : {
12066 0 : case MIN_EXPR:
12067 0 : {
12068 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12069 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12070 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12071 : {
12072 0 : switch (TREE_CODE (_p2))
12073 : {
12074 0 : case MIN_EXPR:
12075 0 : {
12076 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12077 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12078 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12079 : {
12080 0 : {
12081 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12082 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12083 0 : if (res) return res;
12084 : }
12085 : }
12086 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12087 : {
12088 0 : {
12089 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12090 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12091 0 : if (res) return res;
12092 : }
12093 : }
12094 : break;
12095 : }
12096 : default:;
12097 : }
12098 : }
12099 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12100 : {
12101 0 : switch (TREE_CODE (_p2))
12102 : {
12103 0 : case MIN_EXPR:
12104 0 : {
12105 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12106 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12107 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12108 : {
12109 0 : {
12110 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12111 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12112 0 : if (res) return res;
12113 : }
12114 : }
12115 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12116 : {
12117 0 : {
12118 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12119 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12120 0 : if (res) return res;
12121 : }
12122 : }
12123 : break;
12124 : }
12125 : default:;
12126 : }
12127 : }
12128 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12129 : {
12130 0 : switch (TREE_CODE (_p2))
12131 : {
12132 0 : case MIN_EXPR:
12133 0 : {
12134 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12135 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12136 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12137 : {
12138 0 : {
12139 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12140 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12141 0 : if (res) return res;
12142 : }
12143 : }
12144 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12145 : {
12146 0 : {
12147 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12148 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12149 0 : if (res) return res;
12150 : }
12151 : }
12152 : break;
12153 : }
12154 0 : default:;
12155 : }
12156 0 : {
12157 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
12158 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12159 0 : if (res) return res;
12160 : }
12161 : }
12162 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12163 : {
12164 0 : switch (TREE_CODE (_p2))
12165 : {
12166 0 : case MIN_EXPR:
12167 0 : {
12168 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12169 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12170 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12171 : {
12172 0 : {
12173 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12174 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12175 0 : if (res) return res;
12176 : }
12177 : }
12178 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12179 : {
12180 0 : {
12181 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12182 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12183 0 : if (res) return res;
12184 : }
12185 : }
12186 : break;
12187 : }
12188 0 : default:;
12189 : }
12190 0 : {
12191 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
12192 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12193 0 : if (res) return res;
12194 : }
12195 : }
12196 : break;
12197 : }
12198 21 : case MAX_EXPR:
12199 21 : {
12200 21 : tree _q50 = TREE_OPERAND (_p1, 0);
12201 21 : tree _q51 = TREE_OPERAND (_p1, 1);
12202 21 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12203 : {
12204 1 : switch (TREE_CODE (_p2))
12205 : {
12206 0 : case MAX_EXPR:
12207 0 : {
12208 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12209 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12210 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12211 : {
12212 0 : {
12213 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12214 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12215 0 : if (res) return res;
12216 : }
12217 : }
12218 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12219 : {
12220 0 : {
12221 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12222 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12223 0 : if (res) return res;
12224 : }
12225 : }
12226 : break;
12227 : }
12228 1 : default:;
12229 : }
12230 1 : {
12231 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
12232 1 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12233 1 : if (res) return res;
12234 : }
12235 : }
12236 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12237 : {
12238 4 : switch (TREE_CODE (_p2))
12239 : {
12240 0 : case MAX_EXPR:
12241 0 : {
12242 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12243 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12244 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12245 : {
12246 0 : {
12247 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12248 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12249 0 : if (res) return res;
12250 : }
12251 : }
12252 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12253 : {
12254 0 : {
12255 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12256 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12257 0 : if (res) return res;
12258 : }
12259 : }
12260 : break;
12261 : }
12262 : default:;
12263 : }
12264 : }
12265 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12266 : {
12267 8 : switch (TREE_CODE (_p2))
12268 : {
12269 0 : case MAX_EXPR:
12270 0 : {
12271 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12272 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12273 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12274 : {
12275 0 : {
12276 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12277 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
12278 0 : if (res) return res;
12279 : }
12280 : }
12281 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12282 : {
12283 0 : {
12284 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12285 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
12286 0 : if (res) return res;
12287 : }
12288 : }
12289 : break;
12290 : }
12291 : default:;
12292 : }
12293 : }
12294 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12295 : {
12296 1 : switch (TREE_CODE (_p2))
12297 : {
12298 1 : case MAX_EXPR:
12299 1 : {
12300 1 : tree _q80 = TREE_OPERAND (_p2, 0);
12301 1 : tree _q81 = TREE_OPERAND (_p2, 1);
12302 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12303 : {
12304 0 : {
12305 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12306 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
12307 0 : if (res) return res;
12308 : }
12309 : }
12310 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12311 : {
12312 1 : {
12313 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12314 1 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
12315 1 : if (res) return res;
12316 : }
12317 : }
12318 : break;
12319 : }
12320 : default:;
12321 : }
12322 : }
12323 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12324 : {
12325 4 : {
12326 4 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
12327 4 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12328 4 : if (res) return res;
12329 : }
12330 : }
12331 : break;
12332 : }
12333 1760193 : default:;
12334 : }
12335 1760193 : {
12336 1760193 : tree _q20_pops[1];
12337 1760193 : if (tree_nop_convert (_q20, _q20_pops))
12338 : {
12339 47904 : tree _q30 = _q20_pops[0];
12340 47904 : if (integer_zerop (_q21))
12341 : {
12342 7920 : switch (TREE_CODE (_p1))
12343 : {
12344 0 : case MIN_EXPR:
12345 0 : {
12346 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12347 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12348 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12349 : {
12350 0 : switch (TREE_CODE (_q61))
12351 : {
12352 0 : case INTEGER_CST:
12353 0 : {
12354 0 : switch (TREE_CODE (_p2))
12355 : {
12356 0 : case INTEGER_CST:
12357 0 : {
12358 0 : {
12359 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
12360 0 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12361 0 : if (res) return res;
12362 : }
12363 0 : break;
12364 : }
12365 : default:;
12366 : }
12367 : break;
12368 : }
12369 : default:;
12370 : }
12371 : }
12372 : break;
12373 : }
12374 : default:;
12375 : }
12376 : }
12377 : }
12378 : }
12379 1760193 : if (integer_zerop (_q21))
12380 : {
12381 322793 : if (tree_expr_nonnegative_p (_p1))
12382 : {
12383 290627 : switch (TREE_CODE (_p2))
12384 : {
12385 17 : case MIN_EXPR:
12386 17 : {
12387 17 : tree _q60 = TREE_OPERAND (_p2, 0);
12388 17 : tree _q61 = TREE_OPERAND (_p2, 1);
12389 17 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12390 : {
12391 16 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
12392 : {
12393 9 : {
12394 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12395 9 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures);
12396 9 : if (res) return res;
12397 : }
12398 : }
12399 : }
12400 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12401 : {
12402 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
12403 : {
12404 0 : {
12405 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12406 0 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures);
12407 0 : if (res) return res;
12408 : }
12409 : }
12410 : }
12411 : break;
12412 : }
12413 : default:;
12414 : }
12415 : }
12416 : }
12417 1760184 : if (tree_expr_nonnegative_p (_q20))
12418 : {
12419 490463 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
12420 : {
12421 166 : switch (TREE_CODE (_p2))
12422 : {
12423 5 : case ABS_EXPR:
12424 5 : {
12425 5 : tree _q60 = TREE_OPERAND (_p2, 0);
12426 5 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
12427 : {
12428 0 : {
12429 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
12430 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
12431 0 : if (res) return res;
12432 : }
12433 : }
12434 : break;
12435 : }
12436 : default:;
12437 : }
12438 : }
12439 490463 : switch (TREE_CODE (_p1))
12440 : {
12441 0 : case ABS_EXPR:
12442 0 : {
12443 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12444 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12445 : {
12446 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12447 : {
12448 0 : {
12449 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
12450 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
12451 0 : if (res) return res;
12452 : }
12453 : }
12454 : }
12455 : break;
12456 : }
12457 : default:;
12458 : }
12459 : }
12460 : break;
12461 : }
12462 551945 : case GE_EXPR:
12463 551945 : {
12464 551945 : tree _q20 = TREE_OPERAND (_p0, 0);
12465 551945 : tree _q21 = TREE_OPERAND (_p0, 1);
12466 551945 : switch (TREE_CODE (_q20))
12467 : {
12468 38144 : case MINUS_EXPR:
12469 38144 : {
12470 38144 : tree _q30 = TREE_OPERAND (_q20, 0);
12471 38144 : tree _q31 = TREE_OPERAND (_q20, 1);
12472 38144 : switch (TREE_CODE (_q30))
12473 : {
12474 528 : case SSA_NAME:
12475 528 : {
12476 528 : switch (TREE_CODE (_q31))
12477 : {
12478 0 : case CALL_EXPR:
12479 0 : switch (get_call_combined_fn (_q31))
12480 : {
12481 0 : case CFN_BUILT_IN_FLOORF:
12482 0 : if (call_expr_nargs (_q31) == 1)
12483 : {
12484 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12485 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12486 : {
12487 0 : switch (TREE_CODE (_q50))
12488 : {
12489 0 : case SSA_NAME:
12490 0 : {
12491 0 : switch (TREE_CODE (_q21))
12492 : {
12493 0 : case MINUS_EXPR:
12494 0 : {
12495 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12496 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12497 0 : switch (TREE_CODE (_q80))
12498 : {
12499 0 : case CALL_EXPR:
12500 0 : switch (get_call_combined_fn (_q80))
12501 : {
12502 0 : case CFN_BUILT_IN_CEILF:
12503 0 : if (call_expr_nargs (_q80) == 1)
12504 : {
12505 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12506 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12507 : {
12508 0 : switch (TREE_CODE (_q90))
12509 : {
12510 0 : case SSA_NAME:
12511 0 : {
12512 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12513 : {
12514 0 : switch (TREE_CODE (_q81))
12515 : {
12516 0 : case SSA_NAME:
12517 0 : {
12518 0 : switch (TREE_CODE (_p1))
12519 : {
12520 0 : case CALL_EXPR:
12521 0 : switch (get_call_combined_fn (_p1))
12522 : {
12523 0 : case CFN_BUILT_IN_CEILF:
12524 0 : if (call_expr_nargs (_p1) == 1)
12525 : {
12526 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12527 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12528 : {
12529 0 : switch (TREE_CODE (_q140))
12530 : {
12531 0 : case SSA_NAME:
12532 0 : {
12533 0 : switch (TREE_CODE (_p2))
12534 : {
12535 0 : case CALL_EXPR:
12536 0 : switch (get_call_combined_fn (_p2))
12537 : {
12538 0 : case CFN_BUILT_IN_FLOORF:
12539 0 : if (call_expr_nargs (_p2) == 1)
12540 : {
12541 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12542 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12543 : {
12544 0 : switch (TREE_CODE (_q170))
12545 : {
12546 0 : case SSA_NAME:
12547 0 : {
12548 0 : {
12549 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12550 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
12551 0 : if (res) return res;
12552 : }
12553 0 : break;
12554 : }
12555 : default:;
12556 : }
12557 : }
12558 : }
12559 : break;
12560 : default:;
12561 : }
12562 : break;
12563 : default:;
12564 : }
12565 : break;
12566 : }
12567 : default:;
12568 : }
12569 : }
12570 : }
12571 : break;
12572 : default:;
12573 : }
12574 : break;
12575 : default:;
12576 : }
12577 : break;
12578 : }
12579 : default:;
12580 : }
12581 : }
12582 : break;
12583 : }
12584 : default:;
12585 : }
12586 : }
12587 : }
12588 : break;
12589 : default:;
12590 : }
12591 : break;
12592 : default:;
12593 : }
12594 : break;
12595 : }
12596 : default:;
12597 : }
12598 : break;
12599 : }
12600 : default:;
12601 : }
12602 : }
12603 : }
12604 : break;
12605 0 : case CFN_BUILT_IN_FLOORL:
12606 0 : if (call_expr_nargs (_q31) == 1)
12607 : {
12608 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12609 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12610 : {
12611 0 : switch (TREE_CODE (_q50))
12612 : {
12613 0 : case SSA_NAME:
12614 0 : {
12615 0 : switch (TREE_CODE (_q21))
12616 : {
12617 0 : case MINUS_EXPR:
12618 0 : {
12619 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12620 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12621 0 : switch (TREE_CODE (_q80))
12622 : {
12623 0 : case CALL_EXPR:
12624 0 : switch (get_call_combined_fn (_q80))
12625 : {
12626 0 : case CFN_BUILT_IN_CEILL:
12627 0 : if (call_expr_nargs (_q80) == 1)
12628 : {
12629 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12630 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12631 : {
12632 0 : switch (TREE_CODE (_q90))
12633 : {
12634 0 : case SSA_NAME:
12635 0 : {
12636 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12637 : {
12638 0 : switch (TREE_CODE (_q81))
12639 : {
12640 0 : case SSA_NAME:
12641 0 : {
12642 0 : switch (TREE_CODE (_p1))
12643 : {
12644 0 : case CALL_EXPR:
12645 0 : switch (get_call_combined_fn (_p1))
12646 : {
12647 0 : case CFN_BUILT_IN_CEILL:
12648 0 : if (call_expr_nargs (_p1) == 1)
12649 : {
12650 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12651 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12652 : {
12653 0 : switch (TREE_CODE (_q140))
12654 : {
12655 0 : case SSA_NAME:
12656 0 : {
12657 0 : switch (TREE_CODE (_p2))
12658 : {
12659 0 : case CALL_EXPR:
12660 0 : switch (get_call_combined_fn (_p2))
12661 : {
12662 0 : case CFN_BUILT_IN_FLOORL:
12663 0 : if (call_expr_nargs (_p2) == 1)
12664 : {
12665 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12666 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12667 : {
12668 0 : switch (TREE_CODE (_q170))
12669 : {
12670 0 : case SSA_NAME:
12671 0 : {
12672 0 : {
12673 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12674 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
12675 0 : if (res) return res;
12676 : }
12677 0 : break;
12678 : }
12679 : default:;
12680 : }
12681 : }
12682 : }
12683 : break;
12684 : default:;
12685 : }
12686 : break;
12687 : default:;
12688 : }
12689 : break;
12690 : }
12691 : default:;
12692 : }
12693 : }
12694 : }
12695 : break;
12696 : default:;
12697 : }
12698 : break;
12699 : default:;
12700 : }
12701 : break;
12702 : }
12703 : default:;
12704 : }
12705 : }
12706 : break;
12707 : }
12708 : default:;
12709 : }
12710 : }
12711 : }
12712 : break;
12713 : default:;
12714 : }
12715 : break;
12716 : default:;
12717 : }
12718 : break;
12719 : }
12720 : default:;
12721 : }
12722 : break;
12723 : }
12724 : default:;
12725 : }
12726 : }
12727 : }
12728 : break;
12729 0 : case CFN_FLOOR:
12730 0 : if (call_expr_nargs (_q31) == 1)
12731 : {
12732 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12733 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12734 : {
12735 0 : switch (TREE_CODE (_q50))
12736 : {
12737 0 : case SSA_NAME:
12738 0 : {
12739 0 : switch (TREE_CODE (_q21))
12740 : {
12741 0 : case MINUS_EXPR:
12742 0 : {
12743 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12744 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12745 0 : switch (TREE_CODE (_q80))
12746 : {
12747 0 : case CALL_EXPR:
12748 0 : switch (get_call_combined_fn (_q80))
12749 : {
12750 0 : case CFN_CEIL:
12751 0 : if (call_expr_nargs (_q80) == 1)
12752 : {
12753 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12754 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12755 : {
12756 0 : switch (TREE_CODE (_q90))
12757 : {
12758 0 : case SSA_NAME:
12759 0 : {
12760 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12761 : {
12762 0 : switch (TREE_CODE (_q81))
12763 : {
12764 0 : case SSA_NAME:
12765 0 : {
12766 0 : switch (TREE_CODE (_p1))
12767 : {
12768 0 : case CALL_EXPR:
12769 0 : switch (get_call_combined_fn (_p1))
12770 : {
12771 0 : case CFN_CEIL:
12772 0 : if (call_expr_nargs (_p1) == 1)
12773 : {
12774 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12775 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12776 : {
12777 0 : switch (TREE_CODE (_q140))
12778 : {
12779 0 : case SSA_NAME:
12780 0 : {
12781 0 : switch (TREE_CODE (_p2))
12782 : {
12783 0 : case CALL_EXPR:
12784 0 : switch (get_call_combined_fn (_p2))
12785 : {
12786 0 : case CFN_FLOOR:
12787 0 : if (call_expr_nargs (_p2) == 1)
12788 : {
12789 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12790 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12791 : {
12792 0 : switch (TREE_CODE (_q170))
12793 : {
12794 0 : case SSA_NAME:
12795 0 : {
12796 0 : {
12797 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12798 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
12799 0 : if (res) return res;
12800 : }
12801 0 : break;
12802 : }
12803 : default:;
12804 : }
12805 : }
12806 : }
12807 : break;
12808 : default:;
12809 : }
12810 : break;
12811 : default:;
12812 : }
12813 : break;
12814 : }
12815 : default:;
12816 : }
12817 : }
12818 : }
12819 : break;
12820 : default:;
12821 : }
12822 : break;
12823 : default:;
12824 : }
12825 : break;
12826 : }
12827 : default:;
12828 : }
12829 : }
12830 : break;
12831 : }
12832 : default:;
12833 : }
12834 : }
12835 : }
12836 : break;
12837 : default:;
12838 : }
12839 : break;
12840 : default:;
12841 : }
12842 : break;
12843 : }
12844 : default:;
12845 : }
12846 : break;
12847 : }
12848 : default:;
12849 : }
12850 : }
12851 : }
12852 : break;
12853 0 : case CFN_BUILT_IN_FLOOR:
12854 0 : if (call_expr_nargs (_q31) == 1)
12855 : {
12856 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12857 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12858 : {
12859 0 : switch (TREE_CODE (_q50))
12860 : {
12861 0 : case SSA_NAME:
12862 0 : {
12863 0 : switch (TREE_CODE (_q21))
12864 : {
12865 0 : case MINUS_EXPR:
12866 0 : {
12867 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12868 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12869 0 : switch (TREE_CODE (_q80))
12870 : {
12871 0 : case CALL_EXPR:
12872 0 : switch (get_call_combined_fn (_q80))
12873 : {
12874 0 : case CFN_BUILT_IN_CEIL:
12875 0 : if (call_expr_nargs (_q80) == 1)
12876 : {
12877 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12878 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12879 : {
12880 0 : switch (TREE_CODE (_q90))
12881 : {
12882 0 : case SSA_NAME:
12883 0 : {
12884 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12885 : {
12886 0 : switch (TREE_CODE (_q81))
12887 : {
12888 0 : case SSA_NAME:
12889 0 : {
12890 0 : switch (TREE_CODE (_p1))
12891 : {
12892 0 : case CALL_EXPR:
12893 0 : switch (get_call_combined_fn (_p1))
12894 : {
12895 0 : case CFN_BUILT_IN_CEIL:
12896 0 : if (call_expr_nargs (_p1) == 1)
12897 : {
12898 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12899 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12900 : {
12901 0 : switch (TREE_CODE (_q140))
12902 : {
12903 0 : case SSA_NAME:
12904 0 : {
12905 0 : switch (TREE_CODE (_p2))
12906 : {
12907 0 : case CALL_EXPR:
12908 0 : switch (get_call_combined_fn (_p2))
12909 : {
12910 0 : case CFN_BUILT_IN_FLOOR:
12911 0 : if (call_expr_nargs (_p2) == 1)
12912 : {
12913 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12914 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12915 : {
12916 0 : switch (TREE_CODE (_q170))
12917 : {
12918 0 : case SSA_NAME:
12919 0 : {
12920 0 : {
12921 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12922 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
12923 0 : if (res) return res;
12924 : }
12925 0 : break;
12926 : }
12927 : default:;
12928 : }
12929 : }
12930 : }
12931 : break;
12932 : default:;
12933 : }
12934 : break;
12935 : default:;
12936 : }
12937 : break;
12938 : }
12939 : default:;
12940 : }
12941 : }
12942 : }
12943 : break;
12944 : default:;
12945 : }
12946 : break;
12947 : default:;
12948 : }
12949 : break;
12950 : }
12951 : default:;
12952 : }
12953 : }
12954 : break;
12955 : }
12956 : default:;
12957 : }
12958 : }
12959 : }
12960 : break;
12961 : default:;
12962 : }
12963 : break;
12964 : default:;
12965 : }
12966 : break;
12967 : }
12968 : default:;
12969 : }
12970 : break;
12971 : }
12972 : default:;
12973 : }
12974 : }
12975 : }
12976 : break;
12977 : default:;
12978 : }
12979 : break;
12980 : default:;
12981 : }
12982 : break;
12983 : }
12984 : default:;
12985 : }
12986 : break;
12987 : }
12988 551945 : default:;
12989 : }
12990 551945 : switch (TREE_CODE (_p1))
12991 : {
12992 0 : case BIT_IOR_EXPR:
12993 0 : {
12994 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12995 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12996 0 : switch (TREE_CODE (_q51))
12997 : {
12998 0 : case INTEGER_CST:
12999 0 : {
13000 0 : switch (TREE_CODE (_p2))
13001 : {
13002 0 : case BIT_AND_EXPR:
13003 0 : {
13004 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13005 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13006 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13007 : {
13008 0 : switch (TREE_CODE (_q81))
13009 : {
13010 0 : case INTEGER_CST:
13011 0 : {
13012 0 : {
13013 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
13014 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13015 0 : if (res) return res;
13016 : }
13017 0 : break;
13018 : }
13019 : default:;
13020 : }
13021 : }
13022 : break;
13023 : }
13024 : default:;
13025 : }
13026 : break;
13027 : }
13028 : default:;
13029 : }
13030 : break;
13031 : }
13032 551945 : default:;
13033 : }
13034 551945 : switch (TREE_CODE (_q20))
13035 : {
13036 56129 : CASE_CONVERT:
13037 56129 : {
13038 56129 : tree _q30 = TREE_OPERAND (_q20, 0);
13039 56129 : switch (TREE_CODE (_q21))
13040 : {
13041 26899 : case INTEGER_CST:
13042 26899 : {
13043 26899 : switch (TREE_CODE (_p1))
13044 : {
13045 10283 : CASE_CONVERT:
13046 10283 : {
13047 10283 : tree _q60 = TREE_OPERAND (_p1, 0);
13048 10283 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13049 : {
13050 6198 : switch (TREE_CODE (_p2))
13051 : {
13052 6190 : case INTEGER_CST:
13053 6190 : {
13054 6190 : {
13055 6190 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13056 6190 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13057 6190 : if (res) return res;
13058 : }
13059 6190 : break;
13060 : }
13061 : default:;
13062 : }
13063 : }
13064 : break;
13065 : }
13066 26899 : default:;
13067 : }
13068 26899 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
13069 : {
13070 312 : switch (TREE_CODE (_p2))
13071 : {
13072 299 : case INTEGER_CST:
13073 299 : {
13074 299 : {
13075 299 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13076 299 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13077 299 : if (res) return res;
13078 : }
13079 294 : break;
13080 : }
13081 : default:;
13082 : }
13083 : }
13084 26894 : switch (TREE_CODE (_p1))
13085 : {
13086 385 : case PLUS_EXPR:
13087 385 : {
13088 385 : tree _q60 = TREE_OPERAND (_p1, 0);
13089 385 : tree _q61 = TREE_OPERAND (_p1, 1);
13090 385 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13091 : {
13092 0 : switch (TREE_CODE (_q61))
13093 : {
13094 0 : case INTEGER_CST:
13095 0 : {
13096 0 : switch (TREE_CODE (_p2))
13097 : {
13098 0 : case INTEGER_CST:
13099 0 : {
13100 0 : {
13101 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13102 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
13103 0 : if (res) return res;
13104 : }
13105 0 : break;
13106 : }
13107 : default:;
13108 : }
13109 : break;
13110 : }
13111 : default:;
13112 : }
13113 : }
13114 : break;
13115 : }
13116 76 : case MINUS_EXPR:
13117 76 : {
13118 76 : tree _q60 = TREE_OPERAND (_p1, 0);
13119 76 : tree _q61 = TREE_OPERAND (_p1, 1);
13120 76 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13121 : {
13122 0 : switch (TREE_CODE (_q61))
13123 : {
13124 0 : case INTEGER_CST:
13125 0 : {
13126 0 : switch (TREE_CODE (_p2))
13127 : {
13128 0 : case INTEGER_CST:
13129 0 : {
13130 0 : {
13131 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13132 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
13133 0 : if (res) return res;
13134 : }
13135 0 : break;
13136 : }
13137 : default:;
13138 : }
13139 : break;
13140 : }
13141 : default:;
13142 : }
13143 : }
13144 : break;
13145 : }
13146 : default:;
13147 : }
13148 : break;
13149 : }
13150 : default:;
13151 : }
13152 : break;
13153 : }
13154 551940 : default:;
13155 : }
13156 551940 : switch (TREE_CODE (_q21))
13157 : {
13158 205395 : case INTEGER_CST:
13159 205395 : {
13160 205395 : switch (TREE_CODE (_p1))
13161 : {
13162 54553 : CASE_CONVERT:
13163 54553 : {
13164 54553 : tree _q50 = TREE_OPERAND (_p1, 0);
13165 54553 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13166 : {
13167 150 : switch (TREE_CODE (_p2))
13168 : {
13169 45 : case INTEGER_CST:
13170 45 : {
13171 45 : {
13172 45 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13173 45 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13174 45 : if (res) return res;
13175 : }
13176 45 : break;
13177 : }
13178 : default:;
13179 : }
13180 : }
13181 : break;
13182 : }
13183 205395 : default:;
13184 : }
13185 205395 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13186 : {
13187 41123 : switch (TREE_CODE (_p2))
13188 : {
13189 10649 : case INTEGER_CST:
13190 10649 : {
13191 10649 : {
13192 10649 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13193 10649 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13194 10649 : if (res) return res;
13195 : }
13196 15 : break;
13197 : }
13198 : default:;
13199 : }
13200 : }
13201 194761 : switch (TREE_CODE (_p1))
13202 : {
13203 16869 : case PLUS_EXPR:
13204 16869 : {
13205 16869 : tree _q50 = TREE_OPERAND (_p1, 0);
13206 16869 : tree _q51 = TREE_OPERAND (_p1, 1);
13207 16869 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13208 : {
13209 6477 : switch (TREE_CODE (_q51))
13210 : {
13211 6477 : case INTEGER_CST:
13212 6477 : {
13213 6477 : switch (TREE_CODE (_p2))
13214 : {
13215 6477 : case INTEGER_CST:
13216 6477 : {
13217 6477 : {
13218 6477 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13219 6477 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
13220 6477 : if (res) return res;
13221 : }
13222 0 : break;
13223 : }
13224 : default:;
13225 : }
13226 : break;
13227 : }
13228 : default:;
13229 : }
13230 : }
13231 : break;
13232 : }
13233 226 : case MINUS_EXPR:
13234 226 : {
13235 226 : tree _q50 = TREE_OPERAND (_p1, 0);
13236 226 : tree _q51 = TREE_OPERAND (_p1, 1);
13237 226 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13238 : {
13239 0 : switch (TREE_CODE (_q51))
13240 : {
13241 0 : case INTEGER_CST:
13242 0 : {
13243 0 : switch (TREE_CODE (_p2))
13244 : {
13245 0 : case INTEGER_CST:
13246 0 : {
13247 0 : {
13248 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13249 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
13250 0 : if (res) return res;
13251 : }
13252 0 : break;
13253 : }
13254 : default:;
13255 : }
13256 : break;
13257 : }
13258 : default:;
13259 : }
13260 : }
13261 : break;
13262 : }
13263 : default:;
13264 : }
13265 : break;
13266 : }
13267 534829 : default:;
13268 : }
13269 534829 : switch (TREE_CODE (_p1))
13270 : {
13271 16 : case MIN_EXPR:
13272 16 : {
13273 16 : tree _q50 = TREE_OPERAND (_p1, 0);
13274 16 : tree _q51 = TREE_OPERAND (_p1, 1);
13275 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13276 : {
13277 15 : switch (TREE_CODE (_p2))
13278 : {
13279 0 : case MIN_EXPR:
13280 0 : {
13281 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13282 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13283 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13284 : {
13285 0 : {
13286 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13287 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13288 0 : if (res) return res;
13289 : }
13290 : }
13291 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13292 : {
13293 0 : {
13294 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13295 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13296 0 : if (res) return res;
13297 : }
13298 : }
13299 : break;
13300 : }
13301 15 : default:;
13302 : }
13303 15 : {
13304 15 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
13305 15 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13306 15 : if (res) return res;
13307 : }
13308 : }
13309 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13310 : {
13311 0 : switch (TREE_CODE (_p2))
13312 : {
13313 0 : case MIN_EXPR:
13314 0 : {
13315 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13316 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13317 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13318 : {
13319 0 : {
13320 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13321 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13322 0 : if (res) return res;
13323 : }
13324 : }
13325 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13326 : {
13327 0 : {
13328 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13329 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13330 0 : if (res) return res;
13331 : }
13332 : }
13333 : break;
13334 : }
13335 : default:;
13336 : }
13337 : }
13338 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13339 : {
13340 0 : switch (TREE_CODE (_p2))
13341 : {
13342 0 : case MIN_EXPR:
13343 0 : {
13344 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13345 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13346 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13347 : {
13348 0 : {
13349 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
13350 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
13351 0 : if (res) return res;
13352 : }
13353 : }
13354 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13355 : {
13356 0 : {
13357 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13358 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
13359 0 : if (res) return res;
13360 : }
13361 : }
13362 : break;
13363 : }
13364 : default:;
13365 : }
13366 : }
13367 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13368 : {
13369 0 : switch (TREE_CODE (_p2))
13370 : {
13371 0 : case MIN_EXPR:
13372 0 : {
13373 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13374 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13375 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13376 : {
13377 0 : {
13378 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13379 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
13380 0 : if (res) return res;
13381 : }
13382 : }
13383 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13384 : {
13385 0 : {
13386 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13387 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
13388 0 : if (res) return res;
13389 : }
13390 : }
13391 : break;
13392 : }
13393 : default:;
13394 : }
13395 : }
13396 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13397 : {
13398 0 : {
13399 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
13400 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13401 0 : if (res) return res;
13402 : }
13403 : }
13404 : break;
13405 : }
13406 9 : case MAX_EXPR:
13407 9 : {
13408 9 : tree _q50 = TREE_OPERAND (_p1, 0);
13409 9 : tree _q51 = TREE_OPERAND (_p1, 1);
13410 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13411 : {
13412 1 : switch (TREE_CODE (_p2))
13413 : {
13414 0 : case MAX_EXPR:
13415 0 : {
13416 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13417 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13418 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13419 : {
13420 0 : {
13421 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13422 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13423 0 : if (res) return res;
13424 : }
13425 : }
13426 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13427 : {
13428 0 : {
13429 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13430 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13431 0 : if (res) return res;
13432 : }
13433 : }
13434 : break;
13435 : }
13436 : default:;
13437 : }
13438 : }
13439 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13440 : {
13441 1 : switch (TREE_CODE (_p2))
13442 : {
13443 0 : case MAX_EXPR:
13444 0 : {
13445 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13446 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13447 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13448 : {
13449 0 : {
13450 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13451 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13452 0 : if (res) return res;
13453 : }
13454 : }
13455 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13456 : {
13457 0 : {
13458 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13459 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13460 0 : if (res) return res;
13461 : }
13462 : }
13463 : break;
13464 : }
13465 : default:;
13466 : }
13467 : }
13468 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13469 : {
13470 1 : switch (TREE_CODE (_p2))
13471 : {
13472 0 : case MAX_EXPR:
13473 0 : {
13474 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13475 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13476 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13477 : {
13478 0 : {
13479 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
13480 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13481 0 : if (res) return res;
13482 : }
13483 : }
13484 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13485 : {
13486 0 : {
13487 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13488 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13489 0 : if (res) return res;
13490 : }
13491 : }
13492 : break;
13493 : }
13494 1 : default:;
13495 : }
13496 1 : {
13497 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
13498 1 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13499 1 : if (res) return res;
13500 : }
13501 : }
13502 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13503 : {
13504 8 : switch (TREE_CODE (_p2))
13505 : {
13506 0 : case MAX_EXPR:
13507 0 : {
13508 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13509 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13510 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13511 : {
13512 0 : {
13513 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13514 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13515 0 : if (res) return res;
13516 : }
13517 : }
13518 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13519 : {
13520 0 : {
13521 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13522 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13523 0 : if (res) return res;
13524 : }
13525 : }
13526 : break;
13527 : }
13528 8 : default:;
13529 : }
13530 8 : {
13531 8 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
13532 8 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
13533 8 : if (res) return res;
13534 : }
13535 : }
13536 : break;
13537 : }
13538 534819 : default:;
13539 : }
13540 534819 : {
13541 534819 : tree _q20_pops[1];
13542 534819 : if (tree_nop_convert (_q20, _q20_pops))
13543 : {
13544 22018 : tree _q30 = _q20_pops[0];
13545 22018 : if (integer_zerop (_q21))
13546 : {
13547 18830 : switch (TREE_CODE (_p1))
13548 : {
13549 0 : case MAX_EXPR:
13550 0 : {
13551 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13552 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13553 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13554 : {
13555 0 : switch (TREE_CODE (_q61))
13556 : {
13557 0 : case INTEGER_CST:
13558 0 : {
13559 0 : switch (TREE_CODE (_p2))
13560 : {
13561 0 : case INTEGER_CST:
13562 0 : {
13563 0 : {
13564 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
13565 0 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13566 0 : if (res) return res;
13567 : }
13568 0 : break;
13569 : }
13570 : default:;
13571 : }
13572 : break;
13573 : }
13574 : default:;
13575 : }
13576 : }
13577 : break;
13578 : }
13579 : default:;
13580 : }
13581 : }
13582 : }
13583 : }
13584 534819 : if (tree_expr_nonnegative_p (_q21))
13585 : {
13586 383239 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13587 : {
13588 30547 : switch (TREE_CODE (_p2))
13589 : {
13590 0 : case ABS_EXPR:
13591 0 : {
13592 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13593 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13594 : {
13595 0 : {
13596 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13597 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13598 0 : if (res) return res;
13599 : }
13600 : }
13601 : break;
13602 : }
13603 : default:;
13604 : }
13605 : }
13606 383239 : switch (TREE_CODE (_p1))
13607 : {
13608 12 : case ABS_EXPR:
13609 12 : {
13610 12 : tree _q50 = TREE_OPERAND (_p1, 0);
13611 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13612 : {
13613 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
13614 : {
13615 0 : {
13616 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
13617 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13618 0 : if (res) return res;
13619 : }
13620 : }
13621 : }
13622 : break;
13623 : }
13624 : default:;
13625 : }
13626 : }
13627 : break;
13628 : }
13629 900600 : case GT_EXPR:
13630 900600 : {
13631 900600 : tree _q20 = TREE_OPERAND (_p0, 0);
13632 900600 : tree _q21 = TREE_OPERAND (_p0, 1);
13633 900600 : switch (TREE_CODE (_q20))
13634 : {
13635 1052 : case MINUS_EXPR:
13636 1052 : {
13637 1052 : tree _q30 = TREE_OPERAND (_q20, 0);
13638 1052 : tree _q31 = TREE_OPERAND (_q20, 1);
13639 1052 : switch (TREE_CODE (_q30))
13640 : {
13641 0 : case CALL_EXPR:
13642 0 : switch (get_call_combined_fn (_q30))
13643 : {
13644 0 : case CFN_BUILT_IN_CEIL:
13645 0 : if (call_expr_nargs (_q30) == 1)
13646 : {
13647 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13648 0 : switch (TREE_CODE (_q40))
13649 : {
13650 0 : case SSA_NAME:
13651 0 : {
13652 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13653 : {
13654 0 : switch (TREE_CODE (_q31))
13655 : {
13656 0 : case SSA_NAME:
13657 0 : {
13658 0 : switch (TREE_CODE (_q21))
13659 : {
13660 0 : case MINUS_EXPR:
13661 0 : {
13662 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13663 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13664 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13665 : {
13666 0 : switch (TREE_CODE (_q80))
13667 : {
13668 0 : case SSA_NAME:
13669 0 : {
13670 0 : switch (TREE_CODE (_q81))
13671 : {
13672 0 : case CALL_EXPR:
13673 0 : switch (get_call_combined_fn (_q81))
13674 : {
13675 0 : case CFN_BUILT_IN_FLOOR:
13676 0 : if (call_expr_nargs (_q81) == 1)
13677 : {
13678 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13679 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13680 : {
13681 0 : switch (TREE_CODE (_q110))
13682 : {
13683 0 : case SSA_NAME:
13684 0 : {
13685 0 : switch (TREE_CODE (_p1))
13686 : {
13687 0 : case CALL_EXPR:
13688 0 : switch (get_call_combined_fn (_p1))
13689 : {
13690 0 : case CFN_BUILT_IN_FLOOR:
13691 0 : if (call_expr_nargs (_p1) == 1)
13692 : {
13693 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13694 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13695 : {
13696 0 : switch (TREE_CODE (_q140))
13697 : {
13698 0 : case SSA_NAME:
13699 0 : {
13700 0 : switch (TREE_CODE (_p2))
13701 : {
13702 0 : case CALL_EXPR:
13703 0 : switch (get_call_combined_fn (_p2))
13704 : {
13705 0 : case CFN_BUILT_IN_CEIL:
13706 0 : if (call_expr_nargs (_p2) == 1)
13707 : {
13708 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13709 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13710 : {
13711 0 : switch (TREE_CODE (_q170))
13712 : {
13713 0 : case SSA_NAME:
13714 0 : {
13715 0 : {
13716 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13717 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
13718 0 : if (res) return res;
13719 : }
13720 0 : break;
13721 : }
13722 : default:;
13723 : }
13724 : }
13725 : }
13726 : break;
13727 : default:;
13728 : }
13729 : break;
13730 : default:;
13731 : }
13732 : break;
13733 : }
13734 : default:;
13735 : }
13736 : }
13737 : }
13738 : break;
13739 : default:;
13740 : }
13741 : break;
13742 : default:;
13743 : }
13744 : break;
13745 : }
13746 : default:;
13747 : }
13748 : }
13749 : }
13750 : break;
13751 : default:;
13752 : }
13753 : break;
13754 : default:;
13755 : }
13756 : break;
13757 : }
13758 : default:;
13759 : }
13760 : }
13761 : break;
13762 : }
13763 : default:;
13764 : }
13765 : break;
13766 : }
13767 : default:;
13768 : }
13769 : }
13770 : break;
13771 : }
13772 : default:;
13773 : }
13774 : }
13775 : break;
13776 0 : case CFN_CEIL:
13777 0 : if (call_expr_nargs (_q30) == 1)
13778 : {
13779 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13780 0 : switch (TREE_CODE (_q40))
13781 : {
13782 0 : case SSA_NAME:
13783 0 : {
13784 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13785 : {
13786 0 : switch (TREE_CODE (_q31))
13787 : {
13788 0 : case SSA_NAME:
13789 0 : {
13790 0 : switch (TREE_CODE (_q21))
13791 : {
13792 0 : case MINUS_EXPR:
13793 0 : {
13794 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13795 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13796 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13797 : {
13798 0 : switch (TREE_CODE (_q80))
13799 : {
13800 0 : case SSA_NAME:
13801 0 : {
13802 0 : switch (TREE_CODE (_q81))
13803 : {
13804 0 : case CALL_EXPR:
13805 0 : switch (get_call_combined_fn (_q81))
13806 : {
13807 0 : case CFN_FLOOR:
13808 0 : if (call_expr_nargs (_q81) == 1)
13809 : {
13810 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13811 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13812 : {
13813 0 : switch (TREE_CODE (_q110))
13814 : {
13815 0 : case SSA_NAME:
13816 0 : {
13817 0 : switch (TREE_CODE (_p1))
13818 : {
13819 0 : case CALL_EXPR:
13820 0 : switch (get_call_combined_fn (_p1))
13821 : {
13822 0 : case CFN_FLOOR:
13823 0 : if (call_expr_nargs (_p1) == 1)
13824 : {
13825 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13826 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13827 : {
13828 0 : switch (TREE_CODE (_q140))
13829 : {
13830 0 : case SSA_NAME:
13831 0 : {
13832 0 : switch (TREE_CODE (_p2))
13833 : {
13834 0 : case CALL_EXPR:
13835 0 : switch (get_call_combined_fn (_p2))
13836 : {
13837 0 : case CFN_CEIL:
13838 0 : if (call_expr_nargs (_p2) == 1)
13839 : {
13840 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13841 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13842 : {
13843 0 : switch (TREE_CODE (_q170))
13844 : {
13845 0 : case SSA_NAME:
13846 0 : {
13847 0 : {
13848 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13849 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
13850 0 : if (res) return res;
13851 : }
13852 0 : break;
13853 : }
13854 : default:;
13855 : }
13856 : }
13857 : }
13858 : break;
13859 : default:;
13860 : }
13861 : break;
13862 : default:;
13863 : }
13864 : break;
13865 : }
13866 : default:;
13867 : }
13868 : }
13869 : }
13870 : break;
13871 : default:;
13872 : }
13873 : break;
13874 : default:;
13875 : }
13876 : break;
13877 : }
13878 : default:;
13879 : }
13880 : }
13881 : }
13882 : break;
13883 : default:;
13884 : }
13885 : break;
13886 : default:;
13887 : }
13888 : break;
13889 : }
13890 : default:;
13891 : }
13892 : }
13893 : break;
13894 : }
13895 : default:;
13896 : }
13897 : break;
13898 : }
13899 : default:;
13900 : }
13901 : }
13902 : break;
13903 : }
13904 : default:;
13905 : }
13906 : }
13907 : break;
13908 0 : case CFN_BUILT_IN_CEILF:
13909 0 : if (call_expr_nargs (_q30) == 1)
13910 : {
13911 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13912 0 : switch (TREE_CODE (_q40))
13913 : {
13914 0 : case SSA_NAME:
13915 0 : {
13916 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13917 : {
13918 0 : switch (TREE_CODE (_q31))
13919 : {
13920 0 : case SSA_NAME:
13921 0 : {
13922 0 : switch (TREE_CODE (_q21))
13923 : {
13924 0 : case MINUS_EXPR:
13925 0 : {
13926 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13927 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13928 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13929 : {
13930 0 : switch (TREE_CODE (_q80))
13931 : {
13932 0 : case SSA_NAME:
13933 0 : {
13934 0 : switch (TREE_CODE (_q81))
13935 : {
13936 0 : case CALL_EXPR:
13937 0 : switch (get_call_combined_fn (_q81))
13938 : {
13939 0 : case CFN_BUILT_IN_FLOORF:
13940 0 : if (call_expr_nargs (_q81) == 1)
13941 : {
13942 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13943 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13944 : {
13945 0 : switch (TREE_CODE (_q110))
13946 : {
13947 0 : case SSA_NAME:
13948 0 : {
13949 0 : switch (TREE_CODE (_p1))
13950 : {
13951 0 : case CALL_EXPR:
13952 0 : switch (get_call_combined_fn (_p1))
13953 : {
13954 0 : case CFN_BUILT_IN_FLOORF:
13955 0 : if (call_expr_nargs (_p1) == 1)
13956 : {
13957 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13958 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13959 : {
13960 0 : switch (TREE_CODE (_q140))
13961 : {
13962 0 : case SSA_NAME:
13963 0 : {
13964 0 : switch (TREE_CODE (_p2))
13965 : {
13966 0 : case CALL_EXPR:
13967 0 : switch (get_call_combined_fn (_p2))
13968 : {
13969 0 : case CFN_BUILT_IN_CEILF:
13970 0 : if (call_expr_nargs (_p2) == 1)
13971 : {
13972 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13973 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13974 : {
13975 0 : switch (TREE_CODE (_q170))
13976 : {
13977 0 : case SSA_NAME:
13978 0 : {
13979 0 : {
13980 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13981 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
13982 0 : if (res) return res;
13983 : }
13984 0 : break;
13985 : }
13986 : default:;
13987 : }
13988 : }
13989 : }
13990 : break;
13991 : default:;
13992 : }
13993 : break;
13994 : default:;
13995 : }
13996 : break;
13997 : }
13998 : default:;
13999 : }
14000 : }
14001 : }
14002 : break;
14003 : default:;
14004 : }
14005 : break;
14006 : default:;
14007 : }
14008 : break;
14009 : }
14010 : default:;
14011 : }
14012 : }
14013 : }
14014 : break;
14015 : default:;
14016 : }
14017 : break;
14018 : default:;
14019 : }
14020 : break;
14021 : }
14022 : default:;
14023 : }
14024 : }
14025 : break;
14026 : }
14027 : default:;
14028 : }
14029 : break;
14030 : }
14031 : default:;
14032 : }
14033 : }
14034 : break;
14035 : }
14036 : default:;
14037 : }
14038 : }
14039 : break;
14040 0 : case CFN_BUILT_IN_CEILL:
14041 0 : if (call_expr_nargs (_q30) == 1)
14042 : {
14043 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14044 0 : switch (TREE_CODE (_q40))
14045 : {
14046 0 : case SSA_NAME:
14047 0 : {
14048 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14049 : {
14050 0 : switch (TREE_CODE (_q31))
14051 : {
14052 0 : case SSA_NAME:
14053 0 : {
14054 0 : switch (TREE_CODE (_q21))
14055 : {
14056 0 : case MINUS_EXPR:
14057 0 : {
14058 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14059 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14060 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14061 : {
14062 0 : switch (TREE_CODE (_q80))
14063 : {
14064 0 : case SSA_NAME:
14065 0 : {
14066 0 : switch (TREE_CODE (_q81))
14067 : {
14068 0 : case CALL_EXPR:
14069 0 : switch (get_call_combined_fn (_q81))
14070 : {
14071 0 : case CFN_BUILT_IN_FLOORL:
14072 0 : if (call_expr_nargs (_q81) == 1)
14073 : {
14074 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14075 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14076 : {
14077 0 : switch (TREE_CODE (_q110))
14078 : {
14079 0 : case SSA_NAME:
14080 0 : {
14081 0 : switch (TREE_CODE (_p1))
14082 : {
14083 0 : case CALL_EXPR:
14084 0 : switch (get_call_combined_fn (_p1))
14085 : {
14086 0 : case CFN_BUILT_IN_FLOORL:
14087 0 : if (call_expr_nargs (_p1) == 1)
14088 : {
14089 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14090 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14091 : {
14092 0 : switch (TREE_CODE (_q140))
14093 : {
14094 0 : case SSA_NAME:
14095 0 : {
14096 0 : switch (TREE_CODE (_p2))
14097 : {
14098 0 : case CALL_EXPR:
14099 0 : switch (get_call_combined_fn (_p2))
14100 : {
14101 0 : case CFN_BUILT_IN_CEILL:
14102 0 : if (call_expr_nargs (_p2) == 1)
14103 : {
14104 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14105 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14106 : {
14107 0 : switch (TREE_CODE (_q170))
14108 : {
14109 0 : case SSA_NAME:
14110 0 : {
14111 0 : {
14112 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14113 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
14114 0 : if (res) return res;
14115 : }
14116 0 : break;
14117 : }
14118 : default:;
14119 : }
14120 : }
14121 : }
14122 : break;
14123 : default:;
14124 : }
14125 : break;
14126 : default:;
14127 : }
14128 : break;
14129 : }
14130 : default:;
14131 : }
14132 : }
14133 : }
14134 : break;
14135 : default:;
14136 : }
14137 : break;
14138 : default:;
14139 : }
14140 : break;
14141 : }
14142 : default:;
14143 : }
14144 : }
14145 : }
14146 : break;
14147 : default:;
14148 : }
14149 : break;
14150 : default:;
14151 : }
14152 : break;
14153 : }
14154 : default:;
14155 : }
14156 : }
14157 : break;
14158 : }
14159 : default:;
14160 : }
14161 : break;
14162 : }
14163 : default:;
14164 : }
14165 : }
14166 : break;
14167 : }
14168 : default:;
14169 : }
14170 : }
14171 : break;
14172 : default:;
14173 : }
14174 : break;
14175 : default:;
14176 : }
14177 : break;
14178 : }
14179 900600 : default:;
14180 : }
14181 900600 : switch (TREE_CODE (_p1))
14182 : {
14183 0 : case BIT_IOR_EXPR:
14184 0 : {
14185 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14186 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14187 0 : switch (TREE_CODE (_q51))
14188 : {
14189 0 : case INTEGER_CST:
14190 0 : {
14191 0 : switch (TREE_CODE (_p2))
14192 : {
14193 0 : case BIT_AND_EXPR:
14194 0 : {
14195 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14196 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14197 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14198 : {
14199 0 : switch (TREE_CODE (_q81))
14200 : {
14201 0 : case INTEGER_CST:
14202 0 : {
14203 0 : {
14204 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
14205 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14206 0 : if (res) return res;
14207 : }
14208 0 : break;
14209 : }
14210 : default:;
14211 : }
14212 : }
14213 : break;
14214 : }
14215 : default:;
14216 : }
14217 : break;
14218 : }
14219 : default:;
14220 : }
14221 : break;
14222 : }
14223 900600 : default:;
14224 : }
14225 900600 : switch (TREE_CODE (_q20))
14226 : {
14227 86394 : CASE_CONVERT:
14228 86394 : {
14229 86394 : tree _q30 = TREE_OPERAND (_q20, 0);
14230 86394 : switch (TREE_CODE (_q21))
14231 : {
14232 4209 : case INTEGER_CST:
14233 4209 : {
14234 4209 : switch (TREE_CODE (_p1))
14235 : {
14236 169 : CASE_CONVERT:
14237 169 : {
14238 169 : tree _q60 = TREE_OPERAND (_p1, 0);
14239 169 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14240 : {
14241 63 : switch (TREE_CODE (_p2))
14242 : {
14243 62 : case INTEGER_CST:
14244 62 : {
14245 62 : {
14246 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14247 62 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14248 62 : if (res) return res;
14249 : }
14250 62 : break;
14251 : }
14252 : default:;
14253 : }
14254 : }
14255 : break;
14256 : }
14257 4209 : default:;
14258 : }
14259 4209 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
14260 : {
14261 5 : switch (TREE_CODE (_p2))
14262 : {
14263 3 : case INTEGER_CST:
14264 3 : {
14265 3 : {
14266 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14267 3 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14268 3 : if (res) return res;
14269 : }
14270 3 : break;
14271 : }
14272 : default:;
14273 : }
14274 : }
14275 4209 : switch (TREE_CODE (_p1))
14276 : {
14277 1269 : case PLUS_EXPR:
14278 1269 : {
14279 1269 : tree _q60 = TREE_OPERAND (_p1, 0);
14280 1269 : tree _q61 = TREE_OPERAND (_p1, 1);
14281 1269 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14282 : {
14283 24 : switch (TREE_CODE (_q61))
14284 : {
14285 24 : case INTEGER_CST:
14286 24 : {
14287 24 : switch (TREE_CODE (_p2))
14288 : {
14289 24 : case INTEGER_CST:
14290 24 : {
14291 24 : {
14292 24 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14293 24 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
14294 24 : if (res) return res;
14295 : }
14296 24 : break;
14297 : }
14298 : default:;
14299 : }
14300 : break;
14301 : }
14302 : default:;
14303 : }
14304 : }
14305 : break;
14306 : }
14307 0 : case MINUS_EXPR:
14308 0 : {
14309 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14310 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14311 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14312 : {
14313 0 : switch (TREE_CODE (_q61))
14314 : {
14315 0 : case INTEGER_CST:
14316 0 : {
14317 0 : switch (TREE_CODE (_p2))
14318 : {
14319 0 : case INTEGER_CST:
14320 0 : {
14321 0 : {
14322 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14323 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
14324 0 : if (res) return res;
14325 : }
14326 0 : break;
14327 : }
14328 : default:;
14329 : }
14330 : break;
14331 : }
14332 : default:;
14333 : }
14334 : }
14335 : break;
14336 : }
14337 : default:;
14338 : }
14339 : break;
14340 : }
14341 : default:;
14342 : }
14343 : break;
14344 : }
14345 900600 : default:;
14346 : }
14347 900600 : switch (TREE_CODE (_q21))
14348 : {
14349 466301 : case INTEGER_CST:
14350 466301 : {
14351 466301 : switch (TREE_CODE (_p1))
14352 : {
14353 54594 : CASE_CONVERT:
14354 54594 : {
14355 54594 : tree _q50 = TREE_OPERAND (_p1, 0);
14356 54594 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14357 : {
14358 12605 : switch (TREE_CODE (_p2))
14359 : {
14360 12569 : case INTEGER_CST:
14361 12569 : {
14362 12569 : {
14363 12569 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14364 12569 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14365 12569 : if (res) return res;
14366 : }
14367 12253 : break;
14368 : }
14369 : default:;
14370 : }
14371 : }
14372 : break;
14373 : }
14374 465985 : default:;
14375 : }
14376 465985 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14377 : {
14378 8827 : switch (TREE_CODE (_p2))
14379 : {
14380 8669 : case INTEGER_CST:
14381 8669 : {
14382 8669 : {
14383 8669 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14384 8669 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14385 8669 : if (res) return res;
14386 : }
14387 31 : break;
14388 : }
14389 : default:;
14390 : }
14391 : }
14392 457347 : switch (TREE_CODE (_p1))
14393 : {
14394 46282 : case PLUS_EXPR:
14395 46282 : {
14396 46282 : tree _q50 = TREE_OPERAND (_p1, 0);
14397 46282 : tree _q51 = TREE_OPERAND (_p1, 1);
14398 46282 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14399 : {
14400 735 : switch (TREE_CODE (_q51))
14401 : {
14402 735 : case INTEGER_CST:
14403 735 : {
14404 735 : switch (TREE_CODE (_p2))
14405 : {
14406 727 : case INTEGER_CST:
14407 727 : {
14408 727 : {
14409 727 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
14410 727 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
14411 727 : if (res) return res;
14412 : }
14413 17 : break;
14414 : }
14415 : default:;
14416 : }
14417 : break;
14418 : }
14419 : default:;
14420 : }
14421 : }
14422 : break;
14423 : }
14424 200 : case MINUS_EXPR:
14425 200 : {
14426 200 : tree _q50 = TREE_OPERAND (_p1, 0);
14427 200 : tree _q51 = TREE_OPERAND (_p1, 1);
14428 200 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14429 : {
14430 4 : switch (TREE_CODE (_q51))
14431 : {
14432 0 : case INTEGER_CST:
14433 0 : {
14434 0 : switch (TREE_CODE (_p2))
14435 : {
14436 0 : case INTEGER_CST:
14437 0 : {
14438 0 : {
14439 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
14440 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
14441 0 : if (res) return res;
14442 : }
14443 0 : break;
14444 : }
14445 : default:;
14446 : }
14447 : break;
14448 : }
14449 : default:;
14450 : }
14451 : }
14452 : break;
14453 : }
14454 : default:;
14455 : }
14456 : break;
14457 : }
14458 890936 : default:;
14459 : }
14460 890936 : switch (TREE_CODE (_p1))
14461 : {
14462 18 : case MIN_EXPR:
14463 18 : {
14464 18 : tree _q50 = TREE_OPERAND (_p1, 0);
14465 18 : tree _q51 = TREE_OPERAND (_p1, 1);
14466 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14467 : {
14468 7 : switch (TREE_CODE (_p2))
14469 : {
14470 0 : case MIN_EXPR:
14471 0 : {
14472 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14473 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14474 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14475 : {
14476 0 : {
14477 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14478 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14479 0 : if (res) return res;
14480 : }
14481 : }
14482 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14483 : {
14484 0 : {
14485 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14486 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14487 0 : if (res) return res;
14488 : }
14489 : }
14490 : break;
14491 : }
14492 7 : default:;
14493 : }
14494 7 : {
14495 7 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
14496 7 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14497 7 : if (res) return res;
14498 : }
14499 : }
14500 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14501 : {
14502 0 : switch (TREE_CODE (_p2))
14503 : {
14504 0 : case MIN_EXPR:
14505 0 : {
14506 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14507 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14508 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14509 : {
14510 0 : {
14511 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14512 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14513 0 : if (res) return res;
14514 : }
14515 : }
14516 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14517 : {
14518 0 : {
14519 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14520 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14521 0 : if (res) return res;
14522 : }
14523 : }
14524 : break;
14525 : }
14526 : default:;
14527 : }
14528 : }
14529 18 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14530 : {
14531 8 : switch (TREE_CODE (_p2))
14532 : {
14533 0 : case MIN_EXPR:
14534 0 : {
14535 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14536 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14537 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14538 : {
14539 0 : {
14540 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14541 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14542 0 : if (res) return res;
14543 : }
14544 : }
14545 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14546 : {
14547 0 : {
14548 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14549 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14550 0 : if (res) return res;
14551 : }
14552 : }
14553 : break;
14554 : }
14555 : default:;
14556 : }
14557 : }
14558 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14559 : {
14560 7 : switch (TREE_CODE (_p2))
14561 : {
14562 0 : case MIN_EXPR:
14563 0 : {
14564 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14565 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14566 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14567 : {
14568 0 : {
14569 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14570 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14571 0 : if (res) return res;
14572 : }
14573 : }
14574 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14575 : {
14576 0 : {
14577 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14578 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14579 0 : if (res) return res;
14580 : }
14581 : }
14582 : break;
14583 : }
14584 : default:;
14585 : }
14586 : }
14587 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14588 : {
14589 0 : {
14590 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
14591 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
14592 0 : if (res) return res;
14593 : }
14594 : }
14595 : break;
14596 : }
14597 100 : case MAX_EXPR:
14598 100 : {
14599 100 : tree _q50 = TREE_OPERAND (_p1, 0);
14600 100 : tree _q51 = TREE_OPERAND (_p1, 1);
14601 100 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14602 : {
14603 0 : switch (TREE_CODE (_p2))
14604 : {
14605 0 : case MAX_EXPR:
14606 0 : {
14607 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14608 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14609 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14610 : {
14611 0 : {
14612 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14613 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14614 0 : if (res) return res;
14615 : }
14616 : }
14617 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14618 : {
14619 0 : {
14620 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14621 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14622 0 : if (res) return res;
14623 : }
14624 : }
14625 : break;
14626 : }
14627 : default:;
14628 : }
14629 : }
14630 100 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14631 : {
14632 2 : switch (TREE_CODE (_p2))
14633 : {
14634 1 : case MAX_EXPR:
14635 1 : {
14636 1 : tree _q80 = TREE_OPERAND (_p2, 0);
14637 1 : tree _q81 = TREE_OPERAND (_p2, 1);
14638 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14639 : {
14640 0 : {
14641 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14642 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14643 0 : if (res) return res;
14644 : }
14645 : }
14646 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14647 : {
14648 1 : {
14649 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14650 1 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14651 1 : if (res) return res;
14652 : }
14653 : }
14654 : break;
14655 : }
14656 : default:;
14657 : }
14658 : }
14659 99 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14660 : {
14661 1 : switch (TREE_CODE (_p2))
14662 : {
14663 0 : case MAX_EXPR:
14664 0 : {
14665 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14666 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14667 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14668 : {
14669 0 : {
14670 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14671 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14672 0 : if (res) return res;
14673 : }
14674 : }
14675 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14676 : {
14677 0 : {
14678 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14679 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14680 0 : if (res) return res;
14681 : }
14682 : }
14683 : break;
14684 : }
14685 1 : default:;
14686 : }
14687 1 : {
14688 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
14689 1 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14690 1 : if (res) return res;
14691 : }
14692 : }
14693 98 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14694 : {
14695 0 : switch (TREE_CODE (_p2))
14696 : {
14697 0 : case MAX_EXPR:
14698 0 : {
14699 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14700 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14701 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14702 : {
14703 0 : {
14704 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14705 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14706 0 : if (res) return res;
14707 : }
14708 : }
14709 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14710 : {
14711 0 : {
14712 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14713 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14714 0 : if (res) return res;
14715 : }
14716 : }
14717 : break;
14718 : }
14719 0 : default:;
14720 : }
14721 0 : {
14722 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
14723 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14724 0 : if (res) return res;
14725 : }
14726 : }
14727 : break;
14728 : }
14729 890934 : default:;
14730 : }
14731 890934 : if (integer_zerop (_q20))
14732 : {
14733 0 : {
14734 0 : tree _q21_pops[1];
14735 0 : if (tree_nop_convert (_q21, _q21_pops))
14736 : {
14737 0 : tree _q40 = _q21_pops[0];
14738 0 : switch (TREE_CODE (_p1))
14739 : {
14740 0 : case MIN_EXPR:
14741 0 : {
14742 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14743 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14744 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14745 : {
14746 0 : switch (TREE_CODE (_q61))
14747 : {
14748 0 : case INTEGER_CST:
14749 0 : {
14750 0 : switch (TREE_CODE (_p2))
14751 : {
14752 0 : case INTEGER_CST:
14753 0 : {
14754 0 : {
14755 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
14756 0 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14757 0 : if (res) return res;
14758 : }
14759 0 : break;
14760 : }
14761 : default:;
14762 : }
14763 : break;
14764 : }
14765 : default:;
14766 : }
14767 : }
14768 : break;
14769 : }
14770 : default:;
14771 : }
14772 : }
14773 : }
14774 : }
14775 890934 : if (tree_expr_nonnegative_p (_q21))
14776 : {
14777 574073 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14778 : {
14779 583 : switch (TREE_CODE (_p2))
14780 : {
14781 0 : case ABS_EXPR:
14782 0 : {
14783 0 : tree _q60 = TREE_OPERAND (_p2, 0);
14784 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14785 : {
14786 0 : {
14787 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14788 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14789 0 : if (res) return res;
14790 : }
14791 : }
14792 : break;
14793 : }
14794 : default:;
14795 : }
14796 : }
14797 574073 : switch (TREE_CODE (_p1))
14798 : {
14799 1 : case ABS_EXPR:
14800 1 : {
14801 1 : tree _q50 = TREE_OPERAND (_p1, 0);
14802 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14803 : {
14804 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
14805 : {
14806 0 : {
14807 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
14808 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14809 0 : if (res) return res;
14810 : }
14811 : }
14812 : }
14813 : break;
14814 : }
14815 : default:;
14816 : }
14817 : }
14818 890934 : switch (TREE_CODE (_q20))
14819 : {
14820 57164 : case PLUS_EXPR:
14821 57164 : {
14822 57164 : tree _q30 = TREE_OPERAND (_q20, 0);
14823 57164 : tree _q31 = TREE_OPERAND (_q20, 1);
14824 57164 : if (integer_onep (_q31))
14825 : {
14826 28958 : switch (TREE_CODE (_p1))
14827 : {
14828 2 : case NEGATE_EXPR:
14829 2 : {
14830 2 : tree _q70 = TREE_OPERAND (_p1, 0);
14831 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
14832 : {
14833 2 : if (integer_onep (_p2))
14834 : {
14835 2 : {
14836 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14837 2 : if (TYPE_UNSIGNED (type)
14838 : )
14839 : {
14840 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1817;
14841 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1817;
14842 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1817;
14843 2 : {
14844 2 : tree res_op0;
14845 2 : {
14846 2 : tree _o1[2], _r1;
14847 2 : _o1[0] = unshare_expr (captures[0]);
14848 2 : _o1[1] = captures[1];
14849 2 : _r1 = fold_build2_loc (loc, GE_EXPR, boolean_type_node, _o1[0], _o1[1]);
14850 2 : res_op0 = _r1;
14851 : }
14852 2 : tree res_op1;
14853 2 : {
14854 2 : tree _o1[1], _r1;
14855 2 : _o1[0] = captures[0];
14856 2 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14857 2 : res_op1 = _r1;
14858 : }
14859 2 : tree res_op2;
14860 2 : res_op2 = captures[2];
14861 2 : tree _r;
14862 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
14863 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
14864 2 : return _r;
14865 : }
14866 0 : next_after_fail1817:;
14867 : }
14868 : }
14869 : }
14870 : }
14871 : break;
14872 : }
14873 : default:;
14874 : }
14875 : }
14876 : break;
14877 : }
14878 : default:;
14879 : }
14880 : break;
14881 : }
14882 1368867 : case LE_EXPR:
14883 1368867 : {
14884 1368867 : tree _q20 = TREE_OPERAND (_p0, 0);
14885 1368867 : tree _q21 = TREE_OPERAND (_p0, 1);
14886 1368867 : switch (TREE_CODE (_q20))
14887 : {
14888 201 : case MINUS_EXPR:
14889 201 : {
14890 201 : tree _q30 = TREE_OPERAND (_q20, 0);
14891 201 : tree _q31 = TREE_OPERAND (_q20, 1);
14892 201 : switch (TREE_CODE (_q30))
14893 : {
14894 0 : case CALL_EXPR:
14895 0 : switch (get_call_combined_fn (_q30))
14896 : {
14897 0 : case CFN_BUILT_IN_CEIL:
14898 0 : if (call_expr_nargs (_q30) == 1)
14899 : {
14900 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14901 0 : switch (TREE_CODE (_q40))
14902 : {
14903 0 : case SSA_NAME:
14904 0 : {
14905 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14906 : {
14907 0 : switch (TREE_CODE (_q31))
14908 : {
14909 0 : case SSA_NAME:
14910 0 : {
14911 0 : switch (TREE_CODE (_q21))
14912 : {
14913 0 : case MINUS_EXPR:
14914 0 : {
14915 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14916 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14917 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14918 : {
14919 0 : switch (TREE_CODE (_q80))
14920 : {
14921 0 : case SSA_NAME:
14922 0 : {
14923 0 : switch (TREE_CODE (_q81))
14924 : {
14925 0 : case CALL_EXPR:
14926 0 : switch (get_call_combined_fn (_q81))
14927 : {
14928 0 : case CFN_BUILT_IN_FLOOR:
14929 0 : if (call_expr_nargs (_q81) == 1)
14930 : {
14931 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14932 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14933 : {
14934 0 : switch (TREE_CODE (_q110))
14935 : {
14936 0 : case SSA_NAME:
14937 0 : {
14938 0 : switch (TREE_CODE (_p1))
14939 : {
14940 0 : case CALL_EXPR:
14941 0 : switch (get_call_combined_fn (_p1))
14942 : {
14943 0 : case CFN_BUILT_IN_CEIL:
14944 0 : if (call_expr_nargs (_p1) == 1)
14945 : {
14946 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14947 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14948 : {
14949 0 : switch (TREE_CODE (_q140))
14950 : {
14951 0 : case SSA_NAME:
14952 0 : {
14953 0 : switch (TREE_CODE (_p2))
14954 : {
14955 0 : case CALL_EXPR:
14956 0 : switch (get_call_combined_fn (_p2))
14957 : {
14958 0 : case CFN_BUILT_IN_FLOOR:
14959 0 : if (call_expr_nargs (_p2) == 1)
14960 : {
14961 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14962 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14963 : {
14964 0 : switch (TREE_CODE (_q170))
14965 : {
14966 0 : case SSA_NAME:
14967 0 : {
14968 0 : {
14969 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14970 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
14971 0 : if (res) return res;
14972 : }
14973 0 : break;
14974 : }
14975 : default:;
14976 : }
14977 : }
14978 : }
14979 : break;
14980 : default:;
14981 : }
14982 : break;
14983 : default:;
14984 : }
14985 : break;
14986 : }
14987 : default:;
14988 : }
14989 : }
14990 : }
14991 : break;
14992 : default:;
14993 : }
14994 : break;
14995 : default:;
14996 : }
14997 : break;
14998 : }
14999 : default:;
15000 : }
15001 : }
15002 : }
15003 : break;
15004 : default:;
15005 : }
15006 : break;
15007 : default:;
15008 : }
15009 : break;
15010 : }
15011 : default:;
15012 : }
15013 : }
15014 : break;
15015 : }
15016 : default:;
15017 : }
15018 : break;
15019 : }
15020 : default:;
15021 : }
15022 : }
15023 : break;
15024 : }
15025 : default:;
15026 : }
15027 : }
15028 : break;
15029 0 : case CFN_CEIL:
15030 0 : if (call_expr_nargs (_q30) == 1)
15031 : {
15032 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15033 0 : switch (TREE_CODE (_q40))
15034 : {
15035 0 : case SSA_NAME:
15036 0 : {
15037 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15038 : {
15039 0 : switch (TREE_CODE (_q31))
15040 : {
15041 0 : case SSA_NAME:
15042 0 : {
15043 0 : switch (TREE_CODE (_q21))
15044 : {
15045 0 : case MINUS_EXPR:
15046 0 : {
15047 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15048 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15049 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15050 : {
15051 0 : switch (TREE_CODE (_q80))
15052 : {
15053 0 : case SSA_NAME:
15054 0 : {
15055 0 : switch (TREE_CODE (_q81))
15056 : {
15057 0 : case CALL_EXPR:
15058 0 : switch (get_call_combined_fn (_q81))
15059 : {
15060 0 : case CFN_FLOOR:
15061 0 : if (call_expr_nargs (_q81) == 1)
15062 : {
15063 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15064 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15065 : {
15066 0 : switch (TREE_CODE (_q110))
15067 : {
15068 0 : case SSA_NAME:
15069 0 : {
15070 0 : switch (TREE_CODE (_p1))
15071 : {
15072 0 : case CALL_EXPR:
15073 0 : switch (get_call_combined_fn (_p1))
15074 : {
15075 0 : case CFN_CEIL:
15076 0 : if (call_expr_nargs (_p1) == 1)
15077 : {
15078 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15079 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15080 : {
15081 0 : switch (TREE_CODE (_q140))
15082 : {
15083 0 : case SSA_NAME:
15084 0 : {
15085 0 : switch (TREE_CODE (_p2))
15086 : {
15087 0 : case CALL_EXPR:
15088 0 : switch (get_call_combined_fn (_p2))
15089 : {
15090 0 : case CFN_FLOOR:
15091 0 : if (call_expr_nargs (_p2) == 1)
15092 : {
15093 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15094 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15095 : {
15096 0 : switch (TREE_CODE (_q170))
15097 : {
15098 0 : case SSA_NAME:
15099 0 : {
15100 0 : {
15101 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15102 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
15103 0 : if (res) return res;
15104 : }
15105 0 : break;
15106 : }
15107 : default:;
15108 : }
15109 : }
15110 : }
15111 : break;
15112 : default:;
15113 : }
15114 : break;
15115 : default:;
15116 : }
15117 : break;
15118 : }
15119 : default:;
15120 : }
15121 : }
15122 : }
15123 : break;
15124 : default:;
15125 : }
15126 : break;
15127 : default:;
15128 : }
15129 : break;
15130 : }
15131 : default:;
15132 : }
15133 : }
15134 : }
15135 : break;
15136 : default:;
15137 : }
15138 : break;
15139 : default:;
15140 : }
15141 : break;
15142 : }
15143 : default:;
15144 : }
15145 : }
15146 : break;
15147 : }
15148 : default:;
15149 : }
15150 : break;
15151 : }
15152 : default:;
15153 : }
15154 : }
15155 : break;
15156 : }
15157 : default:;
15158 : }
15159 : }
15160 : break;
15161 0 : case CFN_BUILT_IN_CEILF:
15162 0 : if (call_expr_nargs (_q30) == 1)
15163 : {
15164 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15165 0 : switch (TREE_CODE (_q40))
15166 : {
15167 0 : case SSA_NAME:
15168 0 : {
15169 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15170 : {
15171 0 : switch (TREE_CODE (_q31))
15172 : {
15173 0 : case SSA_NAME:
15174 0 : {
15175 0 : switch (TREE_CODE (_q21))
15176 : {
15177 0 : case MINUS_EXPR:
15178 0 : {
15179 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15180 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15181 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15182 : {
15183 0 : switch (TREE_CODE (_q80))
15184 : {
15185 0 : case SSA_NAME:
15186 0 : {
15187 0 : switch (TREE_CODE (_q81))
15188 : {
15189 0 : case CALL_EXPR:
15190 0 : switch (get_call_combined_fn (_q81))
15191 : {
15192 0 : case CFN_BUILT_IN_FLOORF:
15193 0 : if (call_expr_nargs (_q81) == 1)
15194 : {
15195 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15196 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15197 : {
15198 0 : switch (TREE_CODE (_q110))
15199 : {
15200 0 : case SSA_NAME:
15201 0 : {
15202 0 : switch (TREE_CODE (_p1))
15203 : {
15204 0 : case CALL_EXPR:
15205 0 : switch (get_call_combined_fn (_p1))
15206 : {
15207 0 : case CFN_BUILT_IN_CEILF:
15208 0 : if (call_expr_nargs (_p1) == 1)
15209 : {
15210 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15211 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15212 : {
15213 0 : switch (TREE_CODE (_q140))
15214 : {
15215 0 : case SSA_NAME:
15216 0 : {
15217 0 : switch (TREE_CODE (_p2))
15218 : {
15219 0 : case CALL_EXPR:
15220 0 : switch (get_call_combined_fn (_p2))
15221 : {
15222 0 : case CFN_BUILT_IN_FLOORF:
15223 0 : if (call_expr_nargs (_p2) == 1)
15224 : {
15225 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15226 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15227 : {
15228 0 : switch (TREE_CODE (_q170))
15229 : {
15230 0 : case SSA_NAME:
15231 0 : {
15232 0 : {
15233 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15234 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
15235 0 : if (res) return res;
15236 : }
15237 0 : break;
15238 : }
15239 : default:;
15240 : }
15241 : }
15242 : }
15243 : break;
15244 : default:;
15245 : }
15246 : break;
15247 : default:;
15248 : }
15249 : break;
15250 : }
15251 : default:;
15252 : }
15253 : }
15254 : }
15255 : break;
15256 : default:;
15257 : }
15258 : break;
15259 : default:;
15260 : }
15261 : break;
15262 : }
15263 : default:;
15264 : }
15265 : }
15266 : }
15267 : break;
15268 : default:;
15269 : }
15270 : break;
15271 : default:;
15272 : }
15273 : break;
15274 : }
15275 : default:;
15276 : }
15277 : }
15278 : break;
15279 : }
15280 : default:;
15281 : }
15282 : break;
15283 : }
15284 : default:;
15285 : }
15286 : }
15287 : break;
15288 : }
15289 : default:;
15290 : }
15291 : }
15292 : break;
15293 0 : case CFN_BUILT_IN_CEILL:
15294 0 : if (call_expr_nargs (_q30) == 1)
15295 : {
15296 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15297 0 : switch (TREE_CODE (_q40))
15298 : {
15299 0 : case SSA_NAME:
15300 0 : {
15301 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15302 : {
15303 0 : switch (TREE_CODE (_q31))
15304 : {
15305 0 : case SSA_NAME:
15306 0 : {
15307 0 : switch (TREE_CODE (_q21))
15308 : {
15309 0 : case MINUS_EXPR:
15310 0 : {
15311 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15312 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15313 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15314 : {
15315 0 : switch (TREE_CODE (_q80))
15316 : {
15317 0 : case SSA_NAME:
15318 0 : {
15319 0 : switch (TREE_CODE (_q81))
15320 : {
15321 0 : case CALL_EXPR:
15322 0 : switch (get_call_combined_fn (_q81))
15323 : {
15324 0 : case CFN_BUILT_IN_FLOORL:
15325 0 : if (call_expr_nargs (_q81) == 1)
15326 : {
15327 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15328 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15329 : {
15330 0 : switch (TREE_CODE (_q110))
15331 : {
15332 0 : case SSA_NAME:
15333 0 : {
15334 0 : switch (TREE_CODE (_p1))
15335 : {
15336 0 : case CALL_EXPR:
15337 0 : switch (get_call_combined_fn (_p1))
15338 : {
15339 0 : case CFN_BUILT_IN_CEILL:
15340 0 : if (call_expr_nargs (_p1) == 1)
15341 : {
15342 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15343 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15344 : {
15345 0 : switch (TREE_CODE (_q140))
15346 : {
15347 0 : case SSA_NAME:
15348 0 : {
15349 0 : switch (TREE_CODE (_p2))
15350 : {
15351 0 : case CALL_EXPR:
15352 0 : switch (get_call_combined_fn (_p2))
15353 : {
15354 0 : case CFN_BUILT_IN_FLOORL:
15355 0 : if (call_expr_nargs (_p2) == 1)
15356 : {
15357 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15358 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15359 : {
15360 0 : switch (TREE_CODE (_q170))
15361 : {
15362 0 : case SSA_NAME:
15363 0 : {
15364 0 : {
15365 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15366 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
15367 0 : if (res) return res;
15368 : }
15369 0 : break;
15370 : }
15371 : default:;
15372 : }
15373 : }
15374 : }
15375 : break;
15376 : default:;
15377 : }
15378 : break;
15379 : default:;
15380 : }
15381 : break;
15382 : }
15383 : default:;
15384 : }
15385 : }
15386 : }
15387 : break;
15388 : default:;
15389 : }
15390 : break;
15391 : default:;
15392 : }
15393 : break;
15394 : }
15395 : default:;
15396 : }
15397 : }
15398 : }
15399 : break;
15400 : default:;
15401 : }
15402 : break;
15403 : default:;
15404 : }
15405 : break;
15406 : }
15407 : default:;
15408 : }
15409 : }
15410 : break;
15411 : }
15412 : default:;
15413 : }
15414 : break;
15415 : }
15416 : default:;
15417 : }
15418 : }
15419 : break;
15420 : }
15421 : default:;
15422 : }
15423 : }
15424 : break;
15425 : default:;
15426 : }
15427 : break;
15428 : default:;
15429 : }
15430 : break;
15431 : }
15432 1368867 : default:;
15433 : }
15434 1368867 : if (integer_zerop (_q21))
15435 : {
15436 123990 : switch (TREE_CODE (_p1))
15437 : {
15438 245 : case NEGATE_EXPR:
15439 245 : {
15440 245 : tree _q50 = TREE_OPERAND (_p1, 0);
15441 245 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15442 : {
15443 70 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15444 : {
15445 70 : if (integer_zerop (_p2))
15446 : {
15447 70 : {
15448 70 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15449 70 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
15450 : )
15451 : {
15452 68 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1818;
15453 68 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1818;
15454 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
15455 68 : {
15456 68 : tree res_op0;
15457 68 : res_op0 = captures[2];
15458 68 : tree res_op1;
15459 68 : res_op1 = captures[1];
15460 68 : tree _r;
15461 68 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
15462 68 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
15463 68 : return _r;
15464 : }
15465 2 : next_after_fail1818:;
15466 : }
15467 : }
15468 : }
15469 : }
15470 : }
15471 : break;
15472 : }
15473 : default:;
15474 : }
15475 : }
15476 1368799 : switch (TREE_CODE (_p1))
15477 : {
15478 9 : case BIT_IOR_EXPR:
15479 9 : {
15480 9 : tree _q50 = TREE_OPERAND (_p1, 0);
15481 9 : tree _q51 = TREE_OPERAND (_p1, 1);
15482 9 : switch (TREE_CODE (_q51))
15483 : {
15484 9 : case INTEGER_CST:
15485 9 : {
15486 9 : switch (TREE_CODE (_p2))
15487 : {
15488 0 : case BIT_AND_EXPR:
15489 0 : {
15490 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15491 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15492 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15493 : {
15494 0 : switch (TREE_CODE (_q81))
15495 : {
15496 0 : case INTEGER_CST:
15497 0 : {
15498 0 : {
15499 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
15500 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15501 0 : if (res) return res;
15502 : }
15503 0 : break;
15504 : }
15505 : default:;
15506 : }
15507 : }
15508 : break;
15509 : }
15510 : default:;
15511 : }
15512 : break;
15513 : }
15514 : default:;
15515 : }
15516 : break;
15517 : }
15518 1368799 : default:;
15519 : }
15520 1368799 : switch (TREE_CODE (_q20))
15521 : {
15522 141035 : CASE_CONVERT:
15523 141035 : {
15524 141035 : tree _q30 = TREE_OPERAND (_q20, 0);
15525 141035 : switch (TREE_CODE (_q21))
15526 : {
15527 105005 : case INTEGER_CST:
15528 105005 : {
15529 105005 : switch (TREE_CODE (_p1))
15530 : {
15531 623 : CASE_CONVERT:
15532 623 : {
15533 623 : tree _q60 = TREE_OPERAND (_p1, 0);
15534 623 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15535 : {
15536 8 : switch (TREE_CODE (_p2))
15537 : {
15538 8 : case INTEGER_CST:
15539 8 : {
15540 8 : {
15541 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15542 8 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15543 8 : if (res) return res;
15544 : }
15545 8 : break;
15546 : }
15547 : default:;
15548 : }
15549 : }
15550 : break;
15551 : }
15552 105005 : default:;
15553 : }
15554 105005 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
15555 : {
15556 21 : switch (TREE_CODE (_p2))
15557 : {
15558 21 : case INTEGER_CST:
15559 21 : {
15560 21 : {
15561 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15562 21 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15563 21 : if (res) return res;
15564 : }
15565 21 : break;
15566 : }
15567 : default:;
15568 : }
15569 : }
15570 105005 : switch (TREE_CODE (_p1))
15571 : {
15572 130 : case PLUS_EXPR:
15573 130 : {
15574 130 : tree _q60 = TREE_OPERAND (_p1, 0);
15575 130 : tree _q61 = TREE_OPERAND (_p1, 1);
15576 130 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15577 : {
15578 6 : switch (TREE_CODE (_q61))
15579 : {
15580 6 : case INTEGER_CST:
15581 6 : {
15582 6 : switch (TREE_CODE (_p2))
15583 : {
15584 6 : case INTEGER_CST:
15585 6 : {
15586 6 : {
15587 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
15588 6 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
15589 6 : if (res) return res;
15590 : }
15591 6 : break;
15592 : }
15593 : default:;
15594 : }
15595 : break;
15596 : }
15597 : default:;
15598 : }
15599 : }
15600 : break;
15601 : }
15602 730 : case MINUS_EXPR:
15603 730 : {
15604 730 : tree _q60 = TREE_OPERAND (_p1, 0);
15605 730 : tree _q61 = TREE_OPERAND (_p1, 1);
15606 730 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15607 : {
15608 0 : switch (TREE_CODE (_q61))
15609 : {
15610 0 : case INTEGER_CST:
15611 0 : {
15612 0 : switch (TREE_CODE (_p2))
15613 : {
15614 0 : case INTEGER_CST:
15615 0 : {
15616 0 : {
15617 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
15618 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
15619 0 : if (res) return res;
15620 : }
15621 0 : break;
15622 : }
15623 : default:;
15624 : }
15625 : break;
15626 : }
15627 : default:;
15628 : }
15629 : }
15630 : break;
15631 : }
15632 : default:;
15633 : }
15634 : break;
15635 : }
15636 : default:;
15637 : }
15638 : break;
15639 : }
15640 1368799 : default:;
15641 : }
15642 1368799 : switch (TREE_CODE (_q21))
15643 : {
15644 977781 : case INTEGER_CST:
15645 977781 : {
15646 977781 : switch (TREE_CODE (_p1))
15647 : {
15648 23868 : CASE_CONVERT:
15649 23868 : {
15650 23868 : tree _q50 = TREE_OPERAND (_p1, 0);
15651 23868 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15652 : {
15653 228 : switch (TREE_CODE (_p2))
15654 : {
15655 210 : case INTEGER_CST:
15656 210 : {
15657 210 : {
15658 210 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15659 210 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15660 210 : if (res) return res;
15661 : }
15662 110 : break;
15663 : }
15664 : default:;
15665 : }
15666 : }
15667 : break;
15668 : }
15669 977681 : default:;
15670 : }
15671 977681 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
15672 : {
15673 275 : switch (TREE_CODE (_p2))
15674 : {
15675 238 : case INTEGER_CST:
15676 238 : {
15677 238 : {
15678 238 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15679 238 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15680 238 : if (res) return res;
15681 : }
15682 93 : break;
15683 : }
15684 : default:;
15685 : }
15686 : }
15687 977536 : switch (TREE_CODE (_p1))
15688 : {
15689 3100 : case PLUS_EXPR:
15690 3100 : {
15691 3100 : tree _q50 = TREE_OPERAND (_p1, 0);
15692 3100 : tree _q51 = TREE_OPERAND (_p1, 1);
15693 3100 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15694 : {
15695 189 : switch (TREE_CODE (_q51))
15696 : {
15697 189 : case INTEGER_CST:
15698 189 : {
15699 189 : switch (TREE_CODE (_p2))
15700 : {
15701 170 : case INTEGER_CST:
15702 170 : {
15703 170 : {
15704 170 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15705 170 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
15706 170 : if (res) return res;
15707 : }
15708 170 : break;
15709 : }
15710 : default:;
15711 : }
15712 : break;
15713 : }
15714 : default:;
15715 : }
15716 : }
15717 : break;
15718 : }
15719 7361 : case MINUS_EXPR:
15720 7361 : {
15721 7361 : tree _q50 = TREE_OPERAND (_p1, 0);
15722 7361 : tree _q51 = TREE_OPERAND (_p1, 1);
15723 7361 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15724 : {
15725 0 : switch (TREE_CODE (_q51))
15726 : {
15727 0 : case INTEGER_CST:
15728 0 : {
15729 0 : switch (TREE_CODE (_p2))
15730 : {
15731 0 : case INTEGER_CST:
15732 0 : {
15733 0 : {
15734 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15735 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
15736 0 : if (res) return res;
15737 : }
15738 0 : break;
15739 : }
15740 : default:;
15741 : }
15742 : break;
15743 : }
15744 : default:;
15745 : }
15746 : }
15747 : break;
15748 : }
15749 : default:;
15750 : }
15751 : break;
15752 : }
15753 1368554 : default:;
15754 : }
15755 1368554 : switch (TREE_CODE (_p1))
15756 : {
15757 37 : case MIN_EXPR:
15758 37 : {
15759 37 : tree _q50 = TREE_OPERAND (_p1, 0);
15760 37 : tree _q51 = TREE_OPERAND (_p1, 1);
15761 37 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15762 : {
15763 1 : switch (TREE_CODE (_p2))
15764 : {
15765 0 : case MIN_EXPR:
15766 0 : {
15767 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15768 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15769 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15770 : {
15771 0 : {
15772 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15773 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15774 0 : if (res) return res;
15775 : }
15776 : }
15777 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15778 : {
15779 0 : {
15780 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15781 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15782 0 : if (res) return res;
15783 : }
15784 : }
15785 : break;
15786 : }
15787 : default:;
15788 : }
15789 : }
15790 37 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15791 : {
15792 1 : switch (TREE_CODE (_p2))
15793 : {
15794 0 : case MIN_EXPR:
15795 0 : {
15796 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15797 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15798 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15799 : {
15800 0 : {
15801 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15802 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15803 0 : if (res) return res;
15804 : }
15805 : }
15806 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15807 : {
15808 0 : {
15809 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15810 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15811 0 : if (res) return res;
15812 : }
15813 : }
15814 : break;
15815 : }
15816 : default:;
15817 : }
15818 : }
15819 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15820 : {
15821 1 : switch (TREE_CODE (_p2))
15822 : {
15823 0 : case MIN_EXPR:
15824 0 : {
15825 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15826 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15827 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15828 : {
15829 0 : {
15830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15831 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15832 0 : if (res) return res;
15833 : }
15834 : }
15835 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15836 : {
15837 0 : {
15838 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15839 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15840 0 : if (res) return res;
15841 : }
15842 : }
15843 : break;
15844 : }
15845 1 : default:;
15846 : }
15847 1 : {
15848 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
15849 1 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15850 1 : if (res) return res;
15851 : }
15852 : }
15853 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15854 : {
15855 1 : switch (TREE_CODE (_p2))
15856 : {
15857 0 : case MIN_EXPR:
15858 0 : {
15859 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15860 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15861 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15862 : {
15863 0 : {
15864 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15865 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15866 0 : if (res) return res;
15867 : }
15868 : }
15869 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15870 : {
15871 0 : {
15872 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15873 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15874 0 : if (res) return res;
15875 : }
15876 : }
15877 : break;
15878 : }
15879 1 : default:;
15880 : }
15881 1 : {
15882 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
15883 1 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15884 1 : if (res) return res;
15885 : }
15886 : }
15887 : break;
15888 : }
15889 12 : case MAX_EXPR:
15890 12 : {
15891 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15892 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15893 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15894 : {
15895 0 : switch (TREE_CODE (_p2))
15896 : {
15897 0 : case MAX_EXPR:
15898 0 : {
15899 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15900 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15901 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15902 : {
15903 0 : {
15904 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15905 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15906 0 : if (res) return res;
15907 : }
15908 : }
15909 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15910 : {
15911 0 : {
15912 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15913 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15914 0 : if (res) return res;
15915 : }
15916 : }
15917 : break;
15918 : }
15919 0 : default:;
15920 : }
15921 0 : {
15922 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
15923 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15924 0 : if (res) return res;
15925 : }
15926 : }
15927 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15928 : {
15929 0 : switch (TREE_CODE (_p2))
15930 : {
15931 0 : case MAX_EXPR:
15932 0 : {
15933 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15934 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15935 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15936 : {
15937 0 : {
15938 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15939 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15940 0 : if (res) return res;
15941 : }
15942 : }
15943 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15944 : {
15945 0 : {
15946 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15947 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15948 0 : if (res) return res;
15949 : }
15950 : }
15951 : break;
15952 : }
15953 : default:;
15954 : }
15955 : }
15956 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15957 : {
15958 0 : switch (TREE_CODE (_p2))
15959 : {
15960 0 : case MAX_EXPR:
15961 0 : {
15962 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15963 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15964 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15965 : {
15966 0 : {
15967 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15968 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15969 0 : if (res) return res;
15970 : }
15971 : }
15972 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15973 : {
15974 0 : {
15975 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15976 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15977 0 : if (res) return res;
15978 : }
15979 : }
15980 : break;
15981 : }
15982 : default:;
15983 : }
15984 : }
15985 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15986 : {
15987 0 : switch (TREE_CODE (_p2))
15988 : {
15989 0 : case MAX_EXPR:
15990 0 : {
15991 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15992 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15993 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15994 : {
15995 0 : {
15996 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15997 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15998 0 : if (res) return res;
15999 : }
16000 : }
16001 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16002 : {
16003 0 : {
16004 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16005 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16006 0 : if (res) return res;
16007 : }
16008 : }
16009 : break;
16010 : }
16011 : default:;
16012 : }
16013 : }
16014 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16015 : {
16016 0 : {
16017 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
16018 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16019 0 : if (res) return res;
16020 : }
16021 : }
16022 : break;
16023 : }
16024 1368552 : default:;
16025 : }
16026 1368552 : if (integer_zerop (_q20))
16027 : {
16028 2 : {
16029 2 : tree _q21_pops[1];
16030 2 : if (tree_nop_convert (_q21, _q21_pops))
16031 : {
16032 0 : tree _q40 = _q21_pops[0];
16033 0 : switch (TREE_CODE (_p1))
16034 : {
16035 0 : case MAX_EXPR:
16036 0 : {
16037 0 : tree _q60 = TREE_OPERAND (_p1, 0);
16038 0 : tree _q61 = TREE_OPERAND (_p1, 1);
16039 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
16040 : {
16041 0 : switch (TREE_CODE (_q61))
16042 : {
16043 0 : case INTEGER_CST:
16044 0 : {
16045 0 : switch (TREE_CODE (_p2))
16046 : {
16047 0 : case INTEGER_CST:
16048 0 : {
16049 0 : {
16050 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
16051 0 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16052 0 : if (res) return res;
16053 : }
16054 0 : break;
16055 : }
16056 : default:;
16057 : }
16058 : break;
16059 : }
16060 : default:;
16061 : }
16062 : }
16063 : break;
16064 : }
16065 : default:;
16066 : }
16067 : }
16068 : }
16069 : }
16070 1368552 : if (tree_expr_nonnegative_p (_q20))
16071 : {
16072 868509 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
16073 : {
16074 12 : switch (TREE_CODE (_p2))
16075 : {
16076 0 : case ABS_EXPR:
16077 0 : {
16078 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16079 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
16080 : {
16081 0 : {
16082 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
16083 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
16084 0 : if (res) return res;
16085 : }
16086 : }
16087 : break;
16088 : }
16089 : default:;
16090 : }
16091 : }
16092 868509 : switch (TREE_CODE (_p1))
16093 : {
16094 0 : case ABS_EXPR:
16095 0 : {
16096 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16097 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16098 : {
16099 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16100 : {
16101 0 : {
16102 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16103 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
16104 0 : if (res) return res;
16105 : }
16106 : }
16107 : }
16108 : break;
16109 : }
16110 : default:;
16111 : }
16112 : }
16113 : break;
16114 : }
16115 1682091 : case EQ_EXPR:
16116 1682091 : {
16117 1682091 : tree _q20 = TREE_OPERAND (_p0, 0);
16118 1682091 : tree _q21 = TREE_OPERAND (_p0, 1);
16119 1682091 : if (tree_zero_one_valued_p (_q20))
16120 : {
16121 159292 : if (integer_zerop (_q21))
16122 : {
16123 976 : switch (TREE_CODE (_p2))
16124 : {
16125 1 : case BIT_XOR_EXPR:
16126 1 : {
16127 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16128 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16129 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16130 : {
16131 1 : {
16132 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16133 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16134 1 : if (res) return res;
16135 : }
16136 : }
16137 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16138 : {
16139 0 : {
16140 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16141 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16142 0 : if (res) return res;
16143 : }
16144 : }
16145 : break;
16146 : }
16147 1 : case BIT_IOR_EXPR:
16148 1 : {
16149 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16150 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16151 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16152 : {
16153 1 : {
16154 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16155 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16156 1 : if (res) return res;
16157 : }
16158 : }
16159 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16160 : {
16161 0 : {
16162 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16163 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16164 0 : if (res) return res;
16165 : }
16166 : }
16167 : break;
16168 : }
16169 1 : case PLUS_EXPR:
16170 1 : {
16171 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16172 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16173 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16174 : {
16175 1 : {
16176 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16177 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16178 1 : if (res) return res;
16179 : }
16180 : }
16181 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16182 : {
16183 0 : {
16184 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16185 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16186 0 : if (res) return res;
16187 : }
16188 : }
16189 : break;
16190 : }
16191 : default:;
16192 : }
16193 : }
16194 : }
16195 1682088 : if (integer_zerop (_q21))
16196 : {
16197 567623 : switch (TREE_CODE (_p2))
16198 : {
16199 17072 : case PLUS_EXPR:
16200 17072 : {
16201 17072 : tree _q60 = TREE_OPERAND (_p2, 0);
16202 17072 : tree _q61 = TREE_OPERAND (_p2, 1);
16203 17072 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16204 : {
16205 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16206 : {
16207 0 : {
16208 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16209 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16210 0 : if (res) return res;
16211 : }
16212 : }
16213 : }
16214 17072 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16215 : {
16216 1999 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16217 : {
16218 0 : {
16219 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16220 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16221 0 : if (res) return res;
16222 : }
16223 : }
16224 : }
16225 : break;
16226 : }
16227 108 : case BIT_IOR_EXPR:
16228 108 : {
16229 108 : tree _q60 = TREE_OPERAND (_p2, 0);
16230 108 : tree _q61 = TREE_OPERAND (_p2, 1);
16231 108 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16232 : {
16233 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16234 : {
16235 0 : {
16236 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16237 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16238 0 : if (res) return res;
16239 : }
16240 : }
16241 : }
16242 108 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16243 : {
16244 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16245 : {
16246 0 : {
16247 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16248 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16249 0 : if (res) return res;
16250 : }
16251 : }
16252 : }
16253 : break;
16254 : }
16255 0 : case BIT_XOR_EXPR:
16256 0 : {
16257 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16258 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16259 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16260 : {
16261 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16262 : {
16263 0 : {
16264 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16265 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16266 0 : if (res) return res;
16267 : }
16268 : }
16269 : }
16270 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16271 : {
16272 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16273 : {
16274 0 : {
16275 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16276 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16277 0 : if (res) return res;
16278 : }
16279 : }
16280 : }
16281 : break;
16282 : }
16283 1 : case LROTATE_EXPR:
16284 1 : {
16285 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16286 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16287 1 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16288 : {
16289 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16290 : {
16291 1 : {
16292 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16293 1 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16294 1 : if (res) return res;
16295 : }
16296 : }
16297 : }
16298 : break;
16299 : }
16300 0 : case RROTATE_EXPR:
16301 0 : {
16302 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16303 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16304 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16305 : {
16306 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16307 : {
16308 0 : {
16309 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16310 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16311 0 : if (res) return res;
16312 : }
16313 : }
16314 : }
16315 : break;
16316 : }
16317 48 : case LSHIFT_EXPR:
16318 48 : {
16319 48 : tree _q60 = TREE_OPERAND (_p2, 0);
16320 48 : tree _q61 = TREE_OPERAND (_p2, 1);
16321 48 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16322 : {
16323 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16324 : {
16325 0 : {
16326 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16327 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16328 0 : if (res) return res;
16329 : }
16330 : }
16331 : }
16332 : break;
16333 : }
16334 46 : case RSHIFT_EXPR:
16335 46 : {
16336 46 : tree _q60 = TREE_OPERAND (_p2, 0);
16337 46 : tree _q61 = TREE_OPERAND (_p2, 1);
16338 46 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16339 : {
16340 20 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16341 : {
16342 20 : {
16343 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16344 20 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16345 20 : if (res) return res;
16346 : }
16347 : }
16348 : }
16349 : break;
16350 : }
16351 183 : case MINUS_EXPR:
16352 183 : {
16353 183 : tree _q60 = TREE_OPERAND (_p2, 0);
16354 183 : tree _q61 = TREE_OPERAND (_p2, 1);
16355 183 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16356 : {
16357 7 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16358 : {
16359 0 : {
16360 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16361 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16362 0 : if (res) return res;
16363 : }
16364 : }
16365 : }
16366 : break;
16367 : }
16368 152410 : case POINTER_PLUS_EXPR:
16369 152410 : {
16370 152410 : tree _q60 = TREE_OPERAND (_p2, 0);
16371 152410 : tree _q61 = TREE_OPERAND (_p2, 1);
16372 152410 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16373 : {
16374 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16375 : {
16376 0 : {
16377 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16378 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
16379 0 : if (res) return res;
16380 : }
16381 : }
16382 : }
16383 : break;
16384 : }
16385 : default:;
16386 : }
16387 : }
16388 1682067 : if (integer_onep (_q21))
16389 : {
16390 48145 : switch (TREE_CODE (_p2))
16391 : {
16392 104 : case TRUNC_DIV_EXPR:
16393 104 : {
16394 104 : tree _q60 = TREE_OPERAND (_p2, 0);
16395 104 : tree _q61 = TREE_OPERAND (_p2, 1);
16396 104 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16397 : {
16398 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16399 : {
16400 0 : {
16401 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16402 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
16403 0 : if (res) return res;
16404 : }
16405 : }
16406 : }
16407 : break;
16408 : }
16409 0 : case CEIL_DIV_EXPR:
16410 0 : {
16411 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16412 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16413 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16414 : {
16415 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16416 : {
16417 0 : {
16418 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16419 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
16420 0 : if (res) return res;
16421 : }
16422 : }
16423 : }
16424 : break;
16425 : }
16426 0 : case FLOOR_DIV_EXPR:
16427 0 : {
16428 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16429 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16430 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16431 : {
16432 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16433 : {
16434 0 : {
16435 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16436 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
16437 0 : if (res) return res;
16438 : }
16439 : }
16440 : }
16441 : break;
16442 : }
16443 0 : case ROUND_DIV_EXPR:
16444 0 : {
16445 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16446 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16447 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16448 : {
16449 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16450 : {
16451 0 : {
16452 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16453 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
16454 0 : if (res) return res;
16455 : }
16456 : }
16457 : }
16458 : break;
16459 : }
16460 0 : case EXACT_DIV_EXPR:
16461 0 : {
16462 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16463 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16464 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16465 : {
16466 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16467 : {
16468 0 : {
16469 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16470 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
16471 0 : if (res) return res;
16472 : }
16473 : }
16474 : }
16475 : break;
16476 : }
16477 0 : case MULT_EXPR:
16478 0 : {
16479 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16480 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16481 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16482 : {
16483 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16484 : {
16485 0 : {
16486 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16487 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
16488 0 : if (res) return res;
16489 : }
16490 : }
16491 : }
16492 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16493 : {
16494 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16495 : {
16496 0 : {
16497 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16498 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
16499 0 : if (res) return res;
16500 : }
16501 : }
16502 : }
16503 : break;
16504 : }
16505 : default:;
16506 : }
16507 : }
16508 1682067 : if (integer_all_onesp (_q21))
16509 : {
16510 42589 : switch (TREE_CODE (_p2))
16511 : {
16512 0 : case BIT_AND_EXPR:
16513 0 : {
16514 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16515 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16516 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16517 : {
16518 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16519 : {
16520 0 : {
16521 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16522 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16523 0 : if (res) return res;
16524 : }
16525 : }
16526 : }
16527 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16528 : {
16529 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16530 : {
16531 0 : {
16532 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16533 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16534 0 : if (res) return res;
16535 : }
16536 : }
16537 : }
16538 : break;
16539 : }
16540 : default:;
16541 : }
16542 : }
16543 1682067 : switch (TREE_CODE (_q20))
16544 : {
16545 88166 : case BIT_AND_EXPR:
16546 88166 : {
16547 88166 : tree _q30 = TREE_OPERAND (_q20, 0);
16548 88166 : tree _q31 = TREE_OPERAND (_q20, 1);
16549 88166 : switch (TREE_CODE (_q31))
16550 : {
16551 87913 : case INTEGER_CST:
16552 87913 : {
16553 87913 : if (integer_zerop (_q21))
16554 : {
16555 1565 : switch (TREE_CODE (_p1))
16556 : {
16557 0 : case BIT_IOR_EXPR:
16558 0 : {
16559 0 : tree _q70 = TREE_OPERAND (_p1, 0);
16560 0 : tree _q71 = TREE_OPERAND (_p1, 1);
16561 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
16562 : {
16563 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
16564 : {
16565 0 : switch (TREE_CODE (_q71))
16566 : {
16567 0 : case INTEGER_CST:
16568 0 : {
16569 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
16570 : {
16571 0 : {
16572 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
16573 0 : if (wi::popcount (wi::to_wide (captures[1])) == 1
16574 : )
16575 : {
16576 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1819;
16577 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1819;
16578 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
16579 0 : {
16580 0 : tree _r;
16581 0 : _r = captures[2];
16582 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
16583 0 : return _r;
16584 : }
16585 0 : next_after_fail1819:;
16586 : }
16587 : }
16588 : }
16589 : break;
16590 : }
16591 : default:;
16592 : }
16593 : }
16594 : }
16595 : break;
16596 : }
16597 : default:;
16598 : }
16599 : }
16600 : break;
16601 : }
16602 : default:;
16603 : }
16604 : break;
16605 : }
16606 1682067 : default:;
16607 : }
16608 1682067 : switch (TREE_CODE (_p1))
16609 : {
16610 0 : case BIT_IOR_EXPR:
16611 0 : {
16612 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16613 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16614 0 : switch (TREE_CODE (_q51))
16615 : {
16616 0 : case INTEGER_CST:
16617 0 : {
16618 0 : switch (TREE_CODE (_p2))
16619 : {
16620 0 : case BIT_AND_EXPR:
16621 0 : {
16622 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16623 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16624 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16625 : {
16626 0 : switch (TREE_CODE (_q81))
16627 : {
16628 0 : case INTEGER_CST:
16629 0 : {
16630 0 : {
16631 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
16632 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16633 0 : if (res) return res;
16634 : }
16635 0 : break;
16636 : }
16637 : default:;
16638 : }
16639 : }
16640 : break;
16641 : }
16642 : default:;
16643 : }
16644 : break;
16645 : }
16646 : default:;
16647 : }
16648 : break;
16649 : }
16650 1682067 : default:;
16651 : }
16652 1682067 : switch (TREE_CODE (_q20))
16653 : {
16654 62811 : CASE_CONVERT:
16655 62811 : {
16656 62811 : tree _q30 = TREE_OPERAND (_q20, 0);
16657 62811 : switch (TREE_CODE (_q21))
16658 : {
16659 24820 : case INTEGER_CST:
16660 24820 : {
16661 24820 : switch (TREE_CODE (_p1))
16662 : {
16663 11115 : CASE_CONVERT:
16664 11115 : {
16665 11115 : tree _q60 = TREE_OPERAND (_p1, 0);
16666 11115 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
16667 : {
16668 57 : switch (TREE_CODE (_p2))
16669 : {
16670 56 : case INTEGER_CST:
16671 56 : {
16672 56 : {
16673 56 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16674 56 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16675 56 : if (res) return res;
16676 : }
16677 56 : break;
16678 : }
16679 : default:;
16680 : }
16681 : }
16682 : break;
16683 : }
16684 24820 : default:;
16685 : }
16686 24820 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
16687 : {
16688 118 : switch (TREE_CODE (_p2))
16689 : {
16690 112 : case INTEGER_CST:
16691 112 : {
16692 112 : {
16693 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16694 112 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16695 112 : if (res) return res;
16696 : }
16697 112 : break;
16698 : }
16699 : default:;
16700 : }
16701 : }
16702 : break;
16703 : }
16704 : default:;
16705 : }
16706 : break;
16707 : }
16708 1682067 : default:;
16709 : }
16710 1682067 : switch (TREE_CODE (_q21))
16711 : {
16712 878360 : case INTEGER_CST:
16713 878360 : {
16714 878360 : switch (TREE_CODE (_p1))
16715 : {
16716 197485 : CASE_CONVERT:
16717 197485 : {
16718 197485 : tree _q50 = TREE_OPERAND (_p1, 0);
16719 197485 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16720 : {
16721 321 : switch (TREE_CODE (_p2))
16722 : {
16723 7 : case INTEGER_CST:
16724 7 : {
16725 7 : {
16726 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16727 7 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16728 7 : if (res) return res;
16729 : }
16730 0 : break;
16731 : }
16732 : default:;
16733 : }
16734 : }
16735 : break;
16736 : }
16737 878353 : default:;
16738 : }
16739 878353 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
16740 : {
16741 58 : switch (TREE_CODE (_p2))
16742 : {
16743 5 : case INTEGER_CST:
16744 5 : {
16745 5 : {
16746 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16747 5 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16748 5 : if (res) return res;
16749 : }
16750 0 : break;
16751 : }
16752 : default:;
16753 : }
16754 : }
16755 : break;
16756 : }
16757 1682055 : default:;
16758 : }
16759 1682055 : if (tree_expr_nonnegative_p (_q21))
16760 : {
16761 1525936 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
16762 : {
16763 80 : switch (TREE_CODE (_p2))
16764 : {
16765 0 : case ABS_EXPR:
16766 0 : {
16767 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16768 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16769 : {
16770 0 : {
16771 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16772 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16773 0 : if (res) return res;
16774 : }
16775 : }
16776 : break;
16777 : }
16778 : default:;
16779 : }
16780 : }
16781 : }
16782 1682055 : if (tree_expr_nonnegative_p (_q20))
16783 : {
16784 984565 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
16785 : {
16786 22736 : switch (TREE_CODE (_p2))
16787 : {
16788 0 : case ABS_EXPR:
16789 0 : {
16790 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16791 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
16792 : {
16793 0 : {
16794 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
16795 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
16796 0 : if (res) return res;
16797 : }
16798 : }
16799 : break;
16800 : }
16801 : default:;
16802 : }
16803 : }
16804 984565 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
16805 : {
16806 25 : switch (TREE_CODE (_p2))
16807 : {
16808 0 : case ABS_EXPR:
16809 0 : {
16810 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16811 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
16812 : {
16813 0 : {
16814 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
16815 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16816 0 : if (res) return res;
16817 : }
16818 : }
16819 : break;
16820 : }
16821 : default:;
16822 : }
16823 : }
16824 : }
16825 1682055 : if (tree_expr_nonnegative_p (_q21))
16826 : {
16827 1525936 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
16828 : {
16829 23108 : switch (TREE_CODE (_p2))
16830 : {
16831 0 : case ABS_EXPR:
16832 0 : {
16833 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16834 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16835 : {
16836 0 : {
16837 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16838 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
16839 0 : if (res) return res;
16840 : }
16841 : }
16842 : break;
16843 : }
16844 : default:;
16845 : }
16846 : }
16847 : }
16848 : break;
16849 : }
16850 2802266 : case NE_EXPR:
16851 2802266 : {
16852 2802266 : tree _q20 = TREE_OPERAND (_p0, 0);
16853 2802266 : tree _q21 = TREE_OPERAND (_p0, 1);
16854 2802266 : if (tree_zero_one_valued_p (_q20))
16855 : {
16856 158605 : if (integer_zerop (_q21))
16857 : {
16858 156838 : switch (TREE_CODE (_p1))
16859 : {
16860 5 : case BIT_XOR_EXPR:
16861 5 : {
16862 5 : tree _q50 = TREE_OPERAND (_p1, 0);
16863 5 : tree _q51 = TREE_OPERAND (_p1, 1);
16864 5 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
16865 : {
16866 1 : {
16867 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
16868 1 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16869 1 : if (res) return res;
16870 : }
16871 : }
16872 4 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
16873 : {
16874 4 : {
16875 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
16876 4 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16877 4 : if (res) return res;
16878 : }
16879 : }
16880 : break;
16881 : }
16882 1 : case BIT_IOR_EXPR:
16883 1 : {
16884 1 : tree _q50 = TREE_OPERAND (_p1, 0);
16885 1 : tree _q51 = TREE_OPERAND (_p1, 1);
16886 1 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
16887 : {
16888 1 : {
16889 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
16890 1 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16891 1 : if (res) return res;
16892 : }
16893 : }
16894 0 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
16895 : {
16896 0 : {
16897 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
16898 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16899 0 : if (res) return res;
16900 : }
16901 : }
16902 : break;
16903 : }
16904 110 : case PLUS_EXPR:
16905 110 : {
16906 110 : tree _q50 = TREE_OPERAND (_p1, 0);
16907 110 : tree _q51 = TREE_OPERAND (_p1, 1);
16908 110 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
16909 : {
16910 8 : {
16911 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
16912 8 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16913 8 : if (res) return res;
16914 : }
16915 : }
16916 109 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
16917 : {
16918 1 : {
16919 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
16920 1 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16921 1 : if (res) return res;
16922 : }
16923 : }
16924 : break;
16925 : }
16926 : default:;
16927 : }
16928 : }
16929 : }
16930 2802258 : if (integer_zerop (_q21))
16931 : {
16932 1856692 : switch (TREE_CODE (_p1))
16933 : {
16934 89 : case TRUNC_DIV_EXPR:
16935 89 : {
16936 89 : tree _q50 = TREE_OPERAND (_p1, 0);
16937 89 : tree _q51 = TREE_OPERAND (_p1, 1);
16938 89 : if (integer_zerop (_p2))
16939 : {
16940 51 : {
16941 51 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
16942 51 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
16943 51 : if (res) return res;
16944 : }
16945 : }
16946 : break;
16947 : }
16948 0 : case CEIL_DIV_EXPR:
16949 0 : {
16950 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16951 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16952 0 : if (integer_zerop (_p2))
16953 : {
16954 0 : {
16955 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
16956 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
16957 0 : if (res) return res;
16958 : }
16959 : }
16960 : break;
16961 : }
16962 0 : case FLOOR_DIV_EXPR:
16963 0 : {
16964 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16965 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16966 0 : if (integer_zerop (_p2))
16967 : {
16968 0 : {
16969 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
16970 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
16971 0 : if (res) return res;
16972 : }
16973 : }
16974 : break;
16975 : }
16976 0 : case ROUND_DIV_EXPR:
16977 0 : {
16978 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16979 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16980 0 : if (integer_zerop (_p2))
16981 : {
16982 0 : {
16983 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
16984 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
16985 0 : if (res) return res;
16986 : }
16987 : }
16988 : break;
16989 : }
16990 31 : case EXACT_DIV_EXPR:
16991 31 : {
16992 31 : tree _q50 = TREE_OPERAND (_p1, 0);
16993 31 : tree _q51 = TREE_OPERAND (_p1, 1);
16994 31 : if (integer_zerop (_p2))
16995 : {
16996 0 : {
16997 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
16998 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
16999 0 : if (res) return res;
17000 : }
17001 : }
17002 : break;
17003 : }
17004 596 : case MULT_EXPR:
17005 596 : {
17006 596 : tree _q50 = TREE_OPERAND (_p1, 0);
17007 596 : tree _q51 = TREE_OPERAND (_p1, 1);
17008 596 : if (integer_zerop (_p2))
17009 : {
17010 40 : {
17011 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17012 40 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17013 40 : if (res) return res;
17014 : }
17015 40 : {
17016 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
17017 40 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17018 40 : if (res) return res;
17019 : }
17020 : }
17021 : break;
17022 : }
17023 278 : case BIT_AND_EXPR:
17024 278 : {
17025 278 : tree _q50 = TREE_OPERAND (_p1, 0);
17026 278 : tree _q51 = TREE_OPERAND (_p1, 1);
17027 278 : if (integer_zerop (_p2))
17028 : {
17029 52 : {
17030 52 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17031 52 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17032 52 : if (res) return res;
17033 : }
17034 52 : {
17035 52 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
17036 52 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17037 52 : if (res) return res;
17038 : }
17039 : }
17040 : break;
17041 : }
17042 : default:;
17043 : }
17044 : }
17045 2802256 : if (uniform_integer_cst_p (_q21))
17046 : {
17047 2155993 : switch (TREE_CODE (_p1))
17048 : {
17049 110119 : case PLUS_EXPR:
17050 110119 : {
17051 110119 : tree _q50 = TREE_OPERAND (_p1, 0);
17052 110119 : tree _q51 = TREE_OPERAND (_p1, 1);
17053 110119 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17054 : {
17055 2615 : if (uniform_integer_cst_p (_q51))
17056 : {
17057 2615 : if (uniform_integer_cst_p (_p2))
17058 : {
17059 2613 : {
17060 2613 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
17061 2613 : {
17062 2613 : tree cst1 = uniform_integer_cst_p (captures[1]);
17063 2613 : tree cst2 = uniform_integer_cst_p (captures[3]);
17064 2613 : tree cst3 = uniform_integer_cst_p (captures[4]);
17065 2613 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
17066 : )
17067 : {
17068 10 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1820;
17069 10 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1820;
17070 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
17071 10 : {
17072 10 : tree _r;
17073 10 : _r = captures[2];
17074 10 : if (TREE_SIDE_EFFECTS (captures[1]))
17075 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
17076 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
17077 10 : return _r;
17078 : }
17079 2603 : next_after_fail1820:;
17080 : }
17081 : }
17082 : }
17083 : }
17084 : }
17085 : }
17086 : break;
17087 : }
17088 : default:;
17089 : }
17090 : }
17091 2802246 : switch (TREE_CODE (_q20))
17092 : {
17093 276361 : case BIT_AND_EXPR:
17094 276361 : {
17095 276361 : tree _q30 = TREE_OPERAND (_q20, 0);
17096 276361 : tree _q31 = TREE_OPERAND (_q20, 1);
17097 276361 : switch (TREE_CODE (_q31))
17098 : {
17099 205832 : case INTEGER_CST:
17100 205832 : {
17101 205832 : if (integer_zerop (_q21))
17102 : {
17103 205819 : switch (TREE_CODE (_p1))
17104 : {
17105 44 : case BIT_AND_EXPR:
17106 44 : {
17107 44 : tree _q70 = TREE_OPERAND (_p1, 0);
17108 44 : tree _q71 = TREE_OPERAND (_p1, 1);
17109 44 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
17110 : {
17111 18 : switch (TREE_CODE (_q71))
17112 : {
17113 18 : case INTEGER_CST:
17114 18 : {
17115 18 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17116 : {
17117 0 : {
17118 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _p1, _q71 };
17119 0 : if (wi::to_wide (captures[3]) == ~wi::to_wide (captures[1])
17120 : )
17121 : {
17122 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1821;
17123 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1821;
17124 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1821;
17125 0 : {
17126 0 : tree _r;
17127 0 : _r = captures[2];
17128 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1042, __FILE__, __LINE__, true);
17129 0 : return _r;
17130 : }
17131 0 : next_after_fail1821:;
17132 : }
17133 : }
17134 : }
17135 18 : switch (TREE_CODE (_p2))
17136 : {
17137 18 : case BIT_IOR_EXPR:
17138 18 : {
17139 18 : tree _q100 = TREE_OPERAND (_p2, 0);
17140 18 : tree _q101 = TREE_OPERAND (_p2, 1);
17141 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
17142 : {
17143 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
17144 : {
17145 18 : {
17146 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
17147 18 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17148 18 : if (res) return res;
17149 : }
17150 : }
17151 : }
17152 : break;
17153 : }
17154 : default:;
17155 : }
17156 : break;
17157 : }
17158 : default:;
17159 : }
17160 : }
17161 : break;
17162 : }
17163 139 : case PLUS_EXPR:
17164 139 : {
17165 139 : tree _q70 = TREE_OPERAND (_p1, 0);
17166 139 : tree _q71 = TREE_OPERAND (_p1, 1);
17167 139 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
17168 : {
17169 18 : switch (TREE_CODE (_q71))
17170 : {
17171 18 : case INTEGER_CST:
17172 18 : {
17173 18 : switch (TREE_CODE (_p2))
17174 : {
17175 18 : case BIT_IOR_EXPR:
17176 18 : {
17177 18 : tree _q100 = TREE_OPERAND (_p2, 0);
17178 18 : tree _q101 = TREE_OPERAND (_p2, 1);
17179 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
17180 : {
17181 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
17182 : {
17183 18 : {
17184 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
17185 18 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
17186 18 : if (res) return res;
17187 : }
17188 : }
17189 : }
17190 : break;
17191 : }
17192 : default:;
17193 : }
17194 : break;
17195 : }
17196 : default:;
17197 : }
17198 : }
17199 : break;
17200 : }
17201 : default:;
17202 : }
17203 : }
17204 : break;
17205 : }
17206 : default:;
17207 : }
17208 : break;
17209 : }
17210 2802222 : default:;
17211 : }
17212 2802222 : switch (TREE_CODE (_p1))
17213 : {
17214 9331 : case BIT_IOR_EXPR:
17215 9331 : {
17216 9331 : tree _q50 = TREE_OPERAND (_p1, 0);
17217 9331 : tree _q51 = TREE_OPERAND (_p1, 1);
17218 9331 : switch (TREE_CODE (_q51))
17219 : {
17220 9106 : case INTEGER_CST:
17221 9106 : {
17222 9106 : switch (TREE_CODE (_p2))
17223 : {
17224 0 : case BIT_AND_EXPR:
17225 0 : {
17226 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17227 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17228 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
17229 : {
17230 0 : switch (TREE_CODE (_q81))
17231 : {
17232 0 : case INTEGER_CST:
17233 0 : {
17234 0 : {
17235 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q51, _p2, _q81 };
17236 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17237 0 : if (res) return res;
17238 : }
17239 0 : break;
17240 : }
17241 : default:;
17242 : }
17243 : }
17244 : break;
17245 : }
17246 : default:;
17247 : }
17248 : break;
17249 : }
17250 : default:;
17251 : }
17252 : break;
17253 : }
17254 2802222 : default:;
17255 : }
17256 2802222 : switch (TREE_CODE (_q20))
17257 : {
17258 342982 : CASE_CONVERT:
17259 342982 : {
17260 342982 : tree _q30 = TREE_OPERAND (_q20, 0);
17261 342982 : switch (TREE_CODE (_q21))
17262 : {
17263 298584 : case INTEGER_CST:
17264 298584 : {
17265 298584 : switch (TREE_CODE (_p1))
17266 : {
17267 97010 : CASE_CONVERT:
17268 97010 : {
17269 97010 : tree _q60 = TREE_OPERAND (_p1, 0);
17270 97010 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17271 : {
17272 57 : switch (TREE_CODE (_p2))
17273 : {
17274 9 : case INTEGER_CST:
17275 9 : {
17276 9 : {
17277 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17278 9 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17279 9 : if (res) return res;
17280 : }
17281 9 : break;
17282 : }
17283 : default:;
17284 : }
17285 : }
17286 : break;
17287 : }
17288 298584 : default:;
17289 : }
17290 298584 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
17291 : {
17292 48 : switch (TREE_CODE (_p2))
17293 : {
17294 0 : case INTEGER_CST:
17295 0 : {
17296 0 : {
17297 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17298 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17299 0 : if (res) return res;
17300 : }
17301 0 : break;
17302 : }
17303 : default:;
17304 : }
17305 : }
17306 : break;
17307 : }
17308 : default:;
17309 : }
17310 : break;
17311 : }
17312 2802222 : default:;
17313 : }
17314 2802222 : switch (TREE_CODE (_q21))
17315 : {
17316 2155959 : case INTEGER_CST:
17317 2155959 : {
17318 2155959 : switch (TREE_CODE (_p1))
17319 : {
17320 357436 : CASE_CONVERT:
17321 357436 : {
17322 357436 : tree _q50 = TREE_OPERAND (_p1, 0);
17323 357436 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17324 : {
17325 72568 : switch (TREE_CODE (_p2))
17326 : {
17327 71373 : case INTEGER_CST:
17328 71373 : {
17329 71373 : {
17330 71373 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17331 71373 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17332 71373 : if (res) return res;
17333 : }
17334 71373 : break;
17335 : }
17336 : default:;
17337 : }
17338 : }
17339 : break;
17340 : }
17341 2155959 : default:;
17342 : }
17343 2155959 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17344 : {
17345 53662 : switch (TREE_CODE (_p2))
17346 : {
17347 51174 : case INTEGER_CST:
17348 51174 : {
17349 51174 : {
17350 51174 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17351 51174 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
17352 51174 : if (res) return res;
17353 : }
17354 51174 : break;
17355 : }
17356 : default:;
17357 : }
17358 : }
17359 : break;
17360 : }
17361 2802222 : default:;
17362 : }
17363 2802222 : switch (TREE_CODE (_p1))
17364 : {
17365 12380 : case MINUS_EXPR:
17366 12380 : {
17367 12380 : tree _q50 = TREE_OPERAND (_p1, 0);
17368 12380 : tree _q51 = TREE_OPERAND (_p1, 1);
17369 12380 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17370 : {
17371 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17372 : {
17373 0 : if (integer_zerop (_p2))
17374 : {
17375 0 : {
17376 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17377 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures);
17378 0 : if (res) return res;
17379 : }
17380 : }
17381 : }
17382 : }
17383 12380 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17384 : {
17385 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17386 : {
17387 19 : if (integer_zerop (_p2))
17388 : {
17389 0 : {
17390 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17391 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures);
17392 0 : if (res) return res;
17393 : }
17394 : }
17395 : }
17396 : }
17397 : break;
17398 : }
17399 14 : case BIT_XOR_EXPR:
17400 14 : {
17401 14 : tree _q50 = TREE_OPERAND (_p1, 0);
17402 14 : tree _q51 = TREE_OPERAND (_p1, 1);
17403 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17404 : {
17405 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17406 : {
17407 7 : if (integer_zerop (_p2))
17408 : {
17409 0 : {
17410 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17411 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures);
17412 0 : if (res) return res;
17413 : }
17414 : }
17415 : }
17416 : }
17417 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17418 : {
17419 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17420 : {
17421 0 : if (integer_zerop (_p2))
17422 : {
17423 0 : {
17424 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17425 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures);
17426 0 : if (res) return res;
17427 : }
17428 : }
17429 : }
17430 : }
17431 : break;
17432 : }
17433 265 : case BIT_AND_EXPR:
17434 265 : {
17435 265 : tree _q50 = TREE_OPERAND (_p1, 0);
17436 265 : tree _q51 = TREE_OPERAND (_p1, 1);
17437 265 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17438 : {
17439 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17440 : {
17441 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17442 : {
17443 0 : {
17444 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17445 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17446 0 : if (res) return res;
17447 : }
17448 : }
17449 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17450 : {
17451 0 : {
17452 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17453 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17454 0 : if (res) return res;
17455 : }
17456 : }
17457 : }
17458 : }
17459 265 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17460 : {
17461 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17462 : {
17463 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17464 : {
17465 0 : {
17466 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17467 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17468 0 : if (res) return res;
17469 : }
17470 : }
17471 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17472 : {
17473 0 : {
17474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17475 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17476 0 : if (res) return res;
17477 : }
17478 : }
17479 : }
17480 : }
17481 : break;
17482 : }
17483 9331 : case BIT_IOR_EXPR:
17484 9331 : {
17485 9331 : tree _q50 = TREE_OPERAND (_p1, 0);
17486 9331 : tree _q51 = TREE_OPERAND (_p1, 1);
17487 9331 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17488 : {
17489 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17490 : {
17491 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17492 : {
17493 0 : {
17494 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17495 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17496 0 : if (res) return res;
17497 : }
17498 : }
17499 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17500 : {
17501 0 : {
17502 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17503 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17504 0 : if (res) return res;
17505 : }
17506 : }
17507 : }
17508 : }
17509 9331 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17510 : {
17511 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17512 : {
17513 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17514 : {
17515 0 : {
17516 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17517 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17518 0 : if (res) return res;
17519 : }
17520 : }
17521 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17522 : {
17523 0 : {
17524 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17525 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17526 0 : if (res) return res;
17527 : }
17528 : }
17529 : }
17530 : }
17531 : break;
17532 : }
17533 0 : case MIN_EXPR:
17534 0 : {
17535 0 : tree _q50 = TREE_OPERAND (_p1, 0);
17536 0 : tree _q51 = TREE_OPERAND (_p1, 1);
17537 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17538 : {
17539 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17540 : {
17541 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17542 : {
17543 0 : {
17544 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17545 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
17546 0 : if (res) return res;
17547 : }
17548 : }
17549 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17550 : {
17551 0 : {
17552 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17553 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
17554 0 : if (res) return res;
17555 : }
17556 : }
17557 : }
17558 0 : switch (TREE_CODE (_p2))
17559 : {
17560 0 : case MIN_EXPR:
17561 0 : {
17562 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17563 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17564 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
17565 : {
17566 0 : {
17567 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
17568 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17569 0 : if (res) return res;
17570 : }
17571 : }
17572 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
17573 : {
17574 0 : {
17575 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
17576 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17577 0 : if (res) return res;
17578 : }
17579 : }
17580 : break;
17581 : }
17582 : default:;
17583 : }
17584 : }
17585 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17586 : {
17587 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17588 : {
17589 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17590 : {
17591 0 : {
17592 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17593 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
17594 0 : if (res) return res;
17595 : }
17596 : }
17597 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17598 : {
17599 0 : {
17600 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17601 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
17602 0 : if (res) return res;
17603 : }
17604 : }
17605 : }
17606 0 : switch (TREE_CODE (_p2))
17607 : {
17608 0 : case MIN_EXPR:
17609 0 : {
17610 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17611 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17612 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
17613 : {
17614 0 : {
17615 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
17616 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17617 0 : if (res) return res;
17618 : }
17619 : }
17620 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
17621 : {
17622 0 : {
17623 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
17624 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17625 0 : if (res) return res;
17626 : }
17627 : }
17628 : break;
17629 : }
17630 : default:;
17631 : }
17632 : }
17633 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17634 : {
17635 0 : switch (TREE_CODE (_p2))
17636 : {
17637 0 : case MIN_EXPR:
17638 0 : {
17639 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17640 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17641 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
17642 : {
17643 0 : {
17644 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
17645 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17646 0 : if (res) return res;
17647 : }
17648 : }
17649 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
17650 : {
17651 0 : {
17652 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
17653 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17654 0 : if (res) return res;
17655 : }
17656 : }
17657 : break;
17658 : }
17659 : default:;
17660 : }
17661 : }
17662 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17663 : {
17664 0 : switch (TREE_CODE (_p2))
17665 : {
17666 0 : case MIN_EXPR:
17667 0 : {
17668 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17669 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17670 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
17671 : {
17672 0 : {
17673 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
17674 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17675 0 : if (res) return res;
17676 : }
17677 : }
17678 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
17679 : {
17680 0 : {
17681 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
17682 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
17683 0 : if (res) return res;
17684 : }
17685 : }
17686 : break;
17687 : }
17688 : default:;
17689 : }
17690 : }
17691 : break;
17692 : }
17693 0 : case MAX_EXPR:
17694 0 : {
17695 0 : tree _q50 = TREE_OPERAND (_p1, 0);
17696 0 : tree _q51 = TREE_OPERAND (_p1, 1);
17697 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17698 : {
17699 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17700 : {
17701 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17702 : {
17703 0 : {
17704 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17705 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
17706 0 : if (res) return res;
17707 : }
17708 : }
17709 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17710 : {
17711 0 : {
17712 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17713 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
17714 0 : if (res) return res;
17715 : }
17716 : }
17717 : }
17718 0 : switch (TREE_CODE (_p2))
17719 : {
17720 0 : case MAX_EXPR:
17721 0 : {
17722 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17723 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17724 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
17725 : {
17726 0 : {
17727 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
17728 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17729 0 : if (res) return res;
17730 : }
17731 : }
17732 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
17733 : {
17734 0 : {
17735 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
17736 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17737 0 : if (res) return res;
17738 : }
17739 : }
17740 : break;
17741 : }
17742 : default:;
17743 : }
17744 : }
17745 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17746 : {
17747 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17748 : {
17749 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
17750 : {
17751 0 : {
17752 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17753 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
17754 0 : if (res) return res;
17755 : }
17756 : }
17757 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
17758 : {
17759 0 : {
17760 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17761 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
17762 0 : if (res) return res;
17763 : }
17764 : }
17765 : }
17766 0 : switch (TREE_CODE (_p2))
17767 : {
17768 0 : case MAX_EXPR:
17769 0 : {
17770 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17771 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17772 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
17773 : {
17774 0 : {
17775 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
17776 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17777 0 : if (res) return res;
17778 : }
17779 : }
17780 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
17781 : {
17782 0 : {
17783 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
17784 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17785 0 : if (res) return res;
17786 : }
17787 : }
17788 : break;
17789 : }
17790 : default:;
17791 : }
17792 : }
17793 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17794 : {
17795 0 : switch (TREE_CODE (_p2))
17796 : {
17797 0 : case MAX_EXPR:
17798 0 : {
17799 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17800 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17801 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
17802 : {
17803 0 : {
17804 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
17805 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17806 0 : if (res) return res;
17807 : }
17808 : }
17809 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
17810 : {
17811 0 : {
17812 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
17813 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17814 0 : if (res) return res;
17815 : }
17816 : }
17817 : break;
17818 : }
17819 : default:;
17820 : }
17821 : }
17822 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17823 : {
17824 0 : switch (TREE_CODE (_p2))
17825 : {
17826 0 : case MAX_EXPR:
17827 0 : {
17828 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17829 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17830 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
17831 : {
17832 0 : {
17833 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
17834 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17835 0 : if (res) return res;
17836 : }
17837 : }
17838 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
17839 : {
17840 0 : {
17841 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
17842 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
17843 0 : if (res) return res;
17844 : }
17845 : }
17846 : break;
17847 : }
17848 : default:;
17849 : }
17850 : }
17851 : break;
17852 : }
17853 24170 : case MULT_EXPR:
17854 24170 : {
17855 24170 : tree _q50 = TREE_OPERAND (_p1, 0);
17856 24170 : tree _q51 = TREE_OPERAND (_p1, 1);
17857 24170 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17858 : {
17859 19483 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17860 : {
17861 0 : switch (TREE_CODE (_p2))
17862 : {
17863 0 : case MULT_EXPR:
17864 0 : {
17865 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17866 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17867 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
17868 : {
17869 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
17870 : {
17871 0 : {
17872 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17873 0 : const enum tree_code op = MULT_EXPR;
17874 0 : if (ANY_INTEGRAL_TYPE_P (type)
17875 : )
17876 : {
17877 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1822;
17878 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1822;
17879 0 : {
17880 0 : tree _r;
17881 0 : _r = captures[2];
17882 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
17883 0 : return _r;
17884 : }
17885 0 : next_after_fail1822:;
17886 : }
17887 : }
17888 : }
17889 : }
17890 : break;
17891 : }
17892 : default:;
17893 : }
17894 : }
17895 : }
17896 24170 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
17897 : {
17898 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
17899 : {
17900 0 : switch (TREE_CODE (_p2))
17901 : {
17902 0 : case MULT_EXPR:
17903 0 : {
17904 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17905 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17906 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
17907 : {
17908 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
17909 : {
17910 0 : {
17911 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
17912 0 : const enum tree_code op = MULT_EXPR;
17913 0 : if (ANY_INTEGRAL_TYPE_P (type)
17914 : )
17915 : {
17916 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1823;
17917 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1823;
17918 0 : {
17919 0 : tree _r;
17920 0 : _r = captures[2];
17921 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
17922 0 : return _r;
17923 : }
17924 0 : next_after_fail1823:;
17925 : }
17926 : }
17927 : }
17928 : }
17929 : break;
17930 : }
17931 : default:;
17932 : }
17933 : }
17934 : }
17935 : break;
17936 : }
17937 110169 : case PLUS_EXPR:
17938 110169 : {
17939 110169 : tree _q50 = TREE_OPERAND (_p1, 0);
17940 110169 : tree _q51 = TREE_OPERAND (_p1, 1);
17941 110169 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17942 : {
17943 2613 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
17944 : {
17945 0 : switch (TREE_CODE (_p2))
17946 : {
17947 0 : case PLUS_EXPR:
17948 0 : {
17949 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17950 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17951 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
17952 : {
17953 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
17954 : {
17955 0 : {
17956 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
17957 0 : const enum tree_code op = PLUS_EXPR;
17958 0 : if (ANY_INTEGRAL_TYPE_P (type)
17959 : )
17960 : {
17961 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1824;
17962 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1824;
17963 0 : {
17964 0 : tree _r;
17965 0 : _r = captures[2];
17966 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
17967 0 : return _r;
17968 : }
17969 0 : next_after_fail1824:;
17970 : }
17971 : }
17972 : }
17973 : }
17974 : break;
17975 : }
17976 0 : case MULT_EXPR:
17977 0 : {
17978 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17979 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17980 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
17981 : {
17982 0 : if (uniform_integer_cst_p (_q81))
17983 : {
17984 0 : {
17985 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
17986 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
17987 : )
17988 : {
17989 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1825;
17990 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1825;
17991 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1825;
17992 0 : {
17993 0 : tree _r;
17994 0 : _r = captures[2];
17995 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
17996 0 : return _r;
17997 : }
17998 0 : next_after_fail1825:;
17999 : }
18000 : }
18001 : }
18002 : }
18003 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
18004 : {
18005 0 : if (uniform_integer_cst_p (_q81))
18006 : {
18007 0 : {
18008 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
18009 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
18010 : )
18011 : {
18012 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1826;
18013 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1826;
18014 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1826;
18015 0 : {
18016 0 : tree _r;
18017 0 : _r = captures[2];
18018 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
18019 0 : return _r;
18020 : }
18021 0 : next_after_fail1826:;
18022 : }
18023 : }
18024 : }
18025 : }
18026 : break;
18027 : }
18028 : default:;
18029 : }
18030 : }
18031 : }
18032 110169 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18033 : {
18034 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18035 : {
18036 0 : switch (TREE_CODE (_p2))
18037 : {
18038 0 : case PLUS_EXPR:
18039 0 : {
18040 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18041 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18042 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
18043 : {
18044 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
18045 : {
18046 0 : {
18047 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18048 0 : const enum tree_code op = PLUS_EXPR;
18049 0 : if (ANY_INTEGRAL_TYPE_P (type)
18050 : )
18051 : {
18052 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1827;
18053 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1827;
18054 0 : {
18055 0 : tree _r;
18056 0 : _r = captures[2];
18057 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
18058 0 : return _r;
18059 : }
18060 0 : next_after_fail1827:;
18061 : }
18062 : }
18063 : }
18064 : }
18065 : break;
18066 : }
18067 0 : case MULT_EXPR:
18068 0 : {
18069 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18070 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18071 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
18072 : {
18073 0 : if (uniform_integer_cst_p (_q81))
18074 : {
18075 0 : {
18076 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
18077 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
18078 : )
18079 : {
18080 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1828;
18081 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1828;
18082 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1828;
18083 0 : {
18084 0 : tree _r;
18085 0 : _r = captures[2];
18086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
18087 0 : return _r;
18088 : }
18089 0 : next_after_fail1828:;
18090 : }
18091 : }
18092 : }
18093 : }
18094 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
18095 : {
18096 0 : if (uniform_integer_cst_p (_q81))
18097 : {
18098 0 : {
18099 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
18100 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
18101 : )
18102 : {
18103 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1829;
18104 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1829;
18105 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1829;
18106 0 : {
18107 0 : tree _r;
18108 0 : _r = captures[2];
18109 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
18110 0 : return _r;
18111 : }
18112 0 : next_after_fail1829:;
18113 : }
18114 : }
18115 : }
18116 : }
18117 : break;
18118 : }
18119 : default:;
18120 : }
18121 : }
18122 : }
18123 : break;
18124 : }
18125 2802222 : default:;
18126 : }
18127 2802222 : switch (TREE_CODE (_q21))
18128 : {
18129 2155959 : case INTEGER_CST:
18130 2155959 : {
18131 2155959 : switch (TREE_CODE (_p1))
18132 : {
18133 228 : case NEGATE_EXPR:
18134 228 : {
18135 228 : tree _q50 = TREE_OPERAND (_p1, 0);
18136 228 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18137 : {
18138 42 : switch (TREE_CODE (_p2))
18139 : {
18140 14 : case INTEGER_CST:
18141 14 : {
18142 14 : {
18143 14 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18144 14 : if (!TYPE_SATURATING (type)
18145 28 : && wi::eq_p (wi::neg (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
18146 : )
18147 : {
18148 12 : if (TYPE_OVERFLOW_WRAPS (type)
18149 4 : || !wi::only_sign_bit_p (wi::to_wide (captures[1]))
18150 : )
18151 : {
18152 11 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1830;
18153 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1830;
18154 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1830;
18155 11 : {
18156 11 : tree _r;
18157 11 : _r = captures[2];
18158 11 : if (TREE_SIDE_EFFECTS (captures[1]))
18159 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18160 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
18161 11 : return _r;
18162 : }
18163 2 : next_after_fail1830:;
18164 : }
18165 : else
18166 : {
18167 1 : {
18168 1 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
18169 1 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1831;
18170 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1831;
18171 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1831;
18172 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1831;
18173 1 : {
18174 1 : tree res_op0;
18175 1 : {
18176 1 : tree _o1[1], _r1;
18177 1 : {
18178 1 : tree _o2[1], _r2;
18179 1 : _o2[0] = captures[0];
18180 1 : if (TREE_TYPE (_o2[0]) != utype)
18181 : {
18182 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
18183 : }
18184 : else
18185 : _r2 = _o2[0];
18186 1 : _o1[0] = _r2;
18187 : }
18188 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
18189 1 : res_op0 = _r1;
18190 : }
18191 1 : tree _r;
18192 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
18193 1 : if (TREE_SIDE_EFFECTS (captures[1]))
18194 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18195 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
18196 1 : return _r;
18197 : }
18198 2 : next_after_fail1831:;
18199 : }
18200 : }
18201 : }
18202 : }
18203 2 : break;
18204 : }
18205 : default:;
18206 : }
18207 : }
18208 : break;
18209 : }
18210 97 : case BIT_NOT_EXPR:
18211 97 : {
18212 97 : tree _q50 = TREE_OPERAND (_p1, 0);
18213 97 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18214 : {
18215 20 : switch (TREE_CODE (_p2))
18216 : {
18217 20 : case INTEGER_CST:
18218 20 : {
18219 20 : {
18220 20 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18221 20 : if (wi::eq_p (wi::bit_not (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
18222 : )
18223 : {
18224 20 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1832;
18225 20 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1832;
18226 20 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1832;
18227 20 : {
18228 20 : tree _r;
18229 20 : _r = captures[2];
18230 20 : if (TREE_SIDE_EFFECTS (captures[1]))
18231 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18232 20 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
18233 20 : return _r;
18234 : }
18235 0 : next_after_fail1832:;
18236 : }
18237 : }
18238 0 : break;
18239 : }
18240 : default:;
18241 : }
18242 : }
18243 : break;
18244 : }
18245 5 : case ABS_EXPR:
18246 5 : {
18247 5 : tree _q50 = TREE_OPERAND (_p1, 0);
18248 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18249 : {
18250 1 : switch (TREE_CODE (_p2))
18251 : {
18252 1 : case INTEGER_CST:
18253 1 : {
18254 1 : {
18255 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18256 1 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
18257 : )
18258 : {
18259 0 : if (ABS_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
18260 : )
18261 : {
18262 0 : {
18263 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
18264 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1833;
18265 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1833;
18266 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1833;
18267 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1833;
18268 0 : {
18269 0 : tree res_op0;
18270 0 : {
18271 0 : tree _o1[1], _r1;
18272 0 : _o1[0] = captures[0];
18273 0 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
18274 0 : res_op0 = _r1;
18275 : }
18276 0 : tree _r;
18277 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
18278 0 : if (TREE_SIDE_EFFECTS (captures[1]))
18279 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18280 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
18281 0 : return _r;
18282 : }
18283 1 : next_after_fail1833:;
18284 : }
18285 : }
18286 : else
18287 : {
18288 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1834;
18289 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1834;
18290 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1834;
18291 0 : {
18292 0 : tree _r;
18293 0 : _r = captures[2];
18294 0 : if (TREE_SIDE_EFFECTS (captures[1]))
18295 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18296 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
18297 0 : return _r;
18298 : }
18299 1 : next_after_fail1834:;
18300 : }
18301 : }
18302 : }
18303 1 : break;
18304 : }
18305 : default:;
18306 : }
18307 : }
18308 : break;
18309 : }
18310 0 : case ABSU_EXPR:
18311 0 : {
18312 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18313 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18314 : {
18315 0 : switch (TREE_CODE (_p2))
18316 : {
18317 0 : case INTEGER_CST:
18318 0 : {
18319 0 : {
18320 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18321 0 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
18322 : )
18323 : {
18324 0 : if (ABSU_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
18325 : )
18326 : {
18327 : {
18328 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
18329 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1835;
18330 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1835;
18331 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1835;
18332 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1835;
18333 : {
18334 : tree res_op0;
18335 : {
18336 : tree _o1[1], _r1;
18337 : _o1[0] = captures[0];
18338 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
18339 : res_op0 = _r1;
18340 : }
18341 : tree _r;
18342 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
18343 : if (TREE_SIDE_EFFECTS (captures[1]))
18344 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18345 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
18346 : return _r;
18347 : }
18348 : next_after_fail1835:;
18349 : }
18350 : }
18351 : else
18352 : {
18353 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1836;
18354 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1836;
18355 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1836;
18356 0 : {
18357 0 : tree _r;
18358 0 : _r = captures[2];
18359 0 : if (TREE_SIDE_EFFECTS (captures[1]))
18360 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
18361 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
18362 0 : return _r;
18363 : }
18364 0 : next_after_fail1836:;
18365 : }
18366 : }
18367 : }
18368 0 : break;
18369 : }
18370 : default:;
18371 : }
18372 : }
18373 : break;
18374 : }
18375 : default:;
18376 : }
18377 : break;
18378 : }
18379 : default:;
18380 : }
18381 : break;
18382 : }
18383 1230295 : case INTEGER_CST:
18384 1230295 : {
18385 1230295 : {
18386 1230295 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
18387 1230295 : if (integer_zerop (captures[0])
18388 : )
18389 : {
18390 645170 : if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)
18391 : )
18392 : {
18393 636958 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1837;
18394 463857 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1837;
18395 451335 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1837;
18396 451335 : {
18397 451335 : tree _r;
18398 451335 : _r = captures[2];
18399 451335 : if (TREE_SIDE_EFFECTS (captures[0]))
18400 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
18401 451335 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
18402 451335 : return _r;
18403 : }
18404 409556 : next_after_fail1837:;
18405 : }
18406 : }
18407 : else
18408 : {
18409 585125 : if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)
18410 : )
18411 : {
18412 584133 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1838;
18413 460053 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1838;
18414 369404 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1838;
18415 369404 : {
18416 369404 : tree _r;
18417 369404 : _r = captures[1];
18418 369404 : if (TREE_SIDE_EFFECTS (captures[0]))
18419 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
18420 369404 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
18421 369404 : return _r;
18422 : }
18423 409556 : next_after_fail1838:;
18424 : }
18425 : }
18426 : }
18427 409556 : break;
18428 : }
18429 11622536 : default:;
18430 : }
18431 11622536 : switch (TREE_CODE (_p1))
18432 : {
18433 806902 : case COND_EXPR:
18434 806902 : {
18435 806902 : tree _q30 = TREE_OPERAND (_p1, 0);
18436 806902 : tree _q31 = TREE_OPERAND (_p1, 1);
18437 806902 : tree _q32 = TREE_OPERAND (_p1, 2);
18438 806902 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
18439 : {
18440 609 : {
18441 609 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
18442 609 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1839;
18443 609 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1839;
18444 55 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1839;
18445 54 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1839;
18446 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1839;
18447 10 : {
18448 10 : tree res_op0;
18449 10 : res_op0 = captures[0];
18450 10 : tree res_op1;
18451 10 : res_op1 = captures[1];
18452 10 : tree res_op2;
18453 10 : res_op2 = captures[3];
18454 10 : tree _r;
18455 10 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
18456 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
18457 10 : return _r;
18458 : }
18459 599 : next_after_fail1839:;
18460 : }
18461 : }
18462 : break;
18463 : }
18464 11622526 : default:;
18465 : }
18466 11622526 : switch (TREE_CODE (_p2))
18467 : {
18468 852164 : case COND_EXPR:
18469 852164 : {
18470 852164 : tree _q40 = TREE_OPERAND (_p2, 0);
18471 852164 : tree _q41 = TREE_OPERAND (_p2, 1);
18472 852164 : tree _q42 = TREE_OPERAND (_p2, 2);
18473 852164 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
18474 : {
18475 3762 : {
18476 3762 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
18477 3762 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1840;
18478 3762 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1840;
18479 3762 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1840;
18480 184 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1840;
18481 184 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1840;
18482 184 : {
18483 184 : tree res_op0;
18484 184 : res_op0 = captures[0];
18485 184 : tree res_op1;
18486 184 : res_op1 = captures[1];
18487 184 : tree res_op2;
18488 184 : res_op2 = captures[3];
18489 184 : tree _r;
18490 184 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
18491 184 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1053, __FILE__, __LINE__, true);
18492 184 : return _r;
18493 : }
18494 3578 : next_after_fail1840:;
18495 : }
18496 : }
18497 851980 : {
18498 851980 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
18499 851980 : if (inverse_conditions_p (captures[0], captures[2])
18500 : )
18501 : {
18502 1186 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1841;
18503 1186 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1841;
18504 1186 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1841;
18505 1186 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1841;
18506 1186 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1841;
18507 1186 : {
18508 1186 : tree res_op0;
18509 1186 : res_op0 = captures[0];
18510 1186 : tree res_op1;
18511 1186 : res_op1 = captures[1];
18512 1186 : tree res_op2;
18513 1186 : res_op2 = captures[3];
18514 1186 : tree _r;
18515 1186 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
18516 1186 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
18517 1186 : return _r;
18518 : }
18519 850794 : next_after_fail1841:;
18520 : }
18521 : }
18522 850794 : break;
18523 : }
18524 11621156 : default:;
18525 : }
18526 11621156 : switch (TREE_CODE (_p1))
18527 : {
18528 806892 : case COND_EXPR:
18529 806892 : {
18530 806892 : tree _q30 = TREE_OPERAND (_p1, 0);
18531 806892 : tree _q31 = TREE_OPERAND (_p1, 1);
18532 806892 : tree _q32 = TREE_OPERAND (_p1, 2);
18533 806892 : {
18534 806892 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
18535 806892 : if (inverse_conditions_p (captures[0], captures[1])
18536 : )
18537 : {
18538 172 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1842;
18539 172 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1842;
18540 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1842;
18541 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1842;
18542 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1842;
18543 2 : {
18544 2 : tree res_op0;
18545 2 : res_op0 = captures[0];
18546 2 : tree res_op1;
18547 2 : res_op1 = captures[3];
18548 2 : tree res_op2;
18549 2 : res_op2 = captures[4];
18550 2 : tree _r;
18551 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
18552 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
18553 2 : return _r;
18554 : }
18555 806890 : next_after_fail1842:;
18556 : }
18557 : }
18558 806890 : break;
18559 : }
18560 11621154 : default:;
18561 : }
18562 11621154 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
18563 : {
18564 50806 : {
18565 50806 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
18566 50806 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1843;
18567 50806 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1843;
18568 50806 : {
18569 50806 : tree _r;
18570 50806 : _r = captures[1];
18571 50806 : if (TREE_SIDE_EFFECTS (captures[0]))
18572 357 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
18573 50806 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
18574 50806 : return _r;
18575 : }
18576 0 : next_after_fail1843:;
18577 : }
18578 : }
18579 11570348 : switch (TREE_CODE (_p0))
18580 : {
18581 1652118 : case EQ_EXPR:
18582 1652118 : {
18583 1652118 : tree _q20 = TREE_OPERAND (_p0, 0);
18584 1652118 : tree _q21 = TREE_OPERAND (_p0, 1);
18585 1652118 : if (zerop (_q21))
18586 : {
18587 758756 : switch (TREE_CODE (_p2))
18588 : {
18589 36 : case NEGATE_EXPR:
18590 36 : {
18591 36 : tree _q60 = TREE_OPERAND (_p2, 0);
18592 36 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
18593 : {
18594 16 : {
18595 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
18596 16 : const enum tree_code cmp = EQ_EXPR;
18597 16 : if (!HONOR_SIGNED_ZEROS (type)
18598 16 : && bitwise_equal_p (captures[0], captures[1])
18599 : )
18600 : {
18601 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1844;
18602 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1844;
18603 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1844;
18604 0 : {
18605 0 : tree _r;
18606 0 : _r = captures[2];
18607 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
18608 0 : return _r;
18609 : }
18610 16 : next_after_fail1844:;
18611 : }
18612 : }
18613 : }
18614 : break;
18615 : }
18616 758756 : default:;
18617 : }
18618 758756 : if (zerop (_p1))
18619 : {
18620 44713 : switch (TREE_CODE (_p2))
18621 : {
18622 14 : case NEGATE_EXPR:
18623 14 : {
18624 14 : tree _q60 = TREE_OPERAND (_p2, 0);
18625 14 : {
18626 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
18627 14 : const enum tree_code cmp = EQ_EXPR;
18628 14 : if (!HONOR_SIGNED_ZEROS (type)
18629 14 : && bitwise_equal_p (captures[0], captures[2])
18630 : )
18631 : {
18632 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1845;
18633 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1845;
18634 7 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1845;
18635 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1845;
18636 7 : {
18637 7 : tree _r;
18638 7 : _r = captures[1];
18639 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
18640 7 : return _r;
18641 : }
18642 7 : next_after_fail1845:;
18643 : }
18644 : }
18645 7 : break;
18646 : }
18647 : default:;
18648 : }
18649 : }
18650 : }
18651 1652111 : switch (TREE_CODE (_q20))
18652 : {
18653 0 : case MINUS_EXPR:
18654 0 : {
18655 0 : tree _q30 = TREE_OPERAND (_q20, 0);
18656 0 : tree _q31 = TREE_OPERAND (_q20, 1);
18657 0 : if (zerop (_q21))
18658 : {
18659 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18660 : {
18661 0 : switch (TREE_CODE (_p2))
18662 : {
18663 0 : case MINUS_EXPR:
18664 0 : {
18665 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18666 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18667 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18668 : {
18669 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18670 : {
18671 0 : {
18672 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18673 0 : const enum tree_code cmp = EQ_EXPR;
18674 0 : if (!HONOR_SIGNED_ZEROS (type)
18675 : )
18676 : {
18677 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1846;
18678 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1846;
18679 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1846;
18680 0 : {
18681 0 : tree _r;
18682 0 : _r = captures[3];
18683 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
18684 0 : return _r;
18685 : }
18686 0 : next_after_fail1846:;
18687 : }
18688 : }
18689 : }
18690 : }
18691 : break;
18692 : }
18693 : default:;
18694 : }
18695 : }
18696 : }
18697 0 : if (integer_zerop (_q21))
18698 : {
18699 0 : if (integer_zerop (_p1))
18700 : {
18701 0 : switch (TREE_CODE (_p2))
18702 : {
18703 0 : case MINUS_EXPR:
18704 0 : {
18705 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18706 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18707 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18708 : {
18709 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18710 : {
18711 0 : {
18712 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18713 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
18714 0 : if (res) return res;
18715 : }
18716 : }
18717 : }
18718 : break;
18719 : }
18720 : default:;
18721 : }
18722 : }
18723 : }
18724 : break;
18725 : }
18726 59820 : case CALL_EXPR:
18727 59820 : switch (get_call_combined_fn (_q20))
18728 : {
18729 0 : case CFN_BUILT_IN_SIGNBITF:
18730 0 : if (call_expr_nargs (_q20) == 1)
18731 : {
18732 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18733 0 : if (integer_zerop (_q21))
18734 : {
18735 0 : switch (TREE_CODE (_p1))
18736 : {
18737 0 : case NEGATE_EXPR:
18738 0 : {
18739 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18740 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18741 : {
18742 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18743 : {
18744 0 : {
18745 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18746 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITF);
18747 0 : if (res) return res;
18748 : }
18749 : }
18750 : }
18751 : break;
18752 : }
18753 : default:;
18754 : }
18755 : }
18756 : }
18757 : break;
18758 0 : case CFN_BUILT_IN_SIGNBITL:
18759 0 : if (call_expr_nargs (_q20) == 1)
18760 : {
18761 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18762 0 : if (integer_zerop (_q21))
18763 : {
18764 0 : switch (TREE_CODE (_p1))
18765 : {
18766 0 : case NEGATE_EXPR:
18767 0 : {
18768 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18769 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18770 : {
18771 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18772 : {
18773 0 : {
18774 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18775 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITL);
18776 0 : if (res) return res;
18777 : }
18778 : }
18779 : }
18780 : break;
18781 : }
18782 : default:;
18783 : }
18784 : }
18785 : }
18786 : break;
18787 0 : case CFN_SIGNBIT:
18788 0 : if (call_expr_nargs (_q20) == 1)
18789 : {
18790 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18791 0 : if (integer_zerop (_q21))
18792 : {
18793 0 : switch (TREE_CODE (_p1))
18794 : {
18795 0 : case NEGATE_EXPR:
18796 0 : {
18797 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18798 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18799 : {
18800 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18801 : {
18802 0 : {
18803 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18804 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_SIGNBIT);
18805 0 : if (res) return res;
18806 : }
18807 : }
18808 : }
18809 : break;
18810 : }
18811 : default:;
18812 : }
18813 : }
18814 : }
18815 : break;
18816 411 : case CFN_BUILT_IN_SIGNBIT:
18817 411 : if (call_expr_nargs (_q20) == 1)
18818 : {
18819 411 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18820 411 : if (integer_zerop (_q21))
18821 : {
18822 411 : switch (TREE_CODE (_p1))
18823 : {
18824 3 : case NEGATE_EXPR:
18825 3 : {
18826 3 : tree _q60 = TREE_OPERAND (_p1, 0);
18827 3 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18828 : {
18829 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18830 : {
18831 3 : {
18832 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18833 3 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBIT);
18834 3 : if (res) return res;
18835 : }
18836 : }
18837 : }
18838 : break;
18839 : }
18840 : default:;
18841 : }
18842 : }
18843 : }
18844 : break;
18845 : default:;
18846 : }
18847 : break;
18848 : default:;
18849 : }
18850 : break;
18851 : }
18852 164 : case UNEQ_EXPR:
18853 164 : {
18854 164 : tree _q20 = TREE_OPERAND (_p0, 0);
18855 164 : tree _q21 = TREE_OPERAND (_p0, 1);
18856 164 : if (zerop (_q21))
18857 : {
18858 1 : switch (TREE_CODE (_p2))
18859 : {
18860 0 : case NEGATE_EXPR:
18861 0 : {
18862 0 : tree _q60 = TREE_OPERAND (_p2, 0);
18863 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
18864 : {
18865 0 : {
18866 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
18867 0 : const enum tree_code cmp = UNEQ_EXPR;
18868 0 : if (!HONOR_SIGNED_ZEROS (type)
18869 0 : && bitwise_equal_p (captures[0], captures[1])
18870 : )
18871 : {
18872 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1847;
18873 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1847;
18874 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1847;
18875 0 : {
18876 0 : tree _r;
18877 0 : _r = captures[2];
18878 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
18879 0 : return _r;
18880 : }
18881 0 : next_after_fail1847:;
18882 : }
18883 : }
18884 : }
18885 : break;
18886 : }
18887 1 : default:;
18888 : }
18889 1 : if (zerop (_p1))
18890 : {
18891 0 : switch (TREE_CODE (_p2))
18892 : {
18893 0 : case NEGATE_EXPR:
18894 0 : {
18895 0 : tree _q60 = TREE_OPERAND (_p2, 0);
18896 0 : {
18897 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
18898 0 : const enum tree_code cmp = UNEQ_EXPR;
18899 0 : if (!HONOR_SIGNED_ZEROS (type)
18900 0 : && bitwise_equal_p (captures[0], captures[2])
18901 : )
18902 : {
18903 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1848;
18904 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1848;
18905 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1848;
18906 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1848;
18907 0 : {
18908 0 : tree _r;
18909 0 : _r = captures[1];
18910 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
18911 0 : return _r;
18912 : }
18913 0 : next_after_fail1848:;
18914 : }
18915 : }
18916 0 : break;
18917 : }
18918 : default:;
18919 : }
18920 : }
18921 : }
18922 164 : switch (TREE_CODE (_q20))
18923 : {
18924 0 : case MINUS_EXPR:
18925 0 : {
18926 0 : tree _q30 = TREE_OPERAND (_q20, 0);
18927 0 : tree _q31 = TREE_OPERAND (_q20, 1);
18928 0 : if (zerop (_q21))
18929 : {
18930 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18931 : {
18932 0 : switch (TREE_CODE (_p2))
18933 : {
18934 0 : case MINUS_EXPR:
18935 0 : {
18936 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18937 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18938 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18939 : {
18940 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18941 : {
18942 0 : {
18943 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18944 0 : const enum tree_code cmp = UNEQ_EXPR;
18945 0 : if (!HONOR_SIGNED_ZEROS (type)
18946 : )
18947 : {
18948 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1849;
18949 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1849;
18950 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1849;
18951 0 : {
18952 0 : tree _r;
18953 0 : _r = captures[3];
18954 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
18955 0 : return _r;
18956 : }
18957 0 : next_after_fail1849:;
18958 : }
18959 : }
18960 : }
18961 : }
18962 : break;
18963 : }
18964 : default:;
18965 : }
18966 : }
18967 : }
18968 0 : if (integer_zerop (_q21))
18969 : {
18970 0 : if (integer_zerop (_p1))
18971 : {
18972 0 : switch (TREE_CODE (_p2))
18973 : {
18974 0 : case MINUS_EXPR:
18975 0 : {
18976 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18977 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18978 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18979 : {
18980 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18981 : {
18982 0 : {
18983 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18984 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
18985 0 : if (res) return res;
18986 : }
18987 : }
18988 : }
18989 : break;
18990 : }
18991 : default:;
18992 : }
18993 : }
18994 : }
18995 : break;
18996 : }
18997 : default:;
18998 : }
18999 : break;
19000 : }
19001 2800083 : case NE_EXPR:
19002 2800083 : {
19003 2800083 : tree _q20 = TREE_OPERAND (_p0, 0);
19004 2800083 : tree _q21 = TREE_OPERAND (_p0, 1);
19005 2800083 : if (zerop (_q21))
19006 : {
19007 1925115 : switch (TREE_CODE (_p2))
19008 : {
19009 50 : case NEGATE_EXPR:
19010 50 : {
19011 50 : tree _q60 = TREE_OPERAND (_p2, 0);
19012 50 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19013 : {
19014 10 : {
19015 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19016 10 : const enum tree_code cmp = NE_EXPR;
19017 10 : if (!HONOR_SIGNED_ZEROS (type)
19018 10 : && bitwise_equal_p (captures[0], captures[1])
19019 : )
19020 : {
19021 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1850;
19022 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1850;
19023 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1850;
19024 0 : {
19025 0 : tree _r;
19026 0 : _r = captures[1];
19027 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
19028 0 : return _r;
19029 : }
19030 10 : next_after_fail1850:;
19031 : }
19032 : }
19033 : }
19034 : break;
19035 : }
19036 1925115 : default:;
19037 : }
19038 1925115 : if (integer_zerop (_p2))
19039 : {
19040 316211 : {
19041 316211 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19042 316211 : const enum tree_code cmp = NE_EXPR;
19043 316211 : if (!HONOR_SIGNED_ZEROS (type)
19044 316211 : && bitwise_equal_p (captures[0], captures[1])
19045 : )
19046 : {
19047 530 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1851;
19048 498 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1851;
19049 498 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1851;
19050 498 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1851;
19051 498 : {
19052 498 : tree _r;
19053 498 : _r = captures[1];
19054 498 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
19055 498 : return _r;
19056 : }
19057 315713 : next_after_fail1851:;
19058 : }
19059 : }
19060 : }
19061 : }
19062 2799585 : switch (TREE_CODE (_q20))
19063 : {
19064 563 : case MINUS_EXPR:
19065 563 : {
19066 563 : tree _q30 = TREE_OPERAND (_q20, 0);
19067 563 : tree _q31 = TREE_OPERAND (_q20, 1);
19068 563 : if (zerop (_q21))
19069 : {
19070 76 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19071 : {
19072 0 : switch (TREE_CODE (_p2))
19073 : {
19074 0 : case MINUS_EXPR:
19075 0 : {
19076 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19077 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19078 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19079 : {
19080 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19081 : {
19082 0 : {
19083 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19084 0 : const enum tree_code cmp = NE_EXPR;
19085 0 : if (!HONOR_SIGNED_ZEROS (type)
19086 : )
19087 : {
19088 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1852;
19089 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1852;
19090 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1852;
19091 0 : {
19092 0 : tree _r;
19093 0 : _r = captures[0];
19094 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
19095 0 : return _r;
19096 : }
19097 0 : next_after_fail1852:;
19098 : }
19099 : }
19100 : }
19101 : }
19102 : break;
19103 : }
19104 : default:;
19105 : }
19106 : }
19107 : }
19108 563 : if (integer_zerop (_q21))
19109 : {
19110 25 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19111 : {
19112 0 : if (integer_zerop (_p2))
19113 : {
19114 0 : {
19115 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19116 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
19117 0 : if (res) return res;
19118 : }
19119 : }
19120 : }
19121 : }
19122 : break;
19123 : }
19124 276337 : case BIT_AND_EXPR:
19125 276337 : {
19126 276337 : tree _q30 = TREE_OPERAND (_q20, 0);
19127 276337 : tree _q31 = TREE_OPERAND (_q20, 1);
19128 276337 : if (integer_pow2p (_q31))
19129 : {
19130 204044 : if (integer_zerop (_q21))
19131 : {
19132 204044 : switch (TREE_CODE (_p1))
19133 : {
19134 2330 : case INTEGER_CST:
19135 2330 : {
19136 2330 : if (integer_zerop (_p2))
19137 : {
19138 1407 : {
19139 1407 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
19140 1407 : if (!POINTER_TYPE_P (type) && integer_pow2p (captures[2])
19141 : )
19142 : {
19143 652 : {
19144 652 : int shift = (wi::exact_log2 (wi::to_wide (captures[2]))
19145 652 : - wi::exact_log2 (wi::to_wide (captures[1])));
19146 652 : if (shift > 0
19147 : )
19148 : {
19149 377 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1853;
19150 377 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1853;
19151 377 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1853;
19152 377 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1853;
19153 377 : {
19154 377 : tree res_op0;
19155 377 : {
19156 377 : tree _o1[2], _r1;
19157 377 : {
19158 377 : tree _o2[1], _r2;
19159 377 : _o2[0] = captures[0];
19160 377 : if (TREE_TYPE (_o2[0]) != type)
19161 : {
19162 374 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
19163 : }
19164 : else
19165 : _r2 = _o2[0];
19166 377 : _o1[0] = _r2;
19167 : }
19168 377 : _o1[1] = build_int_cst (integer_type_node, shift);
19169 377 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
19170 377 : res_op0 = _r1;
19171 : }
19172 377 : tree res_op1;
19173 377 : res_op1 = captures[2];
19174 377 : tree _r;
19175 377 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
19176 377 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
19177 652 : return _r;
19178 : }
19179 : next_after_fail1853:;
19180 : }
19181 : else
19182 : {
19183 275 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1854;
19184 275 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1854;
19185 275 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1854;
19186 275 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1854;
19187 275 : {
19188 275 : tree res_op0;
19189 275 : {
19190 275 : tree _o1[1], _r1;
19191 275 : {
19192 275 : tree _o2[2], _r2;
19193 275 : _o2[0] = captures[0];
19194 275 : _o2[1] = build_int_cst (integer_type_node, -shift);
19195 275 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
19196 275 : _o1[0] = _r2;
19197 : }
19198 275 : if (TREE_TYPE (_o1[0]) != type)
19199 : {
19200 139 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
19201 : }
19202 : else
19203 : _r1 = _o1[0];
19204 275 : res_op0 = _r1;
19205 : }
19206 275 : tree res_op1;
19207 275 : res_op1 = captures[2];
19208 275 : tree _r;
19209 275 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
19210 275 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
19211 275 : return _r;
19212 : }
19213 : next_after_fail1854:;
19214 : }
19215 : }
19216 : }
19217 : }
19218 : }
19219 : break;
19220 : }
19221 : default:;
19222 : }
19223 : }
19224 : }
19225 : break;
19226 : }
19227 320425 : case CALL_EXPR:
19228 320425 : switch (get_call_combined_fn (_q20))
19229 : {
19230 30 : case CFN_BUILT_IN_SIGNBITF:
19231 30 : if (call_expr_nargs (_q20) == 1)
19232 : {
19233 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
19234 30 : if (integer_zerop (_q21))
19235 : {
19236 30 : switch (TREE_CODE (_p1))
19237 : {
19238 0 : case NEGATE_EXPR:
19239 0 : {
19240 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19241 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
19242 : {
19243 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
19244 : {
19245 0 : {
19246 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
19247 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITF);
19248 0 : if (res) return res;
19249 : }
19250 : }
19251 : }
19252 : break;
19253 : }
19254 : default:;
19255 : }
19256 : }
19257 : }
19258 : break;
19259 30 : case CFN_BUILT_IN_SIGNBITL:
19260 30 : if (call_expr_nargs (_q20) == 1)
19261 : {
19262 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
19263 30 : if (integer_zerop (_q21))
19264 : {
19265 30 : switch (TREE_CODE (_p1))
19266 : {
19267 0 : case NEGATE_EXPR:
19268 0 : {
19269 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19270 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
19271 : {
19272 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
19273 : {
19274 0 : {
19275 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
19276 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITL);
19277 0 : if (res) return res;
19278 : }
19279 : }
19280 : }
19281 : break;
19282 : }
19283 : default:;
19284 : }
19285 : }
19286 : }
19287 : break;
19288 0 : case CFN_SIGNBIT:
19289 0 : if (call_expr_nargs (_q20) == 1)
19290 : {
19291 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
19292 0 : if (integer_zerop (_q21))
19293 : {
19294 0 : switch (TREE_CODE (_p1))
19295 : {
19296 0 : case NEGATE_EXPR:
19297 0 : {
19298 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19299 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
19300 : {
19301 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
19302 : {
19303 0 : {
19304 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
19305 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_SIGNBIT);
19306 0 : if (res) return res;
19307 : }
19308 : }
19309 : }
19310 : break;
19311 : }
19312 : default:;
19313 : }
19314 : }
19315 : }
19316 : break;
19317 2896 : case CFN_BUILT_IN_SIGNBIT:
19318 2896 : if (call_expr_nargs (_q20) == 1)
19319 : {
19320 2896 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
19321 2896 : if (integer_zerop (_q21))
19322 : {
19323 2896 : switch (TREE_CODE (_p1))
19324 : {
19325 4 : case NEGATE_EXPR:
19326 4 : {
19327 4 : tree _q60 = TREE_OPERAND (_p1, 0);
19328 4 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
19329 : {
19330 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
19331 : {
19332 3 : {
19333 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
19334 3 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBIT);
19335 3 : if (res) return res;
19336 : }
19337 : }
19338 : }
19339 : break;
19340 : }
19341 : default:;
19342 : }
19343 : }
19344 : }
19345 : break;
19346 : default:;
19347 : }
19348 : break;
19349 2798930 : default:;
19350 : }
19351 2798930 : if (integer_zerop (_q21))
19352 : {
19353 1853518 : switch (TREE_CODE (_p1))
19354 : {
19355 96337 : case PLUS_EXPR:
19356 96337 : {
19357 96337 : tree _q50 = TREE_OPERAND (_p1, 0);
19358 96337 : tree _q51 = TREE_OPERAND (_p1, 1);
19359 96337 : {
19360 96337 : tree _q50_pops[1];
19361 96337 : if (tree_nop_convert (_q50, _q50_pops))
19362 : {
19363 11666 : tree _q60 = _q50_pops[0];
19364 11666 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19365 : {
19366 1714 : if (integer_all_onesp (_q51))
19367 : {
19368 1714 : if (integer_zerop (_p2))
19369 : {
19370 1708 : {
19371 1708 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
19372 1708 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures);
19373 1708 : if (res) return res;
19374 : }
19375 : }
19376 : }
19377 : }
19378 : }
19379 : }
19380 94629 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19381 : {
19382 2038 : if (integer_all_onesp (_q51))
19383 : {
19384 2003 : if (integer_zerop (_p2))
19385 : {
19386 1995 : {
19387 1995 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
19388 1995 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures);
19389 1995 : if (res) return res;
19390 : }
19391 : }
19392 : }
19393 : }
19394 : break;
19395 : }
19396 567461 : case CALL_EXPR:
19397 567461 : switch (get_call_combined_fn (_p1))
19398 : {
19399 0 : case CFN_PARITY:
19400 0 : if (call_expr_nargs (_p1) == 1)
19401 : {
19402 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19403 0 : switch (TREE_CODE (_q50))
19404 : {
19405 0 : CASE_CONVERT:
19406 0 : {
19407 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19408 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19409 : {
19410 0 : if (integer_zerop (_p2))
19411 : {
19412 0 : {
19413 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19414 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
19415 0 : if (res) return res;
19416 : }
19417 : }
19418 : }
19419 : break;
19420 : }
19421 0 : default:;
19422 : }
19423 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19424 : {
19425 0 : if (integer_zerop (_p2))
19426 : {
19427 0 : {
19428 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19429 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
19430 0 : if (res) return res;
19431 : }
19432 : }
19433 : }
19434 : }
19435 : break;
19436 7 : case CFN_BUILT_IN_FFS:
19437 7 : if (call_expr_nargs (_p1) == 1)
19438 : {
19439 7 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19440 7 : switch (TREE_CODE (_q50))
19441 : {
19442 0 : CASE_CONVERT:
19443 0 : {
19444 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19445 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19446 : {
19447 0 : if (integer_zerop (_p2))
19448 : {
19449 0 : {
19450 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19451 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
19452 0 : if (res) return res;
19453 : }
19454 : }
19455 : }
19456 : break;
19457 : }
19458 7 : default:;
19459 : }
19460 7 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19461 : {
19462 0 : if (integer_zerop (_p2))
19463 : {
19464 0 : {
19465 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19466 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
19467 0 : if (res) return res;
19468 : }
19469 : }
19470 : }
19471 : }
19472 : break;
19473 0 : case CFN_BUILT_IN_FFSIMAX:
19474 0 : if (call_expr_nargs (_p1) == 1)
19475 : {
19476 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19477 0 : switch (TREE_CODE (_q50))
19478 : {
19479 0 : CASE_CONVERT:
19480 0 : {
19481 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19482 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19483 : {
19484 0 : if (integer_zerop (_p2))
19485 : {
19486 0 : {
19487 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19488 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
19489 0 : if (res) return res;
19490 : }
19491 : }
19492 : }
19493 : break;
19494 : }
19495 0 : default:;
19496 : }
19497 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19498 : {
19499 0 : if (integer_zerop (_p2))
19500 : {
19501 0 : {
19502 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19503 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
19504 0 : if (res) return res;
19505 : }
19506 : }
19507 : }
19508 : }
19509 : break;
19510 2 : case CFN_BUILT_IN_POPCOUNT:
19511 2 : if (call_expr_nargs (_p1) == 1)
19512 : {
19513 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19514 2 : switch (TREE_CODE (_q50))
19515 : {
19516 1 : CASE_CONVERT:
19517 1 : {
19518 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19519 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19520 : {
19521 1 : if (integer_zerop (_p2))
19522 : {
19523 1 : {
19524 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19525 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
19526 1 : if (res) return res;
19527 : }
19528 : }
19529 : }
19530 : break;
19531 : }
19532 1 : default:;
19533 : }
19534 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19535 : {
19536 0 : if (integer_zerop (_p2))
19537 : {
19538 0 : {
19539 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19540 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
19541 0 : if (res) return res;
19542 : }
19543 : }
19544 : }
19545 : }
19546 : break;
19547 2 : case CFN_BUILT_IN_PARITYL:
19548 2 : if (call_expr_nargs (_p1) == 1)
19549 : {
19550 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19551 2 : switch (TREE_CODE (_q50))
19552 : {
19553 1 : CASE_CONVERT:
19554 1 : {
19555 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19556 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19557 : {
19558 1 : if (integer_zerop (_p2))
19559 : {
19560 1 : {
19561 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19562 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
19563 1 : if (res) return res;
19564 : }
19565 : }
19566 : }
19567 : break;
19568 : }
19569 1 : default:;
19570 : }
19571 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19572 : {
19573 0 : if (integer_zerop (_p2))
19574 : {
19575 0 : {
19576 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19577 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
19578 0 : if (res) return res;
19579 : }
19580 : }
19581 : }
19582 : }
19583 : break;
19584 16 : case CFN_BUILT_IN_FFSL:
19585 16 : if (call_expr_nargs (_p1) == 1)
19586 : {
19587 16 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19588 16 : switch (TREE_CODE (_q50))
19589 : {
19590 16 : CASE_CONVERT:
19591 16 : {
19592 16 : tree _q60 = TREE_OPERAND (_q50, 0);
19593 16 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19594 : {
19595 0 : if (integer_zerop (_p2))
19596 : {
19597 0 : {
19598 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19599 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
19600 0 : if (res) return res;
19601 : }
19602 : }
19603 : }
19604 : break;
19605 : }
19606 16 : default:;
19607 : }
19608 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19609 : {
19610 0 : if (integer_zerop (_p2))
19611 : {
19612 0 : {
19613 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19614 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
19615 0 : if (res) return res;
19616 : }
19617 : }
19618 : }
19619 : }
19620 : break;
19621 2 : case CFN_BUILT_IN_POPCOUNTLL:
19622 2 : if (call_expr_nargs (_p1) == 1)
19623 : {
19624 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19625 2 : switch (TREE_CODE (_q50))
19626 : {
19627 1 : CASE_CONVERT:
19628 1 : {
19629 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19630 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19631 : {
19632 1 : if (integer_zerop (_p2))
19633 : {
19634 1 : {
19635 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19636 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
19637 1 : if (res) return res;
19638 : }
19639 : }
19640 : }
19641 : break;
19642 : }
19643 1 : default:;
19644 : }
19645 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19646 : {
19647 0 : if (integer_zerop (_p2))
19648 : {
19649 0 : {
19650 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19651 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
19652 0 : if (res) return res;
19653 : }
19654 : }
19655 : }
19656 : }
19657 : break;
19658 0 : case CFN_POPCOUNT:
19659 0 : if (call_expr_nargs (_p1) == 1)
19660 : {
19661 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19662 0 : switch (TREE_CODE (_q50))
19663 : {
19664 0 : CASE_CONVERT:
19665 0 : {
19666 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19667 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19668 : {
19669 0 : if (integer_zerop (_p2))
19670 : {
19671 0 : {
19672 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19673 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
19674 0 : if (res) return res;
19675 : }
19676 : }
19677 : }
19678 : break;
19679 : }
19680 0 : default:;
19681 : }
19682 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19683 : {
19684 0 : if (integer_zerop (_p2))
19685 : {
19686 0 : {
19687 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19688 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
19689 0 : if (res) return res;
19690 : }
19691 : }
19692 : }
19693 : }
19694 : break;
19695 0 : case CFN_BUILT_IN_PARITYIMAX:
19696 0 : if (call_expr_nargs (_p1) == 1)
19697 : {
19698 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19699 0 : switch (TREE_CODE (_q50))
19700 : {
19701 0 : CASE_CONVERT:
19702 0 : {
19703 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19704 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19705 : {
19706 0 : if (integer_zerop (_p2))
19707 : {
19708 0 : {
19709 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19710 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
19711 0 : if (res) return res;
19712 : }
19713 : }
19714 : }
19715 : break;
19716 : }
19717 0 : default:;
19718 : }
19719 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19720 : {
19721 0 : if (integer_zerop (_p2))
19722 : {
19723 0 : {
19724 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19725 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
19726 0 : if (res) return res;
19727 : }
19728 : }
19729 : }
19730 : }
19731 : break;
19732 2 : case CFN_BUILT_IN_CLRSBL:
19733 2 : if (call_expr_nargs (_p1) == 1)
19734 : {
19735 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19736 2 : switch (TREE_CODE (_q50))
19737 : {
19738 0 : CASE_CONVERT:
19739 0 : {
19740 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19741 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19742 : {
19743 0 : switch (TREE_CODE (_p2))
19744 : {
19745 0 : case INTEGER_CST:
19746 0 : {
19747 0 : {
19748 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19749 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
19750 0 : if (res) return res;
19751 : }
19752 0 : break;
19753 : }
19754 : default:;
19755 : }
19756 : }
19757 : break;
19758 : }
19759 2 : default:;
19760 : }
19761 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19762 : {
19763 1 : switch (TREE_CODE (_p2))
19764 : {
19765 1 : case INTEGER_CST:
19766 1 : {
19767 1 : {
19768 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19769 1 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
19770 1 : if (res) return res;
19771 : }
19772 0 : break;
19773 : }
19774 : default:;
19775 : }
19776 : }
19777 : }
19778 : break;
19779 0 : case CFN_FFS:
19780 0 : if (call_expr_nargs (_p1) == 1)
19781 : {
19782 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19783 0 : switch (TREE_CODE (_q50))
19784 : {
19785 0 : CASE_CONVERT:
19786 0 : {
19787 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19788 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19789 : {
19790 0 : if (integer_zerop (_p2))
19791 : {
19792 0 : {
19793 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19794 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
19795 0 : if (res) return res;
19796 : }
19797 : }
19798 : }
19799 : break;
19800 : }
19801 0 : default:;
19802 : }
19803 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19804 : {
19805 0 : if (integer_zerop (_p2))
19806 : {
19807 0 : {
19808 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19809 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
19810 0 : if (res) return res;
19811 : }
19812 : }
19813 : }
19814 : }
19815 : break;
19816 2 : case CFN_BUILT_IN_PARITY:
19817 2 : if (call_expr_nargs (_p1) == 1)
19818 : {
19819 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19820 2 : switch (TREE_CODE (_q50))
19821 : {
19822 1 : CASE_CONVERT:
19823 1 : {
19824 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19825 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19826 : {
19827 1 : if (integer_zerop (_p2))
19828 : {
19829 1 : {
19830 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19831 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
19832 1 : if (res) return res;
19833 : }
19834 : }
19835 : }
19836 : break;
19837 : }
19838 1 : default:;
19839 : }
19840 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19841 : {
19842 0 : if (integer_zerop (_p2))
19843 : {
19844 0 : {
19845 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19846 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
19847 0 : if (res) return res;
19848 : }
19849 : }
19850 : }
19851 : }
19852 : break;
19853 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
19854 0 : if (call_expr_nargs (_p1) == 1)
19855 : {
19856 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19857 0 : switch (TREE_CODE (_q50))
19858 : {
19859 0 : CASE_CONVERT:
19860 0 : {
19861 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19862 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19863 : {
19864 0 : if (integer_zerop (_p2))
19865 : {
19866 0 : {
19867 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19868 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
19869 0 : if (res) return res;
19870 : }
19871 : }
19872 : }
19873 : break;
19874 : }
19875 0 : default:;
19876 : }
19877 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19878 : {
19879 0 : if (integer_zerop (_p2))
19880 : {
19881 0 : {
19882 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19883 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
19884 0 : if (res) return res;
19885 : }
19886 : }
19887 : }
19888 : }
19889 : break;
19890 0 : case CFN_BUILT_IN_CLRSBIMAX:
19891 0 : if (call_expr_nargs (_p1) == 1)
19892 : {
19893 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19894 0 : switch (TREE_CODE (_q50))
19895 : {
19896 0 : CASE_CONVERT:
19897 0 : {
19898 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19899 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19900 : {
19901 0 : switch (TREE_CODE (_p2))
19902 : {
19903 0 : case INTEGER_CST:
19904 0 : {
19905 0 : {
19906 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19907 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
19908 0 : if (res) return res;
19909 : }
19910 0 : break;
19911 : }
19912 : default:;
19913 : }
19914 : }
19915 : break;
19916 : }
19917 0 : default:;
19918 : }
19919 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19920 : {
19921 0 : switch (TREE_CODE (_p2))
19922 : {
19923 0 : case INTEGER_CST:
19924 0 : {
19925 0 : {
19926 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19927 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
19928 0 : if (res) return res;
19929 : }
19930 0 : break;
19931 : }
19932 : default:;
19933 : }
19934 : }
19935 : }
19936 : break;
19937 2 : case CFN_BUILT_IN_CLRSBLL:
19938 2 : if (call_expr_nargs (_p1) == 1)
19939 : {
19940 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19941 2 : switch (TREE_CODE (_q50))
19942 : {
19943 0 : CASE_CONVERT:
19944 0 : {
19945 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19946 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19947 : {
19948 0 : switch (TREE_CODE (_p2))
19949 : {
19950 0 : case INTEGER_CST:
19951 0 : {
19952 0 : {
19953 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19954 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
19955 0 : if (res) return res;
19956 : }
19957 0 : break;
19958 : }
19959 : default:;
19960 : }
19961 : }
19962 : break;
19963 : }
19964 2 : default:;
19965 : }
19966 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19967 : {
19968 1 : switch (TREE_CODE (_p2))
19969 : {
19970 1 : case INTEGER_CST:
19971 1 : {
19972 1 : {
19973 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19974 1 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
19975 1 : if (res) return res;
19976 : }
19977 0 : break;
19978 : }
19979 : default:;
19980 : }
19981 : }
19982 : }
19983 : break;
19984 0 : case CFN_CLRSB:
19985 0 : if (call_expr_nargs (_p1) == 1)
19986 : {
19987 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19988 0 : switch (TREE_CODE (_q50))
19989 : {
19990 0 : CASE_CONVERT:
19991 0 : {
19992 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19993 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19994 : {
19995 0 : switch (TREE_CODE (_p2))
19996 : {
19997 0 : case INTEGER_CST:
19998 0 : {
19999 0 : {
20000 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20001 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
20002 0 : if (res) return res;
20003 : }
20004 0 : break;
20005 : }
20006 : default:;
20007 : }
20008 : }
20009 : break;
20010 : }
20011 0 : default:;
20012 : }
20013 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20014 : {
20015 0 : switch (TREE_CODE (_p2))
20016 : {
20017 0 : case INTEGER_CST:
20018 0 : {
20019 0 : {
20020 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20021 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
20022 0 : if (res) return res;
20023 : }
20024 0 : break;
20025 : }
20026 : default:;
20027 : }
20028 : }
20029 : }
20030 : break;
20031 0 : case CFN_BUILT_IN_BSWAP128:
20032 0 : if (call_expr_nargs (_p1) == 1)
20033 : {
20034 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20035 0 : switch (TREE_CODE (_q50))
20036 : {
20037 0 : CASE_CONVERT:
20038 0 : {
20039 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20040 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20041 : {
20042 0 : if (integer_zerop (_p2))
20043 : {
20044 0 : {
20045 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20046 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
20047 0 : if (res) return res;
20048 : }
20049 : }
20050 : }
20051 : break;
20052 : }
20053 0 : default:;
20054 : }
20055 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20056 : {
20057 0 : if (integer_zerop (_p2))
20058 : {
20059 0 : {
20060 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20061 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
20062 0 : if (res) return res;
20063 : }
20064 : }
20065 : }
20066 : }
20067 : break;
20068 2 : case CFN_BUILT_IN_POPCOUNTL:
20069 2 : if (call_expr_nargs (_p1) == 1)
20070 : {
20071 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20072 2 : switch (TREE_CODE (_q50))
20073 : {
20074 1 : CASE_CONVERT:
20075 1 : {
20076 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20077 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20078 : {
20079 1 : if (integer_zerop (_p2))
20080 : {
20081 1 : {
20082 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20083 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
20084 1 : if (res) return res;
20085 : }
20086 : }
20087 : }
20088 : break;
20089 : }
20090 1 : default:;
20091 : }
20092 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20093 : {
20094 0 : if (integer_zerop (_p2))
20095 : {
20096 0 : {
20097 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20098 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
20099 0 : if (res) return res;
20100 : }
20101 : }
20102 : }
20103 : }
20104 : break;
20105 2 : case CFN_BUILT_IN_CLRSB:
20106 2 : if (call_expr_nargs (_p1) == 1)
20107 : {
20108 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20109 2 : switch (TREE_CODE (_q50))
20110 : {
20111 0 : CASE_CONVERT:
20112 0 : {
20113 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20114 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20115 : {
20116 0 : switch (TREE_CODE (_p2))
20117 : {
20118 0 : case INTEGER_CST:
20119 0 : {
20120 0 : {
20121 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20122 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
20123 0 : if (res) return res;
20124 : }
20125 0 : break;
20126 : }
20127 : default:;
20128 : }
20129 : }
20130 : break;
20131 : }
20132 2 : default:;
20133 : }
20134 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20135 : {
20136 1 : switch (TREE_CODE (_p2))
20137 : {
20138 1 : case INTEGER_CST:
20139 1 : {
20140 1 : {
20141 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20142 1 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
20143 1 : if (res) return res;
20144 : }
20145 0 : break;
20146 : }
20147 : default:;
20148 : }
20149 : }
20150 : }
20151 : break;
20152 0 : case CFN_BUILT_IN_FFSLL:
20153 0 : if (call_expr_nargs (_p1) == 1)
20154 : {
20155 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20156 0 : switch (TREE_CODE (_q50))
20157 : {
20158 0 : CASE_CONVERT:
20159 0 : {
20160 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20161 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20162 : {
20163 0 : if (integer_zerop (_p2))
20164 : {
20165 0 : {
20166 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20167 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
20168 0 : if (res) return res;
20169 : }
20170 : }
20171 : }
20172 : break;
20173 : }
20174 0 : default:;
20175 : }
20176 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20177 : {
20178 0 : if (integer_zerop (_p2))
20179 : {
20180 0 : {
20181 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20182 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
20183 0 : if (res) return res;
20184 : }
20185 : }
20186 : }
20187 : }
20188 : break;
20189 2 : case CFN_BUILT_IN_PARITYLL:
20190 2 : if (call_expr_nargs (_p1) == 1)
20191 : {
20192 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20193 2 : switch (TREE_CODE (_q50))
20194 : {
20195 1 : CASE_CONVERT:
20196 1 : {
20197 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20198 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20199 : {
20200 1 : if (integer_zerop (_p2))
20201 : {
20202 1 : {
20203 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20204 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
20205 1 : if (res) return res;
20206 : }
20207 : }
20208 : }
20209 : break;
20210 : }
20211 1 : default:;
20212 : }
20213 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20214 : {
20215 0 : if (integer_zerop (_p2))
20216 : {
20217 0 : {
20218 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20219 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
20220 0 : if (res) return res;
20221 : }
20222 : }
20223 : }
20224 : }
20225 : break;
20226 3 : case CFN_BUILT_IN_BSWAP16:
20227 3 : if (call_expr_nargs (_p1) == 1)
20228 : {
20229 3 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20230 3 : switch (TREE_CODE (_q50))
20231 : {
20232 0 : CASE_CONVERT:
20233 0 : {
20234 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20235 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20236 : {
20237 0 : if (integer_zerop (_p2))
20238 : {
20239 0 : {
20240 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20241 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
20242 0 : if (res) return res;
20243 : }
20244 : }
20245 : }
20246 : break;
20247 : }
20248 3 : default:;
20249 : }
20250 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20251 : {
20252 1 : if (integer_zerop (_p2))
20253 : {
20254 1 : {
20255 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20256 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
20257 1 : if (res) return res;
20258 : }
20259 : }
20260 : }
20261 : }
20262 : break;
20263 2 : case CFN_BUILT_IN_BSWAP32:
20264 2 : if (call_expr_nargs (_p1) == 1)
20265 : {
20266 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20267 2 : switch (TREE_CODE (_q50))
20268 : {
20269 0 : CASE_CONVERT:
20270 0 : {
20271 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20272 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20273 : {
20274 0 : if (integer_zerop (_p2))
20275 : {
20276 0 : {
20277 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20278 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
20279 0 : if (res) return res;
20280 : }
20281 : }
20282 : }
20283 : break;
20284 : }
20285 2 : default:;
20286 : }
20287 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20288 : {
20289 1 : if (integer_zerop (_p2))
20290 : {
20291 1 : {
20292 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20293 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
20294 1 : if (res) return res;
20295 : }
20296 : }
20297 : }
20298 : }
20299 : break;
20300 2 : case CFN_BUILT_IN_BSWAP64:
20301 2 : if (call_expr_nargs (_p1) == 1)
20302 : {
20303 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20304 2 : switch (TREE_CODE (_q50))
20305 : {
20306 1 : CASE_CONVERT:
20307 1 : {
20308 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20309 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20310 : {
20311 1 : if (integer_zerop (_p2))
20312 : {
20313 1 : {
20314 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20315 1 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
20316 1 : if (res) return res;
20317 : }
20318 : }
20319 : }
20320 : break;
20321 : }
20322 1 : default:;
20323 : }
20324 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20325 : {
20326 0 : if (integer_zerop (_p2))
20327 : {
20328 0 : {
20329 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20330 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
20331 0 : if (res) return res;
20332 : }
20333 : }
20334 : }
20335 : }
20336 : break;
20337 : default:;
20338 : }
20339 : break;
20340 1849803 : default:;
20341 : }
20342 1849803 : {
20343 1849803 : tree _p1_pops[1];
20344 1849803 : if (tree_nop_convert (_p1, _p1_pops))
20345 : {
20346 154621 : tree _q50 = _p1_pops[0];
20347 154621 : switch (TREE_CODE (_q50))
20348 : {
20349 339 : case PLUS_EXPR:
20350 339 : {
20351 339 : tree _q60 = TREE_OPERAND (_q50, 0);
20352 339 : tree _q61 = TREE_OPERAND (_q50, 1);
20353 339 : {
20354 339 : tree _q60_pops[1];
20355 339 : if (tree_nop_convert (_q60, _q60_pops))
20356 : {
20357 52 : tree _q70 = _q60_pops[0];
20358 52 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
20359 : {
20360 2 : if (integer_all_onesp (_q61))
20361 : {
20362 2 : if (integer_zerop (_p2))
20363 : {
20364 2 : {
20365 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
20366 2 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures);
20367 2 : if (res) return res;
20368 : }
20369 : }
20370 : }
20371 : }
20372 : }
20373 : }
20374 337 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20375 : {
20376 14 : if (integer_all_onesp (_q61))
20377 : {
20378 0 : if (integer_zerop (_p2))
20379 : {
20380 0 : {
20381 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
20382 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures);
20383 0 : if (res) return res;
20384 : }
20385 : }
20386 : }
20387 : }
20388 : break;
20389 : }
20390 : default:;
20391 : }
20392 : }
20393 : }
20394 : }
20395 : break;
20396 : }
20397 7 : case LTGT_EXPR:
20398 7 : {
20399 7 : tree _q20 = TREE_OPERAND (_p0, 0);
20400 7 : tree _q21 = TREE_OPERAND (_p0, 1);
20401 7 : if (zerop (_q21))
20402 : {
20403 0 : switch (TREE_CODE (_p2))
20404 : {
20405 0 : case NEGATE_EXPR:
20406 0 : {
20407 0 : tree _q60 = TREE_OPERAND (_p2, 0);
20408 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20409 : {
20410 0 : {
20411 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20412 0 : const enum tree_code cmp = LTGT_EXPR;
20413 0 : if (!HONOR_SIGNED_ZEROS (type)
20414 0 : && bitwise_equal_p (captures[0], captures[1])
20415 : )
20416 : {
20417 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1855;
20418 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1855;
20419 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1855;
20420 0 : {
20421 0 : tree _r;
20422 0 : _r = captures[1];
20423 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
20424 0 : return _r;
20425 : }
20426 0 : next_after_fail1855:;
20427 : }
20428 : }
20429 : }
20430 : break;
20431 : }
20432 0 : default:;
20433 : }
20434 0 : if (integer_zerop (_p2))
20435 : {
20436 0 : {
20437 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20438 0 : const enum tree_code cmp = LTGT_EXPR;
20439 0 : if (!HONOR_SIGNED_ZEROS (type)
20440 0 : && bitwise_equal_p (captures[0], captures[1])
20441 : )
20442 : {
20443 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1856;
20444 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1856;
20445 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1856;
20446 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1856;
20447 0 : {
20448 0 : tree _r;
20449 0 : _r = captures[1];
20450 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
20451 0 : return _r;
20452 : }
20453 0 : next_after_fail1856:;
20454 : }
20455 : }
20456 : }
20457 : }
20458 7 : switch (TREE_CODE (_q20))
20459 : {
20460 0 : case MINUS_EXPR:
20461 0 : {
20462 0 : tree _q30 = TREE_OPERAND (_q20, 0);
20463 0 : tree _q31 = TREE_OPERAND (_q20, 1);
20464 0 : if (zerop (_q21))
20465 : {
20466 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20467 : {
20468 0 : switch (TREE_CODE (_p2))
20469 : {
20470 0 : case MINUS_EXPR:
20471 0 : {
20472 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20473 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20474 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20475 : {
20476 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20477 : {
20478 0 : {
20479 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20480 0 : const enum tree_code cmp = LTGT_EXPR;
20481 0 : if (!HONOR_SIGNED_ZEROS (type)
20482 : )
20483 : {
20484 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1857;
20485 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1857;
20486 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1857;
20487 0 : {
20488 0 : tree _r;
20489 0 : _r = captures[0];
20490 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
20491 0 : return _r;
20492 : }
20493 0 : next_after_fail1857:;
20494 : }
20495 : }
20496 : }
20497 : }
20498 : break;
20499 : }
20500 : default:;
20501 : }
20502 : }
20503 : }
20504 0 : if (integer_zerop (_q21))
20505 : {
20506 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20507 : {
20508 0 : if (integer_zerop (_p2))
20509 : {
20510 0 : {
20511 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20512 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
20513 0 : if (res) return res;
20514 : }
20515 : }
20516 : }
20517 : }
20518 : break;
20519 : }
20520 : default:;
20521 : }
20522 : break;
20523 : }
20524 534795 : case GE_EXPR:
20525 534795 : {
20526 534795 : tree _q20 = TREE_OPERAND (_p0, 0);
20527 534795 : tree _q21 = TREE_OPERAND (_p0, 1);
20528 534795 : switch (TREE_CODE (_q20))
20529 : {
20530 56057 : CASE_CONVERT:
20531 56057 : {
20532 56057 : tree _q30 = TREE_OPERAND (_q20, 0);
20533 56057 : if (zerop (_q21))
20534 : {
20535 25182 : switch (TREE_CODE (_p2))
20536 : {
20537 13 : case NEGATE_EXPR:
20538 13 : {
20539 13 : tree _q70 = TREE_OPERAND (_p2, 0);
20540 13 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
20541 : {
20542 13 : {
20543 13 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
20544 13 : const enum tree_code cmp = GE_EXPR;
20545 13 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20546 13 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20547 0 : && element_precision (captures[1])
20548 0 : <= element_precision (captures[0])
20549 0 : && bitwise_equal_p (captures[1], captures[2])
20550 13 : && (!VECTOR_TYPE_P (type)
20551 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
20552 : )
20553 : {
20554 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20555 : )
20556 : {
20557 0 : {
20558 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20559 0 : if (types_match (captures[0], stype)
20560 : )
20561 : {
20562 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1858;
20563 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1858;
20564 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1858;
20565 0 : {
20566 0 : tree res_op0;
20567 0 : res_op0 = captures[0];
20568 0 : tree _r;
20569 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20570 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
20571 0 : return _r;
20572 : }
20573 13 : next_after_fail1858:;
20574 : }
20575 : else
20576 : {
20577 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1859;
20578 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1859;
20579 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1859;
20580 0 : {
20581 0 : tree res_op0;
20582 0 : {
20583 0 : tree _o1[1], _r1;
20584 0 : _o1[0] = captures[2];
20585 0 : if (TREE_TYPE (_o1[0]) != stype)
20586 : {
20587 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
20588 : }
20589 : else
20590 : _r1 = _o1[0];
20591 0 : res_op0 = _r1;
20592 : }
20593 0 : tree _r;
20594 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20595 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
20596 0 : return _r;
20597 : }
20598 13 : next_after_fail1859:;
20599 : }
20600 : }
20601 : }
20602 : else
20603 : {
20604 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1860;
20605 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1860;
20606 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1860;
20607 0 : {
20608 0 : tree res_op0;
20609 0 : res_op0 = captures[2];
20610 0 : tree _r;
20611 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20612 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
20613 0 : return _r;
20614 : }
20615 13 : next_after_fail1860:;
20616 : }
20617 : }
20618 : }
20619 : }
20620 : break;
20621 : }
20622 : default:;
20623 : }
20624 : }
20625 : break;
20626 : }
20627 534795 : default:;
20628 : }
20629 534795 : if (zerop (_q21))
20630 : {
20631 143072 : switch (TREE_CODE (_p2))
20632 : {
20633 30611 : case NEGATE_EXPR:
20634 30611 : {
20635 30611 : tree _q60 = TREE_OPERAND (_p2, 0);
20636 30611 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20637 : {
20638 30605 : {
20639 30605 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
20640 30605 : const enum tree_code cmp = GE_EXPR;
20641 30605 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20642 30597 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20643 61194 : && element_precision (captures[1])
20644 30597 : <= element_precision (captures[0])
20645 30597 : && bitwise_equal_p (captures[1], captures[2])
20646 61104 : && (!VECTOR_TYPE_P (type)
20647 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
20648 : )
20649 : {
20650 30499 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20651 : )
20652 : {
20653 46 : {
20654 46 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20655 46 : if (types_match (captures[0], stype)
20656 : )
20657 : {
20658 13 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1861;
20659 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1861;
20660 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1861;
20661 13 : {
20662 13 : tree res_op0;
20663 13 : res_op0 = captures[0];
20664 13 : tree _r;
20665 13 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20666 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
20667 13 : return _r;
20668 : }
20669 106 : next_after_fail1861:;
20670 : }
20671 : else
20672 : {
20673 33 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1862;
20674 33 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1862;
20675 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1862;
20676 33 : {
20677 33 : tree res_op0;
20678 33 : {
20679 33 : tree _o1[1], _r1;
20680 33 : _o1[0] = captures[2];
20681 33 : if (TREE_TYPE (_o1[0]) != stype)
20682 : {
20683 33 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
20684 : }
20685 : else
20686 : _r1 = _o1[0];
20687 33 : res_op0 = _r1;
20688 : }
20689 33 : tree _r;
20690 33 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20691 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
20692 33 : return _r;
20693 : }
20694 106 : next_after_fail1862:;
20695 : }
20696 : }
20697 : }
20698 : else
20699 : {
20700 30453 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1863;
20701 30453 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1863;
20702 30453 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1863;
20703 30453 : {
20704 30453 : tree res_op0;
20705 30453 : res_op0 = captures[2];
20706 30453 : tree _r;
20707 30453 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20708 30453 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
20709 30453 : return _r;
20710 : }
20711 106 : next_after_fail1863:;
20712 : }
20713 : }
20714 : }
20715 : }
20716 : break;
20717 : }
20718 : default:;
20719 : }
20720 : }
20721 504296 : switch (TREE_CODE (_q20))
20722 : {
20723 31907 : case MINUS_EXPR:
20724 31907 : {
20725 31907 : tree _q30 = TREE_OPERAND (_q20, 0);
20726 31907 : tree _q31 = TREE_OPERAND (_q20, 1);
20727 31907 : if (zerop (_q21))
20728 : {
20729 31117 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20730 : {
20731 1 : switch (TREE_CODE (_p2))
20732 : {
20733 1 : case MINUS_EXPR:
20734 1 : {
20735 1 : tree _q80 = TREE_OPERAND (_p2, 0);
20736 1 : tree _q81 = TREE_OPERAND (_p2, 1);
20737 1 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20738 : {
20739 1 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20740 : {
20741 1 : {
20742 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20743 1 : const enum tree_code cmp = GE_EXPR;
20744 1 : if (!HONOR_SIGNED_ZEROS (type)
20745 1 : && !TYPE_UNSIGNED (type)
20746 2 : && (!VECTOR_TYPE_P (type)
20747 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
20748 : )
20749 : {
20750 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1864;
20751 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1864;
20752 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1864;
20753 1 : {
20754 1 : tree res_op0;
20755 1 : res_op0 = captures[0];
20756 1 : tree _r;
20757 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20758 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
20759 1 : return _r;
20760 : }
20761 0 : next_after_fail1864:;
20762 : }
20763 : }
20764 : }
20765 : }
20766 : break;
20767 : }
20768 : default:;
20769 : }
20770 : }
20771 : }
20772 : break;
20773 : }
20774 504295 : default:;
20775 : }
20776 504295 : if (integer_zerop (_q21))
20777 : {
20778 112021 : switch (TREE_CODE (_p1))
20779 : {
20780 65 : case BIT_NOT_EXPR:
20781 65 : {
20782 65 : tree _q50 = TREE_OPERAND (_p1, 0);
20783 65 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
20784 : {
20785 9 : {
20786 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
20787 9 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
20788 9 : if (res) return res;
20789 : }
20790 : }
20791 : break;
20792 : }
20793 112012 : default:;
20794 : }
20795 112012 : switch (TREE_CODE (_p2))
20796 : {
20797 30 : case BIT_NOT_EXPR:
20798 30 : {
20799 30 : tree _q60 = TREE_OPERAND (_p2, 0);
20800 30 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20801 : {
20802 9 : {
20803 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20804 9 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
20805 9 : if (res) return res;
20806 : }
20807 : }
20808 : break;
20809 : }
20810 : default:;
20811 : }
20812 : }
20813 : break;
20814 : }
20815 890864 : case GT_EXPR:
20816 890864 : {
20817 890864 : tree _q20 = TREE_OPERAND (_p0, 0);
20818 890864 : tree _q21 = TREE_OPERAND (_p0, 1);
20819 890864 : switch (TREE_CODE (_q20))
20820 : {
20821 86355 : CASE_CONVERT:
20822 86355 : {
20823 86355 : tree _q30 = TREE_OPERAND (_q20, 0);
20824 86355 : if (zerop (_q21))
20825 : {
20826 1566 : switch (TREE_CODE (_p2))
20827 : {
20828 20 : case NEGATE_EXPR:
20829 20 : {
20830 20 : tree _q70 = TREE_OPERAND (_p2, 0);
20831 20 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
20832 : {
20833 0 : {
20834 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
20835 0 : const enum tree_code cmp = GT_EXPR;
20836 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20837 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20838 0 : && element_precision (captures[1])
20839 0 : <= element_precision (captures[0])
20840 0 : && bitwise_equal_p (captures[1], captures[2])
20841 0 : && (!VECTOR_TYPE_P (type)
20842 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
20843 : )
20844 : {
20845 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20846 : )
20847 : {
20848 0 : {
20849 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20850 0 : if (types_match (captures[0], stype)
20851 : )
20852 : {
20853 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1865;
20854 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1865;
20855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1865;
20856 0 : {
20857 0 : tree res_op0;
20858 0 : res_op0 = captures[0];
20859 0 : tree _r;
20860 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20861 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
20862 0 : return _r;
20863 : }
20864 0 : next_after_fail1865:;
20865 : }
20866 : else
20867 : {
20868 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1866;
20869 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1866;
20870 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1866;
20871 0 : {
20872 0 : tree res_op0;
20873 0 : {
20874 0 : tree _o1[1], _r1;
20875 0 : _o1[0] = captures[2];
20876 0 : if (TREE_TYPE (_o1[0]) != stype)
20877 : {
20878 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
20879 : }
20880 : else
20881 : _r1 = _o1[0];
20882 0 : res_op0 = _r1;
20883 : }
20884 0 : tree _r;
20885 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20886 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
20887 0 : return _r;
20888 : }
20889 0 : next_after_fail1866:;
20890 : }
20891 : }
20892 : }
20893 : else
20894 : {
20895 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1867;
20896 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1867;
20897 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1867;
20898 0 : {
20899 0 : tree res_op0;
20900 0 : res_op0 = captures[2];
20901 0 : tree _r;
20902 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20903 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
20904 0 : return _r;
20905 : }
20906 0 : next_after_fail1867:;
20907 : }
20908 : }
20909 : }
20910 : }
20911 : break;
20912 : }
20913 : default:;
20914 : }
20915 : }
20916 : break;
20917 : }
20918 890864 : default:;
20919 : }
20920 890864 : if (zerop (_q21))
20921 : {
20922 197143 : switch (TREE_CODE (_p2))
20923 : {
20924 306 : case NEGATE_EXPR:
20925 306 : {
20926 306 : tree _q60 = TREE_OPERAND (_p2, 0);
20927 306 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20928 : {
20929 131 : {
20930 131 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
20931 131 : const enum tree_code cmp = GT_EXPR;
20932 131 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20933 99 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20934 198 : && element_precision (captures[1])
20935 99 : <= element_precision (captures[0])
20936 99 : && bitwise_equal_p (captures[1], captures[2])
20937 225 : && (!VECTOR_TYPE_P (type)
20938 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
20939 : )
20940 : {
20941 94 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20942 : )
20943 : {
20944 0 : {
20945 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20946 0 : if (types_match (captures[0], stype)
20947 : )
20948 : {
20949 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1868;
20950 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1868;
20951 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1868;
20952 0 : {
20953 0 : tree res_op0;
20954 0 : res_op0 = captures[0];
20955 0 : tree _r;
20956 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20957 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
20958 0 : return _r;
20959 : }
20960 37 : next_after_fail1868:;
20961 : }
20962 : else
20963 : {
20964 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1869;
20965 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1869;
20966 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1869;
20967 0 : {
20968 0 : tree res_op0;
20969 0 : {
20970 0 : tree _o1[1], _r1;
20971 0 : _o1[0] = captures[2];
20972 0 : if (TREE_TYPE (_o1[0]) != stype)
20973 : {
20974 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
20975 : }
20976 : else
20977 : _r1 = _o1[0];
20978 0 : res_op0 = _r1;
20979 : }
20980 0 : tree _r;
20981 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20982 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
20983 0 : return _r;
20984 : }
20985 37 : next_after_fail1869:;
20986 : }
20987 : }
20988 : }
20989 : else
20990 : {
20991 94 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1870;
20992 94 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1870;
20993 94 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1870;
20994 94 : {
20995 94 : tree res_op0;
20996 94 : res_op0 = captures[2];
20997 94 : tree _r;
20998 94 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20999 94 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
21000 94 : return _r;
21001 : }
21002 37 : next_after_fail1870:;
21003 : }
21004 : }
21005 : }
21006 : }
21007 : break;
21008 : }
21009 : default:;
21010 : }
21011 : }
21012 890770 : switch (TREE_CODE (_q20))
21013 : {
21014 1034 : case MINUS_EXPR:
21015 1034 : {
21016 1034 : tree _q30 = TREE_OPERAND (_q20, 0);
21017 1034 : tree _q31 = TREE_OPERAND (_q20, 1);
21018 1034 : if (zerop (_q21))
21019 : {
21020 160 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21021 : {
21022 15 : switch (TREE_CODE (_p2))
21023 : {
21024 9 : case MINUS_EXPR:
21025 9 : {
21026 9 : tree _q80 = TREE_OPERAND (_p2, 0);
21027 9 : tree _q81 = TREE_OPERAND (_p2, 1);
21028 9 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21029 : {
21030 9 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21031 : {
21032 9 : {
21033 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
21034 9 : const enum tree_code cmp = GT_EXPR;
21035 9 : if (!HONOR_SIGNED_ZEROS (type)
21036 9 : && !TYPE_UNSIGNED (type)
21037 18 : && (!VECTOR_TYPE_P (type)
21038 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
21039 : )
21040 : {
21041 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1871;
21042 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1871;
21043 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1871;
21044 9 : {
21045 9 : tree res_op0;
21046 9 : res_op0 = captures[0];
21047 9 : tree _r;
21048 9 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
21049 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
21050 9 : return _r;
21051 : }
21052 0 : next_after_fail1871:;
21053 : }
21054 : }
21055 : }
21056 : }
21057 : break;
21058 : }
21059 : default:;
21060 : }
21061 : }
21062 : }
21063 : break;
21064 : }
21065 : default:;
21066 : }
21067 : break;
21068 : }
21069 1368516 : case LE_EXPR:
21070 1368516 : {
21071 1368516 : tree _q20 = TREE_OPERAND (_p0, 0);
21072 1368516 : tree _q21 = TREE_OPERAND (_p0, 1);
21073 1368516 : switch (TREE_CODE (_q20))
21074 : {
21075 141035 : CASE_CONVERT:
21076 141035 : {
21077 141035 : tree _q30 = TREE_OPERAND (_q20, 0);
21078 141035 : if (zerop (_q21))
21079 : {
21080 1307 : switch (TREE_CODE (_p2))
21081 : {
21082 0 : case NEGATE_EXPR:
21083 0 : {
21084 0 : tree _q70 = TREE_OPERAND (_p2, 0);
21085 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
21086 : {
21087 0 : {
21088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
21089 0 : const enum tree_code cmp = LE_EXPR;
21090 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21091 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21092 0 : && element_precision (captures[1])
21093 0 : <= element_precision (captures[0])
21094 0 : && bitwise_equal_p (captures[1], captures[2])
21095 0 : && (!VECTOR_TYPE_P (type)
21096 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21097 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21098 : )
21099 : {
21100 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
21101 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
21102 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21103 : )
21104 : {
21105 0 : {
21106 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21107 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
21108 0 : if (types_match (captures[0], stype)
21109 : )
21110 : {
21111 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1872;
21112 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1872;
21113 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1872;
21114 0 : {
21115 0 : tree res_op0;
21116 0 : {
21117 0 : tree _o1[1], _r1;
21118 0 : {
21119 0 : tree _o2[1], _r2;
21120 0 : _o2[0] = captures[0];
21121 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21122 0 : _o1[0] = _r2;
21123 : }
21124 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21125 0 : res_op0 = _r1;
21126 : }
21127 0 : tree _r;
21128 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21129 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
21130 0 : return _r;
21131 : }
21132 0 : next_after_fail1872:;
21133 : }
21134 : else
21135 : {
21136 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1873;
21137 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1873;
21138 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1873;
21139 0 : {
21140 0 : tree res_op0;
21141 0 : {
21142 0 : tree _o1[1], _r1;
21143 0 : {
21144 0 : tree _o2[1], _r2;
21145 0 : {
21146 0 : tree _o3[1], _r3;
21147 0 : _o3[0] = captures[2];
21148 0 : if (TREE_TYPE (_o3[0]) != stype)
21149 : {
21150 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
21151 : }
21152 : else
21153 : _r3 = _o3[0];
21154 0 : _o2[0] = _r3;
21155 : }
21156 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21157 0 : _o1[0] = _r2;
21158 : }
21159 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21160 0 : res_op0 = _r1;
21161 : }
21162 0 : tree _r;
21163 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21164 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
21165 0 : return _r;
21166 : }
21167 0 : next_after_fail1873:;
21168 : }
21169 : }
21170 : }
21171 : else
21172 : {
21173 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1874;
21174 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1874;
21175 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1874;
21176 0 : {
21177 0 : tree res_op0;
21178 0 : {
21179 0 : tree _o1[1], _r1;
21180 0 : {
21181 0 : tree _o2[1], _r2;
21182 0 : _o2[0] = captures[2];
21183 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
21184 0 : _o1[0] = _r2;
21185 : }
21186 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21187 0 : res_op0 = _r1;
21188 : }
21189 0 : tree _r;
21190 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21191 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
21192 0 : return _r;
21193 : }
21194 0 : next_after_fail1874:;
21195 : }
21196 : }
21197 : }
21198 : }
21199 : break;
21200 : }
21201 : default:;
21202 : }
21203 : }
21204 : break;
21205 : }
21206 1368516 : default:;
21207 : }
21208 1368516 : if (zerop (_q21))
21209 : {
21210 124425 : switch (TREE_CODE (_p2))
21211 : {
21212 7 : case NEGATE_EXPR:
21213 7 : {
21214 7 : tree _q60 = TREE_OPERAND (_p2, 0);
21215 7 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21216 : {
21217 7 : {
21218 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
21219 7 : const enum tree_code cmp = LE_EXPR;
21220 7 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21221 7 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21222 14 : && element_precision (captures[1])
21223 7 : <= element_precision (captures[0])
21224 7 : && bitwise_equal_p (captures[1], captures[2])
21225 14 : && (!VECTOR_TYPE_P (type)
21226 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21227 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21228 : )
21229 : {
21230 14 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
21231 7 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
21232 7 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21233 : )
21234 : {
21235 7 : {
21236 7 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21237 7 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
21238 7 : if (types_match (captures[0], stype)
21239 : )
21240 : {
21241 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1875;
21242 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1875;
21243 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1875;
21244 7 : {
21245 7 : tree res_op0;
21246 7 : {
21247 7 : tree _o1[1], _r1;
21248 7 : {
21249 7 : tree _o2[1], _r2;
21250 7 : _o2[0] = captures[0];
21251 7 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21252 7 : _o1[0] = _r2;
21253 : }
21254 7 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21255 7 : res_op0 = _r1;
21256 : }
21257 7 : tree _r;
21258 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21259 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
21260 7 : return _r;
21261 : }
21262 0 : next_after_fail1875:;
21263 : }
21264 : else
21265 : {
21266 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1876;
21267 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1876;
21268 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1876;
21269 0 : {
21270 0 : tree res_op0;
21271 0 : {
21272 0 : tree _o1[1], _r1;
21273 0 : {
21274 0 : tree _o2[1], _r2;
21275 0 : {
21276 0 : tree _o3[1], _r3;
21277 0 : _o3[0] = captures[2];
21278 0 : if (TREE_TYPE (_o3[0]) != stype)
21279 : {
21280 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
21281 : }
21282 : else
21283 : _r3 = _o3[0];
21284 0 : _o2[0] = _r3;
21285 : }
21286 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21287 0 : _o1[0] = _r2;
21288 : }
21289 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21290 0 : res_op0 = _r1;
21291 : }
21292 0 : tree _r;
21293 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21294 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
21295 0 : return _r;
21296 : }
21297 0 : next_after_fail1876:;
21298 : }
21299 : }
21300 : }
21301 : else
21302 : {
21303 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1877;
21304 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1877;
21305 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1877;
21306 0 : {
21307 0 : tree res_op0;
21308 0 : {
21309 0 : tree _o1[1], _r1;
21310 0 : {
21311 0 : tree _o2[1], _r2;
21312 0 : _o2[0] = captures[2];
21313 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
21314 0 : _o1[0] = _r2;
21315 : }
21316 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21317 0 : res_op0 = _r1;
21318 : }
21319 0 : tree _r;
21320 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21321 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
21322 0 : return _r;
21323 : }
21324 0 : next_after_fail1877:;
21325 : }
21326 : }
21327 : }
21328 : }
21329 : break;
21330 : }
21331 : default:;
21332 : }
21333 : }
21334 1368509 : switch (TREE_CODE (_q20))
21335 : {
21336 193 : case MINUS_EXPR:
21337 193 : {
21338 193 : tree _q30 = TREE_OPERAND (_q20, 0);
21339 193 : tree _q31 = TREE_OPERAND (_q20, 1);
21340 193 : if (zerop (_q21))
21341 : {
21342 148 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21343 : {
21344 0 : switch (TREE_CODE (_p2))
21345 : {
21346 0 : case MINUS_EXPR:
21347 0 : {
21348 0 : tree _q80 = TREE_OPERAND (_p2, 0);
21349 0 : tree _q81 = TREE_OPERAND (_p2, 1);
21350 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21351 : {
21352 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21353 : {
21354 0 : {
21355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
21356 0 : const enum tree_code cmp = LE_EXPR;
21357 0 : if (!HONOR_SIGNED_ZEROS (type)
21358 0 : && !TYPE_UNSIGNED (type)
21359 : )
21360 : {
21361 0 : if (ANY_INTEGRAL_TYPE_P (type)
21362 0 : && !TYPE_OVERFLOW_WRAPS (type)
21363 0 : && (!VECTOR_TYPE_P (type)
21364 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21365 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21366 : )
21367 : {
21368 0 : {
21369 0 : tree utype = unsigned_type_for (type);
21370 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1878;
21371 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1878;
21372 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1878;
21373 0 : {
21374 0 : tree res_op0;
21375 0 : {
21376 0 : tree _o1[1], _r1;
21377 0 : {
21378 0 : tree _o2[1], _r2;
21379 0 : _o2[0] = captures[0];
21380 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21381 0 : _o1[0] = _r2;
21382 : }
21383 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21384 0 : res_op0 = _r1;
21385 : }
21386 0 : tree _r;
21387 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21388 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
21389 0 : return _r;
21390 : }
21391 0 : next_after_fail1878:;
21392 : }
21393 : }
21394 : else
21395 : {
21396 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1879;
21397 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1879;
21398 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1879;
21399 0 : {
21400 0 : tree res_op0;
21401 0 : {
21402 0 : tree _o1[1], _r1;
21403 0 : _o1[0] = captures[0];
21404 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21405 0 : res_op0 = _r1;
21406 : }
21407 0 : tree _r;
21408 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
21409 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
21410 0 : return _r;
21411 : }
21412 0 : next_after_fail1879:;
21413 : }
21414 : }
21415 : }
21416 : }
21417 : }
21418 : break;
21419 : }
21420 : default:;
21421 : }
21422 : }
21423 : }
21424 : break;
21425 : }
21426 : default:;
21427 : }
21428 : break;
21429 : }
21430 1760154 : case LT_EXPR:
21431 1760154 : {
21432 1760154 : tree _q20 = TREE_OPERAND (_p0, 0);
21433 1760154 : tree _q21 = TREE_OPERAND (_p0, 1);
21434 1760154 : switch (TREE_CODE (_q20))
21435 : {
21436 94655 : CASE_CONVERT:
21437 94655 : {
21438 94655 : tree _q30 = TREE_OPERAND (_q20, 0);
21439 94655 : if (zerop (_q21))
21440 : {
21441 15856 : switch (TREE_CODE (_p2))
21442 : {
21443 8 : case NEGATE_EXPR:
21444 8 : {
21445 8 : tree _q70 = TREE_OPERAND (_p2, 0);
21446 8 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
21447 : {
21448 0 : {
21449 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
21450 0 : const enum tree_code cmp = LT_EXPR;
21451 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21452 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21453 0 : && element_precision (captures[1])
21454 0 : <= element_precision (captures[0])
21455 0 : && bitwise_equal_p (captures[1], captures[2])
21456 0 : && (!VECTOR_TYPE_P (type)
21457 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21458 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21459 : )
21460 : {
21461 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
21462 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
21463 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21464 : )
21465 : {
21466 0 : {
21467 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21468 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
21469 0 : if (types_match (captures[0], stype)
21470 : )
21471 : {
21472 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1880;
21473 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1880;
21474 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1880;
21475 0 : {
21476 0 : tree res_op0;
21477 0 : {
21478 0 : tree _o1[1], _r1;
21479 0 : {
21480 0 : tree _o2[1], _r2;
21481 0 : _o2[0] = captures[0];
21482 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21483 0 : _o1[0] = _r2;
21484 : }
21485 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21486 0 : res_op0 = _r1;
21487 : }
21488 0 : tree _r;
21489 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21490 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
21491 0 : return _r;
21492 : }
21493 0 : next_after_fail1880:;
21494 : }
21495 : else
21496 : {
21497 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1881;
21498 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1881;
21499 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1881;
21500 0 : {
21501 0 : tree res_op0;
21502 0 : {
21503 0 : tree _o1[1], _r1;
21504 0 : {
21505 0 : tree _o2[1], _r2;
21506 0 : {
21507 0 : tree _o3[1], _r3;
21508 0 : _o3[0] = captures[2];
21509 0 : if (TREE_TYPE (_o3[0]) != stype)
21510 : {
21511 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
21512 : }
21513 : else
21514 : _r3 = _o3[0];
21515 0 : _o2[0] = _r3;
21516 : }
21517 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21518 0 : _o1[0] = _r2;
21519 : }
21520 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21521 0 : res_op0 = _r1;
21522 : }
21523 0 : tree _r;
21524 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21525 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
21526 0 : return _r;
21527 : }
21528 0 : next_after_fail1881:;
21529 : }
21530 : }
21531 : }
21532 : else
21533 : {
21534 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1882;
21535 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1882;
21536 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1882;
21537 0 : {
21538 0 : tree res_op0;
21539 0 : {
21540 0 : tree _o1[1], _r1;
21541 0 : {
21542 0 : tree _o2[1], _r2;
21543 0 : _o2[0] = captures[2];
21544 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
21545 0 : _o1[0] = _r2;
21546 : }
21547 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21548 0 : res_op0 = _r1;
21549 : }
21550 0 : tree _r;
21551 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21552 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
21553 0 : return _r;
21554 : }
21555 0 : next_after_fail1882:;
21556 : }
21557 : }
21558 : }
21559 : }
21560 : break;
21561 : }
21562 : default:;
21563 : }
21564 : }
21565 : break;
21566 : }
21567 1760154 : default:;
21568 : }
21569 1760154 : if (zerop (_q21))
21570 : {
21571 378935 : switch (TREE_CODE (_p2))
21572 : {
21573 33 : case NEGATE_EXPR:
21574 33 : {
21575 33 : tree _q60 = TREE_OPERAND (_p2, 0);
21576 33 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21577 : {
21578 25 : {
21579 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
21580 25 : const enum tree_code cmp = LT_EXPR;
21581 25 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21582 25 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21583 50 : && element_precision (captures[1])
21584 25 : <= element_precision (captures[0])
21585 25 : && bitwise_equal_p (captures[1], captures[2])
21586 50 : && (!VECTOR_TYPE_P (type)
21587 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21588 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21589 : )
21590 : {
21591 50 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
21592 25 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
21593 26 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21594 : )
21595 : {
21596 24 : {
21597 24 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21598 24 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
21599 24 : if (types_match (captures[0], stype)
21600 : )
21601 : {
21602 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1883;
21603 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1883;
21604 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1883;
21605 24 : {
21606 24 : tree res_op0;
21607 24 : {
21608 24 : tree _o1[1], _r1;
21609 24 : {
21610 24 : tree _o2[1], _r2;
21611 24 : _o2[0] = captures[0];
21612 24 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21613 24 : _o1[0] = _r2;
21614 : }
21615 24 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21616 24 : res_op0 = _r1;
21617 : }
21618 24 : tree _r;
21619 24 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21620 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
21621 24 : return _r;
21622 : }
21623 0 : next_after_fail1883:;
21624 : }
21625 : else
21626 : {
21627 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1884;
21628 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1884;
21629 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1884;
21630 0 : {
21631 0 : tree res_op0;
21632 0 : {
21633 0 : tree _o1[1], _r1;
21634 0 : {
21635 0 : tree _o2[1], _r2;
21636 0 : {
21637 0 : tree _o3[1], _r3;
21638 0 : _o3[0] = captures[2];
21639 0 : if (TREE_TYPE (_o3[0]) != stype)
21640 : {
21641 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
21642 : }
21643 : else
21644 : _r3 = _o3[0];
21645 0 : _o2[0] = _r3;
21646 : }
21647 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21648 0 : _o1[0] = _r2;
21649 : }
21650 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21651 0 : res_op0 = _r1;
21652 : }
21653 0 : tree _r;
21654 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21655 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
21656 0 : return _r;
21657 : }
21658 0 : next_after_fail1884:;
21659 : }
21660 : }
21661 : }
21662 : else
21663 : {
21664 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1885;
21665 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1885;
21666 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1885;
21667 1 : {
21668 1 : tree res_op0;
21669 1 : {
21670 1 : tree _o1[1], _r1;
21671 1 : {
21672 1 : tree _o2[1], _r2;
21673 1 : _o2[0] = captures[2];
21674 1 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
21675 1 : _o1[0] = _r2;
21676 : }
21677 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21678 1 : res_op0 = _r1;
21679 : }
21680 1 : tree _r;
21681 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21682 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
21683 1 : return _r;
21684 : }
21685 0 : next_after_fail1885:;
21686 : }
21687 : }
21688 : }
21689 : }
21690 : break;
21691 : }
21692 : default:;
21693 : }
21694 : }
21695 1760129 : switch (TREE_CODE (_q20))
21696 : {
21697 11288 : case MINUS_EXPR:
21698 11288 : {
21699 11288 : tree _q30 = TREE_OPERAND (_q20, 0);
21700 11288 : tree _q31 = TREE_OPERAND (_q20, 1);
21701 11288 : if (zerop (_q21))
21702 : {
21703 7378 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21704 : {
21705 0 : switch (TREE_CODE (_p2))
21706 : {
21707 0 : case MINUS_EXPR:
21708 0 : {
21709 0 : tree _q80 = TREE_OPERAND (_p2, 0);
21710 0 : tree _q81 = TREE_OPERAND (_p2, 1);
21711 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21712 : {
21713 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21714 : {
21715 0 : {
21716 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
21717 0 : const enum tree_code cmp = LT_EXPR;
21718 0 : if (!HONOR_SIGNED_ZEROS (type)
21719 0 : && !TYPE_UNSIGNED (type)
21720 : )
21721 : {
21722 0 : if (ANY_INTEGRAL_TYPE_P (type)
21723 0 : && !TYPE_OVERFLOW_WRAPS (type)
21724 0 : && (!VECTOR_TYPE_P (type)
21725 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
21726 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
21727 : )
21728 : {
21729 0 : {
21730 0 : tree utype = unsigned_type_for (type);
21731 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1886;
21732 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1886;
21733 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1886;
21734 0 : {
21735 0 : tree res_op0;
21736 0 : {
21737 0 : tree _o1[1], _r1;
21738 0 : {
21739 0 : tree _o2[1], _r2;
21740 0 : _o2[0] = captures[0];
21741 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
21742 0 : _o1[0] = _r2;
21743 : }
21744 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21745 0 : res_op0 = _r1;
21746 : }
21747 0 : tree _r;
21748 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
21749 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
21750 0 : return _r;
21751 : }
21752 0 : next_after_fail1886:;
21753 : }
21754 : }
21755 : else
21756 : {
21757 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1887;
21758 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1887;
21759 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1887;
21760 0 : {
21761 0 : tree res_op0;
21762 0 : {
21763 0 : tree _o1[1], _r1;
21764 0 : _o1[0] = captures[0];
21765 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
21766 0 : res_op0 = _r1;
21767 : }
21768 0 : tree _r;
21769 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
21770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
21771 0 : return _r;
21772 : }
21773 0 : next_after_fail1887:;
21774 : }
21775 : }
21776 : }
21777 : }
21778 : }
21779 : break;
21780 : }
21781 : default:;
21782 : }
21783 : }
21784 : }
21785 : break;
21786 : }
21787 1760129 : default:;
21788 : }
21789 1760129 : if (integer_zerop (_q21))
21790 : {
21791 322732 : switch (TREE_CODE (_p1))
21792 : {
21793 21 : case BIT_NOT_EXPR:
21794 21 : {
21795 21 : tree _q50 = TREE_OPERAND (_p1, 0);
21796 21 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
21797 : {
21798 13 : {
21799 13 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
21800 13 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
21801 13 : if (res) return res;
21802 : }
21803 : }
21804 : break;
21805 : }
21806 322719 : default:;
21807 : }
21808 322719 : switch (TREE_CODE (_p2))
21809 : {
21810 8 : case BIT_NOT_EXPR:
21811 8 : {
21812 8 : tree _q60 = TREE_OPERAND (_p2, 0);
21813 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21814 : {
21815 8 : {
21816 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
21817 8 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
21818 8 : if (res) return res;
21819 : }
21820 : }
21821 : break;
21822 : }
21823 322711 : default:;
21824 : }
21825 322711 : switch (TREE_CODE (_p1))
21826 : {
21827 286413 : case INTEGER_CST:
21828 286413 : {
21829 286413 : if (integer_zerop (_p2))
21830 : {
21831 8873 : {
21832 8873 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
21833 8873 : if (integer_pow2p (captures[1])
21834 8873 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
21835 : )
21836 : {
21837 8608 : {
21838 8608 : int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
21839 8608 : if (shift >= 0
21840 : )
21841 : {
21842 8593 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1888;
21843 8593 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1888;
21844 8593 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1888;
21845 8593 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1888;
21846 8593 : {
21847 8593 : tree res_op0;
21848 8593 : {
21849 8593 : tree _o1[1], _r1;
21850 8593 : {
21851 8593 : tree _o2[2], _r2;
21852 8593 : _o2[0] = captures[0];
21853 8593 : _o2[1] = build_int_cst (integer_type_node, shift);
21854 8593 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
21855 8593 : _o1[0] = _r2;
21856 : }
21857 8593 : if (TREE_TYPE (_o1[0]) != type)
21858 : {
21859 8568 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
21860 : }
21861 : else
21862 : _r1 = _o1[0];
21863 8593 : res_op0 = _r1;
21864 : }
21865 8593 : tree res_op1;
21866 8593 : res_op1 = captures[1];
21867 8593 : tree _r;
21868 8593 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
21869 8593 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
21870 8608 : return _r;
21871 : }
21872 : next_after_fail1888:;
21873 : }
21874 : else
21875 : {
21876 15 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1889;
21877 15 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1889;
21878 15 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1889;
21879 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1889;
21880 15 : {
21881 15 : tree res_op0;
21882 15 : {
21883 15 : tree _o1[1], _r1;
21884 15 : _o1[0] = captures[0];
21885 15 : if (TREE_TYPE (_o1[0]) != type)
21886 : {
21887 15 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
21888 : }
21889 : else
21890 : _r1 = _o1[0];
21891 15 : res_op0 = _r1;
21892 : }
21893 15 : tree res_op1;
21894 15 : res_op1 = captures[1];
21895 15 : tree _r;
21896 15 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
21897 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
21898 15 : return _r;
21899 : }
21900 : next_after_fail1889:;
21901 : }
21902 : }
21903 : }
21904 : }
21905 : }
21906 : break;
21907 : }
21908 : default:;
21909 : }
21910 : }
21911 : break;
21912 : }
21913 11526186 : default:;
21914 : }
21915 11526186 : {
21916 11526186 : tree _p0_pops[1];
21917 11526186 : if (tree_logical_inverted_value (_p0, _p0_pops))
21918 : {
21919 468902 : tree _q20 = _p0_pops[0];
21920 468902 : if (tree_truth_valued_p (_q20))
21921 : {
21922 4464 : {
21923 4464 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
21924 8928 : if (COND_EXPR == VEC_COND_EXPR
21925 4464 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
21926 : )
21927 : {
21928 3150 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1890;
21929 46 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1890;
21930 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1890;
21931 37 : {
21932 37 : tree res_op0;
21933 37 : res_op0 = captures[0];
21934 37 : tree res_op1;
21935 37 : res_op1 = captures[2];
21936 37 : tree res_op2;
21937 37 : res_op2 = captures[1];
21938 37 : tree _r;
21939 37 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
21940 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
21941 37 : return _r;
21942 : }
21943 4427 : next_after_fail1890:;
21944 : }
21945 : }
21946 : }
21947 : }
21948 : }
21949 11526149 : return NULL_TREE;
21950 : }
21951 : #pragma GCC diagnostic pop
|