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 101913796 : tree_logical_inverted_value (tree t, tree *res_ops)
11 : {
12 101913796 : const tree type = TREE_TYPE (t);
13 101913796 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 101913796 : if (TREE_SIDE_EFFECTS (t)) return false;
15 93348576 : switch (TREE_CODE (t))
16 : {
17 479085 : case TRUTH_NOT_EXPR:
18 479085 : {
19 479085 : tree _p0 = TREE_OPERAND (t, 0);
20 479085 : {
21 479085 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
22 479085 : {
23 479085 : res_ops[0] = captures[0];
24 479085 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 23, __FILE__, __LINE__, false);
25 : return true;
26 : }
27 : }
28 155519 : break;
29 : }
30 155519 : case BIT_NOT_EXPR:
31 155519 : {
32 155519 : tree _p0 = TREE_OPERAND (t, 0);
33 155519 : if (tree_truth_valued_p (_p0))
34 : {
35 12076 : {
36 12076 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
37 12076 : {
38 12076 : res_ops[0] = captures[0];
39 12076 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 24, __FILE__, __LINE__, false);
40 12076 : return true;
41 : }
42 : }
43 : }
44 : break;
45 : }
46 1312577 : case EQ_EXPR:
47 1312577 : {
48 1312577 : tree _p0 = TREE_OPERAND (t, 0);
49 1312577 : tree _p1 = TREE_OPERAND (t, 1);
50 1312577 : if (integer_zerop (_p1))
51 : {
52 526688 : {
53 526688 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
54 526688 : {
55 526688 : res_ops[0] = captures[0];
56 526688 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 25, __FILE__, __LINE__, false);
57 526688 : return true;
58 : }
59 : }
60 : }
61 : break;
62 : }
63 2052604 : case NE_EXPR:
64 2052604 : {
65 2052604 : tree _p0 = TREE_OPERAND (t, 0);
66 2052604 : tree _p1 = TREE_OPERAND (t, 1);
67 2052604 : if (tree_truth_valued_p (_p0))
68 : {
69 2706 : if (integer_truep (_p1))
70 : {
71 0 : {
72 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
73 0 : {
74 0 : res_ops[0] = captures[0];
75 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 26, __FILE__, __LINE__, false);
76 0 : return true;
77 : }
78 : }
79 : }
80 : }
81 : break;
82 : }
83 106042 : case BIT_XOR_EXPR:
84 106042 : {
85 106042 : tree _p0 = TREE_OPERAND (t, 0);
86 106042 : tree _p1 = TREE_OPERAND (t, 1);
87 106042 : if (tree_truth_valued_p (_p0))
88 : {
89 14910 : if (integer_truep (_p1))
90 : {
91 0 : {
92 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
93 0 : {
94 0 : res_ops[0] = captures[0];
95 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 27, __FILE__, __LINE__, false);
96 0 : return true;
97 : }
98 : }
99 : }
100 : }
101 : break;
102 : }
103 : default:;
104 : }
105 : return false;
106 : }
107 :
108 : tree
109 3 : generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
110 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
111 : const enum tree_code ARG_UNUSED (op))
112 : {
113 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
114 3 : if (INTEGRAL_TYPE_P (type)
115 : )
116 : {
117 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail74;
118 3 : {
119 3 : tree res_op0;
120 3 : {
121 3 : tree _o1[2], _r1;
122 3 : _o1[0] = captures[1];
123 3 : _o1[1] = captures[4];
124 3 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
125 3 : res_op0 = _r1;
126 : }
127 3 : tree res_op1;
128 3 : res_op1 = captures[2];
129 3 : tree _r;
130 3 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
131 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 51, __FILE__, __LINE__, true);
132 3 : return _r;
133 : }
134 0 : next_after_fail74:;
135 : }
136 : return NULL_TREE;
137 : }
138 :
139 : tree
140 0 : generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
141 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
142 : const enum tree_code ARG_UNUSED (bit_op))
143 : {
144 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
145 0 : if (bit_op == BIT_AND_EXPR
146 : )
147 : {
148 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail85;
149 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail85;
150 0 : {
151 0 : tree _r;
152 0 : _r = build_zero_cst (type);
153 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
154 0 : return _r;
155 : }
156 : next_after_fail85:;
157 : }
158 : else
159 : {
160 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail86;
161 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail86;
162 0 : {
163 0 : tree _r;
164 0 : _r = build_minus_one_cst (type);
165 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
166 0 : return _r;
167 : }
168 : next_after_fail86:;
169 : }
170 : return NULL_TREE;
171 : }
172 :
173 : tree
174 0 : generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
175 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
176 : {
177 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
178 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail95;
179 0 : {
180 0 : tree res_op0;
181 0 : res_op0 = captures[0];
182 0 : tree res_op1;
183 0 : res_op1 = captures[1];
184 0 : tree _r;
185 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
186 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 68, __FILE__, __LINE__, true);
187 : return _r;
188 : }
189 0 : next_after_fail95:;
190 0 : return NULL_TREE;
191 : }
192 :
193 : tree
194 57 : generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
195 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
196 : {
197 57 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
198 57 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
199 : )
200 : {
201 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail102;
202 33 : {
203 33 : tree res_op0;
204 33 : {
205 33 : tree _o1[1], _r1;
206 33 : _o1[0] = captures[0];
207 33 : if (TREE_TYPE (_o1[0]) != type)
208 : {
209 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
210 : }
211 : else
212 : _r1 = _o1[0];
213 33 : res_op0 = _r1;
214 : }
215 33 : tree res_op1;
216 33 : {
217 33 : tree _o1[1], _r1;
218 33 : _o1[0] = captures[1];
219 33 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
220 33 : res_op1 = _r1;
221 : }
222 33 : tree _r;
223 33 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
224 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
225 33 : return _r;
226 : }
227 0 : next_after_fail102:;
228 : }
229 : return NULL_TREE;
230 : }
231 :
232 : tree
233 599 : generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
234 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
235 : const enum tree_code ARG_UNUSED (bitop))
236 : {
237 599 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
238 599 : if (!CONSTANT_CLASS_P (captures[0])
239 : )
240 : {
241 599 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail110;
242 599 : {
243 599 : tree res_op0;
244 599 : res_op0 = captures[0];
245 599 : tree res_op1;
246 599 : {
247 599 : tree _o1[2], _r1;
248 599 : _o1[0] = captures[1];
249 599 : _o1[1] = captures[2];
250 599 : _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
251 599 : if (EXPR_P (_r1))
252 0 : goto next_after_fail110;
253 599 : res_op1 = _r1;
254 : }
255 599 : tree _r;
256 599 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
257 599 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 82, __FILE__, __LINE__, true);
258 599 : return _r;
259 : }
260 : next_after_fail110:;
261 : }
262 : else
263 : {
264 0 : {
265 0 : tree cst1 = const_binop (bitop, type, captures[0], captures[2]);
266 0 : if (cst1
267 : )
268 : {
269 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail111;
270 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail111;
271 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail111;
272 0 : {
273 0 : tree res_op0;
274 0 : res_op0 = captures[1];
275 0 : tree res_op1;
276 0 : res_op1 = cst1;
277 0 : tree _r;
278 0 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
279 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 83, __FILE__, __LINE__, true);
280 0 : return _r;
281 : }
282 : next_after_fail111:;
283 : }
284 : else
285 : {
286 0 : {
287 0 : tree cst2 = const_binop (bitop, type, captures[1], captures[2]);
288 0 : if (cst2
289 : )
290 : {
291 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail112;
292 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail112;
293 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail112;
294 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail112;
295 0 : {
296 0 : tree res_op0;
297 0 : res_op0 = captures[0];
298 0 : tree res_op1;
299 0 : res_op1 = cst2;
300 0 : tree _r;
301 0 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
302 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
303 0 : return _r;
304 : }
305 : next_after_fail112:;
306 : }
307 : }
308 : }
309 : }
310 : }
311 : return NULL_TREE;
312 : }
313 :
314 : tree
315 534 : generic_simplify_49 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
316 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
317 : const enum tree_code ARG_UNUSED (op))
318 : {
319 534 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
320 1068 : if (INTEGRAL_TYPE_P (type)
321 532 : && tree_int_cst_sgn (captures[2]) > 0
322 2132 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
323 : )
324 : {
325 6 : {
326 6 : tree t = type;
327 6 : if (!TYPE_OVERFLOW_WRAPS (t))
328 6 : t = unsigned_type_for (t);
329 6 : wide_int wone = wi::one (TYPE_PRECISION (t));
330 6 : wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])), wone);
331 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail127;
332 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail127;
333 6 : {
334 6 : tree res_op0;
335 6 : {
336 6 : tree _o1[2], _r1;
337 6 : {
338 6 : tree _o2[1], _r2;
339 6 : _o2[0] = captures[1];
340 6 : if (TREE_TYPE (_o2[0]) != t)
341 : {
342 6 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
343 : }
344 : else
345 : _r2 = _o2[0];
346 6 : _o1[0] = _r2;
347 : }
348 6 : _o1[1] = wide_int_to_tree (t, c);
349 6 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
350 6 : res_op0 = _r1;
351 : }
352 6 : tree _r;
353 6 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
354 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 95, __FILE__, __LINE__, true);
355 6 : return _r;
356 : }
357 0 : next_after_fail127:;
358 6 : }
359 : }
360 : return NULL_TREE;
361 : }
362 :
363 : tree
364 3039883 : generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
365 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
366 : const enum tree_code ARG_UNUSED (inner_op),
367 : const enum tree_code ARG_UNUSED (neg_inner_op),
368 : const enum tree_code ARG_UNUSED (outer_op))
369 : {
370 3039883 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
371 3039883 : if (!TYPE_SATURATING (type)
372 : )
373 : {
374 3039883 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
375 6079520 : && !FIXED_POINT_TYPE_P (type)
376 : )
377 : {
378 3039637 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
379 : )
380 : {
381 2030792 : if (!CONSTANT_CLASS_P (captures[0])
382 : )
383 : {
384 2030785 : if (outer_op == PLUS_EXPR
385 : )
386 : {
387 2030785 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail144;
388 2030785 : {
389 2030785 : tree res_op0;
390 2030785 : {
391 2030785 : tree _o1[1], _r1;
392 2030785 : _o1[0] = captures[0];
393 2030785 : if (TREE_TYPE (_o1[0]) != type)
394 : {
395 855225 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
396 : }
397 : else
398 : _r1 = _o1[0];
399 2030785 : res_op0 = _r1;
400 : }
401 2030785 : tree res_op1;
402 2030785 : {
403 2030785 : tree _o1[2], _r1;
404 2030785 : _o1[0] = captures[2];
405 2030785 : {
406 2030785 : tree _o2[1], _r2;
407 2030785 : _o2[0] = captures[1];
408 2030785 : if (TREE_TYPE (_o2[0]) != type)
409 : {
410 846549 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
411 : }
412 : else
413 : _r2 = _o2[0];
414 2030785 : _o1[1] = _r2;
415 : }
416 2030785 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
417 2030785 : if (EXPR_P (_r1))
418 0 : goto next_after_fail144;
419 2030785 : res_op1 = _r1;
420 : }
421 2030785 : tree _r;
422 2030785 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
423 2030785 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 112, __FILE__, __LINE__, true);
424 2030785 : return _r;
425 : }
426 : next_after_fail144:;
427 : }
428 : else
429 : {
430 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail145;
431 0 : {
432 0 : tree res_op0;
433 0 : {
434 0 : tree _o1[1], _r1;
435 0 : _o1[0] = captures[0];
436 0 : if (TREE_TYPE (_o1[0]) != type)
437 : {
438 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
439 : }
440 : else
441 : _r1 = _o1[0];
442 0 : res_op0 = _r1;
443 : }
444 0 : tree res_op1;
445 0 : {
446 0 : tree _o1[2], _r1;
447 0 : _o1[0] = captures[2];
448 0 : {
449 0 : tree _o2[1], _r2;
450 0 : _o2[0] = captures[1];
451 0 : if (TREE_TYPE (_o2[0]) != type)
452 : {
453 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
454 : }
455 : else
456 : _r2 = _o2[0];
457 0 : _o1[1] = _r2;
458 : }
459 0 : _r1 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
460 0 : if (EXPR_P (_r1))
461 0 : goto next_after_fail145;
462 0 : res_op1 = _r1;
463 : }
464 0 : tree _r;
465 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
466 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 113, __FILE__, __LINE__, true);
467 0 : return _r;
468 : }
469 : next_after_fail145:;
470 : }
471 : }
472 : }
473 : else
474 : {
475 2017690 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
476 2017690 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
477 : )
478 : {
479 217651 : if (outer_op == PLUS_EXPR
480 : )
481 : {
482 217651 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail146;
483 217651 : {
484 217651 : tree res_op0;
485 217651 : {
486 217651 : tree _o1[2], _r1;
487 217651 : _o1[0] = captures[0];
488 217651 : {
489 217651 : tree _o2[2], _r2;
490 217651 : {
491 217651 : tree _o3[1], _r3;
492 217651 : _o3[0] = captures[2];
493 217651 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
494 : {
495 217651 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
496 : }
497 : else
498 : _r3 = _o3[0];
499 217651 : _o2[0] = _r3;
500 : }
501 217651 : _o2[1] = captures[1];
502 217651 : _r2 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
503 217651 : if (EXPR_P (_r2))
504 0 : goto next_after_fail146;
505 217651 : _o1[1] = _r2;
506 : }
507 217651 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
508 217651 : res_op0 = _r1;
509 : }
510 217651 : tree _r;
511 217651 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
512 217651 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 114, __FILE__, __LINE__, true);
513 217651 : return _r;
514 : }
515 : next_after_fail146:;
516 : }
517 : else
518 : {
519 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail147;
520 0 : {
521 0 : tree res_op0;
522 0 : {
523 0 : tree _o1[2], _r1;
524 0 : _o1[0] = captures[0];
525 0 : {
526 0 : tree _o2[2], _r2;
527 0 : {
528 0 : tree _o3[1], _r3;
529 0 : _o3[0] = captures[2];
530 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
531 : {
532 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
533 : }
534 : else
535 : _r3 = _o3[0];
536 0 : _o2[0] = _r3;
537 : }
538 0 : _o2[1] = captures[1];
539 0 : _r2 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
540 0 : if (EXPR_P (_r2))
541 0 : goto next_after_fail147;
542 0 : _o1[1] = _r2;
543 : }
544 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
545 0 : res_op0 = _r1;
546 : }
547 0 : tree _r;
548 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
549 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 115, __FILE__, __LINE__, true);
550 0 : return _r;
551 : }
552 : next_after_fail147:;
553 : }
554 : }
555 : else
556 : {
557 791194 : if (types_match (type, captures[0]) && !TYPE_OVERFLOW_SANITIZED (type)
558 : )
559 : {
560 790015 : {
561 790015 : tree cst = const_binop (outer_op == inner_op
562 : ? PLUS_EXPR : MINUS_EXPR,
563 : type, captures[1], captures[2]);
564 790015 : if (cst
565 : )
566 : {
567 790015 : if (INTEGRAL_TYPE_P (type) && !TREE_OVERFLOW (cst)
568 : )
569 : {
570 790001 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail148;
571 790001 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail148;
572 790001 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail148;
573 790001 : {
574 790001 : tree res_op0;
575 790001 : res_op0 = captures[0];
576 790001 : tree res_op1;
577 790001 : res_op1 = cst;
578 790001 : tree _r;
579 790001 : _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
580 790001 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 116, __FILE__, __LINE__, true);
581 790001 : return _r;
582 : }
583 : next_after_fail148:;
584 : }
585 : else
586 : {
587 28 : if (INTEGRAL_TYPE_P (type)
588 28 : && wi::to_wide (cst) == wi::min_value (type)
589 : )
590 : {
591 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail149;
592 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail149;
593 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail149;
594 7 : {
595 7 : tree res_op0;
596 7 : res_op0 = captures[0];
597 7 : tree res_op1;
598 7 : res_op1 = wide_int_to_tree (type, wi::to_wide (cst));
599 7 : tree _r;
600 7 : _r = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
601 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 117, __FILE__, __LINE__, true);
602 7 : return _r;
603 : }
604 : next_after_fail149:;
605 : }
606 : else
607 : {
608 7 : {
609 7 : tree utype = unsigned_type_for (type);
610 7 : if (utype
611 : )
612 : {
613 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail150;
614 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail150;
615 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail150;
616 7 : {
617 7 : tree res_op0;
618 7 : {
619 7 : tree _o1[2], _r1;
620 7 : {
621 7 : tree _o2[1], _r2;
622 7 : _o2[0] = captures[0];
623 7 : if (TREE_TYPE (_o2[0]) != utype)
624 : {
625 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
626 : }
627 : else
628 : _r2 = _o2[0];
629 7 : _o1[0] = _r2;
630 : }
631 7 : {
632 7 : tree _o2[1], _r2;
633 7 : _o2[0] = TREE_OVERFLOW (cst)
634 7 : ? drop_tree_overflow (cst) : cst;
635 7 : if (TREE_TYPE (_o2[0]) != utype)
636 : {
637 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
638 : }
639 : else
640 : _r2 = _o2[0];
641 7 : _o1[1] = _r2;
642 : }
643 7 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
644 7 : res_op0 = _r1;
645 : }
646 7 : tree _r;
647 7 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
648 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 118, __FILE__, __LINE__, true);
649 7 : return _r;
650 : }
651 : next_after_fail150:;
652 : }
653 : }
654 : }
655 : }
656 : }
657 : }
658 : }
659 : }
660 : }
661 : }
662 : }
663 : return NULL_TREE;
664 : }
665 :
666 : tree
667 0 : generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
668 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
669 : const enum tree_code ARG_UNUSED (op))
670 : {
671 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
672 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail218;
673 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail218;
674 0 : {
675 0 : tree _r;
676 0 : _r = captures[0];
677 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
678 : return _r;
679 : }
680 : next_after_fail218:;
681 : return NULL_TREE;
682 : }
683 :
684 : tree
685 253 : generic_simplify_128 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
686 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
687 : const enum tree_code ARG_UNUSED (bitop))
688 : {
689 253 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
690 253 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail225;
691 253 : {
692 253 : tree res_op0;
693 253 : res_op0 = captures[0];
694 253 : tree _r;
695 253 : _r = non_lvalue_loc (loc, res_op0);
696 253 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 187, __FILE__, __LINE__, true);
697 : return _r;
698 : }
699 0 : next_after_fail225:;
700 0 : return NULL_TREE;
701 : }
702 :
703 : tree
704 0 : generic_simplify_137 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
705 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
706 : const enum tree_code ARG_UNUSED (op))
707 : {
708 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
709 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
710 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
711 : )
712 : {
713 0 : if (single_use (captures[4]) && single_use (captures[5])
714 : )
715 : {
716 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail234;
717 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail234;
718 0 : {
719 0 : tree res_op0;
720 0 : res_op0 = captures[0];
721 0 : tree res_op1;
722 0 : {
723 0 : tree _o1[1], _r1;
724 0 : _o1[0] = captures[6];
725 0 : if (TREE_TYPE (_o1[0]) != type)
726 : {
727 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
728 : }
729 : else
730 : _r1 = _o1[0];
731 0 : res_op1 = _r1;
732 : }
733 0 : tree _r;
734 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
735 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
736 0 : return _r;
737 : }
738 : next_after_fail234:;
739 : }
740 : else
741 : {
742 : if (single_use (captures[0]) && single_use (captures[1])
743 : )
744 : {
745 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail235;
746 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail235;
747 : {
748 : tree res_op0;
749 : {
750 : tree _o1[1], _r1;
751 : _o1[0] = captures[3];
752 : if (TREE_TYPE (_o1[0]) != type)
753 : {
754 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
755 : }
756 : else
757 : _r1 = _o1[0];
758 : res_op0 = _r1;
759 : }
760 : tree res_op1;
761 : res_op1 = captures[4];
762 : tree _r;
763 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
764 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
765 : return _r;
766 : }
767 : next_after_fail235:;
768 : }
769 : }
770 : }
771 : return NULL_TREE;
772 : }
773 :
774 : tree
775 0 : generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
776 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
777 : const enum tree_code ARG_UNUSED (cmp),
778 : const enum tree_code ARG_UNUSED (icmp))
779 : {
780 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
781 0 : if (INTEGRAL_TYPE_P (type)
782 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
783 0 : && canonicalize_math_after_vectorization_p ()
784 : )
785 : {
786 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail253;
787 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail253;
788 : {
789 : tree res_op0;
790 : {
791 : tree _o1[3], _r1;
792 : _o1[0] = captures[0];
793 : _o1[1] = captures[3];
794 : _o1[2] = captures[5];
795 : _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
796 : res_op0 = _r1;
797 : }
798 : tree res_op1;
799 : res_op1 = build_one_cst (type);
800 : tree _r;
801 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
802 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
803 : return _r;
804 : }
805 0 : next_after_fail253:;
806 : }
807 0 : return NULL_TREE;
808 : }
809 :
810 : tree
811 0 : generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
812 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
813 : {
814 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
815 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail287;
816 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail287;
817 0 : {
818 0 : tree _r;
819 0 : _r = captures[2];
820 0 : if (TREE_SIDE_EFFECTS (captures[1]))
821 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
822 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
823 : return _r;
824 : }
825 : next_after_fail287:;
826 : return NULL_TREE;
827 : }
828 :
829 : tree
830 4 : generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
831 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
832 : {
833 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
834 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail304;
835 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail304;
836 4 : {
837 4 : tree _r;
838 4 : _r = constant_boolean_node (true, type);
839 4 : if (TREE_SIDE_EFFECTS (captures[1]))
840 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
841 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
842 : return _r;
843 : }
844 : next_after_fail304:;
845 : return NULL_TREE;
846 : }
847 :
848 : tree
849 2 : generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
850 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
851 : {
852 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
853 4 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
854 4 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
855 : )
856 : {
857 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail308;
858 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail308;
859 2 : {
860 2 : tree res_op0;
861 2 : res_op0 = captures[3];
862 2 : tree res_op1;
863 2 : {
864 2 : tree _o1[2], _r1;
865 2 : _o1[0] = captures[1];
866 2 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
867 2 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
868 2 : res_op1 = _r1;
869 : }
870 2 : tree _r;
871 2 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
872 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 210, __FILE__, __LINE__, true);
873 2 : return _r;
874 : }
875 : next_after_fail308:;
876 : }
877 : return NULL_TREE;
878 : }
879 :
880 : tree
881 4 : generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
882 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
883 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
884 : {
885 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
886 4 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
887 : )
888 : {
889 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail315;
890 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
891 0 : {
892 0 : tree res_op0;
893 0 : res_op0 = captures[0];
894 0 : tree _r;
895 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
896 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
897 0 : return _r;
898 : }
899 : next_after_fail315:;
900 : }
901 : return NULL_TREE;
902 : }
903 :
904 : tree
905 6131080 : generic_simplify_181 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
906 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
907 : const enum tree_code ARG_UNUSED (op))
908 : {
909 6131080 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
910 6131080 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail318;
911 6131080 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail318;
912 6131080 : {
913 6131080 : tree res_op0;
914 6131080 : res_op0 = captures[0];
915 6131080 : tree _r;
916 6131080 : _r = non_lvalue_loc (loc, res_op0);
917 6131080 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 237, __FILE__, __LINE__, true);
918 : return _r;
919 : }
920 : next_after_fail318:;
921 : return NULL_TREE;
922 : }
923 :
924 : tree
925 3 : generic_simplify_184 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
926 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
927 : {
928 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
929 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail321;
930 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail321;
931 3 : {
932 3 : tree _r;
933 3 : _r = build_zero_cst (type);
934 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 240, __FILE__, __LINE__, true);
935 : return _r;
936 : }
937 : next_after_fail321:;
938 : return NULL_TREE;
939 : }
940 :
941 : tree
942 36661 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
943 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
944 : {
945 36661 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
946 36661 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
947 36661 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
948 : )
949 : {
950 34042 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail327;
951 34042 : {
952 34042 : tree res_op0;
953 34042 : {
954 34042 : tree _o1[1], _r1;
955 34042 : _o1[0] = captures[0];
956 34042 : if (TREE_TYPE (_o1[0]) != type)
957 : {
958 772 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
959 : }
960 : else
961 : _r1 = _o1[0];
962 34042 : res_op0 = _r1;
963 : }
964 34042 : tree res_op1;
965 34042 : {
966 34042 : tree _o1[1], _r1;
967 34042 : {
968 34042 : tree _o2[1], _r2;
969 34042 : _o2[0] = captures[1];
970 34042 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
971 34042 : _o1[0] = _r2;
972 : }
973 34042 : if (TREE_TYPE (_o1[0]) != type)
974 : {
975 7 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
976 : }
977 : else
978 : _r1 = _o1[0];
979 34042 : res_op1 = _r1;
980 : }
981 34042 : tree _r;
982 34042 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
983 34042 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 243, __FILE__, __LINE__, true);
984 34042 : return _r;
985 : }
986 0 : next_after_fail327:;
987 : }
988 : return NULL_TREE;
989 : }
990 :
991 : tree
992 2 : generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
993 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
994 : const combined_fn ARG_UNUSED (SQRT_ALL))
995 : {
996 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
997 2 : if (flag_unsafe_math_optimizations
998 : )
999 : {
1000 2 : if (!tree_expr_maybe_signaling_nan_p (captures[1])
1001 : )
1002 : {
1003 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail336;
1004 2 : {
1005 2 : tree _r;
1006 2 : _r = captures[1];
1007 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 251, __FILE__, __LINE__, true);
1008 2 : return _r;
1009 : }
1010 0 : next_after_fail336:;
1011 : }
1012 : }
1013 : return NULL_TREE;
1014 : }
1015 :
1016 : tree
1017 6 : generic_simplify_198 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1018 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1019 : const combined_fn ARG_UNUSED (LDEXP))
1020 : {
1021 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1022 6 : if (flag_unsafe_math_optimizations
1023 : )
1024 : {
1025 6 : {
1026 6 : HOST_WIDE_INT tmp = 0;
1027 6 : if (real_isinteger (&TREE_REAL_CST (captures[0]), &tmp)
1028 6 : && tmp > 0 && pow2p_hwi (tmp)
1029 : )
1030 : {
1031 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail338;
1032 3 : {
1033 3 : tree res_op0;
1034 3 : res_op0 = captures[1];
1035 3 : tree res_op1;
1036 3 : {
1037 3 : tree _o1[2], _r1;
1038 3 : _o1[0] = build_int_cst (integer_type_node,
1039 6 : exact_log2 (tmp));
1040 3 : _o1[1] = captures[2];
1041 3 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1042 3 : res_op1 = _r1;
1043 : }
1044 3 : tree _r;
1045 3 : _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
1046 3 : if (!_r)
1047 0 : goto next_after_fail338;
1048 3 : if (TREE_SIDE_EFFECTS (captures[0]))
1049 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1050 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 253, __FILE__, __LINE__, true);
1051 3 : return _r;
1052 : }
1053 3 : next_after_fail338:;
1054 : }
1055 : }
1056 : }
1057 : return NULL_TREE;
1058 : }
1059 :
1060 : tree
1061 0 : generic_simplify_211 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1062 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1063 : const enum tree_code ARG_UNUSED (neeq))
1064 : {
1065 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1066 0 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
1067 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
1068 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1069 : )
1070 : {
1071 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail354;
1072 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail354;
1073 0 : {
1074 0 : tree res_op0;
1075 0 : res_op0 = captures[1];
1076 0 : tree res_op1;
1077 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1078 0 : tree _r;
1079 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 268, __FILE__, __LINE__, true);
1081 0 : return _r;
1082 : }
1083 : next_after_fail354:;
1084 : }
1085 : return NULL_TREE;
1086 : }
1087 :
1088 : tree
1089 1751593 : generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1090 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1091 : const enum tree_code ARG_UNUSED (cmp))
1092 : {
1093 1751593 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1094 3503186 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1095 1751593 : && integer_nonzerop (captures[2])
1096 1749804 : && !TREE_OVERFLOW (captures[2])
1097 3501397 : && !TREE_OVERFLOW (captures[3])
1098 : )
1099 : {
1100 1749804 : {
1101 1749804 : tree lo, hi; bool neg_overflow;
1102 1749804 : enum tree_code code = fold_div_compare (cmp, captures[2], captures[3], &lo, &hi,
1103 : &neg_overflow);
1104 1749804 : if (code == LT_EXPR || code == GE_EXPR
1105 : )
1106 : {
1107 40781 : if (TREE_OVERFLOW (lo)
1108 : )
1109 : {
1110 8743 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail359;
1111 8743 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail359;
1112 8743 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail359;
1113 8743 : {
1114 8743 : tree _r;
1115 8743 : _r = build_int_cst (type, (code == LT_EXPR) ^ neg_overflow);
1116 8743 : if (TREE_SIDE_EFFECTS (captures[1]))
1117 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1118 8743 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 273, __FILE__, __LINE__, true);
1119 1749801 : return _r;
1120 : }
1121 3 : next_after_fail359:;
1122 : }
1123 : else
1124 : {
1125 32038 : if (code == LT_EXPR
1126 : )
1127 : {
1128 722 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail360;
1129 722 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail360;
1130 722 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail360;
1131 722 : {
1132 722 : tree res_op0;
1133 722 : res_op0 = captures[1];
1134 722 : tree res_op1;
1135 722 : res_op1 = lo;
1136 722 : tree _r;
1137 722 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1138 722 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 274, __FILE__, __LINE__, true);
1139 722 : return _r;
1140 : }
1141 3 : next_after_fail360:;
1142 : }
1143 : else
1144 : {
1145 31316 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail361;
1146 31316 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail361;
1147 31316 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail361;
1148 31316 : {
1149 31316 : tree res_op0;
1150 31316 : res_op0 = captures[1];
1151 31316 : tree res_op1;
1152 31316 : res_op1 = lo;
1153 31316 : tree _r;
1154 31316 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1155 31316 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 275, __FILE__, __LINE__, true);
1156 31316 : return _r;
1157 : }
1158 3 : next_after_fail361:;
1159 : }
1160 : }
1161 : }
1162 : else
1163 : {
1164 1709023 : if (code == LE_EXPR || code == GT_EXPR
1165 : )
1166 : {
1167 1705940 : if (TREE_OVERFLOW (hi)
1168 : )
1169 : {
1170 536331 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail362;
1171 536331 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail362;
1172 536331 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail362;
1173 536331 : {
1174 536331 : tree _r;
1175 536331 : _r = build_int_cst (type, (code == LE_EXPR) ^ neg_overflow);
1176 536331 : if (TREE_SIDE_EFFECTS (captures[1]))
1177 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1178 536331 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 276, __FILE__, __LINE__, true);
1179 536331 : return _r;
1180 : }
1181 3 : next_after_fail362:;
1182 : }
1183 : else
1184 : {
1185 1169609 : if (code == LE_EXPR
1186 : )
1187 : {
1188 682 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail363;
1189 682 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail363;
1190 682 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail363;
1191 682 : {
1192 682 : tree res_op0;
1193 682 : res_op0 = captures[1];
1194 682 : tree res_op1;
1195 682 : res_op1 = hi;
1196 682 : tree _r;
1197 682 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1198 682 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 277, __FILE__, __LINE__, true);
1199 682 : return _r;
1200 : }
1201 3 : next_after_fail363:;
1202 : }
1203 : else
1204 : {
1205 1168927 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail364;
1206 1168927 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail364;
1207 1168927 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail364;
1208 1168927 : {
1209 1168927 : tree res_op0;
1210 1168927 : res_op0 = captures[1];
1211 1168927 : tree res_op1;
1212 1168927 : res_op1 = hi;
1213 1168927 : tree _r;
1214 1168927 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1215 1168927 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 278, __FILE__, __LINE__, true);
1216 1168927 : return _r;
1217 : }
1218 3 : next_after_fail364:;
1219 : }
1220 : }
1221 : }
1222 : else
1223 : {
1224 3083 : if (!lo && !hi
1225 : )
1226 : {
1227 40 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail365;
1228 40 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail365;
1229 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail365;
1230 40 : {
1231 40 : tree _r;
1232 40 : _r = build_int_cst (type, code == NE_EXPR);
1233 40 : if (TREE_SIDE_EFFECTS (captures[1]))
1234 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1235 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 279, __FILE__, __LINE__, true);
1236 40 : return _r;
1237 : }
1238 3 : next_after_fail365:;
1239 : }
1240 : else
1241 : {
1242 3043 : if (code == EQ_EXPR && !hi
1243 : )
1244 : {
1245 15 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail366;
1246 15 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail366;
1247 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail366;
1248 15 : {
1249 15 : tree res_op0;
1250 15 : res_op0 = captures[1];
1251 15 : tree res_op1;
1252 15 : res_op1 = lo;
1253 15 : tree _r;
1254 15 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1255 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 280, __FILE__, __LINE__, true);
1256 15 : return _r;
1257 : }
1258 3 : next_after_fail366:;
1259 : }
1260 : else
1261 : {
1262 930 : if (code == EQ_EXPR && !lo
1263 : )
1264 : {
1265 11 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail367;
1266 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail367;
1267 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail367;
1268 11 : {
1269 11 : tree res_op0;
1270 11 : res_op0 = captures[1];
1271 11 : tree res_op1;
1272 11 : res_op1 = hi;
1273 11 : tree _r;
1274 11 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1275 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 281, __FILE__, __LINE__, true);
1276 11 : return _r;
1277 : }
1278 3 : next_after_fail367:;
1279 : }
1280 : else
1281 : {
1282 3017 : if (code == NE_EXPR && !hi
1283 : )
1284 : {
1285 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail368;
1286 4 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail368;
1287 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail368;
1288 4 : {
1289 4 : tree res_op0;
1290 4 : res_op0 = captures[1];
1291 4 : tree res_op1;
1292 4 : res_op1 = lo;
1293 4 : tree _r;
1294 4 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1295 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 282, __FILE__, __LINE__, true);
1296 4 : return _r;
1297 : }
1298 3 : next_after_fail368:;
1299 : }
1300 : else
1301 : {
1302 2094 : if (code == NE_EXPR && !lo
1303 : )
1304 : {
1305 18 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail369;
1306 18 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail369;
1307 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail369;
1308 18 : {
1309 18 : tree res_op0;
1310 18 : res_op0 = captures[1];
1311 18 : tree res_op1;
1312 18 : res_op1 = hi;
1313 18 : tree _r;
1314 18 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1315 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 283, __FILE__, __LINE__, true);
1316 18 : return _r;
1317 : }
1318 3 : next_after_fail369:;
1319 : }
1320 : else
1321 : {
1322 2995 : if (1
1323 : )
1324 : {
1325 2995 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail370;
1326 2992 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail370;
1327 2992 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail370;
1328 2992 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail370;
1329 2992 : {
1330 2992 : tree _r;
1331 2992 : _r = build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR,
1332 : lo, hi);
1333 2992 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 284, __FILE__, __LINE__, true);
1334 2992 : return _r;
1335 : }
1336 3 : next_after_fail370:;
1337 : }
1338 : else
1339 : {
1340 : {
1341 : tree etype = range_check_type (TREE_TYPE (captures[1]));
1342 : if (etype)
1343 : {
1344 : hi = fold_convert (etype, hi);
1345 : lo = fold_convert (etype, lo);
1346 : hi = const_binop (MINUS_EXPR, etype, hi, lo);
1347 : }
1348 : if (etype && hi && !TREE_OVERFLOW (hi)
1349 : )
1350 : {
1351 : if (code == EQ_EXPR
1352 : )
1353 : {
1354 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail371;
1355 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail371;
1356 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail371;
1357 : {
1358 : tree res_op0;
1359 : {
1360 : tree _o1[2], _r1;
1361 : {
1362 : tree _o2[1], _r2;
1363 : _o2[0] = captures[1];
1364 : if (TREE_TYPE (_o2[0]) != etype)
1365 : {
1366 : _r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
1367 : }
1368 : else
1369 : _r2 = _o2[0];
1370 : _o1[0] = _r2;
1371 : }
1372 : _o1[1] = lo;
1373 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1374 : res_op0 = _r1;
1375 : }
1376 : tree res_op1;
1377 : res_op1 = hi;
1378 : tree _r;
1379 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1380 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 285, __FILE__, __LINE__, true);
1381 : return _r;
1382 : }
1383 : next_after_fail371:;
1384 : }
1385 : else
1386 : {
1387 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail372;
1388 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail372;
1389 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail372;
1390 : {
1391 : tree res_op0;
1392 : {
1393 : tree _o1[2], _r1;
1394 : {
1395 : tree _o2[1], _r2;
1396 : _o2[0] = captures[1];
1397 : if (TREE_TYPE (_o2[0]) != etype)
1398 : {
1399 : _r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
1400 : }
1401 : else
1402 : _r2 = _o2[0];
1403 : _o1[0] = _r2;
1404 : }
1405 : _o1[1] = lo;
1406 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1407 : res_op0 = _r1;
1408 : }
1409 : tree res_op1;
1410 : res_op1 = hi;
1411 : tree _r;
1412 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1413 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
1414 : return _r;
1415 : }
1416 : next_after_fail372:;
1417 : }
1418 : }
1419 : }
1420 : }
1421 : }
1422 : }
1423 : }
1424 : }
1425 : }
1426 : }
1427 : }
1428 : }
1429 : }
1430 : return NULL_TREE;
1431 : }
1432 :
1433 : tree
1434 451 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1435 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1436 : const enum tree_code ARG_UNUSED (cmp))
1437 : {
1438 451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1439 451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail506;
1440 451 : {
1441 451 : tree res_op0;
1442 451 : {
1443 451 : tree _o1[2], _r1;
1444 451 : _o1[0] = captures[0];
1445 451 : {
1446 451 : tree _o2[1], _r2;
1447 451 : _o2[0] = captures[1];
1448 451 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1449 451 : if (EXPR_P (_r2))
1450 443 : goto next_after_fail506;
1451 8 : _o1[1] = _r2;
1452 : }
1453 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1454 8 : res_op0 = _r1;
1455 : }
1456 8 : tree res_op1;
1457 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1458 8 : tree _r;
1459 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1460 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 409, __FILE__, __LINE__, true);
1461 : return _r;
1462 : }
1463 : next_after_fail506:;
1464 : return NULL_TREE;
1465 : }
1466 :
1467 : tree
1468 109054 : generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1469 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1470 : const enum tree_code ARG_UNUSED (cmp),
1471 : const enum tree_code ARG_UNUSED (icmp))
1472 : {
1473 109054 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1474 109054 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail510;
1475 109030 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail510;
1476 109030 : {
1477 109030 : tree res_op0;
1478 109030 : res_op0 = captures[0];
1479 109030 : tree res_op1;
1480 109030 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1481 109030 : tree _r;
1482 109030 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1483 109030 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 413, __FILE__, __LINE__, true);
1484 : return _r;
1485 : }
1486 : next_after_fail510:;
1487 : return NULL_TREE;
1488 : }
1489 :
1490 : tree
1491 18 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1492 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1493 : const enum tree_code ARG_UNUSED (cmp),
1494 : const enum tree_code ARG_UNUSED (ncmp))
1495 : {
1496 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1497 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1498 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1499 36 : && types_match (captures[0], captures[2])
1500 : )
1501 : {
1502 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail515;
1503 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail515;
1504 2 : {
1505 2 : tree res_op0;
1506 2 : {
1507 2 : tree _o1[2], _r1;
1508 2 : _o1[0] = captures[0];
1509 2 : _o1[1] = captures[2];
1510 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1511 2 : res_op0 = _r1;
1512 : }
1513 2 : tree res_op1;
1514 2 : res_op1 = captures[1];
1515 2 : tree _r;
1516 2 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1517 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 416, __FILE__, __LINE__, true);
1518 2 : return _r;
1519 : }
1520 : next_after_fail515:;
1521 : }
1522 : return NULL_TREE;
1523 : }
1524 :
1525 : tree
1526 0 : generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1527 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1528 : const enum tree_code ARG_UNUSED (inner),
1529 : const enum tree_code ARG_UNUSED (outer))
1530 : {
1531 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1532 0 : {
1533 0 : bool cst1 = integer_onep (captures[1]);
1534 0 : bool cst0 = integer_zerop (captures[1]);
1535 0 : bool innereq = inner == EQ_EXPR;
1536 0 : bool outereq = outer == EQ_EXPR;
1537 0 : if (innereq ? cst0 : cst1
1538 : )
1539 : {
1540 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail535;
1541 0 : {
1542 0 : tree _r;
1543 0 : _r = constant_boolean_node (!outereq, type);
1544 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1545 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1546 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1547 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1548 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
1549 0 : return _r;
1550 : }
1551 0 : next_after_fail535:;
1552 : }
1553 : else
1554 : {
1555 0 : if (innereq ? cst1 : cst0
1556 : )
1557 : {
1558 0 : {
1559 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1560 0 : tree ucst1 = build_one_cst (utype);
1561 0 : if (!outereq
1562 : )
1563 : {
1564 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail536;
1565 0 : {
1566 0 : tree res_op0;
1567 0 : {
1568 0 : tree _o1[1], _r1;
1569 0 : _o1[0] = captures[0];
1570 0 : if (TREE_TYPE (_o1[0]) != utype)
1571 : {
1572 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1573 : }
1574 : else
1575 : _r1 = _o1[0];
1576 0 : res_op0 = _r1;
1577 : }
1578 0 : tree res_op1;
1579 0 : res_op1 = ucst1;
1580 0 : tree _r;
1581 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1582 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1583 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1584 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 429, __FILE__, __LINE__, true);
1585 0 : return _r;
1586 : }
1587 0 : next_after_fail536:;
1588 : }
1589 : else
1590 : {
1591 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail537;
1592 0 : {
1593 0 : tree res_op0;
1594 0 : {
1595 0 : tree _o1[1], _r1;
1596 0 : _o1[0] = captures[0];
1597 0 : if (TREE_TYPE (_o1[0]) != utype)
1598 : {
1599 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1600 : }
1601 : else
1602 : _r1 = _o1[0];
1603 0 : res_op0 = _r1;
1604 : }
1605 0 : tree res_op1;
1606 0 : res_op1 = ucst1;
1607 0 : tree _r;
1608 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1609 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1610 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1611 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 430, __FILE__, __LINE__, true);
1612 0 : return _r;
1613 : }
1614 0 : next_after_fail537:;
1615 : }
1616 : }
1617 : }
1618 : else
1619 : {
1620 0 : {
1621 0 : tree value = build_int_cst (TREE_TYPE (captures[0]), !innereq);
1622 0 : if (outereq
1623 : )
1624 : {
1625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail538;
1626 0 : {
1627 0 : tree res_op0;
1628 0 : res_op0 = captures[0];
1629 0 : tree res_op1;
1630 0 : res_op1 = value;
1631 0 : tree _r;
1632 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1633 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1634 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1635 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 431, __FILE__, __LINE__, true);
1636 0 : return _r;
1637 : }
1638 0 : next_after_fail538:;
1639 : }
1640 : else
1641 : {
1642 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail539;
1643 0 : {
1644 0 : tree res_op0;
1645 0 : res_op0 = captures[0];
1646 0 : tree res_op1;
1647 0 : res_op1 = value;
1648 0 : tree _r;
1649 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1650 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1651 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1652 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 432, __FILE__, __LINE__, true);
1653 0 : return _r;
1654 : }
1655 0 : next_after_fail539:;
1656 : }
1657 : }
1658 : }
1659 : }
1660 : }
1661 : return NULL_TREE;
1662 : }
1663 :
1664 : tree
1665 374 : generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1666 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1667 : const enum tree_code ARG_UNUSED (op),
1668 : const combined_fn ARG_UNUSED (ctz))
1669 : {
1670 374 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1671 374 : {
1672 374 : tree type0 = TREE_TYPE (captures[1]);
1673 374 : int prec = TYPE_PRECISION (type0);
1674 374 : bool ok = true;
1675 374 : if (sanitize_flags_p (SANITIZE_BUILTIN)
1676 374 : && (!cfun
1677 64 : || (cfun->curr_properties & PROP_ssa) == 0))
1678 : ok = false;
1679 620 : if (ok && prec <= MAX_FIXED_MODE_SIZE
1680 : )
1681 : {
1682 310 : if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) >= prec
1683 : )
1684 : {
1685 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
1686 36 : {
1687 36 : tree _r;
1688 36 : _r = constant_boolean_node (op == EQ_EXPR ? false : true, type);
1689 36 : if (TREE_SIDE_EFFECTS (captures[1]))
1690 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1691 36 : if (TREE_SIDE_EFFECTS (captures[2]))
1692 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1693 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 449, __FILE__, __LINE__, true);
1694 310 : return _r;
1695 : }
1696 0 : next_after_fail556:;
1697 : }
1698 : else
1699 : {
1700 274 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail557;
1701 274 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail557;
1702 274 : {
1703 274 : tree res_op0;
1704 274 : {
1705 274 : tree _o1[2], _r1;
1706 274 : _o1[0] = captures[1];
1707 274 : _o1[1] = wide_int_to_tree (type0,
1708 274 : wi::mask (tree_to_uhwi (captures[2]) + 1,
1709 : false, prec));
1710 274 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1711 274 : res_op0 = _r1;
1712 : }
1713 274 : tree res_op1;
1714 274 : res_op1 = wide_int_to_tree (type0,
1715 274 : wi::shifted_mask (tree_to_uhwi (captures[2]), 1,
1716 : false, prec));
1717 274 : tree _r;
1718 274 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1719 274 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 450, __FILE__, __LINE__, true);
1720 274 : return _r;
1721 : }
1722 64 : next_after_fail557:;
1723 : }
1724 : }
1725 : }
1726 64 : return NULL_TREE;
1727 : }
1728 :
1729 : tree
1730 0 : generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1731 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1732 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1733 : {
1734 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1735 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail573;
1736 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail573;
1737 0 : {
1738 0 : tree _r;
1739 0 : _r = captures[1];
1740 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 466, __FILE__, __LINE__, true);
1741 : return _r;
1742 : }
1743 : next_after_fail573:;
1744 : return NULL_TREE;
1745 : }
1746 :
1747 : tree
1748 892 : generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1749 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1750 : const enum tree_code ARG_UNUSED (div))
1751 : {
1752 892 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1753 1784 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
1754 892 : && !integer_zerop (captures[0])
1755 1159 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1756 : )
1757 : {
1758 111 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail582;
1759 111 : {
1760 111 : tree _r;
1761 111 : _r = build_one_cst (type);
1762 111 : if (TREE_SIDE_EFFECTS (captures[0]))
1763 2 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1764 111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 473, __FILE__, __LINE__, true);
1765 111 : return _r;
1766 : }
1767 0 : next_after_fail582:;
1768 : }
1769 : return NULL_TREE;
1770 : }
1771 :
1772 : tree
1773 192 : generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1774 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1775 : const enum tree_code ARG_UNUSED (div))
1776 : {
1777 192 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1778 192 : if (ANY_INTEGRAL_TYPE_P (type)
1779 : )
1780 : {
1781 192 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1782 : )
1783 : {
1784 164 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail589;
1785 164 : {
1786 164 : tree _r;
1787 164 : _r = captures[1];
1788 164 : if (TREE_SIDE_EFFECTS (captures[2]))
1789 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1790 164 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 480, __FILE__, __LINE__, true);
1791 164 : return _r;
1792 : }
1793 0 : next_after_fail589:;
1794 : }
1795 : }
1796 : return NULL_TREE;
1797 : }
1798 :
1799 : tree
1800 213396 : generic_simplify_324 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1801 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1802 : const enum tree_code ARG_UNUSED (mod))
1803 : {
1804 213396 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1805 213396 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail593;
1806 213396 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail593;
1807 213396 : {
1808 213396 : tree _r;
1809 213396 : _r = build_zero_cst (type);
1810 213396 : if (TREE_SIDE_EFFECTS (captures[0]))
1811 47 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1812 213396 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 484, __FILE__, __LINE__, true);
1813 : return _r;
1814 : }
1815 : next_after_fail593:;
1816 : return NULL_TREE;
1817 : }
1818 :
1819 : tree
1820 6 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1821 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1822 : const combined_fn ARG_UNUSED (SIN),
1823 : const combined_fn ARG_UNUSED (TAN),
1824 : const combined_fn ARG_UNUSED (COS))
1825 : {
1826 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1827 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1828 : )
1829 : {
1830 6 : if (! HONOR_NANS (captures[1])
1831 6 : && ! HONOR_INFINITIES (captures[1])
1832 : )
1833 : {
1834 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail605;
1835 6 : {
1836 6 : tree res_op0;
1837 6 : res_op0 = captures[1];
1838 6 : tree _r;
1839 6 : _r = maybe_build_call_expr_loc (loc, COS, type, 1, res_op0);
1840 6 : if (!_r)
1841 0 : goto next_after_fail605;
1842 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 496, __FILE__, __LINE__, true);
1843 6 : return _r;
1844 : }
1845 : next_after_fail605:;
1846 : }
1847 : }
1848 : return NULL_TREE;
1849 : }
1850 :
1851 : tree
1852 0 : generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1853 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1854 : const enum tree_code ARG_UNUSED (cmp))
1855 : {
1856 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1857 0 : if (INTEGRAL_TYPE_P (type)
1858 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
1859 0 : && (TYPE_UNSIGNED (TREE_TYPE (captures[4])) || tree_int_cst_sgn (captures[4]) > 0)
1860 0 : && TYPE_PRECISION (type) <= BITS_PER_WORD
1861 0 : && wi::to_wide (captures[4]) == ~wi::to_wide (captures[6])
1862 : )
1863 : {
1864 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail613;
1865 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail613;
1866 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail613;
1867 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail613;
1868 0 : {
1869 0 : tree res_op0;
1870 0 : res_op0 = captures[5];
1871 0 : tree res_op1;
1872 0 : {
1873 0 : tree _o1[2], _r1;
1874 0 : {
1875 0 : tree _o2[1], _r2;
1876 0 : _o2[0] = captures[0];
1877 0 : if (TREE_TYPE (_o2[0]) != type)
1878 : {
1879 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
1880 : }
1881 : else
1882 : _r2 = _o2[0];
1883 0 : _o1[0] = _r2;
1884 : }
1885 0 : {
1886 0 : tree _o2[1], _r2;
1887 0 : _o2[0] = captures[4];
1888 0 : if (TREE_TYPE (_o2[0]) != type)
1889 : {
1890 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
1891 : }
1892 : else
1893 : _r2 = _o2[0];
1894 0 : _o1[1] = _r2;
1895 : }
1896 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1897 0 : res_op1 = _r1;
1898 : }
1899 0 : tree _r;
1900 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
1901 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 504, __FILE__, __LINE__, true);
1902 0 : return _r;
1903 : }
1904 : next_after_fail613:;
1905 : }
1906 : return NULL_TREE;
1907 : }
1908 :
1909 : tree
1910 0 : generic_simplify_352 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1911 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1912 : const enum tree_code ARG_UNUSED (op))
1913 : {
1914 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1915 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail629;
1916 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail629;
1917 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail629;
1918 0 : {
1919 0 : tree _r;
1920 0 : _r = captures[2];
1921 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 520, __FILE__, __LINE__, true);
1922 : return _r;
1923 : }
1924 : next_after_fail629:;
1925 : return NULL_TREE;
1926 : }
1927 :
1928 : tree
1929 0 : generic_simplify_357 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1930 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1931 : {
1932 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1933 0 : if (INTEGRAL_TYPE_P (type)
1934 : )
1935 : {
1936 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail634;
1937 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail634;
1938 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail634;
1939 0 : {
1940 0 : tree _r;
1941 0 : _r = captures[2];
1942 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 525, __FILE__, __LINE__, true);
1943 0 : return _r;
1944 : }
1945 : next_after_fail634:;
1946 : }
1947 : return NULL_TREE;
1948 : }
1949 :
1950 : tree
1951 0 : generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1952 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1953 : const enum tree_code ARG_UNUSED (cmp))
1954 : {
1955 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1956 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail642;
1957 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail642;
1958 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail642;
1959 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail642;
1960 0 : {
1961 0 : tree _r;
1962 0 : _r = captures[3];
1963 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 533, __FILE__, __LINE__, true);
1964 : return _r;
1965 : }
1966 : next_after_fail642:;
1967 : return NULL_TREE;
1968 : }
1969 :
1970 : tree
1971 1710 : generic_simplify_371 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1972 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1973 : {
1974 1710 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1975 1710 : if (INTEGRAL_TYPE_P (type)
1976 : )
1977 : {
1978 1710 : {
1979 1710 : tree itype = TREE_TYPE (captures[2]);
1980 1710 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail649;
1981 1710 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail649;
1982 1710 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail649;
1983 1710 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail649;
1984 1710 : {
1985 1710 : tree res_op0;
1986 1710 : {
1987 1710 : tree _o1[2], _r1;
1988 1710 : _o1[0] = captures[2];
1989 1710 : {
1990 1710 : tree _o2[1], _r2;
1991 1710 : _o2[0] = captures[0];
1992 1710 : if (TREE_TYPE (_o2[0]) != itype)
1993 : {
1994 1709 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
1995 : }
1996 : else
1997 : _r2 = _o2[0];
1998 1710 : _o1[1] = _r2;
1999 : }
2000 1710 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2001 1710 : res_op0 = _r1;
2002 : }
2003 1710 : tree _r;
2004 1710 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2005 1710 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 539, __FILE__, __LINE__, true);
2006 1710 : return _r;
2007 : }
2008 : next_after_fail649:;
2009 : }
2010 : }
2011 : return NULL_TREE;
2012 : }
2013 :
2014 : tree
2015 490614 : generic_simplify_380 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2016 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2017 : const enum tree_code ARG_UNUSED (op))
2018 : {
2019 490614 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2020 981227 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2021 981140 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
2022 306478 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
2023 981184 : && (CONSTANT_CLASS_P (captures[1]) || single_use (captures[0]))
2024 : )
2025 : {
2026 306407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail662;
2027 306407 : {
2028 306407 : tree res_op0;
2029 306407 : res_op0 = captures[1];
2030 306407 : tree res_op1;
2031 306407 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2032 306407 : tree _r;
2033 306407 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2034 306407 : if (TREE_SIDE_EFFECTS (captures[2]))
2035 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2036 306407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 551, __FILE__, __LINE__, true);
2037 306407 : return _r;
2038 : }
2039 0 : next_after_fail662:;
2040 : }
2041 : return NULL_TREE;
2042 : }
2043 :
2044 : tree
2045 64 : generic_simplify_387 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2046 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2047 : const enum tree_code ARG_UNUSED (minmax),
2048 : const enum tree_code ARG_UNUSED (cmp),
2049 : const enum tree_code ARG_UNUSED (comb))
2050 : {
2051 64 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2052 64 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail670;
2053 64 : {
2054 64 : if (! tree_invariant_p (captures[2])) goto next_after_fail670;
2055 64 : tree res_op0;
2056 64 : {
2057 64 : tree _o1[2], _r1;
2058 64 : _o1[0] = captures[0];
2059 64 : _o1[1] = unshare_expr (captures[2]);
2060 64 : _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
2061 64 : res_op0 = _r1;
2062 : }
2063 64 : tree res_op1;
2064 64 : {
2065 64 : tree _o1[2], _r1;
2066 64 : _o1[0] = captures[1];
2067 64 : _o1[1] = captures[2];
2068 64 : _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
2069 64 : res_op1 = _r1;
2070 : }
2071 64 : tree _r;
2072 64 : _r = fold_build2_loc (loc, comb, type, res_op0, res_op1);
2073 64 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 559, __FILE__, __LINE__, true);
2074 : return _r;
2075 : }
2076 : next_after_fail670:;
2077 : return NULL_TREE;
2078 : }
2079 :
2080 : tree
2081 0 : generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2082 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2083 : const enum tree_code ARG_UNUSED (cmp),
2084 : const enum tree_code ARG_UNUSED (out))
2085 : {
2086 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2087 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2088 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2089 : )
2090 : {
2091 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail713;
2092 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail713;
2093 0 : {
2094 0 : tree res_op0;
2095 0 : {
2096 0 : tree _o1[1], _r1;
2097 0 : _o1[0] = captures[0];
2098 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2099 0 : res_op0 = _r1;
2100 : }
2101 0 : tree res_op1;
2102 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2103 0 : tree _r;
2104 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2105 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
2106 0 : return _r;
2107 : }
2108 : next_after_fail713:;
2109 : }
2110 : return NULL_TREE;
2111 : }
2112 :
2113 : tree
2114 749730 : generic_simplify_405 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2115 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2116 : const enum tree_code ARG_UNUSED (cmp),
2117 : const enum tree_code ARG_UNUSED (icmp))
2118 : {
2119 749730 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2120 1496738 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2121 749730 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2122 330604 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > 1
2123 1830064 : && (wi::to_wide (captures[2])
2124 1741542 : == wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[0])), SIGNED) - 1)
2125 : )
2126 : {
2127 5171 : {
2128 5171 : tree stype = signed_type_for (TREE_TYPE (captures[0]));
2129 5171 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail727;
2130 5171 : {
2131 5171 : tree res_op0;
2132 5171 : {
2133 5171 : tree _o1[1], _r1;
2134 5171 : _o1[0] = captures[0];
2135 5171 : if (TREE_TYPE (_o1[0]) != stype)
2136 : {
2137 5171 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
2138 : }
2139 : else
2140 : _r1 = _o1[0];
2141 5171 : res_op0 = _r1;
2142 : }
2143 5171 : tree res_op1;
2144 5171 : res_op1 = build_int_cst (stype, 0);
2145 5171 : tree _r;
2146 5171 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
2147 5171 : if (TREE_SIDE_EFFECTS (captures[1]))
2148 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2149 5171 : if (TREE_SIDE_EFFECTS (captures[2]))
2150 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2151 5171 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 599, __FILE__, __LINE__, true);
2152 5171 : return _r;
2153 : }
2154 0 : next_after_fail727:;
2155 : }
2156 : }
2157 : return NULL_TREE;
2158 : }
2159 :
2160 : tree
2161 0 : generic_simplify_411 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2162 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2163 : const enum tree_code ARG_UNUSED (cmp),
2164 : const enum tree_code ARG_UNUSED (out))
2165 : {
2166 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2167 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2168 : )
2169 : {
2170 0 : {
2171 0 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2172 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail733;
2173 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail733;
2174 0 : {
2175 0 : tree res_op0;
2176 0 : {
2177 0 : tree _o1[1], _r1;
2178 0 : {
2179 0 : tree _o2[2], _r2;
2180 0 : _o2[0] = captures[2];
2181 0 : _o2[1] = captures[1];
2182 0 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2183 0 : if (!_r2)
2184 0 : goto next_after_fail733;
2185 0 : _o1[0] = _r2;
2186 : }
2187 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2188 0 : res_op0 = _r1;
2189 : }
2190 0 : tree res_op1;
2191 0 : res_op1 = build_zero_cst (t);
2192 0 : tree _r;
2193 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2194 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
2195 0 : return _r;
2196 : }
2197 : next_after_fail733:;
2198 : }
2199 : }
2200 : return NULL_TREE;
2201 : }
2202 :
2203 : tree
2204 11 : generic_simplify_418 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2205 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2206 : {
2207 11 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2208 11 : if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
2209 : )
2210 : {
2211 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
2212 11 : {
2213 11 : tree res_op0;
2214 11 : {
2215 11 : tree _o1[1], _r1;
2216 11 : _o1[0] = captures[0];
2217 11 : if (TREE_TYPE (_o1[0]) != type)
2218 : {
2219 8 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
2220 : }
2221 : else
2222 : _r1 = _o1[0];
2223 11 : res_op0 = _r1;
2224 : }
2225 11 : tree res_op1;
2226 11 : {
2227 11 : tree _o1[2], _r1;
2228 11 : _o1[0] = build_minus_one_cst (type);
2229 11 : _o1[1] = captures[1];
2230 11 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2231 11 : res_op1 = _r1;
2232 : }
2233 11 : tree _r;
2234 11 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2235 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 612, __FILE__, __LINE__, true);
2236 11 : return _r;
2237 : }
2238 0 : next_after_fail744:;
2239 : }
2240 : return NULL_TREE;
2241 : }
2242 :
2243 : tree
2244 267 : generic_simplify_427 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2245 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2246 : const combined_fn ARG_UNUSED (bswap))
2247 : {
2248 267 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2249 267 : if (BITS_PER_UNIT == 8
2250 : && CHAR_TYPE_SIZE == 8
2251 267 : && tree_fits_uhwi_p (captures[2])
2252 : )
2253 : {
2254 267 : {
2255 267 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2256 267 : unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[2]);
2257 267 : tree st = TYPE_PRECISION (type) > prec ? TREE_TYPE (captures[0]) : type;
2258 267 : if (TYPE_PRECISION (type) > prec
2259 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2260 0 : && TYPE_UNSIGNED (type)
2261 267 : && bits < prec && bits + 8 >= prec
2262 : )
2263 : {
2264 0 : {
2265 0 : tree nst = build_int_cst (integer_type_node, prec - 8);
2266 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail757;
2267 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail757;
2268 0 : {
2269 0 : tree res_op0;
2270 0 : {
2271 0 : tree _o1[1], _r1;
2272 0 : {
2273 0 : tree _o2[2], _r2;
2274 0 : {
2275 0 : tree _o3[1], _r3;
2276 0 : _o3[0] = captures[1];
2277 0 : if (TREE_TYPE (_o3[0]) != st)
2278 : {
2279 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, st, _o3[0]);
2280 : }
2281 : else
2282 : _r3 = _o3[0];
2283 0 : _o2[0] = _r3;
2284 : }
2285 0 : _o2[1] = nst;
2286 0 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, st, _o2[0], _o2[1]);
2287 0 : _o1[0] = _r2;
2288 : }
2289 0 : if (TREE_TYPE (_o1[0]) != type)
2290 : {
2291 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2292 : }
2293 : else
2294 : _r1 = _o1[0];
2295 0 : res_op0 = _r1;
2296 : }
2297 0 : tree res_op1;
2298 0 : res_op1 = captures[2];
2299 0 : tree _r;
2300 0 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
2301 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 623, __FILE__, __LINE__, true);
2302 0 : return _r;
2303 : }
2304 : next_after_fail757:;
2305 : }
2306 : }
2307 : else
2308 : {
2309 267 : if (bits + 8 == prec
2310 : )
2311 : {
2312 46 : if (TYPE_UNSIGNED (st)
2313 : )
2314 : {
2315 36 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail758;
2316 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail758;
2317 36 : {
2318 36 : tree res_op0;
2319 36 : {
2320 36 : tree _o1[1], _r1;
2321 36 : _o1[0] = captures[1];
2322 36 : if (TREE_TYPE (_o1[0]) != unsigned_char_type_node)
2323 : {
2324 36 : _r1 = fold_build1_loc (loc, NOP_EXPR, unsigned_char_type_node, _o1[0]);
2325 : }
2326 : else
2327 : _r1 = _o1[0];
2328 36 : res_op0 = _r1;
2329 : }
2330 36 : tree _r;
2331 36 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2332 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 624, __FILE__, __LINE__, true);
2333 36 : return _r;
2334 : }
2335 : next_after_fail758:;
2336 : }
2337 : else
2338 : {
2339 10 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail759;
2340 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail759;
2341 10 : {
2342 10 : tree res_op0;
2343 10 : {
2344 10 : tree _o1[1], _r1;
2345 10 : _o1[0] = captures[1];
2346 10 : if (TREE_TYPE (_o1[0]) != signed_char_type_node)
2347 : {
2348 10 : _r1 = fold_build1_loc (loc, NOP_EXPR, signed_char_type_node, _o1[0]);
2349 : }
2350 : else
2351 : _r1 = _o1[0];
2352 10 : res_op0 = _r1;
2353 : }
2354 10 : tree _r;
2355 10 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2356 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 625, __FILE__, __LINE__, true);
2357 10 : return _r;
2358 : }
2359 : next_after_fail759:;
2360 : }
2361 : }
2362 : else
2363 : {
2364 221 : if (bits < prec && bits + 8 > prec
2365 : )
2366 : {
2367 57 : {
2368 57 : tree nst = build_int_cst (integer_type_node, bits & 7);
2369 57 : tree bt = TYPE_UNSIGNED (st) ? unsigned_char_type_node
2370 57 : : signed_char_type_node;
2371 57 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail760;
2372 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail760;
2373 57 : {
2374 57 : tree res_op0;
2375 57 : {
2376 57 : tree _o1[2], _r1;
2377 57 : {
2378 57 : tree _o2[1], _r2;
2379 57 : _o2[0] = captures[1];
2380 57 : if (TREE_TYPE (_o2[0]) != bt)
2381 : {
2382 57 : _r2 = fold_build1_loc (loc, NOP_EXPR, bt, _o2[0]);
2383 : }
2384 : else
2385 : _r2 = _o2[0];
2386 57 : _o1[0] = _r2;
2387 : }
2388 57 : _o1[1] = nst;
2389 57 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, bt, _o1[0], _o1[1]);
2390 57 : res_op0 = _r1;
2391 : }
2392 57 : tree _r;
2393 57 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2394 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 626, __FILE__, __LINE__, true);
2395 57 : return _r;
2396 : }
2397 : next_after_fail760:;
2398 : }
2399 : }
2400 : }
2401 : }
2402 : }
2403 : }
2404 : return NULL_TREE;
2405 : }
2406 :
2407 : tree
2408 0 : generic_simplify_441 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2409 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2410 : const combined_fn ARG_UNUSED (pow))
2411 : {
2412 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2413 0 : if (flag_unsafe_math_optimizations
2414 : )
2415 : {
2416 0 : if (! HONOR_INFINITIES (type)
2417 0 : && ! flag_trapping_math
2418 0 : && ! flag_errno_math
2419 : )
2420 : {
2421 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail788;
2422 0 : {
2423 0 : tree res_op0;
2424 0 : res_op0 = captures[2];
2425 0 : tree res_op1;
2426 0 : {
2427 0 : tree _o1[1], _r1;
2428 0 : _o1[0] = captures[3];
2429 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2430 0 : res_op1 = _r1;
2431 : }
2432 0 : tree _r;
2433 0 : _r = maybe_build_call_expr_loc (loc, pow, type, 2, res_op0, res_op1);
2434 0 : if (!_r)
2435 0 : goto next_after_fail788;
2436 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2437 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2438 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 642, __FILE__, __LINE__, true);
2439 0 : return _r;
2440 : }
2441 : next_after_fail788:;
2442 : }
2443 : }
2444 : return NULL_TREE;
2445 : }
2446 :
2447 : tree
2448 0 : generic_simplify_446 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2449 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2450 : const combined_fn ARG_UNUSED (copysigns),
2451 : const combined_fn ARG_UNUSED (hypots))
2452 : {
2453 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2454 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail793;
2455 0 : {
2456 0 : tree res_op0;
2457 0 : res_op0 = captures[0];
2458 0 : tree res_op1;
2459 0 : res_op1 = captures[1];
2460 0 : tree _r;
2461 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2462 0 : if (!_r)
2463 0 : goto next_after_fail793;
2464 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2465 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2466 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 647, __FILE__, __LINE__, true);
2467 : return _r;
2468 : }
2469 : next_after_fail793:;
2470 : return NULL_TREE;
2471 : }
2472 :
2473 : tree
2474 21 : generic_simplify_451 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2475 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2476 : {
2477 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2478 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2479 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2480 : )
2481 : {
2482 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail798;
2483 0 : {
2484 0 : tree res_op0;
2485 0 : res_op0 = captures[0];
2486 0 : tree res_op1;
2487 0 : res_op1 = captures[1];
2488 0 : tree _r;
2489 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2490 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 652, __FILE__, __LINE__, true);
2491 0 : return _r;
2492 : }
2493 0 : next_after_fail798:;
2494 : }
2495 : return NULL_TREE;
2496 : }
2497 :
2498 : tree
2499 0 : generic_simplify_456 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2500 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2501 : {
2502 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2503 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail803;
2504 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail803;
2505 0 : {
2506 0 : tree res_op0;
2507 0 : res_op0 = captures[0];
2508 0 : tree res_op1;
2509 0 : {
2510 0 : tree _o1[1], _r1;
2511 0 : _o1[0] = captures[5];
2512 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2513 0 : res_op1 = _r1;
2514 : }
2515 0 : tree _r;
2516 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 656, __FILE__, __LINE__, true);
2518 : return _r;
2519 : }
2520 : next_after_fail803:;
2521 : return NULL_TREE;
2522 : }
2523 :
2524 : tree
2525 0 : generic_simplify_462 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2526 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2527 : {
2528 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2529 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail809;
2530 0 : {
2531 0 : tree res_op0;
2532 0 : res_op0 = captures[0];
2533 0 : tree res_op1;
2534 0 : res_op1 = captures[1];
2535 0 : tree _r;
2536 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2537 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 662, __FILE__, __LINE__, true);
2538 : return _r;
2539 : }
2540 0 : next_after_fail809:;
2541 0 : return NULL_TREE;
2542 : }
2543 :
2544 : tree
2545 13 : generic_simplify_466 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2546 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2547 : {
2548 13 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2549 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail813;
2550 13 : {
2551 13 : tree _r;
2552 13 : _r = build_zero_cst (type);
2553 13 : if (TREE_SIDE_EFFECTS (captures[0]))
2554 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2555 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 666, __FILE__, __LINE__, true);
2556 : return _r;
2557 : }
2558 0 : next_after_fail813:;
2559 0 : return NULL_TREE;
2560 : }
2561 :
2562 : tree
2563 8 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2564 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2565 : const enum tree_code ARG_UNUSED (eqne))
2566 : {
2567 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2568 8 : if (eqne == EQ_EXPR
2569 : )
2570 : {
2571 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail819;
2572 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail819;
2573 4 : {
2574 4 : tree _r;
2575 4 : _r = constant_boolean_node (false, type);
2576 4 : if (TREE_SIDE_EFFECTS (captures[2]))
2577 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2578 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2579 4 : return _r;
2580 : }
2581 : next_after_fail819:;
2582 : }
2583 : else
2584 : {
2585 4 : if (eqne == NE_EXPR
2586 : )
2587 : {
2588 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail820;
2589 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail820;
2590 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail820;
2591 4 : {
2592 4 : tree _r;
2593 4 : _r = captures[0];
2594 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2595 4 : return _r;
2596 : }
2597 : next_after_fail820:;
2598 : }
2599 : }
2600 : return NULL_TREE;
2601 : }
2602 :
2603 : tree
2604 4 : generic_simplify_482 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2605 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2606 : {
2607 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2608 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail863;
2609 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail863;
2610 4 : {
2611 4 : tree _r;
2612 4 : _r = captures[2];
2613 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2614 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2615 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
2616 : return _r;
2617 : }
2618 : next_after_fail863:;
2619 : return NULL_TREE;
2620 : }
2621 :
2622 : tree
2623 30765 : generic_simplify_486 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2624 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2625 : const enum tree_code ARG_UNUSED (shift))
2626 : {
2627 30765 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2628 30765 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2629 30765 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2630 30765 : && tree_fits_uhwi_p (captures[4])
2631 30765 : && tree_to_uhwi (captures[4]) > 0
2632 61529 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2633 : )
2634 : {
2635 30764 : {
2636 30764 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2637 30764 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2638 30764 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2639 30764 : tree shift_type = TREE_TYPE (captures[2]);
2640 30764 : unsigned int prec;
2641 30764 : if (shift == LSHIFT_EXPR)
2642 5306 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2643 25458 : else if (shift == RSHIFT_EXPR
2644 25458 : && type_has_mode_precision_p (shift_type))
2645 : {
2646 25458 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2647 25458 : tree arg00 = captures[3];
2648 25458 : if (captures[2] != captures[3]
2649 25458 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2650 : {
2651 25200 : tree inner_type = TREE_TYPE (captures[3]);
2652 25200 : if (type_has_mode_precision_p (inner_type)
2653 25200 : && TYPE_PRECISION (inner_type) < prec)
2654 : {
2655 270 : prec = TYPE_PRECISION (inner_type);
2656 270 : if (shiftc < prec)
2657 269 : shift_type = inner_type;
2658 : }
2659 : }
2660 25458 : zerobits = HOST_WIDE_INT_M1U;
2661 25458 : if (shiftc < prec)
2662 : {
2663 25457 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2664 25457 : zerobits <<= prec - shiftc;
2665 : }
2666 25458 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2667 25458 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2668 : {
2669 824 : if ((mask & zerobits) == 0)
2670 817 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2671 : else
2672 : zerobits = 0;
2673 : }
2674 : }
2675 30757 : if ((mask & zerobits) == mask
2676 : )
2677 : {
2678 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail867;
2679 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail867;
2680 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail867;
2681 1 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail867;
2682 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail867;
2683 1 : {
2684 1 : tree _r;
2685 1 : _r = build_int_cst (type, 0);
2686 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 691, __FILE__, __LINE__, true);
2687 1 : return _r;
2688 : }
2689 : next_after_fail867:;
2690 : }
2691 : else
2692 : {
2693 30763 : {
2694 30763 : newmask = mask | zerobits;
2695 30763 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2696 : )
2697 : {
2698 : {
2699 7144 : for (prec = BITS_PER_UNIT;
2700 10916 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2701 8796 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2702 : break;
2703 3772 : if (prec < HOST_BITS_PER_WIDE_INT
2704 2120 : || newmask == HOST_WIDE_INT_M1U
2705 : )
2706 : {
2707 2058 : {
2708 2058 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2709 2058 : if (!tree_int_cst_equal (newmaskt, captures[5])
2710 : )
2711 : {
2712 2058 : if (shift_type != TREE_TYPE (captures[2])
2713 : )
2714 : {
2715 96 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail868;
2716 96 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail868;
2717 96 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail868;
2718 96 : {
2719 96 : tree res_op0;
2720 96 : {
2721 96 : tree _o1[1], _r1;
2722 96 : {
2723 96 : tree _o2[2], _r2;
2724 96 : {
2725 96 : tree _o3[1], _r3;
2726 96 : _o3[0] = captures[2];
2727 96 : if (TREE_TYPE (_o3[0]) != shift_type)
2728 : {
2729 96 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2730 : }
2731 : else
2732 : _r3 = _o3[0];
2733 96 : _o2[0] = _r3;
2734 : }
2735 96 : _o2[1] = captures[4];
2736 96 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2737 96 : _o1[0] = _r2;
2738 : }
2739 96 : if (TREE_TYPE (_o1[0]) != type)
2740 : {
2741 96 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2742 : }
2743 : else
2744 : _r1 = _o1[0];
2745 96 : res_op0 = _r1;
2746 : }
2747 96 : tree res_op1;
2748 96 : res_op1 = newmaskt;
2749 96 : tree _r;
2750 96 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2751 96 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 692, __FILE__, __LINE__, true);
2752 96 : return _r;
2753 : }
2754 : next_after_fail868:;
2755 : }
2756 : else
2757 : {
2758 1962 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail869;
2759 883 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail869;
2760 883 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail869;
2761 883 : {
2762 883 : tree res_op0;
2763 883 : res_op0 = captures[0];
2764 883 : tree res_op1;
2765 883 : res_op1 = newmaskt;
2766 883 : tree _r;
2767 883 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2768 883 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
2769 883 : return _r;
2770 : }
2771 : next_after_fail869:;
2772 : }
2773 : }
2774 : }
2775 : }
2776 : }
2777 : }
2778 : }
2779 : }
2780 : }
2781 : }
2782 : return NULL_TREE;
2783 : }
2784 :
2785 : tree
2786 0 : generic_simplify_494 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2787 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2788 : {
2789 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2790 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail884;
2791 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail884;
2792 0 : {
2793 0 : tree _r;
2794 0 : _r = captures[1];
2795 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 698, __FILE__, __LINE__, true);
2796 : return _r;
2797 : }
2798 : next_after_fail884:;
2799 : return NULL_TREE;
2800 : }
2801 :
2802 : tree
2803 17 : generic_simplify_500 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2804 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2805 : {
2806 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2807 17 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail891;
2808 17 : {
2809 17 : tree res_op0;
2810 17 : res_op0 = captures[0];
2811 17 : tree res_op1;
2812 17 : res_op1 = captures[1];
2813 17 : tree _r;
2814 17 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2815 17 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 705, __FILE__, __LINE__, true);
2816 : return _r;
2817 : }
2818 0 : next_after_fail891:;
2819 0 : return NULL_TREE;
2820 : }
2821 :
2822 : tree
2823 4 : generic_simplify_506 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2824 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2825 : {
2826 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2827 4 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2828 7 : && (element_precision (TREE_TYPE (captures[2]))
2829 3 : <= element_precision (TREE_TYPE (captures[3]))
2830 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2831 : )
2832 : {
2833 3 : {
2834 3 : tree shift_type = TREE_TYPE (captures[2]);
2835 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail897;
2836 3 : {
2837 3 : tree res_op0;
2838 3 : {
2839 3 : tree _o1[2], _r1;
2840 3 : {
2841 3 : tree _o2[1], _r2;
2842 3 : _o2[0] = captures[3];
2843 3 : if (TREE_TYPE (_o2[0]) != shift_type)
2844 : {
2845 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
2846 : }
2847 : else
2848 : _r2 = _o2[0];
2849 3 : _o1[0] = _r2;
2850 : }
2851 3 : _o1[1] = captures[4];
2852 3 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2853 3 : res_op0 = _r1;
2854 : }
2855 3 : tree _r;
2856 3 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2857 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 707, __FILE__, __LINE__, true);
2858 3 : return _r;
2859 : }
2860 0 : next_after_fail897:;
2861 : }
2862 : }
2863 : return NULL_TREE;
2864 : }
2865 :
2866 : tree
2867 1847 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2868 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2869 : {
2870 1847 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2871 1847 : if (! TYPE_UNSIGNED (type)
2872 1433 : && ! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2873 1847 : && single_use (captures[0])
2874 : )
2875 : {
2876 1433 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
2877 1433 : {
2878 1433 : tree res_op0;
2879 1433 : res_op0 = captures[1];
2880 1433 : tree res_op1;
2881 1433 : {
2882 1433 : tree _o1[1], _r1;
2883 1433 : _o1[0] = captures[2];
2884 1433 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2885 1433 : res_op1 = _r1;
2886 : }
2887 1433 : tree _r;
2888 1433 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2889 1433 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
2890 1433 : return _r;
2891 : }
2892 0 : next_after_fail907:;
2893 : }
2894 : return NULL_TREE;
2895 : }
2896 :
2897 : tree
2898 0 : generic_simplify_524 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2899 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2900 : const enum tree_code ARG_UNUSED (minmax))
2901 : {
2902 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2903 0 : if (INTEGRAL_TYPE_P (type)
2904 0 : && TYPE_OVERFLOW_UNDEFINED (type)
2905 0 : && !TYPE_OVERFLOW_SANITIZED (type)
2906 : )
2907 : {
2908 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail917;
2909 0 : {
2910 0 : tree res_op0;
2911 0 : {
2912 0 : tree _o1[2], _r1;
2913 0 : _o1[0] = captures[1];
2914 0 : _o1[1] = captures[4];
2915 0 : _r1 = fold_build2_loc (loc, minmax, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2916 0 : res_op0 = _r1;
2917 : }
2918 0 : tree res_op1;
2919 0 : res_op1 = captures[2];
2920 0 : tree _r;
2921 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2922 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 728, __FILE__, __LINE__, true);
2923 0 : return _r;
2924 : }
2925 0 : next_after_fail917:;
2926 : }
2927 : return NULL_TREE;
2928 : }
2929 :
2930 : tree
2931 2 : generic_simplify_533 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2932 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2933 : {
2934 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2935 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail940;
2936 2 : {
2937 2 : tree _r;
2938 2 : _r = captures[1];
2939 2 : if (TREE_SIDE_EFFECTS (captures[0]))
2940 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2941 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
2942 : return _r;
2943 : }
2944 0 : next_after_fail940:;
2945 0 : return NULL_TREE;
2946 : }
2947 :
2948 : tree
2949 0 : generic_simplify_537 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2950 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2951 : const combined_fn ARG_UNUSED (FMIN_ALL))
2952 : {
2953 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2954 0 : if (flag_finite_math_only
2955 : )
2956 : {
2957 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail944;
2958 0 : {
2959 0 : tree res_op0;
2960 0 : res_op0 = captures[0];
2961 0 : tree res_op1;
2962 0 : res_op1 = captures[1];
2963 0 : tree _r;
2964 0 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
2965 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
2966 0 : return _r;
2967 : }
2968 0 : next_after_fail944:;
2969 : }
2970 : return NULL_TREE;
2971 : }
2972 :
2973 : tree
2974 0 : generic_simplify_543 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2975 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2976 : const enum tree_code ARG_UNUSED (cmp))
2977 : {
2978 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2979 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail950;
2980 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail950;
2981 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail950;
2982 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail950;
2983 0 : {
2984 0 : tree _r;
2985 0 : _r = captures[0];
2986 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 536, __FILE__, __LINE__, true);
2987 : return _r;
2988 : }
2989 : next_after_fail950:;
2990 : return NULL_TREE;
2991 : }
2992 :
2993 : tree
2994 0 : generic_simplify_553 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2995 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2996 : const combined_fn ARG_UNUSED (cond_op))
2997 : {
2998 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2999 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail960;
3000 0 : {
3001 0 : tree res_op0;
3002 0 : {
3003 0 : tree _o1[2], _r1;
3004 0 : _o1[0] = captures[2];
3005 0 : _o1[1] = captures[0];
3006 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3007 0 : res_op0 = _r1;
3008 : }
3009 0 : tree res_op1;
3010 0 : res_op1 = captures[3];
3011 0 : tree res_op2;
3012 0 : res_op2 = captures[4];
3013 0 : tree res_op3;
3014 0 : res_op3 = captures[5];
3015 0 : tree res_op4;
3016 0 : res_op4 = captures[6];
3017 0 : tree _r;
3018 0 : _r = maybe_build_call_expr_loc (loc, cond_op, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3019 0 : if (!_r)
3020 0 : goto next_after_fail960;
3021 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 754, __FILE__, __LINE__, true);
3022 : return _r;
3023 : }
3024 : next_after_fail960:;
3025 : return NULL_TREE;
3026 : }
3027 :
3028 : tree
3029 0 : generic_simplify_559 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3030 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3031 : const combined_fn ARG_UNUSED (bswap))
3032 : {
3033 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3034 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail969;
3035 0 : {
3036 0 : tree res_op0;
3037 0 : res_op0 = captures[0];
3038 0 : tree _r;
3039 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
3040 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 763, __FILE__, __LINE__, true);
3041 : return _r;
3042 : }
3043 0 : next_after_fail969:;
3044 0 : return NULL_TREE;
3045 : }
3046 :
3047 : tree
3048 0 : generic_simplify_566 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3049 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3050 : const combined_fn ARG_UNUSED (logs))
3051 : {
3052 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3053 0 : if (flag_unsafe_math_optimizations
3054 : )
3055 : {
3056 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3057 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
3058 0 : && ! flag_trapping_math
3059 0 : && ! flag_errno_math
3060 : )
3061 : {
3062 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail976;
3063 0 : {
3064 0 : tree res_op0;
3065 0 : {
3066 0 : tree _o1[1], _r1;
3067 0 : _o1[0] = captures[2];
3068 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
3069 0 : if (!_r1)
3070 0 : goto next_after_fail976;
3071 0 : res_op0 = _r1;
3072 : }
3073 0 : tree _r;
3074 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
3075 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3076 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3077 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 770, __FILE__, __LINE__, true);
3078 0 : return _r;
3079 : }
3080 : next_after_fail976:;
3081 : }
3082 : }
3083 : return NULL_TREE;
3084 : }
3085 :
3086 : tree
3087 0 : generic_simplify_575 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3088 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3089 : const combined_fn ARG_UNUSED (froms),
3090 : const combined_fn ARG_UNUSED (tos))
3091 : {
3092 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3093 0 : if (optimize && canonicalize_math_p ()
3094 : )
3095 : {
3096 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail985;
3097 0 : {
3098 0 : tree res_op0;
3099 0 : {
3100 0 : tree _o1[1], _r1;
3101 0 : _o1[0] = captures[0];
3102 0 : _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
3103 0 : if (!_r1)
3104 0 : goto next_after_fail985;
3105 0 : res_op0 = _r1;
3106 : }
3107 0 : tree _r;
3108 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3109 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 779, __FILE__, __LINE__, true);
3110 0 : return _r;
3111 : }
3112 : next_after_fail985:;
3113 : }
3114 : return NULL_TREE;
3115 : }
3116 :
3117 : tree
3118 0 : generic_simplify_584 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3119 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3120 : const combined_fn ARG_UNUSED (ifn),
3121 : const combined_fn ARG_UNUSED (lfn),
3122 : const combined_fn ARG_UNUSED (llfn))
3123 : {
3124 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3125 0 : if (canonicalize_math_p ()
3126 : )
3127 : {
3128 0 : if (TYPE_PRECISION (long_long_integer_type_node)
3129 0 : == TYPE_PRECISION (long_integer_type_node)
3130 : )
3131 : {
3132 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail994;
3133 0 : {
3134 0 : tree res_op0;
3135 0 : res_op0 = captures[0];
3136 0 : tree _r;
3137 0 : _r = maybe_build_call_expr_loc (loc, lfn, type, 1, res_op0);
3138 0 : if (!_r)
3139 0 : goto next_after_fail994;
3140 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
3141 0 : return _r;
3142 : }
3143 : next_after_fail994:;
3144 : }
3145 : }
3146 : return NULL_TREE;
3147 : }
3148 :
3149 : tree
3150 0 : generic_simplify_595 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3151 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3152 : {
3153 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3154 0 : if (canonicalize_math_after_vectorization_p ()
3155 : )
3156 : {
3157 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1005;
3158 : {
3159 : tree res_op0;
3160 : res_op0 = captures[0];
3161 : tree res_op1;
3162 : res_op1 = captures[1];
3163 : tree res_op2;
3164 : res_op2 = captures[2];
3165 : tree _r;
3166 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3167 : if (!_r)
3168 : goto next_after_fail1005;
3169 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 799, __FILE__, __LINE__, true);
3170 : return _r;
3171 : }
3172 0 : next_after_fail1005:;
3173 : }
3174 0 : return NULL_TREE;
3175 : }
3176 :
3177 : tree
3178 0 : generic_simplify_604 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3179 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3180 : {
3181 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3182 0 : if (canonicalize_math_after_vectorization_p ()
3183 : )
3184 : {
3185 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1014;
3186 : {
3187 : tree res_op0;
3188 : res_op0 = captures[0];
3189 : tree res_op1;
3190 : res_op1 = captures[1];
3191 : tree res_op2;
3192 : res_op2 = captures[2];
3193 : tree res_op3;
3194 : res_op3 = captures[3];
3195 : tree res_op4;
3196 : res_op4 = captures[4];
3197 : tree _r;
3198 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3199 : if (!_r)
3200 : goto next_after_fail1014;
3201 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 808, __FILE__, __LINE__, true);
3202 : return _r;
3203 : }
3204 0 : next_after_fail1014:;
3205 : }
3206 0 : return NULL_TREE;
3207 : }
3208 :
3209 : tree
3210 0 : generic_simplify_614 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3211 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3212 : const enum tree_code ARG_UNUSED (rot),
3213 : const combined_fn ARG_UNUSED (popcount))
3214 : {
3215 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3216 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3217 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3218 0 : && (
3219 :
3220 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3221 : )
3222 : {
3223 0 : {
3224 0 : tree type0 = TREE_TYPE (captures[0]);
3225 0 : tree type1 = TREE_TYPE (captures[1]);
3226 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3227 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3228 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3229 : )
3230 : {
3231 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1024;
3232 0 : {
3233 0 : tree res_op0;
3234 0 : {
3235 0 : tree _o1[1], _r1;
3236 0 : _o1[0] = captures[2];
3237 0 : if (TREE_TYPE (_o1[0]) != type0)
3238 : {
3239 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3240 : }
3241 : else
3242 : _r1 = _o1[0];
3243 0 : res_op0 = _r1;
3244 : }
3245 0 : tree _r;
3246 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3247 0 : if (!_r)
3248 0 : goto next_after_fail1024;
3249 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3250 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3251 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 812, __FILE__, __LINE__, true);
3252 0 : return _r;
3253 : }
3254 : next_after_fail1024:;
3255 : }
3256 : }
3257 : }
3258 : return NULL_TREE;
3259 : }
3260 :
3261 : tree
3262 0 : generic_simplify_624 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3263 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3264 : {
3265 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3266 0 : {
3267 0 : bool can_fold = false;
3268 0 : unsigned HOST_WIDE_INT nelts;
3269 0 : vec_perm_builder builder;
3270 0 : if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
3271 0 : && tree_to_vec_perm_builder (&builder, captures[2]))
3272 : {
3273 0 : vec_perm_indices sel0 (builder, 2, VECTOR_CST_NELTS (captures[2]));
3274 0 : unsigned int sel0_first_idx = sel0[0].to_constant ();
3275 0 : unsigned int elt_size = vector_element_bits (TREE_TYPE (captures[0]));
3276 0 : unsigned int ia_size = tree_to_uhwi (TYPE_SIZE (type))
3277 0 : - elt_size * sel0_first_idx;
3278 0 : unsigned int ib_start;
3279 0 : if (sel0.series_p (0, 1, sel0_first_idx, 1)
3280 0 : && multiple_p (ia_size, vector_element_bits (type), &ib_start)
3281 0 : && tree_to_vec_perm_builder (&builder, captures[5]))
3282 : {
3283 0 : vec_perm_indices sel1 (builder, 2, VECTOR_CST_NELTS (captures[5]));
3284 0 : can_fold = sel1.series_p (ib_start, 1, nelts + ib_start, 1);
3285 0 : if (can_fold)
3286 0 : for (unsigned int i = 0; i < ib_start; i++)
3287 0 : if (sel1[i].to_constant () != i)
3288 : {
3289 : can_fold = false;
3290 : break;
3291 : }
3292 0 : }
3293 0 : }
3294 0 : if (can_fold
3295 : )
3296 : {
3297 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1036;
3298 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1036;
3299 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1036;
3300 0 : {
3301 0 : tree res_op0;
3302 0 : {
3303 0 : tree _o1[3], _r1;
3304 0 : _o1[0] = captures[0];
3305 0 : _o1[1] = captures[4];
3306 0 : _o1[2] = captures[2];
3307 0 : _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
3308 0 : res_op0 = _r1;
3309 : }
3310 0 : tree _r;
3311 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3312 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3313 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3314 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3315 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3316 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 823, __FILE__, __LINE__, true);
3317 0 : return _r;
3318 : }
3319 0 : next_after_fail1036:;
3320 : }
3321 0 : }
3322 0 : return NULL_TREE;
3323 : }
3324 :
3325 : tree
3326 3678 : generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3327 : {
3328 3678 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3329 3678 : switch (TREE_CODE (_p0))
3330 : {
3331 2 : case PAREN_EXPR:
3332 2 : {
3333 2 : tree _q20 = TREE_OPERAND (_p0, 0);
3334 2 : {
3335 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3336 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1130;
3337 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1130;
3338 2 : {
3339 2 : tree _r;
3340 2 : _r = captures[0];
3341 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
3342 2 : return _r;
3343 : }
3344 0 : next_after_fail1130:;
3345 : }
3346 0 : break;
3347 : }
3348 3676 : default:;
3349 : }
3350 3676 : if (CONSTANT_CLASS_P (_p0))
3351 : {
3352 1 : {
3353 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3354 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1131;
3355 1 : {
3356 1 : tree _r;
3357 1 : _r = captures[0];
3358 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
3359 1 : return _r;
3360 : }
3361 0 : next_after_fail1131:;
3362 : }
3363 : }
3364 : return NULL_TREE;
3365 : }
3366 :
3367 : tree
3368 1654530 : generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3369 : {
3370 1654530 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3371 1654530 : switch (TREE_CODE (_p0))
3372 : {
3373 9611 : case COMPLEX_EXPR:
3374 9611 : {
3375 9611 : tree _q20 = TREE_OPERAND (_p0, 0);
3376 9611 : tree _q21 = TREE_OPERAND (_p0, 1);
3377 9611 : {
3378 9611 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3379 9611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1132;
3380 9611 : {
3381 9611 : tree _r;
3382 9611 : _r = captures[0];
3383 9611 : if (TREE_SIDE_EFFECTS (captures[1]))
3384 1366 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3385 9611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3386 9611 : return _r;
3387 : }
3388 0 : next_after_fail1132:;
3389 : }
3390 0 : break;
3391 : }
3392 45598 : CASE_CONVERT:
3393 45598 : {
3394 45598 : tree _q20 = TREE_OPERAND (_p0, 0);
3395 45598 : switch (TREE_CODE (_q20))
3396 : {
3397 0 : case CONJ_EXPR:
3398 0 : {
3399 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3400 0 : {
3401 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3402 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1133;
3403 0 : {
3404 0 : tree res_op0;
3405 0 : {
3406 0 : tree _o1[1], _r1;
3407 0 : _o1[0] = captures[2];
3408 0 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3409 0 : res_op0 = _r1;
3410 : }
3411 0 : tree _r;
3412 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3413 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
3414 0 : return _r;
3415 : }
3416 0 : next_after_fail1133:;
3417 : }
3418 0 : break;
3419 : }
3420 0 : case PLUS_EXPR:
3421 0 : {
3422 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3423 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3424 0 : {
3425 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3426 0 : const enum tree_code op = PLUS_EXPR;
3427 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1134;
3428 0 : {
3429 0 : tree res_op0;
3430 0 : {
3431 0 : tree _o1[2], _r1;
3432 0 : {
3433 0 : tree _o2[1], _r2;
3434 0 : _o2[0] = captures[2];
3435 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3436 0 : _o1[0] = _r2;
3437 : }
3438 0 : {
3439 0 : tree _o2[1], _r2;
3440 0 : _o2[0] = captures[3];
3441 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3442 0 : _o1[1] = _r2;
3443 : }
3444 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3445 0 : res_op0 = _r1;
3446 : }
3447 0 : tree _r;
3448 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3449 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
3450 0 : return _r;
3451 : }
3452 0 : next_after_fail1134:;
3453 : }
3454 0 : break;
3455 : }
3456 0 : case MINUS_EXPR:
3457 0 : {
3458 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3459 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3460 0 : {
3461 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3462 0 : const enum tree_code op = MINUS_EXPR;
3463 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1135;
3464 0 : {
3465 0 : tree res_op0;
3466 0 : {
3467 0 : tree _o1[2], _r1;
3468 0 : {
3469 0 : tree _o2[1], _r2;
3470 0 : _o2[0] = captures[2];
3471 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3472 0 : _o1[0] = _r2;
3473 : }
3474 0 : {
3475 0 : tree _o2[1], _r2;
3476 0 : _o2[0] = captures[3];
3477 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3478 0 : _o1[1] = _r2;
3479 : }
3480 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3481 0 : res_op0 = _r1;
3482 : }
3483 0 : tree _r;
3484 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3485 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
3486 0 : return _r;
3487 : }
3488 0 : next_after_fail1135:;
3489 : }
3490 0 : break;
3491 : }
3492 0 : case CALL_EXPR:
3493 0 : switch (get_call_combined_fn (_q20))
3494 : {
3495 0 : case CFN_BUILT_IN_CEXPIF:
3496 0 : if (call_expr_nargs (_q20) == 1)
3497 : {
3498 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3499 0 : {
3500 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3501 0 : if (single_use (captures[1]) && single_use (captures[0])
3502 : )
3503 : {
3504 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1136;
3505 0 : {
3506 0 : tree res_op0;
3507 0 : {
3508 0 : tree _o1[1], _r1;
3509 0 : _o1[0] = captures[2];
3510 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3511 0 : if (!_r1)
3512 0 : goto next_after_fail1136;
3513 0 : res_op0 = _r1;
3514 : }
3515 0 : tree _r;
3516 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3518 0 : return _r;
3519 : }
3520 0 : next_after_fail1136:;
3521 : }
3522 : }
3523 : }
3524 : break;
3525 0 : case CFN_BUILT_IN_CEXPIL:
3526 0 : if (call_expr_nargs (_q20) == 1)
3527 : {
3528 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3529 0 : {
3530 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3531 0 : if (single_use (captures[1]) && single_use (captures[0])
3532 : )
3533 : {
3534 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1137;
3535 0 : {
3536 0 : tree res_op0;
3537 0 : {
3538 0 : tree _o1[1], _r1;
3539 0 : _o1[0] = captures[2];
3540 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3541 0 : if (!_r1)
3542 0 : goto next_after_fail1137;
3543 0 : res_op0 = _r1;
3544 : }
3545 0 : tree _r;
3546 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3547 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3548 0 : return _r;
3549 : }
3550 0 : next_after_fail1137:;
3551 : }
3552 : }
3553 : }
3554 : break;
3555 0 : case CFN_BUILT_IN_CEXPI:
3556 0 : if (call_expr_nargs (_q20) == 1)
3557 : {
3558 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3559 0 : {
3560 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3561 0 : if (single_use (captures[1]) && single_use (captures[0])
3562 : )
3563 : {
3564 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1138;
3565 0 : {
3566 0 : tree res_op0;
3567 0 : {
3568 0 : tree _o1[1], _r1;
3569 0 : _o1[0] = captures[2];
3570 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3571 0 : if (!_r1)
3572 0 : goto next_after_fail1138;
3573 0 : res_op0 = _r1;
3574 : }
3575 0 : tree _r;
3576 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3577 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3578 0 : return _r;
3579 : }
3580 0 : next_after_fail1138:;
3581 : }
3582 : }
3583 : }
3584 : break;
3585 : default:;
3586 : }
3587 : break;
3588 : default:;
3589 : }
3590 : break;
3591 : }
3592 16 : case CONJ_EXPR:
3593 16 : {
3594 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3595 16 : {
3596 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3597 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1139;
3598 16 : {
3599 16 : tree res_op0;
3600 16 : {
3601 16 : tree _o1[1], _r1;
3602 16 : _o1[0] = captures[2];
3603 16 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3604 16 : res_op0 = _r1;
3605 : }
3606 16 : tree _r;
3607 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3608 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
3609 16 : return _r;
3610 : }
3611 0 : next_after_fail1139:;
3612 : }
3613 0 : break;
3614 : }
3615 407 : case PLUS_EXPR:
3616 407 : {
3617 407 : tree _q20 = TREE_OPERAND (_p0, 0);
3618 407 : tree _q21 = TREE_OPERAND (_p0, 1);
3619 407 : {
3620 407 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3621 407 : const enum tree_code op = PLUS_EXPR;
3622 407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1140;
3623 407 : {
3624 407 : tree res_op0;
3625 407 : {
3626 407 : tree _o1[2], _r1;
3627 407 : {
3628 407 : tree _o2[1], _r2;
3629 407 : _o2[0] = captures[2];
3630 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3631 407 : _o1[0] = _r2;
3632 : }
3633 407 : {
3634 407 : tree _o2[1], _r2;
3635 407 : _o2[0] = captures[3];
3636 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3637 407 : _o1[1] = _r2;
3638 : }
3639 407 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3640 407 : res_op0 = _r1;
3641 : }
3642 407 : tree _r;
3643 407 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3644 407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
3645 407 : return _r;
3646 : }
3647 0 : next_after_fail1140:;
3648 : }
3649 0 : break;
3650 : }
3651 47 : case MINUS_EXPR:
3652 47 : {
3653 47 : tree _q20 = TREE_OPERAND (_p0, 0);
3654 47 : tree _q21 = TREE_OPERAND (_p0, 1);
3655 47 : {
3656 47 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3657 47 : const enum tree_code op = MINUS_EXPR;
3658 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1141;
3659 47 : {
3660 47 : tree res_op0;
3661 47 : {
3662 47 : tree _o1[2], _r1;
3663 47 : {
3664 47 : tree _o2[1], _r2;
3665 47 : _o2[0] = captures[2];
3666 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3667 47 : _o1[0] = _r2;
3668 : }
3669 47 : {
3670 47 : tree _o2[1], _r2;
3671 47 : _o2[0] = captures[3];
3672 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3673 47 : _o1[1] = _r2;
3674 : }
3675 47 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3676 47 : res_op0 = _r1;
3677 : }
3678 47 : tree _r;
3679 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3680 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
3681 47 : return _r;
3682 : }
3683 0 : next_after_fail1141:;
3684 : }
3685 0 : break;
3686 : }
3687 263 : case CALL_EXPR:
3688 263 : switch (get_call_combined_fn (_p0))
3689 : {
3690 0 : case CFN_BUILT_IN_CEXPIF:
3691 0 : if (call_expr_nargs (_p0) == 1)
3692 : {
3693 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3694 0 : {
3695 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3696 0 : if (single_use (captures[1]) && single_use (captures[0])
3697 : )
3698 : {
3699 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1142;
3700 0 : {
3701 0 : tree res_op0;
3702 0 : {
3703 0 : tree _o1[1], _r1;
3704 0 : _o1[0] = captures[2];
3705 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3706 0 : if (!_r1)
3707 0 : goto next_after_fail1142;
3708 0 : res_op0 = _r1;
3709 : }
3710 0 : tree _r;
3711 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3712 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3713 0 : return _r;
3714 : }
3715 0 : next_after_fail1142:;
3716 : }
3717 : }
3718 : }
3719 : break;
3720 0 : case CFN_BUILT_IN_CEXPIL:
3721 0 : if (call_expr_nargs (_p0) == 1)
3722 : {
3723 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3724 0 : {
3725 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3726 0 : if (single_use (captures[1]) && single_use (captures[0])
3727 : )
3728 : {
3729 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1143;
3730 0 : {
3731 0 : tree res_op0;
3732 0 : {
3733 0 : tree _o1[1], _r1;
3734 0 : _o1[0] = captures[2];
3735 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3736 0 : if (!_r1)
3737 0 : goto next_after_fail1143;
3738 0 : res_op0 = _r1;
3739 : }
3740 0 : tree _r;
3741 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3742 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3743 0 : return _r;
3744 : }
3745 0 : next_after_fail1143:;
3746 : }
3747 : }
3748 : }
3749 : break;
3750 1 : case CFN_BUILT_IN_CEXPI:
3751 1 : if (call_expr_nargs (_p0) == 1)
3752 : {
3753 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3754 1 : {
3755 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3756 1 : if (single_use (captures[1]) && single_use (captures[0])
3757 : )
3758 : {
3759 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1144;
3760 1 : {
3761 1 : tree res_op0;
3762 1 : {
3763 1 : tree _o1[1], _r1;
3764 1 : _o1[0] = captures[2];
3765 1 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3766 1 : if (!_r1)
3767 0 : goto next_after_fail1144;
3768 1 : res_op0 = _r1;
3769 : }
3770 1 : tree _r;
3771 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3772 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3773 1 : return _r;
3774 : }
3775 0 : next_after_fail1144:;
3776 : }
3777 : }
3778 : }
3779 : break;
3780 : default:;
3781 : }
3782 : break;
3783 : default:;
3784 : }
3785 : return NULL_TREE;
3786 : }
3787 :
3788 : tree
3789 2870107 : generic_simplify_POINTER_DIFF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3790 : {
3791 2870107 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3792 2870107 : if (integer_zerop (_p1))
3793 : {
3794 29 : {
3795 29 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3796 29 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1371;
3797 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1371;
3798 29 : {
3799 29 : tree res_op0;
3800 29 : res_op0 = captures[0];
3801 29 : tree _r;
3802 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3803 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 945, __FILE__, __LINE__, true);
3804 29 : return _r;
3805 : }
3806 : next_after_fail1371:;
3807 : }
3808 : }
3809 2870078 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _p0, 0))
3810 : {
3811 39295 : {
3812 39295 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p0 };
3813 39295 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1372;
3814 39295 : {
3815 39295 : tree _r;
3816 39295 : _r = build_zero_cst (type);
3817 39295 : if (TREE_SIDE_EFFECTS (captures[1]))
3818 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3819 39295 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
3820 39295 : return _r;
3821 : }
3822 0 : next_after_fail1372:;
3823 : }
3824 : }
3825 2830783 : switch (TREE_CODE (_p0))
3826 : {
3827 257363 : case POINTER_PLUS_EXPR:
3828 257363 : {
3829 257363 : tree _q20 = TREE_OPERAND (_p0, 0);
3830 257363 : tree _q21 = TREE_OPERAND (_p0, 1);
3831 257363 : switch (TREE_CODE (_p1))
3832 : {
3833 15382 : case POINTER_PLUS_EXPR:
3834 15382 : {
3835 15382 : tree _q50 = TREE_OPERAND (_p1, 0);
3836 15382 : tree _q51 = TREE_OPERAND (_p1, 1);
3837 15382 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3838 : {
3839 15351 : {
3840 15351 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
3841 15351 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
3842 : )
3843 : {
3844 15351 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1373;
3845 15351 : {
3846 15351 : tree res_op0;
3847 15351 : {
3848 15351 : tree _o1[2], _r1;
3849 15351 : _o1[0] = captures[1];
3850 15351 : _o1[1] = captures[2];
3851 15351 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3852 15351 : res_op0 = _r1;
3853 : }
3854 15351 : tree _r;
3855 15351 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3856 15351 : if (TREE_SIDE_EFFECTS (captures[0]))
3857 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3858 15351 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
3859 15351 : return _r;
3860 : }
3861 0 : next_after_fail1373:;
3862 : }
3863 : }
3864 : }
3865 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3866 : {
3867 1 : {
3868 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
3869 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1374;
3870 1 : {
3871 1 : tree res_op0;
3872 1 : res_op0 = captures[0];
3873 1 : tree res_op1;
3874 1 : res_op1 = captures[2];
3875 1 : tree _r;
3876 1 : _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
3877 1 : if (TREE_SIDE_EFFECTS (captures[1]))
3878 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3879 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
3880 1 : return _r;
3881 : }
3882 0 : next_after_fail1374:;
3883 : }
3884 : }
3885 : break;
3886 : }
3887 : default:;
3888 : }
3889 : break;
3890 : }
3891 148724 : CASE_CONVERT:
3892 148724 : {
3893 148724 : tree _q20 = TREE_OPERAND (_p0, 0);
3894 148724 : switch (TREE_CODE (_q20))
3895 : {
3896 2037 : case ADDR_EXPR:
3897 2037 : {
3898 2037 : switch (TREE_CODE (_p1))
3899 : {
3900 324 : CASE_CONVERT:
3901 324 : {
3902 324 : tree _q40 = TREE_OPERAND (_p1, 0);
3903 324 : {
3904 324 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3905 324 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3906 324 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3907 : )
3908 : {
3909 324 : {
3910 324 : poly_int64 diff;
3911 324 : if (ptr_difference_const (captures[1], captures[3], &diff)
3912 : )
3913 : {
3914 189 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1375;
3915 189 : {
3916 189 : tree _r;
3917 189 : _r = build_int_cst_type (type, diff);
3918 189 : if (TREE_SIDE_EFFECTS (captures[1]))
3919 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3920 189 : if (TREE_SIDE_EFFECTS (captures[3]))
3921 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3922 189 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
3923 189 : return _r;
3924 : }
3925 0 : next_after_fail1375:;
3926 : }
3927 : }
3928 : }
3929 : }
3930 135 : break;
3931 : }
3932 1848 : default:;
3933 : }
3934 1848 : {
3935 1848 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3936 1848 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3937 1848 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3938 : )
3939 : {
3940 1848 : {
3941 1848 : poly_int64 diff;
3942 1848 : if (ptr_difference_const (captures[1], captures[3], &diff)
3943 : )
3944 : {
3945 103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1376;
3946 103 : {
3947 103 : tree _r;
3948 103 : _r = build_int_cst_type (type, diff);
3949 103 : if (TREE_SIDE_EFFECTS (captures[1]))
3950 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3951 103 : if (TREE_SIDE_EFFECTS (captures[2]))
3952 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3953 103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
3954 103 : return _r;
3955 : }
3956 0 : next_after_fail1376:;
3957 : }
3958 : }
3959 : }
3960 : }
3961 1745 : break;
3962 : }
3963 148432 : default:;
3964 : }
3965 148432 : switch (TREE_CODE (_p1))
3966 : {
3967 116528 : CASE_CONVERT:
3968 116528 : {
3969 116528 : tree _q40 = TREE_OPERAND (_p1, 0);
3970 116528 : switch (TREE_CODE (_q40))
3971 : {
3972 18301 : case ADDR_EXPR:
3973 18301 : {
3974 18301 : {
3975 18301 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3976 18301 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3977 18301 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3978 : )
3979 : {
3980 18301 : {
3981 18301 : poly_int64 diff;
3982 18301 : if (ptr_difference_const (captures[1], captures[3], &diff)
3983 : )
3984 : {
3985 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1377;
3986 37 : {
3987 37 : tree _r;
3988 37 : _r = build_int_cst_type (type, diff);
3989 37 : if (TREE_SIDE_EFFECTS (captures[1]))
3990 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3991 37 : if (TREE_SIDE_EFFECTS (captures[3]))
3992 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3993 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
3994 37 : return _r;
3995 : }
3996 0 : next_after_fail1377:;
3997 : }
3998 : }
3999 : }
4000 : }
4001 18264 : break;
4002 : }
4003 : default:;
4004 : }
4005 : break;
4006 : }
4007 12 : case ADDR_EXPR:
4008 12 : {
4009 12 : {
4010 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
4011 12 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4012 12 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4013 : )
4014 : {
4015 12 : {
4016 12 : poly_int64 diff;
4017 12 : if (ptr_difference_const (captures[1], captures[3], &diff)
4018 : )
4019 : {
4020 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1378;
4021 0 : {
4022 0 : tree _r;
4023 0 : _r = build_int_cst_type (type, diff);
4024 0 : if (TREE_SIDE_EFFECTS (captures[1]))
4025 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4026 0 : if (TREE_SIDE_EFFECTS (captures[2]))
4027 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4028 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
4029 0 : return _r;
4030 : }
4031 0 : next_after_fail1378:;
4032 : }
4033 : }
4034 : }
4035 : }
4036 12 : break;
4037 : }
4038 : default:;
4039 : }
4040 : break;
4041 : }
4042 3755 : case ADDR_EXPR:
4043 3755 : {
4044 3755 : switch (TREE_CODE (_p1))
4045 : {
4046 50 : CASE_CONVERT:
4047 50 : {
4048 50 : tree _q30 = TREE_OPERAND (_p1, 0);
4049 50 : {
4050 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
4051 50 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4052 50 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4053 : )
4054 : {
4055 50 : {
4056 50 : poly_int64 diff;
4057 50 : if (ptr_difference_const (captures[1], captures[3], &diff)
4058 : )
4059 : {
4060 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1379;
4061 29 : {
4062 29 : tree _r;
4063 29 : _r = build_int_cst_type (type, diff);
4064 29 : if (TREE_SIDE_EFFECTS (captures[0]))
4065 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4066 29 : if (TREE_SIDE_EFFECTS (captures[3]))
4067 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4068 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
4069 29 : return _r;
4070 : }
4071 0 : next_after_fail1379:;
4072 : }
4073 : }
4074 : }
4075 : }
4076 21 : break;
4077 : }
4078 3726 : default:;
4079 : }
4080 3726 : {
4081 3726 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
4082 3726 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4083 3726 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4084 : )
4085 : {
4086 3726 : {
4087 3726 : poly_int64 diff;
4088 3726 : if (ptr_difference_const (captures[1], captures[3], &diff)
4089 : )
4090 : {
4091 2441 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1380;
4092 2441 : {
4093 2441 : tree _r;
4094 2441 : _r = build_int_cst_type (type, diff);
4095 2441 : if (TREE_SIDE_EFFECTS (captures[0]))
4096 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4097 2441 : if (TREE_SIDE_EFFECTS (captures[2]))
4098 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4099 2441 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
4100 2441 : return _r;
4101 : }
4102 0 : next_after_fail1380:;
4103 : }
4104 : }
4105 : }
4106 : }
4107 1285 : break;
4108 : }
4109 2812632 : default:;
4110 : }
4111 2812632 : switch (TREE_CODE (_p1))
4112 : {
4113 541773 : CASE_CONVERT:
4114 541773 : {
4115 541773 : tree _q30 = TREE_OPERAND (_p1, 0);
4116 541773 : switch (TREE_CODE (_q30))
4117 : {
4118 377964 : case ADDR_EXPR:
4119 377964 : {
4120 377964 : {
4121 377964 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
4122 377964 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4123 377964 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4124 : )
4125 : {
4126 377964 : {
4127 377964 : poly_int64 diff;
4128 377964 : if (ptr_difference_const (captures[1], captures[3], &diff)
4129 : )
4130 : {
4131 235958 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1381;
4132 235958 : {
4133 235958 : tree _r;
4134 235958 : _r = build_int_cst_type (type, diff);
4135 235958 : if (TREE_SIDE_EFFECTS (captures[0]))
4136 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4137 235958 : if (TREE_SIDE_EFFECTS (captures[3]))
4138 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4139 235958 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
4140 235958 : return _r;
4141 : }
4142 0 : next_after_fail1381:;
4143 : }
4144 : }
4145 : }
4146 : }
4147 142006 : break;
4148 : }
4149 : default:;
4150 : }
4151 : break;
4152 : }
4153 8016 : case ADDR_EXPR:
4154 8016 : {
4155 8016 : {
4156 8016 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
4157 8016 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4158 8016 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4159 : )
4160 : {
4161 8016 : {
4162 8016 : poly_int64 diff;
4163 8016 : if (ptr_difference_const (captures[1], captures[3], &diff)
4164 : )
4165 : {
4166 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1382;
4167 76 : {
4168 76 : tree _r;
4169 76 : _r = build_int_cst_type (type, diff);
4170 76 : if (TREE_SIDE_EFFECTS (captures[0]))
4171 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4172 76 : if (TREE_SIDE_EFFECTS (captures[2]))
4173 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4174 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
4175 76 : return _r;
4176 : }
4177 0 : next_after_fail1382:;
4178 : }
4179 : }
4180 : }
4181 : }
4182 7940 : break;
4183 : }
4184 2576598 : default:;
4185 : }
4186 2576598 : switch (TREE_CODE (_p0))
4187 : {
4188 5977 : case POINTER_PLUS_EXPR:
4189 5977 : {
4190 5977 : tree _q20 = TREE_OPERAND (_p0, 0);
4191 5977 : tree _q21 = TREE_OPERAND (_p0, 1);
4192 5977 : switch (TREE_CODE (_q20))
4193 : {
4194 65 : case ADDR_EXPR:
4195 65 : {
4196 65 : switch (TREE_CODE (_p1))
4197 : {
4198 0 : case POINTER_PLUS_EXPR:
4199 0 : {
4200 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4201 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4202 0 : switch (TREE_CODE (_q50))
4203 : {
4204 0 : case ADDR_EXPR:
4205 0 : {
4206 0 : {
4207 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
4208 0 : {
4209 0 : poly_int64 diff;
4210 0 : if (ptr_difference_const (captures[0], captures[2], &diff)
4211 : )
4212 : {
4213 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1383;
4214 0 : {
4215 0 : tree res_op0;
4216 0 : res_op0 = build_int_cst_type (type, diff);
4217 0 : tree res_op1;
4218 0 : {
4219 0 : tree _o1[1], _r1;
4220 0 : {
4221 0 : tree _o2[2], _r2;
4222 0 : _o2[0] = captures[1];
4223 0 : _o2[1] = captures[3];
4224 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4225 0 : _o1[0] = _r2;
4226 : }
4227 0 : if (TREE_TYPE (_o1[0]) != type)
4228 : {
4229 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4230 : }
4231 : else
4232 : _r1 = _o1[0];
4233 0 : res_op1 = _r1;
4234 : }
4235 0 : tree _r;
4236 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4237 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4238 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4239 0 : if (TREE_SIDE_EFFECTS (captures[2]))
4240 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4241 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 951, __FILE__, __LINE__, true);
4242 0 : return _r;
4243 : }
4244 0 : next_after_fail1383:;
4245 : }
4246 : }
4247 : }
4248 0 : break;
4249 : }
4250 : default:;
4251 : }
4252 : break;
4253 : }
4254 : default:;
4255 : }
4256 : break;
4257 : }
4258 5977 : default:;
4259 : }
4260 5977 : switch (TREE_CODE (_p1))
4261 : {
4262 112 : case ADDR_EXPR:
4263 112 : {
4264 112 : {
4265 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4266 112 : {
4267 112 : poly_int64 diff;
4268 112 : if (ptr_difference_const (captures[0], captures[2], &diff)
4269 : )
4270 : {
4271 98 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1384;
4272 98 : {
4273 98 : tree res_op0;
4274 98 : res_op0 = build_int_cst_type (type, diff);
4275 98 : tree res_op1;
4276 98 : {
4277 98 : tree _o1[1], _r1;
4278 98 : _o1[0] = captures[1];
4279 98 : if (TREE_TYPE (_o1[0]) != type)
4280 : {
4281 98 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4282 : }
4283 : else
4284 : _r1 = _o1[0];
4285 98 : res_op1 = _r1;
4286 : }
4287 98 : tree _r;
4288 98 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4289 98 : if (TREE_SIDE_EFFECTS (captures[0]))
4290 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4291 98 : if (TREE_SIDE_EFFECTS (captures[2]))
4292 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4293 98 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 952, __FILE__, __LINE__, true);
4294 98 : return _r;
4295 : }
4296 0 : next_after_fail1384:;
4297 : }
4298 : }
4299 : }
4300 14 : break;
4301 : }
4302 5879 : default:;
4303 : }
4304 5879 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4305 : {
4306 1761 : {
4307 1761 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4308 1761 : if (!TYPE_SATURATING (type)
4309 : )
4310 : {
4311 1761 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4312 3522 : && !FIXED_POINT_TYPE_P (type)
4313 : )
4314 : {
4315 1761 : {
4316 1761 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4317 1761 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1385;
4318 1761 : {
4319 1761 : tree res_op0;
4320 1761 : {
4321 1761 : tree _o1[1], _r1;
4322 1761 : _o1[0] = captures[1];
4323 1761 : if (TREE_TYPE (_o1[0]) != stype)
4324 : {
4325 1761 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o1[0]);
4326 : }
4327 : else
4328 : _r1 = _o1[0];
4329 1761 : res_op0 = _r1;
4330 : }
4331 1761 : tree _r;
4332 1761 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4333 1761 : if (TREE_SIDE_EFFECTS (captures[2]))
4334 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4335 1761 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
4336 1761 : return _r;
4337 : }
4338 0 : next_after_fail1385:;
4339 : }
4340 : }
4341 : }
4342 : }
4343 : }
4344 : break;
4345 : }
4346 1285 : case ADDR_EXPR:
4347 1285 : {
4348 1285 : switch (TREE_CODE (_p1))
4349 : {
4350 9 : case POINTER_PLUS_EXPR:
4351 9 : {
4352 9 : tree _q30 = TREE_OPERAND (_p1, 0);
4353 9 : tree _q31 = TREE_OPERAND (_p1, 1);
4354 9 : {
4355 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
4356 9 : {
4357 9 : poly_int64 diff;
4358 9 : if (ptr_difference_const (captures[0], captures[1], &diff)
4359 : )
4360 : {
4361 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1386;
4362 9 : {
4363 9 : tree res_op0;
4364 9 : res_op0 = build_int_cst_type (type, diff);
4365 9 : tree res_op1;
4366 9 : {
4367 9 : tree _o1[1], _r1;
4368 9 : _o1[0] = captures[2];
4369 9 : if (TREE_TYPE (_o1[0]) != type)
4370 : {
4371 9 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4372 : }
4373 : else
4374 : _r1 = _o1[0];
4375 9 : res_op1 = _r1;
4376 : }
4377 9 : tree _r;
4378 9 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4379 9 : if (TREE_SIDE_EFFECTS (captures[0]))
4380 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4381 9 : if (TREE_SIDE_EFFECTS (captures[1]))
4382 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4383 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
4384 9 : return _r;
4385 : }
4386 0 : next_after_fail1386:;
4387 : }
4388 : }
4389 : }
4390 0 : break;
4391 : }
4392 : default:;
4393 : }
4394 : break;
4395 : }
4396 2574730 : default:;
4397 : }
4398 2574730 : switch (TREE_CODE (_p1))
4399 : {
4400 209 : case POINTER_PLUS_EXPR:
4401 209 : {
4402 209 : tree _q30 = TREE_OPERAND (_p1, 0);
4403 209 : tree _q31 = TREE_OPERAND (_p1, 1);
4404 209 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
4405 : {
4406 124 : {
4407 124 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
4408 124 : if (!TYPE_SATURATING (type)
4409 : )
4410 : {
4411 124 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4412 248 : && !FIXED_POINT_TYPE_P (type)
4413 : )
4414 : {
4415 124 : {
4416 124 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4417 124 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1387;
4418 124 : {
4419 124 : tree res_op0;
4420 124 : {
4421 124 : tree _o1[1], _r1;
4422 124 : {
4423 124 : tree _o2[1], _r2;
4424 124 : _o2[0] = captures[1];
4425 124 : if (TREE_TYPE (_o2[0]) != stype)
4426 : {
4427 124 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4428 : }
4429 : else
4430 : _r2 = _o2[0];
4431 124 : _o1[0] = _r2;
4432 : }
4433 124 : if (TREE_TYPE (_o1[0]) != type)
4434 : {
4435 124 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4436 : }
4437 : else
4438 : _r1 = _o1[0];
4439 124 : res_op0 = _r1;
4440 : }
4441 124 : tree _r;
4442 124 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4443 124 : if (TREE_SIDE_EFFECTS (captures[2]))
4444 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4445 124 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 955, __FILE__, __LINE__, true);
4446 124 : return _r;
4447 : }
4448 0 : next_after_fail1387:;
4449 : }
4450 : }
4451 : }
4452 : }
4453 : }
4454 : break;
4455 : }
4456 2574606 : default:;
4457 : }
4458 2574606 : switch (TREE_CODE (_p0))
4459 : {
4460 4118 : case POINTER_PLUS_EXPR:
4461 4118 : {
4462 4118 : tree _q20 = TREE_OPERAND (_p0, 0);
4463 4118 : tree _q21 = TREE_OPERAND (_p0, 1);
4464 4118 : switch (TREE_CODE (_p1))
4465 : {
4466 30 : case POINTER_PLUS_EXPR:
4467 30 : {
4468 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4469 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4470 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4471 : {
4472 2 : {
4473 2 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
4474 2 : if (!TYPE_SATURATING (type)
4475 : )
4476 : {
4477 2 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4478 4 : && !FIXED_POINT_TYPE_P (type)
4479 : )
4480 : {
4481 2 : {
4482 2 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4483 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1388;
4484 2 : {
4485 2 : tree res_op0;
4486 2 : {
4487 2 : tree _o1[1], _r1;
4488 2 : {
4489 2 : tree _o2[1], _r2;
4490 2 : _o2[0] = captures[1];
4491 2 : if (TREE_TYPE (_o2[0]) != stype)
4492 : {
4493 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4494 : }
4495 : else
4496 : _r2 = _o2[0];
4497 2 : _o1[0] = _r2;
4498 : }
4499 2 : if (TREE_TYPE (_o1[0]) != type)
4500 : {
4501 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4502 : }
4503 : else
4504 : _r1 = _o1[0];
4505 2 : res_op0 = _r1;
4506 : }
4507 2 : tree res_op1;
4508 2 : {
4509 2 : tree _o1[1], _r1;
4510 2 : {
4511 2 : tree _o2[1], _r2;
4512 2 : _o2[0] = captures[2];
4513 2 : if (TREE_TYPE (_o2[0]) != stype)
4514 : {
4515 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4516 : }
4517 : else
4518 : _r2 = _o2[0];
4519 2 : _o1[0] = _r2;
4520 : }
4521 2 : if (TREE_TYPE (_o1[0]) != type)
4522 : {
4523 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4524 : }
4525 : else
4526 : _r1 = _o1[0];
4527 2 : res_op1 = _r1;
4528 : }
4529 2 : tree _r;
4530 2 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4531 2 : if (TREE_SIDE_EFFECTS (captures[3]))
4532 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4533 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 956, __FILE__, __LINE__, true);
4534 2 : return _r;
4535 : }
4536 0 : next_after_fail1388:;
4537 : }
4538 : }
4539 : }
4540 : }
4541 : }
4542 : break;
4543 : }
4544 : default:;
4545 : }
4546 : break;
4547 : }
4548 2574604 : default:;
4549 : }
4550 2574604 : if (integer_zerop (_p0))
4551 : {
4552 0 : {
4553 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
4554 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1389;
4555 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1389;
4556 0 : {
4557 0 : tree res_op0;
4558 0 : {
4559 0 : tree _o1[1], _r1;
4560 0 : _o1[0] = captures[0];
4561 0 : if (TREE_TYPE (_o1[0]) != type)
4562 : {
4563 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4564 : }
4565 : else
4566 : _r1 = _o1[0];
4567 0 : res_op0 = _r1;
4568 : }
4569 0 : tree _r;
4570 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4571 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 957, __FILE__, __LINE__, true);
4572 0 : return _r;
4573 : }
4574 : next_after_fail1389:;
4575 : }
4576 : }
4577 : return NULL_TREE;
4578 : }
4579 :
4580 : tree
4581 2194688 : generic_simplify_FLOOR_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4582 : {
4583 2194688 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4584 2194688 : if (integer_onep (_p1))
4585 : {
4586 768877 : {
4587 768877 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4588 768877 : tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4589 768877 : if (res) return res;
4590 : }
4591 : }
4592 1425811 : if (integer_zerop (_p0))
4593 : {
4594 4 : {
4595 4 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4596 4 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4597 4 : if (res) return res;
4598 : }
4599 : }
4600 1425807 : switch (TREE_CODE (_p1))
4601 : {
4602 969 : case SSA_NAME:
4603 969 : {
4604 969 : {
4605 969 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4606 969 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4607 969 : if (res) return res;
4608 : }
4609 969 : break;
4610 : }
4611 1425807 : default:;
4612 : }
4613 1425807 : if (integer_minus_onep (_p1))
4614 : {
4615 229 : {
4616 229 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4617 229 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4618 229 : if (res) return res;
4619 : }
4620 : }
4621 1425746 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4622 : {
4623 0 : {
4624 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4625 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4626 0 : if (res) return res;
4627 : }
4628 : }
4629 1425746 : switch (TREE_CODE (_p1))
4630 : {
4631 0 : case ABS_EXPR:
4632 0 : {
4633 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4634 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4635 : {
4636 0 : {
4637 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4638 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4639 0 : if (res) return res;
4640 : }
4641 : }
4642 : break;
4643 : }
4644 1425746 : default:;
4645 : }
4646 1425746 : switch (TREE_CODE (_p0))
4647 : {
4648 0 : case ABS_EXPR:
4649 0 : {
4650 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4651 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4652 : {
4653 0 : {
4654 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4655 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4656 0 : if (res) return res;
4657 : }
4658 : }
4659 : break;
4660 : }
4661 1425746 : default:;
4662 : }
4663 1425746 : switch (TREE_CODE (_p1))
4664 : {
4665 0 : case NEGATE_EXPR:
4666 0 : {
4667 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4668 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4669 : {
4670 0 : {
4671 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4672 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4673 0 : if (res) return res;
4674 : }
4675 : }
4676 : break;
4677 : }
4678 1425746 : default:;
4679 : }
4680 1425746 : switch (TREE_CODE (_p0))
4681 : {
4682 290 : case NEGATE_EXPR:
4683 290 : {
4684 290 : tree _q20 = TREE_OPERAND (_p0, 0);
4685 290 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4686 : {
4687 0 : {
4688 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4689 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4690 0 : if (res) return res;
4691 : }
4692 : }
4693 : break;
4694 : }
4695 1425746 : default:;
4696 : }
4697 1425746 : {
4698 1425746 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4699 1425746 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR);
4700 1425746 : if (res) return res;
4701 : }
4702 5553 : switch (TREE_CODE (_p0))
4703 : {
4704 388 : CASE_CONVERT:
4705 388 : {
4706 388 : tree _q20 = TREE_OPERAND (_p0, 0);
4707 388 : switch (TREE_CODE (_q20))
4708 : {
4709 0 : case BIT_AND_EXPR:
4710 0 : {
4711 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4712 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4713 0 : switch (TREE_CODE (_q31))
4714 : {
4715 0 : case INTEGER_CST:
4716 0 : {
4717 0 : switch (TREE_CODE (_p1))
4718 : {
4719 0 : case INTEGER_CST:
4720 0 : {
4721 0 : {
4722 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4723 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4724 0 : if (res) return res;
4725 : }
4726 0 : break;
4727 : }
4728 : default:;
4729 : }
4730 : break;
4731 : }
4732 : default:;
4733 : }
4734 : break;
4735 : }
4736 : default:;
4737 : }
4738 : break;
4739 : }
4740 0 : case BIT_AND_EXPR:
4741 0 : {
4742 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4743 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4744 0 : switch (TREE_CODE (_q21))
4745 : {
4746 0 : case INTEGER_CST:
4747 0 : {
4748 0 : switch (TREE_CODE (_p1))
4749 : {
4750 0 : case INTEGER_CST:
4751 0 : {
4752 0 : {
4753 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4754 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4755 0 : if (res) return res;
4756 : }
4757 0 : break;
4758 : }
4759 : default:;
4760 : }
4761 : break;
4762 : }
4763 : default:;
4764 : }
4765 : break;
4766 : }
4767 0 : case MULT_EXPR:
4768 0 : {
4769 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4770 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4771 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4772 : {
4773 0 : {
4774 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4775 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4776 0 : if (res) return res;
4777 : }
4778 : }
4779 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4780 : {
4781 0 : {
4782 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4783 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4784 0 : if (res) return res;
4785 : }
4786 : }
4787 0 : switch (TREE_CODE (_q21))
4788 : {
4789 0 : case INTEGER_CST:
4790 0 : {
4791 0 : switch (TREE_CODE (_p1))
4792 : {
4793 0 : case MULT_EXPR:
4794 0 : {
4795 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4796 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4797 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4798 : {
4799 0 : switch (TREE_CODE (_q51))
4800 : {
4801 0 : case INTEGER_CST:
4802 0 : {
4803 0 : {
4804 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4805 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4806 0 : if (res) return res;
4807 : }
4808 0 : break;
4809 : }
4810 : default:;
4811 : }
4812 : }
4813 : break;
4814 : }
4815 : default:;
4816 : }
4817 : break;
4818 : }
4819 : default:;
4820 : }
4821 : break;
4822 : }
4823 0 : case VEC_COND_EXPR:
4824 0 : {
4825 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4826 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4827 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4828 0 : switch (TREE_CODE (_p1))
4829 : {
4830 0 : case VEC_COND_EXPR:
4831 0 : {
4832 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4833 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4834 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4835 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4836 : {
4837 0 : {
4838 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4839 0 : if (VECTOR_TYPE_P (type)
4840 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4841 : || types_match (type, TREE_TYPE (captures[2]))
4842 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4843 : || (optimize_vectors_before_lowering_p ()
4844 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4845 : )
4846 : {
4847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1581;
4848 0 : {
4849 0 : tree res_op0;
4850 0 : res_op0 = captures[1];
4851 0 : tree res_op1;
4852 0 : {
4853 0 : tree _o1[2], _r1;
4854 0 : _o1[0] = captures[2];
4855 0 : _o1[1] = captures[5];
4856 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4857 0 : if (EXPR_P (_r1))
4858 0 : goto next_after_fail1581;
4859 0 : res_op1 = _r1;
4860 : }
4861 0 : tree res_op2;
4862 0 : {
4863 0 : tree _o1[2], _r1;
4864 0 : _o1[0] = captures[3];
4865 0 : _o1[1] = captures[6];
4866 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4867 0 : if (EXPR_P (_r1))
4868 0 : goto next_after_fail1581;
4869 0 : res_op2 = _r1;
4870 : }
4871 0 : tree _r;
4872 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4873 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
4874 0 : return _r;
4875 : }
4876 0 : next_after_fail1581:;
4877 : }
4878 : }
4879 : }
4880 : break;
4881 : }
4882 0 : default:;
4883 : }
4884 0 : {
4885 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4886 0 : if (VECTOR_TYPE_P (type)
4887 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4888 : || types_match (type, TREE_TYPE (captures[2]))
4889 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4890 : || (optimize_vectors_before_lowering_p ()
4891 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4892 : )
4893 : {
4894 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
4895 0 : {
4896 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1582;
4897 0 : tree res_op0;
4898 0 : res_op0 = captures[1];
4899 0 : tree res_op1;
4900 0 : {
4901 0 : tree _o1[2], _r1;
4902 0 : _o1[0] = captures[2];
4903 0 : _o1[1] = unshare_expr (captures[4]);
4904 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4905 0 : if (EXPR_P (_r1))
4906 0 : goto next_after_fail1582;
4907 0 : res_op1 = _r1;
4908 : }
4909 0 : tree res_op2;
4910 0 : {
4911 0 : tree _o1[2], _r1;
4912 0 : _o1[0] = captures[3];
4913 0 : _o1[1] = captures[4];
4914 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4915 0 : if (EXPR_P (_r1))
4916 0 : goto next_after_fail1582;
4917 0 : res_op2 = _r1;
4918 : }
4919 0 : tree _r;
4920 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4921 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4922 0 : return _r;
4923 : }
4924 0 : next_after_fail1582:;
4925 : }
4926 : }
4927 0 : break;
4928 : }
4929 5553 : default:;
4930 : }
4931 5553 : switch (TREE_CODE (_p1))
4932 : {
4933 0 : case VEC_COND_EXPR:
4934 0 : {
4935 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4936 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4937 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4938 0 : {
4939 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4940 0 : if (VECTOR_TYPE_P (type)
4941 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4942 : || types_match (type, TREE_TYPE (captures[3]))
4943 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4944 : || (optimize_vectors_before_lowering_p ()
4945 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4946 : )
4947 : {
4948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1583;
4949 0 : {
4950 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1583;
4951 0 : tree res_op0;
4952 0 : res_op0 = captures[2];
4953 0 : tree res_op1;
4954 0 : {
4955 0 : tree _o1[2], _r1;
4956 0 : _o1[0] = unshare_expr (captures[0]);
4957 0 : _o1[1] = captures[3];
4958 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4959 0 : if (EXPR_P (_r1))
4960 0 : goto next_after_fail1583;
4961 0 : res_op1 = _r1;
4962 : }
4963 0 : tree res_op2;
4964 0 : {
4965 0 : tree _o1[2], _r1;
4966 0 : _o1[0] = captures[0];
4967 0 : _o1[1] = captures[4];
4968 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4969 0 : if (EXPR_P (_r1))
4970 0 : goto next_after_fail1583;
4971 0 : res_op2 = _r1;
4972 : }
4973 0 : tree _r;
4974 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4975 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
4976 0 : return _r;
4977 : }
4978 0 : next_after_fail1583:;
4979 : }
4980 : }
4981 0 : break;
4982 : }
4983 : default:;
4984 : }
4985 : return NULL_TREE;
4986 : }
4987 :
4988 : tree
4989 856679 : generic_simplify_FLOOR_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4990 : {
4991 856679 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4992 856679 : {
4993 856679 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4994 856679 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR);
4995 856679 : if (res) return res;
4996 : }
4997 3561 : if (integer_zerop (_p0))
4998 : {
4999 0 : {
5000 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5001 0 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5002 0 : if (res) return res;
5003 : }
5004 : }
5005 3561 : if (integer_onep (_p1))
5006 : {
5007 0 : {
5008 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5009 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5010 0 : if (res) return res;
5011 : }
5012 : }
5013 3561 : if (integer_minus_onep (_p1))
5014 : {
5015 0 : {
5016 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5017 0 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5018 0 : if (res) return res;
5019 : }
5020 : }
5021 3561 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5022 : {
5023 0 : {
5024 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5025 0 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5026 0 : if (res) return res;
5027 : }
5028 : }
5029 3561 : switch (TREE_CODE (_p0))
5030 : {
5031 0 : case FLOOR_MOD_EXPR:
5032 0 : {
5033 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5034 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5035 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5036 : {
5037 0 : {
5038 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5039 0 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5040 0 : if (res) return res;
5041 : }
5042 : }
5043 : break;
5044 : }
5045 4 : case MULT_EXPR:
5046 4 : {
5047 4 : tree _q20 = TREE_OPERAND (_p0, 0);
5048 4 : tree _q21 = TREE_OPERAND (_p0, 1);
5049 4 : switch (TREE_CODE (_q21))
5050 : {
5051 4 : case INTEGER_CST:
5052 4 : {
5053 4 : switch (TREE_CODE (_p1))
5054 : {
5055 4 : case INTEGER_CST:
5056 4 : {
5057 4 : {
5058 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5059 4 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5060 4 : if (res) return res;
5061 : }
5062 4 : break;
5063 : }
5064 : default:;
5065 : }
5066 : break;
5067 : }
5068 : default:;
5069 : }
5070 : break;
5071 : }
5072 3561 : default:;
5073 : }
5074 3561 : switch (TREE_CODE (_p1))
5075 : {
5076 1 : CASE_CONVERT:
5077 1 : {
5078 1 : tree _q30 = TREE_OPERAND (_p1, 0);
5079 1 : {
5080 1 : tree _q30_pops[1];
5081 1 : if (tree_power_of_two_cand (_q30, _q30_pops))
5082 : {
5083 0 : tree _q40 = _q30_pops[0];
5084 0 : {
5085 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
5086 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5087 0 : if (res) return res;
5088 : }
5089 : }
5090 : }
5091 1 : break;
5092 : }
5093 3561 : default:;
5094 : }
5095 3561 : {
5096 3561 : tree _p1_pops[1];
5097 3561 : if (tree_power_of_two_cand (_p1, _p1_pops))
5098 : {
5099 1778 : tree _q30 = _p1_pops[0];
5100 1778 : {
5101 1778 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
5102 1778 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5103 1778 : if (res) return res;
5104 : }
5105 : }
5106 : }
5107 3521 : switch (TREE_CODE (_p0))
5108 : {
5109 0 : case VEC_COND_EXPR:
5110 0 : {
5111 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5112 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5113 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5114 0 : switch (TREE_CODE (_p1))
5115 : {
5116 0 : case VEC_COND_EXPR:
5117 0 : {
5118 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5119 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5120 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5121 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5122 : {
5123 0 : {
5124 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5125 0 : if (VECTOR_TYPE_P (type)
5126 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5127 : || types_match (type, TREE_TYPE (captures[2]))
5128 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5129 : || (optimize_vectors_before_lowering_p ()
5130 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5131 : )
5132 : {
5133 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1590;
5134 0 : {
5135 0 : tree res_op0;
5136 0 : res_op0 = captures[1];
5137 0 : tree res_op1;
5138 0 : {
5139 0 : tree _o1[2], _r1;
5140 0 : _o1[0] = captures[2];
5141 0 : _o1[1] = captures[5];
5142 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5143 0 : if (EXPR_P (_r1))
5144 0 : goto next_after_fail1590;
5145 0 : res_op1 = _r1;
5146 : }
5147 0 : tree res_op2;
5148 0 : {
5149 0 : tree _o1[2], _r1;
5150 0 : _o1[0] = captures[3];
5151 0 : _o1[1] = captures[6];
5152 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5153 0 : if (EXPR_P (_r1))
5154 0 : goto next_after_fail1590;
5155 0 : res_op2 = _r1;
5156 : }
5157 0 : tree _r;
5158 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5159 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
5160 0 : return _r;
5161 : }
5162 0 : next_after_fail1590:;
5163 : }
5164 : }
5165 : }
5166 : break;
5167 : }
5168 0 : default:;
5169 : }
5170 0 : {
5171 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5172 0 : if (VECTOR_TYPE_P (type)
5173 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5174 : || types_match (type, TREE_TYPE (captures[2]))
5175 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5176 : || (optimize_vectors_before_lowering_p ()
5177 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5178 : )
5179 : {
5180 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1591;
5181 0 : {
5182 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1591;
5183 0 : tree res_op0;
5184 0 : res_op0 = captures[1];
5185 0 : tree res_op1;
5186 0 : {
5187 0 : tree _o1[2], _r1;
5188 0 : _o1[0] = captures[2];
5189 0 : _o1[1] = unshare_expr (captures[4]);
5190 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5191 0 : if (EXPR_P (_r1))
5192 0 : goto next_after_fail1591;
5193 0 : res_op1 = _r1;
5194 : }
5195 0 : tree res_op2;
5196 0 : {
5197 0 : tree _o1[2], _r1;
5198 0 : _o1[0] = captures[3];
5199 0 : _o1[1] = captures[4];
5200 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5201 0 : if (EXPR_P (_r1))
5202 0 : goto next_after_fail1591;
5203 0 : res_op2 = _r1;
5204 : }
5205 0 : tree _r;
5206 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5207 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
5208 0 : return _r;
5209 : }
5210 0 : next_after_fail1591:;
5211 : }
5212 : }
5213 0 : break;
5214 : }
5215 3521 : default:;
5216 : }
5217 3521 : switch (TREE_CODE (_p1))
5218 : {
5219 0 : case VEC_COND_EXPR:
5220 0 : {
5221 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5222 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5223 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5224 0 : {
5225 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5226 0 : if (VECTOR_TYPE_P (type)
5227 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5228 : || types_match (type, TREE_TYPE (captures[3]))
5229 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5230 : || (optimize_vectors_before_lowering_p ()
5231 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5232 : )
5233 : {
5234 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1592;
5235 0 : {
5236 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1592;
5237 0 : tree res_op0;
5238 0 : res_op0 = captures[2];
5239 0 : tree res_op1;
5240 0 : {
5241 0 : tree _o1[2], _r1;
5242 0 : _o1[0] = unshare_expr (captures[0]);
5243 0 : _o1[1] = captures[3];
5244 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5245 0 : if (EXPR_P (_r1))
5246 0 : goto next_after_fail1592;
5247 0 : res_op1 = _r1;
5248 : }
5249 0 : tree res_op2;
5250 0 : {
5251 0 : tree _o1[2], _r1;
5252 0 : _o1[0] = captures[0];
5253 0 : _o1[1] = captures[4];
5254 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5255 0 : if (EXPR_P (_r1))
5256 0 : goto next_after_fail1592;
5257 0 : res_op2 = _r1;
5258 : }
5259 0 : tree _r;
5260 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5261 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
5262 0 : return _r;
5263 : }
5264 0 : next_after_fail1592:;
5265 : }
5266 : }
5267 0 : break;
5268 : }
5269 : default:;
5270 : }
5271 : return NULL_TREE;
5272 : }
5273 :
5274 : tree
5275 17487821 : generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5276 : {
5277 17487821 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5278 17487821 : switch (TREE_CODE (_p0))
5279 : {
5280 2173 : case RDIV_EXPR:
5281 2173 : {
5282 2173 : tree _q20 = TREE_OPERAND (_p0, 0);
5283 2173 : tree _q21 = TREE_OPERAND (_p0, 1);
5284 2173 : switch (TREE_CODE (_q20))
5285 : {
5286 677 : case REAL_CST:
5287 677 : {
5288 677 : if (real_zerop (_p1))
5289 : {
5290 392 : {
5291 392 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5292 392 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5293 392 : if (res) return res;
5294 : }
5295 : }
5296 : break;
5297 : }
5298 : default:;
5299 : }
5300 : break;
5301 : }
5302 2943 : case TRUNC_MOD_EXPR:
5303 2943 : {
5304 2943 : tree _q20 = TREE_OPERAND (_p0, 0);
5305 2943 : tree _q21 = TREE_OPERAND (_p0, 1);
5306 2943 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5307 : {
5308 74 : {
5309 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5310 74 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5311 74 : if (res) return res;
5312 : }
5313 : }
5314 : break;
5315 : }
5316 142774 : case MULT_EXPR:
5317 142774 : {
5318 142774 : tree _q20 = TREE_OPERAND (_p0, 0);
5319 142774 : tree _q21 = TREE_OPERAND (_p0, 1);
5320 142774 : switch (TREE_CODE (_p1))
5321 : {
5322 50814 : case MULT_EXPR:
5323 50814 : {
5324 50814 : tree _q50 = TREE_OPERAND (_p1, 0);
5325 50814 : tree _q51 = TREE_OPERAND (_p1, 1);
5326 50814 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5327 : {
5328 10208 : {
5329 10208 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5330 10208 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5331 10208 : if (res) return res;
5332 : }
5333 : }
5334 42633 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5335 : {
5336 0 : {
5337 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5338 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5339 0 : if (res) return res;
5340 : }
5341 : }
5342 42633 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5343 : {
5344 0 : {
5345 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5346 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5347 0 : if (res) return res;
5348 : }
5349 : }
5350 42633 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5351 : {
5352 1374 : {
5353 1374 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5354 1374 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5355 1374 : if (res) return res;
5356 : }
5357 : }
5358 : break;
5359 : }
5360 : default:;
5361 : }
5362 : break;
5363 : }
5364 3129538 : CASE_CONVERT:
5365 3129538 : {
5366 3129538 : tree _q20 = TREE_OPERAND (_p0, 0);
5367 3129538 : switch (TREE_CODE (_q20))
5368 : {
5369 107 : case EXACT_DIV_EXPR:
5370 107 : {
5371 107 : tree _q30 = TREE_OPERAND (_q20, 0);
5372 107 : tree _q31 = TREE_OPERAND (_q20, 1);
5373 107 : switch (TREE_CODE (_q31))
5374 : {
5375 107 : case INTEGER_CST:
5376 107 : {
5377 107 : switch (TREE_CODE (_p1))
5378 : {
5379 37 : CASE_CONVERT:
5380 37 : {
5381 37 : tree _q60 = TREE_OPERAND (_p1, 0);
5382 37 : switch (TREE_CODE (_q60))
5383 : {
5384 0 : case EXACT_DIV_EXPR:
5385 0 : {
5386 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5387 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5388 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
5389 : {
5390 0 : {
5391 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
5392 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, LT_EXPR);
5393 0 : if (res) return res;
5394 : }
5395 : }
5396 : break;
5397 : }
5398 : default:;
5399 : }
5400 : break;
5401 : }
5402 : default:;
5403 : }
5404 : break;
5405 : }
5406 : default:;
5407 : }
5408 : break;
5409 : }
5410 : default:;
5411 : }
5412 : break;
5413 : }
5414 1047 : case EXACT_DIV_EXPR:
5415 1047 : {
5416 1047 : tree _q20 = TREE_OPERAND (_p0, 0);
5417 1047 : tree _q21 = TREE_OPERAND (_p0, 1);
5418 1047 : switch (TREE_CODE (_q21))
5419 : {
5420 1047 : case INTEGER_CST:
5421 1047 : {
5422 1047 : switch (TREE_CODE (_p1))
5423 : {
5424 2 : case EXACT_DIV_EXPR:
5425 2 : {
5426 2 : tree _q50 = TREE_OPERAND (_p1, 0);
5427 2 : tree _q51 = TREE_OPERAND (_p1, 1);
5428 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5429 : {
5430 0 : {
5431 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5432 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, LT_EXPR);
5433 0 : if (res) return res;
5434 : }
5435 : }
5436 : break;
5437 : }
5438 : default:;
5439 : }
5440 : break;
5441 : }
5442 : default:;
5443 : }
5444 : break;
5445 : }
5446 12583 : case TRUNC_DIV_EXPR:
5447 12583 : {
5448 12583 : tree _q20 = TREE_OPERAND (_p0, 0);
5449 12583 : tree _q21 = TREE_OPERAND (_p0, 1);
5450 12583 : switch (TREE_CODE (_q21))
5451 : {
5452 3490 : case INTEGER_CST:
5453 3490 : {
5454 3490 : switch (TREE_CODE (_p1))
5455 : {
5456 1457 : case INTEGER_CST:
5457 1457 : {
5458 1457 : {
5459 1457 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5460 1457 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, LT_EXPR);
5461 1457 : if (res) return res;
5462 : }
5463 698 : break;
5464 : }
5465 : default:;
5466 : }
5467 : break;
5468 : }
5469 : default:;
5470 : }
5471 : break;
5472 : }
5473 2351063 : case PLUS_EXPR:
5474 2351063 : {
5475 2351063 : tree _q20 = TREE_OPERAND (_p0, 0);
5476 2351063 : tree _q21 = TREE_OPERAND (_p0, 1);
5477 2351063 : switch (TREE_CODE (_p1))
5478 : {
5479 345295 : case PLUS_EXPR:
5480 345295 : {
5481 345295 : tree _q50 = TREE_OPERAND (_p1, 0);
5482 345295 : tree _q51 = TREE_OPERAND (_p1, 1);
5483 345295 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5484 : {
5485 137917 : {
5486 137917 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5487 137917 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5488 137917 : if (res) return res;
5489 : }
5490 : }
5491 285455 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5492 : {
5493 24 : {
5494 24 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5495 24 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5496 24 : if (res) return res;
5497 : }
5498 : }
5499 285439 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5500 : {
5501 48 : {
5502 48 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5503 48 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5504 48 : if (res) return res;
5505 : }
5506 : }
5507 285423 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5508 : {
5509 1735 : {
5510 1735 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5511 1735 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5512 1735 : if (res) return res;
5513 : }
5514 : }
5515 : break;
5516 : }
5517 2290841 : default:;
5518 : }
5519 2290841 : switch (TREE_CODE (_q21))
5520 : {
5521 1773182 : case INTEGER_CST:
5522 1773182 : {
5523 1773182 : switch (TREE_CODE (_p1))
5524 : {
5525 279839 : case PLUS_EXPR:
5526 279839 : {
5527 279839 : tree _q50 = TREE_OPERAND (_p1, 0);
5528 279839 : tree _q51 = TREE_OPERAND (_p1, 1);
5529 279839 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5530 : {
5531 78077 : {
5532 78077 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5533 78077 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5534 78077 : if (res) return res;
5535 : }
5536 : }
5537 : break;
5538 : }
5539 : default:;
5540 : }
5541 : break;
5542 : }
5543 2290836 : default:;
5544 : }
5545 2290836 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5546 : {
5547 213737 : {
5548 213737 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5549 213737 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5550 213737 : if (res) return res;
5551 : }
5552 : }
5553 2104471 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5554 : {
5555 55750 : {
5556 55750 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5557 55750 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5558 55750 : if (res) return res;
5559 : }
5560 : }
5561 : break;
5562 : }
5563 190497 : case MINUS_EXPR:
5564 190497 : {
5565 190497 : tree _q20 = TREE_OPERAND (_p0, 0);
5566 190497 : tree _q21 = TREE_OPERAND (_p0, 1);
5567 190497 : switch (TREE_CODE (_p1))
5568 : {
5569 5225 : case MINUS_EXPR:
5570 5225 : {
5571 5225 : tree _q50 = TREE_OPERAND (_p1, 0);
5572 5225 : tree _q51 = TREE_OPERAND (_p1, 1);
5573 5225 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5574 : {
5575 4 : {
5576 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5577 4 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LT_EXPR);
5578 4 : if (res) return res;
5579 : }
5580 : }
5581 5225 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5582 : {
5583 215 : {
5584 215 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5585 215 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR);
5586 215 : if (res) return res;
5587 : }
5588 : }
5589 : break;
5590 : }
5591 : default:;
5592 : }
5593 : break;
5594 : }
5595 112985 : case POINTER_DIFF_EXPR:
5596 112985 : {
5597 112985 : tree _q20 = TREE_OPERAND (_p0, 0);
5598 112985 : tree _q21 = TREE_OPERAND (_p0, 1);
5599 112985 : switch (TREE_CODE (_p1))
5600 : {
5601 430 : case POINTER_DIFF_EXPR:
5602 430 : {
5603 430 : tree _q50 = TREE_OPERAND (_p1, 0);
5604 430 : tree _q51 = TREE_OPERAND (_p1, 1);
5605 430 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5606 : {
5607 0 : {
5608 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5609 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, LT_EXPR);
5610 0 : if (res) return res;
5611 : }
5612 : }
5613 430 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5614 : {
5615 0 : {
5616 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5617 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, LT_EXPR);
5618 0 : if (res) return res;
5619 : }
5620 : }
5621 : break;
5622 : }
5623 : default:;
5624 : }
5625 : break;
5626 : }
5627 17231899 : default:;
5628 : }
5629 17231899 : switch (TREE_CODE (_p1))
5630 : {
5631 354093 : case PLUS_EXPR:
5632 354093 : {
5633 354093 : tree _q30 = TREE_OPERAND (_p1, 0);
5634 354093 : tree _q31 = TREE_OPERAND (_p1, 1);
5635 354093 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5636 : {
5637 120 : {
5638 120 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5639 120 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
5640 120 : if (res) return res;
5641 : }
5642 : }
5643 353973 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5644 : {
5645 80 : {
5646 80 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5647 80 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
5648 80 : if (res) return res;
5649 : }
5650 : }
5651 : break;
5652 : }
5653 23707 : case MINUS_EXPR:
5654 23707 : {
5655 23707 : tree _q30 = TREE_OPERAND (_p1, 0);
5656 23707 : tree _q31 = TREE_OPERAND (_p1, 1);
5657 23707 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5658 : {
5659 0 : {
5660 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5661 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LT_EXPR);
5662 0 : if (res) return res;
5663 : }
5664 : }
5665 : break;
5666 : }
5667 17231779 : default:;
5668 : }
5669 17231779 : switch (TREE_CODE (_p0))
5670 : {
5671 190497 : case MINUS_EXPR:
5672 190497 : {
5673 190497 : tree _q20 = TREE_OPERAND (_p0, 0);
5674 190497 : tree _q21 = TREE_OPERAND (_p0, 1);
5675 190497 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5676 : {
5677 3356 : {
5678 3356 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5679 3356 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GT_EXPR);
5680 3356 : if (res) return res;
5681 : }
5682 : }
5683 : break;
5684 : }
5685 1467 : case BIT_IOR_EXPR:
5686 1467 : {
5687 1467 : tree _q20 = TREE_OPERAND (_p0, 0);
5688 1467 : tree _q21 = TREE_OPERAND (_p0, 1);
5689 1467 : if (tree_expr_nonnegative_p (_q20))
5690 : {
5691 555 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5692 : {
5693 0 : {
5694 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5695 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5696 0 : if (res) return res;
5697 : }
5698 : }
5699 : }
5700 1467 : if (tree_expr_nonnegative_p (_q21))
5701 : {
5702 813 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5703 : {
5704 0 : {
5705 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5706 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5707 0 : if (res) return res;
5708 : }
5709 : }
5710 : }
5711 : break;
5712 : }
5713 17229355 : default:;
5714 : }
5715 17229355 : switch (TREE_CODE (_p1))
5716 : {
5717 458 : case BIT_AND_EXPR:
5718 458 : {
5719 458 : tree _q30 = TREE_OPERAND (_p1, 0);
5720 458 : tree _q31 = TREE_OPERAND (_p1, 1);
5721 458 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5722 : {
5723 0 : if (tree_expr_nonnegative_p (_q30))
5724 : {
5725 0 : {
5726 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5727 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5728 0 : if (res) return res;
5729 : }
5730 : }
5731 : }
5732 458 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5733 : {
5734 0 : if (tree_expr_nonnegative_p (_q31))
5735 : {
5736 0 : {
5737 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5738 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5739 0 : if (res) return res;
5740 : }
5741 : }
5742 : }
5743 : break;
5744 : }
5745 17229355 : default:;
5746 : }
5747 17229355 : switch (TREE_CODE (_p0))
5748 : {
5749 10137 : case MAX_EXPR:
5750 10137 : {
5751 10137 : tree _q20 = TREE_OPERAND (_p0, 0);
5752 10137 : tree _q21 = TREE_OPERAND (_p0, 1);
5753 10137 : switch (TREE_CODE (_p1))
5754 : {
5755 8 : case MIN_EXPR:
5756 8 : {
5757 8 : tree _q50 = TREE_OPERAND (_p1, 0);
5758 8 : tree _q51 = TREE_OPERAND (_p1, 1);
5759 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5760 : {
5761 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5762 : {
5763 0 : {
5764 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5765 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GT_EXPR);
5766 0 : if (res) return res;
5767 : }
5768 : }
5769 : }
5770 : break;
5771 : }
5772 : default:;
5773 : }
5774 : break;
5775 : }
5776 9782 : case MIN_EXPR:
5777 9782 : {
5778 9782 : tree _q20 = TREE_OPERAND (_p0, 0);
5779 9782 : tree _q21 = TREE_OPERAND (_p0, 1);
5780 9782 : switch (TREE_CODE (_p1))
5781 : {
5782 0 : case MAX_EXPR:
5783 0 : {
5784 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5785 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5786 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5787 : {
5788 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5789 : {
5790 0 : {
5791 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5792 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
5793 0 : if (res) return res;
5794 : }
5795 : }
5796 : }
5797 : break;
5798 : }
5799 9782 : default:;
5800 : }
5801 9782 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5802 : {
5803 1 : {
5804 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5805 1 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5806 1 : if (res) return res;
5807 : }
5808 : }
5809 9781 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5810 : {
5811 5 : {
5812 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5813 5 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5814 5 : if (res) return res;
5815 : }
5816 : }
5817 : break;
5818 : }
5819 17229352 : default:;
5820 : }
5821 17229352 : switch (TREE_CODE (_p1))
5822 : {
5823 1013 : case MAX_EXPR:
5824 1013 : {
5825 1013 : tree _q30 = TREE_OPERAND (_p1, 0);
5826 1013 : tree _q31 = TREE_OPERAND (_p1, 1);
5827 1013 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5828 : {
5829 0 : {
5830 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5831 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5832 0 : if (res) return res;
5833 : }
5834 : }
5835 1013 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5836 : {
5837 0 : {
5838 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5839 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5840 0 : if (res) return res;
5841 : }
5842 : }
5843 : break;
5844 : }
5845 911 : case MIN_EXPR:
5846 911 : {
5847 911 : tree _q30 = TREE_OPERAND (_p1, 0);
5848 911 : tree _q31 = TREE_OPERAND (_p1, 1);
5849 911 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5850 : {
5851 0 : {
5852 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5853 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5854 0 : if (res) return res;
5855 : }
5856 : }
5857 911 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5858 : {
5859 0 : {
5860 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5861 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5862 0 : if (res) return res;
5863 : }
5864 : }
5865 : break;
5866 : }
5867 17229352 : default:;
5868 : }
5869 17229352 : switch (TREE_CODE (_p0))
5870 : {
5871 10137 : case MAX_EXPR:
5872 10137 : {
5873 10137 : tree _q20 = TREE_OPERAND (_p0, 0);
5874 10137 : tree _q21 = TREE_OPERAND (_p0, 1);
5875 10137 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5876 : {
5877 1 : {
5878 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5879 1 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5880 1 : if (res) return res;
5881 : }
5882 : }
5883 10136 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5884 : {
5885 1 : {
5886 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5887 1 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5888 1 : if (res) return res;
5889 : }
5890 : }
5891 10135 : switch (TREE_CODE (_q21))
5892 : {
5893 9606 : case INTEGER_CST:
5894 9606 : {
5895 9606 : switch (TREE_CODE (_p1))
5896 : {
5897 1 : case INTEGER_CST:
5898 1 : {
5899 1 : {
5900 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5901 1 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
5902 1 : if (res) return res;
5903 : }
5904 0 : break;
5905 : }
5906 : default:;
5907 : }
5908 : break;
5909 : }
5910 : default:;
5911 : }
5912 : break;
5913 : }
5914 9779 : case MIN_EXPR:
5915 9779 : {
5916 9779 : tree _q20 = TREE_OPERAND (_p0, 0);
5917 9779 : tree _q21 = TREE_OPERAND (_p0, 1);
5918 9779 : switch (TREE_CODE (_q21))
5919 : {
5920 774 : case INTEGER_CST:
5921 774 : {
5922 774 : switch (TREE_CODE (_p1))
5923 : {
5924 2 : case INTEGER_CST:
5925 2 : {
5926 2 : {
5927 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5928 2 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
5929 2 : if (res) return res;
5930 : }
5931 0 : break;
5932 : }
5933 : default:;
5934 : }
5935 : break;
5936 : }
5937 : default:;
5938 : }
5939 : break;
5940 : }
5941 3129418 : CASE_CONVERT:
5942 3129418 : {
5943 3129418 : tree _q20 = TREE_OPERAND (_p0, 0);
5944 3129418 : switch (TREE_CODE (_q20))
5945 : {
5946 0 : case GE_EXPR:
5947 0 : {
5948 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5949 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5950 0 : if (tree_zero_one_valued_p (_q30))
5951 : {
5952 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5953 : {
5954 0 : {
5955 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
5956 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LT_EXPR);
5957 0 : if (res) return res;
5958 : }
5959 : }
5960 : }
5961 : break;
5962 : }
5963 : default:;
5964 : }
5965 : break;
5966 : }
5967 15 : case GE_EXPR:
5968 15 : {
5969 15 : tree _q20 = TREE_OPERAND (_p0, 0);
5970 15 : tree _q21 = TREE_OPERAND (_p0, 1);
5971 15 : if (tree_zero_one_valued_p (_q20))
5972 : {
5973 3 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5974 : {
5975 3 : {
5976 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5977 3 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LT_EXPR);
5978 3 : if (res) return res;
5979 : }
5980 : }
5981 : }
5982 : break;
5983 : }
5984 904 : case VEC_COND_EXPR:
5985 904 : {
5986 904 : tree _q20 = TREE_OPERAND (_p0, 0);
5987 904 : tree _q21 = TREE_OPERAND (_p0, 1);
5988 904 : tree _q22 = TREE_OPERAND (_p0, 2);
5989 904 : switch (TREE_CODE (_p1))
5990 : {
5991 0 : case VEC_COND_EXPR:
5992 0 : {
5993 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5994 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5995 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5996 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5997 : {
5998 0 : {
5999 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
6000 0 : if (VECTOR_TYPE_P (type)
6001 0 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
6002 0 : || types_match (type, TREE_TYPE (captures[2]))
6003 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
6004 : || (optimize_vectors_before_lowering_p ()
6005 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
6006 : )
6007 : {
6008 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1631;
6009 0 : {
6010 0 : tree res_op0;
6011 0 : res_op0 = captures[1];
6012 0 : tree res_op1;
6013 0 : {
6014 0 : tree _o1[2], _r1;
6015 0 : _o1[0] = captures[2];
6016 0 : _o1[1] = captures[5];
6017 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6018 0 : if (EXPR_P (_r1))
6019 0 : goto next_after_fail1631;
6020 0 : res_op1 = _r1;
6021 : }
6022 0 : tree res_op2;
6023 0 : {
6024 0 : tree _o1[2], _r1;
6025 0 : _o1[0] = captures[3];
6026 0 : _o1[1] = captures[6];
6027 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6028 0 : if (EXPR_P (_r1))
6029 0 : goto next_after_fail1631;
6030 0 : res_op2 = _r1;
6031 : }
6032 0 : tree _r;
6033 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6034 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
6035 0 : return _r;
6036 : }
6037 0 : next_after_fail1631:;
6038 : }
6039 : }
6040 : }
6041 : break;
6042 : }
6043 904 : default:;
6044 : }
6045 904 : {
6046 904 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
6047 904 : if (VECTOR_TYPE_P (type)
6048 904 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
6049 904 : || types_match (type, TREE_TYPE (captures[2]))
6050 904 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
6051 : || (optimize_vectors_before_lowering_p ()
6052 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
6053 : )
6054 : {
6055 904 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1632;
6056 904 : {
6057 904 : if (! tree_invariant_p (captures[4])) goto next_after_fail1632;
6058 36 : tree res_op0;
6059 36 : res_op0 = captures[1];
6060 36 : tree res_op1;
6061 36 : {
6062 36 : tree _o1[2], _r1;
6063 36 : _o1[0] = captures[2];
6064 36 : _o1[1] = unshare_expr (captures[4]);
6065 36 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6066 36 : if (EXPR_P (_r1))
6067 35 : goto next_after_fail1632;
6068 1 : res_op1 = _r1;
6069 : }
6070 1 : tree res_op2;
6071 1 : {
6072 1 : tree _o1[2], _r1;
6073 1 : _o1[0] = captures[3];
6074 1 : _o1[1] = captures[4];
6075 1 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6076 1 : if (EXPR_P (_r1))
6077 0 : goto next_after_fail1632;
6078 1 : res_op2 = _r1;
6079 : }
6080 1 : tree _r;
6081 1 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6082 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
6083 1 : return _r;
6084 : }
6085 903 : next_after_fail1632:;
6086 : }
6087 : }
6088 903 : break;
6089 : }
6090 17229343 : default:;
6091 : }
6092 17229343 : switch (TREE_CODE (_p1))
6093 : {
6094 68 : case VEC_COND_EXPR:
6095 68 : {
6096 68 : tree _q30 = TREE_OPERAND (_p1, 0);
6097 68 : tree _q31 = TREE_OPERAND (_p1, 1);
6098 68 : tree _q32 = TREE_OPERAND (_p1, 2);
6099 68 : {
6100 68 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
6101 68 : if (VECTOR_TYPE_P (type)
6102 68 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
6103 68 : || types_match (type, TREE_TYPE (captures[3]))
6104 68 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
6105 : || (optimize_vectors_before_lowering_p ()
6106 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
6107 : )
6108 : {
6109 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1633;
6110 68 : {
6111 68 : if (! tree_invariant_p (captures[0])) goto next_after_fail1633;
6112 0 : tree res_op0;
6113 0 : res_op0 = captures[2];
6114 0 : tree res_op1;
6115 0 : {
6116 0 : tree _o1[2], _r1;
6117 0 : _o1[0] = unshare_expr (captures[0]);
6118 0 : _o1[1] = captures[3];
6119 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6120 0 : if (EXPR_P (_r1))
6121 0 : goto next_after_fail1633;
6122 0 : res_op1 = _r1;
6123 : }
6124 0 : tree res_op2;
6125 0 : {
6126 0 : tree _o1[2], _r1;
6127 0 : _o1[0] = captures[0];
6128 0 : _o1[1] = captures[4];
6129 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6130 0 : if (EXPR_P (_r1))
6131 0 : goto next_after_fail1633;
6132 0 : res_op2 = _r1;
6133 : }
6134 0 : tree _r;
6135 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6136 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
6137 0 : return _r;
6138 : }
6139 68 : next_after_fail1633:;
6140 : }
6141 : }
6142 68 : break;
6143 : }
6144 17229343 : default:;
6145 : }
6146 17229343 : if (uniform_integer_cst_p (_p1))
6147 : {
6148 6275233 : {
6149 6275233 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6150 6275233 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6151 6275233 : if (res) return res;
6152 : }
6153 : }
6154 14750877 : switch (TREE_CODE (_p0))
6155 : {
6156 126300 : case MULT_EXPR:
6157 126300 : {
6158 126300 : tree _q20 = TREE_OPERAND (_p0, 0);
6159 126300 : tree _q21 = TREE_OPERAND (_p0, 1);
6160 126300 : switch (TREE_CODE (_q21))
6161 : {
6162 69172 : case INTEGER_CST:
6163 69172 : {
6164 69172 : if (integer_zerop (_p1))
6165 : {
6166 5828 : {
6167 5828 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6168 5828 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6169 5828 : if (res) return res;
6170 : }
6171 : }
6172 : break;
6173 : }
6174 : default:;
6175 : }
6176 : break;
6177 : }
6178 14747885 : default:;
6179 : }
6180 14747885 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
6181 : {
6182 3835 : {
6183 3835 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6184 3835 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, LT_EXPR);
6185 3835 : if (res) return res;
6186 : }
6187 : }
6188 14744050 : switch (TREE_CODE (_p0))
6189 : {
6190 2484 : case BIT_NOT_EXPR:
6191 2484 : {
6192 2484 : tree _q20 = TREE_OPERAND (_p0, 0);
6193 2484 : switch (TREE_CODE (_p1))
6194 : {
6195 7 : case BIT_NOT_EXPR:
6196 7 : {
6197 7 : tree _q40 = TREE_OPERAND (_p1, 0);
6198 7 : {
6199 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
6200 7 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, LT_EXPR);
6201 7 : if (res) return res;
6202 : }
6203 0 : break;
6204 : }
6205 2477 : default:;
6206 : }
6207 2477 : {
6208 2477 : tree _p1_pops[1];
6209 2477 : if (tree_nop_convert (_p1, _p1_pops))
6210 : {
6211 24 : tree _q40 = _p1_pops[0];
6212 24 : switch (TREE_CODE (_q40))
6213 : {
6214 0 : case BIT_NOT_EXPR:
6215 0 : {
6216 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6217 0 : {
6218 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
6219 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, LT_EXPR);
6220 0 : if (res) return res;
6221 : }
6222 0 : break;
6223 : }
6224 : default:;
6225 : }
6226 : }
6227 : }
6228 2477 : if (CONSTANT_CLASS_P (_p1))
6229 : {
6230 20 : {
6231 20 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6232 20 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6233 20 : if (res) return res;
6234 : }
6235 : }
6236 : break;
6237 : }
6238 14744023 : default:;
6239 : }
6240 14744023 : {
6241 14744023 : tree _p0_pops[1];
6242 14744023 : if (tree_nop_convert (_p0, _p0_pops))
6243 : {
6244 1703402 : tree _q20 = _p0_pops[0];
6245 1703402 : switch (TREE_CODE (_q20))
6246 : {
6247 0 : case BIT_NOT_EXPR:
6248 0 : {
6249 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6250 0 : switch (TREE_CODE (_p1))
6251 : {
6252 0 : case BIT_NOT_EXPR:
6253 0 : {
6254 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6255 0 : {
6256 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
6257 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR);
6258 0 : if (res) return res;
6259 : }
6260 0 : break;
6261 : }
6262 0 : default:;
6263 : }
6264 0 : {
6265 0 : tree _p1_pops[1];
6266 0 : if (tree_nop_convert (_p1, _p1_pops))
6267 : {
6268 0 : tree _q50 = _p1_pops[0];
6269 0 : switch (TREE_CODE (_q50))
6270 : {
6271 0 : case BIT_NOT_EXPR:
6272 0 : {
6273 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6274 0 : {
6275 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
6276 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR);
6277 0 : if (res) return res;
6278 : }
6279 0 : break;
6280 : }
6281 : default:;
6282 : }
6283 : }
6284 : }
6285 0 : if (CONSTANT_CLASS_P (_p1))
6286 : {
6287 0 : {
6288 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
6289 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6290 0 : if (res) return res;
6291 : }
6292 : }
6293 : break;
6294 : }
6295 : default:;
6296 : }
6297 : }
6298 : }
6299 14744023 : switch (TREE_CODE (_p1))
6300 : {
6301 2944720 : case REAL_CST:
6302 2944720 : {
6303 2944720 : {
6304 2944720 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6305 2944720 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR);
6306 2944720 : if (res) return res;
6307 : }
6308 2944638 : break;
6309 : }
6310 14743941 : default:;
6311 : }
6312 14743941 : switch (TREE_CODE (_p0))
6313 : {
6314 1981013 : case PLUS_EXPR:
6315 1981013 : {
6316 1981013 : tree _q20 = TREE_OPERAND (_p0, 0);
6317 1981013 : tree _q21 = TREE_OPERAND (_p0, 1);
6318 1981013 : switch (TREE_CODE (_q21))
6319 : {
6320 567 : case REAL_CST:
6321 567 : {
6322 567 : switch (TREE_CODE (_p1))
6323 : {
6324 217 : case REAL_CST:
6325 217 : {
6326 217 : {
6327 217 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6328 217 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR);
6329 217 : if (res) return res;
6330 : }
6331 215 : break;
6332 : }
6333 : default:;
6334 : }
6335 : break;
6336 : }
6337 1472121 : case INTEGER_CST:
6338 1472121 : {
6339 1472121 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6340 : {
6341 17977 : {
6342 17977 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
6343 17977 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6344 17977 : if (res) return res;
6345 : }
6346 : }
6347 : break;
6348 : }
6349 : default:;
6350 : }
6351 : break;
6352 : }
6353 180851 : case MINUS_EXPR:
6354 180851 : {
6355 180851 : tree _q20 = TREE_OPERAND (_p0, 0);
6356 180851 : tree _q21 = TREE_OPERAND (_p0, 1);
6357 180851 : switch (TREE_CODE (_q21))
6358 : {
6359 210 : case REAL_CST:
6360 210 : {
6361 210 : switch (TREE_CODE (_p1))
6362 : {
6363 195 : case REAL_CST:
6364 195 : {
6365 195 : {
6366 195 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6367 195 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, MINUS_EXPR, LT_EXPR);
6368 195 : if (res) return res;
6369 : }
6370 195 : break;
6371 : }
6372 : default:;
6373 : }
6374 : break;
6375 : }
6376 180851 : default:;
6377 : }
6378 180851 : switch (TREE_CODE (_q20))
6379 : {
6380 18997 : case REAL_CST:
6381 18997 : {
6382 18997 : switch (TREE_CODE (_p1))
6383 : {
6384 18784 : case REAL_CST:
6385 18784 : {
6386 18784 : {
6387 18784 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6388 18784 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LT_EXPR);
6389 18784 : if (res) return res;
6390 : }
6391 18774 : break;
6392 : }
6393 : default:;
6394 : }
6395 : break;
6396 : }
6397 : default:;
6398 : }
6399 : break;
6400 : }
6401 49423 : case FLOAT_EXPR:
6402 49423 : {
6403 49423 : tree _q20 = TREE_OPERAND (_p0, 0);
6404 49423 : switch (TREE_CODE (_p1))
6405 : {
6406 102 : case FLOAT_EXPR:
6407 102 : {
6408 102 : tree _q40 = TREE_OPERAND (_p1, 0);
6409 102 : {
6410 102 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6411 102 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
6412 102 : if (res) return res;
6413 : }
6414 71 : break;
6415 : }
6416 656 : case REAL_CST:
6417 656 : {
6418 656 : {
6419 656 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6420 656 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6421 656 : if (res) return res;
6422 : }
6423 552 : break;
6424 : }
6425 : default:;
6426 : }
6427 : break;
6428 : }
6429 694 : case EXACT_DIV_EXPR:
6430 694 : {
6431 694 : tree _q20 = TREE_OPERAND (_p0, 0);
6432 694 : tree _q21 = TREE_OPERAND (_p0, 1);
6433 694 : switch (TREE_CODE (_q21))
6434 : {
6435 694 : case INTEGER_CST:
6436 694 : {
6437 694 : switch (TREE_CODE (_p1))
6438 : {
6439 19 : case INTEGER_CST:
6440 19 : {
6441 19 : {
6442 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6443 19 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LT_EXPR);
6444 19 : if (res) return res;
6445 : }
6446 0 : break;
6447 : }
6448 : default:;
6449 : }
6450 : break;
6451 : }
6452 : default:;
6453 : }
6454 : break;
6455 : }
6456 2675997 : CASE_CONVERT:
6457 2675997 : {
6458 2675997 : tree _q20 = TREE_OPERAND (_p0, 0);
6459 2675997 : switch (TREE_CODE (_q20))
6460 : {
6461 107 : case EXACT_DIV_EXPR:
6462 107 : {
6463 107 : tree _q30 = TREE_OPERAND (_q20, 0);
6464 107 : tree _q31 = TREE_OPERAND (_q20, 1);
6465 107 : switch (TREE_CODE (_q31))
6466 : {
6467 107 : case INTEGER_CST:
6468 107 : {
6469 107 : switch (TREE_CODE (_p1))
6470 : {
6471 0 : case INTEGER_CST:
6472 0 : {
6473 0 : {
6474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6475 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
6476 0 : if (res) return res;
6477 : }
6478 0 : break;
6479 : }
6480 : default:;
6481 : }
6482 : break;
6483 : }
6484 : default:;
6485 : }
6486 : break;
6487 : }
6488 2675997 : default:;
6489 : }
6490 2675997 : switch (TREE_CODE (_p1))
6491 : {
6492 1396605 : CASE_CONVERT:
6493 1396605 : {
6494 1396605 : tree _q40 = TREE_OPERAND (_p1, 0);
6495 1396605 : {
6496 1396605 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6497 1396605 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, LT_EXPR);
6498 1396605 : if (res) return res;
6499 : }
6500 1138729 : break;
6501 : }
6502 2418121 : default:;
6503 : }
6504 2418121 : {
6505 2418121 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6506 2418121 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LT_EXPR);
6507 2418121 : if (res) return res;
6508 : }
6509 2027536 : switch (TREE_CODE (_q20))
6510 : {
6511 50924 : case ADDR_EXPR:
6512 50924 : {
6513 50924 : switch (TREE_CODE (_p1))
6514 : {
6515 50352 : CASE_CONVERT:
6516 50352 : {
6517 50352 : tree _q40 = TREE_OPERAND (_p1, 0);
6518 50352 : switch (TREE_CODE (_q40))
6519 : {
6520 50352 : case ADDR_EXPR:
6521 50352 : {
6522 50352 : {
6523 50352 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6524 50352 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LT_EXPR);
6525 50352 : if (res) return res;
6526 : }
6527 314 : break;
6528 : }
6529 : default:;
6530 : }
6531 : break;
6532 : }
6533 475 : case ADDR_EXPR:
6534 475 : {
6535 475 : {
6536 475 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6537 475 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LT_EXPR);
6538 475 : if (res) return res;
6539 : }
6540 0 : break;
6541 : }
6542 : default:;
6543 : }
6544 : break;
6545 : }
6546 1977023 : default:;
6547 : }
6548 1977023 : if (uniform_integer_cst_p (_p1))
6549 : {
6550 300482 : {
6551 300482 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6552 300482 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LT_EXPR);
6553 300482 : if (res) return res;
6554 : }
6555 : }
6556 : break;
6557 : }
6558 2294 : case NEGATE_EXPR:
6559 2294 : {
6560 2294 : tree _q20 = TREE_OPERAND (_p0, 0);
6561 2294 : switch (TREE_CODE (_p1))
6562 : {
6563 0 : case NEGATE_EXPR:
6564 0 : {
6565 0 : tree _q40 = TREE_OPERAND (_p1, 0);
6566 0 : {
6567 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6568 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6569 0 : if (res) return res;
6570 : }
6571 0 : break;
6572 : }
6573 2294 : default:;
6574 : }
6575 2294 : if (CONSTANT_CLASS_P (_p1))
6576 : {
6577 301 : {
6578 301 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6579 301 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6580 301 : if (res) return res;
6581 : }
6582 : }
6583 : break;
6584 : }
6585 30127 : case ADDR_EXPR:
6586 30127 : {
6587 30127 : switch (TREE_CODE (_p1))
6588 : {
6589 0 : CASE_CONVERT:
6590 0 : {
6591 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6592 0 : switch (TREE_CODE (_q30))
6593 : {
6594 0 : case ADDR_EXPR:
6595 0 : {
6596 0 : {
6597 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
6598 0 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, LT_EXPR);
6599 0 : if (res) return res;
6600 : }
6601 0 : break;
6602 : }
6603 : default:;
6604 : }
6605 : break;
6606 : }
6607 29704 : case ADDR_EXPR:
6608 29704 : {
6609 29704 : {
6610 29704 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6611 29704 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, LT_EXPR);
6612 29704 : if (res) return res;
6613 : }
6614 620 : break;
6615 : }
6616 : default:;
6617 : }
6618 : break;
6619 : }
6620 1384108 : case CALL_EXPR:
6621 1384108 : switch (get_call_combined_fn (_p0))
6622 : {
6623 5 : case CFN_BUILT_IN_SQRTF:
6624 5 : if (call_expr_nargs (_p0) == 1)
6625 : {
6626 5 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6627 5 : switch (TREE_CODE (_p1))
6628 : {
6629 5 : case REAL_CST:
6630 5 : {
6631 5 : {
6632 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6633 5 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6634 5 : if (res) return res;
6635 : }
6636 0 : break;
6637 : }
6638 0 : case CALL_EXPR:
6639 0 : switch (get_call_combined_fn (_p1))
6640 : {
6641 0 : case CFN_BUILT_IN_SQRTF:
6642 0 : if (call_expr_nargs (_p1) == 1)
6643 : {
6644 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6645 0 : {
6646 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6647 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6648 0 : if (res) return res;
6649 : }
6650 : }
6651 : break;
6652 : default:;
6653 : }
6654 : break;
6655 : default:;
6656 : }
6657 : }
6658 : break;
6659 0 : case CFN_BUILT_IN_SQRTL:
6660 0 : if (call_expr_nargs (_p0) == 1)
6661 : {
6662 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6663 0 : switch (TREE_CODE (_p1))
6664 : {
6665 0 : case REAL_CST:
6666 0 : {
6667 0 : {
6668 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6669 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6670 0 : if (res) return res;
6671 : }
6672 0 : break;
6673 : }
6674 0 : case CALL_EXPR:
6675 0 : switch (get_call_combined_fn (_p1))
6676 : {
6677 0 : case CFN_BUILT_IN_SQRTL:
6678 0 : if (call_expr_nargs (_p1) == 1)
6679 : {
6680 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6681 0 : {
6682 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6683 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6684 0 : if (res) return res;
6685 : }
6686 : }
6687 : break;
6688 : default:;
6689 : }
6690 : break;
6691 : default:;
6692 : }
6693 : }
6694 : break;
6695 4 : case CFN_BUILT_IN_SQRT:
6696 4 : if (call_expr_nargs (_p0) == 1)
6697 : {
6698 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6699 4 : switch (TREE_CODE (_p1))
6700 : {
6701 4 : case REAL_CST:
6702 4 : {
6703 4 : {
6704 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6705 4 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6706 4 : if (res) return res;
6707 : }
6708 1 : break;
6709 : }
6710 0 : case CALL_EXPR:
6711 0 : switch (get_call_combined_fn (_p1))
6712 : {
6713 0 : case CFN_BUILT_IN_SQRT:
6714 0 : if (call_expr_nargs (_p1) == 1)
6715 : {
6716 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6717 0 : {
6718 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6719 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6720 0 : if (res) return res;
6721 : }
6722 : }
6723 : break;
6724 : default:;
6725 : }
6726 : break;
6727 : default:;
6728 : }
6729 : }
6730 : break;
6731 0 : case CFN_SQRT:
6732 0 : if (call_expr_nargs (_p0) == 1)
6733 : {
6734 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6735 0 : switch (TREE_CODE (_p1))
6736 : {
6737 0 : case REAL_CST:
6738 0 : {
6739 0 : {
6740 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6741 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6742 0 : if (res) return res;
6743 : }
6744 0 : break;
6745 : }
6746 0 : case CALL_EXPR:
6747 0 : switch (get_call_combined_fn (_p1))
6748 : {
6749 0 : case CFN_SQRT:
6750 0 : if (call_expr_nargs (_p1) == 1)
6751 : {
6752 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6753 0 : {
6754 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6755 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6756 0 : if (res) return res;
6757 : }
6758 : }
6759 : break;
6760 : default:;
6761 : }
6762 : break;
6763 : default:;
6764 : }
6765 : }
6766 : break;
6767 : default:;
6768 : }
6769 : break;
6770 13994434 : default:;
6771 : }
6772 13994434 : switch (TREE_CODE (_p1))
6773 : {
6774 1886051 : CASE_CONVERT:
6775 1886051 : {
6776 1886051 : tree _q30 = TREE_OPERAND (_p1, 0);
6777 1886051 : switch (TREE_CODE (_q30))
6778 : {
6779 0 : case NE_EXPR:
6780 0 : {
6781 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6782 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6783 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6784 : {
6785 0 : if (integer_zerop (_q41))
6786 : {
6787 0 : {
6788 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6789 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
6790 : )
6791 : {
6792 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1634;
6793 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1634;
6794 0 : {
6795 0 : tree _r;
6796 0 : _r = constant_boolean_node (false, type);
6797 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
6798 0 : return _r;
6799 : }
6800 : next_after_fail1634:;
6801 : }
6802 : }
6803 : }
6804 : }
6805 : break;
6806 : }
6807 : default:;
6808 : }
6809 : break;
6810 : }
6811 13994434 : default:;
6812 : }
6813 13994434 : if (uniform_integer_cst_p (_p1))
6814 : {
6815 3400332 : {
6816 3400332 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6817 3400332 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LT_EXPR);
6818 3400332 : if (res) return res;
6819 : }
6820 : }
6821 13534418 : switch (TREE_CODE (_p0))
6822 : {
6823 1973277 : CASE_CONVERT:
6824 1973277 : {
6825 1973277 : tree _q20 = TREE_OPERAND (_p0, 0);
6826 1973277 : switch (TREE_CODE (_q20))
6827 : {
6828 83347 : case PLUS_EXPR:
6829 83347 : {
6830 83347 : tree _q30 = TREE_OPERAND (_q20, 0);
6831 83347 : tree _q31 = TREE_OPERAND (_q20, 1);
6832 83347 : switch (TREE_CODE (_q30))
6833 : {
6834 56283 : CASE_CONVERT:
6835 56283 : {
6836 56283 : tree _q40 = TREE_OPERAND (_q30, 0);
6837 56283 : switch (TREE_CODE (_q31))
6838 : {
6839 56246 : case INTEGER_CST:
6840 56246 : {
6841 56246 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6842 : {
6843 27 : {
6844 27 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
6845 27 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6846 27 : if (res) return res;
6847 : }
6848 : }
6849 : break;
6850 : }
6851 : default:;
6852 : }
6853 : break;
6854 : }
6855 : default:;
6856 : }
6857 : break;
6858 : }
6859 : default:;
6860 : }
6861 : break;
6862 : }
6863 13534391 : default:;
6864 : }
6865 13534391 : switch (TREE_CODE (_p1))
6866 : {
6867 1886051 : CASE_CONVERT:
6868 1886051 : {
6869 1886051 : tree _q30 = TREE_OPERAND (_p1, 0);
6870 1886051 : switch (TREE_CODE (_q30))
6871 : {
6872 22963 : case PLUS_EXPR:
6873 22963 : {
6874 22963 : tree _q40 = TREE_OPERAND (_q30, 0);
6875 22963 : tree _q41 = TREE_OPERAND (_q30, 1);
6876 22963 : switch (TREE_CODE (_q40))
6877 : {
6878 20788 : CASE_CONVERT:
6879 20788 : {
6880 20788 : tree _q50 = TREE_OPERAND (_q40, 0);
6881 20788 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6882 : {
6883 0 : switch (TREE_CODE (_q41))
6884 : {
6885 0 : case INTEGER_CST:
6886 0 : {
6887 0 : {
6888 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
6889 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6890 0 : if (res) return res;
6891 : }
6892 0 : break;
6893 : }
6894 : default:;
6895 : }
6896 : }
6897 : break;
6898 : }
6899 : default:;
6900 : }
6901 : break;
6902 : }
6903 : default:;
6904 : }
6905 : break;
6906 : }
6907 353973 : case PLUS_EXPR:
6908 353973 : {
6909 353973 : tree _q30 = TREE_OPERAND (_p1, 0);
6910 353973 : tree _q31 = TREE_OPERAND (_p1, 1);
6911 353973 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6912 : {
6913 80 : switch (TREE_CODE (_q31))
6914 : {
6915 64 : case INTEGER_CST:
6916 64 : {
6917 64 : {
6918 64 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
6919 64 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6920 64 : if (res) return res;
6921 : }
6922 0 : break;
6923 : }
6924 : default:;
6925 : }
6926 : }
6927 : break;
6928 : }
6929 23707 : case MINUS_EXPR:
6930 23707 : {
6931 23707 : tree _q30 = TREE_OPERAND (_p1, 0);
6932 23707 : tree _q31 = TREE_OPERAND (_p1, 1);
6933 23707 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6934 : {
6935 0 : {
6936 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
6937 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GT_EXPR);
6938 0 : if (res) return res;
6939 : }
6940 : }
6941 : break;
6942 : }
6943 13534327 : default:;
6944 : }
6945 13534327 : switch (TREE_CODE (_p0))
6946 : {
6947 1946268 : case PLUS_EXPR:
6948 1946268 : {
6949 1946268 : tree _q20 = TREE_OPERAND (_p0, 0);
6950 1946268 : tree _q21 = TREE_OPERAND (_p0, 1);
6951 1946268 : switch (TREE_CODE (_q20))
6952 : {
6953 1345 : case MINUS_EXPR:
6954 1345 : {
6955 1345 : tree _q30 = TREE_OPERAND (_q20, 0);
6956 1345 : tree _q31 = TREE_OPERAND (_q20, 1);
6957 1345 : if (integer_minus_onep (_q21))
6958 : {
6959 49 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6960 : {
6961 1 : {
6962 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6963 1 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, LT_EXPR);
6964 1 : if (res) return res;
6965 : }
6966 : }
6967 : }
6968 : break;
6969 : }
6970 : default:;
6971 : }
6972 : break;
6973 : }
6974 13534326 : default:;
6975 : }
6976 13534326 : switch (TREE_CODE (_p1))
6977 : {
6978 0 : case REALPART_EXPR:
6979 0 : {
6980 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6981 0 : switch (TREE_CODE (_q30))
6982 : {
6983 0 : case CALL_EXPR:
6984 0 : switch (get_call_combined_fn (_q30))
6985 : {
6986 0 : case CFN_SUB_OVERFLOW:
6987 0 : if (call_expr_nargs (_q30) == 2)
6988 : {
6989 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
6990 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
6991 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6992 : {
6993 0 : {
6994 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
6995 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
6996 0 : if (res) return res;
6997 : }
6998 : }
6999 : }
7000 : break;
7001 : default:;
7002 : }
7003 : break;
7004 : default:;
7005 : }
7006 : break;
7007 : }
7008 13534326 : default:;
7009 : }
7010 13534326 : switch (TREE_CODE (_p0))
7011 : {
7012 20 : case REALPART_EXPR:
7013 20 : {
7014 20 : tree _q20 = TREE_OPERAND (_p0, 0);
7015 20 : switch (TREE_CODE (_q20))
7016 : {
7017 0 : case CALL_EXPR:
7018 0 : switch (get_call_combined_fn (_q20))
7019 : {
7020 0 : case CFN_ADD_OVERFLOW:
7021 0 : if (call_expr_nargs (_q20) == 2)
7022 : {
7023 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
7024 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
7025 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7026 : {
7027 0 : {
7028 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7029 0 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7030 0 : if (res) return res;
7031 : }
7032 : }
7033 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
7034 : {
7035 0 : {
7036 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
7037 0 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7038 0 : if (res) return res;
7039 : }
7040 : }
7041 : }
7042 : break;
7043 : default:;
7044 : }
7045 : break;
7046 : default:;
7047 : }
7048 : break;
7049 : }
7050 7351 : case TRUNC_DIV_EXPR:
7051 7351 : {
7052 7351 : tree _q20 = TREE_OPERAND (_p0, 0);
7053 7351 : tree _q21 = TREE_OPERAND (_p0, 1);
7054 7351 : if (integer_all_onesp (_q20))
7055 : {
7056 1058 : {
7057 1058 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
7058 1058 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7059 1058 : if (res) return res;
7060 : }
7061 : }
7062 : break;
7063 : }
7064 118587 : case MULT_EXPR:
7065 118587 : {
7066 118587 : tree _q20 = TREE_OPERAND (_p0, 0);
7067 118587 : tree _q21 = TREE_OPERAND (_p0, 1);
7068 118587 : switch (TREE_CODE (_q21))
7069 : {
7070 11704 : case REAL_CST:
7071 11704 : {
7072 11704 : switch (TREE_CODE (_p1))
7073 : {
7074 830 : case REAL_CST:
7075 830 : {
7076 830 : {
7077 830 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7078 830 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
7079 830 : if (res) return res;
7080 : }
7081 830 : break;
7082 : }
7083 : default:;
7084 : }
7085 : break;
7086 : }
7087 : default:;
7088 : }
7089 : break;
7090 : }
7091 1946267 : case PLUS_EXPR:
7092 1946267 : {
7093 1946267 : tree _q20 = TREE_OPERAND (_p0, 0);
7094 1946267 : tree _q21 = TREE_OPERAND (_p0, 1);
7095 1946267 : switch (TREE_CODE (_q21))
7096 : {
7097 1452761 : case INTEGER_CST:
7098 1452761 : {
7099 1452761 : switch (TREE_CODE (_p1))
7100 : {
7101 232580 : case INTEGER_CST:
7102 232580 : {
7103 232580 : {
7104 232580 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7105 232580 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR, GT_EXPR);
7106 232580 : if (res) return res;
7107 : }
7108 15222 : break;
7109 : }
7110 : default:;
7111 : }
7112 : break;
7113 : }
7114 : default:;
7115 : }
7116 : break;
7117 : }
7118 180679 : case MINUS_EXPR:
7119 180679 : {
7120 180679 : tree _q20 = TREE_OPERAND (_p0, 0);
7121 180679 : tree _q21 = TREE_OPERAND (_p0, 1);
7122 180679 : switch (TREE_CODE (_q21))
7123 : {
7124 0 : case INTEGER_CST:
7125 0 : {
7126 0 : switch (TREE_CODE (_p1))
7127 : {
7128 0 : case INTEGER_CST:
7129 0 : {
7130 0 : {
7131 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7132 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR, GT_EXPR);
7133 0 : if (res) return res;
7134 : }
7135 0 : break;
7136 : }
7137 : default:;
7138 : }
7139 : break;
7140 : }
7141 180679 : default:;
7142 : }
7143 180679 : switch (TREE_CODE (_q20))
7144 : {
7145 42901 : case INTEGER_CST:
7146 42901 : {
7147 42901 : switch (TREE_CODE (_p1))
7148 : {
7149 1645 : case INTEGER_CST:
7150 1645 : {
7151 1645 : {
7152 1645 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7153 1645 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
7154 1645 : if (res) return res;
7155 : }
7156 0 : break;
7157 : }
7158 : default:;
7159 : }
7160 : break;
7161 : }
7162 : default:;
7163 : }
7164 : break;
7165 : }
7166 1384085 : case CALL_EXPR:
7167 1384085 : switch (get_call_combined_fn (_p0))
7168 : {
7169 3 : case CFN_BUILT_IN_CTZ:
7170 3 : if (call_expr_nargs (_p0) == 1)
7171 : {
7172 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7173 3 : switch (TREE_CODE (_p1))
7174 : {
7175 3 : case INTEGER_CST:
7176 3 : {
7177 3 : {
7178 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7179 3 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
7180 3 : if (res) return res;
7181 : }
7182 0 : break;
7183 : }
7184 : default:;
7185 : }
7186 : }
7187 : break;
7188 2 : case CFN_BUILT_IN_CTZL:
7189 2 : if (call_expr_nargs (_p0) == 1)
7190 : {
7191 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7192 2 : switch (TREE_CODE (_p1))
7193 : {
7194 2 : case INTEGER_CST:
7195 2 : {
7196 2 : {
7197 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7198 2 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
7199 2 : if (res) return res;
7200 : }
7201 0 : break;
7202 : }
7203 : default:;
7204 : }
7205 : }
7206 : break;
7207 0 : case CFN_BUILT_IN_CTZIMAX:
7208 0 : if (call_expr_nargs (_p0) == 1)
7209 : {
7210 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7211 0 : switch (TREE_CODE (_p1))
7212 : {
7213 0 : case INTEGER_CST:
7214 0 : {
7215 0 : {
7216 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7217 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
7218 0 : if (res) return res;
7219 : }
7220 0 : break;
7221 : }
7222 : default:;
7223 : }
7224 : }
7225 : break;
7226 0 : case CFN_CTZ:
7227 0 : if (call_expr_nargs (_p0) == 1)
7228 : {
7229 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7230 0 : switch (TREE_CODE (_p1))
7231 : {
7232 0 : case INTEGER_CST:
7233 0 : {
7234 0 : {
7235 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7236 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_CTZ);
7237 0 : if (res) return res;
7238 : }
7239 0 : break;
7240 : }
7241 : default:;
7242 : }
7243 : }
7244 0 : if (call_expr_nargs (_p0) == 2)
7245 : {
7246 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7247 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7248 0 : switch (TREE_CODE (_p1))
7249 : {
7250 0 : case INTEGER_CST:
7251 0 : {
7252 0 : {
7253 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7254 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7255 0 : if (res) return res;
7256 : }
7257 0 : break;
7258 : }
7259 : default:;
7260 : }
7261 : }
7262 : break;
7263 2 : case CFN_BUILT_IN_CTZLL:
7264 2 : if (call_expr_nargs (_p0) == 1)
7265 : {
7266 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7267 2 : switch (TREE_CODE (_p1))
7268 : {
7269 2 : case INTEGER_CST:
7270 2 : {
7271 2 : {
7272 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7273 2 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
7274 2 : if (res) return res;
7275 : }
7276 0 : break;
7277 : }
7278 : default:;
7279 : }
7280 : }
7281 : break;
7282 : default:;
7283 : }
7284 : break;
7285 : default:;
7286 : }
7287 : return NULL_TREE;
7288 : }
7289 :
7290 : tree
7291 20783466 : generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7292 : {
7293 20783466 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7294 20783466 : switch (TREE_CODE (_p0))
7295 : {
7296 1006 : case RDIV_EXPR:
7297 1006 : {
7298 1006 : tree _q20 = TREE_OPERAND (_p0, 0);
7299 1006 : tree _q21 = TREE_OPERAND (_p0, 1);
7300 1006 : switch (TREE_CODE (_q20))
7301 : {
7302 29 : case REAL_CST:
7303 29 : {
7304 29 : if (real_zerop (_p1))
7305 : {
7306 0 : {
7307 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7308 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7309 0 : if (res) return res;
7310 : }
7311 : }
7312 : break;
7313 : }
7314 : default:;
7315 : }
7316 : break;
7317 : }
7318 20783466 : default:;
7319 : }
7320 20783466 : switch (TREE_CODE (_p1))
7321 : {
7322 96 : case TRUNC_MOD_EXPR:
7323 96 : {
7324 96 : tree _q30 = TREE_OPERAND (_p1, 0);
7325 96 : tree _q31 = TREE_OPERAND (_p1, 1);
7326 96 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7327 : {
7328 0 : {
7329 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
7330 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
7331 0 : if (res) return res;
7332 : }
7333 : }
7334 : break;
7335 : }
7336 20783466 : default:;
7337 : }
7338 20783466 : switch (TREE_CODE (_p0))
7339 : {
7340 225825 : case MULT_EXPR:
7341 225825 : {
7342 225825 : tree _q20 = TREE_OPERAND (_p0, 0);
7343 225825 : tree _q21 = TREE_OPERAND (_p0, 1);
7344 225825 : switch (TREE_CODE (_p1))
7345 : {
7346 7601 : case MULT_EXPR:
7347 7601 : {
7348 7601 : tree _q50 = TREE_OPERAND (_p1, 0);
7349 7601 : tree _q51 = TREE_OPERAND (_p1, 1);
7350 7601 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7351 : {
7352 590 : {
7353 590 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7354 590 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7355 590 : if (res) return res;
7356 : }
7357 : }
7358 7116 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7359 : {
7360 8 : {
7361 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7362 8 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7363 8 : if (res) return res;
7364 : }
7365 : }
7366 7116 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7367 : {
7368 0 : {
7369 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7370 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7371 0 : if (res) return res;
7372 : }
7373 : }
7374 7116 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7375 : {
7376 646 : {
7377 646 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7378 646 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7379 646 : if (res) return res;
7380 : }
7381 : }
7382 : break;
7383 : }
7384 : default:;
7385 : }
7386 : break;
7387 : }
7388 2154311 : case PLUS_EXPR:
7389 2154311 : {
7390 2154311 : tree _q20 = TREE_OPERAND (_p0, 0);
7391 2154311 : tree _q21 = TREE_OPERAND (_p0, 1);
7392 2154311 : if (integer_minus_onep (_q21))
7393 : {
7394 555093 : switch (TREE_CODE (_p1))
7395 : {
7396 419790 : case INTEGER_CST:
7397 419790 : {
7398 419790 : {
7399 419790 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7400 419790 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
7401 419790 : if (res) return res;
7402 : }
7403 414621 : break;
7404 : }
7405 : default:;
7406 : }
7407 : }
7408 2149142 : switch (TREE_CODE (_p1))
7409 : {
7410 60938 : case PLUS_EXPR:
7411 60938 : {
7412 60938 : tree _q50 = TREE_OPERAND (_p1, 0);
7413 60938 : tree _q51 = TREE_OPERAND (_p1, 1);
7414 60938 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7415 : {
7416 4602 : {
7417 4602 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7418 4602 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR);
7419 4602 : if (res) return res;
7420 : }
7421 : }
7422 57705 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7423 : {
7424 319 : {
7425 319 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7426 319 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR);
7427 319 : if (res) return res;
7428 : }
7429 : }
7430 57705 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7431 : {
7432 31 : {
7433 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7434 31 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR);
7435 31 : if (res) return res;
7436 : }
7437 : }
7438 57705 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7439 : {
7440 302 : {
7441 302 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7442 302 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR);
7443 302 : if (res) return res;
7444 : }
7445 : }
7446 : break;
7447 : }
7448 2145909 : default:;
7449 : }
7450 2145909 : switch (TREE_CODE (_q21))
7451 : {
7452 1945186 : case INTEGER_CST:
7453 1945186 : {
7454 1945186 : switch (TREE_CODE (_p1))
7455 : {
7456 34760 : case PLUS_EXPR:
7457 34760 : {
7458 34760 : tree _q50 = TREE_OPERAND (_p1, 0);
7459 34760 : tree _q51 = TREE_OPERAND (_p1, 1);
7460 34760 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7461 : {
7462 1343 : {
7463 1343 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7464 1343 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7465 1343 : if (res) return res;
7466 : }
7467 : }
7468 : break;
7469 : }
7470 : default:;
7471 : }
7472 : break;
7473 : }
7474 2145909 : default:;
7475 : }
7476 2145909 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7477 : {
7478 59408 : {
7479 59408 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7480 59408 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7481 59408 : if (res) return res;
7482 : }
7483 : }
7484 2107985 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7485 : {
7486 6929 : {
7487 6929 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7488 6929 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7489 6929 : if (res) return res;
7490 : }
7491 : }
7492 : break;
7493 : }
7494 2370533 : CASE_CONVERT:
7495 2370533 : {
7496 2370533 : tree _q20 = TREE_OPERAND (_p0, 0);
7497 2370533 : switch (TREE_CODE (_q20))
7498 : {
7499 5 : case EXACT_DIV_EXPR:
7500 5 : {
7501 5 : tree _q30 = TREE_OPERAND (_q20, 0);
7502 5 : tree _q31 = TREE_OPERAND (_q20, 1);
7503 5 : switch (TREE_CODE (_q31))
7504 : {
7505 5 : case INTEGER_CST:
7506 5 : {
7507 5 : switch (TREE_CODE (_p1))
7508 : {
7509 2 : CASE_CONVERT:
7510 2 : {
7511 2 : tree _q60 = TREE_OPERAND (_p1, 0);
7512 2 : switch (TREE_CODE (_q60))
7513 : {
7514 0 : case EXACT_DIV_EXPR:
7515 0 : {
7516 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7517 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7518 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7519 : {
7520 0 : {
7521 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7522 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, GT_EXPR);
7523 0 : if (res) return res;
7524 : }
7525 : }
7526 : break;
7527 : }
7528 : default:;
7529 : }
7530 : break;
7531 : }
7532 : default:;
7533 : }
7534 : break;
7535 : }
7536 : default:;
7537 : }
7538 : break;
7539 : }
7540 : default:;
7541 : }
7542 : break;
7543 : }
7544 3626 : case EXACT_DIV_EXPR:
7545 3626 : {
7546 3626 : tree _q20 = TREE_OPERAND (_p0, 0);
7547 3626 : tree _q21 = TREE_OPERAND (_p0, 1);
7548 3626 : switch (TREE_CODE (_q21))
7549 : {
7550 3626 : case INTEGER_CST:
7551 3626 : {
7552 3626 : switch (TREE_CODE (_p1))
7553 : {
7554 6 : case EXACT_DIV_EXPR:
7555 6 : {
7556 6 : tree _q50 = TREE_OPERAND (_p1, 0);
7557 6 : tree _q51 = TREE_OPERAND (_p1, 1);
7558 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7559 : {
7560 0 : {
7561 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7562 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, GT_EXPR);
7563 0 : if (res) return res;
7564 : }
7565 : }
7566 : break;
7567 : }
7568 : default:;
7569 : }
7570 : break;
7571 : }
7572 : default:;
7573 : }
7574 : break;
7575 : }
7576 1727177 : case TRUNC_DIV_EXPR:
7577 1727177 : {
7578 1727177 : tree _q20 = TREE_OPERAND (_p0, 0);
7579 1727177 : tree _q21 = TREE_OPERAND (_p0, 1);
7580 1727177 : switch (TREE_CODE (_q21))
7581 : {
7582 1718863 : case INTEGER_CST:
7583 1718863 : {
7584 1718863 : switch (TREE_CODE (_p1))
7585 : {
7586 1705297 : case INTEGER_CST:
7587 1705297 : {
7588 1705297 : {
7589 1705297 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7590 1705297 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, GT_EXPR);
7591 1705297 : if (res) return res;
7592 : }
7593 69 : break;
7594 : }
7595 : default:;
7596 : }
7597 : break;
7598 : }
7599 : default:;
7600 : }
7601 : break;
7602 : }
7603 758386 : case MINUS_EXPR:
7604 758386 : {
7605 758386 : tree _q20 = TREE_OPERAND (_p0, 0);
7606 758386 : tree _q21 = TREE_OPERAND (_p0, 1);
7607 758386 : switch (TREE_CODE (_p1))
7608 : {
7609 3478 : case MINUS_EXPR:
7610 3478 : {
7611 3478 : tree _q50 = TREE_OPERAND (_p1, 0);
7612 3478 : tree _q51 = TREE_OPERAND (_p1, 1);
7613 3478 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7614 : {
7615 876 : {
7616 876 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7617 876 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GT_EXPR);
7618 876 : if (res) return res;
7619 : }
7620 : }
7621 3478 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7622 : {
7623 170 : {
7624 170 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7625 170 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR);
7626 170 : if (res) return res;
7627 : }
7628 : }
7629 : break;
7630 : }
7631 : default:;
7632 : }
7633 : break;
7634 : }
7635 53477 : case POINTER_DIFF_EXPR:
7636 53477 : {
7637 53477 : tree _q20 = TREE_OPERAND (_p0, 0);
7638 53477 : tree _q21 = TREE_OPERAND (_p0, 1);
7639 53477 : switch (TREE_CODE (_p1))
7640 : {
7641 315 : case POINTER_DIFF_EXPR:
7642 315 : {
7643 315 : tree _q50 = TREE_OPERAND (_p1, 0);
7644 315 : tree _q51 = TREE_OPERAND (_p1, 1);
7645 315 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7646 : {
7647 43 : {
7648 43 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7649 43 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, GT_EXPR);
7650 43 : if (res) return res;
7651 : }
7652 : }
7653 272 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7654 : {
7655 0 : {
7656 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
7657 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, GT_EXPR);
7658 0 : if (res) return res;
7659 : }
7660 : }
7661 : break;
7662 : }
7663 : default:;
7664 : }
7665 : break;
7666 : }
7667 19029841 : default:;
7668 : }
7669 19029841 : switch (TREE_CODE (_p1))
7670 : {
7671 111532 : case PLUS_EXPR:
7672 111532 : {
7673 111532 : tree _q30 = TREE_OPERAND (_p1, 0);
7674 111532 : tree _q31 = TREE_OPERAND (_p1, 1);
7675 111532 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7676 : {
7677 0 : {
7678 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7679 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
7680 0 : if (res) return res;
7681 : }
7682 : }
7683 111532 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7684 : {
7685 4 : {
7686 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7687 4 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
7688 4 : if (res) return res;
7689 : }
7690 : }
7691 : break;
7692 : }
7693 11844 : case MINUS_EXPR:
7694 11844 : {
7695 11844 : tree _q30 = TREE_OPERAND (_p1, 0);
7696 11844 : tree _q31 = TREE_OPERAND (_p1, 1);
7697 11844 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7698 : {
7699 0 : {
7700 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7701 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GT_EXPR);
7702 0 : if (res) return res;
7703 : }
7704 : }
7705 : break;
7706 : }
7707 19029841 : default:;
7708 : }
7709 19029841 : switch (TREE_CODE (_p0))
7710 : {
7711 758386 : case MINUS_EXPR:
7712 758386 : {
7713 758386 : tree _q20 = TREE_OPERAND (_p0, 0);
7714 758386 : tree _q21 = TREE_OPERAND (_p0, 1);
7715 758386 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7716 : {
7717 16010 : {
7718 16010 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
7719 16010 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LT_EXPR);
7720 16010 : if (res) return res;
7721 : }
7722 : }
7723 : break;
7724 : }
7725 20216 : case BIT_AND_EXPR:
7726 20216 : {
7727 20216 : tree _q20 = TREE_OPERAND (_p0, 0);
7728 20216 : tree _q21 = TREE_OPERAND (_p0, 1);
7729 20216 : if (tree_expr_nonnegative_p (_q20))
7730 : {
7731 18109 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7732 : {
7733 0 : {
7734 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7735 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7736 0 : if (res) return res;
7737 : }
7738 : }
7739 : }
7740 20216 : if (tree_expr_nonnegative_p (_q21))
7741 : {
7742 19208 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7743 : {
7744 3936 : {
7745 3936 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7746 3936 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7747 3936 : if (res) return res;
7748 : }
7749 : }
7750 : }
7751 : break;
7752 : }
7753 19025862 : default:;
7754 : }
7755 19025862 : switch (TREE_CODE (_p1))
7756 : {
7757 99 : case BIT_IOR_EXPR:
7758 99 : {
7759 99 : tree _q30 = TREE_OPERAND (_p1, 0);
7760 99 : tree _q31 = TREE_OPERAND (_p1, 1);
7761 99 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7762 : {
7763 0 : if (tree_expr_nonnegative_p (_q30))
7764 : {
7765 0 : {
7766 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7767 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7768 0 : if (res) return res;
7769 : }
7770 : }
7771 : }
7772 99 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7773 : {
7774 0 : if (tree_expr_nonnegative_p (_q31))
7775 : {
7776 0 : {
7777 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7778 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7779 0 : if (res) return res;
7780 : }
7781 : }
7782 : }
7783 : break;
7784 : }
7785 19025862 : default:;
7786 : }
7787 19025862 : switch (TREE_CODE (_p0))
7788 : {
7789 33424 : case MIN_EXPR:
7790 33424 : {
7791 33424 : tree _q20 = TREE_OPERAND (_p0, 0);
7792 33424 : tree _q21 = TREE_OPERAND (_p0, 1);
7793 33424 : switch (TREE_CODE (_p1))
7794 : {
7795 4 : case MAX_EXPR:
7796 4 : {
7797 4 : tree _q50 = TREE_OPERAND (_p1, 0);
7798 4 : tree _q51 = TREE_OPERAND (_p1, 1);
7799 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7800 : {
7801 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7802 : {
7803 0 : {
7804 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7805 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GT_EXPR);
7806 0 : if (res) return res;
7807 : }
7808 : }
7809 : }
7810 : break;
7811 : }
7812 : default:;
7813 : }
7814 : break;
7815 : }
7816 14030 : case MAX_EXPR:
7817 14030 : {
7818 14030 : tree _q20 = TREE_OPERAND (_p0, 0);
7819 14030 : tree _q21 = TREE_OPERAND (_p0, 1);
7820 14030 : switch (TREE_CODE (_p1))
7821 : {
7822 16 : case MIN_EXPR:
7823 16 : {
7824 16 : tree _q50 = TREE_OPERAND (_p1, 0);
7825 16 : tree _q51 = TREE_OPERAND (_p1, 1);
7826 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7827 : {
7828 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7829 : {
7830 0 : {
7831 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7832 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7833 0 : if (res) return res;
7834 : }
7835 : }
7836 : }
7837 : break;
7838 : }
7839 14030 : default:;
7840 : }
7841 14030 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7842 : {
7843 1 : {
7844 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7845 1 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7846 1 : if (res) return res;
7847 : }
7848 : }
7849 14029 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7850 : {
7851 12 : {
7852 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7853 12 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7854 12 : if (res) return res;
7855 : }
7856 : }
7857 : break;
7858 : }
7859 19025852 : default:;
7860 : }
7861 19025852 : switch (TREE_CODE (_p1))
7862 : {
7863 118 : case MIN_EXPR:
7864 118 : {
7865 118 : tree _q30 = TREE_OPERAND (_p1, 0);
7866 118 : tree _q31 = TREE_OPERAND (_p1, 1);
7867 118 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7868 : {
7869 0 : {
7870 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7871 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7872 0 : if (res) return res;
7873 : }
7874 : }
7875 118 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7876 : {
7877 0 : {
7878 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7879 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7880 0 : if (res) return res;
7881 : }
7882 : }
7883 : break;
7884 : }
7885 2511 : case MAX_EXPR:
7886 2511 : {
7887 2511 : tree _q30 = TREE_OPERAND (_p1, 0);
7888 2511 : tree _q31 = TREE_OPERAND (_p1, 1);
7889 2511 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7890 : {
7891 0 : {
7892 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7893 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7894 0 : if (res) return res;
7895 : }
7896 : }
7897 2511 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7898 : {
7899 0 : {
7900 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7901 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7902 0 : if (res) return res;
7903 : }
7904 : }
7905 : break;
7906 : }
7907 19025852 : default:;
7908 : }
7909 19025852 : switch (TREE_CODE (_p0))
7910 : {
7911 33424 : case MIN_EXPR:
7912 33424 : {
7913 33424 : tree _q20 = TREE_OPERAND (_p0, 0);
7914 33424 : tree _q21 = TREE_OPERAND (_p0, 1);
7915 33424 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7916 : {
7917 1 : {
7918 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7919 1 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7920 1 : if (res) return res;
7921 : }
7922 : }
7923 33423 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7924 : {
7925 1 : {
7926 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7927 1 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7928 1 : if (res) return res;
7929 : }
7930 : }
7931 33422 : switch (TREE_CODE (_q21))
7932 : {
7933 20096 : case INTEGER_CST:
7934 20096 : {
7935 20096 : switch (TREE_CODE (_p1))
7936 : {
7937 61 : case INTEGER_CST:
7938 61 : {
7939 61 : {
7940 61 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7941 61 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
7942 61 : if (res) return res;
7943 : }
7944 0 : break;
7945 : }
7946 : default:;
7947 : }
7948 : break;
7949 : }
7950 : default:;
7951 : }
7952 : break;
7953 : }
7954 14020 : case MAX_EXPR:
7955 14020 : {
7956 14020 : tree _q20 = TREE_OPERAND (_p0, 0);
7957 14020 : tree _q21 = TREE_OPERAND (_p0, 1);
7958 14020 : switch (TREE_CODE (_q21))
7959 : {
7960 13421 : case INTEGER_CST:
7961 13421 : {
7962 13421 : switch (TREE_CODE (_p1))
7963 : {
7964 0 : case INTEGER_CST:
7965 0 : {
7966 0 : {
7967 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7968 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
7969 0 : if (res) return res;
7970 : }
7971 0 : break;
7972 : }
7973 : default:;
7974 : }
7975 : break;
7976 : }
7977 : default:;
7978 : }
7979 : break;
7980 : }
7981 877 : case VEC_COND_EXPR:
7982 877 : {
7983 877 : tree _q20 = TREE_OPERAND (_p0, 0);
7984 877 : tree _q21 = TREE_OPERAND (_p0, 1);
7985 877 : tree _q22 = TREE_OPERAND (_p0, 2);
7986 877 : switch (TREE_CODE (_p1))
7987 : {
7988 14 : case VEC_COND_EXPR:
7989 14 : {
7990 14 : tree _q60 = TREE_OPERAND (_p1, 0);
7991 14 : tree _q61 = TREE_OPERAND (_p1, 1);
7992 14 : tree _q62 = TREE_OPERAND (_p1, 2);
7993 14 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7994 : {
7995 0 : {
7996 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7997 0 : if (VECTOR_TYPE_P (type)
7998 0 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7999 0 : || types_match (type, TREE_TYPE (captures[2]))
8000 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8001 : || (optimize_vectors_before_lowering_p ()
8002 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8003 : )
8004 : {
8005 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
8006 0 : {
8007 0 : tree res_op0;
8008 0 : res_op0 = captures[1];
8009 0 : tree res_op1;
8010 0 : {
8011 0 : tree _o1[2], _r1;
8012 0 : _o1[0] = captures[2];
8013 0 : _o1[1] = captures[5];
8014 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8015 0 : if (EXPR_P (_r1))
8016 0 : goto next_after_fail1638;
8017 0 : res_op1 = _r1;
8018 : }
8019 0 : tree res_op2;
8020 0 : {
8021 0 : tree _o1[2], _r1;
8022 0 : _o1[0] = captures[3];
8023 0 : _o1[1] = captures[6];
8024 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8025 0 : if (EXPR_P (_r1))
8026 0 : goto next_after_fail1638;
8027 0 : res_op2 = _r1;
8028 : }
8029 0 : tree _r;
8030 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8031 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
8032 0 : return _r;
8033 : }
8034 0 : next_after_fail1638:;
8035 : }
8036 : }
8037 : }
8038 : break;
8039 : }
8040 877 : default:;
8041 : }
8042 877 : {
8043 877 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8044 877 : if (VECTOR_TYPE_P (type)
8045 877 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
8046 877 : || types_match (type, TREE_TYPE (captures[2]))
8047 877 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8048 : || (optimize_vectors_before_lowering_p ()
8049 10 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8050 : )
8051 : {
8052 877 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
8053 877 : {
8054 877 : if (! tree_invariant_p (captures[4])) goto next_after_fail1639;
8055 21 : tree res_op0;
8056 21 : res_op0 = captures[1];
8057 21 : tree res_op1;
8058 21 : {
8059 21 : tree _o1[2], _r1;
8060 21 : _o1[0] = captures[2];
8061 21 : _o1[1] = unshare_expr (captures[4]);
8062 21 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8063 21 : if (EXPR_P (_r1))
8064 17 : goto next_after_fail1639;
8065 4 : res_op1 = _r1;
8066 : }
8067 4 : tree res_op2;
8068 4 : {
8069 4 : tree _o1[2], _r1;
8070 4 : _o1[0] = captures[3];
8071 4 : _o1[1] = captures[4];
8072 4 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8073 4 : if (EXPR_P (_r1))
8074 4 : goto next_after_fail1639;
8075 0 : res_op2 = _r1;
8076 : }
8077 0 : tree _r;
8078 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8079 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
8080 0 : return _r;
8081 : }
8082 877 : next_after_fail1639:;
8083 : }
8084 : }
8085 877 : break;
8086 : }
8087 19025789 : default:;
8088 : }
8089 19025789 : switch (TREE_CODE (_p1))
8090 : {
8091 74 : case VEC_COND_EXPR:
8092 74 : {
8093 74 : tree _q30 = TREE_OPERAND (_p1, 0);
8094 74 : tree _q31 = TREE_OPERAND (_p1, 1);
8095 74 : tree _q32 = TREE_OPERAND (_p1, 2);
8096 74 : {
8097 74 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8098 74 : if (VECTOR_TYPE_P (type)
8099 74 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
8100 74 : || types_match (type, TREE_TYPE (captures[3]))
8101 74 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8102 : || (optimize_vectors_before_lowering_p ()
8103 7 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8104 : )
8105 : {
8106 74 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
8107 74 : {
8108 74 : if (! tree_invariant_p (captures[0])) goto next_after_fail1640;
8109 0 : tree res_op0;
8110 0 : res_op0 = captures[2];
8111 0 : tree res_op1;
8112 0 : {
8113 0 : tree _o1[2], _r1;
8114 0 : _o1[0] = unshare_expr (captures[0]);
8115 0 : _o1[1] = captures[3];
8116 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8117 0 : if (EXPR_P (_r1))
8118 0 : goto next_after_fail1640;
8119 0 : res_op1 = _r1;
8120 : }
8121 0 : tree res_op2;
8122 0 : {
8123 0 : tree _o1[2], _r1;
8124 0 : _o1[0] = captures[0];
8125 0 : _o1[1] = captures[4];
8126 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8127 0 : if (EXPR_P (_r1))
8128 0 : goto next_after_fail1640;
8129 0 : res_op2 = _r1;
8130 : }
8131 0 : tree _r;
8132 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8133 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
8134 0 : return _r;
8135 : }
8136 74 : next_after_fail1640:;
8137 : }
8138 : }
8139 74 : break;
8140 : }
8141 19025789 : default:;
8142 : }
8143 19025789 : if (uniform_integer_cst_p (_p1))
8144 : {
8145 13459416 : {
8146 13459416 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8147 13459416 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8148 13459416 : if (res) return res;
8149 : }
8150 : }
8151 18946299 : switch (TREE_CODE (_p0))
8152 : {
8153 225028 : case MULT_EXPR:
8154 225028 : {
8155 225028 : tree _q20 = TREE_OPERAND (_p0, 0);
8156 225028 : tree _q21 = TREE_OPERAND (_p0, 1);
8157 225028 : switch (TREE_CODE (_q21))
8158 : {
8159 186576 : case INTEGER_CST:
8160 186576 : {
8161 186576 : if (integer_zerop (_p1))
8162 : {
8163 7331 : {
8164 7331 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8165 7331 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8166 7331 : if (res) return res;
8167 : }
8168 : }
8169 : break;
8170 : }
8171 : default:;
8172 : }
8173 : break;
8174 : }
8175 18943840 : default:;
8176 : }
8177 18943840 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8178 : {
8179 1331 : {
8180 1331 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8181 1331 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, GT_EXPR);
8182 1331 : if (res) return res;
8183 : }
8184 : }
8185 18942509 : switch (TREE_CODE (_p0))
8186 : {
8187 913628 : case BIT_NOT_EXPR:
8188 913628 : {
8189 913628 : tree _q20 = TREE_OPERAND (_p0, 0);
8190 913628 : switch (TREE_CODE (_p1))
8191 : {
8192 10 : case BIT_NOT_EXPR:
8193 10 : {
8194 10 : tree _q40 = TREE_OPERAND (_p1, 0);
8195 10 : {
8196 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8197 10 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GT_EXPR);
8198 10 : if (res) return res;
8199 : }
8200 0 : break;
8201 : }
8202 913618 : default:;
8203 : }
8204 913618 : {
8205 913618 : tree _p1_pops[1];
8206 913618 : if (tree_nop_convert (_p1, _p1_pops))
8207 : {
8208 2 : tree _q40 = _p1_pops[0];
8209 2 : switch (TREE_CODE (_q40))
8210 : {
8211 0 : case BIT_NOT_EXPR:
8212 0 : {
8213 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8214 0 : {
8215 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8216 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GT_EXPR);
8217 0 : if (res) return res;
8218 : }
8219 0 : break;
8220 : }
8221 : default:;
8222 : }
8223 : }
8224 : }
8225 913618 : if (CONSTANT_CLASS_P (_p1))
8226 : {
8227 911309 : {
8228 911309 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8229 911309 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8230 911309 : if (res) return res;
8231 : }
8232 : }
8233 : break;
8234 : }
8235 18031190 : default:;
8236 : }
8237 18031190 : {
8238 18031190 : tree _p0_pops[1];
8239 18031190 : if (tree_nop_convert (_p0, _p0_pops))
8240 : {
8241 958243 : tree _q20 = _p0_pops[0];
8242 958243 : switch (TREE_CODE (_q20))
8243 : {
8244 0 : case BIT_NOT_EXPR:
8245 0 : {
8246 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8247 0 : switch (TREE_CODE (_p1))
8248 : {
8249 0 : case BIT_NOT_EXPR:
8250 0 : {
8251 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8252 0 : {
8253 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8254 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR);
8255 0 : if (res) return res;
8256 : }
8257 0 : break;
8258 : }
8259 0 : default:;
8260 : }
8261 0 : {
8262 0 : tree _p1_pops[1];
8263 0 : if (tree_nop_convert (_p1, _p1_pops))
8264 : {
8265 0 : tree _q50 = _p1_pops[0];
8266 0 : switch (TREE_CODE (_q50))
8267 : {
8268 0 : case BIT_NOT_EXPR:
8269 0 : {
8270 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8271 0 : {
8272 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8273 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR);
8274 0 : if (res) return res;
8275 : }
8276 0 : break;
8277 : }
8278 : default:;
8279 : }
8280 : }
8281 : }
8282 0 : if (CONSTANT_CLASS_P (_p1))
8283 : {
8284 0 : {
8285 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8286 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8287 0 : if (res) return res;
8288 : }
8289 : }
8290 : break;
8291 : }
8292 : default:;
8293 : }
8294 : }
8295 : }
8296 18031190 : switch (TREE_CODE (_p1))
8297 : {
8298 830375 : case REAL_CST:
8299 830375 : {
8300 830375 : {
8301 830375 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8302 830375 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR);
8303 830375 : if (res) return res;
8304 : }
8305 830327 : break;
8306 : }
8307 18031142 : default:;
8308 : }
8309 18031142 : switch (TREE_CODE (_p0))
8310 : {
8311 2105757 : case PLUS_EXPR:
8312 2105757 : {
8313 2105757 : tree _q20 = TREE_OPERAND (_p0, 0);
8314 2105757 : tree _q21 = TREE_OPERAND (_p0, 1);
8315 2105757 : switch (TREE_CODE (_q21))
8316 : {
8317 479 : case REAL_CST:
8318 479 : {
8319 479 : switch (TREE_CODE (_p1))
8320 : {
8321 199 : case REAL_CST:
8322 199 : {
8323 199 : {
8324 199 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8325 199 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR);
8326 199 : if (res) return res;
8327 : }
8328 199 : break;
8329 : }
8330 : default:;
8331 : }
8332 : break;
8333 : }
8334 1906348 : case INTEGER_CST:
8335 1906348 : {
8336 1906348 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8337 : {
8338 1194 : {
8339 1194 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8340 1194 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8341 1194 : if (res) return res;
8342 : }
8343 : }
8344 : break;
8345 : }
8346 : default:;
8347 : }
8348 : break;
8349 : }
8350 748070 : case MINUS_EXPR:
8351 748070 : {
8352 748070 : tree _q20 = TREE_OPERAND (_p0, 0);
8353 748070 : tree _q21 = TREE_OPERAND (_p0, 1);
8354 748070 : switch (TREE_CODE (_q21))
8355 : {
8356 751 : case REAL_CST:
8357 751 : {
8358 751 : switch (TREE_CODE (_p1))
8359 : {
8360 537 : case REAL_CST:
8361 537 : {
8362 537 : {
8363 537 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8364 537 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, MINUS_EXPR, GT_EXPR);
8365 537 : if (res) return res;
8366 : }
8367 535 : break;
8368 : }
8369 : default:;
8370 : }
8371 : break;
8372 : }
8373 748068 : default:;
8374 : }
8375 748068 : switch (TREE_CODE (_q20))
8376 : {
8377 43 : case REAL_CST:
8378 43 : {
8379 43 : switch (TREE_CODE (_p1))
8380 : {
8381 37 : case REAL_CST:
8382 37 : {
8383 37 : {
8384 37 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8385 37 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, GT_EXPR);
8386 37 : if (res) return res;
8387 : }
8388 35 : break;
8389 : }
8390 : default:;
8391 : }
8392 : break;
8393 : }
8394 : default:;
8395 : }
8396 : break;
8397 : }
8398 39965 : case FLOAT_EXPR:
8399 39965 : {
8400 39965 : tree _q20 = TREE_OPERAND (_p0, 0);
8401 39965 : switch (TREE_CODE (_p1))
8402 : {
8403 30 : case FLOAT_EXPR:
8404 30 : {
8405 30 : tree _q40 = TREE_OPERAND (_p1, 0);
8406 30 : {
8407 30 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8408 30 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
8409 30 : if (res) return res;
8410 : }
8411 30 : break;
8412 : }
8413 38250 : case REAL_CST:
8414 38250 : {
8415 38250 : {
8416 38250 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8417 38250 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8418 38250 : if (res) return res;
8419 : }
8420 19301 : break;
8421 : }
8422 : default:;
8423 : }
8424 : break;
8425 : }
8426 3626 : case EXACT_DIV_EXPR:
8427 3626 : {
8428 3626 : tree _q20 = TREE_OPERAND (_p0, 0);
8429 3626 : tree _q21 = TREE_OPERAND (_p0, 1);
8430 3626 : switch (TREE_CODE (_q21))
8431 : {
8432 3626 : case INTEGER_CST:
8433 3626 : {
8434 3626 : switch (TREE_CODE (_p1))
8435 : {
8436 181 : case INTEGER_CST:
8437 181 : {
8438 181 : {
8439 181 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8440 181 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GT_EXPR);
8441 181 : if (res) return res;
8442 : }
8443 0 : break;
8444 : }
8445 : default:;
8446 : }
8447 : break;
8448 : }
8449 : default:;
8450 : }
8451 : break;
8452 : }
8453 2366873 : CASE_CONVERT:
8454 2366873 : {
8455 2366873 : tree _q20 = TREE_OPERAND (_p0, 0);
8456 2366873 : switch (TREE_CODE (_q20))
8457 : {
8458 5 : case EXACT_DIV_EXPR:
8459 5 : {
8460 5 : tree _q30 = TREE_OPERAND (_q20, 0);
8461 5 : tree _q31 = TREE_OPERAND (_q20, 1);
8462 5 : switch (TREE_CODE (_q31))
8463 : {
8464 5 : case INTEGER_CST:
8465 5 : {
8466 5 : switch (TREE_CODE (_p1))
8467 : {
8468 0 : case INTEGER_CST:
8469 0 : {
8470 0 : {
8471 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8472 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8473 0 : if (res) return res;
8474 : }
8475 0 : break;
8476 : }
8477 : default:;
8478 : }
8479 : break;
8480 : }
8481 : default:;
8482 : }
8483 : break;
8484 : }
8485 2366873 : default:;
8486 : }
8487 2366873 : switch (TREE_CODE (_p1))
8488 : {
8489 174363 : CASE_CONVERT:
8490 174363 : {
8491 174363 : tree _q40 = TREE_OPERAND (_p1, 0);
8492 174363 : {
8493 174363 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8494 174363 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, GT_EXPR);
8495 174363 : if (res) return res;
8496 : }
8497 146637 : break;
8498 : }
8499 2339147 : default:;
8500 : }
8501 2339147 : {
8502 2339147 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8503 2339147 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, GT_EXPR);
8504 2339147 : if (res) return res;
8505 : }
8506 1179470 : switch (TREE_CODE (_q20))
8507 : {
8508 1005 : case ADDR_EXPR:
8509 1005 : {
8510 1005 : switch (TREE_CODE (_p1))
8511 : {
8512 735 : CASE_CONVERT:
8513 735 : {
8514 735 : tree _q40 = TREE_OPERAND (_p1, 0);
8515 735 : switch (TREE_CODE (_q40))
8516 : {
8517 735 : case ADDR_EXPR:
8518 735 : {
8519 735 : {
8520 735 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8521 735 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GT_EXPR);
8522 735 : if (res) return res;
8523 : }
8524 242 : break;
8525 : }
8526 : default:;
8527 : }
8528 : break;
8529 : }
8530 7 : case ADDR_EXPR:
8531 7 : {
8532 7 : {
8533 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8534 7 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GT_EXPR);
8535 7 : if (res) return res;
8536 : }
8537 0 : break;
8538 : }
8539 : default:;
8540 : }
8541 : break;
8542 : }
8543 1178970 : default:;
8544 : }
8545 1178970 : if (uniform_integer_cst_p (_p1))
8546 : {
8547 324136 : {
8548 324136 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8549 324136 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GT_EXPR);
8550 324136 : if (res) return res;
8551 : }
8552 : }
8553 : break;
8554 : }
8555 16277 : case BIT_AND_EXPR:
8556 16277 : {
8557 16277 : tree _q20 = TREE_OPERAND (_p0, 0);
8558 16277 : tree _q21 = TREE_OPERAND (_p0, 1);
8559 16277 : switch (TREE_CODE (_q21))
8560 : {
8561 15164 : case INTEGER_CST:
8562 15164 : {
8563 15164 : switch (TREE_CODE (_p1))
8564 : {
8565 9255 : case INTEGER_CST:
8566 9255 : {
8567 9255 : {
8568 9255 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8569 9255 : tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8570 9255 : if (res) return res;
8571 : }
8572 8746 : break;
8573 : }
8574 : default:;
8575 : }
8576 : break;
8577 : }
8578 : default:;
8579 : }
8580 : break;
8581 : }
8582 10921 : case NEGATE_EXPR:
8583 10921 : {
8584 10921 : tree _q20 = TREE_OPERAND (_p0, 0);
8585 10921 : switch (TREE_CODE (_p1))
8586 : {
8587 4 : case NEGATE_EXPR:
8588 4 : {
8589 4 : tree _q40 = TREE_OPERAND (_p1, 0);
8590 4 : {
8591 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8592 4 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8593 4 : if (res) return res;
8594 : }
8595 4 : break;
8596 : }
8597 10921 : default:;
8598 : }
8599 10921 : if (CONSTANT_CLASS_P (_p1))
8600 : {
8601 690 : {
8602 690 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8603 690 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8604 690 : if (res) return res;
8605 : }
8606 : }
8607 : break;
8608 : }
8609 4569 : case ADDR_EXPR:
8610 4569 : {
8611 4569 : switch (TREE_CODE (_p1))
8612 : {
8613 0 : CASE_CONVERT:
8614 0 : {
8615 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8616 0 : switch (TREE_CODE (_q30))
8617 : {
8618 0 : case ADDR_EXPR:
8619 0 : {
8620 0 : {
8621 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8622 0 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, GT_EXPR);
8623 0 : if (res) return res;
8624 : }
8625 0 : break;
8626 : }
8627 : default:;
8628 : }
8629 : break;
8630 : }
8631 4264 : case ADDR_EXPR:
8632 4264 : {
8633 4264 : {
8634 4264 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8635 4264 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, GT_EXPR);
8636 4264 : if (res) return res;
8637 : }
8638 702 : break;
8639 : }
8640 : default:;
8641 : }
8642 : break;
8643 : }
8644 297089 : case CALL_EXPR:
8645 297089 : switch (get_call_combined_fn (_p0))
8646 : {
8647 1 : case CFN_BUILT_IN_SQRTF:
8648 1 : if (call_expr_nargs (_p0) == 1)
8649 : {
8650 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8651 1 : switch (TREE_CODE (_p1))
8652 : {
8653 1 : case REAL_CST:
8654 1 : {
8655 1 : {
8656 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8657 1 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8658 1 : if (res) return res;
8659 : }
8660 0 : break;
8661 : }
8662 0 : case CALL_EXPR:
8663 0 : switch (get_call_combined_fn (_p1))
8664 : {
8665 0 : case CFN_BUILT_IN_SQRTF:
8666 0 : if (call_expr_nargs (_p1) == 1)
8667 : {
8668 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8669 0 : {
8670 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8671 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8672 0 : if (res) return res;
8673 : }
8674 : }
8675 : break;
8676 : default:;
8677 : }
8678 : break;
8679 : default:;
8680 : }
8681 : }
8682 : break;
8683 0 : case CFN_BUILT_IN_SQRTL:
8684 0 : if (call_expr_nargs (_p0) == 1)
8685 : {
8686 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8687 0 : switch (TREE_CODE (_p1))
8688 : {
8689 0 : case REAL_CST:
8690 0 : {
8691 0 : {
8692 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8693 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8694 0 : if (res) return res;
8695 : }
8696 0 : break;
8697 : }
8698 0 : case CALL_EXPR:
8699 0 : switch (get_call_combined_fn (_p1))
8700 : {
8701 0 : case CFN_BUILT_IN_SQRTL:
8702 0 : if (call_expr_nargs (_p1) == 1)
8703 : {
8704 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8705 0 : {
8706 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8707 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8708 0 : if (res) return res;
8709 : }
8710 : }
8711 : break;
8712 : default:;
8713 : }
8714 : break;
8715 : default:;
8716 : }
8717 : }
8718 : break;
8719 3 : case CFN_BUILT_IN_SQRT:
8720 3 : if (call_expr_nargs (_p0) == 1)
8721 : {
8722 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8723 3 : switch (TREE_CODE (_p1))
8724 : {
8725 3 : case REAL_CST:
8726 3 : {
8727 3 : {
8728 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8729 3 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8730 3 : if (res) return res;
8731 : }
8732 0 : break;
8733 : }
8734 0 : case CALL_EXPR:
8735 0 : switch (get_call_combined_fn (_p1))
8736 : {
8737 0 : case CFN_BUILT_IN_SQRT:
8738 0 : if (call_expr_nargs (_p1) == 1)
8739 : {
8740 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8741 0 : {
8742 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8743 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8744 0 : if (res) return res;
8745 : }
8746 : }
8747 : break;
8748 : default:;
8749 : }
8750 : break;
8751 : default:;
8752 : }
8753 : }
8754 : break;
8755 0 : case CFN_SQRT:
8756 0 : if (call_expr_nargs (_p0) == 1)
8757 : {
8758 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8759 0 : switch (TREE_CODE (_p1))
8760 : {
8761 0 : case REAL_CST:
8762 0 : {
8763 0 : {
8764 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8765 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8766 0 : if (res) return res;
8767 : }
8768 0 : break;
8769 : }
8770 0 : case CALL_EXPR:
8771 0 : switch (get_call_combined_fn (_p1))
8772 : {
8773 0 : case CFN_SQRT:
8774 0 : if (call_expr_nargs (_p1) == 1)
8775 : {
8776 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8777 0 : {
8778 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8779 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8780 0 : if (res) return res;
8781 : }
8782 : }
8783 : break;
8784 : default:;
8785 : }
8786 : break;
8787 : default:;
8788 : }
8789 : }
8790 : break;
8791 : default:;
8792 : }
8793 : break;
8794 16790920 : default:;
8795 : }
8796 16790920 : if (uniform_integer_cst_p (_p1))
8797 : {
8798 11278431 : {
8799 11278431 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8800 11278431 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GT_EXPR);
8801 11278431 : if (res) return res;
8802 : }
8803 : }
8804 15815052 : switch (TREE_CODE (_p0))
8805 : {
8806 1108316 : CASE_CONVERT:
8807 1108316 : {
8808 1108316 : tree _q20 = TREE_OPERAND (_p0, 0);
8809 1108316 : switch (TREE_CODE (_q20))
8810 : {
8811 1 : case NE_EXPR:
8812 1 : {
8813 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8814 1 : tree _q31 = TREE_OPERAND (_q20, 1);
8815 1 : if (integer_zerop (_q31))
8816 : {
8817 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8818 : {
8819 1 : {
8820 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
8821 1 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
8822 : )
8823 : {
8824 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1641;
8825 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1641;
8826 1 : {
8827 1 : tree _r;
8828 1 : _r = constant_boolean_node (false, type);
8829 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
8830 1 : return _r;
8831 : }
8832 : next_after_fail1641:;
8833 : }
8834 : }
8835 : }
8836 : }
8837 : break;
8838 : }
8839 50264 : case PLUS_EXPR:
8840 50264 : {
8841 50264 : tree _q30 = TREE_OPERAND (_q20, 0);
8842 50264 : tree _q31 = TREE_OPERAND (_q20, 1);
8843 50264 : switch (TREE_CODE (_q30))
8844 : {
8845 34056 : CASE_CONVERT:
8846 34056 : {
8847 34056 : tree _q40 = TREE_OPERAND (_q30, 0);
8848 34056 : switch (TREE_CODE (_q31))
8849 : {
8850 34052 : case INTEGER_CST:
8851 34052 : {
8852 34052 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8853 : {
8854 2 : {
8855 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
8856 2 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8857 2 : if (res) return res;
8858 : }
8859 : }
8860 : break;
8861 : }
8862 : default:;
8863 : }
8864 : break;
8865 : }
8866 : default:;
8867 : }
8868 : break;
8869 : }
8870 : default:;
8871 : }
8872 : break;
8873 : }
8874 15815049 : default:;
8875 : }
8876 15815049 : switch (TREE_CODE (_p1))
8877 : {
8878 618535 : CASE_CONVERT:
8879 618535 : {
8880 618535 : tree _q30 = TREE_OPERAND (_p1, 0);
8881 618535 : switch (TREE_CODE (_q30))
8882 : {
8883 3351 : case PLUS_EXPR:
8884 3351 : {
8885 3351 : tree _q40 = TREE_OPERAND (_q30, 0);
8886 3351 : tree _q41 = TREE_OPERAND (_q30, 1);
8887 3351 : switch (TREE_CODE (_q40))
8888 : {
8889 3292 : CASE_CONVERT:
8890 3292 : {
8891 3292 : tree _q50 = TREE_OPERAND (_q40, 0);
8892 3292 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
8893 : {
8894 0 : switch (TREE_CODE (_q41))
8895 : {
8896 0 : case INTEGER_CST:
8897 0 : {
8898 0 : {
8899 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
8900 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8901 0 : if (res) return res;
8902 : }
8903 0 : break;
8904 : }
8905 : default:;
8906 : }
8907 : }
8908 : break;
8909 : }
8910 : default:;
8911 : }
8912 : break;
8913 : }
8914 : default:;
8915 : }
8916 : break;
8917 : }
8918 111532 : case PLUS_EXPR:
8919 111532 : {
8920 111532 : tree _q30 = TREE_OPERAND (_p1, 0);
8921 111532 : tree _q31 = TREE_OPERAND (_p1, 1);
8922 111532 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8923 : {
8924 4 : switch (TREE_CODE (_q31))
8925 : {
8926 4 : case INTEGER_CST:
8927 4 : {
8928 4 : {
8929 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
8930 4 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8931 4 : if (res) return res;
8932 : }
8933 0 : break;
8934 : }
8935 : default:;
8936 : }
8937 : }
8938 : break;
8939 : }
8940 15815045 : default:;
8941 : }
8942 15815045 : switch (TREE_CODE (_p0))
8943 : {
8944 656644 : case MINUS_EXPR:
8945 656644 : {
8946 656644 : tree _q20 = TREE_OPERAND (_p0, 0);
8947 656644 : tree _q21 = TREE_OPERAND (_p0, 1);
8948 656644 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8949 : {
8950 7606 : {
8951 7606 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8952 7606 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GT_EXPR);
8953 7606 : if (res) return res;
8954 : }
8955 : }
8956 : break;
8957 : }
8958 15807451 : default:;
8959 : }
8960 15807451 : switch (TREE_CODE (_p1))
8961 : {
8962 111528 : case PLUS_EXPR:
8963 111528 : {
8964 111528 : tree _q30 = TREE_OPERAND (_p1, 0);
8965 111528 : tree _q31 = TREE_OPERAND (_p1, 1);
8966 111528 : switch (TREE_CODE (_q30))
8967 : {
8968 3 : case MINUS_EXPR:
8969 3 : {
8970 3 : tree _q40 = TREE_OPERAND (_q30, 0);
8971 3 : tree _q41 = TREE_OPERAND (_q30, 1);
8972 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8973 : {
8974 0 : if (integer_minus_onep (_q31))
8975 : {
8976 0 : {
8977 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
8978 0 : tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LT_EXPR);
8979 0 : if (res) return res;
8980 : }
8981 : }
8982 : }
8983 : break;
8984 : }
8985 : default:;
8986 : }
8987 : break;
8988 : }
8989 15807451 : default:;
8990 : }
8991 15807451 : switch (TREE_CODE (_p0))
8992 : {
8993 83 : case REALPART_EXPR:
8994 83 : {
8995 83 : tree _q20 = TREE_OPERAND (_p0, 0);
8996 83 : switch (TREE_CODE (_q20))
8997 : {
8998 0 : case CALL_EXPR:
8999 0 : switch (get_call_combined_fn (_q20))
9000 : {
9001 0 : case CFN_SUB_OVERFLOW:
9002 0 : if (call_expr_nargs (_q20) == 2)
9003 : {
9004 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9005 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
9006 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9007 : {
9008 0 : {
9009 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
9010 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
9011 0 : if (res) return res;
9012 : }
9013 : }
9014 : }
9015 : break;
9016 : default:;
9017 : }
9018 : break;
9019 : default:;
9020 : }
9021 : break;
9022 : }
9023 15807451 : default:;
9024 : }
9025 15807451 : switch (TREE_CODE (_p1))
9026 : {
9027 20 : case REALPART_EXPR:
9028 20 : {
9029 20 : tree _q30 = TREE_OPERAND (_p1, 0);
9030 20 : switch (TREE_CODE (_q30))
9031 : {
9032 0 : case CALL_EXPR:
9033 0 : switch (get_call_combined_fn (_q30))
9034 : {
9035 0 : case CFN_ADD_OVERFLOW:
9036 0 : if (call_expr_nargs (_q30) == 2)
9037 : {
9038 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
9039 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
9040 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9041 : {
9042 0 : {
9043 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
9044 0 : tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
9045 0 : if (res) return res;
9046 : }
9047 : }
9048 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9049 : {
9050 0 : {
9051 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
9052 0 : tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
9053 0 : if (res) return res;
9054 : }
9055 : }
9056 : }
9057 : break;
9058 : default:;
9059 : }
9060 : break;
9061 : default:;
9062 : }
9063 : break;
9064 : }
9065 1025 : case TRUNC_DIV_EXPR:
9066 1025 : {
9067 1025 : tree _q30 = TREE_OPERAND (_p1, 0);
9068 1025 : tree _q31 = TREE_OPERAND (_p1, 1);
9069 1025 : if (integer_all_onesp (_q30))
9070 : {
9071 0 : {
9072 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
9073 0 : tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
9074 0 : if (res) return res;
9075 : }
9076 : }
9077 : break;
9078 : }
9079 15807451 : default:;
9080 : }
9081 15807451 : switch (TREE_CODE (_p0))
9082 : {
9083 215302 : case MULT_EXPR:
9084 215302 : {
9085 215302 : tree _q20 = TREE_OPERAND (_p0, 0);
9086 215302 : tree _q21 = TREE_OPERAND (_p0, 1);
9087 215302 : switch (TREE_CODE (_q21))
9088 : {
9089 22279 : case REAL_CST:
9090 22279 : {
9091 22279 : switch (TREE_CODE (_p1))
9092 : {
9093 58 : case REAL_CST:
9094 58 : {
9095 58 : {
9096 58 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9097 58 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9098 58 : if (res) return res;
9099 : }
9100 57 : break;
9101 : }
9102 : default:;
9103 : }
9104 : break;
9105 : }
9106 : default:;
9107 : }
9108 : break;
9109 : }
9110 1997057 : case PLUS_EXPR:
9111 1997057 : {
9112 1997057 : tree _q20 = TREE_OPERAND (_p0, 0);
9113 1997057 : tree _q21 = TREE_OPERAND (_p0, 1);
9114 1997057 : switch (TREE_CODE (_q21))
9115 : {
9116 1797741 : case INTEGER_CST:
9117 1797741 : {
9118 1797741 : switch (TREE_CODE (_p1))
9119 : {
9120 1249074 : case INTEGER_CST:
9121 1249074 : {
9122 1249074 : {
9123 1249074 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9124 1249074 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR, LT_EXPR);
9125 1249074 : if (res) return res;
9126 : }
9127 805594 : break;
9128 : }
9129 : default:;
9130 : }
9131 : break;
9132 : }
9133 : default:;
9134 : }
9135 : break;
9136 : }
9137 649050 : case MINUS_EXPR:
9138 649050 : {
9139 649050 : tree _q20 = TREE_OPERAND (_p0, 0);
9140 649050 : tree _q21 = TREE_OPERAND (_p0, 1);
9141 649050 : switch (TREE_CODE (_q21))
9142 : {
9143 2224 : case INTEGER_CST:
9144 2224 : {
9145 2224 : switch (TREE_CODE (_p1))
9146 : {
9147 2076 : case INTEGER_CST:
9148 2076 : {
9149 2076 : {
9150 2076 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9151 2076 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR, LT_EXPR);
9152 2076 : if (res) return res;
9153 : }
9154 1918 : break;
9155 : }
9156 : default:;
9157 : }
9158 : break;
9159 : }
9160 648892 : default:;
9161 : }
9162 648892 : switch (TREE_CODE (_q20))
9163 : {
9164 553522 : case INTEGER_CST:
9165 553522 : {
9166 553522 : switch (TREE_CODE (_p1))
9167 : {
9168 550721 : case INTEGER_CST:
9169 550721 : {
9170 550721 : {
9171 550721 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9172 550721 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9173 550721 : if (res) return res;
9174 : }
9175 0 : break;
9176 : }
9177 : default:;
9178 : }
9179 : break;
9180 : }
9181 : default:;
9182 : }
9183 : break;
9184 : }
9185 268250 : case CALL_EXPR:
9186 268250 : switch (get_call_combined_fn (_p0))
9187 : {
9188 4 : case CFN_BUILT_IN_CTZ:
9189 4 : if (call_expr_nargs (_p0) == 1)
9190 : {
9191 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9192 4 : switch (TREE_CODE (_p1))
9193 : {
9194 4 : case INTEGER_CST:
9195 4 : {
9196 4 : {
9197 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9198 4 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9199 4 : if (res) return res;
9200 : }
9201 0 : break;
9202 : }
9203 : default:;
9204 : }
9205 : }
9206 : break;
9207 12 : case CFN_BUILT_IN_FFS:
9208 12 : if (call_expr_nargs (_p0) == 1)
9209 : {
9210 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9211 12 : switch (TREE_CODE (_p1))
9212 : {
9213 12 : case INTEGER_CST:
9214 12 : {
9215 12 : {
9216 12 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9217 12 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS);
9218 12 : if (res) return res;
9219 : }
9220 6 : break;
9221 : }
9222 : default:;
9223 : }
9224 : }
9225 : break;
9226 0 : case CFN_BUILT_IN_FFSIMAX:
9227 0 : if (call_expr_nargs (_p0) == 1)
9228 : {
9229 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9230 0 : switch (TREE_CODE (_p1))
9231 : {
9232 0 : case INTEGER_CST:
9233 0 : {
9234 0 : {
9235 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9236 0 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX);
9237 0 : if (res) return res;
9238 : }
9239 0 : break;
9240 : }
9241 : default:;
9242 : }
9243 : }
9244 : break;
9245 75 : case CFN_BUILT_IN_POPCOUNT:
9246 75 : if (call_expr_nargs (_p0) == 1)
9247 : {
9248 75 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9249 75 : if (integer_zerop (_p1))
9250 : {
9251 36 : {
9252 36 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9253 36 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
9254 36 : if (res) return res;
9255 : }
9256 : }
9257 : }
9258 : break;
9259 2 : case CFN_BUILT_IN_CTZL:
9260 2 : if (call_expr_nargs (_p0) == 1)
9261 : {
9262 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9263 2 : switch (TREE_CODE (_p1))
9264 : {
9265 2 : case INTEGER_CST:
9266 2 : {
9267 2 : {
9268 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9269 2 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9270 2 : if (res) return res;
9271 : }
9272 0 : break;
9273 : }
9274 : default:;
9275 : }
9276 : }
9277 : break;
9278 8 : case CFN_BUILT_IN_FFSL:
9279 8 : if (call_expr_nargs (_p0) == 1)
9280 : {
9281 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9282 8 : switch (TREE_CODE (_p1))
9283 : {
9284 8 : case INTEGER_CST:
9285 8 : {
9286 8 : {
9287 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9288 8 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL);
9289 8 : if (res) return res;
9290 : }
9291 4 : break;
9292 : }
9293 : default:;
9294 : }
9295 : }
9296 : break;
9297 3 : case CFN_BUILT_IN_POPCOUNTLL:
9298 3 : if (call_expr_nargs (_p0) == 1)
9299 : {
9300 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9301 3 : if (integer_zerop (_p1))
9302 : {
9303 0 : {
9304 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9305 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9306 0 : if (res) return res;
9307 : }
9308 : }
9309 : }
9310 : break;
9311 0 : case CFN_BUILT_IN_CTZIMAX:
9312 0 : if (call_expr_nargs (_p0) == 1)
9313 : {
9314 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9315 0 : switch (TREE_CODE (_p1))
9316 : {
9317 0 : case INTEGER_CST:
9318 0 : {
9319 0 : {
9320 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9321 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9322 0 : if (res) return res;
9323 : }
9324 0 : break;
9325 : }
9326 : default:;
9327 : }
9328 : }
9329 : break;
9330 0 : case CFN_POPCOUNT:
9331 0 : if (call_expr_nargs (_p0) == 1)
9332 : {
9333 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9334 0 : if (integer_zerop (_p1))
9335 : {
9336 0 : {
9337 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9338 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT);
9339 0 : if (res) return res;
9340 : }
9341 : }
9342 : }
9343 : break;
9344 0 : case CFN_CTZ:
9345 0 : if (call_expr_nargs (_p0) == 2)
9346 : {
9347 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9348 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
9349 0 : switch (TREE_CODE (_p1))
9350 : {
9351 0 : case INTEGER_CST:
9352 0 : {
9353 0 : {
9354 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9355 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
9356 0 : if (res) return res;
9357 : }
9358 0 : break;
9359 : }
9360 : default:;
9361 : }
9362 : }
9363 0 : if (call_expr_nargs (_p0) == 1)
9364 : {
9365 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9366 0 : switch (TREE_CODE (_p1))
9367 : {
9368 0 : case INTEGER_CST:
9369 0 : {
9370 0 : {
9371 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9372 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_CTZ);
9373 0 : if (res) return res;
9374 : }
9375 0 : break;
9376 : }
9377 : default:;
9378 : }
9379 : }
9380 : break;
9381 0 : case CFN_FFS:
9382 0 : if (call_expr_nargs (_p0) == 1)
9383 : {
9384 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9385 0 : switch (TREE_CODE (_p1))
9386 : {
9387 0 : case INTEGER_CST:
9388 0 : {
9389 0 : {
9390 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9391 0 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_FFS);
9392 0 : if (res) return res;
9393 : }
9394 0 : break;
9395 : }
9396 : default:;
9397 : }
9398 : }
9399 : break;
9400 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9401 0 : if (call_expr_nargs (_p0) == 1)
9402 : {
9403 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9404 0 : if (integer_zerop (_p1))
9405 : {
9406 0 : {
9407 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9408 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9409 0 : if (res) return res;
9410 : }
9411 : }
9412 : }
9413 : break;
9414 3 : case CFN_BUILT_IN_POPCOUNTL:
9415 3 : if (call_expr_nargs (_p0) == 1)
9416 : {
9417 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9418 3 : if (integer_zerop (_p1))
9419 : {
9420 0 : {
9421 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9422 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
9423 0 : if (res) return res;
9424 : }
9425 : }
9426 : }
9427 : break;
9428 18 : case CFN_BUILT_IN_CTZLL:
9429 18 : if (call_expr_nargs (_p0) == 1)
9430 : {
9431 18 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9432 18 : switch (TREE_CODE (_p1))
9433 : {
9434 18 : case INTEGER_CST:
9435 18 : {
9436 18 : {
9437 18 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9438 18 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
9439 18 : if (res) return res;
9440 : }
9441 16 : break;
9442 : }
9443 : default:;
9444 : }
9445 : }
9446 : break;
9447 9 : case CFN_BUILT_IN_FFSLL:
9448 9 : if (call_expr_nargs (_p0) == 1)
9449 : {
9450 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9451 9 : switch (TREE_CODE (_p1))
9452 : {
9453 9 : case INTEGER_CST:
9454 9 : {
9455 9 : {
9456 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9457 9 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL);
9458 9 : if (res) return res;
9459 : }
9460 4 : break;
9461 : }
9462 : default:;
9463 : }
9464 : }
9465 : break;
9466 : default:;
9467 : }
9468 : break;
9469 : default:;
9470 : }
9471 : return NULL_TREE;
9472 : }
9473 :
9474 : tree
9475 6789036 : generic_simplify_BIT_AND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
9476 : {
9477 6789036 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9478 6789036 : switch (TREE_CODE (_p0))
9479 : {
9480 35054 : case LSHIFT_EXPR:
9481 35054 : {
9482 35054 : tree _q20 = TREE_OPERAND (_p0, 0);
9483 35054 : tree _q21 = TREE_OPERAND (_p0, 1);
9484 35054 : switch (TREE_CODE (_p1))
9485 : {
9486 1 : case LSHIFT_EXPR:
9487 1 : {
9488 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9489 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9490 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9491 : {
9492 1 : {
9493 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9494 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9495 1 : if (res) return res;
9496 : }
9497 : }
9498 : break;
9499 : }
9500 : default:;
9501 : }
9502 : break;
9503 : }
9504 81799 : case RSHIFT_EXPR:
9505 81799 : {
9506 81799 : tree _q20 = TREE_OPERAND (_p0, 0);
9507 81799 : tree _q21 = TREE_OPERAND (_p0, 1);
9508 81799 : switch (TREE_CODE (_p1))
9509 : {
9510 2 : case RSHIFT_EXPR:
9511 2 : {
9512 2 : tree _q50 = TREE_OPERAND (_p1, 0);
9513 2 : tree _q51 = TREE_OPERAND (_p1, 1);
9514 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9515 : {
9516 2 : {
9517 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9518 2 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9519 2 : if (res) return res;
9520 : }
9521 : }
9522 : break;
9523 : }
9524 : default:;
9525 : }
9526 : break;
9527 : }
9528 2016799 : CASE_CONVERT:
9529 2016799 : {
9530 2016799 : tree _q20 = TREE_OPERAND (_p0, 0);
9531 2016799 : switch (TREE_CODE (_p1))
9532 : {
9533 811055 : CASE_CONVERT:
9534 811055 : {
9535 811055 : tree _q40 = TREE_OPERAND (_p1, 0);
9536 811055 : {
9537 811055 : tree _q40_pops[1];
9538 811055 : if (tree_maybe_bit_not (_q40, _q40_pops))
9539 : {
9540 250 : tree _q50 = _q40_pops[0];
9541 250 : {
9542 250 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
9543 250 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9544 250 : if (res) return res;
9545 : }
9546 : }
9547 : }
9548 811055 : break;
9549 : }
9550 2016799 : default:;
9551 : }
9552 2016799 : {
9553 2016799 : tree _q20_pops[1];
9554 2016799 : if (tree_maybe_bit_not (_q20, _q20_pops))
9555 : {
9556 427 : tree _q30 = _q20_pops[0];
9557 427 : switch (TREE_CODE (_p1))
9558 : {
9559 254 : CASE_CONVERT:
9560 254 : {
9561 254 : tree _q50 = TREE_OPERAND (_p1, 0);
9562 254 : {
9563 254 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
9564 254 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9565 254 : if (res) return res;
9566 : }
9567 254 : break;
9568 : }
9569 : default:;
9570 : }
9571 : }
9572 : }
9573 2016799 : break;
9574 : }
9575 6789033 : default:;
9576 : }
9577 6789033 : {
9578 6789033 : tree _p1_pops[1];
9579 6789033 : if (tree_maybe_bit_not (_p1, _p1_pops))
9580 : {
9581 4839279 : tree _q30 = _p1_pops[0];
9582 4839279 : {
9583 4839279 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9584 4839279 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9585 4839279 : if (res) return res;
9586 : }
9587 : }
9588 : }
9589 6789017 : {
9590 6789017 : tree _p0_pops[1];
9591 6789017 : if (tree_maybe_bit_not (_p0, _p0_pops))
9592 : {
9593 70955 : tree _q20 = _p0_pops[0];
9594 70955 : {
9595 70955 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
9596 70955 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9597 70955 : if (res) return res;
9598 : }
9599 : }
9600 : }
9601 6788918 : switch (TREE_CODE (_p1))
9602 : {
9603 21312 : case PLUS_EXPR:
9604 21312 : {
9605 21312 : tree _q30 = TREE_OPERAND (_p1, 0);
9606 21312 : tree _q31 = TREE_OPERAND (_p1, 1);
9607 21312 : switch (TREE_CODE (_q30))
9608 : {
9609 163 : case LSHIFT_EXPR:
9610 163 : {
9611 163 : tree _q40 = TREE_OPERAND (_q30, 0);
9612 163 : tree _q41 = TREE_OPERAND (_q30, 1);
9613 163 : if (integer_onep (_q40))
9614 : {
9615 163 : if (integer_minus_onep (_q31))
9616 : {
9617 163 : {
9618 163 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q41 };
9619 163 : if (TYPE_UNSIGNED (type)
9620 : )
9621 : {
9622 163 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1674;
9623 163 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1674;
9624 163 : {
9625 163 : tree res_op0;
9626 163 : res_op0 = captures[0];
9627 163 : tree res_op1;
9628 163 : {
9629 163 : tree _o1[1], _r1;
9630 163 : {
9631 163 : tree _o2[2], _r2;
9632 163 : _o2[0] = build_all_ones_cst (type);
9633 163 : _o2[1] = captures[3];
9634 163 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9635 163 : _o1[0] = _r2;
9636 : }
9637 163 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9638 163 : res_op1 = _r1;
9639 : }
9640 163 : tree _r;
9641 163 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9642 163 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
9643 163 : return _r;
9644 : }
9645 0 : next_after_fail1674:;
9646 : }
9647 : }
9648 : }
9649 : }
9650 : break;
9651 : }
9652 : default:;
9653 : }
9654 : break;
9655 : }
9656 6788755 : default:;
9657 : }
9658 6788755 : switch (TREE_CODE (_p0))
9659 : {
9660 304670 : case PLUS_EXPR:
9661 304670 : {
9662 304670 : tree _q20 = TREE_OPERAND (_p0, 0);
9663 304670 : tree _q21 = TREE_OPERAND (_p0, 1);
9664 304670 : switch (TREE_CODE (_q20))
9665 : {
9666 169 : case LSHIFT_EXPR:
9667 169 : {
9668 169 : tree _q30 = TREE_OPERAND (_q20, 0);
9669 169 : tree _q31 = TREE_OPERAND (_q20, 1);
9670 169 : if (integer_onep (_q30))
9671 : {
9672 162 : if (integer_minus_onep (_q21))
9673 : {
9674 162 : {
9675 162 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q31 };
9676 162 : if (TYPE_UNSIGNED (type)
9677 : )
9678 : {
9679 134 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1675;
9680 134 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1675;
9681 134 : {
9682 134 : tree res_op0;
9683 134 : res_op0 = captures[0];
9684 134 : tree res_op1;
9685 134 : {
9686 134 : tree _o1[1], _r1;
9687 134 : {
9688 134 : tree _o2[2], _r2;
9689 134 : _o2[0] = build_all_ones_cst (type);
9690 134 : _o2[1] = captures[3];
9691 134 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9692 134 : _o1[0] = _r2;
9693 : }
9694 134 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9695 134 : res_op1 = _r1;
9696 : }
9697 134 : tree _r;
9698 134 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9699 134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
9700 134 : return _r;
9701 : }
9702 28 : next_after_fail1675:;
9703 : }
9704 : }
9705 : }
9706 : }
9707 : break;
9708 : }
9709 : default:;
9710 : }
9711 : break;
9712 : }
9713 1871 : case EQ_EXPR:
9714 1871 : {
9715 1871 : tree _q20 = TREE_OPERAND (_p0, 0);
9716 1871 : tree _q21 = TREE_OPERAND (_p0, 1);
9717 1871 : if (integer_zerop (_q21))
9718 : {
9719 753 : switch (TREE_CODE (_p1))
9720 : {
9721 68 : case EQ_EXPR:
9722 68 : {
9723 68 : tree _q50 = TREE_OPERAND (_p1, 0);
9724 68 : tree _q51 = TREE_OPERAND (_p1, 1);
9725 68 : if (integer_zerop (_q51))
9726 : {
9727 29 : {
9728 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9729 29 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9730 29 : if (res) return res;
9731 : }
9732 : }
9733 : break;
9734 : }
9735 : default:;
9736 : }
9737 : }
9738 1842 : if (integer_all_onesp (_q21))
9739 : {
9740 0 : switch (TREE_CODE (_p1))
9741 : {
9742 0 : case EQ_EXPR:
9743 0 : {
9744 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9745 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9746 0 : if (integer_all_onesp (_q51))
9747 : {
9748 0 : {
9749 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9750 0 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9751 0 : if (res) return res;
9752 : }
9753 : }
9754 : break;
9755 : }
9756 : default:;
9757 : }
9758 : }
9759 1842 : switch (TREE_CODE (_p1))
9760 : {
9761 8 : case BIT_IOR_EXPR:
9762 8 : {
9763 8 : tree _q50 = TREE_OPERAND (_p1, 0);
9764 8 : tree _q51 = TREE_OPERAND (_p1, 1);
9765 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9766 : {
9767 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9768 : {
9769 0 : {
9770 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9771 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9772 0 : if (res) return res;
9773 : }
9774 : }
9775 : }
9776 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9777 : {
9778 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9779 : {
9780 0 : {
9781 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9782 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9783 0 : if (res) return res;
9784 : }
9785 : }
9786 : }
9787 : break;
9788 : }
9789 1842 : default:;
9790 : }
9791 1842 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9792 : {
9793 12 : {
9794 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9795 12 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9796 12 : if (res) return res;
9797 : }
9798 : }
9799 1842 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9800 : {
9801 8 : {
9802 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9803 8 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9804 8 : if (res) return res;
9805 : }
9806 : }
9807 : break;
9808 : }
9809 1615 : case BIT_IOR_EXPR:
9810 1615 : {
9811 1615 : tree _q20 = TREE_OPERAND (_p0, 0);
9812 1615 : tree _q21 = TREE_OPERAND (_p0, 1);
9813 1615 : switch (TREE_CODE (_p1))
9814 : {
9815 169 : case BIT_NOT_EXPR:
9816 169 : {
9817 169 : tree _q50 = TREE_OPERAND (_p1, 0);
9818 169 : switch (TREE_CODE (_q50))
9819 : {
9820 6 : case BIT_XOR_EXPR:
9821 6 : {
9822 6 : tree _q60 = TREE_OPERAND (_q50, 0);
9823 6 : tree _q61 = TREE_OPERAND (_q50, 1);
9824 6 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9825 : {
9826 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9827 : {
9828 0 : {
9829 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9830 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9831 0 : if (res) return res;
9832 : }
9833 : }
9834 : }
9835 6 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9836 : {
9837 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9838 : {
9839 0 : {
9840 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9841 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9842 0 : if (res) return res;
9843 : }
9844 : }
9845 : }
9846 : break;
9847 : }
9848 : default:;
9849 : }
9850 : break;
9851 : }
9852 24 : case EQ_EXPR:
9853 24 : {
9854 24 : tree _q50 = TREE_OPERAND (_p1, 0);
9855 24 : tree _q51 = TREE_OPERAND (_p1, 1);
9856 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9857 : {
9858 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9859 : {
9860 8 : {
9861 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9862 8 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9863 8 : if (res) return res;
9864 : }
9865 : }
9866 : }
9867 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9868 : {
9869 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9870 : {
9871 0 : {
9872 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9873 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9874 0 : if (res) return res;
9875 : }
9876 : }
9877 : }
9878 : break;
9879 : }
9880 1615 : default:;
9881 : }
9882 1615 : {
9883 1615 : tree _p1_pops[1];
9884 1615 : if (tree_nop_convert (_p1, _p1_pops))
9885 : {
9886 139 : tree _q50 = _p1_pops[0];
9887 139 : switch (TREE_CODE (_q50))
9888 : {
9889 0 : case EQ_EXPR:
9890 0 : {
9891 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9892 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9893 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9894 : {
9895 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9896 : {
9897 0 : {
9898 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9899 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9900 0 : if (res) return res;
9901 : }
9902 : }
9903 : }
9904 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9905 : {
9906 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9907 : {
9908 0 : {
9909 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9910 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9911 0 : if (res) return res;
9912 : }
9913 : }
9914 : }
9915 : break;
9916 : }
9917 : default:;
9918 : }
9919 : }
9920 : }
9921 1615 : break;
9922 : }
9923 67082 : case BIT_NOT_EXPR:
9924 67082 : {
9925 67082 : tree _q20 = TREE_OPERAND (_p0, 0);
9926 67082 : switch (TREE_CODE (_q20))
9927 : {
9928 140 : case BIT_XOR_EXPR:
9929 140 : {
9930 140 : tree _q30 = TREE_OPERAND (_q20, 0);
9931 140 : tree _q31 = TREE_OPERAND (_q20, 1);
9932 140 : switch (TREE_CODE (_p1))
9933 : {
9934 48 : case BIT_IOR_EXPR:
9935 48 : {
9936 48 : tree _q60 = TREE_OPERAND (_p1, 0);
9937 48 : tree _q61 = TREE_OPERAND (_p1, 1);
9938 48 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9939 : {
9940 6 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9941 : {
9942 0 : {
9943 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9944 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9945 0 : if (res) return res;
9946 : }
9947 : }
9948 : }
9949 48 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9950 : {
9951 3 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9952 : {
9953 0 : {
9954 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9955 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9956 0 : if (res) return res;
9957 : }
9958 : }
9959 : }
9960 : break;
9961 : }
9962 140 : default:;
9963 : }
9964 140 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9965 : {
9966 1 : {
9967 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9968 1 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9969 1 : if (res) return res;
9970 : }
9971 : }
9972 139 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9973 : {
9974 0 : {
9975 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9976 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9977 0 : if (res) return res;
9978 : }
9979 : }
9980 : break;
9981 : }
9982 : default:;
9983 : }
9984 : break;
9985 : }
9986 6788591 : default:;
9987 : }
9988 6788591 : {
9989 6788591 : tree _p0_pops[1];
9990 6788591 : if (tree_nop_convert (_p0, _p0_pops))
9991 : {
9992 1420238 : tree _q20 = _p0_pops[0];
9993 1420238 : switch (TREE_CODE (_q20))
9994 : {
9995 0 : case EQ_EXPR:
9996 0 : {
9997 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9998 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9999 0 : switch (TREE_CODE (_p1))
10000 : {
10001 0 : case BIT_IOR_EXPR:
10002 0 : {
10003 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10004 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10005 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
10006 : {
10007 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
10008 : {
10009 0 : {
10010 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10011 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10012 0 : if (res) return res;
10013 : }
10014 : }
10015 : }
10016 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
10017 : {
10018 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
10019 : {
10020 0 : {
10021 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
10022 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10023 0 : if (res) return res;
10024 : }
10025 : }
10026 : }
10027 : break;
10028 : }
10029 0 : default:;
10030 : }
10031 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10032 : {
10033 0 : {
10034 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10035 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10036 0 : if (res) return res;
10037 : }
10038 : }
10039 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
10040 : {
10041 0 : {
10042 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
10043 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10044 0 : if (res) return res;
10045 : }
10046 : }
10047 : break;
10048 : }
10049 : default:;
10050 : }
10051 : }
10052 : }
10053 6788591 : switch (TREE_CODE (_p1))
10054 : {
10055 52934 : case BIT_NOT_EXPR:
10056 52934 : {
10057 52934 : tree _q30 = TREE_OPERAND (_p1, 0);
10058 52934 : switch (TREE_CODE (_q30))
10059 : {
10060 6 : case BIT_XOR_EXPR:
10061 6 : {
10062 6 : tree _q40 = TREE_OPERAND (_q30, 0);
10063 6 : tree _q41 = TREE_OPERAND (_q30, 1);
10064 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10065 : {
10066 0 : {
10067 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10068 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10069 0 : if (res) return res;
10070 : }
10071 : }
10072 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10073 : {
10074 0 : {
10075 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10076 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10077 0 : if (res) return res;
10078 : }
10079 : }
10080 : break;
10081 : }
10082 : default:;
10083 : }
10084 : break;
10085 : }
10086 6788591 : default:;
10087 : }
10088 6788591 : switch (TREE_CODE (_p0))
10089 : {
10090 304536 : case PLUS_EXPR:
10091 304536 : {
10092 304536 : tree _q20 = TREE_OPERAND (_p0, 0);
10093 304536 : tree _q21 = TREE_OPERAND (_p0, 1);
10094 304536 : if (integer_minus_onep (_q21))
10095 : {
10096 110998 : switch (TREE_CODE (_p1))
10097 : {
10098 10566 : case NEGATE_EXPR:
10099 10566 : {
10100 10566 : tree _q50 = TREE_OPERAND (_p1, 0);
10101 10566 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10102 : {
10103 9 : {
10104 9 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10105 9 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10106 9 : if (res) return res;
10107 : }
10108 : }
10109 : break;
10110 : }
10111 : default:;
10112 : }
10113 : }
10114 : break;
10115 : }
10116 47185 : case NEGATE_EXPR:
10117 47185 : {
10118 47185 : tree _q20 = TREE_OPERAND (_p0, 0);
10119 47185 : switch (TREE_CODE (_p1))
10120 : {
10121 26 : case PLUS_EXPR:
10122 26 : {
10123 26 : tree _q40 = TREE_OPERAND (_p1, 0);
10124 26 : tree _q41 = TREE_OPERAND (_p1, 1);
10125 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10126 : {
10127 0 : if (integer_minus_onep (_q41))
10128 : {
10129 0 : {
10130 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10131 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10132 0 : if (res) return res;
10133 : }
10134 : }
10135 : }
10136 : break;
10137 : }
10138 0 : case MINUS_EXPR:
10139 0 : {
10140 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10141 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10142 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10143 : {
10144 0 : if (integer_onep (_q41))
10145 : {
10146 0 : {
10147 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10148 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10149 0 : if (res) return res;
10150 : }
10151 : }
10152 : }
10153 : break;
10154 : }
10155 : default:;
10156 : }
10157 : break;
10158 : }
10159 685506 : case MINUS_EXPR:
10160 685506 : {
10161 685506 : tree _q20 = TREE_OPERAND (_p0, 0);
10162 685506 : tree _q21 = TREE_OPERAND (_p0, 1);
10163 685506 : if (integer_onep (_q21))
10164 : {
10165 805 : switch (TREE_CODE (_p1))
10166 : {
10167 0 : case NEGATE_EXPR:
10168 0 : {
10169 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10170 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10171 : {
10172 0 : {
10173 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10174 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10175 0 : if (res) return res;
10176 : }
10177 : }
10178 : break;
10179 : }
10180 : default:;
10181 : }
10182 : }
10183 : break;
10184 : }
10185 6788582 : default:;
10186 : }
10187 6788582 : switch (TREE_CODE (_p1))
10188 : {
10189 1780 : case EQ_EXPR:
10190 1780 : {
10191 1780 : tree _q30 = TREE_OPERAND (_p1, 0);
10192 1780 : tree _q31 = TREE_OPERAND (_p1, 1);
10193 1780 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10194 : {
10195 1 : {
10196 1 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10197 1 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10198 1 : if (res) return res;
10199 : }
10200 : }
10201 1780 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10202 : {
10203 0 : {
10204 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
10205 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10206 0 : if (res) return res;
10207 : }
10208 : }
10209 : break;
10210 : }
10211 257 : case BIT_XOR_EXPR:
10212 257 : {
10213 257 : tree _q30 = TREE_OPERAND (_p1, 0);
10214 257 : tree _q31 = TREE_OPERAND (_p1, 1);
10215 257 : {
10216 257 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
10217 257 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10218 257 : if (res) return res;
10219 : }
10220 256 : {
10221 256 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
10222 256 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10223 256 : if (res) return res;
10224 : }
10225 256 : break;
10226 : }
10227 6788581 : default:;
10228 : }
10229 6788581 : {
10230 6788581 : tree _p1_pops[1];
10231 6788581 : if (tree_nop_convert (_p1, _p1_pops))
10232 : {
10233 966985 : tree _q30 = _p1_pops[0];
10234 966985 : switch (TREE_CODE (_q30))
10235 : {
10236 0 : case EQ_EXPR:
10237 0 : {
10238 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10239 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10240 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10241 : {
10242 0 : {
10243 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10244 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10245 0 : if (res) return res;
10246 : }
10247 : }
10248 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10249 : {
10250 0 : {
10251 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10252 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
10253 0 : if (res) return res;
10254 : }
10255 : }
10256 : break;
10257 : }
10258 : default:;
10259 : }
10260 : }
10261 : }
10262 6788581 : switch (TREE_CODE (_p0))
10263 : {
10264 62573 : case BIT_XOR_EXPR:
10265 62573 : {
10266 62573 : tree _q20 = TREE_OPERAND (_p0, 0);
10267 62573 : tree _q21 = TREE_OPERAND (_p0, 1);
10268 62573 : {
10269 62573 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
10270 62573 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10271 62573 : if (res) return res;
10272 : }
10273 62573 : {
10274 62573 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
10275 62573 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10276 62573 : if (res) return res;
10277 : }
10278 62573 : switch (TREE_CODE (_p1))
10279 : {
10280 152 : case BIT_XOR_EXPR:
10281 152 : {
10282 152 : tree _q50 = TREE_OPERAND (_p1, 0);
10283 152 : tree _q51 = TREE_OPERAND (_p1, 1);
10284 152 : switch (TREE_CODE (_q50))
10285 : {
10286 3 : case BIT_XOR_EXPR:
10287 3 : {
10288 3 : tree _q60 = TREE_OPERAND (_q50, 0);
10289 3 : tree _q61 = TREE_OPERAND (_q50, 1);
10290 3 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
10291 : {
10292 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10293 : {
10294 1 : {
10295 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q61 };
10296 1 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10297 1 : if (res) return res;
10298 : }
10299 : }
10300 : }
10301 2 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
10302 : {
10303 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10304 : {
10305 0 : {
10306 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q60 };
10307 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10308 0 : if (res) return res;
10309 : }
10310 : }
10311 : }
10312 2 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10313 : {
10314 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10315 : {
10316 1 : {
10317 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q61 };
10318 1 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10319 1 : if (res) return res;
10320 : }
10321 : }
10322 : }
10323 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
10324 : {
10325 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10326 : {
10327 0 : {
10328 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q60 };
10329 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10330 0 : if (res) return res;
10331 : }
10332 : }
10333 : }
10334 : break;
10335 : }
10336 150 : default:;
10337 : }
10338 150 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10339 : {
10340 47 : switch (TREE_CODE (_q51))
10341 : {
10342 0 : case BIT_XOR_EXPR:
10343 0 : {
10344 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10345 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10346 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10347 : {
10348 0 : {
10349 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q71 };
10350 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10351 0 : if (res) return res;
10352 : }
10353 : }
10354 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10355 : {
10356 0 : {
10357 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q70 };
10358 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10359 0 : if (res) return res;
10360 : }
10361 : }
10362 : break;
10363 : }
10364 : default:;
10365 : }
10366 : }
10367 150 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10368 : {
10369 0 : switch (TREE_CODE (_q51))
10370 : {
10371 0 : case BIT_XOR_EXPR:
10372 0 : {
10373 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10374 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10375 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10376 : {
10377 0 : {
10378 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q71 };
10379 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10380 0 : if (res) return res;
10381 : }
10382 : }
10383 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10384 : {
10385 0 : {
10386 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q70 };
10387 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10388 0 : if (res) return res;
10389 : }
10390 : }
10391 : break;
10392 : }
10393 : default:;
10394 : }
10395 : }
10396 : break;
10397 : }
10398 62571 : default:;
10399 : }
10400 62571 : switch (TREE_CODE (_q20))
10401 : {
10402 11 : case BIT_XOR_EXPR:
10403 11 : {
10404 11 : tree _q30 = TREE_OPERAND (_q20, 0);
10405 11 : tree _q31 = TREE_OPERAND (_q20, 1);
10406 11 : switch (TREE_CODE (_p1))
10407 : {
10408 0 : case BIT_XOR_EXPR:
10409 0 : {
10410 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10411 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10412 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10413 : {
10414 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10415 : {
10416 0 : {
10417 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10418 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10419 0 : if (res) return res;
10420 : }
10421 : }
10422 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10423 : {
10424 0 : {
10425 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10426 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10427 0 : if (res) return res;
10428 : }
10429 : }
10430 : }
10431 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10432 : {
10433 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10434 : {
10435 0 : {
10436 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10437 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10438 0 : if (res) return res;
10439 : }
10440 : }
10441 : }
10442 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10443 : {
10444 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10445 : {
10446 0 : {
10447 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10448 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10449 0 : if (res) return res;
10450 : }
10451 : }
10452 : }
10453 : break;
10454 : }
10455 : default:;
10456 : }
10457 : break;
10458 : }
10459 62571 : default:;
10460 : }
10461 62571 : switch (TREE_CODE (_q21))
10462 : {
10463 0 : case BIT_XOR_EXPR:
10464 0 : {
10465 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10466 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10467 0 : switch (TREE_CODE (_p1))
10468 : {
10469 0 : case BIT_XOR_EXPR:
10470 0 : {
10471 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10472 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10473 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10474 : {
10475 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
10476 : {
10477 0 : {
10478 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10479 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10480 0 : if (res) return res;
10481 : }
10482 : }
10483 0 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
10484 : {
10485 0 : {
10486 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10487 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10488 0 : if (res) return res;
10489 : }
10490 : }
10491 : }
10492 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
10493 : {
10494 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10495 : {
10496 0 : {
10497 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10498 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10499 0 : if (res) return res;
10500 : }
10501 : }
10502 : }
10503 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
10504 : {
10505 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10506 : {
10507 0 : {
10508 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10509 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10510 0 : if (res) return res;
10511 : }
10512 : }
10513 : }
10514 : break;
10515 : }
10516 : default:;
10517 : }
10518 : break;
10519 : }
10520 : default:;
10521 : }
10522 : break;
10523 : }
10524 67080 : case BIT_NOT_EXPR:
10525 67080 : {
10526 67080 : tree _q20 = TREE_OPERAND (_p0, 0);
10527 67080 : switch (TREE_CODE (_q20))
10528 : {
10529 188 : case SSA_NAME:
10530 188 : {
10531 188 : switch (TREE_CODE (_p1))
10532 : {
10533 188 : case INTEGER_CST:
10534 188 : {
10535 188 : {
10536 188 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10537 376 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
10538 564 : && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0
10539 : )
10540 : {
10541 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1676;
10542 14 : {
10543 14 : tree res_op0;
10544 14 : res_op0 = captures[0];
10545 14 : tree res_op1;
10546 14 : res_op1 = captures[1];
10547 14 : tree _r;
10548 14 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
10549 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
10550 14 : return _r;
10551 : }
10552 0 : next_after_fail1676:;
10553 : }
10554 : }
10555 174 : break;
10556 : }
10557 : default:;
10558 : }
10559 : break;
10560 : }
10561 : default:;
10562 : }
10563 : break;
10564 : }
10565 304527 : case PLUS_EXPR:
10566 304527 : {
10567 304527 : tree _q20 = TREE_OPERAND (_p0, 0);
10568 304527 : tree _q21 = TREE_OPERAND (_p0, 1);
10569 304527 : switch (TREE_CODE (_q20))
10570 : {
10571 24 : case BIT_AND_EXPR:
10572 24 : {
10573 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10574 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10575 24 : switch (TREE_CODE (_q31))
10576 : {
10577 20 : case INTEGER_CST:
10578 20 : {
10579 20 : switch (TREE_CODE (_p1))
10580 : {
10581 20 : case INTEGER_CST:
10582 20 : {
10583 20 : {
10584 20 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10585 20 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10586 20 : if (res) return res;
10587 : }
10588 12 : break;
10589 : }
10590 : default:;
10591 : }
10592 : break;
10593 : }
10594 : default:;
10595 : }
10596 : break;
10597 : }
10598 64 : case BIT_IOR_EXPR:
10599 64 : {
10600 64 : tree _q30 = TREE_OPERAND (_q20, 0);
10601 64 : tree _q31 = TREE_OPERAND (_q20, 1);
10602 64 : switch (TREE_CODE (_q31))
10603 : {
10604 52 : case INTEGER_CST:
10605 52 : {
10606 52 : switch (TREE_CODE (_p1))
10607 : {
10608 52 : case INTEGER_CST:
10609 52 : {
10610 52 : {
10611 52 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10612 52 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10613 52 : if (res) return res;
10614 : }
10615 48 : break;
10616 : }
10617 : default:;
10618 : }
10619 : break;
10620 : }
10621 : default:;
10622 : }
10623 : break;
10624 : }
10625 24 : case BIT_XOR_EXPR:
10626 24 : {
10627 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10628 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10629 24 : switch (TREE_CODE (_q31))
10630 : {
10631 4 : case INTEGER_CST:
10632 4 : {
10633 4 : switch (TREE_CODE (_p1))
10634 : {
10635 4 : case INTEGER_CST:
10636 4 : {
10637 4 : {
10638 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10639 4 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10640 4 : if (res) return res;
10641 : }
10642 0 : break;
10643 : }
10644 : default:;
10645 : }
10646 : break;
10647 : }
10648 : default:;
10649 : }
10650 : break;
10651 : }
10652 304511 : default:;
10653 : }
10654 304511 : switch (TREE_CODE (_q21))
10655 : {
10656 0 : case BIT_AND_EXPR:
10657 0 : {
10658 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10659 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10660 0 : switch (TREE_CODE (_q41))
10661 : {
10662 0 : case INTEGER_CST:
10663 0 : {
10664 0 : switch (TREE_CODE (_p1))
10665 : {
10666 0 : case INTEGER_CST:
10667 0 : {
10668 0 : {
10669 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10670 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10671 0 : if (res) return res;
10672 : }
10673 0 : break;
10674 : }
10675 : default:;
10676 : }
10677 : break;
10678 : }
10679 : default:;
10680 : }
10681 : break;
10682 : }
10683 0 : case BIT_IOR_EXPR:
10684 0 : {
10685 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10686 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10687 0 : switch (TREE_CODE (_q41))
10688 : {
10689 0 : case INTEGER_CST:
10690 0 : {
10691 0 : switch (TREE_CODE (_p1))
10692 : {
10693 0 : case INTEGER_CST:
10694 0 : {
10695 0 : {
10696 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10697 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10698 0 : if (res) return res;
10699 : }
10700 0 : break;
10701 : }
10702 : default:;
10703 : }
10704 : break;
10705 : }
10706 : default:;
10707 : }
10708 : break;
10709 : }
10710 0 : case BIT_XOR_EXPR:
10711 0 : {
10712 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10713 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10714 0 : switch (TREE_CODE (_q41))
10715 : {
10716 0 : case INTEGER_CST:
10717 0 : {
10718 0 : switch (TREE_CODE (_p1))
10719 : {
10720 0 : case INTEGER_CST:
10721 0 : {
10722 0 : {
10723 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10724 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10725 0 : if (res) return res;
10726 : }
10727 0 : break;
10728 : }
10729 : default:;
10730 : }
10731 : break;
10732 : }
10733 : default:;
10734 : }
10735 : break;
10736 : }
10737 304511 : default:;
10738 : }
10739 304511 : switch (TREE_CODE (_p1))
10740 : {
10741 219963 : case INTEGER_CST:
10742 219963 : {
10743 219963 : {
10744 219963 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10745 219963 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, PLUS_EXPR);
10746 219963 : if (res) return res;
10747 : }
10748 92029 : break;
10749 : }
10750 : default:;
10751 : }
10752 : break;
10753 : }
10754 685506 : case MINUS_EXPR:
10755 685506 : {
10756 685506 : tree _q20 = TREE_OPERAND (_p0, 0);
10757 685506 : tree _q21 = TREE_OPERAND (_p0, 1);
10758 685506 : switch (TREE_CODE (_q20))
10759 : {
10760 4 : case BIT_AND_EXPR:
10761 4 : {
10762 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10763 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10764 4 : switch (TREE_CODE (_q31))
10765 : {
10766 2 : case INTEGER_CST:
10767 2 : {
10768 2 : switch (TREE_CODE (_p1))
10769 : {
10770 2 : case INTEGER_CST:
10771 2 : {
10772 2 : {
10773 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10774 2 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10775 2 : if (res) return res;
10776 : }
10777 0 : break;
10778 : }
10779 : default:;
10780 : }
10781 : break;
10782 : }
10783 : default:;
10784 : }
10785 : break;
10786 : }
10787 4 : case BIT_IOR_EXPR:
10788 4 : {
10789 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10790 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10791 4 : switch (TREE_CODE (_q31))
10792 : {
10793 2 : case INTEGER_CST:
10794 2 : {
10795 2 : switch (TREE_CODE (_p1))
10796 : {
10797 2 : case INTEGER_CST:
10798 2 : {
10799 2 : {
10800 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10801 2 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10802 2 : if (res) return res;
10803 : }
10804 0 : break;
10805 : }
10806 : default:;
10807 : }
10808 : break;
10809 : }
10810 : default:;
10811 : }
10812 : break;
10813 : }
10814 4 : case BIT_XOR_EXPR:
10815 4 : {
10816 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10817 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10818 4 : switch (TREE_CODE (_q31))
10819 : {
10820 2 : case INTEGER_CST:
10821 2 : {
10822 2 : switch (TREE_CODE (_p1))
10823 : {
10824 2 : case INTEGER_CST:
10825 2 : {
10826 2 : {
10827 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10828 2 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10829 2 : if (res) return res;
10830 : }
10831 0 : break;
10832 : }
10833 : default:;
10834 : }
10835 : break;
10836 : }
10837 : default:;
10838 : }
10839 : break;
10840 : }
10841 685500 : default:;
10842 : }
10843 685500 : switch (TREE_CODE (_q21))
10844 : {
10845 350 : case BIT_AND_EXPR:
10846 350 : {
10847 350 : tree _q40 = TREE_OPERAND (_q21, 0);
10848 350 : tree _q41 = TREE_OPERAND (_q21, 1);
10849 350 : switch (TREE_CODE (_q41))
10850 : {
10851 348 : case INTEGER_CST:
10852 348 : {
10853 348 : switch (TREE_CODE (_p1))
10854 : {
10855 348 : case INTEGER_CST:
10856 348 : {
10857 348 : {
10858 348 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10859 348 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10860 348 : if (res) return res;
10861 : }
10862 1 : break;
10863 : }
10864 : default:;
10865 : }
10866 : break;
10867 : }
10868 : default:;
10869 : }
10870 : break;
10871 : }
10872 4 : case BIT_IOR_EXPR:
10873 4 : {
10874 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10875 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10876 4 : switch (TREE_CODE (_q41))
10877 : {
10878 2 : case INTEGER_CST:
10879 2 : {
10880 2 : switch (TREE_CODE (_p1))
10881 : {
10882 2 : case INTEGER_CST:
10883 2 : {
10884 2 : {
10885 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10886 2 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10887 2 : if (res) return res;
10888 : }
10889 0 : break;
10890 : }
10891 : default:;
10892 : }
10893 : break;
10894 : }
10895 : default:;
10896 : }
10897 : break;
10898 : }
10899 4 : case BIT_XOR_EXPR:
10900 4 : {
10901 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10902 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10903 4 : switch (TREE_CODE (_q41))
10904 : {
10905 2 : case INTEGER_CST:
10906 2 : {
10907 2 : switch (TREE_CODE (_p1))
10908 : {
10909 2 : case INTEGER_CST:
10910 2 : {
10911 2 : {
10912 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10913 2 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10914 2 : if (res) return res;
10915 : }
10916 0 : break;
10917 : }
10918 : default:;
10919 : }
10920 : break;
10921 : }
10922 : default:;
10923 : }
10924 : break;
10925 : }
10926 685149 : default:;
10927 : }
10928 685149 : switch (TREE_CODE (_p1))
10929 : {
10930 684947 : case INTEGER_CST:
10931 684947 : {
10932 684947 : {
10933 684947 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10934 684947 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, MINUS_EXPR);
10935 684947 : if (res) return res;
10936 : }
10937 492001 : break;
10938 : }
10939 : default:;
10940 : }
10941 : break;
10942 : }
10943 47185 : case NEGATE_EXPR:
10944 47185 : {
10945 47185 : tree _q20 = TREE_OPERAND (_p0, 0);
10946 47185 : switch (TREE_CODE (_q20))
10947 : {
10948 25 : case BIT_AND_EXPR:
10949 25 : {
10950 25 : tree _q30 = TREE_OPERAND (_q20, 0);
10951 25 : tree _q31 = TREE_OPERAND (_q20, 1);
10952 25 : switch (TREE_CODE (_q31))
10953 : {
10954 21 : case INTEGER_CST:
10955 21 : {
10956 21 : switch (TREE_CODE (_p1))
10957 : {
10958 11 : case INTEGER_CST:
10959 11 : {
10960 11 : {
10961 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10962 11 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10963 11 : if (res) return res;
10964 : }
10965 8 : break;
10966 : }
10967 : default:;
10968 : }
10969 : break;
10970 : }
10971 : default:;
10972 : }
10973 : break;
10974 : }
10975 44 : case BIT_IOR_EXPR:
10976 44 : {
10977 44 : tree _q30 = TREE_OPERAND (_q20, 0);
10978 44 : tree _q31 = TREE_OPERAND (_q20, 1);
10979 44 : switch (TREE_CODE (_q31))
10980 : {
10981 2 : case INTEGER_CST:
10982 2 : {
10983 2 : switch (TREE_CODE (_p1))
10984 : {
10985 2 : case INTEGER_CST:
10986 2 : {
10987 2 : {
10988 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10989 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
10990 2 : if (res) return res;
10991 : }
10992 0 : break;
10993 : }
10994 : default:;
10995 : }
10996 : break;
10997 : }
10998 : default:;
10999 : }
11000 : break;
11001 : }
11002 4 : case BIT_XOR_EXPR:
11003 4 : {
11004 4 : tree _q30 = TREE_OPERAND (_q20, 0);
11005 4 : tree _q31 = TREE_OPERAND (_q20, 1);
11006 4 : switch (TREE_CODE (_q31))
11007 : {
11008 2 : case INTEGER_CST:
11009 2 : {
11010 2 : switch (TREE_CODE (_p1))
11011 : {
11012 2 : case INTEGER_CST:
11013 2 : {
11014 2 : {
11015 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
11016 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
11017 2 : if (res) return res;
11018 : }
11019 0 : break;
11020 : }
11021 : default:;
11022 : }
11023 : break;
11024 : }
11025 : default:;
11026 : }
11027 : break;
11028 : }
11029 47178 : default:;
11030 : }
11031 47178 : if (tree_zero_one_valued_p (_q20))
11032 : {
11033 21 : {
11034 21 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11035 21 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
11036 21 : if (res) return res;
11037 : }
11038 : }
11039 : break;
11040 : }
11041 6467284 : default:;
11042 : }
11043 6467284 : if (integer_zerop (_p1))
11044 : {
11045 3886 : {
11046 3886 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11047 3886 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1677;
11048 3886 : {
11049 3886 : tree _r;
11050 3886 : _r = captures[1];
11051 3886 : if (TREE_SIDE_EFFECTS (captures[0]))
11052 51 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11053 3886 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
11054 3886 : return _r;
11055 : }
11056 0 : next_after_fail1677:;
11057 : }
11058 : }
11059 6463398 : if (integer_all_onesp (_p1))
11060 : {
11061 45574 : {
11062 45574 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11063 45574 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1678;
11064 45574 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1678;
11065 45574 : {
11066 45574 : tree res_op0;
11067 45574 : res_op0 = captures[0];
11068 45574 : tree _r;
11069 45574 : _r = non_lvalue_loc (loc, res_op0);
11070 45574 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
11071 45574 : return _r;
11072 : }
11073 : next_after_fail1678:;
11074 : }
11075 : }
11076 6417824 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11077 : {
11078 131 : {
11079 131 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11080 131 : tree res = generic_simplify_128 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11081 131 : if (res) return res;
11082 : }
11083 : }
11084 6417693 : switch (TREE_CODE (_p1))
11085 : {
11086 52934 : case BIT_NOT_EXPR:
11087 52934 : {
11088 52934 : tree _q30 = TREE_OPERAND (_p1, 0);
11089 52934 : switch (TREE_CODE (_q30))
11090 : {
11091 13 : case BIT_AND_EXPR:
11092 13 : {
11093 13 : tree _q40 = TREE_OPERAND (_q30, 0);
11094 13 : tree _q41 = TREE_OPERAND (_q30, 1);
11095 13 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11096 : {
11097 0 : {
11098 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
11099 0 : tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11100 0 : if (res) return res;
11101 : }
11102 : }
11103 13 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
11104 : {
11105 0 : {
11106 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
11107 0 : tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11108 0 : if (res) return res;
11109 : }
11110 : }
11111 : break;
11112 : }
11113 : default:;
11114 : }
11115 : break;
11116 : }
11117 6417693 : default:;
11118 : }
11119 6417693 : switch (TREE_CODE (_p0))
11120 : {
11121 67050 : case BIT_NOT_EXPR:
11122 67050 : {
11123 67050 : tree _q20 = TREE_OPERAND (_p0, 0);
11124 67050 : switch (TREE_CODE (_q20))
11125 : {
11126 28 : case BIT_AND_EXPR:
11127 28 : {
11128 28 : tree _q30 = TREE_OPERAND (_q20, 0);
11129 28 : tree _q31 = TREE_OPERAND (_q20, 1);
11130 28 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11131 : {
11132 4 : {
11133 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
11134 4 : tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11135 4 : if (res) return res;
11136 : }
11137 : }
11138 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
11139 : {
11140 3 : {
11141 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
11142 3 : tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11143 3 : if (res) return res;
11144 : }
11145 : }
11146 21 : switch (TREE_CODE (_p1))
11147 : {
11148 0 : case BIT_IOR_EXPR:
11149 0 : {
11150 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11151 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11152 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11153 : {
11154 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
11155 : {
11156 0 : {
11157 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
11158 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11159 0 : if (res) return res;
11160 : }
11161 : }
11162 : }
11163 : break;
11164 : }
11165 : default:;
11166 : }
11167 : break;
11168 : }
11169 67043 : default:;
11170 : }
11171 67043 : switch (TREE_CODE (_p1))
11172 : {
11173 27699 : CASE_CONVERT:
11174 27699 : {
11175 27699 : tree _q40 = TREE_OPERAND (_p1, 0);
11176 27699 : switch (TREE_CODE (_q40))
11177 : {
11178 0 : case BIT_NOT_EXPR:
11179 0 : {
11180 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11181 0 : {
11182 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
11183 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11184 0 : if (res) return res;
11185 : }
11186 0 : break;
11187 : }
11188 : default:;
11189 : }
11190 : break;
11191 : }
11192 44 : case BIT_NOT_EXPR:
11193 44 : {
11194 44 : tree _q40 = TREE_OPERAND (_p1, 0);
11195 44 : {
11196 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11197 44 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11198 44 : if (res) return res;
11199 : }
11200 0 : break;
11201 : }
11202 : default:;
11203 : }
11204 : break;
11205 : }
11206 1585 : case BIT_IOR_EXPR:
11207 1585 : {
11208 1585 : tree _q20 = TREE_OPERAND (_p0, 0);
11209 1585 : tree _q21 = TREE_OPERAND (_p0, 1);
11210 1585 : switch (TREE_CODE (_p1))
11211 : {
11212 169 : case BIT_NOT_EXPR:
11213 169 : {
11214 169 : tree _q50 = TREE_OPERAND (_p1, 0);
11215 169 : switch (TREE_CODE (_q50))
11216 : {
11217 0 : case BIT_AND_EXPR:
11218 0 : {
11219 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11220 0 : tree _q61 = TREE_OPERAND (_q50, 1);
11221 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11222 : {
11223 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11224 : {
11225 0 : {
11226 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11227 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11228 0 : if (res) return res;
11229 : }
11230 : }
11231 : }
11232 : break;
11233 : }
11234 : default:;
11235 : }
11236 : break;
11237 : }
11238 2 : case BIT_XOR_EXPR:
11239 2 : {
11240 2 : tree _q50 = TREE_OPERAND (_p1, 0);
11241 2 : tree _q51 = TREE_OPERAND (_p1, 1);
11242 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11243 : {
11244 0 : {
11245 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
11246 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11247 0 : if (res) return res;
11248 : }
11249 : }
11250 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11251 : {
11252 2 : {
11253 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
11254 2 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11255 2 : if (res) return res;
11256 : }
11257 : }
11258 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11259 : {
11260 0 : {
11261 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
11262 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11263 0 : if (res) return res;
11264 : }
11265 : }
11266 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11267 : {
11268 0 : {
11269 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
11270 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11271 0 : if (res) return res;
11272 : }
11273 : }
11274 : break;
11275 : }
11276 1585 : default:;
11277 : }
11278 1585 : switch (TREE_CODE (_q20))
11279 : {
11280 127 : case BIT_NOT_EXPR:
11281 127 : {
11282 127 : tree _q30 = TREE_OPERAND (_q20, 0);
11283 127 : switch (TREE_CODE (_p1))
11284 : {
11285 2 : case BIT_IOR_EXPR:
11286 2 : {
11287 2 : tree _q60 = TREE_OPERAND (_p1, 0);
11288 2 : tree _q61 = TREE_OPERAND (_p1, 1);
11289 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11290 : {
11291 0 : switch (TREE_CODE (_q61))
11292 : {
11293 0 : case BIT_NOT_EXPR:
11294 0 : {
11295 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11296 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11297 : {
11298 0 : {
11299 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11300 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11301 0 : if (res) return res;
11302 : }
11303 : }
11304 : break;
11305 : }
11306 : default:;
11307 : }
11308 : }
11309 2 : switch (TREE_CODE (_q60))
11310 : {
11311 2 : case BIT_NOT_EXPR:
11312 2 : {
11313 2 : tree _q70 = TREE_OPERAND (_q60, 0);
11314 2 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
11315 : {
11316 2 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11317 : {
11318 2 : {
11319 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11320 2 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11321 2 : if (res) return res;
11322 : }
11323 : }
11324 : }
11325 : break;
11326 : }
11327 : default:;
11328 : }
11329 : break;
11330 : }
11331 : default:;
11332 : }
11333 : break;
11334 : }
11335 1583 : default:;
11336 : }
11337 1583 : switch (TREE_CODE (_q21))
11338 : {
11339 0 : case BIT_NOT_EXPR:
11340 0 : {
11341 0 : tree _q40 = TREE_OPERAND (_q21, 0);
11342 0 : switch (TREE_CODE (_p1))
11343 : {
11344 0 : case BIT_IOR_EXPR:
11345 0 : {
11346 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11347 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11348 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
11349 : {
11350 0 : switch (TREE_CODE (_q61))
11351 : {
11352 0 : case BIT_NOT_EXPR:
11353 0 : {
11354 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11355 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11356 : {
11357 0 : {
11358 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11359 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11360 0 : if (res) return res;
11361 : }
11362 : }
11363 : break;
11364 : }
11365 : default:;
11366 : }
11367 : }
11368 0 : switch (TREE_CODE (_q60))
11369 : {
11370 0 : case BIT_NOT_EXPR:
11371 0 : {
11372 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11373 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
11374 : {
11375 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
11376 : {
11377 0 : {
11378 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11379 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11380 0 : if (res) return res;
11381 : }
11382 : }
11383 : }
11384 : break;
11385 : }
11386 : default:;
11387 : }
11388 : break;
11389 : }
11390 : default:;
11391 : }
11392 : break;
11393 : }
11394 : default:;
11395 : }
11396 : break;
11397 : }
11398 62515 : case BIT_XOR_EXPR:
11399 62515 : {
11400 62515 : tree _q20 = TREE_OPERAND (_p0, 0);
11401 62515 : tree _q21 = TREE_OPERAND (_p0, 1);
11402 62515 : switch (TREE_CODE (_p1))
11403 : {
11404 133 : case BIT_IOR_EXPR:
11405 133 : {
11406 133 : tree _q50 = TREE_OPERAND (_p1, 0);
11407 133 : tree _q51 = TREE_OPERAND (_p1, 1);
11408 133 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11409 : {
11410 18 : {
11411 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
11412 18 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11413 18 : if (res) return res;
11414 : }
11415 : }
11416 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11417 : {
11418 33 : {
11419 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
11420 33 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11421 33 : if (res) return res;
11422 : }
11423 : }
11424 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11425 : {
11426 30 : {
11427 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
11428 30 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11429 30 : if (res) return res;
11430 : }
11431 : }
11432 133 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11433 : {
11434 21 : {
11435 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
11436 21 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11437 21 : if (res) return res;
11438 : }
11439 : }
11440 : break;
11441 : }
11442 62515 : default:;
11443 : }
11444 62515 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11445 : {
11446 31 : {
11447 31 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11448 31 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11449 31 : if (res) return res;
11450 : }
11451 : }
11452 62484 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11453 : {
11454 2 : {
11455 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11456 2 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11457 2 : if (res) return res;
11458 : }
11459 : }
11460 : break;
11461 : }
11462 1978743 : CASE_CONVERT:
11463 1978743 : {
11464 1978743 : tree _q20 = TREE_OPERAND (_p0, 0);
11465 1978743 : switch (TREE_CODE (_q20))
11466 : {
11467 164 : case BIT_NOT_EXPR:
11468 164 : {
11469 164 : tree _q30 = TREE_OPERAND (_q20, 0);
11470 164 : switch (TREE_CODE (_p1))
11471 : {
11472 34 : CASE_CONVERT:
11473 34 : {
11474 34 : tree _q50 = TREE_OPERAND (_p1, 0);
11475 34 : switch (TREE_CODE (_q50))
11476 : {
11477 0 : case BIT_NOT_EXPR:
11478 0 : {
11479 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11480 0 : {
11481 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
11482 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11483 0 : if (res) return res;
11484 : }
11485 0 : break;
11486 : }
11487 : default:;
11488 : }
11489 : break;
11490 : }
11491 1 : case BIT_NOT_EXPR:
11492 1 : {
11493 1 : tree _q50 = TREE_OPERAND (_p1, 0);
11494 1 : {
11495 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
11496 1 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11497 1 : if (res) return res;
11498 : }
11499 0 : break;
11500 : }
11501 : default:;
11502 : }
11503 : break;
11504 : }
11505 : default:;
11506 : }
11507 : break;
11508 : }
11509 6417606 : default:;
11510 : }
11511 6417606 : switch (TREE_CODE (_p1))
11512 : {
11513 254 : case BIT_XOR_EXPR:
11514 254 : {
11515 254 : tree _q30 = TREE_OPERAND (_p1, 0);
11516 254 : tree _q31 = TREE_OPERAND (_p1, 1);
11517 254 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
11518 : {
11519 0 : {
11520 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
11521 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11522 0 : if (res) return res;
11523 : }
11524 : }
11525 254 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11526 : {
11527 1 : {
11528 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
11529 1 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11530 1 : if (res) return res;
11531 : }
11532 : }
11533 : break;
11534 : }
11535 6417605 : default:;
11536 : }
11537 6417605 : switch (TREE_CODE (_p0))
11538 : {
11539 1978742 : CASE_CONVERT:
11540 1978742 : {
11541 1978742 : tree _q20 = TREE_OPERAND (_p0, 0);
11542 1978742 : switch (TREE_CODE (_q20))
11543 : {
11544 171 : case BIT_IOR_EXPR:
11545 171 : {
11546 171 : tree _q30 = TREE_OPERAND (_q20, 0);
11547 171 : tree _q31 = TREE_OPERAND (_q20, 1);
11548 171 : switch (TREE_CODE (_p1))
11549 : {
11550 12 : CASE_CONVERT:
11551 12 : {
11552 12 : tree _q60 = TREE_OPERAND (_p1, 0);
11553 12 : switch (TREE_CODE (_q60))
11554 : {
11555 0 : case BIT_IOR_EXPR:
11556 0 : {
11557 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11558 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11559 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
11560 : {
11561 0 : {
11562 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
11563 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11564 0 : if (res) return res;
11565 : }
11566 : }
11567 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
11568 : {
11569 0 : {
11570 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
11571 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11572 0 : if (res) return res;
11573 : }
11574 : }
11575 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
11576 : {
11577 0 : {
11578 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
11579 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11580 0 : if (res) return res;
11581 : }
11582 : }
11583 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
11584 : {
11585 0 : {
11586 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
11587 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11588 0 : if (res) return res;
11589 : }
11590 : }
11591 : break;
11592 : }
11593 : default:;
11594 : }
11595 : break;
11596 : }
11597 : default:;
11598 : }
11599 : break;
11600 : }
11601 40 : case BIT_AND_EXPR:
11602 40 : {
11603 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11604 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11605 40 : switch (TREE_CODE (_p1))
11606 : {
11607 0 : CASE_CONVERT:
11608 0 : {
11609 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11610 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
11611 : {
11612 0 : {
11613 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11614 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11615 0 : if (res) return res;
11616 : }
11617 : }
11618 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
11619 : {
11620 0 : {
11621 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11622 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11623 0 : if (res) return res;
11624 : }
11625 : }
11626 : break;
11627 : }
11628 40 : default:;
11629 : }
11630 40 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
11631 : {
11632 0 : {
11633 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11634 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11635 0 : if (res) return res;
11636 : }
11637 : }
11638 40 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
11639 : {
11640 0 : {
11641 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11642 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11643 0 : if (res) return res;
11644 : }
11645 : }
11646 : break;
11647 : }
11648 1978742 : default:;
11649 : }
11650 1978742 : switch (TREE_CODE (_p1))
11651 : {
11652 811055 : CASE_CONVERT:
11653 811055 : {
11654 811055 : tree _q40 = TREE_OPERAND (_p1, 0);
11655 811055 : switch (TREE_CODE (_q40))
11656 : {
11657 0 : case BIT_AND_EXPR:
11658 0 : {
11659 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11660 0 : tree _q51 = TREE_OPERAND (_q40, 1);
11661 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11662 : {
11663 0 : {
11664 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
11665 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11666 0 : if (res) return res;
11667 : }
11668 : }
11669 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11670 : {
11671 0 : {
11672 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
11673 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11674 0 : if (res) return res;
11675 : }
11676 : }
11677 : break;
11678 : }
11679 : default:;
11680 : }
11681 : break;
11682 : }
11683 47 : case BIT_AND_EXPR:
11684 47 : {
11685 47 : tree _q40 = TREE_OPERAND (_p1, 0);
11686 47 : tree _q41 = TREE_OPERAND (_p1, 1);
11687 47 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
11688 : {
11689 0 : {
11690 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
11691 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11692 0 : if (res) return res;
11693 : }
11694 : }
11695 47 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
11696 : {
11697 0 : {
11698 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
11699 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11700 0 : if (res) return res;
11701 : }
11702 : }
11703 : break;
11704 : }
11705 : default:;
11706 : }
11707 : break;
11708 : }
11709 1583 : case BIT_IOR_EXPR:
11710 1583 : {
11711 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11712 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11713 1583 : switch (TREE_CODE (_p1))
11714 : {
11715 9 : case BIT_IOR_EXPR:
11716 9 : {
11717 9 : tree _q50 = TREE_OPERAND (_p1, 0);
11718 9 : tree _q51 = TREE_OPERAND (_p1, 1);
11719 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11720 : {
11721 0 : {
11722 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
11723 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11724 0 : if (res) return res;
11725 : }
11726 : }
11727 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11728 : {
11729 0 : {
11730 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
11731 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11732 0 : if (res) return res;
11733 : }
11734 : }
11735 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11736 : {
11737 0 : {
11738 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
11739 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11740 0 : if (res) return res;
11741 : }
11742 : }
11743 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
11744 : {
11745 0 : {
11746 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
11747 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11748 0 : if (res) return res;
11749 : }
11750 : }
11751 : break;
11752 : }
11753 : default:;
11754 : }
11755 : break;
11756 : }
11757 6417605 : default:;
11758 : }
11759 6417605 : switch (TREE_CODE (_p1))
11760 : {
11761 959074 : CASE_CONVERT:
11762 959074 : {
11763 959074 : tree _q30 = TREE_OPERAND (_p1, 0);
11764 959074 : switch (TREE_CODE (_q30))
11765 : {
11766 8 : case BIT_AND_EXPR:
11767 8 : {
11768 8 : tree _q40 = TREE_OPERAND (_q30, 0);
11769 8 : tree _q41 = TREE_OPERAND (_q30, 1);
11770 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
11771 : {
11772 0 : {
11773 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
11774 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11775 0 : if (res) return res;
11776 : }
11777 : }
11778 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
11779 : {
11780 0 : {
11781 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
11782 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11783 0 : if (res) return res;
11784 : }
11785 : }
11786 : break;
11787 : }
11788 : default:;
11789 : }
11790 : break;
11791 : }
11792 6417605 : default:;
11793 : }
11794 6417605 : switch (TREE_CODE (_p0))
11795 : {
11796 1591 : case BIT_AND_EXPR:
11797 1591 : {
11798 1591 : tree _q20 = TREE_OPERAND (_p0, 0);
11799 1591 : tree _q21 = TREE_OPERAND (_p0, 1);
11800 1591 : switch (TREE_CODE (_p1))
11801 : {
11802 82 : CASE_CONVERT:
11803 82 : {
11804 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11805 82 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11806 : {
11807 0 : {
11808 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11809 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11810 0 : if (res) return res;
11811 : }
11812 : }
11813 82 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11814 : {
11815 0 : {
11816 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11817 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11818 0 : if (res) return res;
11819 : }
11820 : }
11821 : break;
11822 : }
11823 1591 : default:;
11824 : }
11825 1591 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
11826 : {
11827 0 : {
11828 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11829 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11830 0 : if (res) return res;
11831 : }
11832 : }
11833 1591 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
11834 : {
11835 0 : {
11836 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11837 0 : tree res = generic_simplify_120 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11838 0 : if (res) return res;
11839 : }
11840 : }
11841 1591 : {
11842 1591 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11843 1591 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
11844 1591 : if (res) return res;
11845 : }
11846 1583 : switch (TREE_CODE (_p1))
11847 : {
11848 82 : CASE_CONVERT:
11849 82 : {
11850 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11851 82 : switch (TREE_CODE (_q50))
11852 : {
11853 8 : case BIT_AND_EXPR:
11854 8 : {
11855 8 : tree _q60 = TREE_OPERAND (_q50, 0);
11856 8 : tree _q61 = TREE_OPERAND (_q50, 1);
11857 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11858 : {
11859 0 : {
11860 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
11861 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11862 0 : if (res) return res;
11863 : }
11864 : }
11865 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
11866 : {
11867 0 : {
11868 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
11869 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11870 0 : if (res) return res;
11871 : }
11872 : }
11873 8 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11874 : {
11875 0 : {
11876 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
11877 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11878 0 : if (res) return res;
11879 : }
11880 : }
11881 8 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11882 : {
11883 0 : {
11884 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
11885 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11886 0 : if (res) return res;
11887 : }
11888 : }
11889 : break;
11890 : }
11891 : default:;
11892 : }
11893 : break;
11894 : }
11895 12 : case BIT_AND_EXPR:
11896 12 : {
11897 12 : tree _q50 = TREE_OPERAND (_p1, 0);
11898 12 : tree _q51 = TREE_OPERAND (_p1, 1);
11899 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11900 : {
11901 0 : {
11902 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
11903 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11904 0 : if (res) return res;
11905 : }
11906 : }
11907 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11908 : {
11909 0 : {
11910 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
11911 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11912 0 : if (res) return res;
11913 : }
11914 : }
11915 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11916 : {
11917 0 : {
11918 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
11919 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11920 0 : if (res) return res;
11921 : }
11922 : }
11923 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11924 : {
11925 0 : {
11926 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
11927 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11928 0 : if (res) return res;
11929 : }
11930 : }
11931 : break;
11932 : }
11933 : default:;
11934 : }
11935 : break;
11936 : }
11937 6417597 : default:;
11938 : }
11939 6417597 : switch (TREE_CODE (_p1))
11940 : {
11941 76 : case BIT_AND_EXPR:
11942 76 : {
11943 76 : tree _q30 = TREE_OPERAND (_p1, 0);
11944 76 : tree _q31 = TREE_OPERAND (_p1, 1);
11945 76 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
11946 : {
11947 0 : {
11948 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
11949 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11950 0 : if (res) return res;
11951 : }
11952 : }
11953 76 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
11954 : {
11955 0 : {
11956 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
11957 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11958 0 : if (res) return res;
11959 : }
11960 : }
11961 76 : {
11962 76 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
11963 76 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
11964 76 : if (res) return res;
11965 : }
11966 76 : break;
11967 : }
11968 6417597 : default:;
11969 : }
11970 6417597 : switch (TREE_CODE (_p0))
11971 : {
11972 1978742 : CASE_CONVERT:
11973 1978742 : {
11974 1978742 : tree _q20 = TREE_OPERAND (_p0, 0);
11975 1978742 : switch (TREE_CODE (_q20))
11976 : {
11977 40 : case BIT_AND_EXPR:
11978 40 : {
11979 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11980 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11981 40 : switch (TREE_CODE (_p1))
11982 : {
11983 0 : CASE_CONVERT:
11984 0 : {
11985 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11986 0 : switch (TREE_CODE (_q60))
11987 : {
11988 0 : case BIT_AND_EXPR:
11989 0 : {
11990 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11991 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11992 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
11993 : {
11994 0 : {
11995 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
11996 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11997 0 : if (res) return res;
11998 : }
11999 : }
12000 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
12001 : {
12002 0 : {
12003 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
12004 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12005 0 : if (res) return res;
12006 : }
12007 : }
12008 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
12009 : {
12010 0 : {
12011 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
12012 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12013 0 : if (res) return res;
12014 : }
12015 : }
12016 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
12017 : {
12018 0 : {
12019 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
12020 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12021 0 : if (res) return res;
12022 : }
12023 : }
12024 : break;
12025 : }
12026 : default:;
12027 : }
12028 : break;
12029 : }
12030 0 : case BIT_AND_EXPR:
12031 0 : {
12032 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12033 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12034 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12035 : {
12036 0 : {
12037 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
12038 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12039 0 : if (res) return res;
12040 : }
12041 : }
12042 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12043 : {
12044 0 : {
12045 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
12046 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12047 0 : if (res) return res;
12048 : }
12049 : }
12050 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
12051 : {
12052 0 : {
12053 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
12054 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12055 0 : if (res) return res;
12056 : }
12057 : }
12058 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12059 : {
12060 0 : {
12061 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
12062 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12063 0 : if (res) return res;
12064 : }
12065 : }
12066 : break;
12067 : }
12068 : default:;
12069 : }
12070 : break;
12071 : }
12072 1978742 : default:;
12073 : }
12074 1978742 : switch (TREE_CODE (_p1))
12075 : {
12076 811055 : CASE_CONVERT:
12077 811055 : {
12078 811055 : tree _q40 = TREE_OPERAND (_p1, 0);
12079 811055 : {
12080 811055 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
12081 811055 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12082 811055 : if (res) return res;
12083 : }
12084 811055 : break;
12085 : }
12086 1978742 : default:;
12087 : }
12088 1978742 : {
12089 1978742 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
12090 1978742 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12091 1978742 : if (res) return res;
12092 : }
12093 1978742 : break;
12094 : }
12095 1583 : case BIT_IOR_EXPR:
12096 1583 : {
12097 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12098 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12099 1583 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12100 : {
12101 2 : {
12102 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
12103 2 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12104 2 : if (res) return res;
12105 : }
12106 : }
12107 1581 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
12108 : {
12109 4 : {
12110 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
12111 4 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12112 4 : if (res) return res;
12113 : }
12114 : }
12115 1577 : switch (TREE_CODE (_p1))
12116 : {
12117 1 : case BIT_AND_EXPR:
12118 1 : {
12119 1 : tree _q50 = TREE_OPERAND (_p1, 0);
12120 1 : tree _q51 = TREE_OPERAND (_p1, 1);
12121 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12122 : {
12123 1 : {
12124 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51 };
12125 1 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12126 1 : if (res) return res;
12127 : }
12128 : }
12129 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12130 : {
12131 0 : {
12132 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50 };
12133 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12134 0 : if (res) return res;
12135 : }
12136 : }
12137 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12138 : {
12139 0 : {
12140 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51 };
12141 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12142 0 : if (res) return res;
12143 : }
12144 : }
12145 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12146 : {
12147 0 : {
12148 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50 };
12149 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12150 0 : if (res) return res;
12151 : }
12152 : }
12153 : break;
12154 : }
12155 169 : case BIT_NOT_EXPR:
12156 169 : {
12157 169 : tree _q50 = TREE_OPERAND (_p1, 0);
12158 169 : switch (TREE_CODE (_q50))
12159 : {
12160 9 : case BIT_IOR_EXPR:
12161 9 : {
12162 9 : tree _q60 = TREE_OPERAND (_q50, 0);
12163 9 : tree _q61 = TREE_OPERAND (_q50, 1);
12164 9 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
12165 : {
12166 0 : {
12167 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q61 };
12168 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12169 0 : if (res) return res;
12170 : }
12171 : }
12172 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
12173 : {
12174 1 : {
12175 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q60 };
12176 1 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12177 1 : if (res) return res;
12178 : }
12179 : }
12180 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12181 : {
12182 0 : {
12183 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q61 };
12184 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12185 0 : if (res) return res;
12186 : }
12187 : }
12188 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
12189 : {
12190 0 : {
12191 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q60 };
12192 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12193 0 : if (res) return res;
12194 : }
12195 : }
12196 : break;
12197 : }
12198 : default:;
12199 : }
12200 : break;
12201 : }
12202 : default:;
12203 : }
12204 : break;
12205 : }
12206 6417589 : default:;
12207 : }
12208 6417589 : switch (TREE_CODE (_p1))
12209 : {
12210 476 : case BIT_IOR_EXPR:
12211 476 : {
12212 476 : tree _q30 = TREE_OPERAND (_p1, 0);
12213 476 : tree _q31 = TREE_OPERAND (_p1, 1);
12214 476 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12215 : {
12216 0 : {
12217 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
12218 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12219 0 : if (res) return res;
12220 : }
12221 : }
12222 476 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
12223 : {
12224 0 : {
12225 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
12226 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12227 0 : if (res) return res;
12228 : }
12229 : }
12230 : break;
12231 : }
12232 6417589 : default:;
12233 : }
12234 6417589 : switch (TREE_CODE (_p0))
12235 : {
12236 1583 : case BIT_AND_EXPR:
12237 1583 : {
12238 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12239 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12240 1583 : switch (TREE_CODE (_p1))
12241 : {
12242 16 : case BIT_IOR_EXPR:
12243 16 : {
12244 16 : tree _q50 = TREE_OPERAND (_p1, 0);
12245 16 : tree _q51 = TREE_OPERAND (_p1, 1);
12246 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12247 : {
12248 0 : {
12249 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q51, _p0, _q21 };
12250 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12251 0 : if (res) return res;
12252 : }
12253 : }
12254 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12255 : {
12256 0 : {
12257 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q51, _p0, _q20 };
12258 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12259 0 : if (res) return res;
12260 : }
12261 : }
12262 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12263 : {
12264 0 : {
12265 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q50, _p0, _q21 };
12266 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12267 0 : if (res) return res;
12268 : }
12269 : }
12270 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12271 : {
12272 0 : {
12273 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20 };
12274 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12275 0 : if (res) return res;
12276 : }
12277 : }
12278 : break;
12279 : }
12280 : default:;
12281 : }
12282 : break;
12283 : }
12284 66999 : case BIT_NOT_EXPR:
12285 66999 : {
12286 66999 : tree _q20 = TREE_OPERAND (_p0, 0);
12287 66999 : switch (TREE_CODE (_q20))
12288 : {
12289 11 : case BIT_IOR_EXPR:
12290 11 : {
12291 11 : tree _q30 = TREE_OPERAND (_q20, 0);
12292 11 : tree _q31 = TREE_OPERAND (_q20, 1);
12293 11 : switch (TREE_CODE (_p1))
12294 : {
12295 0 : case BIT_IOR_EXPR:
12296 0 : {
12297 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12298 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12299 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12300 : {
12301 0 : {
12302 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q30, _p0, _q31 };
12303 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12304 0 : if (res) return res;
12305 : }
12306 : }
12307 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12308 : {
12309 0 : {
12310 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q31, _p0, _q30 };
12311 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12312 0 : if (res) return res;
12313 : }
12314 : }
12315 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12316 : {
12317 0 : {
12318 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q30, _p0, _q31 };
12319 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12320 0 : if (res) return res;
12321 : }
12322 : }
12323 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
12324 : {
12325 0 : {
12326 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q31, _p0, _q30 };
12327 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12328 0 : if (res) return res;
12329 : }
12330 : }
12331 : break;
12332 : }
12333 11 : default:;
12334 : }
12335 11 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12336 : {
12337 0 : {
12338 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
12339 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12340 0 : if (res) return res;
12341 : }
12342 : }
12343 11 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
12344 : {
12345 1 : {
12346 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
12347 1 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12348 1 : if (res) return res;
12349 : }
12350 : }
12351 : break;
12352 : }
12353 : default:;
12354 : }
12355 : break;
12356 : }
12357 6417588 : default:;
12358 : }
12359 6417588 : switch (TREE_CODE (_p1))
12360 : {
12361 52888 : case BIT_NOT_EXPR:
12362 52888 : {
12363 52888 : tree _q30 = TREE_OPERAND (_p1, 0);
12364 52888 : switch (TREE_CODE (_q30))
12365 : {
12366 8 : case BIT_IOR_EXPR:
12367 8 : {
12368 8 : tree _q40 = TREE_OPERAND (_q30, 0);
12369 8 : tree _q41 = TREE_OPERAND (_q30, 1);
12370 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12371 : {
12372 0 : {
12373 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
12374 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12375 0 : if (res) return res;
12376 : }
12377 : }
12378 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
12379 : {
12380 0 : {
12381 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
12382 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12383 0 : if (res) return res;
12384 : }
12385 : }
12386 : break;
12387 : }
12388 : default:;
12389 : }
12390 : break;
12391 : }
12392 6417588 : default:;
12393 : }
12394 6417588 : switch (TREE_CODE (_p0))
12395 : {
12396 1575 : case BIT_IOR_EXPR:
12397 1575 : {
12398 1575 : tree _q20 = TREE_OPERAND (_p0, 0);
12399 1575 : tree _q21 = TREE_OPERAND (_p0, 1);
12400 1575 : {
12401 1575 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12402 1575 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12403 1575 : if (res) return res;
12404 : }
12405 1570 : {
12406 1570 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12407 1570 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12408 1570 : if (res) return res;
12409 : }
12410 1570 : if (CONSTANT_CLASS_P (_q21))
12411 : {
12412 459 : if (CONSTANT_CLASS_P (_p1))
12413 : {
12414 25 : {
12415 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12416 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1679;
12417 25 : {
12418 25 : if (! tree_invariant_p (captures[2])) goto next_after_fail1679;
12419 25 : tree res_op0;
12420 25 : {
12421 25 : tree _o1[2], _r1;
12422 25 : _o1[0] = captures[0];
12423 25 : _o1[1] = unshare_expr (captures[2]);
12424 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12425 25 : res_op0 = _r1;
12426 : }
12427 25 : tree res_op1;
12428 25 : {
12429 25 : tree _o1[2], _r1;
12430 25 : _o1[0] = captures[1];
12431 25 : _o1[1] = captures[2];
12432 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12433 25 : if (EXPR_P (_r1))
12434 0 : goto next_after_fail1679;
12435 25 : res_op1 = _r1;
12436 : }
12437 25 : tree _r;
12438 25 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
12439 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
12440 25 : return _r;
12441 : }
12442 0 : next_after_fail1679:;
12443 : }
12444 : }
12445 : }
12446 : break;
12447 : }
12448 6417558 : default:;
12449 : }
12450 6417558 : switch (TREE_CODE (_p1))
12451 : {
12452 476 : case BIT_IOR_EXPR:
12453 476 : {
12454 476 : tree _q30 = TREE_OPERAND (_p1, 0);
12455 476 : tree _q31 = TREE_OPERAND (_p1, 1);
12456 476 : {
12457 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
12458 476 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12459 476 : if (res) return res;
12460 : }
12461 476 : {
12462 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
12463 476 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12464 476 : if (res) return res;
12465 : }
12466 475 : break;
12467 : }
12468 6417557 : default:;
12469 : }
12470 6417557 : switch (TREE_CODE (_p0))
12471 : {
12472 1583 : case BIT_AND_EXPR:
12473 1583 : {
12474 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12475 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12476 1583 : if (CONSTANT_CLASS_P (_q21))
12477 : {
12478 508 : if (CONSTANT_CLASS_P (_p1))
12479 : {
12480 441 : {
12481 441 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12482 441 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12483 441 : if (res) return res;
12484 : }
12485 : }
12486 : }
12487 : break;
12488 : }
12489 6417116 : default:;
12490 : }
12491 6417116 : {
12492 6417116 : tree _p1_pops[1];
12493 6417116 : if (tree_logical_inverted_value (_p1, _p1_pops))
12494 : {
12495 897 : tree _q30 = _p1_pops[0];
12496 897 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12497 : {
12498 1 : {
12499 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12500 1 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
12501 1 : if (res) return res;
12502 : }
12503 : }
12504 : }
12505 : }
12506 6417115 : switch (TREE_CODE (_p0))
12507 : {
12508 1978742 : CASE_CONVERT:
12509 1978742 : {
12510 1978742 : tree _q20 = TREE_OPERAND (_p0, 0);
12511 1978742 : switch (TREE_CODE (_q20))
12512 : {
12513 6051 : case NEGATE_EXPR:
12514 6051 : {
12515 6051 : tree _q30 = TREE_OPERAND (_q20, 0);
12516 6051 : if (tree_zero_one_valued_p (_q30))
12517 : {
12518 2 : {
12519 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
12520 2 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
12521 2 : if (res) return res;
12522 : }
12523 : }
12524 : break;
12525 : }
12526 : default:;
12527 : }
12528 : break;
12529 : }
12530 6417113 : default:;
12531 : }
12532 6417113 : {
12533 6417113 : tree _p0_pops[1];
12534 6417113 : if (tree_logical_inverted_value (_p0, _p0_pops))
12535 : {
12536 526 : tree _q20 = _p0_pops[0];
12537 526 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12538 : {
12539 12 : {
12540 12 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
12541 12 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
12542 12 : if (res) return res;
12543 : }
12544 : }
12545 : }
12546 : }
12547 6417101 : switch (TREE_CODE (_p1))
12548 : {
12549 959074 : CASE_CONVERT:
12550 959074 : {
12551 959074 : tree _q30 = TREE_OPERAND (_p1, 0);
12552 959074 : switch (TREE_CODE (_q30))
12553 : {
12554 108 : case NEGATE_EXPR:
12555 108 : {
12556 108 : tree _q40 = TREE_OPERAND (_q30, 0);
12557 108 : if (tree_zero_one_valued_p (_q40))
12558 : {
12559 18 : {
12560 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
12561 18 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
12562 18 : if (res) return res;
12563 : }
12564 : }
12565 : break;
12566 : }
12567 : default:;
12568 : }
12569 : break;
12570 : }
12571 10735 : case NEGATE_EXPR:
12572 10735 : {
12573 10735 : tree _q30 = TREE_OPERAND (_p1, 0);
12574 10735 : if (tree_zero_one_valued_p (_q30))
12575 : {
12576 24 : {
12577 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
12578 24 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
12579 24 : if (res) return res;
12580 : }
12581 : }
12582 : break;
12583 : }
12584 6417059 : default:;
12585 : }
12586 6417059 : switch (TREE_CODE (_p0))
12587 : {
12588 47144 : case NEGATE_EXPR:
12589 47144 : {
12590 47144 : tree _q20 = TREE_OPERAND (_p0, 0);
12591 47144 : switch (TREE_CODE (_q20))
12592 : {
12593 5463 : CASE_CONVERT:
12594 5463 : {
12595 5463 : tree _q30 = TREE_OPERAND (_q20, 0);
12596 5463 : switch (TREE_CODE (_q30))
12597 : {
12598 0 : case LT_EXPR:
12599 0 : {
12600 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12601 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12602 0 : {
12603 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12604 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LT_EXPR);
12605 0 : if (res) return res;
12606 : }
12607 0 : break;
12608 : }
12609 0 : case LE_EXPR:
12610 0 : {
12611 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12612 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12613 0 : {
12614 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12615 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LE_EXPR);
12616 0 : if (res) return res;
12617 : }
12618 0 : break;
12619 : }
12620 0 : case EQ_EXPR:
12621 0 : {
12622 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12623 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12624 0 : {
12625 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12626 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, EQ_EXPR);
12627 0 : if (res) return res;
12628 : }
12629 0 : break;
12630 : }
12631 0 : case NE_EXPR:
12632 0 : {
12633 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12634 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12635 0 : {
12636 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12637 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, NE_EXPR);
12638 0 : if (res) return res;
12639 : }
12640 0 : break;
12641 : }
12642 0 : case GE_EXPR:
12643 0 : {
12644 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12645 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12646 0 : {
12647 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12648 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, GE_EXPR);
12649 0 : if (res) return res;
12650 : }
12651 0 : break;
12652 : }
12653 0 : case GT_EXPR:
12654 0 : {
12655 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12656 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12657 0 : {
12658 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12659 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, GT_EXPR);
12660 0 : if (res) return res;
12661 : }
12662 0 : break;
12663 : }
12664 0 : case UNORDERED_EXPR:
12665 0 : {
12666 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12667 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12668 0 : {
12669 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12670 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12671 0 : if (res) return res;
12672 : }
12673 0 : break;
12674 : }
12675 0 : case ORDERED_EXPR:
12676 0 : {
12677 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12678 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12679 0 : {
12680 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12681 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12682 0 : if (res) return res;
12683 : }
12684 0 : break;
12685 : }
12686 0 : case UNLT_EXPR:
12687 0 : {
12688 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12689 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12690 0 : {
12691 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12692 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12693 0 : if (res) return res;
12694 : }
12695 0 : break;
12696 : }
12697 0 : case UNLE_EXPR:
12698 0 : {
12699 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12700 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12701 0 : {
12702 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12703 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12704 0 : if (res) return res;
12705 : }
12706 0 : break;
12707 : }
12708 0 : case UNGT_EXPR:
12709 0 : {
12710 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12711 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12712 0 : {
12713 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12714 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12715 0 : if (res) return res;
12716 : }
12717 0 : break;
12718 : }
12719 0 : case UNGE_EXPR:
12720 0 : {
12721 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12722 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12723 0 : {
12724 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12725 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12726 0 : if (res) return res;
12727 : }
12728 0 : break;
12729 : }
12730 0 : case UNEQ_EXPR:
12731 0 : {
12732 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12733 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12734 0 : {
12735 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12736 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12737 0 : if (res) return res;
12738 : }
12739 0 : break;
12740 : }
12741 0 : case LTGT_EXPR:
12742 0 : {
12743 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12744 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12745 0 : {
12746 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12747 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12748 0 : if (res) return res;
12749 : }
12750 0 : break;
12751 : }
12752 : default:;
12753 : }
12754 : break;
12755 : }
12756 : default:;
12757 : }
12758 : break;
12759 : }
12760 6417059 : default:;
12761 : }
12762 6417059 : switch (TREE_CODE (_p1))
12763 : {
12764 10711 : case NEGATE_EXPR:
12765 10711 : {
12766 10711 : tree _q30 = TREE_OPERAND (_p1, 0);
12767 10711 : switch (TREE_CODE (_q30))
12768 : {
12769 65 : CASE_CONVERT:
12770 65 : {
12771 65 : tree _q40 = TREE_OPERAND (_q30, 0);
12772 65 : switch (TREE_CODE (_q40))
12773 : {
12774 0 : case LT_EXPR:
12775 0 : {
12776 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12777 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12778 0 : {
12779 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12780 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, LT_EXPR);
12781 0 : if (res) return res;
12782 : }
12783 0 : break;
12784 : }
12785 0 : case LE_EXPR:
12786 0 : {
12787 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12788 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12789 0 : {
12790 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12791 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, LE_EXPR);
12792 0 : if (res) return res;
12793 : }
12794 0 : break;
12795 : }
12796 0 : case EQ_EXPR:
12797 0 : {
12798 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12799 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12800 0 : {
12801 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12802 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, EQ_EXPR);
12803 0 : if (res) return res;
12804 : }
12805 0 : break;
12806 : }
12807 0 : case NE_EXPR:
12808 0 : {
12809 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12810 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12811 0 : {
12812 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12813 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, NE_EXPR);
12814 0 : if (res) return res;
12815 : }
12816 0 : break;
12817 : }
12818 0 : case GE_EXPR:
12819 0 : {
12820 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12821 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12822 0 : {
12823 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12824 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, GE_EXPR);
12825 0 : if (res) return res;
12826 : }
12827 0 : break;
12828 : }
12829 0 : case GT_EXPR:
12830 0 : {
12831 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12832 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12833 0 : {
12834 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12835 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, GT_EXPR);
12836 0 : if (res) return res;
12837 : }
12838 0 : break;
12839 : }
12840 0 : case UNORDERED_EXPR:
12841 0 : {
12842 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12843 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12844 0 : {
12845 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12846 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12847 0 : if (res) return res;
12848 : }
12849 0 : break;
12850 : }
12851 0 : case ORDERED_EXPR:
12852 0 : {
12853 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12854 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12855 0 : {
12856 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12857 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12858 0 : if (res) return res;
12859 : }
12860 0 : break;
12861 : }
12862 0 : case UNLT_EXPR:
12863 0 : {
12864 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12865 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12866 0 : {
12867 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12868 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12869 0 : if (res) return res;
12870 : }
12871 0 : break;
12872 : }
12873 0 : case UNLE_EXPR:
12874 0 : {
12875 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12876 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12877 0 : {
12878 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12879 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12880 0 : if (res) return res;
12881 : }
12882 0 : break;
12883 : }
12884 0 : case UNGT_EXPR:
12885 0 : {
12886 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12887 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12888 0 : {
12889 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12890 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12891 0 : if (res) return res;
12892 : }
12893 0 : break;
12894 : }
12895 0 : case UNGE_EXPR:
12896 0 : {
12897 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12898 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12899 0 : {
12900 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12901 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12902 0 : if (res) return res;
12903 : }
12904 0 : break;
12905 : }
12906 0 : case UNEQ_EXPR:
12907 0 : {
12908 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12909 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12910 0 : {
12911 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12912 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12913 0 : if (res) return res;
12914 : }
12915 0 : break;
12916 : }
12917 0 : case LTGT_EXPR:
12918 0 : {
12919 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12920 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12921 0 : {
12922 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12923 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12924 0 : if (res) return res;
12925 : }
12926 0 : break;
12927 : }
12928 : default:;
12929 : }
12930 : break;
12931 : }
12932 : default:;
12933 : }
12934 : break;
12935 : }
12936 6417059 : default:;
12937 : }
12938 6417059 : switch (TREE_CODE (_p0))
12939 : {
12940 1978738 : CASE_CONVERT:
12941 1978738 : {
12942 1978738 : tree _q20 = TREE_OPERAND (_p0, 0);
12943 1978738 : switch (TREE_CODE (_p1))
12944 : {
12945 910845 : case INTEGER_CST:
12946 910845 : {
12947 910845 : {
12948 910845 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12949 910845 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures);
12950 910845 : if (res) return res;
12951 : }
12952 905384 : break;
12953 : }
12954 : default:;
12955 : }
12956 : break;
12957 : }
12958 6411598 : default:;
12959 : }
12960 6411598 : switch (TREE_CODE (_p1))
12961 : {
12962 4405910 : case INTEGER_CST:
12963 4405910 : {
12964 4405910 : {
12965 4405910 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12966 4405910 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures);
12967 4405910 : if (res) return res;
12968 : }
12969 4405910 : break;
12970 : }
12971 6411598 : default:;
12972 : }
12973 6411598 : switch (TREE_CODE (_p0))
12974 : {
12975 356 : case GT_EXPR:
12976 356 : {
12977 356 : tree _q20 = TREE_OPERAND (_p0, 0);
12978 356 : tree _q21 = TREE_OPERAND (_p0, 1);
12979 356 : switch (TREE_CODE (_p1))
12980 : {
12981 59 : case EQ_EXPR:
12982 59 : {
12983 59 : tree _q50 = TREE_OPERAND (_p1, 0);
12984 59 : tree _q51 = TREE_OPERAND (_p1, 1);
12985 59 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12986 : {
12987 8 : if (tree_min_value (_q51))
12988 : {
12989 4 : {
12990 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12991 4 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, EQ_EXPR);
12992 4 : if (res) return res;
12993 : }
12994 : }
12995 : }
12996 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12997 : {
12998 0 : if (tree_max_value (_q51))
12999 : {
13000 0 : {
13001 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13002 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR);
13003 0 : if (res) return res;
13004 : }
13005 : }
13006 : }
13007 : break;
13008 : }
13009 4 : case NE_EXPR:
13010 4 : {
13011 4 : tree _q50 = TREE_OPERAND (_p1, 0);
13012 4 : tree _q51 = TREE_OPERAND (_p1, 1);
13013 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13014 : {
13015 4 : if (tree_min_value (_q51))
13016 : {
13017 4 : {
13018 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13019 4 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, NE_EXPR);
13020 4 : if (res) return res;
13021 : }
13022 : }
13023 : }
13024 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13025 : {
13026 0 : if (tree_max_value (_q51))
13027 : {
13028 0 : {
13029 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13030 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR);
13031 0 : if (res) return res;
13032 : }
13033 : }
13034 : }
13035 : break;
13036 : }
13037 348 : default:;
13038 : }
13039 348 : switch (TREE_CODE (_q20))
13040 : {
13041 0 : CASE_CONVERT:
13042 0 : {
13043 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13044 0 : switch (TREE_CODE (_p1))
13045 : {
13046 0 : case EQ_EXPR:
13047 0 : {
13048 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13049 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13050 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13051 : {
13052 0 : {
13053 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13054 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13055 0 : if (res) return res;
13056 : }
13057 : }
13058 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13059 : {
13060 0 : {
13061 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13062 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13063 0 : if (res) return res;
13064 : }
13065 : }
13066 : break;
13067 : }
13068 0 : case NE_EXPR:
13069 0 : {
13070 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13071 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13072 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13073 : {
13074 0 : {
13075 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13076 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13077 0 : if (res) return res;
13078 : }
13079 : }
13080 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13081 : {
13082 0 : {
13083 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13084 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13085 0 : if (res) return res;
13086 : }
13087 : }
13088 : break;
13089 : }
13090 : default:;
13091 : }
13092 : break;
13093 : }
13094 348 : default:;
13095 : }
13096 348 : switch (TREE_CODE (_q21))
13097 : {
13098 0 : CASE_CONVERT:
13099 0 : {
13100 0 : tree _q40 = TREE_OPERAND (_q21, 0);
13101 0 : switch (TREE_CODE (_p1))
13102 : {
13103 0 : case EQ_EXPR:
13104 0 : {
13105 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13106 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13107 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13108 : {
13109 0 : {
13110 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13111 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13112 0 : if (res) return res;
13113 : }
13114 : }
13115 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13116 : {
13117 0 : {
13118 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13119 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13120 0 : if (res) return res;
13121 : }
13122 : }
13123 : break;
13124 : }
13125 0 : case NE_EXPR:
13126 0 : {
13127 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13128 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13129 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13130 : {
13131 0 : {
13132 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13133 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13134 0 : if (res) return res;
13135 : }
13136 : }
13137 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13138 : {
13139 0 : {
13140 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13141 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13142 0 : if (res) return res;
13143 : }
13144 : }
13145 : break;
13146 : }
13147 : default:;
13148 : }
13149 : break;
13150 : }
13151 348 : default:;
13152 : }
13153 348 : switch (TREE_CODE (_p1))
13154 : {
13155 55 : case EQ_EXPR:
13156 55 : {
13157 55 : tree _q50 = TREE_OPERAND (_p1, 0);
13158 55 : tree _q51 = TREE_OPERAND (_p1, 1);
13159 55 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13160 : {
13161 4 : {
13162 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13163 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13164 4 : if (res) return res;
13165 : }
13166 : }
13167 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13168 : {
13169 0 : {
13170 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13171 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13172 0 : if (res) return res;
13173 : }
13174 : }
13175 55 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13176 : {
13177 0 : {
13178 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13179 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13180 0 : if (res) return res;
13181 : }
13182 : }
13183 55 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13184 : {
13185 0 : {
13186 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13187 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13188 0 : if (res) return res;
13189 : }
13190 : }
13191 : break;
13192 : }
13193 0 : case NE_EXPR:
13194 0 : {
13195 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13196 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13197 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13198 : {
13199 0 : {
13200 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13201 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13202 0 : if (res) return res;
13203 : }
13204 : }
13205 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13206 : {
13207 0 : {
13208 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13209 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13210 0 : if (res) return res;
13211 : }
13212 : }
13213 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13214 : {
13215 0 : {
13216 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13217 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13218 0 : if (res) return res;
13219 : }
13220 : }
13221 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13222 : {
13223 0 : {
13224 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13225 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13226 0 : if (res) return res;
13227 : }
13228 : }
13229 : break;
13230 : }
13231 67 : case LT_EXPR:
13232 67 : {
13233 67 : tree _q50 = TREE_OPERAND (_p1, 0);
13234 67 : tree _q51 = TREE_OPERAND (_p1, 1);
13235 67 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13236 : {
13237 4 : {
13238 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13239 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13240 4 : if (res) return res;
13241 : }
13242 : }
13243 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13244 : {
13245 0 : {
13246 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13247 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13248 0 : if (res) return res;
13249 : }
13250 : }
13251 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13252 : {
13253 0 : {
13254 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13255 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13256 0 : if (res) return res;
13257 : }
13258 : }
13259 67 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13260 : {
13261 4 : {
13262 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13263 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13264 4 : if (res) return res;
13265 : }
13266 : }
13267 : break;
13268 : }
13269 72 : case LE_EXPR:
13270 72 : {
13271 72 : tree _q50 = TREE_OPERAND (_p1, 0);
13272 72 : tree _q51 = TREE_OPERAND (_p1, 1);
13273 72 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13274 : {
13275 23 : {
13276 23 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13277 23 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13278 23 : if (res) return res;
13279 : }
13280 : }
13281 72 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13282 : {
13283 0 : {
13284 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13285 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13286 0 : if (res) return res;
13287 : }
13288 : }
13289 72 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13290 : {
13291 0 : {
13292 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13293 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13294 0 : if (res) return res;
13295 : }
13296 : }
13297 72 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13298 : {
13299 0 : {
13300 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13301 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13302 0 : if (res) return res;
13303 : }
13304 : }
13305 : break;
13306 : }
13307 85 : case GT_EXPR:
13308 85 : {
13309 85 : tree _q50 = TREE_OPERAND (_p1, 0);
13310 85 : tree _q51 = TREE_OPERAND (_p1, 1);
13311 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13312 : {
13313 0 : {
13314 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13315 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13316 0 : if (res) return res;
13317 : }
13318 : }
13319 85 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13320 : {
13321 0 : {
13322 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13323 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13324 0 : if (res) return res;
13325 : }
13326 : }
13327 85 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13328 : {
13329 0 : {
13330 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13331 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13332 0 : if (res) return res;
13333 : }
13334 : }
13335 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13336 : {
13337 35 : {
13338 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13339 35 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13340 35 : if (res) return res;
13341 : }
13342 : }
13343 : break;
13344 : }
13345 0 : case GE_EXPR:
13346 0 : {
13347 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13348 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13349 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13350 : {
13351 0 : {
13352 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13353 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13354 0 : if (res) return res;
13355 : }
13356 : }
13357 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13358 : {
13359 0 : {
13360 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13361 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13362 0 : if (res) return res;
13363 : }
13364 : }
13365 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13366 : {
13367 0 : {
13368 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13369 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13370 0 : if (res) return res;
13371 : }
13372 : }
13373 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13374 : {
13375 0 : {
13376 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13377 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13378 0 : if (res) return res;
13379 : }
13380 : }
13381 : break;
13382 : }
13383 : default:;
13384 : }
13385 : break;
13386 : }
13387 92 : case LT_EXPR:
13388 92 : {
13389 92 : tree _q20 = TREE_OPERAND (_p0, 0);
13390 92 : tree _q21 = TREE_OPERAND (_p0, 1);
13391 92 : switch (TREE_CODE (_p1))
13392 : {
13393 35 : case EQ_EXPR:
13394 35 : {
13395 35 : tree _q50 = TREE_OPERAND (_p1, 0);
13396 35 : tree _q51 = TREE_OPERAND (_p1, 1);
13397 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13398 : {
13399 0 : if (tree_min_value (_q51))
13400 : {
13401 0 : {
13402 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13403 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, EQ_EXPR);
13404 0 : if (res) return res;
13405 : }
13406 : }
13407 : }
13408 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13409 : {
13410 4 : if (tree_max_value (_q51))
13411 : {
13412 4 : {
13413 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13414 4 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR);
13415 4 : if (res) return res;
13416 : }
13417 : }
13418 : }
13419 : break;
13420 : }
13421 6 : case NE_EXPR:
13422 6 : {
13423 6 : tree _q50 = TREE_OPERAND (_p1, 0);
13424 6 : tree _q51 = TREE_OPERAND (_p1, 1);
13425 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13426 : {
13427 0 : if (tree_min_value (_q51))
13428 : {
13429 0 : {
13430 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13431 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, NE_EXPR);
13432 0 : if (res) return res;
13433 : }
13434 : }
13435 : }
13436 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13437 : {
13438 4 : if (tree_max_value (_q51))
13439 : {
13440 4 : {
13441 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13442 4 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR);
13443 4 : if (res) return res;
13444 : }
13445 : }
13446 : }
13447 : break;
13448 : }
13449 84 : default:;
13450 : }
13451 84 : switch (TREE_CODE (_q20))
13452 : {
13453 8 : CASE_CONVERT:
13454 8 : {
13455 8 : tree _q30 = TREE_OPERAND (_q20, 0);
13456 8 : switch (TREE_CODE (_p1))
13457 : {
13458 0 : case EQ_EXPR:
13459 0 : {
13460 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13461 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13462 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13463 : {
13464 0 : {
13465 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13466 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13467 0 : if (res) return res;
13468 : }
13469 : }
13470 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13471 : {
13472 0 : {
13473 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13474 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13475 0 : if (res) return res;
13476 : }
13477 : }
13478 : break;
13479 : }
13480 0 : case NE_EXPR:
13481 0 : {
13482 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13483 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13484 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13485 : {
13486 0 : {
13487 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13488 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13489 0 : if (res) return res;
13490 : }
13491 : }
13492 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13493 : {
13494 0 : {
13495 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13496 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13497 0 : if (res) return res;
13498 : }
13499 : }
13500 : break;
13501 : }
13502 : default:;
13503 : }
13504 : break;
13505 : }
13506 84 : default:;
13507 : }
13508 84 : switch (TREE_CODE (_q21))
13509 : {
13510 5 : CASE_CONVERT:
13511 5 : {
13512 5 : tree _q40 = TREE_OPERAND (_q21, 0);
13513 5 : switch (TREE_CODE (_p1))
13514 : {
13515 0 : case EQ_EXPR:
13516 0 : {
13517 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13518 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13519 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13520 : {
13521 0 : {
13522 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13523 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13524 0 : if (res) return res;
13525 : }
13526 : }
13527 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13528 : {
13529 0 : {
13530 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13531 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13532 0 : if (res) return res;
13533 : }
13534 : }
13535 : break;
13536 : }
13537 0 : case NE_EXPR:
13538 0 : {
13539 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13540 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13541 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13542 : {
13543 0 : {
13544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13545 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13546 0 : if (res) return res;
13547 : }
13548 : }
13549 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13550 : {
13551 0 : {
13552 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13553 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13554 0 : if (res) return res;
13555 : }
13556 : }
13557 : break;
13558 : }
13559 : default:;
13560 : }
13561 : break;
13562 : }
13563 84 : default:;
13564 : }
13565 84 : switch (TREE_CODE (_p1))
13566 : {
13567 31 : case EQ_EXPR:
13568 31 : {
13569 31 : tree _q50 = TREE_OPERAND (_p1, 0);
13570 31 : tree _q51 = TREE_OPERAND (_p1, 1);
13571 31 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13572 : {
13573 0 : {
13574 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13575 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13576 0 : if (res) return res;
13577 : }
13578 : }
13579 31 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13580 : {
13581 0 : {
13582 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13583 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13584 0 : if (res) return res;
13585 : }
13586 : }
13587 31 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13588 : {
13589 0 : {
13590 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13591 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13592 0 : if (res) return res;
13593 : }
13594 : }
13595 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13596 : {
13597 0 : {
13598 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13599 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13600 0 : if (res) return res;
13601 : }
13602 : }
13603 : break;
13604 : }
13605 2 : case NE_EXPR:
13606 2 : {
13607 2 : tree _q50 = TREE_OPERAND (_p1, 0);
13608 2 : tree _q51 = TREE_OPERAND (_p1, 1);
13609 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13610 : {
13611 0 : {
13612 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13613 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13614 0 : if (res) return res;
13615 : }
13616 : }
13617 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13618 : {
13619 0 : {
13620 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13621 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13622 0 : if (res) return res;
13623 : }
13624 : }
13625 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13626 : {
13627 0 : {
13628 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13629 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13630 0 : if (res) return res;
13631 : }
13632 : }
13633 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13634 : {
13635 2 : {
13636 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13637 2 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13638 2 : if (res) return res;
13639 : }
13640 : }
13641 : break;
13642 : }
13643 8 : case LT_EXPR:
13644 8 : {
13645 8 : tree _q50 = TREE_OPERAND (_p1, 0);
13646 8 : tree _q51 = TREE_OPERAND (_p1, 1);
13647 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13648 : {
13649 0 : {
13650 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13651 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13652 0 : if (res) return res;
13653 : }
13654 : }
13655 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13656 : {
13657 0 : {
13658 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13659 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13660 0 : if (res) return res;
13661 : }
13662 : }
13663 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13664 : {
13665 0 : {
13666 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13667 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13668 0 : if (res) return res;
13669 : }
13670 : }
13671 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13672 : {
13673 0 : {
13674 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13675 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13676 0 : if (res) return res;
13677 : }
13678 : }
13679 : break;
13680 : }
13681 0 : case LE_EXPR:
13682 0 : {
13683 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13684 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13685 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13686 : {
13687 0 : {
13688 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13689 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13690 0 : if (res) return res;
13691 : }
13692 : }
13693 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13694 : {
13695 0 : {
13696 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13697 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13698 0 : if (res) return res;
13699 : }
13700 : }
13701 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13702 : {
13703 0 : {
13704 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13705 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13706 0 : if (res) return res;
13707 : }
13708 : }
13709 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13710 : {
13711 0 : {
13712 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13713 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13714 0 : if (res) return res;
13715 : }
13716 : }
13717 : break;
13718 : }
13719 5 : case GT_EXPR:
13720 5 : {
13721 5 : tree _q50 = TREE_OPERAND (_p1, 0);
13722 5 : tree _q51 = TREE_OPERAND (_p1, 1);
13723 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13724 : {
13725 4 : {
13726 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13727 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13728 4 : if (res) return res;
13729 : }
13730 : }
13731 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13732 : {
13733 0 : {
13734 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13735 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13736 0 : if (res) return res;
13737 : }
13738 : }
13739 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13740 : {
13741 0 : {
13742 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13743 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13744 0 : if (res) return res;
13745 : }
13746 : }
13747 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13748 : {
13749 0 : {
13750 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13751 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13752 0 : if (res) return res;
13753 : }
13754 : }
13755 : break;
13756 : }
13757 0 : case GE_EXPR:
13758 0 : {
13759 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13760 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13761 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13762 : {
13763 0 : {
13764 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13765 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13766 0 : if (res) return res;
13767 : }
13768 : }
13769 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13770 : {
13771 0 : {
13772 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13773 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13774 0 : if (res) return res;
13775 : }
13776 : }
13777 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13778 : {
13779 0 : {
13780 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13781 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13782 0 : if (res) return res;
13783 : }
13784 : }
13785 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13786 : {
13787 0 : {
13788 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13789 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13790 0 : if (res) return res;
13791 : }
13792 : }
13793 : break;
13794 : }
13795 : default:;
13796 : }
13797 : break;
13798 : }
13799 1072 : case EQ_EXPR:
13800 1072 : {
13801 1072 : tree _q20 = TREE_OPERAND (_p0, 0);
13802 1072 : tree _q21 = TREE_OPERAND (_p0, 1);
13803 1072 : if (tree_min_value (_q21))
13804 : {
13805 40 : switch (TREE_CODE (_p1))
13806 : {
13807 0 : case GT_EXPR:
13808 0 : {
13809 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13810 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13811 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13812 : {
13813 0 : {
13814 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13815 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR);
13816 0 : if (res) return res;
13817 : }
13818 : }
13819 : break;
13820 : }
13821 14 : case LT_EXPR:
13822 14 : {
13823 14 : tree _q50 = TREE_OPERAND (_p1, 0);
13824 14 : tree _q51 = TREE_OPERAND (_p1, 1);
13825 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13826 : {
13827 0 : {
13828 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13829 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR);
13830 0 : if (res) return res;
13831 : }
13832 : }
13833 : break;
13834 : }
13835 0 : case LE_EXPR:
13836 0 : {
13837 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13838 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13839 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13840 : {
13841 0 : {
13842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13843 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures);
13844 0 : if (res) return res;
13845 : }
13846 : }
13847 : break;
13848 : }
13849 0 : case GE_EXPR:
13850 0 : {
13851 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13852 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13853 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13854 : {
13855 0 : {
13856 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13857 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures);
13858 0 : if (res) return res;
13859 : }
13860 : }
13861 : break;
13862 : }
13863 : default:;
13864 : }
13865 : }
13866 1072 : if (tree_max_value (_q21))
13867 : {
13868 0 : switch (TREE_CODE (_p1))
13869 : {
13870 0 : case LT_EXPR:
13871 0 : {
13872 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13873 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13874 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13875 : {
13876 0 : {
13877 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13878 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, EQ_EXPR);
13879 0 : if (res) return res;
13880 : }
13881 : }
13882 : break;
13883 : }
13884 0 : case GT_EXPR:
13885 0 : {
13886 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13887 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13888 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13889 : {
13890 0 : {
13891 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13892 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, EQ_EXPR);
13893 0 : if (res) return res;
13894 : }
13895 : }
13896 : break;
13897 : }
13898 0 : case GE_EXPR:
13899 0 : {
13900 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13901 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13902 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13903 : {
13904 0 : {
13905 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13906 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures);
13907 0 : if (res) return res;
13908 : }
13909 : }
13910 : break;
13911 : }
13912 0 : case LE_EXPR:
13913 0 : {
13914 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13915 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13916 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13917 : {
13918 0 : {
13919 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13920 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures);
13921 0 : if (res) return res;
13922 : }
13923 : }
13924 : break;
13925 : }
13926 : default:;
13927 : }
13928 : }
13929 1072 : switch (TREE_CODE (_p1))
13930 : {
13931 537 : case EQ_EXPR:
13932 537 : {
13933 537 : tree _q50 = TREE_OPERAND (_p1, 0);
13934 537 : tree _q51 = TREE_OPERAND (_p1, 1);
13935 537 : switch (TREE_CODE (_q50))
13936 : {
13937 0 : CASE_CONVERT:
13938 0 : {
13939 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13940 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13941 : {
13942 0 : {
13943 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13944 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13945 0 : if (res) return res;
13946 : }
13947 : }
13948 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13949 : {
13950 0 : {
13951 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13952 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13953 0 : if (res) return res;
13954 : }
13955 : }
13956 : break;
13957 : }
13958 537 : default:;
13959 : }
13960 537 : switch (TREE_CODE (_q51))
13961 : {
13962 0 : CASE_CONVERT:
13963 0 : {
13964 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13965 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13966 : {
13967 0 : {
13968 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13969 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13970 0 : if (res) return res;
13971 : }
13972 : }
13973 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13974 : {
13975 0 : {
13976 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13977 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13978 0 : if (res) return res;
13979 : }
13980 : }
13981 : break;
13982 : }
13983 : default:;
13984 : }
13985 : break;
13986 : }
13987 33 : case NE_EXPR:
13988 33 : {
13989 33 : tree _q50 = TREE_OPERAND (_p1, 0);
13990 33 : tree _q51 = TREE_OPERAND (_p1, 1);
13991 33 : switch (TREE_CODE (_q50))
13992 : {
13993 0 : CASE_CONVERT:
13994 0 : {
13995 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13996 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13997 : {
13998 0 : {
13999 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14000 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14001 0 : if (res) return res;
14002 : }
14003 : }
14004 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14005 : {
14006 0 : {
14007 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14008 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14009 0 : if (res) return res;
14010 : }
14011 : }
14012 : break;
14013 : }
14014 33 : default:;
14015 : }
14016 33 : switch (TREE_CODE (_q51))
14017 : {
14018 0 : CASE_CONVERT:
14019 0 : {
14020 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14021 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14022 : {
14023 0 : {
14024 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14025 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14026 0 : if (res) return res;
14027 : }
14028 : }
14029 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14030 : {
14031 0 : {
14032 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14033 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14034 0 : if (res) return res;
14035 : }
14036 : }
14037 : break;
14038 : }
14039 : default:;
14040 : }
14041 : break;
14042 : }
14043 19 : case LT_EXPR:
14044 19 : {
14045 19 : tree _q50 = TREE_OPERAND (_p1, 0);
14046 19 : tree _q51 = TREE_OPERAND (_p1, 1);
14047 19 : switch (TREE_CODE (_q50))
14048 : {
14049 0 : CASE_CONVERT:
14050 0 : {
14051 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14052 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14053 : {
14054 0 : {
14055 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14056 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14057 0 : if (res) return res;
14058 : }
14059 : }
14060 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14061 : {
14062 0 : {
14063 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14064 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14065 0 : if (res) return res;
14066 : }
14067 : }
14068 : break;
14069 : }
14070 19 : default:;
14071 : }
14072 19 : switch (TREE_CODE (_q51))
14073 : {
14074 0 : CASE_CONVERT:
14075 0 : {
14076 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14077 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14078 : {
14079 0 : {
14080 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14081 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14082 0 : if (res) return res;
14083 : }
14084 : }
14085 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14086 : {
14087 0 : {
14088 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14089 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14090 0 : if (res) return res;
14091 : }
14092 : }
14093 : break;
14094 : }
14095 : default:;
14096 : }
14097 : break;
14098 : }
14099 12 : case GT_EXPR:
14100 12 : {
14101 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14102 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14103 12 : switch (TREE_CODE (_q50))
14104 : {
14105 0 : CASE_CONVERT:
14106 0 : {
14107 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14108 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14109 : {
14110 0 : {
14111 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14112 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14113 0 : if (res) return res;
14114 : }
14115 : }
14116 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14117 : {
14118 0 : {
14119 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14120 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14121 0 : if (res) return res;
14122 : }
14123 : }
14124 : break;
14125 : }
14126 12 : default:;
14127 : }
14128 12 : switch (TREE_CODE (_q51))
14129 : {
14130 0 : CASE_CONVERT:
14131 0 : {
14132 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14133 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14134 : {
14135 0 : {
14136 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14137 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14138 0 : if (res) return res;
14139 : }
14140 : }
14141 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14142 : {
14143 0 : {
14144 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14145 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14146 0 : if (res) return res;
14147 : }
14148 : }
14149 : break;
14150 : }
14151 : default:;
14152 : }
14153 : break;
14154 : }
14155 36 : case LE_EXPR:
14156 36 : {
14157 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14158 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14159 36 : switch (TREE_CODE (_q50))
14160 : {
14161 12 : CASE_CONVERT:
14162 12 : {
14163 12 : tree _q60 = TREE_OPERAND (_q50, 0);
14164 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14165 : {
14166 0 : {
14167 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14168 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14169 0 : if (res) return res;
14170 : }
14171 : }
14172 12 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14173 : {
14174 0 : {
14175 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14176 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14177 0 : if (res) return res;
14178 : }
14179 : }
14180 : break;
14181 : }
14182 36 : default:;
14183 : }
14184 36 : switch (TREE_CODE (_q51))
14185 : {
14186 0 : CASE_CONVERT:
14187 0 : {
14188 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14189 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14190 : {
14191 0 : {
14192 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14193 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14194 0 : if (res) return res;
14195 : }
14196 : }
14197 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14198 : {
14199 0 : {
14200 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14201 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14202 0 : if (res) return res;
14203 : }
14204 : }
14205 : break;
14206 : }
14207 : default:;
14208 : }
14209 : break;
14210 : }
14211 4 : case GE_EXPR:
14212 4 : {
14213 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14214 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14215 4 : switch (TREE_CODE (_q50))
14216 : {
14217 0 : CASE_CONVERT:
14218 0 : {
14219 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14220 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14221 : {
14222 0 : {
14223 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14224 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14225 0 : if (res) return res;
14226 : }
14227 : }
14228 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14229 : {
14230 0 : {
14231 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14232 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14233 0 : if (res) return res;
14234 : }
14235 : }
14236 : break;
14237 : }
14238 4 : default:;
14239 : }
14240 4 : switch (TREE_CODE (_q51))
14241 : {
14242 0 : CASE_CONVERT:
14243 0 : {
14244 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14245 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14246 : {
14247 0 : {
14248 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14249 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14250 0 : if (res) return res;
14251 : }
14252 : }
14253 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14254 : {
14255 0 : {
14256 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14257 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14258 0 : if (res) return res;
14259 : }
14260 : }
14261 : break;
14262 : }
14263 : default:;
14264 : }
14265 : break;
14266 : }
14267 1072 : default:;
14268 : }
14269 1072 : switch (TREE_CODE (_q20))
14270 : {
14271 0 : CASE_CONVERT:
14272 0 : {
14273 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14274 0 : switch (TREE_CODE (_p1))
14275 : {
14276 0 : case EQ_EXPR:
14277 0 : {
14278 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14279 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14280 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14281 : {
14282 0 : {
14283 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14284 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14285 0 : if (res) return res;
14286 : }
14287 : }
14288 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14289 : {
14290 0 : {
14291 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14292 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14293 0 : if (res) return res;
14294 : }
14295 : }
14296 : break;
14297 : }
14298 0 : case NE_EXPR:
14299 0 : {
14300 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14301 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14302 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14303 : {
14304 0 : {
14305 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14306 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14307 0 : if (res) return res;
14308 : }
14309 : }
14310 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14311 : {
14312 0 : {
14313 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14314 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14315 0 : if (res) return res;
14316 : }
14317 : }
14318 : break;
14319 : }
14320 : default:;
14321 : }
14322 : break;
14323 : }
14324 1072 : default:;
14325 : }
14326 1072 : switch (TREE_CODE (_q21))
14327 : {
14328 0 : CASE_CONVERT:
14329 0 : {
14330 0 : tree _q40 = TREE_OPERAND (_q21, 0);
14331 0 : switch (TREE_CODE (_p1))
14332 : {
14333 0 : case EQ_EXPR:
14334 0 : {
14335 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14336 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14337 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14338 : {
14339 0 : {
14340 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14341 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14342 0 : if (res) return res;
14343 : }
14344 : }
14345 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14346 : {
14347 0 : {
14348 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14349 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14350 0 : if (res) return res;
14351 : }
14352 : }
14353 : break;
14354 : }
14355 0 : case NE_EXPR:
14356 0 : {
14357 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14358 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14359 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14360 : {
14361 0 : {
14362 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14363 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14364 0 : if (res) return res;
14365 : }
14366 : }
14367 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14368 : {
14369 0 : {
14370 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14371 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14372 0 : if (res) return res;
14373 : }
14374 : }
14375 : break;
14376 : }
14377 : default:;
14378 : }
14379 : break;
14380 : }
14381 1072 : default:;
14382 : }
14383 1072 : switch (TREE_CODE (_p1))
14384 : {
14385 537 : case EQ_EXPR:
14386 537 : {
14387 537 : tree _q50 = TREE_OPERAND (_p1, 0);
14388 537 : tree _q51 = TREE_OPERAND (_p1, 1);
14389 537 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14390 : {
14391 0 : {
14392 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14393 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14394 0 : if (res) return res;
14395 : }
14396 0 : {
14397 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14398 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14399 0 : if (res) return res;
14400 : }
14401 : }
14402 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14403 : {
14404 0 : {
14405 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14406 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14407 0 : if (res) return res;
14408 : }
14409 : }
14410 537 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14411 : {
14412 0 : {
14413 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14414 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14415 0 : if (res) return res;
14416 : }
14417 0 : {
14418 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14419 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14420 0 : if (res) return res;
14421 : }
14422 : }
14423 537 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14424 : {
14425 178 : {
14426 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14427 178 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14428 178 : if (res) return res;
14429 : }
14430 178 : {
14431 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14432 178 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14433 178 : if (res) return res;
14434 : }
14435 : }
14436 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14437 : {
14438 0 : {
14439 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14440 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14441 0 : if (res) return res;
14442 : }
14443 : }
14444 : break;
14445 : }
14446 33 : case NE_EXPR:
14447 33 : {
14448 33 : tree _q50 = TREE_OPERAND (_p1, 0);
14449 33 : tree _q51 = TREE_OPERAND (_p1, 1);
14450 33 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14451 : {
14452 0 : {
14453 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14454 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14455 0 : if (res) return res;
14456 : }
14457 0 : {
14458 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14459 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14460 0 : if (res) return res;
14461 : }
14462 : }
14463 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14464 : {
14465 0 : {
14466 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14467 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14468 0 : if (res) return res;
14469 : }
14470 : }
14471 33 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14472 : {
14473 0 : {
14474 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14475 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14476 0 : if (res) return res;
14477 : }
14478 0 : {
14479 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14480 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14481 0 : if (res) return res;
14482 : }
14483 : }
14484 33 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14485 : {
14486 11 : {
14487 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14488 11 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14489 11 : if (res) return res;
14490 : }
14491 11 : {
14492 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14493 11 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14494 11 : if (res) return res;
14495 : }
14496 : }
14497 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14498 : {
14499 0 : {
14500 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14501 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14502 0 : if (res) return res;
14503 : }
14504 : }
14505 : break;
14506 : }
14507 19 : case LT_EXPR:
14508 19 : {
14509 19 : tree _q50 = TREE_OPERAND (_p1, 0);
14510 19 : tree _q51 = TREE_OPERAND (_p1, 1);
14511 19 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14512 : {
14513 0 : {
14514 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14515 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14516 0 : if (res) return res;
14517 : }
14518 : }
14519 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14520 : {
14521 0 : {
14522 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14523 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14524 0 : if (res) return res;
14525 : }
14526 : }
14527 19 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14528 : {
14529 0 : {
14530 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14531 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14532 0 : if (res) return res;
14533 : }
14534 : }
14535 19 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14536 : {
14537 0 : {
14538 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14539 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14540 0 : if (res) return res;
14541 : }
14542 : }
14543 : break;
14544 : }
14545 12 : case GT_EXPR:
14546 12 : {
14547 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14548 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14549 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14550 : {
14551 0 : {
14552 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14553 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14554 0 : if (res) return res;
14555 : }
14556 : }
14557 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14558 : {
14559 0 : {
14560 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14561 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14562 0 : if (res) return res;
14563 : }
14564 : }
14565 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14566 : {
14567 0 : {
14568 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14569 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14570 0 : if (res) return res;
14571 : }
14572 : }
14573 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14574 : {
14575 0 : {
14576 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14577 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14578 0 : if (res) return res;
14579 : }
14580 : }
14581 : break;
14582 : }
14583 36 : case LE_EXPR:
14584 36 : {
14585 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14586 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14587 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14588 : {
14589 0 : {
14590 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14591 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14592 0 : if (res) return res;
14593 : }
14594 : }
14595 36 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14596 : {
14597 0 : {
14598 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14599 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14600 0 : if (res) return res;
14601 : }
14602 : }
14603 36 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14604 : {
14605 0 : {
14606 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14607 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14608 0 : if (res) return res;
14609 : }
14610 : }
14611 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14612 : {
14613 0 : {
14614 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14615 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14616 0 : if (res) return res;
14617 : }
14618 : }
14619 : break;
14620 : }
14621 4 : case GE_EXPR:
14622 4 : {
14623 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14624 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14625 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14626 : {
14627 0 : {
14628 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14629 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14630 0 : if (res) return res;
14631 : }
14632 : }
14633 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14634 : {
14635 0 : {
14636 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14637 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14638 0 : if (res) return res;
14639 : }
14640 : }
14641 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14642 : {
14643 0 : {
14644 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14645 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14646 0 : if (res) return res;
14647 : }
14648 : }
14649 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14650 : {
14651 0 : {
14652 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14653 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14654 0 : if (res) return res;
14655 : }
14656 : }
14657 : break;
14658 : }
14659 : default:;
14660 : }
14661 : break;
14662 : }
14663 139 : case NE_EXPR:
14664 139 : {
14665 139 : tree _q20 = TREE_OPERAND (_p0, 0);
14666 139 : tree _q21 = TREE_OPERAND (_p0, 1);
14667 139 : if (tree_min_value (_q21))
14668 : {
14669 16 : switch (TREE_CODE (_p1))
14670 : {
14671 0 : case GT_EXPR:
14672 0 : {
14673 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14674 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14675 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14676 : {
14677 0 : {
14678 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14679 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR);
14680 0 : if (res) return res;
14681 : }
14682 : }
14683 : break;
14684 : }
14685 0 : case LT_EXPR:
14686 0 : {
14687 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14688 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14689 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14690 : {
14691 0 : {
14692 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14693 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR);
14694 0 : if (res) return res;
14695 : }
14696 : }
14697 : break;
14698 : }
14699 3 : case GE_EXPR:
14700 3 : {
14701 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14702 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14703 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14704 : {
14705 3 : {
14706 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
14707 3 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
14708 3 : if (res) return res;
14709 : }
14710 : }
14711 : break;
14712 : }
14713 0 : case LE_EXPR:
14714 0 : {
14715 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14716 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14717 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14718 : {
14719 0 : {
14720 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q51 };
14721 0 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
14722 0 : if (res) return res;
14723 : }
14724 : }
14725 : break;
14726 : }
14727 : default:;
14728 : }
14729 : }
14730 136 : if (tree_max_value (_q21))
14731 : {
14732 0 : switch (TREE_CODE (_p1))
14733 : {
14734 0 : case LT_EXPR:
14735 0 : {
14736 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14737 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14738 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14739 : {
14740 0 : {
14741 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14742 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, NE_EXPR);
14743 0 : if (res) return res;
14744 : }
14745 : }
14746 : break;
14747 : }
14748 0 : case GT_EXPR:
14749 0 : {
14750 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14751 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14752 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14753 : {
14754 0 : {
14755 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14756 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, NE_EXPR);
14757 0 : if (res) return res;
14758 : }
14759 : }
14760 : break;
14761 : }
14762 : default:;
14763 : }
14764 : }
14765 136 : switch (TREE_CODE (_p1))
14766 : {
14767 20 : case EQ_EXPR:
14768 20 : {
14769 20 : tree _q50 = TREE_OPERAND (_p1, 0);
14770 20 : tree _q51 = TREE_OPERAND (_p1, 1);
14771 20 : switch (TREE_CODE (_q50))
14772 : {
14773 0 : CASE_CONVERT:
14774 0 : {
14775 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14776 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14777 : {
14778 0 : {
14779 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14780 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14781 0 : if (res) return res;
14782 : }
14783 : }
14784 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14785 : {
14786 0 : {
14787 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14788 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14789 0 : if (res) return res;
14790 : }
14791 : }
14792 : break;
14793 : }
14794 20 : default:;
14795 : }
14796 20 : switch (TREE_CODE (_q51))
14797 : {
14798 0 : CASE_CONVERT:
14799 0 : {
14800 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14801 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14802 : {
14803 0 : {
14804 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14805 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14806 0 : if (res) return res;
14807 : }
14808 : }
14809 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14810 : {
14811 0 : {
14812 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14813 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14814 0 : if (res) return res;
14815 : }
14816 : }
14817 : break;
14818 : }
14819 : default:;
14820 : }
14821 : break;
14822 : }
14823 3 : case NE_EXPR:
14824 3 : {
14825 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14826 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14827 3 : switch (TREE_CODE (_q50))
14828 : {
14829 0 : CASE_CONVERT:
14830 0 : {
14831 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14832 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14833 : {
14834 0 : {
14835 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14836 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14837 0 : if (res) return res;
14838 : }
14839 : }
14840 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14841 : {
14842 0 : {
14843 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14844 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14845 0 : if (res) return res;
14846 : }
14847 : }
14848 : break;
14849 : }
14850 3 : default:;
14851 : }
14852 3 : switch (TREE_CODE (_q51))
14853 : {
14854 0 : CASE_CONVERT:
14855 0 : {
14856 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14857 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14858 : {
14859 0 : {
14860 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14861 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14862 0 : if (res) return res;
14863 : }
14864 : }
14865 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14866 : {
14867 0 : {
14868 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14869 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14870 0 : if (res) return res;
14871 : }
14872 : }
14873 : break;
14874 : }
14875 : default:;
14876 : }
14877 : break;
14878 : }
14879 0 : case LT_EXPR:
14880 0 : {
14881 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14882 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14883 0 : switch (TREE_CODE (_q50))
14884 : {
14885 0 : CASE_CONVERT:
14886 0 : {
14887 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14888 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14889 : {
14890 0 : {
14891 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14892 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14893 0 : if (res) return res;
14894 : }
14895 : }
14896 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14897 : {
14898 0 : {
14899 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14900 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14901 0 : if (res) return res;
14902 : }
14903 : }
14904 : break;
14905 : }
14906 0 : default:;
14907 : }
14908 0 : switch (TREE_CODE (_q51))
14909 : {
14910 0 : CASE_CONVERT:
14911 0 : {
14912 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14913 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14914 : {
14915 0 : {
14916 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14917 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14918 0 : if (res) return res;
14919 : }
14920 : }
14921 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14922 : {
14923 0 : {
14924 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14925 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14926 0 : if (res) return res;
14927 : }
14928 : }
14929 : break;
14930 : }
14931 : default:;
14932 : }
14933 : break;
14934 : }
14935 4 : case GT_EXPR:
14936 4 : {
14937 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14938 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14939 4 : switch (TREE_CODE (_q50))
14940 : {
14941 0 : CASE_CONVERT:
14942 0 : {
14943 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14944 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14945 : {
14946 0 : {
14947 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14948 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14949 0 : if (res) return res;
14950 : }
14951 : }
14952 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14953 : {
14954 0 : {
14955 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14956 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14957 0 : if (res) return res;
14958 : }
14959 : }
14960 : break;
14961 : }
14962 4 : default:;
14963 : }
14964 4 : switch (TREE_CODE (_q51))
14965 : {
14966 0 : CASE_CONVERT:
14967 0 : {
14968 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14969 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14970 : {
14971 0 : {
14972 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14973 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14974 0 : if (res) return res;
14975 : }
14976 : }
14977 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14978 : {
14979 0 : {
14980 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14981 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14982 0 : if (res) return res;
14983 : }
14984 : }
14985 : break;
14986 : }
14987 : default:;
14988 : }
14989 : break;
14990 : }
14991 0 : case LE_EXPR:
14992 0 : {
14993 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14994 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14995 0 : switch (TREE_CODE (_q50))
14996 : {
14997 0 : CASE_CONVERT:
14998 0 : {
14999 0 : tree _q60 = TREE_OPERAND (_q50, 0);
15000 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15001 : {
15002 0 : {
15003 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15004 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15005 0 : if (res) return res;
15006 : }
15007 : }
15008 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
15009 : {
15010 0 : {
15011 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15012 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15013 0 : if (res) return res;
15014 : }
15015 : }
15016 : break;
15017 : }
15018 0 : default:;
15019 : }
15020 0 : switch (TREE_CODE (_q51))
15021 : {
15022 0 : CASE_CONVERT:
15023 0 : {
15024 0 : tree _q70 = TREE_OPERAND (_q51, 0);
15025 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15026 : {
15027 0 : {
15028 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15029 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15030 0 : if (res) return res;
15031 : }
15032 : }
15033 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
15034 : {
15035 0 : {
15036 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15037 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15038 0 : if (res) return res;
15039 : }
15040 : }
15041 : break;
15042 : }
15043 : default:;
15044 : }
15045 : break;
15046 : }
15047 14 : case GE_EXPR:
15048 14 : {
15049 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15050 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15051 14 : switch (TREE_CODE (_q50))
15052 : {
15053 0 : CASE_CONVERT:
15054 0 : {
15055 0 : tree _q60 = TREE_OPERAND (_q50, 0);
15056 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15057 : {
15058 0 : {
15059 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15060 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15061 0 : if (res) return res;
15062 : }
15063 : }
15064 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
15065 : {
15066 0 : {
15067 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15068 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15069 0 : if (res) return res;
15070 : }
15071 : }
15072 : break;
15073 : }
15074 14 : default:;
15075 : }
15076 14 : switch (TREE_CODE (_q51))
15077 : {
15078 0 : CASE_CONVERT:
15079 0 : {
15080 0 : tree _q70 = TREE_OPERAND (_q51, 0);
15081 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15082 : {
15083 0 : {
15084 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15085 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15086 0 : if (res) return res;
15087 : }
15088 : }
15089 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
15090 : {
15091 0 : {
15092 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15093 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15094 0 : if (res) return res;
15095 : }
15096 : }
15097 : break;
15098 : }
15099 : default:;
15100 : }
15101 : break;
15102 : }
15103 136 : default:;
15104 : }
15105 136 : switch (TREE_CODE (_q20))
15106 : {
15107 0 : CASE_CONVERT:
15108 0 : {
15109 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15110 0 : switch (TREE_CODE (_p1))
15111 : {
15112 0 : case EQ_EXPR:
15113 0 : {
15114 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15115 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15116 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15117 : {
15118 0 : {
15119 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15120 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15121 0 : if (res) return res;
15122 : }
15123 : }
15124 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15125 : {
15126 0 : {
15127 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15128 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15129 0 : if (res) return res;
15130 : }
15131 : }
15132 : break;
15133 : }
15134 0 : case NE_EXPR:
15135 0 : {
15136 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15137 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15138 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15139 : {
15140 0 : {
15141 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15142 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15143 0 : if (res) return res;
15144 : }
15145 : }
15146 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15147 : {
15148 0 : {
15149 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15150 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15151 0 : if (res) return res;
15152 : }
15153 : }
15154 : break;
15155 : }
15156 : default:;
15157 : }
15158 : break;
15159 : }
15160 136 : default:;
15161 : }
15162 136 : switch (TREE_CODE (_q21))
15163 : {
15164 0 : CASE_CONVERT:
15165 0 : {
15166 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15167 0 : switch (TREE_CODE (_p1))
15168 : {
15169 0 : case EQ_EXPR:
15170 0 : {
15171 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15172 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15173 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15174 : {
15175 0 : {
15176 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15177 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15178 0 : if (res) return res;
15179 : }
15180 : }
15181 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15182 : {
15183 0 : {
15184 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15185 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15186 0 : if (res) return res;
15187 : }
15188 : }
15189 : break;
15190 : }
15191 0 : case NE_EXPR:
15192 0 : {
15193 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15194 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15195 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15196 : {
15197 0 : {
15198 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15199 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15200 0 : if (res) return res;
15201 : }
15202 : }
15203 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15204 : {
15205 0 : {
15206 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15207 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15208 0 : if (res) return res;
15209 : }
15210 : }
15211 : break;
15212 : }
15213 : default:;
15214 : }
15215 : break;
15216 : }
15217 136 : default:;
15218 : }
15219 136 : switch (TREE_CODE (_p1))
15220 : {
15221 20 : case EQ_EXPR:
15222 20 : {
15223 20 : tree _q50 = TREE_OPERAND (_p1, 0);
15224 20 : tree _q51 = TREE_OPERAND (_p1, 1);
15225 20 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15226 : {
15227 0 : {
15228 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15229 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15230 0 : if (res) return res;
15231 : }
15232 0 : {
15233 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15234 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15235 0 : if (res) return res;
15236 : }
15237 : }
15238 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15239 : {
15240 0 : {
15241 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15242 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15243 0 : if (res) return res;
15244 : }
15245 : }
15246 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15247 : {
15248 0 : {
15249 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15250 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15251 0 : if (res) return res;
15252 : }
15253 0 : {
15254 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15255 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15256 0 : if (res) return res;
15257 : }
15258 : }
15259 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15260 : {
15261 4 : {
15262 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15263 4 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15264 4 : if (res) return res;
15265 : }
15266 4 : {
15267 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15268 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15269 4 : if (res) return res;
15270 : }
15271 : }
15272 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15273 : {
15274 0 : {
15275 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15276 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15277 0 : if (res) return res;
15278 : }
15279 : }
15280 : break;
15281 : }
15282 3 : case NE_EXPR:
15283 3 : {
15284 3 : tree _q50 = TREE_OPERAND (_p1, 0);
15285 3 : tree _q51 = TREE_OPERAND (_p1, 1);
15286 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15287 : {
15288 2 : {
15289 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15290 2 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15291 2 : if (res) return res;
15292 : }
15293 2 : {
15294 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15295 2 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15296 2 : if (res) return res;
15297 : }
15298 : }
15299 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15300 : {
15301 0 : {
15302 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15303 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15304 0 : if (res) return res;
15305 : }
15306 : }
15307 3 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15308 : {
15309 0 : {
15310 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15311 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15312 0 : if (res) return res;
15313 : }
15314 0 : {
15315 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15316 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15317 0 : if (res) return res;
15318 : }
15319 : }
15320 3 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15321 : {
15322 0 : {
15323 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15324 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15325 0 : if (res) return res;
15326 : }
15327 0 : {
15328 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15329 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15330 0 : if (res) return res;
15331 : }
15332 : }
15333 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15334 : {
15335 0 : {
15336 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15337 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15338 0 : if (res) return res;
15339 : }
15340 : }
15341 : break;
15342 : }
15343 0 : case LT_EXPR:
15344 0 : {
15345 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15346 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15347 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15348 : {
15349 0 : {
15350 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15351 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15352 0 : if (res) return res;
15353 : }
15354 : }
15355 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15356 : {
15357 0 : {
15358 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15359 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15360 0 : if (res) return res;
15361 : }
15362 : }
15363 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15364 : {
15365 0 : {
15366 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15367 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15368 0 : if (res) return res;
15369 : }
15370 : }
15371 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15372 : {
15373 0 : {
15374 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15375 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15376 0 : if (res) return res;
15377 : }
15378 : }
15379 : break;
15380 : }
15381 4 : case GT_EXPR:
15382 4 : {
15383 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15384 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15385 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15386 : {
15387 4 : {
15388 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15389 4 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15390 4 : if (res) return res;
15391 : }
15392 : }
15393 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15394 : {
15395 0 : {
15396 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15397 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15398 0 : if (res) return res;
15399 : }
15400 : }
15401 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15402 : {
15403 0 : {
15404 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15405 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15406 0 : if (res) return res;
15407 : }
15408 : }
15409 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15410 : {
15411 0 : {
15412 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15413 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15414 0 : if (res) return res;
15415 : }
15416 : }
15417 : break;
15418 : }
15419 0 : case LE_EXPR:
15420 0 : {
15421 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15422 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15423 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15424 : {
15425 0 : {
15426 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15427 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15428 0 : if (res) return res;
15429 : }
15430 : }
15431 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15432 : {
15433 0 : {
15434 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15435 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15436 0 : if (res) return res;
15437 : }
15438 : }
15439 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15440 : {
15441 0 : {
15442 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15443 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15444 0 : if (res) return res;
15445 : }
15446 : }
15447 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15448 : {
15449 0 : {
15450 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15451 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15452 0 : if (res) return res;
15453 : }
15454 : }
15455 : break;
15456 : }
15457 14 : case GE_EXPR:
15458 14 : {
15459 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15460 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15461 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15462 : {
15463 0 : {
15464 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15465 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15466 0 : if (res) return res;
15467 : }
15468 : }
15469 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15470 : {
15471 0 : {
15472 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15473 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15474 0 : if (res) return res;
15475 : }
15476 : }
15477 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15478 : {
15479 0 : {
15480 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15481 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15482 0 : if (res) return res;
15483 : }
15484 : }
15485 14 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15486 : {
15487 14 : {
15488 14 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15489 14 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15490 14 : if (res) return res;
15491 : }
15492 : }
15493 : break;
15494 : }
15495 : default:;
15496 : }
15497 : break;
15498 : }
15499 36 : case LE_EXPR:
15500 36 : {
15501 36 : tree _q20 = TREE_OPERAND (_p0, 0);
15502 36 : tree _q21 = TREE_OPERAND (_p0, 1);
15503 36 : switch (TREE_CODE (_p1))
15504 : {
15505 16 : case EQ_EXPR:
15506 16 : {
15507 16 : tree _q50 = TREE_OPERAND (_p1, 0);
15508 16 : tree _q51 = TREE_OPERAND (_p1, 1);
15509 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15510 : {
15511 4 : if (tree_min_value (_q51))
15512 : {
15513 4 : {
15514 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15515 4 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures);
15516 4 : if (res) return res;
15517 : }
15518 : }
15519 : }
15520 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15521 : {
15522 0 : if (tree_max_value (_q51))
15523 : {
15524 0 : {
15525 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15526 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures);
15527 0 : if (res) return res;
15528 : }
15529 : }
15530 : }
15531 : break;
15532 : }
15533 0 : case NE_EXPR:
15534 0 : {
15535 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15536 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15537 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15538 : {
15539 0 : if (tree_min_value (_q51))
15540 : {
15541 0 : {
15542 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _p0, _q21 };
15543 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
15544 0 : if (res) return res;
15545 : }
15546 : }
15547 : }
15548 : break;
15549 : }
15550 32 : default:;
15551 : }
15552 32 : switch (TREE_CODE (_q20))
15553 : {
15554 0 : CASE_CONVERT:
15555 0 : {
15556 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15557 0 : switch (TREE_CODE (_p1))
15558 : {
15559 0 : case EQ_EXPR:
15560 0 : {
15561 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15562 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15563 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15564 : {
15565 0 : {
15566 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15567 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15568 0 : if (res) return res;
15569 : }
15570 : }
15571 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15572 : {
15573 0 : {
15574 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15575 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15576 0 : if (res) return res;
15577 : }
15578 : }
15579 : break;
15580 : }
15581 0 : case NE_EXPR:
15582 0 : {
15583 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15584 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15585 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15586 : {
15587 0 : {
15588 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15589 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15590 0 : if (res) return res;
15591 : }
15592 : }
15593 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15594 : {
15595 0 : {
15596 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15597 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15598 0 : if (res) return res;
15599 : }
15600 : }
15601 : break;
15602 : }
15603 : default:;
15604 : }
15605 : break;
15606 : }
15607 32 : default:;
15608 : }
15609 32 : switch (TREE_CODE (_q21))
15610 : {
15611 0 : CASE_CONVERT:
15612 0 : {
15613 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15614 0 : switch (TREE_CODE (_p1))
15615 : {
15616 0 : case EQ_EXPR:
15617 0 : {
15618 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15619 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15620 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15621 : {
15622 0 : {
15623 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15624 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15625 0 : if (res) return res;
15626 : }
15627 : }
15628 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15629 : {
15630 0 : {
15631 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15632 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15633 0 : if (res) return res;
15634 : }
15635 : }
15636 : break;
15637 : }
15638 0 : case NE_EXPR:
15639 0 : {
15640 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15641 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15642 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15643 : {
15644 0 : {
15645 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15646 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15647 0 : if (res) return res;
15648 : }
15649 : }
15650 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15651 : {
15652 0 : {
15653 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15654 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15655 0 : if (res) return res;
15656 : }
15657 : }
15658 : break;
15659 : }
15660 : default:;
15661 : }
15662 : break;
15663 : }
15664 32 : default:;
15665 : }
15666 32 : switch (TREE_CODE (_p1))
15667 : {
15668 12 : case EQ_EXPR:
15669 12 : {
15670 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15671 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15672 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15673 : {
15674 0 : {
15675 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15676 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15677 0 : if (res) return res;
15678 : }
15679 : }
15680 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15681 : {
15682 0 : {
15683 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15684 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15685 0 : if (res) return res;
15686 : }
15687 : }
15688 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15689 : {
15690 0 : {
15691 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15692 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15693 0 : if (res) return res;
15694 : }
15695 : }
15696 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15697 : {
15698 0 : {
15699 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15700 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15701 0 : if (res) return res;
15702 : }
15703 : }
15704 : break;
15705 : }
15706 0 : case NE_EXPR:
15707 0 : {
15708 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15709 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15710 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15711 : {
15712 0 : {
15713 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15714 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15715 0 : if (res) return res;
15716 : }
15717 : }
15718 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15719 : {
15720 0 : {
15721 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15722 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15723 0 : if (res) return res;
15724 : }
15725 : }
15726 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15727 : {
15728 0 : {
15729 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15730 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15731 0 : if (res) return res;
15732 : }
15733 : }
15734 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15735 : {
15736 0 : {
15737 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15738 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15739 0 : if (res) return res;
15740 : }
15741 : }
15742 : break;
15743 : }
15744 0 : case LT_EXPR:
15745 0 : {
15746 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15747 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15748 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15749 : {
15750 0 : {
15751 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15752 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15753 0 : if (res) return res;
15754 : }
15755 : }
15756 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15757 : {
15758 0 : {
15759 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15760 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15761 0 : if (res) return res;
15762 : }
15763 : }
15764 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15765 : {
15766 0 : {
15767 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15768 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15769 0 : if (res) return res;
15770 : }
15771 : }
15772 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15773 : {
15774 0 : {
15775 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15776 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15777 0 : if (res) return res;
15778 : }
15779 : }
15780 : break;
15781 : }
15782 5 : case LE_EXPR:
15783 5 : {
15784 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15785 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15786 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15787 : {
15788 0 : {
15789 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15790 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15791 0 : if (res) return res;
15792 : }
15793 : }
15794 5 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15795 : {
15796 0 : {
15797 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15798 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15799 0 : if (res) return res;
15800 : }
15801 : }
15802 5 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15803 : {
15804 0 : {
15805 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15806 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15807 0 : if (res) return res;
15808 : }
15809 : }
15810 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15811 : {
15812 4 : {
15813 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15814 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15815 4 : if (res) return res;
15816 : }
15817 : }
15818 : break;
15819 : }
15820 4 : case GT_EXPR:
15821 4 : {
15822 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15823 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15824 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15825 : {
15826 0 : {
15827 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15828 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15829 0 : if (res) return res;
15830 : }
15831 : }
15832 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15833 : {
15834 0 : {
15835 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15836 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15837 0 : if (res) return res;
15838 : }
15839 : }
15840 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15841 : {
15842 0 : {
15843 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15844 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15845 0 : if (res) return res;
15846 : }
15847 : }
15848 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15849 : {
15850 0 : {
15851 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15852 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15853 0 : if (res) return res;
15854 : }
15855 : }
15856 : break;
15857 : }
15858 0 : case GE_EXPR:
15859 0 : {
15860 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15861 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15862 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15863 : {
15864 0 : {
15865 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15866 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15867 0 : if (res) return res;
15868 : }
15869 : }
15870 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15871 : {
15872 0 : {
15873 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15874 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15875 0 : if (res) return res;
15876 : }
15877 : }
15878 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15879 : {
15880 0 : {
15881 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15882 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15883 0 : if (res) return res;
15884 : }
15885 : }
15886 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15887 : {
15888 0 : {
15889 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15890 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15891 0 : if (res) return res;
15892 : }
15893 : }
15894 : break;
15895 : }
15896 : default:;
15897 : }
15898 : break;
15899 : }
15900 78 : case GE_EXPR:
15901 78 : {
15902 78 : tree _q20 = TREE_OPERAND (_p0, 0);
15903 78 : tree _q21 = TREE_OPERAND (_p0, 1);
15904 78 : switch (TREE_CODE (_p1))
15905 : {
15906 10 : case EQ_EXPR:
15907 10 : {
15908 10 : tree _q50 = TREE_OPERAND (_p1, 0);
15909 10 : tree _q51 = TREE_OPERAND (_p1, 1);
15910 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15911 : {
15912 0 : if (tree_min_value (_q51))
15913 : {
15914 0 : {
15915 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15916 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures);
15917 0 : if (res) return res;
15918 : }
15919 : }
15920 : }
15921 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15922 : {
15923 4 : if (tree_max_value (_q51))
15924 : {
15925 4 : {
15926 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15927 4 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures);
15928 4 : if (res) return res;
15929 : }
15930 : }
15931 : }
15932 : break;
15933 : }
15934 0 : case NE_EXPR:
15935 0 : {
15936 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15937 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15938 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15939 : {
15940 0 : if (tree_min_value (_q51))
15941 : {
15942 0 : {
15943 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
15944 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
15945 0 : if (res) return res;
15946 : }
15947 : }
15948 : }
15949 : break;
15950 : }
15951 74 : default:;
15952 : }
15953 74 : switch (TREE_CODE (_q20))
15954 : {
15955 4 : CASE_CONVERT:
15956 4 : {
15957 4 : tree _q30 = TREE_OPERAND (_q20, 0);
15958 4 : switch (TREE_CODE (_p1))
15959 : {
15960 0 : case EQ_EXPR:
15961 0 : {
15962 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15963 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15964 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15965 : {
15966 0 : {
15967 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15968 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15969 0 : if (res) return res;
15970 : }
15971 : }
15972 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15973 : {
15974 0 : {
15975 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15976 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15977 0 : if (res) return res;
15978 : }
15979 : }
15980 : break;
15981 : }
15982 0 : case NE_EXPR:
15983 0 : {
15984 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15985 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15986 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15987 : {
15988 0 : {
15989 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15990 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15991 0 : if (res) return res;
15992 : }
15993 : }
15994 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15995 : {
15996 0 : {
15997 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15998 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15999 0 : if (res) return res;
16000 : }
16001 : }
16002 : break;
16003 : }
16004 : default:;
16005 : }
16006 : break;
16007 : }
16008 74 : default:;
16009 : }
16010 74 : switch (TREE_CODE (_q21))
16011 : {
16012 0 : CASE_CONVERT:
16013 0 : {
16014 0 : tree _q40 = TREE_OPERAND (_q21, 0);
16015 0 : switch (TREE_CODE (_p1))
16016 : {
16017 0 : case EQ_EXPR:
16018 0 : {
16019 0 : tree _q60 = TREE_OPERAND (_p1, 0);
16020 0 : tree _q61 = TREE_OPERAND (_p1, 1);
16021 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
16022 : {
16023 0 : {
16024 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
16025 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16026 0 : if (res) return res;
16027 : }
16028 : }
16029 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
16030 : {
16031 0 : {
16032 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
16033 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16034 0 : if (res) return res;
16035 : }
16036 : }
16037 : break;
16038 : }
16039 0 : case NE_EXPR:
16040 0 : {
16041 0 : tree _q60 = TREE_OPERAND (_p1, 0);
16042 0 : tree _q61 = TREE_OPERAND (_p1, 1);
16043 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
16044 : {
16045 0 : {
16046 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
16047 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16048 0 : if (res) return res;
16049 : }
16050 : }
16051 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
16052 : {
16053 0 : {
16054 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
16055 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16056 0 : if (res) return res;
16057 : }
16058 : }
16059 : break;
16060 : }
16061 : default:;
16062 : }
16063 : break;
16064 : }
16065 74 : default:;
16066 : }
16067 74 : switch (TREE_CODE (_p1))
16068 : {
16069 6 : case EQ_EXPR:
16070 6 : {
16071 6 : tree _q50 = TREE_OPERAND (_p1, 0);
16072 6 : tree _q51 = TREE_OPERAND (_p1, 1);
16073 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16074 : {
16075 0 : {
16076 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16077 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16078 0 : if (res) return res;
16079 : }
16080 : }
16081 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16082 : {
16083 0 : {
16084 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16085 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16086 0 : if (res) return res;
16087 : }
16088 : }
16089 6 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16090 : {
16091 0 : {
16092 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16093 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16094 0 : if (res) return res;
16095 : }
16096 : }
16097 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16098 : {
16099 0 : {
16100 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16101 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16102 0 : if (res) return res;
16103 : }
16104 : }
16105 : break;
16106 : }
16107 0 : case NE_EXPR:
16108 0 : {
16109 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16110 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16111 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16112 : {
16113 0 : {
16114 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16115 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16116 0 : if (res) return res;
16117 : }
16118 : }
16119 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16120 : {
16121 0 : {
16122 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16123 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16124 0 : if (res) return res;
16125 : }
16126 : }
16127 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16128 : {
16129 0 : {
16130 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16131 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16132 0 : if (res) return res;
16133 : }
16134 : }
16135 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16136 : {
16137 0 : {
16138 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16139 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16140 0 : if (res) return res;
16141 : }
16142 : }
16143 : break;
16144 : }
16145 12 : case LT_EXPR:
16146 12 : {
16147 12 : tree _q50 = TREE_OPERAND (_p1, 0);
16148 12 : tree _q51 = TREE_OPERAND (_p1, 1);
16149 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16150 : {
16151 12 : {
16152 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16153 12 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16154 12 : if (res) return res;
16155 : }
16156 : }
16157 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16158 : {
16159 0 : {
16160 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16161 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16162 0 : if (res) return res;
16163 : }
16164 : }
16165 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16166 : {
16167 0 : {
16168 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16169 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16170 0 : if (res) return res;
16171 : }
16172 : }
16173 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16174 : {
16175 0 : {
16176 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16177 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16178 0 : if (res) return res;
16179 : }
16180 : }
16181 : break;
16182 : }
16183 17 : case LE_EXPR:
16184 17 : {
16185 17 : tree _q50 = TREE_OPERAND (_p1, 0);
16186 17 : tree _q51 = TREE_OPERAND (_p1, 1);
16187 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16188 : {
16189 14 : {
16190 14 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16191 14 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16192 14 : if (res) return res;
16193 : }
16194 : }
16195 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16196 : {
16197 0 : {
16198 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16199 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16200 0 : if (res) return res;
16201 : }
16202 : }
16203 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16204 : {
16205 0 : {
16206 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16207 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16208 0 : if (res) return res;
16209 : }
16210 : }
16211 17 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16212 : {
16213 0 : {
16214 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16215 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16216 0 : if (res) return res;
16217 : }
16218 : }
16219 : break;
16220 : }
16221 0 : case GT_EXPR:
16222 0 : {
16223 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16224 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16225 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16226 : {
16227 0 : {
16228 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16229 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16230 0 : if (res) return res;
16231 : }
16232 : }
16233 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16234 : {
16235 0 : {
16236 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16237 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16238 0 : if (res) return res;
16239 : }
16240 : }
16241 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16242 : {
16243 0 : {
16244 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16245 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16246 0 : if (res) return res;
16247 : }
16248 : }
16249 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16250 : {
16251 0 : {
16252 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16253 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16254 0 : if (res) return res;
16255 : }
16256 : }
16257 : break;
16258 : }
16259 11 : case GE_EXPR:
16260 11 : {
16261 11 : tree _q50 = TREE_OPERAND (_p1, 0);
16262 11 : tree _q51 = TREE_OPERAND (_p1, 1);
16263 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16264 : {
16265 7 : {
16266 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16267 7 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16268 7 : if (res) return res;
16269 : }
16270 : }
16271 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16272 : {
16273 0 : {
16274 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16275 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16276 0 : if (res) return res;
16277 : }
16278 : }
16279 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16280 : {
16281 4 : {
16282 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16283 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16284 4 : if (res) return res;
16285 : }
16286 : }
16287 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16288 : {
16289 0 : {
16290 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16291 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16292 0 : if (res) return res;
16293 : }
16294 : }
16295 : break;
16296 : }
16297 : default:;
16298 : }
16299 : break;
16300 : }
16301 0 : case MIN_EXPR:
16302 0 : {
16303 0 : tree _q20 = TREE_OPERAND (_p0, 0);
16304 0 : tree _q21 = TREE_OPERAND (_p0, 1);
16305 0 : switch (TREE_CODE (_p1))
16306 : {
16307 0 : case MAX_EXPR:
16308 0 : {
16309 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16310 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16311 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16312 : {
16313 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16314 : {
16315 0 : {
16316 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16317 0 : if (!HONOR_NANS (captures[0])
16318 : )
16319 : {
16320 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1680;
16321 0 : {
16322 0 : tree res_op0;
16323 0 : res_op0 = captures[0];
16324 0 : tree res_op1;
16325 0 : res_op1 = captures[1];
16326 0 : tree _r;
16327 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16328 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
16329 0 : return _r;
16330 : }
16331 0 : next_after_fail1680:;
16332 : }
16333 : }
16334 : }
16335 : }
16336 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16337 : {
16338 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16339 : {
16340 0 : {
16341 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16342 0 : if (!HONOR_NANS (captures[0])
16343 : )
16344 : {
16345 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1681;
16346 0 : {
16347 0 : tree res_op0;
16348 0 : res_op0 = captures[0];
16349 0 : tree res_op1;
16350 0 : res_op1 = captures[1];
16351 0 : tree _r;
16352 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16353 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
16354 0 : return _r;
16355 : }
16356 0 : next_after_fail1681:;
16357 : }
16358 : }
16359 : }
16360 : }
16361 : break;
16362 : }
16363 : default:;
16364 : }
16365 : break;
16366 : }
16367 80 : case MAX_EXPR:
16368 80 : {
16369 80 : tree _q20 = TREE_OPERAND (_p0, 0);
16370 80 : tree _q21 = TREE_OPERAND (_p0, 1);
16371 80 : switch (TREE_CODE (_p1))
16372 : {
16373 0 : case MIN_EXPR:
16374 0 : {
16375 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16376 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16377 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16378 : {
16379 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16380 : {
16381 0 : {
16382 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16383 0 : if (!HONOR_NANS (captures[0])
16384 : )
16385 : {
16386 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1682;
16387 0 : {
16388 0 : tree res_op0;
16389 0 : res_op0 = captures[0];
16390 0 : tree res_op1;
16391 0 : res_op1 = captures[1];
16392 0 : tree _r;
16393 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16394 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
16395 0 : return _r;
16396 : }
16397 0 : next_after_fail1682:;
16398 : }
16399 : }
16400 : }
16401 : }
16402 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16403 : {
16404 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16405 : {
16406 0 : {
16407 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16408 0 : if (!HONOR_NANS (captures[0])
16409 : )
16410 : {
16411 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1683;
16412 0 : {
16413 0 : tree res_op0;
16414 0 : res_op0 = captures[0];
16415 0 : tree res_op1;
16416 0 : res_op1 = captures[1];
16417 0 : tree _r;
16418 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
16420 0 : return _r;
16421 : }
16422 0 : next_after_fail1683:;
16423 : }
16424 : }
16425 : }
16426 : }
16427 : break;
16428 : }
16429 : default:;
16430 : }
16431 : break;
16432 : }
16433 123236 : case MULT_EXPR:
16434 123236 : {
16435 123236 : tree _q20 = TREE_OPERAND (_p0, 0);
16436 123236 : tree _q21 = TREE_OPERAND (_p0, 1);
16437 123236 : if (tree_zero_one_valued_p (_q20))
16438 : {
16439 4 : {
16440 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
16441 4 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
16442 4 : if (res) return res;
16443 : }
16444 : }
16445 123234 : if (tree_zero_one_valued_p (_q21))
16446 : {
16447 0 : {
16448 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
16449 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
16450 0 : if (res) return res;
16451 : }
16452 : }
16453 : break;
16454 : }
16455 6411564 : default:;
16456 : }
16457 6411564 : switch (TREE_CODE (_p1))
16458 : {
16459 26 : case MULT_EXPR:
16460 26 : {
16461 26 : tree _q30 = TREE_OPERAND (_p1, 0);
16462 26 : tree _q31 = TREE_OPERAND (_p1, 1);
16463 26 : if (tree_zero_one_valued_p (_q30))
16464 : {
16465 0 : {
16466 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
16467 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
16468 0 : if (res) return res;
16469 : }
16470 : }
16471 26 : if (tree_zero_one_valued_p (_q31))
16472 : {
16473 0 : {
16474 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
16475 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
16476 0 : if (res) return res;
16477 : }
16478 : }
16479 : break;
16480 : }
16481 6411564 : default:;
16482 : }
16483 6411564 : switch (TREE_CODE (_p0))
16484 : {
16485 34368 : case LSHIFT_EXPR:
16486 34368 : {
16487 34368 : tree _q20 = TREE_OPERAND (_p0, 0);
16488 34368 : tree _q21 = TREE_OPERAND (_p0, 1);
16489 34368 : switch (TREE_CODE (_q20))
16490 : {
16491 5263 : case INTEGER_CST:
16492 5263 : {
16493 5263 : if (integer_onep (_p1))
16494 : {
16495 44 : {
16496 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16497 44 : if ((wi::to_wide (captures[0]) & 1) != 0
16498 : )
16499 : {
16500 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1684;
16501 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1684;
16502 40 : {
16503 40 : tree res_op0;
16504 40 : {
16505 40 : tree _o1[2], _r1;
16506 40 : _o1[0] = captures[1];
16507 40 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
16508 40 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
16509 40 : res_op0 = _r1;
16510 : }
16511 40 : tree _r;
16512 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16513 40 : if (TREE_SIDE_EFFECTS (captures[0]))
16514 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16515 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
16516 40 : return _r;
16517 : }
16518 0 : next_after_fail1684:;
16519 : }
16520 : else
16521 : {
16522 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1685;
16523 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1685;
16524 4 : {
16525 4 : tree _r;
16526 4 : _r = build_zero_cst (type);
16527 4 : if (TREE_SIDE_EFFECTS (captures[0]))
16528 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16529 4 : if (TREE_SIDE_EFFECTS (captures[1]))
16530 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16531 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
16532 4 : return _r;
16533 : }
16534 0 : next_after_fail1685:;
16535 : }
16536 : }
16537 : }
16538 : break;
16539 : }
16540 5411 : CASE_CONVERT:
16541 5411 : {
16542 5411 : tree _q30 = TREE_OPERAND (_q20, 0);
16543 5411 : switch (TREE_CODE (_q21))
16544 : {
16545 5307 : case INTEGER_CST:
16546 5307 : {
16547 5307 : switch (TREE_CODE (_p1))
16548 : {
16549 5307 : case INTEGER_CST:
16550 5307 : {
16551 5307 : {
16552 5307 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16553 5307 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16554 5307 : if (res) return res;
16555 : }
16556 4651 : break;
16557 : }
16558 : default:;
16559 : }
16560 : break;
16561 : }
16562 : default:;
16563 : }
16564 : break;
16565 : }
16566 33668 : default:;
16567 : }
16568 33668 : switch (TREE_CODE (_q21))
16569 : {
16570 28044 : case INTEGER_CST:
16571 28044 : {
16572 28044 : switch (TREE_CODE (_p1))
16573 : {
16574 28007 : case INTEGER_CST:
16575 28007 : {
16576 28007 : {
16577 28007 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
16578 28007 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16579 28007 : if (res) return res;
16580 : }
16581 17191 : break;
16582 : }
16583 : default:;
16584 : }
16585 : break;
16586 : }
16587 : default:;
16588 : }
16589 : break;
16590 : }
16591 1973277 : CASE_CONVERT:
16592 1973277 : {
16593 1973277 : tree _q20 = TREE_OPERAND (_p0, 0);
16594 1973277 : switch (TREE_CODE (_q20))
16595 : {
16596 74787 : case LSHIFT_EXPR:
16597 74787 : {
16598 74787 : tree _q30 = TREE_OPERAND (_q20, 0);
16599 74787 : tree _q31 = TREE_OPERAND (_q20, 1);
16600 74787 : switch (TREE_CODE (_q30))
16601 : {
16602 147 : CASE_CONVERT:
16603 147 : {
16604 147 : tree _q40 = TREE_OPERAND (_q30, 0);
16605 147 : switch (TREE_CODE (_q31))
16606 : {
16607 79 : case INTEGER_CST:
16608 79 : {
16609 79 : switch (TREE_CODE (_p1))
16610 : {
16611 79 : case INTEGER_CST:
16612 79 : {
16613 79 : {
16614 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16615 79 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16616 79 : if (res) return res;
16617 : }
16618 79 : break;
16619 : }
16620 : default:;
16621 : }
16622 : break;
16623 : }
16624 : default:;
16625 : }
16626 : break;
16627 : }
16628 74787 : default:;
16629 : }
16630 74787 : switch (TREE_CODE (_q31))
16631 : {
16632 79 : case INTEGER_CST:
16633 79 : {
16634 79 : switch (TREE_CODE (_p1))
16635 : {
16636 79 : case INTEGER_CST:
16637 79 : {
16638 79 : {
16639 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16640 79 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16641 79 : if (res) return res;
16642 : }
16643 79 : break;
16644 : }
16645 : default:;
16646 : }
16647 : break;
16648 : }
16649 : default:;
16650 : }
16651 : break;
16652 : }
16653 112558 : case RSHIFT_EXPR:
16654 112558 : {
16655 112558 : tree _q30 = TREE_OPERAND (_q20, 0);
16656 112558 : tree _q31 = TREE_OPERAND (_q20, 1);
16657 112558 : switch (TREE_CODE (_q30))
16658 : {
16659 32578 : CASE_CONVERT:
16660 32578 : {
16661 32578 : tree _q40 = TREE_OPERAND (_q30, 0);
16662 32578 : switch (TREE_CODE (_q31))
16663 : {
16664 32451 : case INTEGER_CST:
16665 32451 : {
16666 32451 : switch (TREE_CODE (_p1))
16667 : {
16668 32451 : case INTEGER_CST:
16669 32451 : {
16670 32451 : {
16671 32451 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16672 32451 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16673 32451 : if (res) return res;
16674 : }
16675 32394 : break;
16676 : }
16677 : default:;
16678 : }
16679 : break;
16680 : }
16681 32521 : default:;
16682 : }
16683 32521 : switch (TREE_CODE (_q40))
16684 : {
16685 2 : case CALL_EXPR:
16686 2 : switch (get_call_combined_fn (_q40))
16687 : {
16688 0 : case CFN_BUILT_IN_BSWAP128:
16689 0 : if (call_expr_nargs (_q40) == 1)
16690 : {
16691 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16692 0 : switch (TREE_CODE (_q31))
16693 : {
16694 0 : case INTEGER_CST:
16695 0 : {
16696 0 : switch (TREE_CODE (_p1))
16697 : {
16698 0 : case INTEGER_CST:
16699 0 : {
16700 0 : {
16701 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16702 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16703 0 : if (res) return res;
16704 : }
16705 0 : break;
16706 : }
16707 : default:;
16708 : }
16709 : break;
16710 : }
16711 : default:;
16712 : }
16713 : }
16714 : break;
16715 2 : case CFN_BUILT_IN_BSWAP16:
16716 2 : if (call_expr_nargs (_q40) == 1)
16717 : {
16718 2 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16719 2 : switch (TREE_CODE (_q31))
16720 : {
16721 2 : case INTEGER_CST:
16722 2 : {
16723 2 : switch (TREE_CODE (_p1))
16724 : {
16725 2 : case INTEGER_CST:
16726 2 : {
16727 2 : {
16728 2 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16729 2 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16730 2 : if (res) return res;
16731 : }
16732 0 : break;
16733 : }
16734 : default:;
16735 : }
16736 : break;
16737 : }
16738 : default:;
16739 : }
16740 : }
16741 : break;
16742 0 : case CFN_BUILT_IN_BSWAP32:
16743 0 : if (call_expr_nargs (_q40) == 1)
16744 : {
16745 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16746 0 : switch (TREE_CODE (_q31))
16747 : {
16748 0 : case INTEGER_CST:
16749 0 : {
16750 0 : switch (TREE_CODE (_p1))
16751 : {
16752 0 : case INTEGER_CST:
16753 0 : {
16754 0 : {
16755 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16756 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16757 0 : if (res) return res;
16758 : }
16759 0 : break;
16760 : }
16761 : default:;
16762 : }
16763 : break;
16764 : }
16765 : default:;
16766 : }
16767 : }
16768 : break;
16769 0 : case CFN_BUILT_IN_BSWAP64:
16770 0 : if (call_expr_nargs (_q40) == 1)
16771 : {
16772 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16773 0 : switch (TREE_CODE (_q31))
16774 : {
16775 0 : case INTEGER_CST:
16776 0 : {
16777 0 : switch (TREE_CODE (_p1))
16778 : {
16779 0 : case INTEGER_CST:
16780 0 : {
16781 0 : {
16782 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16783 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16784 0 : if (res) return res;
16785 : }
16786 0 : break;
16787 : }
16788 : default:;
16789 : }
16790 : break;
16791 : }
16792 : default:;
16793 : }
16794 : }
16795 : break;
16796 : default:;
16797 : }
16798 : break;
16799 : default:;
16800 : }
16801 : break;
16802 : }
16803 112499 : default:;
16804 : }
16805 112499 : switch (TREE_CODE (_q31))
16806 : {
16807 39017 : case INTEGER_CST:
16808 39017 : {
16809 39017 : switch (TREE_CODE (_p1))
16810 : {
16811 38945 : case INTEGER_CST:
16812 38945 : {
16813 38945 : {
16814 38945 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16815 38945 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16816 38945 : if (res) return res;
16817 : }
16818 38873 : break;
16819 : }
16820 : default:;
16821 : }
16822 : break;
16823 : }
16824 112427 : default:;
16825 : }
16826 112427 : switch (TREE_CODE (_q30))
16827 : {
16828 80 : case CALL_EXPR:
16829 80 : switch (get_call_combined_fn (_q30))
16830 : {
16831 0 : case CFN_BUILT_IN_BSWAP128:
16832 0 : if (call_expr_nargs (_q30) == 1)
16833 : {
16834 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16835 0 : switch (TREE_CODE (_q31))
16836 : {
16837 0 : case INTEGER_CST:
16838 0 : {
16839 0 : switch (TREE_CODE (_p1))
16840 : {
16841 0 : case INTEGER_CST:
16842 0 : {
16843 0 : {
16844 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16845 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16846 0 : if (res) return res;
16847 : }
16848 0 : break;
16849 : }
16850 : default:;
16851 : }
16852 : break;
16853 : }
16854 : default:;
16855 : }
16856 : }
16857 : break;
16858 9 : case CFN_BUILT_IN_BSWAP16:
16859 9 : if (call_expr_nargs (_q30) == 1)
16860 : {
16861 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16862 9 : switch (TREE_CODE (_q31))
16863 : {
16864 9 : case INTEGER_CST:
16865 9 : {
16866 9 : switch (TREE_CODE (_p1))
16867 : {
16868 9 : case INTEGER_CST:
16869 9 : {
16870 9 : {
16871 9 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16872 9 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16873 9 : if (res) return res;
16874 : }
16875 0 : break;
16876 : }
16877 : default:;
16878 : }
16879 : break;
16880 : }
16881 : default:;
16882 : }
16883 : }
16884 : break;
16885 0 : case CFN_BUILT_IN_BSWAP32:
16886 0 : if (call_expr_nargs (_q30) == 1)
16887 : {
16888 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16889 0 : switch (TREE_CODE (_q31))
16890 : {
16891 0 : case INTEGER_CST:
16892 0 : {
16893 0 : switch (TREE_CODE (_p1))
16894 : {
16895 0 : case INTEGER_CST:
16896 0 : {
16897 0 : {
16898 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16899 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16900 0 : if (res) return res;
16901 : }
16902 0 : break;
16903 : }
16904 : default:;
16905 : }
16906 : break;
16907 : }
16908 : default:;
16909 : }
16910 : }
16911 : break;
16912 71 : case CFN_BUILT_IN_BSWAP64:
16913 71 : if (call_expr_nargs (_q30) == 1)
16914 : {
16915 71 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16916 71 : switch (TREE_CODE (_q31))
16917 : {
16918 70 : case INTEGER_CST:
16919 70 : {
16920 70 : switch (TREE_CODE (_p1))
16921 : {
16922 70 : case INTEGER_CST:
16923 70 : {
16924 70 : {
16925 70 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16926 70 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16927 70 : if (res) return res;
16928 : }
16929 0 : break;
16930 : }
16931 : default:;
16932 : }
16933 : break;
16934 : }
16935 : default:;
16936 : }
16937 : }
16938 : break;
16939 : default:;
16940 : }
16941 : break;
16942 : default:;
16943 : }
16944 : break;
16945 : }
16946 29816 : case CALL_EXPR:
16947 29816 : switch (get_call_combined_fn (_q20))
16948 : {
16949 0 : case CFN_BUILT_IN_BSWAP128:
16950 0 : if (call_expr_nargs (_q20) == 1)
16951 : {
16952 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16953 0 : switch (TREE_CODE (_p1))
16954 : {
16955 0 : case INTEGER_CST:
16956 0 : {
16957 0 : {
16958 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16959 0 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16960 0 : if (res) return res;
16961 : }
16962 0 : break;
16963 : }
16964 : default:;
16965 : }
16966 : }
16967 : break;
16968 10 : case CFN_BUILT_IN_BSWAP16:
16969 10 : if (call_expr_nargs (_q20) == 1)
16970 : {
16971 10 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16972 10 : switch (TREE_CODE (_p1))
16973 : {
16974 10 : case INTEGER_CST:
16975 10 : {
16976 10 : {
16977 10 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16978 10 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16979 10 : if (res) return res;
16980 : }
16981 0 : break;
16982 : }
16983 : default:;
16984 : }
16985 : }
16986 : break;
16987 4 : case CFN_BUILT_IN_BSWAP32:
16988 4 : if (call_expr_nargs (_q20) == 1)
16989 : {
16990 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16991 4 : switch (TREE_CODE (_p1))
16992 : {
16993 4 : case INTEGER_CST:
16994 4 : {
16995 4 : {
16996 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16997 4 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16998 4 : if (res) return res;
16999 : }
17000 0 : break;
17001 : }
17002 : default:;
17003 : }
17004 : }
17005 : break;
17006 4 : case CFN_BUILT_IN_BSWAP64:
17007 4 : if (call_expr_nargs (_q20) == 1)
17008 : {
17009 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17010 4 : switch (TREE_CODE (_p1))
17011 : {
17012 4 : case INTEGER_CST:
17013 4 : {
17014 4 : {
17015 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17016 4 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17017 4 : if (res) return res;
17018 : }
17019 0 : break;
17020 : }
17021 : default:;
17022 : }
17023 : }
17024 : break;
17025 : default:;
17026 : }
17027 : break;
17028 : default:;
17029 : }
17030 : break;
17031 : }
17032 79781 : case RSHIFT_EXPR:
17033 79781 : {
17034 79781 : tree _q20 = TREE_OPERAND (_p0, 0);
17035 79781 : tree _q21 = TREE_OPERAND (_p0, 1);
17036 79781 : switch (TREE_CODE (_q20))
17037 : {
17038 28721 : CASE_CONVERT:
17039 28721 : {
17040 28721 : tree _q30 = TREE_OPERAND (_q20, 0);
17041 28721 : switch (TREE_CODE (_q21))
17042 : {
17043 25458 : case INTEGER_CST:
17044 25458 : {
17045 25458 : switch (TREE_CODE (_p1))
17046 : {
17047 25458 : case INTEGER_CST:
17048 25458 : {
17049 25458 : {
17050 25458 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
17051 25458 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
17052 25458 : if (res) return res;
17053 : }
17054 25134 : break;
17055 : }
17056 : default:;
17057 : }
17058 : break;
17059 : }
17060 28397 : default:;
17061 : }
17062 28397 : switch (TREE_CODE (_q30))
17063 : {
17064 22 : case CALL_EXPR:
17065 22 : switch (get_call_combined_fn (_q30))
17066 : {
17067 0 : case CFN_BUILT_IN_BSWAP128:
17068 0 : if (call_expr_nargs (_q30) == 1)
17069 : {
17070 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17071 0 : switch (TREE_CODE (_q21))
17072 : {
17073 0 : case INTEGER_CST:
17074 0 : {
17075 0 : switch (TREE_CODE (_p1))
17076 : {
17077 0 : case INTEGER_CST:
17078 0 : {
17079 0 : {
17080 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17081 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17082 0 : if (res) return res;
17083 : }
17084 0 : break;
17085 : }
17086 : default:;
17087 : }
17088 : break;
17089 : }
17090 : default:;
17091 : }
17092 : }
17093 : break;
17094 1 : case CFN_BUILT_IN_BSWAP16:
17095 1 : if (call_expr_nargs (_q30) == 1)
17096 : {
17097 1 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17098 1 : switch (TREE_CODE (_q21))
17099 : {
17100 0 : case INTEGER_CST:
17101 0 : {
17102 0 : switch (TREE_CODE (_p1))
17103 : {
17104 0 : case INTEGER_CST:
17105 0 : {
17106 0 : {
17107 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17108 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17109 0 : if (res) return res;
17110 : }
17111 0 : break;
17112 : }
17113 : default:;
17114 : }
17115 : break;
17116 : }
17117 : default:;
17118 : }
17119 : }
17120 : break;
17121 9 : case CFN_BUILT_IN_BSWAP32:
17122 9 : if (call_expr_nargs (_q30) == 1)
17123 : {
17124 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17125 9 : switch (TREE_CODE (_q21))
17126 : {
17127 9 : case INTEGER_CST:
17128 9 : {
17129 9 : switch (TREE_CODE (_p1))
17130 : {
17131 9 : case INTEGER_CST:
17132 9 : {
17133 9 : {
17134 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17135 9 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17136 9 : if (res) return res;
17137 : }
17138 0 : break;
17139 : }
17140 : default:;
17141 : }
17142 : break;
17143 : }
17144 : default:;
17145 : }
17146 : }
17147 : break;
17148 12 : case CFN_BUILT_IN_BSWAP64:
17149 12 : if (call_expr_nargs (_q30) == 1)
17150 : {
17151 12 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17152 12 : switch (TREE_CODE (_q21))
17153 : {
17154 12 : case INTEGER_CST:
17155 12 : {
17156 12 : switch (TREE_CODE (_p1))
17157 : {
17158 12 : case INTEGER_CST:
17159 12 : {
17160 12 : {
17161 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17162 12 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17163 12 : if (res) return res;
17164 : }
17165 0 : break;
17166 : }
17167 : default:;
17168 : }
17169 : break;
17170 : }
17171 : default:;
17172 : }
17173 : }
17174 : break;
17175 : default:;
17176 : }
17177 : break;
17178 : default:;
17179 : }
17180 : break;
17181 : }
17182 79436 : default:;
17183 : }
17184 79436 : switch (TREE_CODE (_q21))
17185 : {
17186 34593 : case INTEGER_CST:
17187 34593 : {
17188 34593 : switch (TREE_CODE (_p1))
17189 : {
17190 34448 : case INTEGER_CST:
17191 34448 : {
17192 34448 : {
17193 34448 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
17194 34448 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
17195 34448 : if (res) return res;
17196 : }
17197 32605 : break;
17198 : }
17199 : default:;
17200 : }
17201 : break;
17202 : }
17203 77593 : default:;
17204 : }
17205 77593 : switch (TREE_CODE (_q20))
17206 : {
17207 140 : case CALL_EXPR:
17208 140 : switch (get_call_combined_fn (_q20))
17209 : {
17210 0 : case CFN_BUILT_IN_BSWAP128:
17211 0 : if (call_expr_nargs (_q20) == 1)
17212 : {
17213 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17214 0 : switch (TREE_CODE (_q21))
17215 : {
17216 0 : case INTEGER_CST:
17217 0 : {
17218 0 : switch (TREE_CODE (_p1))
17219 : {
17220 0 : case INTEGER_CST:
17221 0 : {
17222 0 : {
17223 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17224 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17225 0 : if (res) return res;
17226 : }
17227 0 : break;
17228 : }
17229 : default:;
17230 : }
17231 : break;
17232 : }
17233 : default:;
17234 : }
17235 : }
17236 : break;
17237 0 : case CFN_BUILT_IN_BSWAP16:
17238 0 : if (call_expr_nargs (_q20) == 1)
17239 : {
17240 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17241 0 : switch (TREE_CODE (_q21))
17242 : {
17243 0 : case INTEGER_CST:
17244 0 : {
17245 0 : switch (TREE_CODE (_p1))
17246 : {
17247 0 : case INTEGER_CST:
17248 0 : {
17249 0 : {
17250 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17251 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17252 0 : if (res) return res;
17253 : }
17254 0 : break;
17255 : }
17256 : default:;
17257 : }
17258 : break;
17259 : }
17260 : default:;
17261 : }
17262 : }
17263 : break;
17264 60 : case CFN_BUILT_IN_BSWAP32:
17265 60 : if (call_expr_nargs (_q20) == 1)
17266 : {
17267 60 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17268 60 : switch (TREE_CODE (_q21))
17269 : {
17270 59 : case INTEGER_CST:
17271 59 : {
17272 59 : switch (TREE_CODE (_p1))
17273 : {
17274 59 : case INTEGER_CST:
17275 59 : {
17276 59 : {
17277 59 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17278 59 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17279 59 : if (res) return res;
17280 : }
17281 0 : break;
17282 : }
17283 : default:;
17284 : }
17285 : break;
17286 : }
17287 : default:;
17288 : }
17289 : }
17290 : break;
17291 73 : case CFN_BUILT_IN_BSWAP64:
17292 73 : if (call_expr_nargs (_q20) == 1)
17293 : {
17294 73 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17295 73 : switch (TREE_CODE (_q21))
17296 : {
17297 73 : case INTEGER_CST:
17298 73 : {
17299 73 : switch (TREE_CODE (_p1))
17300 : {
17301 73 : case INTEGER_CST:
17302 73 : {
17303 73 : {
17304 73 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17305 73 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17306 73 : if (res) return res;
17307 : }
17308 0 : break;
17309 : }
17310 : default:;
17311 : }
17312 : break;
17313 : }
17314 : default:;
17315 : }
17316 : }
17317 : break;
17318 : default:;
17319 : }
17320 : break;
17321 : default:;
17322 : }
17323 : break;
17324 : }
17325 65 : case VEC_COND_EXPR:
17326 65 : {
17327 65 : tree _q20 = TREE_OPERAND (_p0, 0);
17328 65 : tree _q21 = TREE_OPERAND (_p0, 1);
17329 65 : tree _q22 = TREE_OPERAND (_p0, 2);
17330 65 : switch (TREE_CODE (_p1))
17331 : {
17332 47 : case VEC_COND_EXPR:
17333 47 : {
17334 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17335 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17336 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17337 47 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17338 : {
17339 0 : {
17340 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
17341 0 : if (VECTOR_TYPE_P (type)
17342 0 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
17343 : || types_match (type, TREE_TYPE (captures[2]))
17344 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
17345 : || (optimize_vectors_before_lowering_p ()
17346 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
17347 : )
17348 : {
17349 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1686;
17350 0 : {
17351 0 : tree res_op0;
17352 0 : res_op0 = captures[1];
17353 0 : tree res_op1;
17354 0 : {
17355 0 : tree _o1[2], _r1;
17356 0 : _o1[0] = captures[2];
17357 0 : _o1[1] = captures[5];
17358 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17359 0 : if (EXPR_P (_r1))
17360 0 : goto next_after_fail1686;
17361 0 : res_op1 = _r1;
17362 : }
17363 0 : tree res_op2;
17364 0 : {
17365 0 : tree _o1[2], _r1;
17366 0 : _o1[0] = captures[3];
17367 0 : _o1[1] = captures[6];
17368 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17369 0 : if (EXPR_P (_r1))
17370 0 : goto next_after_fail1686;
17371 0 : res_op2 = _r1;
17372 : }
17373 0 : tree _r;
17374 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17375 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
17376 0 : return _r;
17377 : }
17378 0 : next_after_fail1686:;
17379 : }
17380 : }
17381 : }
17382 : break;
17383 : }
17384 65 : default:;
17385 : }
17386 65 : if (integer_minus_onep (_q21))
17387 : {
17388 65 : if (integer_zerop (_q22))
17389 : {
17390 65 : switch (TREE_CODE (_p1))
17391 : {
17392 47 : case VEC_COND_EXPR:
17393 47 : {
17394 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17395 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17396 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17397 47 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
17398 : {
17399 47 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
17400 : {
17401 47 : {
17402 47 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17403 47 : const enum tree_code lop = BIT_AND_EXPR;
17404 47 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17405 : )
17406 : {
17407 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1687;
17408 47 : {
17409 47 : tree res_op0;
17410 47 : {
17411 47 : tree _o1[2], _r1;
17412 47 : _o1[0] = captures[0];
17413 47 : _o1[1] = captures[3];
17414 47 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17415 47 : res_op0 = _r1;
17416 : }
17417 47 : tree res_op1;
17418 47 : res_op1 = captures[1];
17419 47 : tree res_op2;
17420 47 : res_op2 = captures[2];
17421 47 : tree _r;
17422 47 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17423 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17424 47 : return _r;
17425 : }
17426 0 : next_after_fail1687:;
17427 : }
17428 : }
17429 0 : {
17430 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17431 0 : const enum tree_code lop = BIT_AND_EXPR;
17432 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17433 : )
17434 : {
17435 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1688;
17436 0 : {
17437 0 : tree res_op0;
17438 0 : {
17439 0 : tree _o1[2], _r1;
17440 0 : _o1[0] = captures[0];
17441 0 : _o1[1] = captures[3];
17442 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17443 0 : res_op0 = _r1;
17444 : }
17445 0 : tree res_op1;
17446 0 : res_op1 = captures[1];
17447 0 : tree res_op2;
17448 0 : res_op2 = captures[2];
17449 0 : tree _r;
17450 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17451 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17452 0 : return _r;
17453 : }
17454 0 : next_after_fail1688:;
17455 : }
17456 : }
17457 0 : {
17458 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17459 0 : const enum tree_code lop = BIT_AND_EXPR;
17460 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17461 : )
17462 : {
17463 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1689;
17464 0 : {
17465 0 : tree res_op0;
17466 0 : {
17467 0 : tree _o1[2], _r1;
17468 0 : _o1[0] = captures[0];
17469 0 : _o1[1] = captures[3];
17470 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17471 0 : res_op0 = _r1;
17472 : }
17473 0 : tree res_op1;
17474 0 : res_op1 = captures[1];
17475 0 : tree res_op2;
17476 0 : res_op2 = captures[2];
17477 0 : tree _r;
17478 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17479 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17480 0 : return _r;
17481 : }
17482 0 : next_after_fail1689:;
17483 : }
17484 : }
17485 0 : {
17486 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17487 0 : const enum tree_code lop = BIT_AND_EXPR;
17488 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17489 : )
17490 : {
17491 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1690;
17492 0 : {
17493 0 : tree res_op0;
17494 0 : {
17495 0 : tree _o1[2], _r1;
17496 0 : _o1[0] = captures[0];
17497 0 : _o1[1] = captures[3];
17498 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17499 0 : res_op0 = _r1;
17500 : }
17501 0 : tree res_op1;
17502 0 : res_op1 = captures[1];
17503 0 : tree res_op2;
17504 0 : res_op2 = captures[2];
17505 0 : tree _r;
17506 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17507 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17508 0 : return _r;
17509 : }
17510 0 : next_after_fail1690:;
17511 : }
17512 : }
17513 0 : {
17514 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17515 0 : const enum tree_code lop = BIT_AND_EXPR;
17516 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17517 : )
17518 : {
17519 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1691;
17520 0 : {
17521 0 : tree res_op0;
17522 0 : {
17523 0 : tree _o1[2], _r1;
17524 0 : _o1[0] = captures[0];
17525 0 : _o1[1] = captures[3];
17526 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17527 0 : res_op0 = _r1;
17528 : }
17529 0 : tree res_op1;
17530 0 : res_op1 = captures[1];
17531 0 : tree res_op2;
17532 0 : res_op2 = captures[2];
17533 0 : tree _r;
17534 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17535 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17536 0 : return _r;
17537 : }
17538 0 : next_after_fail1691:;
17539 : }
17540 : }
17541 0 : {
17542 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17543 0 : const enum tree_code lop = BIT_AND_EXPR;
17544 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17545 : )
17546 : {
17547 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1692;
17548 0 : {
17549 0 : tree res_op0;
17550 0 : {
17551 0 : tree _o1[2], _r1;
17552 0 : _o1[0] = captures[0];
17553 0 : _o1[1] = captures[3];
17554 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17555 0 : res_op0 = _r1;
17556 : }
17557 0 : tree res_op1;
17558 0 : res_op1 = captures[1];
17559 0 : tree res_op2;
17560 0 : res_op2 = captures[2];
17561 0 : tree _r;
17562 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17563 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17564 0 : return _r;
17565 : }
17566 0 : next_after_fail1692:;
17567 : }
17568 : }
17569 0 : {
17570 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17571 0 : const enum tree_code lop = BIT_AND_EXPR;
17572 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17573 : )
17574 : {
17575 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1693;
17576 0 : {
17577 0 : tree res_op0;
17578 0 : {
17579 0 : tree _o1[2], _r1;
17580 0 : _o1[0] = captures[0];
17581 0 : _o1[1] = captures[3];
17582 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17583 0 : res_op0 = _r1;
17584 : }
17585 0 : tree res_op1;
17586 0 : res_op1 = captures[1];
17587 0 : tree res_op2;
17588 0 : res_op2 = captures[2];
17589 0 : tree _r;
17590 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17591 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17592 0 : return _r;
17593 : }
17594 0 : next_after_fail1693:;
17595 : }
17596 : }
17597 0 : {
17598 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17599 0 : const enum tree_code lop = BIT_AND_EXPR;
17600 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17601 : )
17602 : {
17603 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1694;
17604 0 : {
17605 0 : tree res_op0;
17606 0 : {
17607 0 : tree _o1[2], _r1;
17608 0 : _o1[0] = captures[0];
17609 0 : _o1[1] = captures[3];
17610 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17611 0 : res_op0 = _r1;
17612 : }
17613 0 : tree res_op1;
17614 0 : res_op1 = captures[1];
17615 0 : tree res_op2;
17616 0 : res_op2 = captures[2];
17617 0 : tree _r;
17618 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17619 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17620 0 : return _r;
17621 : }
17622 0 : next_after_fail1694:;
17623 : }
17624 : }
17625 0 : {
17626 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17627 0 : const enum tree_code lop = BIT_AND_EXPR;
17628 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17629 : )
17630 : {
17631 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1695;
17632 0 : {
17633 0 : tree res_op0;
17634 0 : {
17635 0 : tree _o1[2], _r1;
17636 0 : _o1[0] = captures[0];
17637 0 : _o1[1] = captures[3];
17638 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17639 0 : res_op0 = _r1;
17640 : }
17641 0 : tree res_op1;
17642 0 : res_op1 = captures[1];
17643 0 : tree res_op2;
17644 0 : res_op2 = captures[2];
17645 0 : tree _r;
17646 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17647 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17648 0 : return _r;
17649 : }
17650 0 : next_after_fail1695:;
17651 : }
17652 : }
17653 0 : {
17654 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17655 0 : const enum tree_code lop = BIT_AND_EXPR;
17656 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17657 : )
17658 : {
17659 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1696;
17660 0 : {
17661 0 : tree res_op0;
17662 0 : {
17663 0 : tree _o1[2], _r1;
17664 0 : _o1[0] = captures[0];
17665 0 : _o1[1] = captures[3];
17666 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17667 0 : res_op0 = _r1;
17668 : }
17669 0 : tree res_op1;
17670 0 : res_op1 = captures[1];
17671 0 : tree res_op2;
17672 0 : res_op2 = captures[2];
17673 0 : tree _r;
17674 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17675 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17676 0 : return _r;
17677 : }
17678 0 : next_after_fail1696:;
17679 : }
17680 : }
17681 0 : {
17682 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17683 0 : const enum tree_code lop = BIT_AND_EXPR;
17684 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17685 : )
17686 : {
17687 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1697;
17688 0 : {
17689 0 : tree res_op0;
17690 0 : {
17691 0 : tree _o1[2], _r1;
17692 0 : _o1[0] = captures[0];
17693 0 : _o1[1] = captures[3];
17694 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17695 0 : res_op0 = _r1;
17696 : }
17697 0 : tree res_op1;
17698 0 : res_op1 = captures[1];
17699 0 : tree res_op2;
17700 0 : res_op2 = captures[2];
17701 0 : tree _r;
17702 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17703 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17704 0 : return _r;
17705 : }
17706 0 : next_after_fail1697:;
17707 : }
17708 : }
17709 0 : {
17710 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17711 0 : const enum tree_code lop = BIT_AND_EXPR;
17712 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17713 : )
17714 : {
17715 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1698;
17716 0 : {
17717 0 : tree res_op0;
17718 0 : {
17719 0 : tree _o1[2], _r1;
17720 0 : _o1[0] = captures[0];
17721 0 : _o1[1] = captures[3];
17722 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17723 0 : res_op0 = _r1;
17724 : }
17725 0 : tree res_op1;
17726 0 : res_op1 = captures[1];
17727 0 : tree res_op2;
17728 0 : res_op2 = captures[2];
17729 0 : tree _r;
17730 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17731 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17732 0 : return _r;
17733 : }
17734 0 : next_after_fail1698:;
17735 : }
17736 : }
17737 0 : {
17738 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17739 0 : const enum tree_code lop = BIT_AND_EXPR;
17740 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17741 : )
17742 : {
17743 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1699;
17744 0 : {
17745 0 : tree res_op0;
17746 0 : {
17747 0 : tree _o1[2], _r1;
17748 0 : _o1[0] = captures[0];
17749 0 : _o1[1] = captures[3];
17750 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17751 0 : res_op0 = _r1;
17752 : }
17753 0 : tree res_op1;
17754 0 : res_op1 = captures[1];
17755 0 : tree res_op2;
17756 0 : res_op2 = captures[2];
17757 0 : tree _r;
17758 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17759 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17760 0 : return _r;
17761 : }
17762 0 : next_after_fail1699:;
17763 : }
17764 : }
17765 0 : {
17766 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17767 0 : const enum tree_code lop = BIT_AND_EXPR;
17768 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17769 : )
17770 : {
17771 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1700;
17772 0 : {
17773 0 : tree res_op0;
17774 0 : {
17775 0 : tree _o1[2], _r1;
17776 0 : _o1[0] = captures[0];
17777 0 : _o1[1] = captures[3];
17778 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17779 0 : res_op0 = _r1;
17780 : }
17781 0 : tree res_op1;
17782 0 : res_op1 = captures[1];
17783 0 : tree res_op2;
17784 0 : res_op2 = captures[2];
17785 0 : tree _r;
17786 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17787 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17788 0 : return _r;
17789 : }
17790 0 : next_after_fail1700:;
17791 : }
17792 : }
17793 0 : {
17794 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17795 0 : const enum tree_code lop = BIT_AND_EXPR;
17796 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17797 : )
17798 : {
17799 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1701;
17800 0 : {
17801 0 : tree res_op0;
17802 0 : {
17803 0 : tree _o1[2], _r1;
17804 0 : _o1[0] = captures[0];
17805 0 : _o1[1] = captures[3];
17806 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17807 0 : res_op0 = _r1;
17808 : }
17809 0 : tree res_op1;
17810 0 : res_op1 = captures[1];
17811 0 : tree res_op2;
17812 0 : res_op2 = captures[2];
17813 0 : tree _r;
17814 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17815 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17816 0 : return _r;
17817 : }
17818 0 : next_after_fail1701:;
17819 : }
17820 : }
17821 0 : {
17822 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17823 0 : const enum tree_code lop = BIT_AND_EXPR;
17824 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17825 : )
17826 : {
17827 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1702;
17828 0 : {
17829 0 : tree res_op0;
17830 0 : {
17831 0 : tree _o1[2], _r1;
17832 0 : _o1[0] = captures[0];
17833 0 : _o1[1] = captures[3];
17834 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17835 0 : res_op0 = _r1;
17836 : }
17837 0 : tree res_op1;
17838 0 : res_op1 = captures[1];
17839 0 : tree res_op2;
17840 0 : res_op2 = captures[2];
17841 0 : tree _r;
17842 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17843 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17844 0 : return _r;
17845 : }
17846 0 : next_after_fail1702:;
17847 : }
17848 : }
17849 0 : {
17850 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17851 0 : const enum tree_code lop = BIT_AND_EXPR;
17852 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17853 : )
17854 : {
17855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1703;
17856 0 : {
17857 0 : tree res_op0;
17858 0 : {
17859 0 : tree _o1[2], _r1;
17860 0 : _o1[0] = captures[0];
17861 0 : _o1[1] = captures[3];
17862 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17863 0 : res_op0 = _r1;
17864 : }
17865 0 : tree res_op1;
17866 0 : res_op1 = captures[1];
17867 0 : tree res_op2;
17868 0 : res_op2 = captures[2];
17869 0 : tree _r;
17870 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17871 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17872 0 : return _r;
17873 : }
17874 0 : next_after_fail1703:;
17875 : }
17876 : }
17877 0 : {
17878 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17879 0 : const enum tree_code lop = BIT_AND_EXPR;
17880 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17881 : )
17882 : {
17883 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1704;
17884 0 : {
17885 0 : tree res_op0;
17886 0 : {
17887 0 : tree _o1[2], _r1;
17888 0 : _o1[0] = captures[0];
17889 0 : _o1[1] = captures[3];
17890 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17891 0 : res_op0 = _r1;
17892 : }
17893 0 : tree res_op1;
17894 0 : res_op1 = captures[1];
17895 0 : tree res_op2;
17896 0 : res_op2 = captures[2];
17897 0 : tree _r;
17898 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17899 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17900 0 : return _r;
17901 : }
17902 0 : next_after_fail1704:;
17903 : }
17904 : }
17905 0 : {
17906 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17907 0 : const enum tree_code lop = BIT_AND_EXPR;
17908 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17909 : )
17910 : {
17911 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1705;
17912 0 : {
17913 0 : tree res_op0;
17914 0 : {
17915 0 : tree _o1[2], _r1;
17916 0 : _o1[0] = captures[0];
17917 0 : _o1[1] = captures[3];
17918 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17919 0 : res_op0 = _r1;
17920 : }
17921 0 : tree res_op1;
17922 0 : res_op1 = captures[1];
17923 0 : tree res_op2;
17924 0 : res_op2 = captures[2];
17925 0 : tree _r;
17926 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17927 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17928 0 : return _r;
17929 : }
17930 0 : next_after_fail1705:;
17931 : }
17932 : }
17933 0 : {
17934 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17935 0 : const enum tree_code lop = BIT_AND_EXPR;
17936 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17937 : )
17938 : {
17939 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1706;
17940 0 : {
17941 0 : tree res_op0;
17942 0 : {
17943 0 : tree _o1[2], _r1;
17944 0 : _o1[0] = captures[0];
17945 0 : _o1[1] = captures[3];
17946 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17947 0 : res_op0 = _r1;
17948 : }
17949 0 : tree res_op1;
17950 0 : res_op1 = captures[1];
17951 0 : tree res_op2;
17952 0 : res_op2 = captures[2];
17953 0 : tree _r;
17954 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17955 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17956 0 : return _r;
17957 : }
17958 0 : next_after_fail1706:;
17959 : }
17960 : }
17961 0 : {
17962 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17963 0 : const enum tree_code lop = BIT_AND_EXPR;
17964 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17965 : )
17966 : {
17967 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1707;
17968 0 : {
17969 0 : tree res_op0;
17970 0 : {
17971 0 : tree _o1[2], _r1;
17972 0 : _o1[0] = captures[0];
17973 0 : _o1[1] = captures[3];
17974 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17975 0 : res_op0 = _r1;
17976 : }
17977 0 : tree res_op1;
17978 0 : res_op1 = captures[1];
17979 0 : tree res_op2;
17980 0 : res_op2 = captures[2];
17981 0 : tree _r;
17982 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17983 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
17984 0 : return _r;
17985 : }
17986 0 : next_after_fail1707:;
17987 : }
17988 : }
17989 0 : {
17990 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17991 0 : const enum tree_code lop = BIT_AND_EXPR;
17992 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17993 : )
17994 : {
17995 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1708;
17996 0 : {
17997 0 : tree res_op0;
17998 0 : {
17999 0 : tree _o1[2], _r1;
18000 0 : _o1[0] = captures[0];
18001 0 : _o1[1] = captures[3];
18002 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18003 0 : res_op0 = _r1;
18004 : }
18005 0 : tree res_op1;
18006 0 : res_op1 = captures[1];
18007 0 : tree res_op2;
18008 0 : res_op2 = captures[2];
18009 0 : tree _r;
18010 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18011 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18012 0 : return _r;
18013 : }
18014 0 : next_after_fail1708:;
18015 : }
18016 : }
18017 0 : {
18018 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18019 0 : const enum tree_code lop = BIT_AND_EXPR;
18020 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18021 : )
18022 : {
18023 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1709;
18024 0 : {
18025 0 : tree res_op0;
18026 0 : {
18027 0 : tree _o1[2], _r1;
18028 0 : _o1[0] = captures[0];
18029 0 : _o1[1] = captures[3];
18030 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18031 0 : res_op0 = _r1;
18032 : }
18033 0 : tree res_op1;
18034 0 : res_op1 = captures[1];
18035 0 : tree res_op2;
18036 0 : res_op2 = captures[2];
18037 0 : tree _r;
18038 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18039 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18040 0 : return _r;
18041 : }
18042 0 : next_after_fail1709:;
18043 : }
18044 : }
18045 0 : {
18046 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18047 0 : const enum tree_code lop = BIT_AND_EXPR;
18048 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18049 : )
18050 : {
18051 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1710;
18052 0 : {
18053 0 : tree res_op0;
18054 0 : {
18055 0 : tree _o1[2], _r1;
18056 0 : _o1[0] = captures[0];
18057 0 : _o1[1] = captures[3];
18058 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18059 0 : res_op0 = _r1;
18060 : }
18061 0 : tree res_op1;
18062 0 : res_op1 = captures[1];
18063 0 : tree res_op2;
18064 0 : res_op2 = captures[2];
18065 0 : tree _r;
18066 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18067 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18068 0 : return _r;
18069 : }
18070 0 : next_after_fail1710:;
18071 : }
18072 : }
18073 0 : {
18074 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18075 0 : const enum tree_code lop = BIT_AND_EXPR;
18076 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18077 : )
18078 : {
18079 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1711;
18080 0 : {
18081 0 : tree res_op0;
18082 0 : {
18083 0 : tree _o1[2], _r1;
18084 0 : _o1[0] = captures[0];
18085 0 : _o1[1] = captures[3];
18086 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18087 0 : res_op0 = _r1;
18088 : }
18089 0 : tree res_op1;
18090 0 : res_op1 = captures[1];
18091 0 : tree res_op2;
18092 0 : res_op2 = captures[2];
18093 0 : tree _r;
18094 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18095 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18096 0 : return _r;
18097 : }
18098 0 : next_after_fail1711:;
18099 : }
18100 : }
18101 0 : {
18102 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18103 0 : const enum tree_code lop = BIT_AND_EXPR;
18104 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18105 : )
18106 : {
18107 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1712;
18108 0 : {
18109 0 : tree res_op0;
18110 0 : {
18111 0 : tree _o1[2], _r1;
18112 0 : _o1[0] = captures[0];
18113 0 : _o1[1] = captures[3];
18114 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18115 0 : res_op0 = _r1;
18116 : }
18117 0 : tree res_op1;
18118 0 : res_op1 = captures[1];
18119 0 : tree res_op2;
18120 0 : res_op2 = captures[2];
18121 0 : tree _r;
18122 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18123 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18124 0 : return _r;
18125 : }
18126 0 : next_after_fail1712:;
18127 : }
18128 : }
18129 0 : {
18130 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18131 0 : const enum tree_code lop = BIT_AND_EXPR;
18132 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18133 : )
18134 : {
18135 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1713;
18136 0 : {
18137 0 : tree res_op0;
18138 0 : {
18139 0 : tree _o1[2], _r1;
18140 0 : _o1[0] = captures[0];
18141 0 : _o1[1] = captures[3];
18142 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18143 0 : res_op0 = _r1;
18144 : }
18145 0 : tree res_op1;
18146 0 : res_op1 = captures[1];
18147 0 : tree res_op2;
18148 0 : res_op2 = captures[2];
18149 0 : tree _r;
18150 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18151 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18152 0 : return _r;
18153 : }
18154 0 : next_after_fail1713:;
18155 : }
18156 : }
18157 0 : {
18158 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18159 0 : const enum tree_code lop = BIT_AND_EXPR;
18160 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18161 : )
18162 : {
18163 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1714;
18164 0 : {
18165 0 : tree res_op0;
18166 0 : {
18167 0 : tree _o1[2], _r1;
18168 0 : _o1[0] = captures[0];
18169 0 : _o1[1] = captures[3];
18170 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18171 0 : res_op0 = _r1;
18172 : }
18173 0 : tree res_op1;
18174 0 : res_op1 = captures[1];
18175 0 : tree res_op2;
18176 0 : res_op2 = captures[2];
18177 0 : tree _r;
18178 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18179 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18180 0 : return _r;
18181 : }
18182 0 : next_after_fail1714:;
18183 : }
18184 : }
18185 0 : {
18186 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18187 0 : const enum tree_code lop = BIT_AND_EXPR;
18188 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18189 : )
18190 : {
18191 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1715;
18192 0 : {
18193 0 : tree res_op0;
18194 0 : {
18195 0 : tree _o1[2], _r1;
18196 0 : _o1[0] = captures[0];
18197 0 : _o1[1] = captures[3];
18198 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18199 0 : res_op0 = _r1;
18200 : }
18201 0 : tree res_op1;
18202 0 : res_op1 = captures[1];
18203 0 : tree res_op2;
18204 0 : res_op2 = captures[2];
18205 0 : tree _r;
18206 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18207 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18208 0 : return _r;
18209 : }
18210 0 : next_after_fail1715:;
18211 : }
18212 : }
18213 0 : {
18214 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18215 0 : const enum tree_code lop = BIT_AND_EXPR;
18216 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18217 : )
18218 : {
18219 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1716;
18220 0 : {
18221 0 : tree res_op0;
18222 0 : {
18223 0 : tree _o1[2], _r1;
18224 0 : _o1[0] = captures[0];
18225 0 : _o1[1] = captures[3];
18226 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18227 0 : res_op0 = _r1;
18228 : }
18229 0 : tree res_op1;
18230 0 : res_op1 = captures[1];
18231 0 : tree res_op2;
18232 0 : res_op2 = captures[2];
18233 0 : tree _r;
18234 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18235 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18236 0 : return _r;
18237 : }
18238 0 : next_after_fail1716:;
18239 : }
18240 : }
18241 0 : {
18242 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18243 0 : const enum tree_code lop = BIT_AND_EXPR;
18244 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18245 : )
18246 : {
18247 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1717;
18248 0 : {
18249 0 : tree res_op0;
18250 0 : {
18251 0 : tree _o1[2], _r1;
18252 0 : _o1[0] = captures[0];
18253 0 : _o1[1] = captures[3];
18254 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18255 0 : res_op0 = _r1;
18256 : }
18257 0 : tree res_op1;
18258 0 : res_op1 = captures[1];
18259 0 : tree res_op2;
18260 0 : res_op2 = captures[2];
18261 0 : tree _r;
18262 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18263 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18264 0 : return _r;
18265 : }
18266 0 : next_after_fail1717:;
18267 : }
18268 : }
18269 0 : {
18270 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18271 0 : const enum tree_code lop = BIT_AND_EXPR;
18272 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18273 : )
18274 : {
18275 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1718;
18276 0 : {
18277 0 : tree res_op0;
18278 0 : {
18279 0 : tree _o1[2], _r1;
18280 0 : _o1[0] = captures[0];
18281 0 : _o1[1] = captures[3];
18282 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18283 0 : res_op0 = _r1;
18284 : }
18285 0 : tree res_op1;
18286 0 : res_op1 = captures[1];
18287 0 : tree res_op2;
18288 0 : res_op2 = captures[2];
18289 0 : tree _r;
18290 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18291 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18292 0 : return _r;
18293 : }
18294 0 : next_after_fail1718:;
18295 : }
18296 : }
18297 0 : {
18298 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18299 0 : const enum tree_code lop = BIT_AND_EXPR;
18300 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18301 : )
18302 : {
18303 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1719;
18304 0 : {
18305 0 : tree res_op0;
18306 0 : {
18307 0 : tree _o1[2], _r1;
18308 0 : _o1[0] = captures[0];
18309 0 : _o1[1] = captures[3];
18310 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18311 0 : res_op0 = _r1;
18312 : }
18313 0 : tree res_op1;
18314 0 : res_op1 = captures[1];
18315 0 : tree res_op2;
18316 0 : res_op2 = captures[2];
18317 0 : tree _r;
18318 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18319 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18320 0 : return _r;
18321 : }
18322 0 : next_after_fail1719:;
18323 : }
18324 : }
18325 0 : {
18326 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18327 0 : const enum tree_code lop = BIT_AND_EXPR;
18328 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18329 : )
18330 : {
18331 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1720;
18332 0 : {
18333 0 : tree res_op0;
18334 0 : {
18335 0 : tree _o1[2], _r1;
18336 0 : _o1[0] = captures[0];
18337 0 : _o1[1] = captures[3];
18338 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18339 0 : res_op0 = _r1;
18340 : }
18341 0 : tree res_op1;
18342 0 : res_op1 = captures[1];
18343 0 : tree res_op2;
18344 0 : res_op2 = captures[2];
18345 0 : tree _r;
18346 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18347 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18348 0 : return _r;
18349 : }
18350 0 : next_after_fail1720:;
18351 : }
18352 : }
18353 : }
18354 : }
18355 : break;
18356 : }
18357 : default:;
18358 : }
18359 : }
18360 : }
18361 18 : {
18362 18 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
18363 18 : if (VECTOR_TYPE_P (type)
18364 18 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18365 : || types_match (type, TREE_TYPE (captures[2]))
18366 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
18367 : || (optimize_vectors_before_lowering_p ()
18368 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
18369 : )
18370 : {
18371 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1721;
18372 18 : {
18373 18 : if (! tree_invariant_p (captures[4])) goto next_after_fail1721;
18374 14 : tree res_op0;
18375 14 : res_op0 = captures[1];
18376 14 : tree res_op1;
18377 14 : {
18378 14 : tree _o1[2], _r1;
18379 14 : _o1[0] = captures[2];
18380 14 : _o1[1] = unshare_expr (captures[4]);
18381 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18382 14 : if (EXPR_P (_r1))
18383 0 : goto next_after_fail1721;
18384 14 : res_op1 = _r1;
18385 : }
18386 14 : tree res_op2;
18387 14 : {
18388 14 : tree _o1[2], _r1;
18389 14 : _o1[0] = captures[3];
18390 14 : _o1[1] = captures[4];
18391 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18392 14 : if (EXPR_P (_r1))
18393 0 : goto next_after_fail1721;
18394 14 : res_op2 = _r1;
18395 : }
18396 14 : tree _r;
18397 14 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18398 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
18399 14 : return _r;
18400 : }
18401 4 : next_after_fail1721:;
18402 : }
18403 : }
18404 4 : break;
18405 : }
18406 200552 : case CALL_EXPR:
18407 200552 : switch (get_call_combined_fn (_p0))
18408 : {
18409 0 : case CFN_BUILT_IN_BSWAP128:
18410 0 : if (call_expr_nargs (_p0) == 1)
18411 : {
18412 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18413 0 : switch (TREE_CODE (_p1))
18414 : {
18415 0 : case INTEGER_CST:
18416 0 : {
18417 0 : {
18418 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18419 0 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
18420 0 : if (res) return res;
18421 : }
18422 0 : break;
18423 : }
18424 : default:;
18425 : }
18426 : }
18427 : break;
18428 0 : case CFN_BUILT_IN_BSWAP16:
18429 0 : if (call_expr_nargs (_p0) == 1)
18430 : {
18431 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18432 0 : switch (TREE_CODE (_p1))
18433 : {
18434 0 : case INTEGER_CST:
18435 0 : {
18436 0 : {
18437 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18438 0 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
18439 0 : if (res) return res;
18440 : }
18441 0 : break;
18442 : }
18443 : default:;
18444 : }
18445 : }
18446 : break;
18447 10 : case CFN_BUILT_IN_BSWAP32:
18448 10 : if (call_expr_nargs (_p0) == 1)
18449 : {
18450 10 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18451 10 : switch (TREE_CODE (_p1))
18452 : {
18453 9 : case INTEGER_CST:
18454 9 : {
18455 9 : {
18456 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18457 9 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
18458 9 : if (res) return res;
18459 : }
18460 1 : break;
18461 : }
18462 : default:;
18463 : }
18464 : }
18465 : break;
18466 8 : case CFN_BUILT_IN_BSWAP64:
18467 8 : if (call_expr_nargs (_p0) == 1)
18468 : {
18469 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18470 8 : switch (TREE_CODE (_p1))
18471 : {
18472 7 : case INTEGER_CST:
18473 7 : {
18474 7 : {
18475 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18476 7 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
18477 7 : if (res) return res;
18478 : }
18479 1 : break;
18480 : }
18481 : default:;
18482 : }
18483 : }
18484 : break;
18485 : default:;
18486 : }
18487 : break;
18488 6397425 : default:;
18489 : }
18490 6397425 : switch (TREE_CODE (_p1))
18491 : {
18492 1 : case VEC_COND_EXPR:
18493 1 : {
18494 1 : tree _q30 = TREE_OPERAND (_p1, 0);
18495 1 : tree _q31 = TREE_OPERAND (_p1, 1);
18496 1 : tree _q32 = TREE_OPERAND (_p1, 2);
18497 1 : {
18498 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
18499 1 : if (VECTOR_TYPE_P (type)
18500 1 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18501 : || types_match (type, TREE_TYPE (captures[3]))
18502 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
18503 : || (optimize_vectors_before_lowering_p ()
18504 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
18505 : )
18506 : {
18507 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1722;
18508 1 : {
18509 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail1722;
18510 0 : tree res_op0;
18511 0 : res_op0 = captures[2];
18512 0 : tree res_op1;
18513 0 : {
18514 0 : tree _o1[2], _r1;
18515 0 : _o1[0] = unshare_expr (captures[0]);
18516 0 : _o1[1] = captures[3];
18517 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18518 0 : if (EXPR_P (_r1))
18519 0 : goto next_after_fail1722;
18520 0 : res_op1 = _r1;
18521 : }
18522 0 : tree res_op2;
18523 0 : {
18524 0 : tree _o1[2], _r1;
18525 0 : _o1[0] = captures[0];
18526 0 : _o1[1] = captures[4];
18527 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18528 0 : if (EXPR_P (_r1))
18529 0 : goto next_after_fail1722;
18530 0 : res_op2 = _r1;
18531 : }
18532 0 : tree _r;
18533 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18534 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
18535 0 : return _r;
18536 : }
18537 1 : next_after_fail1722:;
18538 : }
18539 : }
18540 1 : break;
18541 : }
18542 6397425 : default:;
18543 : }
18544 6397425 : switch (TREE_CODE (_p0))
18545 : {
18546 0 : case ORDERED_EXPR:
18547 0 : {
18548 0 : tree _q20 = TREE_OPERAND (_p0, 0);
18549 0 : tree _q21 = TREE_OPERAND (_p0, 1);
18550 0 : switch (TREE_CODE (_p1))
18551 : {
18552 0 : case NE_EXPR:
18553 0 : {
18554 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18555 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18556 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18557 : {
18558 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18559 : {
18560 0 : {
18561 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18562 0 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures);
18563 0 : if (res) return res;
18564 : }
18565 : }
18566 : }
18567 : break;
18568 : }
18569 0 : default:;
18570 : }
18571 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18572 : {
18573 0 : switch (TREE_CODE (_p1))
18574 : {
18575 0 : case ORDERED_EXPR:
18576 0 : {
18577 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18578 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18579 0 : if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
18580 : {
18581 0 : {
18582 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
18583 0 : if (types_match (captures[0], captures[1])
18584 : )
18585 : {
18586 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1723;
18587 0 : {
18588 0 : tree res_op0;
18589 0 : res_op0 = captures[0];
18590 0 : tree res_op1;
18591 0 : res_op1 = captures[1];
18592 0 : tree _r;
18593 0 : _r = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
18594 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
18595 0 : return _r;
18596 : }
18597 0 : next_after_fail1723:;
18598 : }
18599 : }
18600 : }
18601 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18602 : {
18603 0 : {
18604 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
18605 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures);
18606 0 : if (res) return res;
18607 : }
18608 : }
18609 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18610 : {
18611 0 : {
18612 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
18613 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures);
18614 0 : if (res) return res;
18615 : }
18616 : }
18617 : break;
18618 : }
18619 : default:;
18620 : }
18621 : }
18622 0 : switch (TREE_CODE (_p1))
18623 : {
18624 0 : case ORDERED_EXPR:
18625 0 : {
18626 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18627 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18628 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18629 : {
18630 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18631 : {
18632 0 : {
18633 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
18634 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures);
18635 0 : if (res) return res;
18636 : }
18637 : }
18638 : }
18639 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18640 : {
18641 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18642 : {
18643 0 : {
18644 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
18645 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures);
18646 0 : if (res) return res;
18647 : }
18648 : }
18649 : }
18650 : break;
18651 : }
18652 : default:;
18653 : }
18654 : break;
18655 : }
18656 136 : case NE_EXPR:
18657 136 : {
18658 136 : tree _q20 = TREE_OPERAND (_p0, 0);
18659 136 : tree _q21 = TREE_OPERAND (_p0, 1);
18660 136 : switch (TREE_CODE (_p1))
18661 : {
18662 0 : case ORDERED_EXPR:
18663 0 : {
18664 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18665 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18666 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18667 : {
18668 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18669 : {
18670 0 : {
18671 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18672 0 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures);
18673 0 : if (res) return res;
18674 : }
18675 : }
18676 : }
18677 : break;
18678 : }
18679 : default:;
18680 : }
18681 : break;
18682 : }
18683 492164 : case MINUS_EXPR:
18684 492164 : {
18685 492164 : tree _q20 = TREE_OPERAND (_p0, 0);
18686 492164 : tree _q21 = TREE_OPERAND (_p0, 1);
18687 492164 : switch (TREE_CODE (_q20))
18688 : {
18689 426856 : CASE_CONVERT:
18690 426856 : {
18691 426856 : tree _q30 = TREE_OPERAND (_q20, 0);
18692 426856 : switch (TREE_CODE (_q21))
18693 : {
18694 422317 : CASE_CONVERT:
18695 422317 : {
18696 422317 : tree _q50 = TREE_OPERAND (_q21, 0);
18697 422317 : switch (TREE_CODE (_p1))
18698 : {
18699 422293 : case INTEGER_CST:
18700 422293 : {
18701 422293 : {
18702 422293 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18703 422293 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, MINUS_EXPR);
18704 422293 : if (res) return res;
18705 : }
18706 422283 : break;
18707 : }
18708 : default:;
18709 : }
18710 : break;
18711 : }
18712 : default:;
18713 : }
18714 : break;
18715 : }
18716 : default:;
18717 : }
18718 : break;
18719 : }
18720 175055 : case PLUS_EXPR:
18721 175055 : {
18722 175055 : tree _q20 = TREE_OPERAND (_p0, 0);
18723 175055 : tree _q21 = TREE_OPERAND (_p0, 1);
18724 175055 : switch (TREE_CODE (_q20))
18725 : {
18726 47915 : CASE_CONVERT:
18727 47915 : {
18728 47915 : tree _q30 = TREE_OPERAND (_q20, 0);
18729 47915 : switch (TREE_CODE (_q21))
18730 : {
18731 119 : CASE_CONVERT:
18732 119 : {
18733 119 : tree _q50 = TREE_OPERAND (_q21, 0);
18734 119 : switch (TREE_CODE (_p1))
18735 : {
18736 60 : case INTEGER_CST:
18737 60 : {
18738 60 : {
18739 60 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18740 60 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, PLUS_EXPR);
18741 60 : if (res) return res;
18742 : }
18743 45 : break;
18744 : }
18745 : default:;
18746 : }
18747 : break;
18748 : }
18749 : default:;
18750 : }
18751 : break;
18752 : }
18753 : default:;
18754 : }
18755 : break;
18756 : }
18757 80 : case LT_EXPR:
18758 80 : {
18759 80 : tree _q20 = TREE_OPERAND (_p0, 0);
18760 80 : tree _q21 = TREE_OPERAND (_p0, 1);
18761 80 : switch (TREE_CODE (_p1))
18762 : {
18763 8 : case LT_EXPR:
18764 8 : {
18765 8 : tree _q50 = TREE_OPERAND (_p1, 0);
18766 8 : tree _q51 = TREE_OPERAND (_p1, 1);
18767 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18768 : {
18769 0 : {
18770 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18771 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18772 0 : if (res) return res;
18773 : }
18774 : }
18775 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18776 : {
18777 0 : {
18778 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18779 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18780 0 : if (res) return res;
18781 : }
18782 : }
18783 : break;
18784 : }
18785 1 : case GT_EXPR:
18786 1 : {
18787 1 : tree _q50 = TREE_OPERAND (_p1, 0);
18788 1 : tree _q51 = TREE_OPERAND (_p1, 1);
18789 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18790 : {
18791 0 : {
18792 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18793 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18794 0 : if (res) return res;
18795 : }
18796 : }
18797 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18798 : {
18799 0 : {
18800 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18801 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18802 0 : if (res) return res;
18803 : }
18804 : }
18805 : break;
18806 : }
18807 : default:;
18808 : }
18809 : break;
18810 : }
18811 32 : case LE_EXPR:
18812 32 : {
18813 32 : tree _q20 = TREE_OPERAND (_p0, 0);
18814 32 : tree _q21 = TREE_OPERAND (_p0, 1);
18815 32 : switch (TREE_CODE (_p1))
18816 : {
18817 5 : case LE_EXPR:
18818 5 : {
18819 5 : tree _q50 = TREE_OPERAND (_p1, 0);
18820 5 : tree _q51 = TREE_OPERAND (_p1, 1);
18821 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18822 : {
18823 0 : {
18824 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18825 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18826 0 : if (res) return res;
18827 : }
18828 : }
18829 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18830 : {
18831 4 : {
18832 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18833 4 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18834 4 : if (res) return res;
18835 : }
18836 : }
18837 : break;
18838 : }
18839 0 : case GE_EXPR:
18840 0 : {
18841 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18842 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18843 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18844 : {
18845 0 : {
18846 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18847 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18848 0 : if (res) return res;
18849 : }
18850 : }
18851 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18852 : {
18853 0 : {
18854 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18855 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18856 0 : if (res) return res;
18857 : }
18858 : }
18859 : break;
18860 : }
18861 : default:;
18862 : }
18863 : break;
18864 : }
18865 348 : case GT_EXPR:
18866 348 : {
18867 348 : tree _q20 = TREE_OPERAND (_p0, 0);
18868 348 : tree _q21 = TREE_OPERAND (_p0, 1);
18869 348 : switch (TREE_CODE (_p1))
18870 : {
18871 85 : case GT_EXPR:
18872 85 : {
18873 85 : tree _q50 = TREE_OPERAND (_p1, 0);
18874 85 : tree _q51 = TREE_OPERAND (_p1, 1);
18875 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18876 : {
18877 0 : {
18878 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18879 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18880 0 : if (res) return res;
18881 : }
18882 : }
18883 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18884 : {
18885 35 : {
18886 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18887 35 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18888 35 : if (res) return res;
18889 : }
18890 : }
18891 : break;
18892 : }
18893 67 : case LT_EXPR:
18894 67 : {
18895 67 : tree _q50 = TREE_OPERAND (_p1, 0);
18896 67 : tree _q51 = TREE_OPERAND (_p1, 1);
18897 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18898 : {
18899 0 : {
18900 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18901 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18902 0 : if (res) return res;
18903 : }
18904 : }
18905 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18906 : {
18907 0 : {
18908 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18909 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18910 0 : if (res) return res;
18911 : }
18912 : }
18913 : break;
18914 : }
18915 : default:;
18916 : }
18917 : break;
18918 : }
18919 73 : case GE_EXPR:
18920 73 : {
18921 73 : tree _q20 = TREE_OPERAND (_p0, 0);
18922 73 : tree _q21 = TREE_OPERAND (_p0, 1);
18923 73 : switch (TREE_CODE (_p1))
18924 : {
18925 11 : case GE_EXPR:
18926 11 : {
18927 11 : tree _q50 = TREE_OPERAND (_p1, 0);
18928 11 : tree _q51 = TREE_OPERAND (_p1, 1);
18929 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18930 : {
18931 7 : {
18932 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18933 7 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18934 7 : if (res) return res;
18935 : }
18936 : }
18937 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18938 : {
18939 0 : {
18940 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18941 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18942 0 : if (res) return res;
18943 : }
18944 : }
18945 : break;
18946 : }
18947 17 : case LE_EXPR:
18948 17 : {
18949 17 : tree _q50 = TREE_OPERAND (_p1, 0);
18950 17 : tree _q51 = TREE_OPERAND (_p1, 1);
18951 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18952 : {
18953 0 : {
18954 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18955 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18956 0 : if (res) return res;
18957 : }
18958 : }
18959 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18960 : {
18961 0 : {
18962 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18963 0 : tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18964 0 : if (res) return res;
18965 : }
18966 : }
18967 : break;
18968 : }
18969 : default:;
18970 : }
18971 : break;
18972 : }
18973 47144 : case NEGATE_EXPR:
18974 47144 : {
18975 47144 : tree _q20 = TREE_OPERAND (_p0, 0);
18976 47144 : if (integer_onep (_p1))
18977 : {
18978 1439 : {
18979 1439 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
18980 1439 : if (!TYPE_OVERFLOW_SANITIZED (type)
18981 : )
18982 : {
18983 1426 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1724;
18984 1426 : {
18985 1426 : tree res_op0;
18986 1426 : res_op0 = captures[0];
18987 1426 : tree res_op1;
18988 1426 : res_op1 = captures[1];
18989 1426 : tree _r;
18990 1426 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18991 1426 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
18992 1426 : return _r;
18993 : }
18994 0 : next_after_fail1724:;
18995 : }
18996 : }
18997 : }
18998 : break;
18999 : }
19000 1 : case VEC_PERM_EXPR:
19001 1 : {
19002 1 : tree _q20 = TREE_OPERAND (_p0, 0);
19003 1 : tree _q21 = TREE_OPERAND (_p0, 1);
19004 1 : tree _q22 = TREE_OPERAND (_p0, 2);
19005 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
19006 : {
19007 0 : switch (TREE_CODE (_p1))
19008 : {
19009 0 : case VEC_PERM_EXPR:
19010 0 : {
19011 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19012 0 : tree _q61 = TREE_OPERAND (_p1, 1);
19013 0 : tree _q62 = TREE_OPERAND (_p1, 2);
19014 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
19015 : {
19016 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
19017 : {
19018 0 : {
19019 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
19020 0 : if (VECTOR_INTEGER_TYPE_P (type)
19021 : )
19022 : {
19023 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1725;
19024 0 : {
19025 0 : tree res_op0;
19026 0 : {
19027 0 : tree _o1[2], _r1;
19028 0 : _o1[0] = captures[0];
19029 0 : _o1[1] = captures[2];
19030 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
19031 0 : captures[3] = _r1;
19032 : }
19033 0 : res_op0 = unshare_expr (captures[3]);
19034 0 : tree res_op1;
19035 0 : res_op1 = captures[3];
19036 0 : tree res_op2;
19037 0 : res_op2 = captures[1];
19038 0 : tree _r;
19039 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
19040 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
19041 0 : return _r;
19042 : }
19043 0 : next_after_fail1725:;
19044 : }
19045 : }
19046 : }
19047 : }
19048 : break;
19049 : }
19050 : default:;
19051 : }
19052 : }
19053 : break;
19054 : }
19055 200538 : case CALL_EXPR:
19056 200538 : switch (get_call_combined_fn (_p0))
19057 : {
19058 1 : case CFN_BUILT_IN_POPCOUNT:
19059 1 : if (call_expr_nargs (_p0) == 1)
19060 : {
19061 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19062 1 : if (integer_onep (_p1))
19063 : {
19064 1 : {
19065 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19066 1 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY);
19067 1 : if (res) return res;
19068 : }
19069 : }
19070 : }
19071 : break;
19072 1 : case CFN_BUILT_IN_POPCOUNTLL:
19073 1 : if (call_expr_nargs (_p0) == 1)
19074 : {
19075 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19076 1 : if (integer_onep (_p1))
19077 : {
19078 1 : {
19079 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19080 1 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL);
19081 1 : if (res) return res;
19082 : }
19083 : }
19084 : }
19085 : break;
19086 0 : case CFN_POPCOUNT:
19087 0 : if (call_expr_nargs (_p0) == 1)
19088 : {
19089 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19090 0 : if (integer_onep (_p1))
19091 : {
19092 0 : {
19093 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19094 0 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures, CFN_POPCOUNT, CFN_PARITY);
19095 0 : if (res) return res;
19096 : }
19097 : }
19098 : }
19099 : break;
19100 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
19101 0 : if (call_expr_nargs (_p0) == 1)
19102 : {
19103 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19104 0 : if (integer_onep (_p1))
19105 : {
19106 0 : {
19107 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19108 0 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX);
19109 0 : if (res) return res;
19110 : }
19111 : }
19112 : }
19113 : break;
19114 1 : case CFN_BUILT_IN_POPCOUNTL:
19115 1 : if (call_expr_nargs (_p0) == 1)
19116 : {
19117 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19118 1 : if (integer_onep (_p1))
19119 : {
19120 1 : {
19121 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19122 1 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL);
19123 1 : if (res) return res;
19124 : }
19125 : }
19126 : }
19127 : break;
19128 : default:;
19129 : }
19130 : break;
19131 : default:;
19132 : }
19133 : return NULL_TREE;
19134 : }
19135 : #pragma GCC diagnostic pop
|