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 125967675 : tree_maybe_cmp (tree t, tree *res_ops)
11 : {
12 125967675 : const tree type = TREE_TYPE (t);
13 125967675 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 125967675 : if (TREE_SIDE_EFFECTS (t)) return false;
15 125967675 : switch (TREE_CODE (t))
16 : {
17 445218 : case LT_EXPR:
18 445218 : case LE_EXPR:
19 445218 : case EQ_EXPR:
20 445218 : case NE_EXPR:
21 445218 : case GE_EXPR:
22 445218 : case GT_EXPR:
23 445218 : case UNORDERED_EXPR:
24 445218 : case ORDERED_EXPR:
25 445218 : case UNLT_EXPR:
26 445218 : case UNLE_EXPR:
27 445218 : case UNGT_EXPR:
28 445218 : case UNGE_EXPR:
29 445218 : case UNEQ_EXPR:
30 445218 : case LTGT_EXPR:
31 445218 : {
32 445218 : tree _p0 = TREE_OPERAND (t, 0);
33 445218 : tree _p1 = TREE_OPERAND (t, 1);
34 445218 : {
35 445218 : tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
36 445218 : {
37 445218 : res_ops[0] = captures[0];
38 445218 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 5, __FILE__, __LINE__, false);
39 445218 : return true;
40 : }
41 : }
42 25298320 : break;
43 : }
44 25298320 : CASE_CONVERT:
45 25298320 : {
46 25298320 : tree _p0 = TREE_OPERAND (t, 0);
47 25298320 : switch (TREE_CODE (_p0))
48 : {
49 1428 : case LT_EXPR:
50 1428 : case LE_EXPR:
51 1428 : case EQ_EXPR:
52 1428 : case NE_EXPR:
53 1428 : case GE_EXPR:
54 1428 : case GT_EXPR:
55 1428 : case UNORDERED_EXPR:
56 1428 : case ORDERED_EXPR:
57 1428 : case UNLT_EXPR:
58 1428 : case UNLE_EXPR:
59 1428 : case UNGT_EXPR:
60 1428 : case UNGE_EXPR:
61 1428 : case UNEQ_EXPR:
62 1428 : case LTGT_EXPR:
63 1428 : {
64 1428 : tree _q20 = TREE_OPERAND (_p0, 0);
65 1428 : tree _q21 = TREE_OPERAND (_p0, 1);
66 1428 : {
67 1428 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
68 1428 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
69 : )
70 : {
71 765 : {
72 765 : res_ops[0] = captures[0];
73 765 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 6, __FILE__, __LINE__, false);
74 765 : return true;
75 : }
76 : }
77 : }
78 : break;
79 : }
80 : default:;
81 : }
82 : break;
83 : }
84 177122 : case BIT_XOR_EXPR:
85 177122 : {
86 177122 : tree _p0 = TREE_OPERAND (t, 0);
87 177122 : tree _p1 = TREE_OPERAND (t, 1);
88 177122 : {
89 177122 : tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
90 177122 : if (INTEGRAL_TYPE_P (type)
91 177122 : && TYPE_PRECISION (type) == 1
92 : )
93 : {
94 85476 : {
95 85476 : res_ops[0] = captures[0];
96 85476 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 7, __FILE__, __LINE__, false);
97 85476 : return true;
98 : }
99 : }
100 : }
101 : break;
102 : }
103 : default:;
104 : }
105 : return false;
106 : }
107 :
108 : bool
109 0 : tree_float_value_p (tree t)
110 : {
111 0 : const tree type = TREE_TYPE (t);
112 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
113 0 : if (TREE_SIDE_EFFECTS (t)) return false;
114 0 : {
115 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
116 0 : if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node
117 : )
118 : {
119 0 : {
120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 45, __FILE__, __LINE__, false);
121 0 : return true;
122 : }
123 : }
124 : }
125 : return false;
126 : }
127 :
128 : tree
129 72000 : generic_simplify_7 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
130 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
131 : const enum tree_code ARG_UNUSED (op))
132 : {
133 72000 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
134 72000 : {
135 72000 : bool wascmp0, wascmp1;
136 72000 : if (bitwise_inverted_equal_p (captures[1], captures[3], wascmp0)
137 1190 : && bitwise_inverted_equal_p (captures[0], captures[2], wascmp1)
138 72004 : && ((!wascmp0 && !wascmp1)
139 0 : || element_precision (type) == 1)
140 : )
141 : {
142 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail79;
143 4 : {
144 4 : tree res_op0;
145 4 : res_op0 = captures[0];
146 4 : tree res_op1;
147 4 : res_op1 = captures[3];
148 4 : tree _r;
149 4 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
150 4 : if (TREE_SIDE_EFFECTS (captures[1]))
151 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
152 4 : if (TREE_SIDE_EFFECTS (captures[2]))
153 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
154 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 56, __FILE__, __LINE__, true);
155 4 : return _r;
156 : }
157 0 : next_after_fail79:;
158 : }
159 : }
160 71996 : return NULL_TREE;
161 : }
162 :
163 : tree
164 3059482 : generic_simplify_17 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
165 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
166 : const enum tree_code ARG_UNUSED (inner_op),
167 : const enum tree_code ARG_UNUSED (neg_inner_op),
168 : const enum tree_code ARG_UNUSED (outer_op))
169 : {
170 3059482 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
171 3059482 : if (!TYPE_SATURATING (type)
172 : )
173 : {
174 3059482 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
175 6118714 : && !FIXED_POINT_TYPE_P (type)
176 : )
177 : {
178 3059232 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
179 : )
180 : {
181 2044846 : if (!CONSTANT_CLASS_P (captures[0])
182 : )
183 : {
184 2044839 : if (outer_op == PLUS_EXPR
185 : )
186 : {
187 2044839 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail89;
188 2044839 : {
189 2044839 : tree res_op0;
190 2044839 : {
191 2044839 : tree _o1[1], _r1;
192 2044839 : _o1[0] = captures[0];
193 2044839 : if (TREE_TYPE (_o1[0]) != type)
194 : {
195 851080 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
196 : }
197 : else
198 : _r1 = _o1[0];
199 2044839 : res_op0 = _r1;
200 : }
201 2044839 : tree res_op1;
202 2044839 : {
203 2044839 : tree _o1[2], _r1;
204 2044839 : _o1[0] = captures[2];
205 2044839 : {
206 2044839 : tree _o2[1], _r2;
207 2044839 : _o2[0] = captures[1];
208 2044839 : if (TREE_TYPE (_o2[0]) != type)
209 : {
210 843970 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
211 : }
212 : else
213 : _r2 = _o2[0];
214 2044839 : _o1[1] = _r2;
215 : }
216 2044839 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
217 2044839 : if (EXPR_P (_r1))
218 0 : goto next_after_fail89;
219 2044839 : res_op1 = _r1;
220 : }
221 2044839 : tree _r;
222 2044839 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
223 2044839 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 66, __FILE__, __LINE__, true);
224 2044839 : return _r;
225 : }
226 : next_after_fail89:;
227 : }
228 : else
229 : {
230 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail90;
231 0 : {
232 0 : tree res_op0;
233 0 : {
234 0 : tree _o1[1], _r1;
235 0 : _o1[0] = captures[0];
236 0 : if (TREE_TYPE (_o1[0]) != type)
237 : {
238 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
239 : }
240 : else
241 : _r1 = _o1[0];
242 0 : res_op0 = _r1;
243 : }
244 0 : tree res_op1;
245 0 : {
246 0 : tree _o1[2], _r1;
247 0 : _o1[0] = captures[2];
248 0 : {
249 0 : tree _o2[1], _r2;
250 0 : _o2[0] = captures[1];
251 0 : if (TREE_TYPE (_o2[0]) != type)
252 : {
253 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
254 : }
255 : else
256 : _r2 = _o2[0];
257 0 : _o1[1] = _r2;
258 : }
259 0 : _r1 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
260 0 : if (EXPR_P (_r1))
261 0 : goto next_after_fail90;
262 0 : res_op1 = _r1;
263 : }
264 0 : tree _r;
265 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
266 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 67, __FILE__, __LINE__, true);
267 0 : return _r;
268 : }
269 : next_after_fail90:;
270 : }
271 : }
272 : }
273 : else
274 : {
275 2028772 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
276 2028772 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
277 : )
278 : {
279 224904 : if (outer_op == PLUS_EXPR
280 : )
281 : {
282 224904 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail91;
283 224904 : {
284 224904 : tree res_op0;
285 224904 : {
286 224904 : tree _o1[2], _r1;
287 224904 : _o1[0] = captures[0];
288 224904 : {
289 224904 : tree _o2[2], _r2;
290 224904 : {
291 224904 : tree _o3[1], _r3;
292 224904 : _o3[0] = captures[2];
293 224904 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
294 : {
295 224904 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
296 : }
297 : else
298 : _r3 = _o3[0];
299 224904 : _o2[0] = _r3;
300 : }
301 224904 : _o2[1] = captures[1];
302 224904 : _r2 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
303 224904 : if (EXPR_P (_r2))
304 0 : goto next_after_fail91;
305 224904 : _o1[1] = _r2;
306 : }
307 224904 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
308 224904 : res_op0 = _r1;
309 : }
310 224904 : tree _r;
311 224904 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
312 224904 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 68, __FILE__, __LINE__, true);
313 224904 : return _r;
314 : }
315 : next_after_fail91:;
316 : }
317 : else
318 : {
319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail92;
320 0 : {
321 0 : tree res_op0;
322 0 : {
323 0 : tree _o1[2], _r1;
324 0 : _o1[0] = captures[0];
325 0 : {
326 0 : tree _o2[2], _r2;
327 0 : {
328 0 : tree _o3[1], _r3;
329 0 : _o3[0] = captures[2];
330 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
331 : {
332 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
333 : }
334 : else
335 : _r3 = _o3[0];
336 0 : _o2[0] = _r3;
337 : }
338 0 : _o2[1] = captures[1];
339 0 : _r2 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
340 0 : if (EXPR_P (_r2))
341 0 : goto next_after_fail92;
342 0 : _o1[1] = _r2;
343 : }
344 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
345 0 : res_op0 = _r1;
346 : }
347 0 : tree _r;
348 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
349 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 69, __FILE__, __LINE__, true);
350 0 : return _r;
351 : }
352 : next_after_fail92:;
353 : }
354 : }
355 : else
356 : {
357 789482 : if (types_match (type, captures[0]) && !TYPE_OVERFLOW_SANITIZED (type)
358 : )
359 : {
360 788303 : {
361 788303 : tree cst = const_binop (outer_op == inner_op
362 : ? PLUS_EXPR : MINUS_EXPR,
363 : type, captures[1], captures[2]);
364 788303 : if (cst
365 : )
366 : {
367 788303 : if (INTEGRAL_TYPE_P (type) && !TREE_OVERFLOW (cst)
368 : )
369 : {
370 788289 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail93;
371 788289 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail93;
372 788289 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail93;
373 788289 : {
374 788289 : tree res_op0;
375 788289 : res_op0 = captures[0];
376 788289 : tree res_op1;
377 788289 : res_op1 = cst;
378 788289 : tree _r;
379 788289 : _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
380 788289 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 70, __FILE__, __LINE__, true);
381 788289 : return _r;
382 : }
383 : next_after_fail93:;
384 : }
385 : else
386 : {
387 28 : if (INTEGRAL_TYPE_P (type)
388 28 : && wi::to_wide (cst) == wi::min_value (type)
389 : )
390 : {
391 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail94;
392 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail94;
393 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail94;
394 7 : {
395 7 : tree res_op0;
396 7 : res_op0 = captures[0];
397 7 : tree res_op1;
398 7 : res_op1 = wide_int_to_tree (type, wi::to_wide (cst));
399 7 : tree _r;
400 7 : _r = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
401 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 71, __FILE__, __LINE__, true);
402 7 : return _r;
403 : }
404 : next_after_fail94:;
405 : }
406 : else
407 : {
408 7 : {
409 7 : tree utype = unsigned_type_for (type);
410 7 : if (utype
411 : )
412 : {
413 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail95;
414 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail95;
415 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail95;
416 7 : {
417 7 : tree res_op0;
418 7 : {
419 7 : tree _o1[2], _r1;
420 7 : {
421 7 : tree _o2[1], _r2;
422 7 : _o2[0] = captures[0];
423 7 : if (TREE_TYPE (_o2[0]) != utype)
424 : {
425 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
426 : }
427 : else
428 : _r2 = _o2[0];
429 7 : _o1[0] = _r2;
430 : }
431 7 : {
432 7 : tree _o2[1], _r2;
433 7 : _o2[0] = TREE_OVERFLOW (cst)
434 7 : ? drop_tree_overflow (cst) : cst;
435 7 : if (TREE_TYPE (_o2[0]) != utype)
436 : {
437 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
438 : }
439 : else
440 : _r2 = _o2[0];
441 7 : _o1[1] = _r2;
442 : }
443 7 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
444 7 : res_op0 = _r1;
445 : }
446 7 : tree _r;
447 7 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
448 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
449 7 : return _r;
450 : }
451 : next_after_fail95:;
452 : }
453 : }
454 : }
455 : }
456 : }
457 : }
458 : }
459 : }
460 : }
461 : }
462 : }
463 : return NULL_TREE;
464 : }
465 :
466 : tree
467 16 : generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
468 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
469 : {
470 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
471 32 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
472 32 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
473 : )
474 : {
475 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
476 0 : {
477 0 : tree res_op0;
478 0 : res_op0 = captures[0];
479 0 : tree res_op1;
480 0 : {
481 0 : tree _o1[2], _r1;
482 0 : _o1[0] = captures[1];
483 0 : _o1[1] = build_one_cst (type);
484 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
485 0 : res_op1 = _r1;
486 : }
487 0 : tree _r;
488 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
489 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 137, __FILE__, __LINE__, true);
490 0 : return _r;
491 : }
492 0 : next_after_fail162:;
493 : }
494 : return NULL_TREE;
495 : }
496 :
497 : tree
498 0 : generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
499 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
500 : {
501 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
502 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail174;
503 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail174;
504 0 : {
505 0 : tree _r;
506 0 : _r = captures[2];
507 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 144, __FILE__, __LINE__, true);
508 : return _r;
509 : }
510 : next_after_fail174:;
511 : return NULL_TREE;
512 : }
513 :
514 : tree
515 1 : generic_simplify_91 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
516 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
517 : {
518 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
519 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail183;
520 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail183;
521 1 : {
522 1 : tree _r;
523 1 : _r = captures[0];
524 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 150, __FILE__, __LINE__, true);
525 : return _r;
526 : }
527 : next_after_fail183:;
528 : return NULL_TREE;
529 : }
530 :
531 : tree
532 0 : generic_simplify_97 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
533 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
534 : const enum tree_code ARG_UNUSED (op))
535 : {
536 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
537 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail189;
538 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail189;
539 0 : {
540 0 : tree _r;
541 0 : _r = captures[0];
542 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 143, __FILE__, __LINE__, true);
543 : return _r;
544 : }
545 : next_after_fail189:;
546 : return NULL_TREE;
547 : }
548 :
549 : tree
550 21 : generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
551 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
552 : const enum tree_code ARG_UNUSED (bitop),
553 : const enum tree_code ARG_UNUSED (rbitop))
554 : {
555 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
556 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail201;
557 21 : {
558 21 : tree _r;
559 21 : _r = captures[0];
560 21 : if (TREE_SIDE_EFFECTS (captures[1]))
561 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
562 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 159, __FILE__, __LINE__, true);
563 : return _r;
564 : }
565 0 : next_after_fail201:;
566 0 : return NULL_TREE;
567 : }
568 :
569 : tree
570 2 : generic_simplify_108 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
571 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
572 : const enum tree_code ARG_UNUSED (bitop),
573 : const enum tree_code ARG_UNUSED (rbitop))
574 : {
575 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
576 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail204;
577 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail204;
578 2 : {
579 2 : tree res_op0;
580 2 : res_op0 = captures[0];
581 2 : tree res_op1;
582 2 : res_op1 = captures[2];
583 2 : tree _r;
584 2 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
585 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 162, __FILE__, __LINE__, true);
586 : return _r;
587 : }
588 : next_after_fail204:;
589 : return NULL_TREE;
590 : }
591 :
592 : tree
593 2 : generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
594 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
595 : const enum tree_code ARG_UNUSED (bitop),
596 : const enum tree_code ARG_UNUSED (rbitop))
597 : {
598 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
599 2 : if (bitop == BIT_AND_EXPR
600 : )
601 : {
602 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail209;
603 1 : {
604 1 : tree _r;
605 1 : _r = build_zero_cst (type);
606 1 : if (TREE_SIDE_EFFECTS (captures[0]))
607 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
608 1 : if (TREE_SIDE_EFFECTS (captures[1]))
609 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
610 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 164, __FILE__, __LINE__, true);
611 1 : return _r;
612 : }
613 0 : next_after_fail209:;
614 : }
615 : else
616 : {
617 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail210;
618 1 : {
619 1 : tree _r;
620 1 : _r = build_minus_one_cst (type);
621 1 : if (TREE_SIDE_EFFECTS (captures[0]))
622 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
623 1 : if (TREE_SIDE_EFFECTS (captures[1]))
624 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
625 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 165, __FILE__, __LINE__, true);
626 1 : return _r;
627 : }
628 0 : next_after_fail210:;
629 : }
630 : return NULL_TREE;
631 : }
632 :
633 : tree
634 0 : generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
635 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
636 : const enum tree_code ARG_UNUSED (cmp),
637 : const enum tree_code ARG_UNUSED (icmp))
638 : {
639 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
640 0 : if (integer_zerop (captures[5])
641 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
642 : )
643 : {
644 0 : if (integer_onep (captures[4])
645 : )
646 : {
647 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail221;
648 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail221;
649 0 : {
650 0 : tree res_op0;
651 0 : {
652 0 : tree _o1[3], _r1;
653 0 : _o1[0] = captures[1];
654 0 : _o1[1] = captures[6];
655 0 : _o1[2] = captures[9];
656 0 : _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
657 0 : res_op0 = _r1;
658 : }
659 0 : tree res_op1;
660 0 : res_op1 = captures[4];
661 0 : tree _r;
662 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
663 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 174, __FILE__, __LINE__, true);
664 0 : return _r;
665 : }
666 : next_after_fail221:;
667 : }
668 : else
669 : {
670 0 : if (integer_minus_onep (captures[4])
671 : )
672 : {
673 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail222;
674 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail222;
675 0 : {
676 0 : tree res_op0;
677 0 : res_op0 = captures[1];
678 0 : tree res_op1;
679 0 : res_op1 = captures[6];
680 0 : tree res_op2;
681 0 : res_op2 = captures[9];
682 0 : tree _r;
683 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
684 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 175, __FILE__, __LINE__, true);
685 0 : return _r;
686 : }
687 : next_after_fail222:;
688 : }
689 : }
690 : }
691 : else
692 : {
693 0 : if (integer_zerop (captures[4])
694 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
695 : )
696 : {
697 0 : if (integer_onep (captures[5])
698 : )
699 : {
700 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail223;
701 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail223;
702 0 : {
703 0 : tree res_op0;
704 0 : {
705 0 : tree _o1[3], _r1;
706 0 : _o1[0] = captures[1];
707 0 : _o1[1] = captures[9];
708 0 : _o1[2] = captures[6];
709 0 : _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
710 0 : res_op0 = _r1;
711 : }
712 0 : tree res_op1;
713 0 : res_op1 = captures[5];
714 0 : tree _r;
715 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
716 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 176, __FILE__, __LINE__, true);
717 0 : return _r;
718 : }
719 : next_after_fail223:;
720 : }
721 : else
722 : {
723 0 : if (integer_minus_onep (captures[5])
724 : )
725 : {
726 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail224;
727 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail224;
728 0 : {
729 0 : tree res_op0;
730 0 : res_op0 = captures[1];
731 0 : tree res_op1;
732 0 : res_op1 = captures[9];
733 0 : tree res_op2;
734 0 : res_op2 = captures[6];
735 0 : tree _r;
736 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
737 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 177, __FILE__, __LINE__, true);
738 0 : return _r;
739 : }
740 : next_after_fail224:;
741 : }
742 : }
743 : }
744 : }
745 : return NULL_TREE;
746 : }
747 :
748 : tree
749 18 : generic_simplify_145 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
750 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
751 : const enum tree_code ARG_UNUSED (op))
752 : {
753 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
754 36 : if (INTEGRAL_TYPE_P (type)
755 54 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
756 : )
757 : {
758 0 : {
759 0 : tree t = type;
760 0 : if (!TYPE_OVERFLOW_WRAPS (t))
761 0 : t = unsigned_type_for (t);
762 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
763 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail280;
764 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
765 0 : {
766 0 : tree res_op0;
767 0 : {
768 0 : tree _o1[2], _r1;
769 0 : {
770 0 : tree _o2[1], _r2;
771 0 : _o2[0] = captures[2];
772 0 : if (TREE_TYPE (_o2[0]) != t)
773 : {
774 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
775 : }
776 : else
777 : _r2 = _o2[0];
778 0 : _o1[0] = _r2;
779 : }
780 0 : _o1[1] = wide_int_to_tree (t, c);
781 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
782 0 : res_op0 = _r1;
783 : }
784 0 : tree _r;
785 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
786 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 168, __FILE__, __LINE__, true);
787 0 : return _r;
788 : }
789 0 : next_after_fail280:;
790 0 : }
791 : }
792 : return NULL_TREE;
793 : }
794 :
795 : tree
796 0 : generic_simplify_149 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
797 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
798 : {
799 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
800 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail284;
801 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail284;
802 0 : {
803 0 : tree _r;
804 0 : _r = captures[1];
805 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 206, __FILE__, __LINE__, true);
806 : return _r;
807 : }
808 : next_after_fail284:;
809 : return NULL_TREE;
810 : }
811 :
812 : tree
813 0 : generic_simplify_153 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
814 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
815 : {
816 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
817 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
818 0 : {
819 0 : tree res_op0;
820 0 : {
821 0 : tree _o1[2], _r1;
822 0 : _o1[0] = captures[1];
823 0 : _o1[1] = captures[2];
824 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
825 0 : res_op0 = _r1;
826 : }
827 0 : tree _r;
828 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
829 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 210, __FILE__, __LINE__, true);
830 : return _r;
831 : }
832 0 : next_after_fail288:;
833 0 : return NULL_TREE;
834 : }
835 :
836 : tree
837 1 : generic_simplify_158 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
838 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
839 : {
840 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
841 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail293;
842 1 : {
843 1 : tree res_op0;
844 1 : res_op0 = captures[0];
845 1 : tree res_op1;
846 1 : res_op1 = captures[1];
847 1 : tree _r;
848 1 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
849 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
850 : return _r;
851 : }
852 0 : next_after_fail293:;
853 0 : return NULL_TREE;
854 : }
855 :
856 : tree
857 608 : generic_simplify_160 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
858 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
859 : {
860 608 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
861 608 : if (bitwise_equal_p (captures[0], captures[2])
862 : )
863 : {
864 88 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail295;
865 88 : {
866 88 : tree res_op0;
867 88 : {
868 88 : tree _o1[1], _r1;
869 88 : {
870 88 : tree _o2[2], _r2;
871 88 : _o2[0] = captures[0];
872 88 : {
873 88 : tree _o3[1], _r3;
874 88 : _o3[0] = captures[1];
875 88 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
876 : {
877 8 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
878 : }
879 : else
880 : _r3 = _o3[0];
881 88 : _o2[1] = _r3;
882 : }
883 88 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
884 88 : _o1[0] = _r2;
885 : }
886 88 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
887 88 : res_op0 = _r1;
888 : }
889 88 : tree _r;
890 88 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
891 88 : if (TREE_SIDE_EFFECTS (captures[2]))
892 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
893 88 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
894 88 : return _r;
895 : }
896 0 : next_after_fail295:;
897 : }
898 : return NULL_TREE;
899 : }
900 :
901 : tree
902 64 : generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
903 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
904 : const enum tree_code ARG_UNUSED (cmp),
905 : const enum tree_code ARG_UNUSED (icmp),
906 : const enum tree_code ARG_UNUSED (ncmp))
907 : {
908 64 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
909 64 : {
910 64 : enum tree_code ic = invert_tree_comparison
911 64 : (cmp, HONOR_NANS (captures[0]));
912 64 : if (ic == icmp
913 : )
914 : {
915 64 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail307;
916 64 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail307;
917 64 : {
918 64 : tree res_op0;
919 64 : res_op0 = captures[0];
920 64 : tree res_op1;
921 64 : res_op1 = captures[1];
922 64 : tree _r;
923 64 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
924 64 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
925 64 : return _r;
926 : }
927 : next_after_fail307:;
928 : }
929 : else
930 : {
931 0 : if (ic == ncmp
932 : )
933 : {
934 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail308;
935 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail308;
936 0 : {
937 0 : tree res_op0;
938 0 : res_op0 = captures[0];
939 0 : tree res_op1;
940 0 : res_op1 = captures[1];
941 0 : tree _r;
942 0 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
943 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
944 0 : return _r;
945 : }
946 : next_after_fail308:;
947 : }
948 : }
949 : }
950 : return NULL_TREE;
951 : }
952 :
953 : tree
954 3 : generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
955 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
956 : {
957 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
958 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail320;
959 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail320;
960 3 : {
961 3 : tree _r;
962 3 : _r = build_zero_cst (type);
963 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 239, __FILE__, __LINE__, true);
964 : return _r;
965 : }
966 : next_after_fail320:;
967 : return NULL_TREE;
968 : }
969 :
970 : tree
971 14 : generic_simplify_190 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
972 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
973 : {
974 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
975 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
976 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
977 : )
978 : {
979 14 : {
980 14 : unsigned int shift = tree_to_uhwi (captures[1]);
981 14 : unsigned int prec = TYPE_PRECISION (type);
982 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
983 0 : || tree_int_cst_sgn (captures[2]) >= 0)
984 28 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
985 : )
986 : {
987 6 : {
988 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
989 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail329;
990 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail329;
991 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail329;
992 6 : {
993 6 : tree res_op0;
994 6 : {
995 6 : tree _o1[1], _r1;
996 6 : _o1[0] = captures[0];
997 6 : if (TREE_TYPE (_o1[0]) != type)
998 : {
999 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1000 : }
1001 : else
1002 : _r1 = _o1[0];
1003 6 : res_op0 = _r1;
1004 : }
1005 6 : tree res_op1;
1006 6 : res_op1 = wide_int_to_tree (type, mask << shift);
1007 6 : tree _r;
1008 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1009 6 : if (TREE_SIDE_EFFECTS (captures[3]))
1010 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1011 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 244, __FILE__, __LINE__, true);
1012 6 : return _r;
1013 : }
1014 0 : next_after_fail329:;
1015 6 : }
1016 : }
1017 : }
1018 : }
1019 : return NULL_TREE;
1020 : }
1021 :
1022 : tree
1023 169 : generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1024 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1025 : const enum tree_code ARG_UNUSED (op))
1026 : {
1027 169 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1028 338 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1029 338 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
1030 169 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
1031 : && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
1032 169 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1033 507 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
1034 : )
1035 : {
1036 169 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail345;
1037 169 : {
1038 169 : tree res_op0;
1039 169 : res_op0 = captures[2];
1040 169 : tree res_op1;
1041 169 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1042 169 : tree _r;
1043 169 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1044 169 : if (TREE_SIDE_EFFECTS (captures[3]))
1045 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1046 169 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
1047 169 : return _r;
1048 : }
1049 0 : next_after_fail345:;
1050 : }
1051 : return NULL_TREE;
1052 : }
1053 :
1054 : tree
1055 8516 : generic_simplify_215 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1056 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1057 : const enum tree_code ARG_UNUSED (op))
1058 : {
1059 8516 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1060 8516 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail371;
1061 8516 : {
1062 8516 : tree res_op0;
1063 8516 : res_op0 = captures[1];
1064 8516 : tree res_op1;
1065 8516 : res_op1 = captures[2];
1066 8516 : tree _r;
1067 8516 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1068 8516 : if (TREE_SIDE_EFFECTS (captures[0]))
1069 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1070 8516 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 285, __FILE__, __LINE__, true);
1071 : return _r;
1072 : }
1073 0 : next_after_fail371:;
1074 0 : return NULL_TREE;
1075 : }
1076 :
1077 : tree
1078 55443 : generic_simplify_221 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1079 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1080 : const enum tree_code ARG_UNUSED (neeq))
1081 : {
1082 55443 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1083 55443 : {
1084 55443 : poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
1085 55443 : if (ptr_difference_const (captures[2], captures[0], &diff)
1086 : )
1087 : {
1088 11384 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail377;
1089 11384 : {
1090 11384 : tree res_op0;
1091 11384 : res_op0 = build_int_cst_type (inner_type, diff);
1092 11384 : tree res_op1;
1093 11384 : res_op1 = captures[1];
1094 11384 : tree _r;
1095 11384 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1096 11384 : if (TREE_SIDE_EFFECTS (captures[0]))
1097 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1098 11384 : if (TREE_SIDE_EFFECTS (captures[2]))
1099 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1100 11384 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 290, __FILE__, __LINE__, true);
1101 11384 : return _r;
1102 : }
1103 0 : next_after_fail377:;
1104 : }
1105 : }
1106 44059 : return NULL_TREE;
1107 : }
1108 :
1109 : tree
1110 725 : generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1111 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1112 : const enum tree_code ARG_UNUSED (cmp))
1113 : {
1114 725 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1115 725 : if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1116 725 : TYPE_SIGN (TREE_TYPE (captures[0])))
1117 : )
1118 : {
1119 42 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail386;
1120 42 : {
1121 42 : tree _r;
1122 42 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1123 42 : if (TREE_SIDE_EFFECTS (captures[0]))
1124 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1125 42 : if (TREE_SIDE_EFFECTS (captures[1]))
1126 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1127 42 : if (TREE_SIDE_EFFECTS (captures[2]))
1128 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1129 42 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 299, __FILE__, __LINE__, true);
1130 42 : return _r;
1131 : }
1132 0 : next_after_fail386:;
1133 : }
1134 : else
1135 : {
1136 683 : if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1137 683 : TYPE_SIGN (TREE_TYPE (captures[0])))
1138 : )
1139 : {
1140 683 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail387;
1141 683 : {
1142 683 : tree res_op0;
1143 683 : res_op0 = captures[0];
1144 683 : tree res_op1;
1145 683 : res_op1 = captures[2];
1146 683 : tree _r;
1147 683 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1148 683 : if (TREE_SIDE_EFFECTS (captures[1]))
1149 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1150 683 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 300, __FILE__, __LINE__, true);
1151 683 : return _r;
1152 : }
1153 0 : next_after_fail387:;
1154 : }
1155 : }
1156 : return NULL_TREE;
1157 : }
1158 :
1159 : tree
1160 47 : generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1161 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1162 : {
1163 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1164 47 : if (TREE_CODE (TREE_TYPE (captures[1])) != COMPLEX_TYPE
1165 47 : && (!VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[1])))
1166 7 : || !target_supports_op_p (TREE_TYPE (captures[1]), TRUNC_DIV_EXPR,
1167 : optab_vector)
1168 0 : || target_supports_op_p (TREE_TYPE (captures[1]), TRUNC_MOD_EXPR,
1169 : optab_vector))
1170 : )
1171 : {
1172 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail408;
1173 47 : {
1174 47 : tree res_op0;
1175 47 : {
1176 47 : tree _o1[2], _r1;
1177 47 : _o1[0] = captures[1];
1178 47 : _o1[1] = captures[2];
1179 47 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1180 47 : res_op0 = _r1;
1181 : }
1182 47 : tree res_op1;
1183 47 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1184 47 : tree _r;
1185 47 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1186 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 321, __FILE__, __LINE__, true);
1187 47 : return _r;
1188 : }
1189 0 : next_after_fail408:;
1190 : }
1191 : return NULL_TREE;
1192 : }
1193 :
1194 : tree
1195 61364 : generic_simplify_248 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1196 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1197 : const enum tree_code ARG_UNUSED (cmp))
1198 : {
1199 61364 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1200 122728 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1201 122728 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1202 139146 : && wi::to_wide (captures[1]) != 0
1203 : )
1204 : {
1205 16418 : {
1206 16418 : widest_int quot;
1207 16418 : if (wi::multiple_of_p (wi::to_widest (captures[2]), wi::to_widest (captures[1]),
1208 16418 : TYPE_SIGN (TREE_TYPE (captures[0])), ")
1209 : )
1210 : {
1211 12377 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail419;
1212 12377 : {
1213 12377 : tree res_op0;
1214 12377 : res_op0 = captures[0];
1215 12377 : tree res_op1;
1216 12377 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), quot);
1217 12377 : tree _r;
1218 12377 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1219 12377 : if (TREE_SIDE_EFFECTS (captures[1]))
1220 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1221 12377 : if (TREE_SIDE_EFFECTS (captures[2]))
1222 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1223 12377 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 331, __FILE__, __LINE__, true);
1224 12377 : return _r;
1225 : }
1226 0 : next_after_fail419:;
1227 : }
1228 : else
1229 : {
1230 4041 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail420;
1231 4041 : {
1232 4041 : tree _r;
1233 4041 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1234 4041 : if (TREE_SIDE_EFFECTS (captures[0]))
1235 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1236 4041 : if (TREE_SIDE_EFFECTS (captures[1]))
1237 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1238 4041 : if (TREE_SIDE_EFFECTS (captures[2]))
1239 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1240 4041 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
1241 4041 : return _r;
1242 : }
1243 0 : next_after_fail420:;
1244 : }
1245 16418 : }
1246 : }
1247 : else
1248 : {
1249 89892 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1250 44946 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
1251 89892 : && (wi::bit_and (wi::to_wide (captures[1]), 1) == 1)
1252 : )
1253 : {
1254 1085 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail421;
1255 1085 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail421;
1256 1085 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail421;
1257 1085 : {
1258 1085 : tree res_op0;
1259 1085 : res_op0 = captures[0];
1260 1085 : tree res_op1;
1261 1085 : tree itype = TREE_TYPE (captures[0]);
1262 1085 : int p = TYPE_PRECISION (itype);
1263 1085 : wide_int m = wi::one (p + 1) << p;
1264 1085 : wide_int a = wide_int::from (wi::to_wide (captures[1]), p + 1, UNSIGNED);
1265 1085 : wide_int i = wide_int::from (wi::mod_inv (a, m),
1266 2170 : p, TYPE_SIGN (itype)); res_op1 =
1267 1085 : wide_int_to_tree (itype, wi::mul (i, wi::to_wide (captures[2])));
1268 1085 : tree _r;
1269 1085 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1270 1085 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 333, __FILE__, __LINE__, true);
1271 1085 : return _r;
1272 1085 : }
1273 : next_after_fail421:;
1274 : }
1275 : }
1276 : return NULL_TREE;
1277 : }
1278 :
1279 : tree
1280 6398292 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1281 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1282 : const enum tree_code ARG_UNUSED (cmp))
1283 : {
1284 6398292 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1285 12796560 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1286 2753285 : && !(targetm.have_canonicalize_funcptr_for_compare ()
1287 0 : && ((POINTER_TYPE_P (TREE_TYPE (captures[1]))
1288 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))
1289 0 : || (POINTER_TYPE_P (TREE_TYPE (captures[3]))
1290 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3]))))))
1291 6398292 : && single_use (captures[0])
1292 : )
1293 : {
1294 2753285 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
1295 1877486 : && (TREE_CODE (captures[3]) == INTEGER_CST
1296 1877486 : || captures[2] != captures[3])
1297 1877486 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1298 : || cmp == NE_EXPR
1299 977091 : || cmp == EQ_EXPR)
1300 938875 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
1301 3565053 : && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
1302 390 : || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
1303 : )
1304 : {
1305 811768 : if (TREE_CODE (captures[2]) == INTEGER_CST
1306 : )
1307 : {
1308 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail479;
1309 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
1310 0 : {
1311 0 : tree res_op0;
1312 0 : res_op0 = captures[1];
1313 0 : tree res_op1;
1314 0 : res_op1 = force_fit_type (TREE_TYPE (captures[1]),
1315 0 : wide_int::from (wi::to_wide (captures[2]),
1316 0 : MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
1317 : TYPE_PRECISION (TREE_TYPE (captures[1]))),
1318 0 : TYPE_SIGN (TREE_TYPE (captures[2]))),
1319 0 : 0, TREE_OVERFLOW (captures[2]));
1320 0 : tree _r;
1321 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1322 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1323 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1324 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
1325 0 : return _r;
1326 : }
1327 : next_after_fail479:;
1328 : }
1329 : else
1330 : {
1331 811768 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail480;
1332 711928 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail480;
1333 711928 : {
1334 711928 : tree res_op0;
1335 711928 : res_op0 = captures[1];
1336 711928 : tree res_op1;
1337 711928 : {
1338 711928 : tree _o1[1], _r1;
1339 711928 : _o1[0] = captures[2];
1340 711928 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1341 : {
1342 711808 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1343 : }
1344 : else
1345 : _r1 = _o1[0];
1346 711928 : res_op1 = _r1;
1347 : }
1348 711928 : tree _r;
1349 711928 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1350 711928 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 391, __FILE__, __LINE__, true);
1351 711928 : return _r;
1352 : }
1353 : next_after_fail480:;
1354 : }
1355 : }
1356 : else
1357 : {
1358 1941517 : if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
1359 : )
1360 : {
1361 817068 : if ((cmp == EQ_EXPR || cmp == NE_EXPR
1362 269858 : || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1363 161578 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1364 160492 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
1365 1085840 : && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
1366 114254 : || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
1367 114254 : >= TYPE_PRECISION (TREE_TYPE (captures[3])))
1368 48176 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1369 48176 : == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
1370 77914 : || (TREE_CODE (captures[2]) == INTEGER_CST
1371 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1372 0 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
1373 : )
1374 : {
1375 738068 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail481;
1376 738068 : {
1377 738068 : tree res_op0;
1378 738068 : res_op0 = captures[1];
1379 738068 : tree res_op1;
1380 738068 : {
1381 738068 : tree _o1[1], _r1;
1382 738068 : _o1[0] = captures[3];
1383 738068 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1384 : {
1385 196156 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1386 : }
1387 : else
1388 : _r1 = _o1[0];
1389 738068 : res_op1 = _r1;
1390 : }
1391 738068 : tree _r;
1392 738068 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1393 738068 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
1394 738068 : return _r;
1395 : }
1396 0 : next_after_fail481:;
1397 : }
1398 : else
1399 : {
1400 79000 : if (TREE_CODE (captures[2]) == INTEGER_CST
1401 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1402 79000 : && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
1403 : )
1404 : {
1405 0 : {
1406 0 : tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1407 0 : tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1408 0 : bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
1409 0 : bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
1410 0 : if (above || below
1411 : )
1412 : {
1413 0 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1414 : )
1415 : {
1416 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail482;
1417 0 : {
1418 0 : tree _r;
1419 0 : _r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
1420 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1421 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1422 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1423 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1424 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
1425 0 : return _r;
1426 : }
1427 0 : next_after_fail482:;
1428 : }
1429 : else
1430 : {
1431 0 : if (cmp == LT_EXPR || cmp == LE_EXPR
1432 : )
1433 : {
1434 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail483;
1435 0 : {
1436 0 : tree _r;
1437 0 : _r = constant_boolean_node (above ? true : false, type);
1438 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1439 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1440 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1441 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1442 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
1443 0 : return _r;
1444 : }
1445 0 : next_after_fail483:;
1446 : }
1447 : else
1448 : {
1449 0 : if (cmp == GT_EXPR || cmp == GE_EXPR
1450 : )
1451 : {
1452 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail484;
1453 0 : {
1454 0 : tree _r;
1455 0 : _r = constant_boolean_node (above ? false : true, type);
1456 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1457 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1458 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1459 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1460 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
1461 0 : return _r;
1462 : }
1463 0 : next_after_fail484:;
1464 : }
1465 : }
1466 : }
1467 : }
1468 : }
1469 : }
1470 : }
1471 : }
1472 : }
1473 : }
1474 : else
1475 : {
1476 7247691 : if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
1477 84668 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1478 42334 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
1479 3729667 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1480 42330 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
1481 : )
1482 : {
1483 42326 : {
1484 42326 : tree type1 = TREE_TYPE (captures[3]);
1485 42326 : if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
1486 : {
1487 0 : REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
1488 0 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
1489 0 : && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
1490 0 : type1 = float_type_node;
1491 0 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
1492 0 : && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
1493 0 : type1 = double_type_node;
1494 : }
1495 42326 : tree newtype
1496 42326 : = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
1497 42326 : ? TREE_TYPE (captures[1]) : type1);
1498 42326 : if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
1499 42326 : && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))
1500 : )
1501 : {
1502 1527 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail485;
1503 1527 : {
1504 1527 : tree res_op0;
1505 1527 : {
1506 1527 : tree _o1[1], _r1;
1507 1527 : _o1[0] = captures[1];
1508 1527 : if (TREE_TYPE (_o1[0]) != newtype)
1509 : {
1510 9 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1511 : }
1512 : else
1513 : _r1 = _o1[0];
1514 1527 : res_op0 = _r1;
1515 : }
1516 1527 : tree res_op1;
1517 1527 : {
1518 1527 : tree _o1[1], _r1;
1519 1527 : _o1[0] = captures[3];
1520 1527 : if (TREE_TYPE (_o1[0]) != newtype)
1521 : {
1522 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1523 : }
1524 : else
1525 : _r1 = _o1[0];
1526 1527 : res_op1 = _r1;
1527 : }
1528 1527 : tree _r;
1529 1527 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1530 1527 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 396, __FILE__, __LINE__, true);
1531 1527 : return _r;
1532 : }
1533 0 : next_after_fail485:;
1534 : }
1535 : }
1536 : }
1537 : }
1538 : return NULL_TREE;
1539 : }
1540 :
1541 : tree
1542 374 : generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1543 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1544 : const enum tree_code ARG_UNUSED (op),
1545 : const combined_fn ARG_UNUSED (ctz))
1546 : {
1547 374 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1548 374 : {
1549 374 : tree type0 = TREE_TYPE (captures[1]);
1550 374 : int prec = TYPE_PRECISION (type0);
1551 374 : bool ok = true;
1552 374 : if (sanitize_flags_p (SANITIZE_BUILTIN)
1553 374 : && (!cfun
1554 64 : || (cfun->curr_properties & PROP_ssa) == 0))
1555 : ok = false;
1556 620 : if (ok && prec <= MAX_FIXED_MODE_SIZE
1557 : )
1558 : {
1559 310 : if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) >= prec
1560 : )
1561 : {
1562 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
1563 36 : {
1564 36 : tree _r;
1565 36 : _r = constant_boolean_node (op == EQ_EXPR ? false : true, type);
1566 36 : if (TREE_SIDE_EFFECTS (captures[1]))
1567 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1568 36 : if (TREE_SIDE_EFFECTS (captures[2]))
1569 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1570 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
1571 310 : return _r;
1572 : }
1573 0 : next_after_fail552:;
1574 : }
1575 : else
1576 : {
1577 274 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail553;
1578 274 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail553;
1579 274 : {
1580 274 : tree res_op0;
1581 274 : {
1582 274 : tree _o1[2], _r1;
1583 274 : _o1[0] = captures[1];
1584 274 : _o1[1] = wide_int_to_tree (type0,
1585 274 : wi::mask (tree_to_uhwi (captures[2]) + 1,
1586 : false, prec));
1587 274 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1588 274 : res_op0 = _r1;
1589 : }
1590 274 : tree res_op1;
1591 274 : res_op1 = wide_int_to_tree (type0,
1592 274 : wi::shifted_mask (tree_to_uhwi (captures[2]), 1,
1593 : false, prec));
1594 274 : tree _r;
1595 274 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1596 274 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 447, __FILE__, __LINE__, true);
1597 274 : return _r;
1598 : }
1599 64 : next_after_fail553:;
1600 : }
1601 : }
1602 : }
1603 64 : return NULL_TREE;
1604 : }
1605 :
1606 : tree
1607 0 : generic_simplify_303 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1608 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1609 : const combined_fn ARG_UNUSED (copysigns))
1610 : {
1611 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1612 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail567;
1613 0 : {
1614 0 : tree res_op0;
1615 0 : res_op0 = captures[0];
1616 0 : tree res_op1;
1617 0 : res_op1 = captures[2];
1618 0 : tree _r;
1619 0 : _r = maybe_build_call_expr_loc (loc, copysigns, type, 2, res_op0, res_op1);
1620 0 : if (!_r)
1621 0 : goto next_after_fail567;
1622 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1623 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1624 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 461, __FILE__, __LINE__, true);
1625 : return _r;
1626 : }
1627 : next_after_fail567:;
1628 : return NULL_TREE;
1629 : }
1630 :
1631 : tree
1632 14354 : generic_simplify_311 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1633 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1634 : const enum tree_code ARG_UNUSED (div))
1635 : {
1636 14354 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1637 14354 : if (INTEGRAL_TYPE_P (type)
1638 14332 : && ssa_name_has_boolean_range (captures[1])
1639 14354 : && !flag_non_call_exceptions
1640 : )
1641 : {
1642 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail577;
1643 0 : {
1644 0 : tree _r;
1645 0 : _r = captures[0];
1646 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1647 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1648 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
1649 0 : return _r;
1650 : }
1651 0 : next_after_fail577:;
1652 : }
1653 : return NULL_TREE;
1654 : }
1655 :
1656 : tree
1657 23019 : generic_simplify_317 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1658 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1659 : const enum tree_code ARG_UNUSED (div))
1660 : {
1661 23019 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1662 23019 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1663 : )
1664 : {
1665 22871 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail584;
1666 22871 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail584;
1667 22871 : {
1668 22871 : tree res_op0;
1669 22871 : res_op0 = captures[0];
1670 22871 : tree res_op1;
1671 22871 : res_op1 = wide_int_to_tree
1672 45742 : (type, wi::mask (TYPE_PRECISION (type)
1673 22871 : - wi::exact_log2 (wi::to_wide (captures[1])),
1674 22871 : false, TYPE_PRECISION (type)));
1675 22871 : tree _r;
1676 22871 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1677 22871 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 476, __FILE__, __LINE__, true);
1678 22871 : return _r;
1679 : }
1680 : next_after_fail584:;
1681 : }
1682 : return NULL_TREE;
1683 : }
1684 :
1685 : tree
1686 216139 : generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1687 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1688 : const enum tree_code ARG_UNUSED (mod))
1689 : {
1690 216139 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1691 216139 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail589;
1692 216139 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail589;
1693 216139 : {
1694 216139 : tree _r;
1695 216139 : _r = build_zero_cst (type);
1696 216139 : if (TREE_SIDE_EFFECTS (captures[0]))
1697 47 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1698 216139 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 481, __FILE__, __LINE__, true);
1699 : return _r;
1700 : }
1701 : next_after_fail589:;
1702 : return NULL_TREE;
1703 : }
1704 :
1705 : tree
1706 0 : generic_simplify_330 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1707 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1708 : const combined_fn ARG_UNUSED (SQRT))
1709 : {
1710 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1711 0 : if (flag_unsafe_math_optimizations
1712 : )
1713 : {
1714 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail599;
1715 0 : {
1716 0 : tree res_op0;
1717 0 : res_op0 = captures[0];
1718 0 : tree _r;
1719 0 : _r = maybe_build_call_expr_loc (loc, SQRT, type, 1, res_op0);
1720 0 : if (!_r)
1721 0 : goto next_after_fail599;
1722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 491, __FILE__, __LINE__, true);
1723 0 : return _r;
1724 : }
1725 : next_after_fail599:;
1726 : }
1727 : return NULL_TREE;
1728 : }
1729 :
1730 : tree
1731 4 : generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1732 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1733 : const combined_fn ARG_UNUSED (POW))
1734 : {
1735 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1736 4 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1737 : )
1738 : {
1739 4 : if (!TREE_OVERFLOW (captures[2])
1740 : )
1741 : {
1742 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail606;
1743 4 : {
1744 4 : tree res_op0;
1745 4 : res_op0 = captures[1];
1746 4 : tree res_op1;
1747 4 : {
1748 4 : tree _o1[2], _r1;
1749 4 : _o1[0] = captures[2];
1750 4 : _o1[1] = build_one_cst (type);
1751 4 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1752 4 : res_op1 = _r1;
1753 : }
1754 4 : tree _r;
1755 4 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1756 4 : if (!_r)
1757 0 : goto next_after_fail606;
1758 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 498, __FILE__, __LINE__, true);
1759 4 : return _r;
1760 : }
1761 : next_after_fail606:;
1762 : }
1763 : }
1764 : return NULL_TREE;
1765 : }
1766 :
1767 : tree
1768 1631 : generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1769 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1770 : {
1771 1631 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1772 1631 : if (INTEGRAL_TYPE_P (type)
1773 : )
1774 : {
1775 1631 : {
1776 1631 : tree itype = TREE_TYPE (captures[2]);
1777 1631 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail621;
1778 1631 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail621;
1779 1631 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail621;
1780 1631 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
1781 1631 : {
1782 1631 : tree res_op0;
1783 1631 : {
1784 1631 : tree _o1[2], _r1;
1785 1631 : _o1[0] = captures[2];
1786 1631 : {
1787 1631 : tree _o2[1], _r2;
1788 1631 : _o2[0] = captures[0];
1789 1631 : if (TREE_TYPE (_o2[0]) != itype)
1790 : {
1791 1630 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
1792 : }
1793 : else
1794 : _r2 = _o2[0];
1795 1631 : _o1[1] = _r2;
1796 : }
1797 1631 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1798 1631 : res_op0 = _r1;
1799 : }
1800 1631 : tree _r;
1801 1631 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1802 1631 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
1803 1631 : return _r;
1804 : }
1805 : next_after_fail621:;
1806 : }
1807 : }
1808 : return NULL_TREE;
1809 : }
1810 :
1811 : tree
1812 36 : generic_simplify_351 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1813 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1814 : const enum tree_code ARG_UNUSED (op))
1815 : {
1816 36 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1817 36 : {
1818 36 : auto c1 = wi::to_wide (captures[1]);
1819 36 : auto c2 = wi::to_wide (captures[2]);
1820 36 : if (wi::popcount (c1) == 1
1821 120 : && ((op == PLUS_EXPR && wi::eq_p (wi::neg (c2), c1))
1822 48 : || (op == BIT_AND_EXPR && wi::eq_p (wi::bit_not (c2), c1)))
1823 : )
1824 : {
1825 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail626;
1826 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail626;
1827 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail626;
1828 24 : {
1829 24 : tree res_op0;
1830 24 : res_op0 = captures[0];
1831 24 : tree res_op1;
1832 24 : res_op1 = captures[1];
1833 24 : tree _r;
1834 24 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
1835 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 517, __FILE__, __LINE__, true);
1836 24 : return _r;
1837 : }
1838 12 : next_after_fail626:;
1839 : }
1840 : }
1841 12 : return NULL_TREE;
1842 : }
1843 :
1844 : tree
1845 0 : generic_simplify_362 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1846 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1847 : const enum tree_code ARG_UNUSED (cmp))
1848 : {
1849 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1850 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail637;
1851 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail637;
1852 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail637;
1853 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
1854 0 : {
1855 0 : tree _r;
1856 0 : _r = captures[3];
1857 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 528, __FILE__, __LINE__, true);
1858 : return _r;
1859 : }
1860 : next_after_fail637:;
1861 : return NULL_TREE;
1862 : }
1863 :
1864 : tree
1865 17 : generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1866 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1867 : const enum tree_code ARG_UNUSED (cmp))
1868 : {
1869 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1870 17 : if (INTEGRAL_TYPE_P (type)
1871 17 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1872 17 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1873 34 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
1874 : )
1875 : {
1876 17 : {
1877 17 : tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
1878 17 : if (cmp == GE_EXPR
1879 : )
1880 : {
1881 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail646;
1882 9 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail646;
1883 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail646;
1884 9 : {
1885 9 : tree res_op0;
1886 9 : {
1887 9 : tree _o1[1], _r1;
1888 9 : {
1889 9 : tree _o2[2], _r2;
1890 9 : _o2[0] = captures[0];
1891 9 : _o2[1] = shifter;
1892 9 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1893 9 : _o1[0] = _r2;
1894 : }
1895 9 : if (TREE_TYPE (_o1[0]) != type)
1896 : {
1897 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1898 : }
1899 : else
1900 : _r1 = _o1[0];
1901 9 : res_op0 = _r1;
1902 : }
1903 9 : tree res_op1;
1904 9 : res_op1 = captures[1];
1905 9 : tree _r;
1906 9 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
1907 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 536, __FILE__, __LINE__, true);
1908 9 : return _r;
1909 : }
1910 : next_after_fail646:;
1911 : }
1912 : else
1913 : {
1914 8 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail647;
1915 8 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail647;
1916 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail647;
1917 8 : {
1918 8 : tree res_op0;
1919 8 : {
1920 8 : tree _o1[2], _r1;
1921 8 : {
1922 8 : tree _o2[1], _r2;
1923 8 : {
1924 8 : tree _o3[2], _r3;
1925 8 : _o3[0] = captures[0];
1926 8 : _o3[1] = shifter;
1927 8 : _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
1928 8 : _o2[0] = _r3;
1929 : }
1930 8 : if (TREE_TYPE (_o2[0]) != type)
1931 : {
1932 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
1933 : }
1934 : else
1935 : _r2 = _o2[0];
1936 8 : _o1[0] = _r2;
1937 : }
1938 8 : _o1[1] = captures[1];
1939 8 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1940 8 : res_op0 = _r1;
1941 : }
1942 8 : tree _r;
1943 8 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
1944 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 537, __FILE__, __LINE__, true);
1945 8 : return _r;
1946 : }
1947 : next_after_fail647:;
1948 : }
1949 : }
1950 : }
1951 : return NULL_TREE;
1952 : }
1953 :
1954 : tree
1955 162 : generic_simplify_387 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1956 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1957 : const enum tree_code ARG_UNUSED (cmp),
1958 : const enum tree_code ARG_UNUSED (out))
1959 : {
1960 162 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1961 162 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1962 162 : && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
1963 90 : && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
1964 162 : && wi::to_wide (captures[4]) != 0
1965 0 : && single_use (captures[1])
1966 : )
1967 : {
1968 90 : {
1969 90 : unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
1970 90 : signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
1971 90 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail700;
1972 90 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail700;
1973 90 : {
1974 90 : tree res_op0;
1975 90 : res_op0 = captures[3];
1976 90 : tree res_op1;
1977 90 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
1978 90 : wi::max_value (prec, sign)
1979 270 : - wi::to_wide (captures[4]));
1980 90 : tree _r;
1981 90 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1982 90 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 553, __FILE__, __LINE__, true);
1983 90 : return _r;
1984 : }
1985 : next_after_fail700:;
1986 : }
1987 : }
1988 : return NULL_TREE;
1989 : }
1990 :
1991 : tree
1992 0 : generic_simplify_396 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1993 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1994 : const enum tree_code ARG_UNUSED (op),
1995 : const enum tree_code ARG_UNUSED (cmp))
1996 : {
1997 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1998 0 : {
1999 0 : bool ok = true;
2000 0 : HOST_WIDE_INT val = 0;
2001 0 : if (!tree_fits_shwi_p (captures[3]))
2002 : ok = false;
2003 : else
2004 : {
2005 0 : val = tree_to_shwi (captures[3]);
2006 0 : if (op == GT_EXPR || op == LE_EXPR)
2007 : {
2008 0 : if (val == HOST_WIDE_INT_MAX)
2009 : ok = false;
2010 : else
2011 0 : val++;
2012 : }
2013 : }
2014 0 : HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
2015 0 : tree type0 = TREE_TYPE (captures[1]);
2016 0 : int prec = TYPE_PRECISION (type0);
2017 0 : if (prec > MAX_FIXED_MODE_SIZE)
2018 0 : ok = false;
2019 0 : if (val <= 0
2020 : )
2021 : {
2022 0 : if (ok && zero_val >= val
2023 : )
2024 : {
2025 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail714;
2026 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail714;
2027 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail714;
2028 0 : {
2029 0 : tree _r;
2030 0 : _r = constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
2031 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2032 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2033 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
2034 0 : return _r;
2035 : }
2036 : next_after_fail714:;
2037 : }
2038 : }
2039 : else
2040 : {
2041 0 : if (val >= prec
2042 : )
2043 : {
2044 0 : if (ok && zero_val < val
2045 : )
2046 : {
2047 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail715;
2048 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail715;
2049 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail715;
2050 0 : {
2051 0 : tree _r;
2052 0 : _r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
2053 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2054 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2055 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
2056 0 : return _r;
2057 : }
2058 : next_after_fail715:;
2059 : }
2060 : }
2061 : else
2062 : {
2063 0 : if (ok && (zero_val < 0 || zero_val >= prec)
2064 : )
2065 : {
2066 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail716;
2067 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail716;
2068 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail716;
2069 0 : {
2070 0 : tree res_op0;
2071 0 : {
2072 0 : tree _o1[2], _r1;
2073 0 : _o1[0] = captures[1];
2074 0 : _o1[1] = wide_int_to_tree (type0,
2075 0 : wi::mask (val, false, prec));
2076 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2077 0 : res_op0 = _r1;
2078 : }
2079 0 : tree res_op1;
2080 0 : res_op1 = build_zero_cst (type0);
2081 0 : tree _r;
2082 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2083 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 589, __FILE__, __LINE__, true);
2084 0 : return _r;
2085 : }
2086 : next_after_fail716:;
2087 : }
2088 : }
2089 : }
2090 : }
2091 : return NULL_TREE;
2092 : }
2093 :
2094 : tree
2095 2326 : generic_simplify_411 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2096 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2097 : const enum tree_code ARG_UNUSED (shiftrotate))
2098 : {
2099 2326 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2100 2326 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail735;
2101 2326 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail735;
2102 2326 : {
2103 2326 : tree res_op0;
2104 2326 : res_op0 = captures[0];
2105 2326 : tree _r;
2106 2326 : _r = non_lvalue_loc (loc, res_op0);
2107 2326 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 604, __FILE__, __LINE__, true);
2108 : return _r;
2109 : }
2110 : next_after_fail735:;
2111 : return NULL_TREE;
2112 : }
2113 :
2114 : tree
2115 86 : generic_simplify_415 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2116 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2117 : const enum tree_code ARG_UNUSED (op))
2118 : {
2119 86 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2120 86 : {
2121 86 : unsigned int prec = element_precision (type);
2122 86 : if (wi::ge_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
2123 86 : && wi::lt_p (wi::to_wide (captures[1]), prec, TYPE_SIGN (TREE_TYPE (captures[1])))
2124 86 : && wi::ge_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2])))
2125 172 : && wi::lt_p (wi::to_wide (captures[2]), prec, TYPE_SIGN (TREE_TYPE (captures[2])))
2126 : )
2127 : {
2128 86 : {
2129 86 : unsigned int low = (tree_to_uhwi (captures[1])
2130 86 : + tree_to_uhwi (captures[2]));
2131 86 : if (low >= prec
2132 : )
2133 : {
2134 25 : if (op == LROTATE_EXPR || op == RROTATE_EXPR
2135 : )
2136 : {
2137 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail739;
2138 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail739;
2139 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail739;
2140 0 : {
2141 0 : tree res_op0;
2142 0 : res_op0 = captures[0];
2143 0 : tree res_op1;
2144 0 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), low % prec);
2145 0 : tree _r;
2146 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2147 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
2148 86 : return _r;
2149 : }
2150 : next_after_fail739:;
2151 : }
2152 : else
2153 : {
2154 25 : if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR
2155 : )
2156 : {
2157 24 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail740;
2158 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail740;
2159 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail740;
2160 24 : {
2161 24 : tree _r;
2162 24 : _r = build_zero_cst (type);
2163 24 : if (TREE_SIDE_EFFECTS (captures[0]))
2164 14 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2165 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
2166 24 : return _r;
2167 : }
2168 : next_after_fail740:;
2169 : }
2170 : else
2171 : {
2172 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail741;
2173 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail741;
2174 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
2175 1 : {
2176 1 : tree res_op0;
2177 1 : res_op0 = captures[0];
2178 1 : tree res_op1;
2179 1 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), prec - 1);
2180 1 : tree _r;
2181 1 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2182 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
2183 1 : return _r;
2184 : }
2185 : next_after_fail741:;
2186 : }
2187 : }
2188 : }
2189 : else
2190 : {
2191 61 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail742;
2192 61 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail742;
2193 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
2194 61 : {
2195 61 : tree res_op0;
2196 61 : res_op0 = captures[0];
2197 61 : tree res_op1;
2198 61 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), low);
2199 61 : tree _r;
2200 61 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2201 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
2202 61 : return _r;
2203 : }
2204 : next_after_fail742:;
2205 : }
2206 : }
2207 : }
2208 : }
2209 0 : return NULL_TREE;
2210 : }
2211 :
2212 : tree
2213 0 : generic_simplify_430 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2214 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2215 : const combined_fn ARG_UNUSED (coss),
2216 : const combined_fn ARG_UNUSED (atans),
2217 : const combined_fn ARG_UNUSED (sqrts),
2218 : const combined_fn ARG_UNUSED (copysigns))
2219 : {
2220 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2221 0 : {
2222 0 : REAL_VALUE_TYPE r_cst;
2223 0 : build_sinatan_real (&r_cst, type);
2224 0 : tree t_cst = build_real (type, r_cst);
2225 0 : tree t_one = build_one_cst (type);
2226 0 : tree t_zero = build_zero_cst (type);
2227 0 : if (SCALAR_FLOAT_TYPE_P (type)
2228 : )
2229 : {
2230 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail775;
2231 0 : {
2232 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail775;
2233 0 : tree res_op0;
2234 0 : {
2235 0 : tree _o1[2], _r1;
2236 0 : {
2237 0 : tree _o2[1], _r2;
2238 0 : _o2[0] = unshare_expr (captures[1]);
2239 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2240 0 : _o1[0] = _r2;
2241 : }
2242 0 : _o1[1] = t_cst;
2243 0 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2244 0 : res_op0 = _r1;
2245 : }
2246 0 : tree res_op1;
2247 0 : {
2248 0 : tree _o1[2], _r1;
2249 0 : _o1[0] = t_one;
2250 0 : {
2251 0 : tree _o2[1], _r2;
2252 0 : {
2253 0 : tree _o3[2], _r3;
2254 0 : {
2255 0 : tree _o4[2], _r4;
2256 0 : _o4[0] = unshare_expr (captures[1]);
2257 0 : _o4[1] = unshare_expr (captures[1]);
2258 0 : _r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
2259 0 : _o3[0] = _r4;
2260 : }
2261 0 : _o3[1] = t_one;
2262 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2263 0 : _o2[0] = _r3;
2264 : }
2265 0 : _r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
2266 0 : if (!_r2)
2267 0 : goto next_after_fail775;
2268 0 : _o1[1] = _r2;
2269 : }
2270 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2271 0 : res_op1 = _r1;
2272 : }
2273 0 : tree res_op2;
2274 0 : {
2275 0 : tree _o1[2], _r1;
2276 0 : _o1[0] = t_zero;
2277 0 : _o1[1] = captures[1];
2278 0 : _r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
2279 0 : if (!_r1)
2280 0 : goto next_after_fail775;
2281 0 : res_op2 = _r1;
2282 : }
2283 0 : tree _r;
2284 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
2285 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 630, __FILE__, __LINE__, true);
2286 0 : return _r;
2287 : }
2288 0 : next_after_fail775:;
2289 : }
2290 : }
2291 0 : return NULL_TREE;
2292 : }
2293 :
2294 : tree
2295 0 : generic_simplify_436 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2296 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2297 : {
2298 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2299 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail781;
2300 0 : {
2301 0 : tree _r;
2302 0 : _r = captures[0];
2303 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2304 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2305 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
2306 : return _r;
2307 : }
2308 0 : next_after_fail781:;
2309 0 : return NULL_TREE;
2310 : }
2311 :
2312 : tree
2313 0 : generic_simplify_440 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2314 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2315 : const combined_fn ARG_UNUSED (HYPOT))
2316 : {
2317 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2318 0 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
2319 : )
2320 : {
2321 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail785;
2322 0 : {
2323 0 : tree res_op0;
2324 0 : {
2325 0 : tree _o1[1], _r1;
2326 0 : _o1[0] = captures[0];
2327 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2328 0 : res_op0 = _r1;
2329 : }
2330 0 : tree res_op1;
2331 0 : res_op1 = build_real_truncate (type, dconst_sqrt2 ());
2332 0 : tree _r;
2333 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2334 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
2335 0 : return _r;
2336 : }
2337 0 : next_after_fail785:;
2338 : }
2339 : return NULL_TREE;
2340 : }
2341 :
2342 : tree
2343 1 : generic_simplify_445 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2344 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2345 : {
2346 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2347 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail790;
2348 1 : {
2349 1 : tree res_op0;
2350 1 : res_op0 = captures[0];
2351 1 : tree res_op1;
2352 1 : res_op1 = captures[1];
2353 1 : tree _r;
2354 1 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2355 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 645, __FILE__, __LINE__, true);
2356 : return _r;
2357 : }
2358 0 : next_after_fail790:;
2359 0 : return NULL_TREE;
2360 : }
2361 :
2362 : tree
2363 923170 : generic_simplify_451 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2364 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2365 : const enum tree_code ARG_UNUSED (op))
2366 : {
2367 923170 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2368 923170 : {
2369 923170 : tree pmop[2];
2370 923170 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[3], op, captures[1], ERROR_MARK,
2371 : NULL_TREE, NULL_TREE, captures[2], ERROR_MARK,
2372 : NULL_TREE, NULL_TREE, pmop);
2373 923170 : if (utype
2374 : )
2375 : {
2376 329952 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail796;
2377 329952 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail796;
2378 329952 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail796;
2379 329952 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail796;
2380 329952 : {
2381 329952 : tree res_op0;
2382 329952 : {
2383 329952 : tree _o1[2], _r1;
2384 329952 : {
2385 329952 : tree _o2[2], _r2;
2386 329952 : {
2387 329952 : tree _o3[1], _r3;
2388 329952 : _o3[0] = pmop[0];
2389 329952 : if (TREE_TYPE (_o3[0]) != utype)
2390 : {
2391 198 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2392 : }
2393 : else
2394 : _r3 = _o3[0];
2395 329952 : _o2[0] = _r3;
2396 : }
2397 329952 : {
2398 329952 : tree _o3[1], _r3;
2399 329952 : _o3[0] = pmop[1];
2400 329952 : if (TREE_TYPE (_o3[0]) != utype)
2401 : {
2402 198 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2403 : }
2404 : else
2405 : _r3 = _o3[0];
2406 329952 : _o2[1] = _r3;
2407 : }
2408 329952 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2409 329952 : _o1[0] = _r2;
2410 : }
2411 329952 : {
2412 329952 : tree _o2[1], _r2;
2413 329952 : _o2[0] = captures[3];
2414 329952 : if (TREE_TYPE (_o2[0]) != utype)
2415 : {
2416 204 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2417 : }
2418 : else
2419 : _r2 = _o2[0];
2420 329952 : _o1[1] = _r2;
2421 : }
2422 329952 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2423 329952 : res_op0 = _r1;
2424 : }
2425 329952 : tree _r;
2426 329952 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2427 329952 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2428 329952 : return _r;
2429 : }
2430 593218 : next_after_fail796:;
2431 : }
2432 : }
2433 593218 : return NULL_TREE;
2434 : }
2435 :
2436 : tree
2437 111 : generic_simplify_466 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2438 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2439 : const enum tree_code ARG_UNUSED (code2),
2440 : const enum tree_code ARG_UNUSED (code1))
2441 : {
2442 111 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2443 111 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2444 47 : && TREE_CODE (captures[4]) == INTEGER_CST)
2445 111 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2446 14 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2447 4 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2448 10 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2449 54 : && operand_equal_p (captures[2], captures[4]))
2450 : )
2451 : {
2452 51 : {
2453 51 : int cmp = 0;
2454 51 : if (TREE_CODE (captures[2]) == INTEGER_CST
2455 47 : && TREE_CODE (captures[4]) == INTEGER_CST)
2456 47 : cmp = tree_int_cst_compare (captures[2], captures[4]);
2457 51 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
2458 4 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2459 : )
2460 : {
2461 0 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
2462 : )
2463 : {
2464 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail825;
2465 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail825;
2466 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail825;
2467 0 : {
2468 0 : tree _r;
2469 0 : _r = captures[0];
2470 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2471 0 : return _r;
2472 : }
2473 : next_after_fail825:;
2474 : }
2475 : else
2476 : {
2477 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail826;
2478 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail826;
2479 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail826;
2480 0 : {
2481 0 : tree _r;
2482 0 : _r = captures[3];
2483 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2484 0 : return _r;
2485 : }
2486 : next_after_fail826:;
2487 : }
2488 : }
2489 : else
2490 : {
2491 51 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
2492 47 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2493 : )
2494 : {
2495 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
2496 : )
2497 : {
2498 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail827;
2499 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail827;
2500 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
2501 0 : {
2502 0 : tree _r;
2503 0 : _r = captures[0];
2504 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2505 0 : return _r;
2506 : }
2507 : next_after_fail827:;
2508 : }
2509 : else
2510 : {
2511 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail828;
2512 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail828;
2513 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
2514 0 : {
2515 0 : tree _r;
2516 0 : _r = captures[3];
2517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2518 0 : return _r;
2519 : }
2520 : next_after_fail828:;
2521 : }
2522 : }
2523 : else
2524 : {
2525 51 : if (cmp == 0
2526 4 : && ((code1 == LE_EXPR && code2 == GE_EXPR)
2527 4 : || (code1 == GE_EXPR && code2 == LE_EXPR))
2528 : )
2529 : {
2530 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail829;
2531 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail829;
2532 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
2533 0 : {
2534 0 : tree res_op0;
2535 0 : res_op0 = captures[1];
2536 0 : tree res_op1;
2537 0 : res_op1 = captures[2];
2538 0 : tree _r;
2539 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2540 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
2541 0 : return _r;
2542 : }
2543 : next_after_fail829:;
2544 : }
2545 : else
2546 : {
2547 51 : if (cmp <= 0
2548 50 : && (code1 == LT_EXPR || code1 == LE_EXPR)
2549 4 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2550 : )
2551 : {
2552 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail830;
2553 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail830;
2554 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail830;
2555 4 : {
2556 4 : tree _r;
2557 4 : _r = constant_boolean_node (false, type);
2558 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2559 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2560 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
2561 4 : return _r;
2562 : }
2563 : next_after_fail830:;
2564 : }
2565 : else
2566 : {
2567 46 : if (cmp >= 0
2568 1 : && (code1 == GT_EXPR || code1 == GE_EXPR)
2569 1 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2570 : )
2571 : {
2572 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail831;
2573 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail831;
2574 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail831;
2575 1 : {
2576 1 : tree _r;
2577 1 : _r = constant_boolean_node (false, type);
2578 1 : if (TREE_SIDE_EFFECTS (captures[1]))
2579 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2580 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
2581 1 : return _r;
2582 : }
2583 : next_after_fail831:;
2584 : }
2585 : }
2586 : }
2587 : }
2588 : }
2589 : }
2590 : }
2591 : return NULL_TREE;
2592 : }
2593 :
2594 : tree
2595 34 : generic_simplify_483 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2596 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2597 : const combined_fn ARG_UNUSED (bswap))
2598 : {
2599 34 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2600 34 : if (BITS_PER_UNIT == 8
2601 34 : && tree_fits_uhwi_p (captures[2])
2602 34 : && tree_to_uhwi (captures[2]) < 256
2603 : )
2604 : {
2605 32 : {
2606 32 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2607 32 : tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
2608 32 : tree nst = build_int_cst (integer_type_node, prec - 8);
2609 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail871;
2610 32 : {
2611 32 : tree res_op0;
2612 32 : {
2613 32 : tree _o1[1], _r1;
2614 32 : {
2615 32 : tree _o2[2], _r2;
2616 32 : {
2617 32 : tree _o3[1], _r3;
2618 32 : _o3[0] = captures[1];
2619 32 : if (TREE_TYPE (_o3[0]) != utype)
2620 : {
2621 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2622 : }
2623 : else
2624 : _r3 = _o3[0];
2625 32 : _o2[0] = _r3;
2626 : }
2627 32 : _o2[1] = nst;
2628 32 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
2629 32 : _o1[0] = _r2;
2630 : }
2631 32 : if (TREE_TYPE (_o1[0]) != type)
2632 : {
2633 18 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2634 : }
2635 : else
2636 : _r1 = _o1[0];
2637 32 : res_op0 = _r1;
2638 : }
2639 32 : tree res_op1;
2640 32 : res_op1 = captures[2];
2641 32 : tree _r;
2642 32 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2643 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
2644 32 : return _r;
2645 : }
2646 0 : next_after_fail871:;
2647 : }
2648 : }
2649 : return NULL_TREE;
2650 : }
2651 :
2652 : tree
2653 0 : generic_simplify_486 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2654 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2655 : {
2656 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2657 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail874;
2658 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail874;
2659 0 : {
2660 0 : tree _r;
2661 0 : _r = captures[1];
2662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 689, __FILE__, __LINE__, true);
2663 : return _r;
2664 : }
2665 : next_after_fail874:;
2666 : return NULL_TREE;
2667 : }
2668 :
2669 : tree
2670 28 : generic_simplify_491 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2671 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2672 : {
2673 28 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2674 28 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
2675 28 : || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2676 : )
2677 : {
2678 28 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail880;
2679 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail880;
2680 28 : {
2681 28 : tree res_op0;
2682 28 : {
2683 28 : tree _o1[1], _r1;
2684 28 : _o1[0] = captures[0];
2685 28 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2686 28 : res_op0 = _r1;
2687 : }
2688 28 : tree _r;
2689 28 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2690 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
2691 28 : return _r;
2692 : }
2693 : next_after_fail880:;
2694 : }
2695 : return NULL_TREE;
2696 : }
2697 :
2698 : tree
2699 0 : generic_simplify_499 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2700 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2701 : const enum tree_code ARG_UNUSED (rotate))
2702 : {
2703 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2704 0 : if ((element_precision (TREE_TYPE (captures[2]))
2705 0 : <= element_precision (TREE_TYPE (captures[3]))
2706 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2707 0 : && (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
2708 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2709 : )
2710 : {
2711 0 : {
2712 0 : tree rotate_type = TREE_TYPE (captures[2]);
2713 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail888;
2714 0 : {
2715 0 : tree res_op0;
2716 0 : {
2717 0 : tree _o1[2], _r1;
2718 0 : {
2719 0 : tree _o2[1], _r2;
2720 0 : _o2[0] = captures[3];
2721 0 : if (TREE_TYPE (_o2[0]) != rotate_type)
2722 : {
2723 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
2724 : }
2725 : else
2726 : _r2 = _o2[0];
2727 0 : _o1[0] = _r2;
2728 : }
2729 0 : _o1[1] = captures[4];
2730 0 : _r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2731 0 : res_op0 = _r1;
2732 : }
2733 0 : tree _r;
2734 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2735 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 702, __FILE__, __LINE__, true);
2736 0 : return _r;
2737 : }
2738 0 : next_after_fail888:;
2739 : }
2740 : }
2741 : return NULL_TREE;
2742 : }
2743 :
2744 : tree
2745 0 : generic_simplify_511 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2746 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2747 : const enum tree_code ARG_UNUSED (minmax))
2748 : {
2749 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2750 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail902;
2751 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail902;
2752 0 : {
2753 0 : tree _r;
2754 0 : _r = captures[0];
2755 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 715, __FILE__, __LINE__, true);
2756 : return _r;
2757 : }
2758 : next_after_fail902:;
2759 : return NULL_TREE;
2760 : }
2761 :
2762 : tree
2763 0 : generic_simplify_519 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2764 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2765 : const enum tree_code ARG_UNUSED (minmax),
2766 : const enum tree_code ARG_UNUSED (maxmin))
2767 : {
2768 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2769 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail922;
2770 0 : {
2771 0 : tree res_op0;
2772 0 : {
2773 0 : tree _o1[2], _r1;
2774 0 : _o1[0] = captures[1];
2775 0 : _o1[1] = captures[3];
2776 0 : _r1 = fold_build2_loc (loc, maxmin, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2777 0 : res_op0 = _r1;
2778 : }
2779 0 : tree _r;
2780 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2781 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 722, __FILE__, __LINE__, true);
2782 : return _r;
2783 : }
2784 0 : next_after_fail922:;
2785 0 : return NULL_TREE;
2786 : }
2787 :
2788 : tree
2789 0 : generic_simplify_526 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2790 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2791 : const combined_fn ARG_UNUSED (FMAX_ALL))
2792 : {
2793 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2794 0 : if (flag_finite_math_only
2795 : )
2796 : {
2797 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
2798 0 : {
2799 0 : tree res_op0;
2800 0 : res_op0 = captures[0];
2801 0 : tree res_op1;
2802 0 : res_op1 = captures[1];
2803 0 : tree _r;
2804 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
2805 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 729, __FILE__, __LINE__, true);
2806 0 : return _r;
2807 : }
2808 0 : next_after_fail929:;
2809 : }
2810 : return NULL_TREE;
2811 : }
2812 :
2813 : tree
2814 0 : generic_simplify_531 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2815 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2816 : const combined_fn ARG_UNUSED (bswap))
2817 : {
2818 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2819 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail937;
2820 0 : {
2821 0 : tree _r;
2822 0 : _r = captures[0];
2823 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
2824 : return _r;
2825 : }
2826 0 : next_after_fail937:;
2827 0 : return NULL_TREE;
2828 : }
2829 :
2830 : tree
2831 6 : generic_simplify_534 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2832 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2833 : {
2834 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2835 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail940;
2836 6 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail940;
2837 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail940;
2838 6 : {
2839 6 : tree _r;
2840 6 : _r = captures[2];
2841 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 518, __FILE__, __LINE__, true);
2842 : return _r;
2843 : }
2844 : next_after_fail940:;
2845 : return NULL_TREE;
2846 : }
2847 :
2848 : tree
2849 0 : generic_simplify_542 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2850 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2851 : const combined_fn ARG_UNUSED (cond_op))
2852 : {
2853 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2854 0 : {
2855 0 : tree op_type = TREE_TYPE (captures[6]);
2856 0 : if (inverse_conditions_p (captures[0], captures[2])
2857 0 : && element_precision (type) == element_precision (op_type)
2858 : )
2859 : {
2860 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail948;
2861 0 : {
2862 0 : tree res_op0;
2863 0 : {
2864 0 : tree _o1[5], _r1;
2865 0 : _o1[0] = captures[2];
2866 0 : _o1[1] = captures[3];
2867 0 : _o1[2] = captures[4];
2868 0 : _o1[3] = captures[5];
2869 0 : {
2870 0 : tree _o2[1], _r2;
2871 0 : _o2[0] = captures[1];
2872 0 : if (TREE_TYPE (_o2[0]) != op_type)
2873 : {
2874 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2875 : }
2876 : else
2877 : _r2 = _o2[0];
2878 0 : _o1[4] = _r2;
2879 : }
2880 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
2881 0 : if (!_r1)
2882 0 : goto next_after_fail948;
2883 0 : res_op0 = _r1;
2884 : }
2885 0 : tree _r;
2886 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2887 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2888 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2889 0 : if (TREE_SIDE_EFFECTS (captures[6]))
2890 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
2891 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
2892 0 : return _r;
2893 : }
2894 : next_after_fail948:;
2895 : }
2896 : }
2897 : return NULL_TREE;
2898 : }
2899 :
2900 : tree
2901 0 : generic_simplify_553 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2902 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2903 : const combined_fn ARG_UNUSED (ovf))
2904 : {
2905 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2906 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2907 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2908 0 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2909 0 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2910 : )
2911 : {
2912 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail959;
2913 0 : {
2914 0 : tree res_op0;
2915 0 : res_op0 = captures[0];
2916 0 : tree res_op1;
2917 0 : res_op1 = captures[2];
2918 0 : tree _r;
2919 0 : _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
2920 0 : if (!_r)
2921 0 : goto next_after_fail959;
2922 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 754, __FILE__, __LINE__, true);
2923 0 : return _r;
2924 : }
2925 : next_after_fail959:;
2926 : }
2927 : return NULL_TREE;
2928 : }
2929 :
2930 : tree
2931 0 : generic_simplify_563 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2932 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2933 : const combined_fn ARG_UNUSED (froms),
2934 : const combined_fn ARG_UNUSED (tos))
2935 : {
2936 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2937 0 : if (optimize && canonicalize_math_p ()
2938 : )
2939 : {
2940 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail969;
2941 0 : {
2942 0 : tree res_op0;
2943 0 : {
2944 0 : tree _o1[1], _r1;
2945 0 : _o1[0] = captures[0];
2946 0 : _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
2947 0 : if (!_r1)
2948 0 : goto next_after_fail969;
2949 0 : res_op0 = _r1;
2950 : }
2951 0 : tree _r;
2952 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2953 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 764, __FILE__, __LINE__, true);
2954 0 : return _r;
2955 : }
2956 : next_after_fail969:;
2957 : }
2958 : return NULL_TREE;
2959 : }
2960 :
2961 : tree
2962 0 : generic_simplify_573 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2963 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2964 : const combined_fn ARG_UNUSED (rints))
2965 : {
2966 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2967 0 : if (canonicalize_math_p ()
2968 : )
2969 : {
2970 0 : if (!flag_errno_math
2971 : )
2972 : {
2973 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail979;
2974 0 : {
2975 0 : tree res_op0;
2976 0 : res_op0 = captures[0];
2977 0 : tree _r;
2978 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
2979 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 774, __FILE__, __LINE__, true);
2980 0 : return _r;
2981 : }
2982 0 : next_after_fail979:;
2983 : }
2984 : }
2985 : return NULL_TREE;
2986 : }
2987 :
2988 : tree
2989 0 : generic_simplify_581 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2990 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2991 : {
2992 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2993 0 : if (canonicalize_math_after_vectorization_p ()
2994 : )
2995 : {
2996 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail987;
2997 : {
2998 : tree res_op0;
2999 : res_op0 = captures[0];
3000 : tree res_op1;
3001 : res_op1 = captures[1];
3002 : tree res_op2;
3003 : res_op2 = captures[2];
3004 : tree _r;
3005 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3006 : if (!_r)
3007 : goto next_after_fail987;
3008 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 782, __FILE__, __LINE__, true);
3009 : return _r;
3010 : }
3011 0 : next_after_fail987:;
3012 : }
3013 0 : return NULL_TREE;
3014 : }
3015 :
3016 : tree
3017 0 : generic_simplify_591 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3018 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3019 : {
3020 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3021 0 : if (canonicalize_math_after_vectorization_p ()
3022 : )
3023 : {
3024 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail997;
3025 : {
3026 : tree res_op0;
3027 : res_op0 = captures[0];
3028 : tree res_op1;
3029 : res_op1 = captures[1];
3030 : tree res_op2;
3031 : res_op2 = captures[2];
3032 : tree res_op3;
3033 : res_op3 = captures[3];
3034 : tree res_op4;
3035 : res_op4 = captures[4];
3036 : tree _r;
3037 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3038 : if (!_r)
3039 : goto next_after_fail997;
3040 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 792, __FILE__, __LINE__, true);
3041 : return _r;
3042 : }
3043 0 : next_after_fail997:;
3044 : }
3045 0 : return NULL_TREE;
3046 : }
3047 :
3048 : tree
3049 0 : generic_simplify_601 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3050 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3051 : const enum tree_code ARG_UNUSED (rot),
3052 : const combined_fn ARG_UNUSED (popcount))
3053 : {
3054 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3055 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3056 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3057 0 : && (
3058 :
3059 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3060 : )
3061 : {
3062 0 : {
3063 0 : tree type0 = TREE_TYPE (captures[0]);
3064 0 : tree type1 = TREE_TYPE (captures[1]);
3065 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3066 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3067 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3068 : )
3069 : {
3070 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1007;
3071 0 : {
3072 0 : tree res_op0;
3073 0 : {
3074 0 : tree _o1[1], _r1;
3075 0 : _o1[0] = captures[2];
3076 0 : if (TREE_TYPE (_o1[0]) != type0)
3077 : {
3078 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3079 : }
3080 : else
3081 : _r1 = _o1[0];
3082 0 : res_op0 = _r1;
3083 : }
3084 0 : tree _r;
3085 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3086 0 : if (!_r)
3087 0 : goto next_after_fail1007;
3088 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3089 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3090 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 796, __FILE__, __LINE__, true);
3091 0 : return _r;
3092 : }
3093 : next_after_fail1007:;
3094 : }
3095 : }
3096 : }
3097 : return NULL_TREE;
3098 : }
3099 :
3100 : tree
3101 0 : generic_simplify_611 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3102 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3103 : {
3104 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3105 0 : {
3106 0 : bool can_fold = false;
3107 0 : unsigned HOST_WIDE_INT nelts;
3108 0 : vec_perm_builder builder;
3109 0 : if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
3110 0 : && tree_to_vec_perm_builder (&builder, captures[2]))
3111 : {
3112 0 : vec_perm_indices sel0 (builder, 2, VECTOR_CST_NELTS (captures[2]));
3113 0 : unsigned int sel0_first_idx = sel0[0].to_constant ();
3114 0 : unsigned int elt_size = vector_element_bits (TREE_TYPE (captures[0]));
3115 0 : unsigned int ia_size = tree_to_uhwi (TYPE_SIZE (type))
3116 0 : - elt_size * sel0_first_idx;
3117 0 : unsigned int ib_start;
3118 0 : if (sel0.series_p (0, 1, sel0_first_idx, 1)
3119 0 : && multiple_p (ia_size, vector_element_bits (type), &ib_start)
3120 0 : && tree_to_vec_perm_builder (&builder, captures[5]))
3121 : {
3122 0 : vec_perm_indices sel1 (builder, 2, VECTOR_CST_NELTS (captures[5]));
3123 0 : can_fold = sel1.series_p (ib_start, 1, nelts + ib_start, 1);
3124 0 : if (can_fold)
3125 0 : for (unsigned int i = 0; i < ib_start; i++)
3126 0 : if (sel1[i].to_constant () != i)
3127 : {
3128 : can_fold = false;
3129 : break;
3130 : }
3131 0 : }
3132 0 : }
3133 0 : if (can_fold
3134 : )
3135 : {
3136 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1019;
3137 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1019;
3138 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1019;
3139 0 : {
3140 0 : tree res_op0;
3141 0 : {
3142 0 : tree _o1[3], _r1;
3143 0 : _o1[0] = captures[0];
3144 0 : _o1[1] = captures[4];
3145 0 : _o1[2] = captures[2];
3146 0 : _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
3147 0 : res_op0 = _r1;
3148 : }
3149 0 : tree _r;
3150 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3151 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3152 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3153 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3154 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
3156 0 : return _r;
3157 : }
3158 0 : next_after_fail1019:;
3159 : }
3160 0 : }
3161 0 : return NULL_TREE;
3162 : }
3163 :
3164 : tree
3165 3677 : generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3166 : {
3167 3677 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3168 3677 : switch (TREE_CODE (_p0))
3169 : {
3170 2 : case PAREN_EXPR:
3171 2 : {
3172 2 : tree _q20 = TREE_OPERAND (_p0, 0);
3173 2 : {
3174 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3175 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1113;
3176 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1113;
3177 2 : {
3178 2 : tree _r;
3179 2 : _r = captures[0];
3180 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
3181 2 : return _r;
3182 : }
3183 0 : next_after_fail1113:;
3184 : }
3185 0 : break;
3186 : }
3187 3675 : default:;
3188 : }
3189 3675 : if (CONSTANT_CLASS_P (_p0))
3190 : {
3191 1 : {
3192 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3193 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1114;
3194 1 : {
3195 1 : tree _r;
3196 1 : _r = captures[0];
3197 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 860, __FILE__, __LINE__, true);
3198 1 : return _r;
3199 : }
3200 0 : next_after_fail1114:;
3201 : }
3202 : }
3203 : return NULL_TREE;
3204 : }
3205 :
3206 : tree
3207 1629251 : generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3208 : {
3209 1629251 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3210 1629251 : switch (TREE_CODE (_p0))
3211 : {
3212 9611 : case COMPLEX_EXPR:
3213 9611 : {
3214 9611 : tree _q20 = TREE_OPERAND (_p0, 0);
3215 9611 : tree _q21 = TREE_OPERAND (_p0, 1);
3216 9611 : {
3217 9611 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3218 9611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1115;
3219 9611 : {
3220 9611 : tree _r;
3221 9611 : _r = captures[0];
3222 9611 : if (TREE_SIDE_EFFECTS (captures[1]))
3223 1366 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3224 9611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 861, __FILE__, __LINE__, true);
3225 9611 : return _r;
3226 : }
3227 0 : next_after_fail1115:;
3228 : }
3229 0 : break;
3230 : }
3231 45119 : CASE_CONVERT:
3232 45119 : {
3233 45119 : tree _q20 = TREE_OPERAND (_p0, 0);
3234 45119 : switch (TREE_CODE (_q20))
3235 : {
3236 0 : case CONJ_EXPR:
3237 0 : {
3238 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3239 0 : {
3240 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3241 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1116;
3242 0 : {
3243 0 : tree res_op0;
3244 0 : {
3245 0 : tree _o1[1], _r1;
3246 0 : _o1[0] = captures[2];
3247 0 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3248 0 : res_op0 = _r1;
3249 : }
3250 0 : tree _r;
3251 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3252 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3253 0 : return _r;
3254 : }
3255 0 : next_after_fail1116:;
3256 : }
3257 0 : break;
3258 : }
3259 0 : case PLUS_EXPR:
3260 0 : {
3261 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3262 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3263 0 : {
3264 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3265 0 : const enum tree_code op = PLUS_EXPR;
3266 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1117;
3267 0 : {
3268 0 : tree res_op0;
3269 0 : {
3270 0 : tree _o1[2], _r1;
3271 0 : {
3272 0 : tree _o2[1], _r2;
3273 0 : _o2[0] = captures[2];
3274 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3275 0 : _o1[0] = _r2;
3276 : }
3277 0 : {
3278 0 : tree _o2[1], _r2;
3279 0 : _o2[0] = captures[3];
3280 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3281 0 : _o1[1] = _r2;
3282 : }
3283 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3284 0 : res_op0 = _r1;
3285 : }
3286 0 : tree _r;
3287 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3288 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3289 0 : return _r;
3290 : }
3291 0 : next_after_fail1117:;
3292 : }
3293 0 : break;
3294 : }
3295 0 : case MINUS_EXPR:
3296 0 : {
3297 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3298 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3299 0 : {
3300 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3301 0 : const enum tree_code op = MINUS_EXPR;
3302 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1118;
3303 0 : {
3304 0 : tree res_op0;
3305 0 : {
3306 0 : tree _o1[2], _r1;
3307 0 : {
3308 0 : tree _o2[1], _r2;
3309 0 : _o2[0] = captures[2];
3310 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3311 0 : _o1[0] = _r2;
3312 : }
3313 0 : {
3314 0 : tree _o2[1], _r2;
3315 0 : _o2[0] = captures[3];
3316 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3317 0 : _o1[1] = _r2;
3318 : }
3319 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3320 0 : res_op0 = _r1;
3321 : }
3322 0 : tree _r;
3323 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3324 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3325 0 : return _r;
3326 : }
3327 0 : next_after_fail1118:;
3328 : }
3329 0 : break;
3330 : }
3331 0 : case CALL_EXPR:
3332 0 : switch (get_call_combined_fn (_q20))
3333 : {
3334 0 : case CFN_BUILT_IN_CEXPIF:
3335 0 : if (call_expr_nargs (_q20) == 1)
3336 : {
3337 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3338 0 : {
3339 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3340 0 : if (single_use (captures[1]) && single_use (captures[0])
3341 : )
3342 : {
3343 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1119;
3344 0 : {
3345 0 : tree res_op0;
3346 0 : {
3347 0 : tree _o1[1], _r1;
3348 0 : _o1[0] = captures[2];
3349 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3350 0 : if (!_r1)
3351 0 : goto next_after_fail1119;
3352 0 : res_op0 = _r1;
3353 : }
3354 0 : tree _r;
3355 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3356 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3357 0 : return _r;
3358 : }
3359 0 : next_after_fail1119:;
3360 : }
3361 : }
3362 : }
3363 : break;
3364 0 : case CFN_BUILT_IN_CEXPIL:
3365 0 : if (call_expr_nargs (_q20) == 1)
3366 : {
3367 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3368 0 : {
3369 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3370 0 : if (single_use (captures[1]) && single_use (captures[0])
3371 : )
3372 : {
3373 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1120;
3374 0 : {
3375 0 : tree res_op0;
3376 0 : {
3377 0 : tree _o1[1], _r1;
3378 0 : _o1[0] = captures[2];
3379 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3380 0 : if (!_r1)
3381 0 : goto next_after_fail1120;
3382 0 : res_op0 = _r1;
3383 : }
3384 0 : tree _r;
3385 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3386 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3387 0 : return _r;
3388 : }
3389 0 : next_after_fail1120:;
3390 : }
3391 : }
3392 : }
3393 : break;
3394 0 : case CFN_BUILT_IN_CEXPI:
3395 0 : if (call_expr_nargs (_q20) == 1)
3396 : {
3397 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3398 0 : {
3399 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3400 0 : if (single_use (captures[1]) && single_use (captures[0])
3401 : )
3402 : {
3403 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1121;
3404 0 : {
3405 0 : tree res_op0;
3406 0 : {
3407 0 : tree _o1[1], _r1;
3408 0 : _o1[0] = captures[2];
3409 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3410 0 : if (!_r1)
3411 0 : goto next_after_fail1121;
3412 0 : res_op0 = _r1;
3413 : }
3414 0 : tree _r;
3415 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3416 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3417 0 : return _r;
3418 : }
3419 0 : next_after_fail1121:;
3420 : }
3421 : }
3422 : }
3423 : break;
3424 : default:;
3425 : }
3426 : break;
3427 : default:;
3428 : }
3429 : break;
3430 : }
3431 16 : case CONJ_EXPR:
3432 16 : {
3433 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3434 16 : {
3435 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3436 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1122;
3437 16 : {
3438 16 : tree res_op0;
3439 16 : {
3440 16 : tree _o1[1], _r1;
3441 16 : _o1[0] = captures[2];
3442 16 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3443 16 : res_op0 = _r1;
3444 : }
3445 16 : tree _r;
3446 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3447 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3448 16 : return _r;
3449 : }
3450 0 : next_after_fail1122:;
3451 : }
3452 0 : break;
3453 : }
3454 407 : case PLUS_EXPR:
3455 407 : {
3456 407 : tree _q20 = TREE_OPERAND (_p0, 0);
3457 407 : tree _q21 = TREE_OPERAND (_p0, 1);
3458 407 : {
3459 407 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3460 407 : const enum tree_code op = PLUS_EXPR;
3461 407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1123;
3462 407 : {
3463 407 : tree res_op0;
3464 407 : {
3465 407 : tree _o1[2], _r1;
3466 407 : {
3467 407 : tree _o2[1], _r2;
3468 407 : _o2[0] = captures[2];
3469 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3470 407 : _o1[0] = _r2;
3471 : }
3472 407 : {
3473 407 : tree _o2[1], _r2;
3474 407 : _o2[0] = captures[3];
3475 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3476 407 : _o1[1] = _r2;
3477 : }
3478 407 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3479 407 : res_op0 = _r1;
3480 : }
3481 407 : tree _r;
3482 407 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3483 407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3484 407 : return _r;
3485 : }
3486 0 : next_after_fail1123:;
3487 : }
3488 0 : break;
3489 : }
3490 47 : case MINUS_EXPR:
3491 47 : {
3492 47 : tree _q20 = TREE_OPERAND (_p0, 0);
3493 47 : tree _q21 = TREE_OPERAND (_p0, 1);
3494 47 : {
3495 47 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3496 47 : const enum tree_code op = MINUS_EXPR;
3497 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1124;
3498 47 : {
3499 47 : tree res_op0;
3500 47 : {
3501 47 : tree _o1[2], _r1;
3502 47 : {
3503 47 : tree _o2[1], _r2;
3504 47 : _o2[0] = captures[2];
3505 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3506 47 : _o1[0] = _r2;
3507 : }
3508 47 : {
3509 47 : tree _o2[1], _r2;
3510 47 : _o2[0] = captures[3];
3511 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3512 47 : _o1[1] = _r2;
3513 : }
3514 47 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3515 47 : res_op0 = _r1;
3516 : }
3517 47 : tree _r;
3518 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3519 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3520 47 : return _r;
3521 : }
3522 0 : next_after_fail1124:;
3523 : }
3524 0 : break;
3525 : }
3526 257 : case CALL_EXPR:
3527 257 : switch (get_call_combined_fn (_p0))
3528 : {
3529 0 : case CFN_BUILT_IN_CEXPIF:
3530 0 : if (call_expr_nargs (_p0) == 1)
3531 : {
3532 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3533 0 : {
3534 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3535 0 : if (single_use (captures[1]) && single_use (captures[0])
3536 : )
3537 : {
3538 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1125;
3539 0 : {
3540 0 : tree res_op0;
3541 0 : {
3542 0 : tree _o1[1], _r1;
3543 0 : _o1[0] = captures[2];
3544 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3545 0 : if (!_r1)
3546 0 : goto next_after_fail1125;
3547 0 : res_op0 = _r1;
3548 : }
3549 0 : tree _r;
3550 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3551 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3552 0 : return _r;
3553 : }
3554 0 : next_after_fail1125:;
3555 : }
3556 : }
3557 : }
3558 : break;
3559 0 : case CFN_BUILT_IN_CEXPIL:
3560 0 : if (call_expr_nargs (_p0) == 1)
3561 : {
3562 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3563 0 : {
3564 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3565 0 : if (single_use (captures[1]) && single_use (captures[0])
3566 : )
3567 : {
3568 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1126;
3569 0 : {
3570 0 : tree res_op0;
3571 0 : {
3572 0 : tree _o1[1], _r1;
3573 0 : _o1[0] = captures[2];
3574 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3575 0 : if (!_r1)
3576 0 : goto next_after_fail1126;
3577 0 : res_op0 = _r1;
3578 : }
3579 0 : tree _r;
3580 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3581 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3582 0 : return _r;
3583 : }
3584 0 : next_after_fail1126:;
3585 : }
3586 : }
3587 : }
3588 : break;
3589 1 : case CFN_BUILT_IN_CEXPI:
3590 1 : if (call_expr_nargs (_p0) == 1)
3591 : {
3592 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3593 1 : {
3594 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3595 1 : if (single_use (captures[1]) && single_use (captures[0])
3596 : )
3597 : {
3598 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1127;
3599 1 : {
3600 1 : tree res_op0;
3601 1 : {
3602 1 : tree _o1[1], _r1;
3603 1 : _o1[0] = captures[2];
3604 1 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3605 1 : if (!_r1)
3606 0 : goto next_after_fail1127;
3607 1 : res_op0 = _r1;
3608 : }
3609 1 : tree _r;
3610 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3611 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3612 1 : return _r;
3613 : }
3614 0 : next_after_fail1127:;
3615 : }
3616 : }
3617 : }
3618 : break;
3619 : default:;
3620 : }
3621 : break;
3622 : default:;
3623 : }
3624 : return NULL_TREE;
3625 : }
3626 :
3627 : tree
3628 4066643 : 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)
3629 : {
3630 4066643 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3631 4066643 : if (integer_zerop (_p1))
3632 : {
3633 29 : {
3634 29 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3635 29 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1352;
3636 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1352;
3637 29 : {
3638 29 : tree res_op0;
3639 29 : res_op0 = captures[0];
3640 29 : tree _r;
3641 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3642 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
3643 29 : return _r;
3644 : }
3645 : next_after_fail1352:;
3646 : }
3647 : }
3648 4066614 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _p0, 0))
3649 : {
3650 42689 : {
3651 42689 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p0 };
3652 42689 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1353;
3653 42689 : {
3654 42689 : tree _r;
3655 42689 : _r = build_zero_cst (type);
3656 42689 : if (TREE_SIDE_EFFECTS (captures[1]))
3657 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3658 42689 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
3659 42689 : return _r;
3660 : }
3661 0 : next_after_fail1353:;
3662 : }
3663 : }
3664 4023925 : switch (TREE_CODE (_p0))
3665 : {
3666 379364 : case POINTER_PLUS_EXPR:
3667 379364 : {
3668 379364 : tree _q20 = TREE_OPERAND (_p0, 0);
3669 379364 : tree _q21 = TREE_OPERAND (_p0, 1);
3670 379364 : switch (TREE_CODE (_p1))
3671 : {
3672 18392 : case POINTER_PLUS_EXPR:
3673 18392 : {
3674 18392 : tree _q50 = TREE_OPERAND (_p1, 0);
3675 18392 : tree _q51 = TREE_OPERAND (_p1, 1);
3676 18392 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3677 : {
3678 18361 : {
3679 18361 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
3680 18361 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
3681 : )
3682 : {
3683 18361 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1354;
3684 18361 : {
3685 18361 : tree res_op0;
3686 18361 : {
3687 18361 : tree _o1[2], _r1;
3688 18361 : _o1[0] = captures[1];
3689 18361 : _o1[1] = captures[2];
3690 18361 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3691 18361 : res_op0 = _r1;
3692 : }
3693 18361 : tree _r;
3694 18361 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3695 18361 : if (TREE_SIDE_EFFECTS (captures[0]))
3696 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3697 18361 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 930, __FILE__, __LINE__, true);
3698 18361 : return _r;
3699 : }
3700 0 : next_after_fail1354:;
3701 : }
3702 : }
3703 : }
3704 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3705 : {
3706 1 : {
3707 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
3708 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1355;
3709 1 : {
3710 1 : tree res_op0;
3711 1 : res_op0 = captures[0];
3712 1 : tree res_op1;
3713 1 : res_op1 = captures[2];
3714 1 : tree _r;
3715 1 : _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
3716 1 : if (TREE_SIDE_EFFECTS (captures[1]))
3717 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3718 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 931, __FILE__, __LINE__, true);
3719 1 : return _r;
3720 : }
3721 0 : next_after_fail1355:;
3722 : }
3723 : }
3724 : break;
3725 : }
3726 : default:;
3727 : }
3728 : break;
3729 : }
3730 392849 : CASE_CONVERT:
3731 392849 : {
3732 392849 : tree _q20 = TREE_OPERAND (_p0, 0);
3733 392849 : switch (TREE_CODE (_q20))
3734 : {
3735 1947 : case ADDR_EXPR:
3736 1947 : {
3737 1947 : switch (TREE_CODE (_p1))
3738 : {
3739 324 : CASE_CONVERT:
3740 324 : {
3741 324 : tree _q40 = TREE_OPERAND (_p1, 0);
3742 324 : {
3743 324 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3744 324 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3745 324 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3746 : )
3747 : {
3748 324 : {
3749 324 : poly_int64 diff;
3750 324 : if (ptr_difference_const (captures[1], captures[3], &diff)
3751 : )
3752 : {
3753 189 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1356;
3754 189 : {
3755 189 : tree _r;
3756 189 : _r = build_int_cst_type (type, diff);
3757 189 : if (TREE_SIDE_EFFECTS (captures[1]))
3758 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3759 189 : if (TREE_SIDE_EFFECTS (captures[3]))
3760 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3761 189 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
3762 189 : return _r;
3763 : }
3764 0 : next_after_fail1356:;
3765 : }
3766 : }
3767 : }
3768 : }
3769 135 : break;
3770 : }
3771 1758 : default:;
3772 : }
3773 1758 : {
3774 1758 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3775 1758 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3776 1758 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3777 : )
3778 : {
3779 1758 : {
3780 1758 : poly_int64 diff;
3781 1758 : if (ptr_difference_const (captures[1], captures[3], &diff)
3782 : )
3783 : {
3784 103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1357;
3785 103 : {
3786 103 : tree _r;
3787 103 : _r = build_int_cst_type (type, diff);
3788 103 : if (TREE_SIDE_EFFECTS (captures[1]))
3789 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3790 103 : if (TREE_SIDE_EFFECTS (captures[2]))
3791 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3792 103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
3793 103 : return _r;
3794 : }
3795 0 : next_after_fail1357:;
3796 : }
3797 : }
3798 : }
3799 : }
3800 1655 : break;
3801 : }
3802 392557 : default:;
3803 : }
3804 392557 : switch (TREE_CODE (_p1))
3805 : {
3806 132559 : CASE_CONVERT:
3807 132559 : {
3808 132559 : tree _q40 = TREE_OPERAND (_p1, 0);
3809 132559 : switch (TREE_CODE (_q40))
3810 : {
3811 18109 : case ADDR_EXPR:
3812 18109 : {
3813 18109 : {
3814 18109 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3815 18109 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3816 18109 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3817 : )
3818 : {
3819 18109 : {
3820 18109 : poly_int64 diff;
3821 18109 : if (ptr_difference_const (captures[1], captures[3], &diff)
3822 : )
3823 : {
3824 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1358;
3825 37 : {
3826 37 : tree _r;
3827 37 : _r = build_int_cst_type (type, diff);
3828 37 : if (TREE_SIDE_EFFECTS (captures[1]))
3829 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3830 37 : if (TREE_SIDE_EFFECTS (captures[3]))
3831 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3832 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
3833 37 : return _r;
3834 : }
3835 0 : next_after_fail1358:;
3836 : }
3837 : }
3838 : }
3839 : }
3840 18072 : break;
3841 : }
3842 : default:;
3843 : }
3844 : break;
3845 : }
3846 12 : case ADDR_EXPR:
3847 12 : {
3848 12 : {
3849 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3850 12 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3851 12 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3852 : )
3853 : {
3854 12 : {
3855 12 : poly_int64 diff;
3856 12 : if (ptr_difference_const (captures[1], captures[3], &diff)
3857 : )
3858 : {
3859 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1359;
3860 0 : {
3861 0 : tree _r;
3862 0 : _r = build_int_cst_type (type, diff);
3863 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3864 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3865 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3866 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3867 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
3868 0 : return _r;
3869 : }
3870 0 : next_after_fail1359:;
3871 : }
3872 : }
3873 : }
3874 : }
3875 12 : break;
3876 : }
3877 : default:;
3878 : }
3879 : break;
3880 : }
3881 3683 : case ADDR_EXPR:
3882 3683 : {
3883 3683 : switch (TREE_CODE (_p1))
3884 : {
3885 50 : CASE_CONVERT:
3886 50 : {
3887 50 : tree _q30 = TREE_OPERAND (_p1, 0);
3888 50 : {
3889 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
3890 50 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3891 50 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3892 : )
3893 : {
3894 50 : {
3895 50 : poly_int64 diff;
3896 50 : if (ptr_difference_const (captures[1], captures[3], &diff)
3897 : )
3898 : {
3899 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1360;
3900 29 : {
3901 29 : tree _r;
3902 29 : _r = build_int_cst_type (type, diff);
3903 29 : if (TREE_SIDE_EFFECTS (captures[0]))
3904 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3905 29 : if (TREE_SIDE_EFFECTS (captures[3]))
3906 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3907 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
3908 29 : return _r;
3909 : }
3910 0 : next_after_fail1360:;
3911 : }
3912 : }
3913 : }
3914 : }
3915 21 : break;
3916 : }
3917 3654 : default:;
3918 : }
3919 3654 : {
3920 3654 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
3921 3654 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3922 3654 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3923 : )
3924 : {
3925 3654 : {
3926 3654 : poly_int64 diff;
3927 3654 : if (ptr_difference_const (captures[1], captures[3], &diff)
3928 : )
3929 : {
3930 2374 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1361;
3931 2374 : {
3932 2374 : tree _r;
3933 2374 : _r = build_int_cst_type (type, diff);
3934 2374 : if (TREE_SIDE_EFFECTS (captures[0]))
3935 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3936 2374 : if (TREE_SIDE_EFFECTS (captures[2]))
3937 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3938 2374 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
3939 2374 : return _r;
3940 : }
3941 0 : next_after_fail1361:;
3942 : }
3943 : }
3944 : }
3945 : }
3946 1280 : break;
3947 : }
3948 4002831 : default:;
3949 : }
3950 4002831 : switch (TREE_CODE (_p1))
3951 : {
3952 794983 : CASE_CONVERT:
3953 794983 : {
3954 794983 : tree _q30 = TREE_OPERAND (_p1, 0);
3955 794983 : switch (TREE_CODE (_q30))
3956 : {
3957 587144 : case ADDR_EXPR:
3958 587144 : {
3959 587144 : {
3960 587144 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
3961 587144 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3962 587144 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3963 : )
3964 : {
3965 587144 : {
3966 587144 : poly_int64 diff;
3967 587144 : if (ptr_difference_const (captures[1], captures[3], &diff)
3968 : )
3969 : {
3970 355219 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1362;
3971 355219 : {
3972 355219 : tree _r;
3973 355219 : _r = build_int_cst_type (type, diff);
3974 355219 : if (TREE_SIDE_EFFECTS (captures[0]))
3975 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3976 355219 : if (TREE_SIDE_EFFECTS (captures[3]))
3977 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3978 355219 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
3979 355219 : return _r;
3980 : }
3981 0 : next_after_fail1362:;
3982 : }
3983 : }
3984 : }
3985 : }
3986 231925 : break;
3987 : }
3988 : default:;
3989 : }
3990 : break;
3991 : }
3992 7929 : case ADDR_EXPR:
3993 7929 : {
3994 7929 : {
3995 7929 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
3996 7929 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3997 7929 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3998 : )
3999 : {
4000 7929 : {
4001 7929 : poly_int64 diff;
4002 7929 : if (ptr_difference_const (captures[1], captures[3], &diff)
4003 : )
4004 : {
4005 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1363;
4006 76 : {
4007 76 : tree _r;
4008 76 : _r = build_int_cst_type (type, diff);
4009 76 : if (TREE_SIDE_EFFECTS (captures[0]))
4010 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4011 76 : if (TREE_SIDE_EFFECTS (captures[2]))
4012 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4013 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
4014 76 : return _r;
4015 : }
4016 0 : next_after_fail1363:;
4017 : }
4018 : }
4019 : }
4020 : }
4021 7853 : break;
4022 : }
4023 3647536 : default:;
4024 : }
4025 3647536 : switch (TREE_CODE (_p0))
4026 : {
4027 5707 : case POINTER_PLUS_EXPR:
4028 5707 : {
4029 5707 : tree _q20 = TREE_OPERAND (_p0, 0);
4030 5707 : tree _q21 = TREE_OPERAND (_p0, 1);
4031 5707 : switch (TREE_CODE (_q20))
4032 : {
4033 65 : case ADDR_EXPR:
4034 65 : {
4035 65 : switch (TREE_CODE (_p1))
4036 : {
4037 0 : case POINTER_PLUS_EXPR:
4038 0 : {
4039 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4040 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4041 0 : switch (TREE_CODE (_q50))
4042 : {
4043 0 : case ADDR_EXPR:
4044 0 : {
4045 0 : {
4046 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
4047 0 : {
4048 0 : poly_int64 diff;
4049 0 : if (ptr_difference_const (captures[0], captures[2], &diff)
4050 : )
4051 : {
4052 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1364;
4053 0 : {
4054 0 : tree res_op0;
4055 0 : res_op0 = build_int_cst_type (type, diff);
4056 0 : tree res_op1;
4057 0 : {
4058 0 : tree _o1[1], _r1;
4059 0 : {
4060 0 : tree _o2[2], _r2;
4061 0 : _o2[0] = captures[1];
4062 0 : _o2[1] = captures[3];
4063 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4064 0 : _o1[0] = _r2;
4065 : }
4066 0 : if (TREE_TYPE (_o1[0]) != type)
4067 : {
4068 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4069 : }
4070 : else
4071 : _r1 = _o1[0];
4072 0 : res_op1 = _r1;
4073 : }
4074 0 : tree _r;
4075 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4076 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4077 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4078 0 : if (TREE_SIDE_EFFECTS (captures[2]))
4079 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
4081 0 : return _r;
4082 : }
4083 0 : next_after_fail1364:;
4084 : }
4085 : }
4086 : }
4087 0 : break;
4088 : }
4089 : default:;
4090 : }
4091 : break;
4092 : }
4093 : default:;
4094 : }
4095 : break;
4096 : }
4097 5707 : default:;
4098 : }
4099 5707 : switch (TREE_CODE (_p1))
4100 : {
4101 112 : case ADDR_EXPR:
4102 112 : {
4103 112 : {
4104 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4105 112 : {
4106 112 : poly_int64 diff;
4107 112 : if (ptr_difference_const (captures[0], captures[2], &diff)
4108 : )
4109 : {
4110 98 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1365;
4111 98 : {
4112 98 : tree res_op0;
4113 98 : res_op0 = build_int_cst_type (type, diff);
4114 98 : tree res_op1;
4115 98 : {
4116 98 : tree _o1[1], _r1;
4117 98 : _o1[0] = captures[1];
4118 98 : if (TREE_TYPE (_o1[0]) != type)
4119 : {
4120 98 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4121 : }
4122 : else
4123 : _r1 = _o1[0];
4124 98 : res_op1 = _r1;
4125 : }
4126 98 : tree _r;
4127 98 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4128 98 : if (TREE_SIDE_EFFECTS (captures[0]))
4129 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4130 98 : if (TREE_SIDE_EFFECTS (captures[2]))
4131 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4132 98 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
4133 98 : return _r;
4134 : }
4135 0 : next_after_fail1365:;
4136 : }
4137 : }
4138 : }
4139 14 : break;
4140 : }
4141 5609 : default:;
4142 : }
4143 5609 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4144 : {
4145 1652 : {
4146 1652 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4147 1652 : if (!TYPE_SATURATING (type)
4148 : )
4149 : {
4150 1652 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4151 3304 : && !FIXED_POINT_TYPE_P (type)
4152 : )
4153 : {
4154 1652 : {
4155 1652 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4156 1652 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1366;
4157 1652 : {
4158 1652 : tree res_op0;
4159 1652 : {
4160 1652 : tree _o1[1], _r1;
4161 1652 : _o1[0] = captures[1];
4162 1652 : if (TREE_TYPE (_o1[0]) != stype)
4163 : {
4164 1652 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o1[0]);
4165 : }
4166 : else
4167 : _r1 = _o1[0];
4168 1652 : res_op0 = _r1;
4169 : }
4170 1652 : tree _r;
4171 1652 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4172 1652 : if (TREE_SIDE_EFFECTS (captures[2]))
4173 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4174 1652 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
4175 1652 : return _r;
4176 : }
4177 0 : next_after_fail1366:;
4178 : }
4179 : }
4180 : }
4181 : }
4182 : }
4183 : break;
4184 : }
4185 1280 : case ADDR_EXPR:
4186 1280 : {
4187 1280 : switch (TREE_CODE (_p1))
4188 : {
4189 9 : case POINTER_PLUS_EXPR:
4190 9 : {
4191 9 : tree _q30 = TREE_OPERAND (_p1, 0);
4192 9 : tree _q31 = TREE_OPERAND (_p1, 1);
4193 9 : {
4194 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
4195 9 : {
4196 9 : poly_int64 diff;
4197 9 : if (ptr_difference_const (captures[0], captures[1], &diff)
4198 : )
4199 : {
4200 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1367;
4201 9 : {
4202 9 : tree res_op0;
4203 9 : res_op0 = build_int_cst_type (type, diff);
4204 9 : tree res_op1;
4205 9 : {
4206 9 : tree _o1[1], _r1;
4207 9 : _o1[0] = captures[2];
4208 9 : if (TREE_TYPE (_o1[0]) != type)
4209 : {
4210 9 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4211 : }
4212 : else
4213 : _r1 = _o1[0];
4214 9 : res_op1 = _r1;
4215 : }
4216 9 : tree _r;
4217 9 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4218 9 : if (TREE_SIDE_EFFECTS (captures[0]))
4219 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4220 9 : if (TREE_SIDE_EFFECTS (captures[1]))
4221 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4222 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
4223 9 : return _r;
4224 : }
4225 0 : next_after_fail1367:;
4226 : }
4227 : }
4228 : }
4229 0 : break;
4230 : }
4231 : default:;
4232 : }
4233 : break;
4234 : }
4235 3645777 : default:;
4236 : }
4237 3645777 : switch (TREE_CODE (_p1))
4238 : {
4239 209 : case POINTER_PLUS_EXPR:
4240 209 : {
4241 209 : tree _q30 = TREE_OPERAND (_p1, 0);
4242 209 : tree _q31 = TREE_OPERAND (_p1, 1);
4243 209 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
4244 : {
4245 124 : {
4246 124 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
4247 124 : if (!TYPE_SATURATING (type)
4248 : )
4249 : {
4250 124 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4251 248 : && !FIXED_POINT_TYPE_P (type)
4252 : )
4253 : {
4254 124 : {
4255 124 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4256 124 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1368;
4257 124 : {
4258 124 : tree res_op0;
4259 124 : {
4260 124 : tree _o1[1], _r1;
4261 124 : {
4262 124 : tree _o2[1], _r2;
4263 124 : _o2[0] = captures[1];
4264 124 : if (TREE_TYPE (_o2[0]) != stype)
4265 : {
4266 124 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4267 : }
4268 : else
4269 : _r2 = _o2[0];
4270 124 : _o1[0] = _r2;
4271 : }
4272 124 : if (TREE_TYPE (_o1[0]) != type)
4273 : {
4274 124 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4275 : }
4276 : else
4277 : _r1 = _o1[0];
4278 124 : res_op0 = _r1;
4279 : }
4280 124 : tree _r;
4281 124 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4282 124 : if (TREE_SIDE_EFFECTS (captures[2]))
4283 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4284 124 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
4285 124 : return _r;
4286 : }
4287 0 : next_after_fail1368:;
4288 : }
4289 : }
4290 : }
4291 : }
4292 : }
4293 : break;
4294 : }
4295 3645653 : default:;
4296 : }
4297 3645653 : switch (TREE_CODE (_p0))
4298 : {
4299 3957 : case POINTER_PLUS_EXPR:
4300 3957 : {
4301 3957 : tree _q20 = TREE_OPERAND (_p0, 0);
4302 3957 : tree _q21 = TREE_OPERAND (_p0, 1);
4303 3957 : switch (TREE_CODE (_p1))
4304 : {
4305 30 : case POINTER_PLUS_EXPR:
4306 30 : {
4307 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4308 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4309 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4310 : {
4311 2 : {
4312 2 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
4313 2 : if (!TYPE_SATURATING (type)
4314 : )
4315 : {
4316 2 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4317 4 : && !FIXED_POINT_TYPE_P (type)
4318 : )
4319 : {
4320 2 : {
4321 2 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4322 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1369;
4323 2 : {
4324 2 : tree res_op0;
4325 2 : {
4326 2 : tree _o1[1], _r1;
4327 2 : {
4328 2 : tree _o2[1], _r2;
4329 2 : _o2[0] = captures[1];
4330 2 : if (TREE_TYPE (_o2[0]) != stype)
4331 : {
4332 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4333 : }
4334 : else
4335 : _r2 = _o2[0];
4336 2 : _o1[0] = _r2;
4337 : }
4338 2 : if (TREE_TYPE (_o1[0]) != type)
4339 : {
4340 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4341 : }
4342 : else
4343 : _r1 = _o1[0];
4344 2 : res_op0 = _r1;
4345 : }
4346 2 : tree res_op1;
4347 2 : {
4348 2 : tree _o1[1], _r1;
4349 2 : {
4350 2 : tree _o2[1], _r2;
4351 2 : _o2[0] = captures[2];
4352 2 : if (TREE_TYPE (_o2[0]) != stype)
4353 : {
4354 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4355 : }
4356 : else
4357 : _r2 = _o2[0];
4358 2 : _o1[0] = _r2;
4359 : }
4360 2 : if (TREE_TYPE (_o1[0]) != type)
4361 : {
4362 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4363 : }
4364 : else
4365 : _r1 = _o1[0];
4366 2 : res_op1 = _r1;
4367 : }
4368 2 : tree _r;
4369 2 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4370 2 : if (TREE_SIDE_EFFECTS (captures[3]))
4371 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4372 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 939, __FILE__, __LINE__, true);
4373 2 : return _r;
4374 : }
4375 0 : next_after_fail1369:;
4376 : }
4377 : }
4378 : }
4379 : }
4380 : }
4381 : break;
4382 : }
4383 : default:;
4384 : }
4385 : break;
4386 : }
4387 3645651 : default:;
4388 : }
4389 3645651 : if (integer_zerop (_p0))
4390 : {
4391 0 : {
4392 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
4393 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1370;
4394 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1370;
4395 0 : {
4396 0 : tree res_op0;
4397 0 : {
4398 0 : tree _o1[1], _r1;
4399 0 : _o1[0] = captures[0];
4400 0 : if (TREE_TYPE (_o1[0]) != type)
4401 : {
4402 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4403 : }
4404 : else
4405 : _r1 = _o1[0];
4406 0 : res_op0 = _r1;
4407 : }
4408 0 : tree _r;
4409 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4410 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
4411 0 : return _r;
4412 : }
4413 : next_after_fail1370:;
4414 : }
4415 : }
4416 : return NULL_TREE;
4417 : }
4418 :
4419 : tree
4420 2252885 : 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)
4421 : {
4422 2252885 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4423 2252885 : if (integer_onep (_p1))
4424 : {
4425 775391 : {
4426 775391 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4427 775391 : tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4428 775391 : if (res) return res;
4429 : }
4430 : }
4431 1477494 : if (integer_zerop (_p0))
4432 : {
4433 4 : {
4434 4 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4435 4 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4436 4 : if (res) return res;
4437 : }
4438 : }
4439 1477490 : switch (TREE_CODE (_p1))
4440 : {
4441 1015 : case SSA_NAME:
4442 1015 : {
4443 1015 : {
4444 1015 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4445 1015 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4446 1015 : if (res) return res;
4447 : }
4448 1015 : break;
4449 : }
4450 1477490 : default:;
4451 : }
4452 1477490 : if (integer_minus_onep (_p1))
4453 : {
4454 229 : {
4455 229 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4456 229 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4457 229 : if (res) return res;
4458 : }
4459 : }
4460 1477429 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4461 : {
4462 0 : {
4463 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4464 0 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4465 0 : if (res) return res;
4466 : }
4467 : }
4468 1477429 : switch (TREE_CODE (_p1))
4469 : {
4470 0 : case ABS_EXPR:
4471 0 : {
4472 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4473 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4474 : {
4475 0 : {
4476 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4477 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4478 0 : if (res) return res;
4479 : }
4480 : }
4481 : break;
4482 : }
4483 1477429 : default:;
4484 : }
4485 1477429 : switch (TREE_CODE (_p0))
4486 : {
4487 0 : case ABS_EXPR:
4488 0 : {
4489 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4490 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4491 : {
4492 0 : {
4493 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4494 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4495 0 : if (res) return res;
4496 : }
4497 : }
4498 : break;
4499 : }
4500 1477429 : default:;
4501 : }
4502 1477429 : switch (TREE_CODE (_p1))
4503 : {
4504 0 : case NEGATE_EXPR:
4505 0 : {
4506 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4507 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4508 : {
4509 0 : {
4510 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4511 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4512 0 : if (res) return res;
4513 : }
4514 : }
4515 : break;
4516 : }
4517 1477429 : default:;
4518 : }
4519 1477429 : switch (TREE_CODE (_p0))
4520 : {
4521 310 : case NEGATE_EXPR:
4522 310 : {
4523 310 : tree _q20 = TREE_OPERAND (_p0, 0);
4524 310 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4525 : {
4526 0 : {
4527 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4528 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4529 0 : if (res) return res;
4530 : }
4531 : }
4532 : break;
4533 : }
4534 1477429 : default:;
4535 : }
4536 1477429 : {
4537 1477429 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4538 1477429 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR);
4539 1477429 : if (res) return res;
4540 : }
4541 5602 : switch (TREE_CODE (_p0))
4542 : {
4543 388 : CASE_CONVERT:
4544 388 : {
4545 388 : tree _q20 = TREE_OPERAND (_p0, 0);
4546 388 : switch (TREE_CODE (_q20))
4547 : {
4548 0 : case BIT_AND_EXPR:
4549 0 : {
4550 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4551 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4552 0 : switch (TREE_CODE (_q31))
4553 : {
4554 0 : case INTEGER_CST:
4555 0 : {
4556 0 : switch (TREE_CODE (_p1))
4557 : {
4558 0 : case INTEGER_CST:
4559 0 : {
4560 0 : {
4561 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4562 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4563 0 : if (res) return res;
4564 : }
4565 0 : break;
4566 : }
4567 : default:;
4568 : }
4569 : break;
4570 : }
4571 : default:;
4572 : }
4573 : break;
4574 : }
4575 : default:;
4576 : }
4577 : break;
4578 : }
4579 0 : case BIT_AND_EXPR:
4580 0 : {
4581 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4582 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4583 0 : switch (TREE_CODE (_q21))
4584 : {
4585 0 : case INTEGER_CST:
4586 0 : {
4587 0 : switch (TREE_CODE (_p1))
4588 : {
4589 0 : case INTEGER_CST:
4590 0 : {
4591 0 : {
4592 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4593 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4594 0 : if (res) return res;
4595 : }
4596 0 : break;
4597 : }
4598 : default:;
4599 : }
4600 : break;
4601 : }
4602 : default:;
4603 : }
4604 : break;
4605 : }
4606 0 : case MULT_EXPR:
4607 0 : {
4608 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4609 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4610 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4611 : {
4612 0 : {
4613 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4614 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4615 0 : if (res) return res;
4616 : }
4617 : }
4618 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4619 : {
4620 0 : {
4621 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4622 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4623 0 : if (res) return res;
4624 : }
4625 : }
4626 0 : switch (TREE_CODE (_q21))
4627 : {
4628 0 : case INTEGER_CST:
4629 0 : {
4630 0 : switch (TREE_CODE (_p1))
4631 : {
4632 0 : case MULT_EXPR:
4633 0 : {
4634 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4635 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4636 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4637 : {
4638 0 : switch (TREE_CODE (_q51))
4639 : {
4640 0 : case INTEGER_CST:
4641 0 : {
4642 0 : {
4643 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4644 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4645 0 : if (res) return res;
4646 : }
4647 0 : break;
4648 : }
4649 : default:;
4650 : }
4651 : }
4652 : break;
4653 : }
4654 : default:;
4655 : }
4656 : break;
4657 : }
4658 : default:;
4659 : }
4660 : break;
4661 : }
4662 0 : case VEC_COND_EXPR:
4663 0 : {
4664 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4665 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4666 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4667 0 : switch (TREE_CODE (_p1))
4668 : {
4669 0 : case VEC_COND_EXPR:
4670 0 : {
4671 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4672 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4673 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4674 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4675 : {
4676 0 : {
4677 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4678 0 : if (VECTOR_TYPE_P (type)
4679 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4680 : || types_match (type, TREE_TYPE (captures[2]))
4681 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4682 : || (optimize_vectors_before_lowering_p ()
4683 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4684 : )
4685 : {
4686 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1562;
4687 0 : {
4688 0 : tree res_op0;
4689 0 : res_op0 = captures[1];
4690 0 : tree res_op1;
4691 0 : {
4692 0 : tree _o1[2], _r1;
4693 0 : _o1[0] = captures[2];
4694 0 : _o1[1] = captures[5];
4695 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4696 0 : if (EXPR_P (_r1))
4697 0 : goto next_after_fail1562;
4698 0 : res_op1 = _r1;
4699 : }
4700 0 : tree res_op2;
4701 0 : {
4702 0 : tree _o1[2], _r1;
4703 0 : _o1[0] = captures[3];
4704 0 : _o1[1] = captures[6];
4705 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4706 0 : if (EXPR_P (_r1))
4707 0 : goto next_after_fail1562;
4708 0 : res_op2 = _r1;
4709 : }
4710 0 : tree _r;
4711 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4712 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
4713 0 : return _r;
4714 : }
4715 0 : next_after_fail1562:;
4716 : }
4717 : }
4718 : }
4719 : break;
4720 : }
4721 0 : default:;
4722 : }
4723 0 : {
4724 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4725 0 : if (VECTOR_TYPE_P (type)
4726 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4727 : || types_match (type, TREE_TYPE (captures[2]))
4728 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4729 : || (optimize_vectors_before_lowering_p ()
4730 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4731 : )
4732 : {
4733 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1563;
4734 0 : {
4735 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1563;
4736 0 : tree res_op0;
4737 0 : res_op0 = captures[1];
4738 0 : tree res_op1;
4739 0 : {
4740 0 : tree _o1[2], _r1;
4741 0 : _o1[0] = captures[2];
4742 0 : _o1[1] = unshare_expr (captures[4]);
4743 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4744 0 : if (EXPR_P (_r1))
4745 0 : goto next_after_fail1563;
4746 0 : res_op1 = _r1;
4747 : }
4748 0 : tree res_op2;
4749 0 : {
4750 0 : tree _o1[2], _r1;
4751 0 : _o1[0] = captures[3];
4752 0 : _o1[1] = captures[4];
4753 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4754 0 : if (EXPR_P (_r1))
4755 0 : goto next_after_fail1563;
4756 0 : res_op2 = _r1;
4757 : }
4758 0 : tree _r;
4759 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4760 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
4761 0 : return _r;
4762 : }
4763 0 : next_after_fail1563:;
4764 : }
4765 : }
4766 0 : break;
4767 : }
4768 5602 : default:;
4769 : }
4770 5602 : switch (TREE_CODE (_p1))
4771 : {
4772 0 : case VEC_COND_EXPR:
4773 0 : {
4774 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4775 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4776 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4777 0 : {
4778 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4779 0 : if (VECTOR_TYPE_P (type)
4780 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4781 : || types_match (type, TREE_TYPE (captures[3]))
4782 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4783 : || (optimize_vectors_before_lowering_p ()
4784 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4785 : )
4786 : {
4787 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1564;
4788 0 : {
4789 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1564;
4790 0 : tree res_op0;
4791 0 : res_op0 = captures[2];
4792 0 : tree res_op1;
4793 0 : {
4794 0 : tree _o1[2], _r1;
4795 0 : _o1[0] = unshare_expr (captures[0]);
4796 0 : _o1[1] = captures[3];
4797 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4798 0 : if (EXPR_P (_r1))
4799 0 : goto next_after_fail1564;
4800 0 : res_op1 = _r1;
4801 : }
4802 0 : tree res_op2;
4803 0 : {
4804 0 : tree _o1[2], _r1;
4805 0 : _o1[0] = captures[0];
4806 0 : _o1[1] = captures[4];
4807 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4808 0 : if (EXPR_P (_r1))
4809 0 : goto next_after_fail1564;
4810 0 : res_op2 = _r1;
4811 : }
4812 0 : tree _r;
4813 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4814 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
4815 0 : return _r;
4816 : }
4817 0 : next_after_fail1564:;
4818 : }
4819 : }
4820 0 : break;
4821 : }
4822 : default:;
4823 : }
4824 : return NULL_TREE;
4825 : }
4826 :
4827 : tree
4828 882907 : 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)
4829 : {
4830 882907 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4831 882907 : {
4832 882907 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4833 882907 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR);
4834 882907 : if (res) return res;
4835 : }
4836 3559 : if (integer_zerop (_p0))
4837 : {
4838 0 : {
4839 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4840 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4841 0 : if (res) return res;
4842 : }
4843 : }
4844 3559 : if (integer_onep (_p1))
4845 : {
4846 0 : {
4847 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4848 0 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4849 0 : if (res) return res;
4850 : }
4851 : }
4852 3559 : if (integer_minus_onep (_p1))
4853 : {
4854 0 : {
4855 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4856 0 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4857 0 : if (res) return res;
4858 : }
4859 : }
4860 3559 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4861 : {
4862 0 : {
4863 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4864 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4865 0 : if (res) return res;
4866 : }
4867 : }
4868 3559 : switch (TREE_CODE (_p0))
4869 : {
4870 0 : case FLOOR_MOD_EXPR:
4871 0 : {
4872 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4873 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4874 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4875 : {
4876 0 : {
4877 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4878 0 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4879 0 : if (res) return res;
4880 : }
4881 : }
4882 : break;
4883 : }
4884 4 : case MULT_EXPR:
4885 4 : {
4886 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4887 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4888 4 : switch (TREE_CODE (_q21))
4889 : {
4890 4 : case INTEGER_CST:
4891 4 : {
4892 4 : switch (TREE_CODE (_p1))
4893 : {
4894 4 : case INTEGER_CST:
4895 4 : {
4896 4 : {
4897 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4898 4 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4899 4 : if (res) return res;
4900 : }
4901 4 : break;
4902 : }
4903 : default:;
4904 : }
4905 : break;
4906 : }
4907 : default:;
4908 : }
4909 : break;
4910 : }
4911 3559 : default:;
4912 : }
4913 3559 : switch (TREE_CODE (_p1))
4914 : {
4915 1 : CASE_CONVERT:
4916 1 : {
4917 1 : tree _q30 = TREE_OPERAND (_p1, 0);
4918 1 : {
4919 1 : tree _q30_pops[1];
4920 1 : if (tree_power_of_two_cand (_q30, _q30_pops))
4921 : {
4922 0 : tree _q40 = _q30_pops[0];
4923 0 : {
4924 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
4925 0 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4926 0 : if (res) return res;
4927 : }
4928 : }
4929 : }
4930 1 : break;
4931 : }
4932 3559 : default:;
4933 : }
4934 3559 : {
4935 3559 : tree _p1_pops[1];
4936 3559 : if (tree_power_of_two_cand (_p1, _p1_pops))
4937 : {
4938 1778 : tree _q30 = _p1_pops[0];
4939 1778 : {
4940 1778 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
4941 1778 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4942 1778 : if (res) return res;
4943 : }
4944 : }
4945 : }
4946 3519 : switch (TREE_CODE (_p0))
4947 : {
4948 0 : case VEC_COND_EXPR:
4949 0 : {
4950 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4951 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4952 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4953 0 : switch (TREE_CODE (_p1))
4954 : {
4955 0 : case VEC_COND_EXPR:
4956 0 : {
4957 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4958 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4959 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4960 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4961 : {
4962 0 : {
4963 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4964 0 : if (VECTOR_TYPE_P (type)
4965 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
4966 : || types_match (type, TREE_TYPE (captures[2]))
4967 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4968 : || (optimize_vectors_before_lowering_p ()
4969 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4970 : )
4971 : {
4972 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1571;
4973 0 : {
4974 0 : tree res_op0;
4975 0 : res_op0 = captures[1];
4976 0 : tree res_op1;
4977 0 : {
4978 0 : tree _o1[2], _r1;
4979 0 : _o1[0] = captures[2];
4980 0 : _o1[1] = captures[5];
4981 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
4982 0 : if (EXPR_P (_r1))
4983 0 : goto next_after_fail1571;
4984 0 : res_op1 = _r1;
4985 : }
4986 0 : tree res_op2;
4987 0 : {
4988 0 : tree _o1[2], _r1;
4989 0 : _o1[0] = captures[3];
4990 0 : _o1[1] = captures[6];
4991 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
4992 0 : if (EXPR_P (_r1))
4993 0 : goto next_after_fail1571;
4994 0 : res_op2 = _r1;
4995 : }
4996 0 : tree _r;
4997 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4998 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
4999 0 : return _r;
5000 : }
5001 0 : next_after_fail1571:;
5002 : }
5003 : }
5004 : }
5005 : break;
5006 : }
5007 0 : default:;
5008 : }
5009 0 : {
5010 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5011 0 : if (VECTOR_TYPE_P (type)
5012 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5013 : || types_match (type, TREE_TYPE (captures[2]))
5014 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5015 : || (optimize_vectors_before_lowering_p ()
5016 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5017 : )
5018 : {
5019 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1572;
5020 0 : {
5021 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1572;
5022 0 : tree res_op0;
5023 0 : res_op0 = captures[1];
5024 0 : tree res_op1;
5025 0 : {
5026 0 : tree _o1[2], _r1;
5027 0 : _o1[0] = captures[2];
5028 0 : _o1[1] = unshare_expr (captures[4]);
5029 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5030 0 : if (EXPR_P (_r1))
5031 0 : goto next_after_fail1572;
5032 0 : res_op1 = _r1;
5033 : }
5034 0 : tree res_op2;
5035 0 : {
5036 0 : tree _o1[2], _r1;
5037 0 : _o1[0] = captures[3];
5038 0 : _o1[1] = captures[4];
5039 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5040 0 : if (EXPR_P (_r1))
5041 0 : goto next_after_fail1572;
5042 0 : res_op2 = _r1;
5043 : }
5044 0 : tree _r;
5045 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5046 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
5047 0 : return _r;
5048 : }
5049 0 : next_after_fail1572:;
5050 : }
5051 : }
5052 0 : break;
5053 : }
5054 3519 : default:;
5055 : }
5056 3519 : switch (TREE_CODE (_p1))
5057 : {
5058 0 : case VEC_COND_EXPR:
5059 0 : {
5060 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5061 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5062 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5063 0 : {
5064 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5065 0 : if (VECTOR_TYPE_P (type)
5066 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5067 : || types_match (type, TREE_TYPE (captures[3]))
5068 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5069 : || (optimize_vectors_before_lowering_p ()
5070 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5071 : )
5072 : {
5073 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1573;
5074 0 : {
5075 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1573;
5076 0 : tree res_op0;
5077 0 : res_op0 = captures[2];
5078 0 : tree res_op1;
5079 0 : {
5080 0 : tree _o1[2], _r1;
5081 0 : _o1[0] = unshare_expr (captures[0]);
5082 0 : _o1[1] = captures[3];
5083 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5084 0 : if (EXPR_P (_r1))
5085 0 : goto next_after_fail1573;
5086 0 : res_op1 = _r1;
5087 : }
5088 0 : tree res_op2;
5089 0 : {
5090 0 : tree _o1[2], _r1;
5091 0 : _o1[0] = captures[0];
5092 0 : _o1[1] = captures[4];
5093 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5094 0 : if (EXPR_P (_r1))
5095 0 : goto next_after_fail1573;
5096 0 : res_op2 = _r1;
5097 : }
5098 0 : tree _r;
5099 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5100 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
5101 0 : return _r;
5102 : }
5103 0 : next_after_fail1573:;
5104 : }
5105 : }
5106 0 : break;
5107 : }
5108 : default:;
5109 : }
5110 : return NULL_TREE;
5111 : }
5112 :
5113 : tree
5114 18463820 : generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5115 : {
5116 18463820 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5117 18463820 : switch (TREE_CODE (_p0))
5118 : {
5119 2166 : case RDIV_EXPR:
5120 2166 : {
5121 2166 : tree _q20 = TREE_OPERAND (_p0, 0);
5122 2166 : tree _q21 = TREE_OPERAND (_p0, 1);
5123 2166 : switch (TREE_CODE (_q20))
5124 : {
5125 677 : case REAL_CST:
5126 677 : {
5127 677 : if (real_zerop (_p1))
5128 : {
5129 392 : {
5130 392 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5131 392 : tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5132 392 : if (res) return res;
5133 : }
5134 : }
5135 : break;
5136 : }
5137 : default:;
5138 : }
5139 : break;
5140 : }
5141 2942 : case TRUNC_MOD_EXPR:
5142 2942 : {
5143 2942 : tree _q20 = TREE_OPERAND (_p0, 0);
5144 2942 : tree _q21 = TREE_OPERAND (_p0, 1);
5145 2942 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5146 : {
5147 76 : {
5148 76 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5149 76 : tree res = generic_simplify_371 (loc, type, _p0, _p1, captures, LT_EXPR);
5150 76 : if (res) return res;
5151 : }
5152 : }
5153 : break;
5154 : }
5155 143277 : case MULT_EXPR:
5156 143277 : {
5157 143277 : tree _q20 = TREE_OPERAND (_p0, 0);
5158 143277 : tree _q21 = TREE_OPERAND (_p0, 1);
5159 143277 : switch (TREE_CODE (_p1))
5160 : {
5161 50493 : case MULT_EXPR:
5162 50493 : {
5163 50493 : tree _q50 = TREE_OPERAND (_p1, 0);
5164 50493 : tree _q51 = TREE_OPERAND (_p1, 1);
5165 50493 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5166 : {
5167 10247 : {
5168 10247 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5169 10247 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, LT_EXPR);
5170 10247 : if (res) return res;
5171 : }
5172 : }
5173 42301 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5174 : {
5175 0 : {
5176 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5177 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, LT_EXPR);
5178 0 : if (res) return res;
5179 : }
5180 : }
5181 42301 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5182 : {
5183 0 : {
5184 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5185 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, LT_EXPR);
5186 0 : if (res) return res;
5187 : }
5188 : }
5189 42301 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5190 : {
5191 1370 : {
5192 1370 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5193 1370 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, LT_EXPR);
5194 1370 : if (res) return res;
5195 : }
5196 : }
5197 : break;
5198 : }
5199 : default:;
5200 : }
5201 : break;
5202 : }
5203 3316655 : CASE_CONVERT:
5204 3316655 : {
5205 3316655 : tree _q20 = TREE_OPERAND (_p0, 0);
5206 3316655 : switch (TREE_CODE (_q20))
5207 : {
5208 107 : case EXACT_DIV_EXPR:
5209 107 : {
5210 107 : tree _q30 = TREE_OPERAND (_q20, 0);
5211 107 : tree _q31 = TREE_OPERAND (_q20, 1);
5212 107 : switch (TREE_CODE (_q31))
5213 : {
5214 107 : case INTEGER_CST:
5215 107 : {
5216 107 : switch (TREE_CODE (_p1))
5217 : {
5218 37 : CASE_CONVERT:
5219 37 : {
5220 37 : tree _q60 = TREE_OPERAND (_p1, 0);
5221 37 : switch (TREE_CODE (_q60))
5222 : {
5223 0 : case EXACT_DIV_EXPR:
5224 0 : {
5225 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5226 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5227 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
5228 : {
5229 0 : {
5230 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
5231 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, LT_EXPR);
5232 0 : if (res) return res;
5233 : }
5234 : }
5235 : break;
5236 : }
5237 : default:;
5238 : }
5239 : break;
5240 : }
5241 : default:;
5242 : }
5243 : break;
5244 : }
5245 : default:;
5246 : }
5247 : break;
5248 : }
5249 : default:;
5250 : }
5251 : break;
5252 : }
5253 1032 : case EXACT_DIV_EXPR:
5254 1032 : {
5255 1032 : tree _q20 = TREE_OPERAND (_p0, 0);
5256 1032 : tree _q21 = TREE_OPERAND (_p0, 1);
5257 1032 : switch (TREE_CODE (_q21))
5258 : {
5259 1032 : case INTEGER_CST:
5260 1032 : {
5261 1032 : switch (TREE_CODE (_p1))
5262 : {
5263 2 : case EXACT_DIV_EXPR:
5264 2 : {
5265 2 : tree _q50 = TREE_OPERAND (_p1, 0);
5266 2 : tree _q51 = TREE_OPERAND (_p1, 1);
5267 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5268 : {
5269 0 : {
5270 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5271 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, LT_EXPR);
5272 0 : if (res) return res;
5273 : }
5274 : }
5275 : break;
5276 : }
5277 : default:;
5278 : }
5279 : break;
5280 : }
5281 : default:;
5282 : }
5283 : break;
5284 : }
5285 12431 : case TRUNC_DIV_EXPR:
5286 12431 : {
5287 12431 : tree _q20 = TREE_OPERAND (_p0, 0);
5288 12431 : tree _q21 = TREE_OPERAND (_p0, 1);
5289 12431 : switch (TREE_CODE (_q21))
5290 : {
5291 3489 : case INTEGER_CST:
5292 3489 : {
5293 3489 : switch (TREE_CODE (_p1))
5294 : {
5295 1464 : case INTEGER_CST:
5296 1464 : {
5297 1464 : {
5298 1464 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5299 1464 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, LT_EXPR);
5300 1464 : if (res) return res;
5301 : }
5302 698 : break;
5303 : }
5304 : default:;
5305 : }
5306 : break;
5307 : }
5308 : default:;
5309 : }
5310 : break;
5311 : }
5312 2360209 : case PLUS_EXPR:
5313 2360209 : {
5314 2360209 : tree _q20 = TREE_OPERAND (_p0, 0);
5315 2360209 : tree _q21 = TREE_OPERAND (_p0, 1);
5316 2360209 : switch (TREE_CODE (_p1))
5317 : {
5318 344175 : case PLUS_EXPR:
5319 344175 : {
5320 344175 : tree _q50 = TREE_OPERAND (_p1, 0);
5321 344175 : tree _q51 = TREE_OPERAND (_p1, 1);
5322 344175 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5323 : {
5324 136991 : {
5325 136991 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5326 136991 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, LT_EXPR);
5327 136991 : if (res) return res;
5328 : }
5329 : }
5330 285247 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5331 : {
5332 24 : {
5333 24 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5334 24 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, LT_EXPR);
5335 24 : if (res) return res;
5336 : }
5337 : }
5338 285231 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5339 : {
5340 48 : {
5341 48 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5342 48 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, LT_EXPR);
5343 48 : if (res) return res;
5344 : }
5345 : }
5346 285215 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5347 : {
5348 1739 : {
5349 1739 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5350 1739 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, LT_EXPR);
5351 1739 : if (res) return res;
5352 : }
5353 : }
5354 : break;
5355 : }
5356 2300899 : default:;
5357 : }
5358 2300899 : switch (TREE_CODE (_q21))
5359 : {
5360 1788020 : case INTEGER_CST:
5361 1788020 : {
5362 1788020 : switch (TREE_CODE (_p1))
5363 : {
5364 279900 : case PLUS_EXPR:
5365 279900 : {
5366 279900 : tree _q50 = TREE_OPERAND (_p1, 0);
5367 279900 : tree _q51 = TREE_OPERAND (_p1, 1);
5368 279900 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5369 : {
5370 78063 : {
5371 78063 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5372 78063 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, LT_EXPR);
5373 78063 : if (res) return res;
5374 : }
5375 : }
5376 : break;
5377 : }
5378 : default:;
5379 : }
5380 : break;
5381 : }
5382 2300894 : default:;
5383 : }
5384 2300894 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5385 : {
5386 206650 : {
5387 206650 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5388 206650 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
5389 206650 : if (res) return res;
5390 : }
5391 : }
5392 2121397 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5393 : {
5394 56014 : {
5395 56014 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5396 56014 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
5397 56014 : if (res) return res;
5398 : }
5399 : }
5400 : break;
5401 : }
5402 193380 : case MINUS_EXPR:
5403 193380 : {
5404 193380 : tree _q20 = TREE_OPERAND (_p0, 0);
5405 193380 : tree _q21 = TREE_OPERAND (_p0, 1);
5406 193380 : switch (TREE_CODE (_p1))
5407 : {
5408 5192 : case MINUS_EXPR:
5409 5192 : {
5410 5192 : tree _q50 = TREE_OPERAND (_p1, 0);
5411 5192 : tree _q51 = TREE_OPERAND (_p1, 1);
5412 5192 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5413 : {
5414 24 : {
5415 24 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5416 24 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5417 24 : if (res) return res;
5418 : }
5419 : }
5420 5192 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5421 : {
5422 215 : {
5423 215 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5424 215 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5425 215 : if (res) return res;
5426 : }
5427 : }
5428 : break;
5429 : }
5430 : default:;
5431 : }
5432 : break;
5433 : }
5434 110740 : case POINTER_DIFF_EXPR:
5435 110740 : {
5436 110740 : tree _q20 = TREE_OPERAND (_p0, 0);
5437 110740 : tree _q21 = TREE_OPERAND (_p0, 1);
5438 110740 : switch (TREE_CODE (_p1))
5439 : {
5440 385 : case POINTER_DIFF_EXPR:
5441 385 : {
5442 385 : tree _q50 = TREE_OPERAND (_p1, 0);
5443 385 : tree _q51 = TREE_OPERAND (_p1, 1);
5444 385 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5445 : {
5446 0 : {
5447 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5448 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, LT_EXPR);
5449 0 : if (res) return res;
5450 : }
5451 : }
5452 385 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5453 : {
5454 0 : {
5455 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5456 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LT_EXPR);
5457 0 : if (res) return res;
5458 : }
5459 : }
5460 : break;
5461 : }
5462 : default:;
5463 : }
5464 : break;
5465 : }
5466 18215445 : default:;
5467 : }
5468 18215445 : switch (TREE_CODE (_p1))
5469 : {
5470 351614 : case PLUS_EXPR:
5471 351614 : {
5472 351614 : tree _q30 = TREE_OPERAND (_p1, 0);
5473 351614 : tree _q31 = TREE_OPERAND (_p1, 1);
5474 351614 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5475 : {
5476 120 : {
5477 120 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5478 120 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GT_EXPR);
5479 120 : if (res) return res;
5480 : }
5481 : }
5482 351494 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5483 : {
5484 80 : {
5485 80 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5486 80 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GT_EXPR);
5487 80 : if (res) return res;
5488 : }
5489 : }
5490 : break;
5491 : }
5492 23668 : case MINUS_EXPR:
5493 23668 : {
5494 23668 : tree _q30 = TREE_OPERAND (_p1, 0);
5495 23668 : tree _q31 = TREE_OPERAND (_p1, 1);
5496 23668 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5497 : {
5498 0 : {
5499 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5500 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, LT_EXPR);
5501 0 : if (res) return res;
5502 : }
5503 : }
5504 : break;
5505 : }
5506 18215325 : default:;
5507 : }
5508 18215325 : switch (TREE_CODE (_p0))
5509 : {
5510 193380 : case MINUS_EXPR:
5511 193380 : {
5512 193380 : tree _q20 = TREE_OPERAND (_p0, 0);
5513 193380 : tree _q21 = TREE_OPERAND (_p0, 1);
5514 193380 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5515 : {
5516 3337 : {
5517 3337 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5518 3337 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, GT_EXPR);
5519 3337 : if (res) return res;
5520 : }
5521 : }
5522 : break;
5523 : }
5524 1470 : case BIT_IOR_EXPR:
5525 1470 : {
5526 1470 : tree _q20 = TREE_OPERAND (_p0, 0);
5527 1470 : tree _q21 = TREE_OPERAND (_p0, 1);
5528 1470 : if (tree_expr_nonnegative_p (_q20))
5529 : {
5530 555 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5531 : {
5532 0 : {
5533 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5534 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5535 0 : if (res) return res;
5536 : }
5537 : }
5538 : }
5539 1470 : if (tree_expr_nonnegative_p (_q21))
5540 : {
5541 813 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5542 : {
5543 0 : {
5544 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5545 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5546 0 : if (res) return res;
5547 : }
5548 : }
5549 : }
5550 : break;
5551 : }
5552 18212901 : default:;
5553 : }
5554 18212901 : switch (TREE_CODE (_p1))
5555 : {
5556 449 : case BIT_AND_EXPR:
5557 449 : {
5558 449 : tree _q30 = TREE_OPERAND (_p1, 0);
5559 449 : tree _q31 = TREE_OPERAND (_p1, 1);
5560 449 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5561 : {
5562 0 : if (tree_expr_nonnegative_p (_q30))
5563 : {
5564 0 : {
5565 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5566 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5567 0 : if (res) return res;
5568 : }
5569 : }
5570 : }
5571 449 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5572 : {
5573 0 : if (tree_expr_nonnegative_p (_q31))
5574 : {
5575 0 : {
5576 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5577 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5578 0 : if (res) return res;
5579 : }
5580 : }
5581 : }
5582 : break;
5583 : }
5584 18212901 : default:;
5585 : }
5586 18212901 : switch (TREE_CODE (_p0))
5587 : {
5588 9818 : case MIN_EXPR:
5589 9818 : {
5590 9818 : tree _q20 = TREE_OPERAND (_p0, 0);
5591 9818 : tree _q21 = TREE_OPERAND (_p0, 1);
5592 9818 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5593 : {
5594 1 : {
5595 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5596 1 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5597 1 : if (res) return res;
5598 : }
5599 : }
5600 9817 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5601 : {
5602 5 : {
5603 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5604 5 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5605 5 : if (res) return res;
5606 : }
5607 : }
5608 9815 : switch (TREE_CODE (_q21))
5609 : {
5610 774 : case INTEGER_CST:
5611 774 : {
5612 774 : switch (TREE_CODE (_p1))
5613 : {
5614 2 : case INTEGER_CST:
5615 2 : {
5616 2 : {
5617 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5618 2 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
5619 2 : if (res) return res;
5620 : }
5621 0 : break;
5622 : }
5623 : default:;
5624 : }
5625 : break;
5626 : }
5627 : default:;
5628 : }
5629 : break;
5630 : }
5631 18212896 : default:;
5632 : }
5633 18212896 : switch (TREE_CODE (_p1))
5634 : {
5635 1204 : case MAX_EXPR:
5636 1204 : {
5637 1204 : tree _q30 = TREE_OPERAND (_p1, 0);
5638 1204 : tree _q31 = TREE_OPERAND (_p1, 1);
5639 1204 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5640 : {
5641 0 : {
5642 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5643 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5644 0 : if (res) return res;
5645 : }
5646 : }
5647 1204 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5648 : {
5649 0 : {
5650 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5651 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5652 0 : if (res) return res;
5653 : }
5654 : }
5655 : break;
5656 : }
5657 915 : case MIN_EXPR:
5658 915 : {
5659 915 : tree _q30 = TREE_OPERAND (_p1, 0);
5660 915 : tree _q31 = TREE_OPERAND (_p1, 1);
5661 915 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5662 : {
5663 0 : {
5664 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5665 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5666 0 : if (res) return res;
5667 : }
5668 : }
5669 915 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5670 : {
5671 0 : {
5672 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5673 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5674 0 : if (res) return res;
5675 : }
5676 : }
5677 : break;
5678 : }
5679 18212896 : default:;
5680 : }
5681 18212896 : switch (TREE_CODE (_p0))
5682 : {
5683 6616 : case MAX_EXPR:
5684 6616 : {
5685 6616 : tree _q20 = TREE_OPERAND (_p0, 0);
5686 6616 : tree _q21 = TREE_OPERAND (_p0, 1);
5687 6616 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5688 : {
5689 1 : {
5690 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5691 1 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5692 1 : if (res) return res;
5693 : }
5694 : }
5695 6615 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5696 : {
5697 1 : {
5698 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5699 1 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5700 1 : if (res) return res;
5701 : }
5702 : }
5703 6614 : switch (TREE_CODE (_q21))
5704 : {
5705 6089 : case INTEGER_CST:
5706 6089 : {
5707 6089 : switch (TREE_CODE (_p1))
5708 : {
5709 1 : case INTEGER_CST:
5710 1 : {
5711 1 : {
5712 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5713 1 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
5714 1 : if (res) return res;
5715 : }
5716 0 : break;
5717 : }
5718 : default:;
5719 : }
5720 : break;
5721 : }
5722 : default:;
5723 : }
5724 : break;
5725 : }
5726 906 : case VEC_COND_EXPR:
5727 906 : {
5728 906 : tree _q20 = TREE_OPERAND (_p0, 0);
5729 906 : tree _q21 = TREE_OPERAND (_p0, 1);
5730 906 : tree _q22 = TREE_OPERAND (_p0, 2);
5731 906 : switch (TREE_CODE (_p1))
5732 : {
5733 0 : case VEC_COND_EXPR:
5734 0 : {
5735 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5736 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5737 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5738 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5739 : {
5740 0 : {
5741 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5742 0 : if (VECTOR_TYPE_P (type)
5743 0 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5744 0 : || types_match (type, TREE_TYPE (captures[2]))
5745 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5746 : || (optimize_vectors_before_lowering_p ()
5747 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5748 : )
5749 : {
5750 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1612;
5751 0 : {
5752 0 : tree res_op0;
5753 0 : res_op0 = captures[1];
5754 0 : tree res_op1;
5755 0 : {
5756 0 : tree _o1[2], _r1;
5757 0 : _o1[0] = captures[2];
5758 0 : _o1[1] = captures[5];
5759 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5760 0 : if (EXPR_P (_r1))
5761 0 : goto next_after_fail1612;
5762 0 : res_op1 = _r1;
5763 : }
5764 0 : tree res_op2;
5765 0 : {
5766 0 : tree _o1[2], _r1;
5767 0 : _o1[0] = captures[3];
5768 0 : _o1[1] = captures[6];
5769 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5770 0 : if (EXPR_P (_r1))
5771 0 : goto next_after_fail1612;
5772 0 : res_op2 = _r1;
5773 : }
5774 0 : tree _r;
5775 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5776 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
5777 0 : return _r;
5778 : }
5779 0 : next_after_fail1612:;
5780 : }
5781 : }
5782 : }
5783 : break;
5784 : }
5785 906 : default:;
5786 : }
5787 906 : {
5788 906 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5789 906 : if (VECTOR_TYPE_P (type)
5790 906 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5791 906 : || types_match (type, TREE_TYPE (captures[2]))
5792 906 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5793 : || (optimize_vectors_before_lowering_p ()
5794 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5795 : )
5796 : {
5797 906 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1613;
5798 906 : {
5799 906 : if (! tree_invariant_p (captures[4])) goto next_after_fail1613;
5800 36 : tree res_op0;
5801 36 : res_op0 = captures[1];
5802 36 : tree res_op1;
5803 36 : {
5804 36 : tree _o1[2], _r1;
5805 36 : _o1[0] = captures[2];
5806 36 : _o1[1] = unshare_expr (captures[4]);
5807 36 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5808 36 : if (EXPR_P (_r1))
5809 35 : goto next_after_fail1613;
5810 1 : res_op1 = _r1;
5811 : }
5812 1 : tree res_op2;
5813 1 : {
5814 1 : tree _o1[2], _r1;
5815 1 : _o1[0] = captures[3];
5816 1 : _o1[1] = captures[4];
5817 1 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5818 1 : if (EXPR_P (_r1))
5819 0 : goto next_after_fail1613;
5820 1 : res_op2 = _r1;
5821 : }
5822 1 : tree _r;
5823 1 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5824 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
5825 1 : return _r;
5826 : }
5827 905 : next_after_fail1613:;
5828 : }
5829 : }
5830 905 : break;
5831 : }
5832 18212892 : default:;
5833 : }
5834 18212892 : switch (TREE_CODE (_p1))
5835 : {
5836 58 : case VEC_COND_EXPR:
5837 58 : {
5838 58 : tree _q30 = TREE_OPERAND (_p1, 0);
5839 58 : tree _q31 = TREE_OPERAND (_p1, 1);
5840 58 : tree _q32 = TREE_OPERAND (_p1, 2);
5841 58 : {
5842 58 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5843 58 : if (VECTOR_TYPE_P (type)
5844 58 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5845 58 : || types_match (type, TREE_TYPE (captures[3]))
5846 58 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5847 : || (optimize_vectors_before_lowering_p ()
5848 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5849 : )
5850 : {
5851 58 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1614;
5852 58 : {
5853 58 : if (! tree_invariant_p (captures[0])) goto next_after_fail1614;
5854 0 : tree res_op0;
5855 0 : res_op0 = captures[2];
5856 0 : tree res_op1;
5857 0 : {
5858 0 : tree _o1[2], _r1;
5859 0 : _o1[0] = unshare_expr (captures[0]);
5860 0 : _o1[1] = captures[3];
5861 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5862 0 : if (EXPR_P (_r1))
5863 0 : goto next_after_fail1614;
5864 0 : res_op1 = _r1;
5865 : }
5866 0 : tree res_op2;
5867 0 : {
5868 0 : tree _o1[2], _r1;
5869 0 : _o1[0] = captures[0];
5870 0 : _o1[1] = captures[4];
5871 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5872 0 : if (EXPR_P (_r1))
5873 0 : goto next_after_fail1614;
5874 0 : res_op2 = _r1;
5875 : }
5876 0 : tree _r;
5877 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5878 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
5879 0 : return _r;
5880 : }
5881 58 : next_after_fail1614:;
5882 : }
5883 : }
5884 58 : break;
5885 : }
5886 18212892 : default:;
5887 : }
5888 18212892 : if (uniform_integer_cst_p (_p1))
5889 : {
5890 6563245 : {
5891 6563245 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5892 6563245 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
5893 6563245 : if (res) return res;
5894 : }
5895 : }
5896 15591078 : switch (TREE_CODE (_p0))
5897 : {
5898 126845 : case MULT_EXPR:
5899 126845 : {
5900 126845 : tree _q20 = TREE_OPERAND (_p0, 0);
5901 126845 : tree _q21 = TREE_OPERAND (_p0, 1);
5902 126845 : switch (TREE_CODE (_q21))
5903 : {
5904 70163 : case INTEGER_CST:
5905 70163 : {
5906 70163 : if (integer_zerop (_p1))
5907 : {
5908 5818 : {
5909 5818 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5910 5818 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5911 5818 : if (res) return res;
5912 : }
5913 : }
5914 : break;
5915 : }
5916 : default:;
5917 : }
5918 : break;
5919 : }
5920 15588096 : default:;
5921 : }
5922 15588096 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5923 : {
5924 3910 : {
5925 3910 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5926 3910 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LT_EXPR);
5927 3910 : if (res) return res;
5928 : }
5929 : }
5930 15584186 : switch (TREE_CODE (_p0))
5931 : {
5932 2488 : case BIT_NOT_EXPR:
5933 2488 : {
5934 2488 : tree _q20 = TREE_OPERAND (_p0, 0);
5935 2488 : switch (TREE_CODE (_p1))
5936 : {
5937 7 : case BIT_NOT_EXPR:
5938 7 : {
5939 7 : tree _q40 = TREE_OPERAND (_p1, 0);
5940 7 : {
5941 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
5942 7 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR);
5943 7 : if (res) return res;
5944 : }
5945 0 : break;
5946 : }
5947 2481 : default:;
5948 : }
5949 2481 : {
5950 2481 : tree _p1_pops[1];
5951 2481 : if (tree_nop_convert (_p1, _p1_pops))
5952 : {
5953 24 : tree _q40 = _p1_pops[0];
5954 24 : switch (TREE_CODE (_q40))
5955 : {
5956 0 : case BIT_NOT_EXPR:
5957 0 : {
5958 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5959 0 : {
5960 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
5961 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR);
5962 0 : if (res) return res;
5963 : }
5964 0 : break;
5965 : }
5966 : default:;
5967 : }
5968 : }
5969 : }
5970 2481 : if (CONSTANT_CLASS_P (_p1))
5971 : {
5972 20 : {
5973 20 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
5974 20 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5975 20 : if (res) return res;
5976 : }
5977 : }
5978 : break;
5979 : }
5980 15584159 : default:;
5981 : }
5982 15584159 : {
5983 15584159 : tree _p0_pops[1];
5984 15584159 : if (tree_nop_convert (_p0, _p0_pops))
5985 : {
5986 1697477 : tree _q20 = _p0_pops[0];
5987 1697477 : switch (TREE_CODE (_q20))
5988 : {
5989 0 : case BIT_NOT_EXPR:
5990 0 : {
5991 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5992 0 : switch (TREE_CODE (_p1))
5993 : {
5994 0 : case BIT_NOT_EXPR:
5995 0 : {
5996 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5997 0 : {
5998 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
5999 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LT_EXPR);
6000 0 : if (res) return res;
6001 : }
6002 0 : break;
6003 : }
6004 0 : default:;
6005 : }
6006 0 : {
6007 0 : tree _p1_pops[1];
6008 0 : if (tree_nop_convert (_p1, _p1_pops))
6009 : {
6010 0 : tree _q50 = _p1_pops[0];
6011 0 : switch (TREE_CODE (_q50))
6012 : {
6013 0 : case BIT_NOT_EXPR:
6014 0 : {
6015 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6016 0 : {
6017 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
6018 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LT_EXPR);
6019 0 : if (res) return res;
6020 : }
6021 0 : break;
6022 : }
6023 : default:;
6024 : }
6025 : }
6026 : }
6027 0 : if (CONSTANT_CLASS_P (_p1))
6028 : {
6029 0 : {
6030 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
6031 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6032 0 : if (res) return res;
6033 : }
6034 : }
6035 : break;
6036 : }
6037 : default:;
6038 : }
6039 : }
6040 : }
6041 15584159 : switch (TREE_CODE (_p1))
6042 : {
6043 2915355 : case REAL_CST:
6044 2915355 : {
6045 2915355 : {
6046 2915355 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6047 2915355 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LT_EXPR);
6048 2915355 : if (res) return res;
6049 : }
6050 2915262 : break;
6051 : }
6052 15584066 : default:;
6053 : }
6054 15584066 : switch (TREE_CODE (_p0))
6055 : {
6056 1999221 : case PLUS_EXPR:
6057 1999221 : {
6058 1999221 : tree _q20 = TREE_OPERAND (_p0, 0);
6059 1999221 : tree _q21 = TREE_OPERAND (_p0, 1);
6060 1999221 : switch (TREE_CODE (_q21))
6061 : {
6062 567 : case REAL_CST:
6063 567 : {
6064 567 : switch (TREE_CODE (_p1))
6065 : {
6066 217 : case REAL_CST:
6067 217 : {
6068 217 : {
6069 217 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6070 217 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR);
6071 217 : if (res) return res;
6072 : }
6073 215 : break;
6074 : }
6075 : default:;
6076 : }
6077 : break;
6078 : }
6079 1495182 : case INTEGER_CST:
6080 1495182 : {
6081 1495182 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6082 : {
6083 17977 : {
6084 17977 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
6085 17977 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6086 17977 : if (res) return res;
6087 : }
6088 : }
6089 : break;
6090 : }
6091 : default:;
6092 : }
6093 : break;
6094 : }
6095 183735 : case MINUS_EXPR:
6096 183735 : {
6097 183735 : tree _q20 = TREE_OPERAND (_p0, 0);
6098 183735 : tree _q21 = TREE_OPERAND (_p0, 1);
6099 183735 : switch (TREE_CODE (_q21))
6100 : {
6101 202 : case REAL_CST:
6102 202 : {
6103 202 : switch (TREE_CODE (_p1))
6104 : {
6105 187 : case REAL_CST:
6106 187 : {
6107 187 : {
6108 187 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6109 187 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, MINUS_EXPR, LT_EXPR);
6110 187 : if (res) return res;
6111 : }
6112 187 : break;
6113 : }
6114 : default:;
6115 : }
6116 : break;
6117 : }
6118 183735 : default:;
6119 : }
6120 183735 : switch (TREE_CODE (_q20))
6121 : {
6122 18817 : case REAL_CST:
6123 18817 : {
6124 18817 : switch (TREE_CODE (_p1))
6125 : {
6126 18618 : case REAL_CST:
6127 18618 : {
6128 18618 : {
6129 18618 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6130 18618 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR);
6131 18618 : if (res) return res;
6132 : }
6133 18608 : break;
6134 : }
6135 : default:;
6136 : }
6137 : break;
6138 : }
6139 : default:;
6140 : }
6141 : break;
6142 : }
6143 48988 : case FLOAT_EXPR:
6144 48988 : {
6145 48988 : tree _q20 = TREE_OPERAND (_p0, 0);
6146 48988 : switch (TREE_CODE (_p1))
6147 : {
6148 102 : case FLOAT_EXPR:
6149 102 : {
6150 102 : tree _q40 = TREE_OPERAND (_p1, 0);
6151 102 : {
6152 102 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6153 102 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
6154 102 : if (res) return res;
6155 : }
6156 71 : break;
6157 : }
6158 656 : case REAL_CST:
6159 656 : {
6160 656 : {
6161 656 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6162 656 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6163 656 : if (res) return res;
6164 : }
6165 552 : break;
6166 : }
6167 : default:;
6168 : }
6169 : break;
6170 : }
6171 694 : case EXACT_DIV_EXPR:
6172 694 : {
6173 694 : tree _q20 = TREE_OPERAND (_p0, 0);
6174 694 : tree _q21 = TREE_OPERAND (_p0, 1);
6175 694 : switch (TREE_CODE (_q21))
6176 : {
6177 694 : case INTEGER_CST:
6178 694 : {
6179 694 : switch (TREE_CODE (_p1))
6180 : {
6181 19 : case INTEGER_CST:
6182 19 : {
6183 19 : {
6184 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6185 19 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR);
6186 19 : if (res) return res;
6187 : }
6188 0 : break;
6189 : }
6190 : default:;
6191 : }
6192 : break;
6193 : }
6194 : default:;
6195 : }
6196 : break;
6197 : }
6198 2702862 : CASE_CONVERT:
6199 2702862 : {
6200 2702862 : tree _q20 = TREE_OPERAND (_p0, 0);
6201 2702862 : switch (TREE_CODE (_q20))
6202 : {
6203 107 : case EXACT_DIV_EXPR:
6204 107 : {
6205 107 : tree _q30 = TREE_OPERAND (_q20, 0);
6206 107 : tree _q31 = TREE_OPERAND (_q20, 1);
6207 107 : switch (TREE_CODE (_q31))
6208 : {
6209 107 : case INTEGER_CST:
6210 107 : {
6211 107 : switch (TREE_CODE (_p1))
6212 : {
6213 0 : case INTEGER_CST:
6214 0 : {
6215 0 : {
6216 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6217 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
6218 0 : if (res) return res;
6219 : }
6220 0 : break;
6221 : }
6222 : default:;
6223 : }
6224 : break;
6225 : }
6226 : default:;
6227 : }
6228 : break;
6229 : }
6230 2702862 : default:;
6231 : }
6232 2702862 : switch (TREE_CODE (_p1))
6233 : {
6234 1487338 : CASE_CONVERT:
6235 1487338 : {
6236 1487338 : tree _q40 = TREE_OPERAND (_p1, 0);
6237 1487338 : {
6238 1487338 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6239 1487338 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LT_EXPR);
6240 1487338 : if (res) return res;
6241 : }
6242 1153769 : break;
6243 : }
6244 2369293 : default:;
6245 : }
6246 2369293 : {
6247 2369293 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6248 2369293 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LT_EXPR);
6249 2369293 : if (res) return res;
6250 : }
6251 1954610 : switch (TREE_CODE (_q20))
6252 : {
6253 51157 : case ADDR_EXPR:
6254 51157 : {
6255 51157 : switch (TREE_CODE (_p1))
6256 : {
6257 50662 : CASE_CONVERT:
6258 50662 : {
6259 50662 : tree _q40 = TREE_OPERAND (_p1, 0);
6260 50662 : switch (TREE_CODE (_q40))
6261 : {
6262 50662 : case ADDR_EXPR:
6263 50662 : {
6264 50662 : {
6265 50662 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6266 50662 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, LT_EXPR);
6267 50662 : if (res) return res;
6268 : }
6269 304 : break;
6270 : }
6271 : default:;
6272 : }
6273 : break;
6274 : }
6275 468 : case ADDR_EXPR:
6276 468 : {
6277 468 : {
6278 468 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6279 468 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, LT_EXPR);
6280 468 : if (res) return res;
6281 : }
6282 0 : break;
6283 : }
6284 : default:;
6285 : }
6286 : break;
6287 : }
6288 1903784 : default:;
6289 : }
6290 1903784 : if (uniform_integer_cst_p (_p1))
6291 : {
6292 219841 : {
6293 219841 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6294 219841 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR);
6295 219841 : if (res) return res;
6296 : }
6297 : }
6298 : break;
6299 : }
6300 2156 : case NEGATE_EXPR:
6301 2156 : {
6302 2156 : tree _q20 = TREE_OPERAND (_p0, 0);
6303 2156 : switch (TREE_CODE (_p1))
6304 : {
6305 0 : case NEGATE_EXPR:
6306 0 : {
6307 0 : tree _q40 = TREE_OPERAND (_p1, 0);
6308 0 : {
6309 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6310 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6311 0 : if (res) return res;
6312 : }
6313 0 : break;
6314 : }
6315 2156 : default:;
6316 : }
6317 2156 : if (CONSTANT_CLASS_P (_p1))
6318 : {
6319 301 : {
6320 301 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6321 301 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6322 301 : if (res) return res;
6323 : }
6324 : }
6325 : break;
6326 : }
6327 30051 : case ADDR_EXPR:
6328 30051 : {
6329 30051 : switch (TREE_CODE (_p1))
6330 : {
6331 0 : CASE_CONVERT:
6332 0 : {
6333 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6334 0 : switch (TREE_CODE (_q30))
6335 : {
6336 0 : case ADDR_EXPR:
6337 0 : {
6338 0 : {
6339 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
6340 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LT_EXPR);
6341 0 : if (res) return res;
6342 : }
6343 0 : break;
6344 : }
6345 : default:;
6346 : }
6347 : break;
6348 : }
6349 29628 : case ADDR_EXPR:
6350 29628 : {
6351 29628 : {
6352 29628 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6353 29628 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LT_EXPR);
6354 29628 : if (res) return res;
6355 : }
6356 620 : break;
6357 : }
6358 : default:;
6359 : }
6360 : break;
6361 : }
6362 1817754 : case CALL_EXPR:
6363 1817754 : switch (get_call_combined_fn (_p0))
6364 : {
6365 5 : case CFN_BUILT_IN_SQRTF:
6366 5 : if (call_expr_nargs (_p0) == 1)
6367 : {
6368 5 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6369 5 : switch (TREE_CODE (_p1))
6370 : {
6371 5 : case REAL_CST:
6372 5 : {
6373 5 : {
6374 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6375 5 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6376 5 : if (res) return res;
6377 : }
6378 0 : break;
6379 : }
6380 0 : case CALL_EXPR:
6381 0 : switch (get_call_combined_fn (_p1))
6382 : {
6383 0 : case CFN_BUILT_IN_SQRTF:
6384 0 : if (call_expr_nargs (_p1) == 1)
6385 : {
6386 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6387 0 : {
6388 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6389 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6390 0 : if (res) return res;
6391 : }
6392 : }
6393 : break;
6394 : default:;
6395 : }
6396 : break;
6397 : default:;
6398 : }
6399 : }
6400 : break;
6401 0 : case CFN_BUILT_IN_SQRTL:
6402 0 : if (call_expr_nargs (_p0) == 1)
6403 : {
6404 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6405 0 : switch (TREE_CODE (_p1))
6406 : {
6407 0 : case REAL_CST:
6408 0 : {
6409 0 : {
6410 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6411 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6412 0 : if (res) return res;
6413 : }
6414 0 : break;
6415 : }
6416 0 : case CALL_EXPR:
6417 0 : switch (get_call_combined_fn (_p1))
6418 : {
6419 0 : case CFN_BUILT_IN_SQRTL:
6420 0 : if (call_expr_nargs (_p1) == 1)
6421 : {
6422 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6423 0 : {
6424 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6425 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6426 0 : if (res) return res;
6427 : }
6428 : }
6429 : break;
6430 : default:;
6431 : }
6432 : break;
6433 : default:;
6434 : }
6435 : }
6436 : break;
6437 4 : case CFN_BUILT_IN_SQRT:
6438 4 : if (call_expr_nargs (_p0) == 1)
6439 : {
6440 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6441 4 : switch (TREE_CODE (_p1))
6442 : {
6443 4 : case REAL_CST:
6444 4 : {
6445 4 : {
6446 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6447 4 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6448 4 : if (res) return res;
6449 : }
6450 1 : break;
6451 : }
6452 0 : case CALL_EXPR:
6453 0 : switch (get_call_combined_fn (_p1))
6454 : {
6455 0 : case CFN_BUILT_IN_SQRT:
6456 0 : if (call_expr_nargs (_p1) == 1)
6457 : {
6458 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6459 0 : {
6460 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6461 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6462 0 : if (res) return res;
6463 : }
6464 : }
6465 : break;
6466 : default:;
6467 : }
6468 : break;
6469 : default:;
6470 : }
6471 : }
6472 : break;
6473 0 : case CFN_SQRT:
6474 0 : if (call_expr_nargs (_p0) == 1)
6475 : {
6476 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6477 0 : switch (TREE_CODE (_p1))
6478 : {
6479 0 : case REAL_CST:
6480 0 : {
6481 0 : {
6482 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6483 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6484 0 : if (res) return res;
6485 : }
6486 0 : break;
6487 : }
6488 0 : case CALL_EXPR:
6489 0 : switch (get_call_combined_fn (_p1))
6490 : {
6491 0 : case CFN_SQRT:
6492 0 : if (call_expr_nargs (_p1) == 1)
6493 : {
6494 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6495 0 : {
6496 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6497 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6498 0 : if (res) return res;
6499 : }
6500 : }
6501 : break;
6502 : default:;
6503 : }
6504 : break;
6505 : default:;
6506 : }
6507 : }
6508 : break;
6509 : default:;
6510 : }
6511 : break;
6512 14734522 : default:;
6513 : }
6514 14734522 : switch (TREE_CODE (_p1))
6515 : {
6516 2052742 : CASE_CONVERT:
6517 2052742 : {
6518 2052742 : tree _q30 = TREE_OPERAND (_p1, 0);
6519 2052742 : switch (TREE_CODE (_q30))
6520 : {
6521 0 : case NE_EXPR:
6522 0 : {
6523 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6524 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6525 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6526 : {
6527 0 : if (integer_zerop (_q41))
6528 : {
6529 0 : {
6530 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6531 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
6532 : )
6533 : {
6534 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1615;
6535 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1615;
6536 0 : {
6537 0 : tree _r;
6538 0 : _r = constant_boolean_node (false, type);
6539 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
6540 0 : return _r;
6541 : }
6542 : next_after_fail1615:;
6543 : }
6544 : }
6545 : }
6546 : }
6547 : break;
6548 : }
6549 : default:;
6550 : }
6551 : break;
6552 : }
6553 14734522 : default:;
6554 : }
6555 14734522 : if (uniform_integer_cst_p (_p1))
6556 : {
6557 3520897 : {
6558 3520897 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6559 3520897 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, LT_EXPR);
6560 3520897 : if (res) return res;
6561 : }
6562 : }
6563 14154531 : switch (TREE_CODE (_p0))
6564 : {
6565 1899957 : CASE_CONVERT:
6566 1899957 : {
6567 1899957 : tree _q20 = TREE_OPERAND (_p0, 0);
6568 1899957 : switch (TREE_CODE (_q20))
6569 : {
6570 88289 : case PLUS_EXPR:
6571 88289 : {
6572 88289 : tree _q30 = TREE_OPERAND (_q20, 0);
6573 88289 : tree _q31 = TREE_OPERAND (_q20, 1);
6574 88289 : switch (TREE_CODE (_q30))
6575 : {
6576 60728 : CASE_CONVERT:
6577 60728 : {
6578 60728 : tree _q40 = TREE_OPERAND (_q30, 0);
6579 60728 : switch (TREE_CODE (_q31))
6580 : {
6581 60691 : case INTEGER_CST:
6582 60691 : {
6583 60691 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6584 : {
6585 27 : {
6586 27 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
6587 27 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6588 27 : if (res) return res;
6589 : }
6590 : }
6591 : break;
6592 : }
6593 : default:;
6594 : }
6595 : break;
6596 : }
6597 : default:;
6598 : }
6599 : break;
6600 : }
6601 : default:;
6602 : }
6603 : break;
6604 : }
6605 14154504 : default:;
6606 : }
6607 14154504 : switch (TREE_CODE (_p1))
6608 : {
6609 2052742 : CASE_CONVERT:
6610 2052742 : {
6611 2052742 : tree _q30 = TREE_OPERAND (_p1, 0);
6612 2052742 : switch (TREE_CODE (_q30))
6613 : {
6614 21567 : case PLUS_EXPR:
6615 21567 : {
6616 21567 : tree _q40 = TREE_OPERAND (_q30, 0);
6617 21567 : tree _q41 = TREE_OPERAND (_q30, 1);
6618 21567 : switch (TREE_CODE (_q40))
6619 : {
6620 20355 : CASE_CONVERT:
6621 20355 : {
6622 20355 : tree _q50 = TREE_OPERAND (_q40, 0);
6623 20355 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6624 : {
6625 0 : switch (TREE_CODE (_q41))
6626 : {
6627 0 : case INTEGER_CST:
6628 0 : {
6629 0 : {
6630 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
6631 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6632 0 : if (res) return res;
6633 : }
6634 0 : break;
6635 : }
6636 : default:;
6637 : }
6638 : }
6639 : break;
6640 : }
6641 : default:;
6642 : }
6643 : break;
6644 : }
6645 : default:;
6646 : }
6647 : break;
6648 : }
6649 351494 : case PLUS_EXPR:
6650 351494 : {
6651 351494 : tree _q30 = TREE_OPERAND (_p1, 0);
6652 351494 : tree _q31 = TREE_OPERAND (_p1, 1);
6653 351494 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6654 : {
6655 80 : switch (TREE_CODE (_q31))
6656 : {
6657 64 : case INTEGER_CST:
6658 64 : {
6659 64 : {
6660 64 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
6661 64 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6662 64 : if (res) return res;
6663 : }
6664 0 : break;
6665 : }
6666 : default:;
6667 : }
6668 : }
6669 : break;
6670 : }
6671 23668 : case MINUS_EXPR:
6672 23668 : {
6673 23668 : tree _q30 = TREE_OPERAND (_p1, 0);
6674 23668 : tree _q31 = TREE_OPERAND (_p1, 1);
6675 23668 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6676 : {
6677 0 : {
6678 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
6679 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GT_EXPR);
6680 0 : if (res) return res;
6681 : }
6682 : }
6683 : break;
6684 : }
6685 14154440 : default:;
6686 : }
6687 14154440 : switch (TREE_CODE (_p0))
6688 : {
6689 1964596 : case PLUS_EXPR:
6690 1964596 : {
6691 1964596 : tree _q20 = TREE_OPERAND (_p0, 0);
6692 1964596 : tree _q21 = TREE_OPERAND (_p0, 1);
6693 1964596 : switch (TREE_CODE (_q20))
6694 : {
6695 1343 : case MINUS_EXPR:
6696 1343 : {
6697 1343 : tree _q30 = TREE_OPERAND (_q20, 0);
6698 1343 : tree _q31 = TREE_OPERAND (_q20, 1);
6699 1343 : if (integer_minus_onep (_q21))
6700 : {
6701 49 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6702 : {
6703 1 : {
6704 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6705 1 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LT_EXPR);
6706 1 : if (res) return res;
6707 : }
6708 : }
6709 : }
6710 : break;
6711 : }
6712 : default:;
6713 : }
6714 : break;
6715 : }
6716 14154439 : default:;
6717 : }
6718 14154439 : switch (TREE_CODE (_p1))
6719 : {
6720 0 : case REALPART_EXPR:
6721 0 : {
6722 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6723 0 : switch (TREE_CODE (_q30))
6724 : {
6725 0 : case CALL_EXPR:
6726 0 : switch (get_call_combined_fn (_q30))
6727 : {
6728 0 : case CFN_SUB_OVERFLOW:
6729 0 : if (call_expr_nargs (_q30) == 2)
6730 : {
6731 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
6732 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
6733 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6734 : {
6735 0 : {
6736 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
6737 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
6738 0 : if (res) return res;
6739 : }
6740 : }
6741 : }
6742 : break;
6743 : default:;
6744 : }
6745 : break;
6746 : default:;
6747 : }
6748 : break;
6749 : }
6750 14154439 : default:;
6751 : }
6752 14154439 : switch (TREE_CODE (_p0))
6753 : {
6754 20 : case REALPART_EXPR:
6755 20 : {
6756 20 : tree _q20 = TREE_OPERAND (_p0, 0);
6757 20 : switch (TREE_CODE (_q20))
6758 : {
6759 0 : case CALL_EXPR:
6760 0 : switch (get_call_combined_fn (_q20))
6761 : {
6762 0 : case CFN_ADD_OVERFLOW:
6763 0 : if (call_expr_nargs (_q20) == 2)
6764 : {
6765 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
6766 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
6767 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6768 : {
6769 0 : {
6770 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
6771 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6772 0 : if (res) return res;
6773 : }
6774 : }
6775 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6776 : {
6777 0 : {
6778 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
6779 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6780 0 : if (res) return res;
6781 : }
6782 : }
6783 : }
6784 : break;
6785 : default:;
6786 : }
6787 : break;
6788 : default:;
6789 : }
6790 : break;
6791 : }
6792 7241 : case TRUNC_DIV_EXPR:
6793 7241 : {
6794 7241 : tree _q20 = TREE_OPERAND (_p0, 0);
6795 7241 : tree _q21 = TREE_OPERAND (_p0, 1);
6796 7241 : if (integer_all_onesp (_q20))
6797 : {
6798 1074 : {
6799 1074 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
6800 1074 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6801 1074 : if (res) return res;
6802 : }
6803 : }
6804 : break;
6805 : }
6806 119142 : case MULT_EXPR:
6807 119142 : {
6808 119142 : tree _q20 = TREE_OPERAND (_p0, 0);
6809 119142 : tree _q21 = TREE_OPERAND (_p0, 1);
6810 119142 : switch (TREE_CODE (_q21))
6811 : {
6812 11613 : case REAL_CST:
6813 11613 : {
6814 11613 : switch (TREE_CODE (_p1))
6815 : {
6816 801 : case REAL_CST:
6817 801 : {
6818 801 : {
6819 801 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6820 801 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6821 801 : if (res) return res;
6822 : }
6823 801 : break;
6824 : }
6825 : default:;
6826 : }
6827 : break;
6828 : }
6829 : default:;
6830 : }
6831 : break;
6832 : }
6833 1964595 : case PLUS_EXPR:
6834 1964595 : {
6835 1964595 : tree _q20 = TREE_OPERAND (_p0, 0);
6836 1964595 : tree _q21 = TREE_OPERAND (_p0, 1);
6837 1964595 : switch (TREE_CODE (_q21))
6838 : {
6839 1475866 : case INTEGER_CST:
6840 1475866 : {
6841 1475866 : switch (TREE_CODE (_p1))
6842 : {
6843 228436 : case INTEGER_CST:
6844 228436 : {
6845 228436 : {
6846 228436 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6847 228436 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR, GT_EXPR);
6848 228436 : if (res) return res;
6849 : }
6850 15256 : break;
6851 : }
6852 : default:;
6853 : }
6854 : break;
6855 : }
6856 : default:;
6857 : }
6858 : break;
6859 : }
6860 183575 : case MINUS_EXPR:
6861 183575 : {
6862 183575 : tree _q20 = TREE_OPERAND (_p0, 0);
6863 183575 : tree _q21 = TREE_OPERAND (_p0, 1);
6864 183575 : switch (TREE_CODE (_q21))
6865 : {
6866 0 : case INTEGER_CST:
6867 0 : {
6868 0 : switch (TREE_CODE (_p1))
6869 : {
6870 0 : case INTEGER_CST:
6871 0 : {
6872 0 : {
6873 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6874 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR, GT_EXPR);
6875 0 : if (res) return res;
6876 : }
6877 0 : break;
6878 : }
6879 : default:;
6880 : }
6881 : break;
6882 : }
6883 183575 : default:;
6884 : }
6885 183575 : switch (TREE_CODE (_q20))
6886 : {
6887 44857 : case INTEGER_CST:
6888 44857 : {
6889 44857 : switch (TREE_CODE (_p1))
6890 : {
6891 1645 : case INTEGER_CST:
6892 1645 : {
6893 1645 : {
6894 1645 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6895 1645 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6896 1645 : if (res) return res;
6897 : }
6898 0 : break;
6899 : }
6900 : default:;
6901 : }
6902 : break;
6903 : }
6904 : default:;
6905 : }
6906 : break;
6907 : }
6908 1817731 : case CALL_EXPR:
6909 1817731 : switch (get_call_combined_fn (_p0))
6910 : {
6911 3 : case CFN_BUILT_IN_CTZ:
6912 3 : if (call_expr_nargs (_p0) == 1)
6913 : {
6914 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6915 3 : switch (TREE_CODE (_p1))
6916 : {
6917 3 : case INTEGER_CST:
6918 3 : {
6919 3 : {
6920 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6921 3 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
6922 3 : if (res) return res;
6923 : }
6924 0 : break;
6925 : }
6926 : default:;
6927 : }
6928 : }
6929 : break;
6930 2 : case CFN_BUILT_IN_CTZL:
6931 2 : if (call_expr_nargs (_p0) == 1)
6932 : {
6933 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6934 2 : switch (TREE_CODE (_p1))
6935 : {
6936 2 : case INTEGER_CST:
6937 2 : {
6938 2 : {
6939 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6940 2 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
6941 2 : if (res) return res;
6942 : }
6943 0 : break;
6944 : }
6945 : default:;
6946 : }
6947 : }
6948 : break;
6949 0 : case CFN_BUILT_IN_CTZIMAX:
6950 0 : if (call_expr_nargs (_p0) == 1)
6951 : {
6952 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6953 0 : switch (TREE_CODE (_p1))
6954 : {
6955 0 : case INTEGER_CST:
6956 0 : {
6957 0 : {
6958 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6959 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
6960 0 : if (res) return res;
6961 : }
6962 0 : break;
6963 : }
6964 : default:;
6965 : }
6966 : }
6967 : break;
6968 0 : case CFN_CTZ:
6969 0 : if (call_expr_nargs (_p0) == 1)
6970 : {
6971 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6972 0 : switch (TREE_CODE (_p1))
6973 : {
6974 0 : case INTEGER_CST:
6975 0 : {
6976 0 : {
6977 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6978 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_CTZ);
6979 0 : if (res) return res;
6980 : }
6981 0 : break;
6982 : }
6983 : default:;
6984 : }
6985 : }
6986 0 : if (call_expr_nargs (_p0) == 2)
6987 : {
6988 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6989 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
6990 0 : switch (TREE_CODE (_p1))
6991 : {
6992 0 : case INTEGER_CST:
6993 0 : {
6994 0 : {
6995 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6996 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6997 0 : if (res) return res;
6998 : }
6999 0 : break;
7000 : }
7001 : default:;
7002 : }
7003 : }
7004 : break;
7005 2 : case CFN_BUILT_IN_CTZLL:
7006 2 : if (call_expr_nargs (_p0) == 1)
7007 : {
7008 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7009 2 : switch (TREE_CODE (_p1))
7010 : {
7011 2 : case INTEGER_CST:
7012 2 : {
7013 2 : {
7014 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7015 2 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
7016 2 : if (res) return res;
7017 : }
7018 0 : break;
7019 : }
7020 : default:;
7021 : }
7022 : }
7023 : break;
7024 : default:;
7025 : }
7026 : break;
7027 : default:;
7028 : }
7029 : return NULL_TREE;
7030 : }
7031 :
7032 : tree
7033 20915489 : generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7034 : {
7035 20915489 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7036 20915489 : switch (TREE_CODE (_p0))
7037 : {
7038 1006 : case RDIV_EXPR:
7039 1006 : {
7040 1006 : tree _q20 = TREE_OPERAND (_p0, 0);
7041 1006 : tree _q21 = TREE_OPERAND (_p0, 1);
7042 1006 : switch (TREE_CODE (_q20))
7043 : {
7044 29 : case REAL_CST:
7045 29 : {
7046 29 : if (real_zerop (_p1))
7047 : {
7048 0 : {
7049 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7050 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7051 0 : if (res) return res;
7052 : }
7053 : }
7054 : break;
7055 : }
7056 : default:;
7057 : }
7058 : break;
7059 : }
7060 20915489 : default:;
7061 : }
7062 20915489 : switch (TREE_CODE (_p1))
7063 : {
7064 97 : case TRUNC_MOD_EXPR:
7065 97 : {
7066 97 : tree _q30 = TREE_OPERAND (_p1, 0);
7067 97 : tree _q31 = TREE_OPERAND (_p1, 1);
7068 97 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7069 : {
7070 0 : {
7071 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
7072 0 : tree res = generic_simplify_371 (loc, type, _p0, _p1, captures, LT_EXPR);
7073 0 : if (res) return res;
7074 : }
7075 : }
7076 : break;
7077 : }
7078 20915489 : default:;
7079 : }
7080 20915489 : switch (TREE_CODE (_p0))
7081 : {
7082 171519 : case MULT_EXPR:
7083 171519 : {
7084 171519 : tree _q20 = TREE_OPERAND (_p0, 0);
7085 171519 : tree _q21 = TREE_OPERAND (_p0, 1);
7086 171519 : switch (TREE_CODE (_p1))
7087 : {
7088 7612 : case MULT_EXPR:
7089 7612 : {
7090 7612 : tree _q50 = TREE_OPERAND (_p1, 0);
7091 7612 : tree _q51 = TREE_OPERAND (_p1, 1);
7092 7612 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7093 : {
7094 589 : {
7095 589 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7096 589 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GT_EXPR);
7097 589 : if (res) return res;
7098 : }
7099 : }
7100 7127 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7101 : {
7102 8 : {
7103 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7104 8 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GT_EXPR);
7105 8 : if (res) return res;
7106 : }
7107 : }
7108 7127 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7109 : {
7110 0 : {
7111 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7112 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GT_EXPR);
7113 0 : if (res) return res;
7114 : }
7115 : }
7116 7127 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7117 : {
7118 658 : {
7119 658 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7120 658 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GT_EXPR);
7121 658 : if (res) return res;
7122 : }
7123 : }
7124 : break;
7125 : }
7126 : default:;
7127 : }
7128 : break;
7129 : }
7130 2163709 : case PLUS_EXPR:
7131 2163709 : {
7132 2163709 : tree _q20 = TREE_OPERAND (_p0, 0);
7133 2163709 : tree _q21 = TREE_OPERAND (_p0, 1);
7134 2163709 : if (integer_minus_onep (_q21))
7135 : {
7136 566736 : switch (TREE_CODE (_p1))
7137 : {
7138 415143 : case INTEGER_CST:
7139 415143 : {
7140 415143 : {
7141 415143 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7142 415143 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
7143 415143 : if (res) return res;
7144 : }
7145 410064 : break;
7146 : }
7147 : default:;
7148 : }
7149 : }
7150 2158630 : switch (TREE_CODE (_p1))
7151 : {
7152 60857 : case PLUS_EXPR:
7153 60857 : {
7154 60857 : tree _q50 = TREE_OPERAND (_p1, 0);
7155 60857 : tree _q51 = TREE_OPERAND (_p1, 1);
7156 60857 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7157 : {
7158 4261 : {
7159 4261 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7160 4261 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GT_EXPR);
7161 4261 : if (res) return res;
7162 : }
7163 : }
7164 57963 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7165 : {
7166 319 : {
7167 319 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7168 319 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GT_EXPR);
7169 319 : if (res) return res;
7170 : }
7171 : }
7172 57963 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7173 : {
7174 31 : {
7175 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7176 31 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GT_EXPR);
7177 31 : if (res) return res;
7178 : }
7179 : }
7180 57963 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7181 : {
7182 302 : {
7183 302 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7184 302 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GT_EXPR);
7185 302 : if (res) return res;
7186 : }
7187 : }
7188 : break;
7189 : }
7190 2155736 : default:;
7191 : }
7192 2155736 : switch (TREE_CODE (_q21))
7193 : {
7194 1986293 : case INTEGER_CST:
7195 1986293 : {
7196 1986293 : switch (TREE_CODE (_p1))
7197 : {
7198 34959 : case PLUS_EXPR:
7199 34959 : {
7200 34959 : tree _q50 = TREE_OPERAND (_p1, 0);
7201 34959 : tree _q51 = TREE_OPERAND (_p1, 1);
7202 34959 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7203 : {
7204 1341 : {
7205 1341 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7206 1341 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, GT_EXPR);
7207 1341 : if (res) return res;
7208 : }
7209 : }
7210 : break;
7211 : }
7212 : default:;
7213 : }
7214 : break;
7215 : }
7216 2155736 : default:;
7217 : }
7218 2155736 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7219 : {
7220 60935 : {
7221 60935 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7222 60935 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GT_EXPR);
7223 60935 : if (res) return res;
7224 : }
7225 : }
7226 2118166 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7227 : {
7228 6368 : {
7229 6368 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7230 6368 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GT_EXPR);
7231 6368 : if (res) return res;
7232 : }
7233 : }
7234 : break;
7235 : }
7236 2555845 : CASE_CONVERT:
7237 2555845 : {
7238 2555845 : tree _q20 = TREE_OPERAND (_p0, 0);
7239 2555845 : switch (TREE_CODE (_q20))
7240 : {
7241 5 : case EXACT_DIV_EXPR:
7242 5 : {
7243 5 : tree _q30 = TREE_OPERAND (_q20, 0);
7244 5 : tree _q31 = TREE_OPERAND (_q20, 1);
7245 5 : switch (TREE_CODE (_q31))
7246 : {
7247 5 : case INTEGER_CST:
7248 5 : {
7249 5 : switch (TREE_CODE (_p1))
7250 : {
7251 2 : CASE_CONVERT:
7252 2 : {
7253 2 : tree _q60 = TREE_OPERAND (_p1, 0);
7254 2 : switch (TREE_CODE (_q60))
7255 : {
7256 0 : case EXACT_DIV_EXPR:
7257 0 : {
7258 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7259 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7260 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7261 : {
7262 0 : {
7263 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7264 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GT_EXPR);
7265 0 : if (res) return res;
7266 : }
7267 : }
7268 : break;
7269 : }
7270 : default:;
7271 : }
7272 : break;
7273 : }
7274 : default:;
7275 : }
7276 : break;
7277 : }
7278 : default:;
7279 : }
7280 : break;
7281 : }
7282 : default:;
7283 : }
7284 : break;
7285 : }
7286 20386 : case EXACT_DIV_EXPR:
7287 20386 : {
7288 20386 : tree _q20 = TREE_OPERAND (_p0, 0);
7289 20386 : tree _q21 = TREE_OPERAND (_p0, 1);
7290 20386 : switch (TREE_CODE (_q21))
7291 : {
7292 20386 : case INTEGER_CST:
7293 20386 : {
7294 20386 : switch (TREE_CODE (_p1))
7295 : {
7296 6 : case EXACT_DIV_EXPR:
7297 6 : {
7298 6 : tree _q50 = TREE_OPERAND (_p1, 0);
7299 6 : tree _q51 = TREE_OPERAND (_p1, 1);
7300 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7301 : {
7302 0 : {
7303 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7304 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GT_EXPR);
7305 0 : if (res) return res;
7306 : }
7307 : }
7308 : break;
7309 : }
7310 : default:;
7311 : }
7312 : break;
7313 : }
7314 : default:;
7315 : }
7316 : break;
7317 : }
7318 1723968 : case TRUNC_DIV_EXPR:
7319 1723968 : {
7320 1723968 : tree _q20 = TREE_OPERAND (_p0, 0);
7321 1723968 : tree _q21 = TREE_OPERAND (_p0, 1);
7322 1723968 : switch (TREE_CODE (_q21))
7323 : {
7324 1715646 : case INTEGER_CST:
7325 1715646 : {
7326 1715646 : switch (TREE_CODE (_p1))
7327 : {
7328 1702133 : case INTEGER_CST:
7329 1702133 : {
7330 1702133 : {
7331 1702133 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7332 1702133 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, GT_EXPR);
7333 1702133 : if (res) return res;
7334 : }
7335 69 : break;
7336 : }
7337 : default:;
7338 : }
7339 : break;
7340 : }
7341 : default:;
7342 : }
7343 : break;
7344 : }
7345 758082 : case MINUS_EXPR:
7346 758082 : {
7347 758082 : tree _q20 = TREE_OPERAND (_p0, 0);
7348 758082 : tree _q21 = TREE_OPERAND (_p0, 1);
7349 758082 : switch (TREE_CODE (_p1))
7350 : {
7351 3608 : case MINUS_EXPR:
7352 3608 : {
7353 3608 : tree _q50 = TREE_OPERAND (_p1, 0);
7354 3608 : tree _q51 = TREE_OPERAND (_p1, 1);
7355 3608 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7356 : {
7357 926 : {
7358 926 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7359 926 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GT_EXPR);
7360 926 : if (res) return res;
7361 : }
7362 : }
7363 3608 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7364 : {
7365 172 : {
7366 172 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7367 172 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7368 172 : if (res) return res;
7369 : }
7370 : }
7371 : break;
7372 : }
7373 : default:;
7374 : }
7375 : break;
7376 : }
7377 66559 : case POINTER_DIFF_EXPR:
7378 66559 : {
7379 66559 : tree _q20 = TREE_OPERAND (_p0, 0);
7380 66559 : tree _q21 = TREE_OPERAND (_p0, 1);
7381 66559 : switch (TREE_CODE (_p1))
7382 : {
7383 309 : case POINTER_DIFF_EXPR:
7384 309 : {
7385 309 : tree _q50 = TREE_OPERAND (_p1, 0);
7386 309 : tree _q51 = TREE_OPERAND (_p1, 1);
7387 309 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7388 : {
7389 43 : {
7390 43 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7391 43 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GT_EXPR);
7392 43 : if (res) return res;
7393 : }
7394 : }
7395 266 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7396 : {
7397 0 : {
7398 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
7399 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GT_EXPR);
7400 0 : if (res) return res;
7401 : }
7402 : }
7403 : break;
7404 : }
7405 : default:;
7406 : }
7407 : break;
7408 : }
7409 19165809 : default:;
7410 : }
7411 19165809 : switch (TREE_CODE (_p1))
7412 : {
7413 111724 : case PLUS_EXPR:
7414 111724 : {
7415 111724 : tree _q30 = TREE_OPERAND (_p1, 0);
7416 111724 : tree _q31 = TREE_OPERAND (_p1, 1);
7417 111724 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7418 : {
7419 0 : {
7420 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7421 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
7422 0 : if (res) return res;
7423 : }
7424 : }
7425 111724 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7426 : {
7427 4 : {
7428 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7429 4 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
7430 4 : if (res) return res;
7431 : }
7432 : }
7433 : break;
7434 : }
7435 12032 : case MINUS_EXPR:
7436 12032 : {
7437 12032 : tree _q30 = TREE_OPERAND (_p1, 0);
7438 12032 : tree _q31 = TREE_OPERAND (_p1, 1);
7439 12032 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7440 : {
7441 0 : {
7442 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7443 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, GT_EXPR);
7444 0 : if (res) return res;
7445 : }
7446 : }
7447 : break;
7448 : }
7449 19165809 : default:;
7450 : }
7451 19165809 : switch (TREE_CODE (_p0))
7452 : {
7453 758082 : case MINUS_EXPR:
7454 758082 : {
7455 758082 : tree _q20 = TREE_OPERAND (_p0, 0);
7456 758082 : tree _q21 = TREE_OPERAND (_p0, 1);
7457 758082 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7458 : {
7459 15690 : {
7460 15690 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
7461 15690 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, LT_EXPR);
7462 15690 : if (res) return res;
7463 : }
7464 : }
7465 : break;
7466 : }
7467 20100 : case BIT_AND_EXPR:
7468 20100 : {
7469 20100 : tree _q20 = TREE_OPERAND (_p0, 0);
7470 20100 : tree _q21 = TREE_OPERAND (_p0, 1);
7471 20100 : if (tree_expr_nonnegative_p (_q20))
7472 : {
7473 18132 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7474 : {
7475 0 : {
7476 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7477 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7478 0 : if (res) return res;
7479 : }
7480 : }
7481 : }
7482 20100 : if (tree_expr_nonnegative_p (_q21))
7483 : {
7484 19189 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7485 : {
7486 3936 : {
7487 3936 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7488 3936 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7489 3936 : if (res) return res;
7490 : }
7491 : }
7492 : }
7493 : break;
7494 : }
7495 19161830 : default:;
7496 : }
7497 19161830 : switch (TREE_CODE (_p1))
7498 : {
7499 96 : case BIT_IOR_EXPR:
7500 96 : {
7501 96 : tree _q30 = TREE_OPERAND (_p1, 0);
7502 96 : tree _q31 = TREE_OPERAND (_p1, 1);
7503 96 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7504 : {
7505 0 : if (tree_expr_nonnegative_p (_q30))
7506 : {
7507 0 : {
7508 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7509 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7510 0 : if (res) return res;
7511 : }
7512 : }
7513 : }
7514 96 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7515 : {
7516 0 : if (tree_expr_nonnegative_p (_q31))
7517 : {
7518 0 : {
7519 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7520 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7521 0 : if (res) return res;
7522 : }
7523 : }
7524 : }
7525 : break;
7526 : }
7527 19161830 : default:;
7528 : }
7529 19161830 : switch (TREE_CODE (_p0))
7530 : {
7531 14566 : case MAX_EXPR:
7532 14566 : {
7533 14566 : tree _q20 = TREE_OPERAND (_p0, 0);
7534 14566 : tree _q21 = TREE_OPERAND (_p0, 1);
7535 14566 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7536 : {
7537 1 : {
7538 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7539 1 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7540 1 : if (res) return res;
7541 : }
7542 : }
7543 14565 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7544 : {
7545 12 : {
7546 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7547 12 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7548 12 : if (res) return res;
7549 : }
7550 : }
7551 14556 : switch (TREE_CODE (_q21))
7552 : {
7553 13889 : case INTEGER_CST:
7554 13889 : {
7555 13889 : switch (TREE_CODE (_p1))
7556 : {
7557 0 : case INTEGER_CST:
7558 0 : {
7559 0 : {
7560 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7561 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
7562 0 : if (res) return res;
7563 : }
7564 0 : break;
7565 : }
7566 : default:;
7567 : }
7568 : break;
7569 : }
7570 : default:;
7571 : }
7572 : break;
7573 : }
7574 19161820 : default:;
7575 : }
7576 19161820 : switch (TREE_CODE (_p1))
7577 : {
7578 152 : case MIN_EXPR:
7579 152 : {
7580 152 : tree _q30 = TREE_OPERAND (_p1, 0);
7581 152 : tree _q31 = TREE_OPERAND (_p1, 1);
7582 152 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7583 : {
7584 0 : {
7585 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7586 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7587 0 : if (res) return res;
7588 : }
7589 : }
7590 152 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7591 : {
7592 0 : {
7593 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7594 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7595 0 : if (res) return res;
7596 : }
7597 : }
7598 : break;
7599 : }
7600 696 : case MAX_EXPR:
7601 696 : {
7602 696 : tree _q30 = TREE_OPERAND (_p1, 0);
7603 696 : tree _q31 = TREE_OPERAND (_p1, 1);
7604 696 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7605 : {
7606 0 : {
7607 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7608 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7609 0 : if (res) return res;
7610 : }
7611 : }
7612 696 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7613 : {
7614 0 : {
7615 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7616 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7617 0 : if (res) return res;
7618 : }
7619 : }
7620 : break;
7621 : }
7622 19161820 : default:;
7623 : }
7624 19161820 : switch (TREE_CODE (_p0))
7625 : {
7626 33059 : case MIN_EXPR:
7627 33059 : {
7628 33059 : tree _q20 = TREE_OPERAND (_p0, 0);
7629 33059 : tree _q21 = TREE_OPERAND (_p0, 1);
7630 33059 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7631 : {
7632 1 : {
7633 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7634 1 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7635 1 : if (res) return res;
7636 : }
7637 : }
7638 33058 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7639 : {
7640 1 : {
7641 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7642 1 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7643 1 : if (res) return res;
7644 : }
7645 : }
7646 33057 : switch (TREE_CODE (_q21))
7647 : {
7648 19756 : case INTEGER_CST:
7649 19756 : {
7650 19756 : switch (TREE_CODE (_p1))
7651 : {
7652 61 : case INTEGER_CST:
7653 61 : {
7654 61 : {
7655 61 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7656 61 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
7657 61 : if (res) return res;
7658 : }
7659 0 : break;
7660 : }
7661 : default:;
7662 : }
7663 : break;
7664 : }
7665 : default:;
7666 : }
7667 : break;
7668 : }
7669 858 : case VEC_COND_EXPR:
7670 858 : {
7671 858 : tree _q20 = TREE_OPERAND (_p0, 0);
7672 858 : tree _q21 = TREE_OPERAND (_p0, 1);
7673 858 : tree _q22 = TREE_OPERAND (_p0, 2);
7674 858 : switch (TREE_CODE (_p1))
7675 : {
7676 14 : case VEC_COND_EXPR:
7677 14 : {
7678 14 : tree _q60 = TREE_OPERAND (_p1, 0);
7679 14 : tree _q61 = TREE_OPERAND (_p1, 1);
7680 14 : tree _q62 = TREE_OPERAND (_p1, 2);
7681 14 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7682 : {
7683 0 : {
7684 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7685 0 : if (VECTOR_TYPE_P (type)
7686 0 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7687 0 : || types_match (type, TREE_TYPE (captures[2]))
7688 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7689 : || (optimize_vectors_before_lowering_p ()
7690 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7691 : )
7692 : {
7693 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1619;
7694 0 : {
7695 0 : tree res_op0;
7696 0 : res_op0 = captures[1];
7697 0 : tree res_op1;
7698 0 : {
7699 0 : tree _o1[2], _r1;
7700 0 : _o1[0] = captures[2];
7701 0 : _o1[1] = captures[5];
7702 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7703 0 : if (EXPR_P (_r1))
7704 0 : goto next_after_fail1619;
7705 0 : res_op1 = _r1;
7706 : }
7707 0 : tree res_op2;
7708 0 : {
7709 0 : tree _o1[2], _r1;
7710 0 : _o1[0] = captures[3];
7711 0 : _o1[1] = captures[6];
7712 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7713 0 : if (EXPR_P (_r1))
7714 0 : goto next_after_fail1619;
7715 0 : res_op2 = _r1;
7716 : }
7717 0 : tree _r;
7718 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7719 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
7720 0 : return _r;
7721 : }
7722 0 : next_after_fail1619:;
7723 : }
7724 : }
7725 : }
7726 : break;
7727 : }
7728 858 : default:;
7729 : }
7730 858 : {
7731 858 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7732 858 : if (VECTOR_TYPE_P (type)
7733 858 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7734 858 : || types_match (type, TREE_TYPE (captures[2]))
7735 858 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7736 : || (optimize_vectors_before_lowering_p ()
7737 10 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7738 : )
7739 : {
7740 858 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1620;
7741 858 : {
7742 858 : if (! tree_invariant_p (captures[4])) goto next_after_fail1620;
7743 9 : tree res_op0;
7744 9 : res_op0 = captures[1];
7745 9 : tree res_op1;
7746 9 : {
7747 9 : tree _o1[2], _r1;
7748 9 : _o1[0] = captures[2];
7749 9 : _o1[1] = unshare_expr (captures[4]);
7750 9 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7751 9 : if (EXPR_P (_r1))
7752 6 : goto next_after_fail1620;
7753 3 : res_op1 = _r1;
7754 : }
7755 3 : tree res_op2;
7756 3 : {
7757 3 : tree _o1[2], _r1;
7758 3 : _o1[0] = captures[3];
7759 3 : _o1[1] = captures[4];
7760 3 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7761 3 : if (EXPR_P (_r1))
7762 3 : goto next_after_fail1620;
7763 0 : res_op2 = _r1;
7764 : }
7765 0 : tree _r;
7766 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7767 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
7768 0 : return _r;
7769 : }
7770 858 : next_after_fail1620:;
7771 : }
7772 : }
7773 858 : break;
7774 : }
7775 19161757 : default:;
7776 : }
7777 19161757 : switch (TREE_CODE (_p1))
7778 : {
7779 74 : case VEC_COND_EXPR:
7780 74 : {
7781 74 : tree _q30 = TREE_OPERAND (_p1, 0);
7782 74 : tree _q31 = TREE_OPERAND (_p1, 1);
7783 74 : tree _q32 = TREE_OPERAND (_p1, 2);
7784 74 : {
7785 74 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7786 74 : if (VECTOR_TYPE_P (type)
7787 74 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7788 74 : || types_match (type, TREE_TYPE (captures[3]))
7789 74 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7790 : || (optimize_vectors_before_lowering_p ()
7791 7 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7792 : )
7793 : {
7794 74 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1621;
7795 74 : {
7796 74 : if (! tree_invariant_p (captures[0])) goto next_after_fail1621;
7797 0 : tree res_op0;
7798 0 : res_op0 = captures[2];
7799 0 : tree res_op1;
7800 0 : {
7801 0 : tree _o1[2], _r1;
7802 0 : _o1[0] = unshare_expr (captures[0]);
7803 0 : _o1[1] = captures[3];
7804 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7805 0 : if (EXPR_P (_r1))
7806 0 : goto next_after_fail1621;
7807 0 : res_op1 = _r1;
7808 : }
7809 0 : tree res_op2;
7810 0 : {
7811 0 : tree _o1[2], _r1;
7812 0 : _o1[0] = captures[0];
7813 0 : _o1[1] = captures[4];
7814 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7815 0 : if (EXPR_P (_r1))
7816 0 : goto next_after_fail1621;
7817 0 : res_op2 = _r1;
7818 : }
7819 0 : tree _r;
7820 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
7822 0 : return _r;
7823 : }
7824 74 : next_after_fail1621:;
7825 : }
7826 : }
7827 74 : break;
7828 : }
7829 19161757 : default:;
7830 : }
7831 19161757 : if (uniform_integer_cst_p (_p1))
7832 : {
7833 13318387 : {
7834 13318387 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7835 13318387 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
7836 13318387 : if (res) return res;
7837 : }
7838 : }
7839 19083626 : switch (TREE_CODE (_p0))
7840 : {
7841 170726 : case MULT_EXPR:
7842 170726 : {
7843 170726 : tree _q20 = TREE_OPERAND (_p0, 0);
7844 170726 : tree _q21 = TREE_OPERAND (_p0, 1);
7845 170726 : switch (TREE_CODE (_q21))
7846 : {
7847 132302 : case INTEGER_CST:
7848 132302 : {
7849 132302 : if (integer_zerop (_p1))
7850 : {
7851 7377 : {
7852 7377 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7853 7377 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7854 7377 : if (res) return res;
7855 : }
7856 : }
7857 : break;
7858 : }
7859 : default:;
7860 : }
7861 : break;
7862 : }
7863 19081208 : default:;
7864 : }
7865 19081208 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
7866 : {
7867 1310 : {
7868 1310 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7869 1310 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR);
7870 1310 : if (res) return res;
7871 : }
7872 : }
7873 19079898 : switch (TREE_CODE (_p0))
7874 : {
7875 913345 : case BIT_NOT_EXPR:
7876 913345 : {
7877 913345 : tree _q20 = TREE_OPERAND (_p0, 0);
7878 913345 : switch (TREE_CODE (_p1))
7879 : {
7880 10 : case BIT_NOT_EXPR:
7881 10 : {
7882 10 : tree _q40 = TREE_OPERAND (_p1, 0);
7883 10 : {
7884 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
7885 10 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR);
7886 10 : if (res) return res;
7887 : }
7888 0 : break;
7889 : }
7890 913335 : default:;
7891 : }
7892 913335 : {
7893 913335 : tree _p1_pops[1];
7894 913335 : if (tree_nop_convert (_p1, _p1_pops))
7895 : {
7896 2 : tree _q40 = _p1_pops[0];
7897 2 : switch (TREE_CODE (_q40))
7898 : {
7899 0 : case BIT_NOT_EXPR:
7900 0 : {
7901 0 : tree _q50 = TREE_OPERAND (_q40, 0);
7902 0 : {
7903 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
7904 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR);
7905 0 : if (res) return res;
7906 : }
7907 0 : break;
7908 : }
7909 : default:;
7910 : }
7911 : }
7912 : }
7913 913335 : if (CONSTANT_CLASS_P (_p1))
7914 : {
7915 911064 : {
7916 911064 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7917 911064 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7918 911064 : if (res) return res;
7919 : }
7920 : }
7921 : break;
7922 : }
7923 18168824 : default:;
7924 : }
7925 18168824 : {
7926 18168824 : tree _p0_pops[1];
7927 18168824 : if (tree_nop_convert (_p0, _p0_pops))
7928 : {
7929 976669 : tree _q20 = _p0_pops[0];
7930 976669 : switch (TREE_CODE (_q20))
7931 : {
7932 0 : case BIT_NOT_EXPR:
7933 0 : {
7934 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7935 0 : switch (TREE_CODE (_p1))
7936 : {
7937 0 : case BIT_NOT_EXPR:
7938 0 : {
7939 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7940 0 : {
7941 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
7942 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GT_EXPR);
7943 0 : if (res) return res;
7944 : }
7945 0 : break;
7946 : }
7947 0 : default:;
7948 : }
7949 0 : {
7950 0 : tree _p1_pops[1];
7951 0 : if (tree_nop_convert (_p1, _p1_pops))
7952 : {
7953 0 : tree _q50 = _p1_pops[0];
7954 0 : switch (TREE_CODE (_q50))
7955 : {
7956 0 : case BIT_NOT_EXPR:
7957 0 : {
7958 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7959 0 : {
7960 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
7961 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GT_EXPR);
7962 0 : if (res) return res;
7963 : }
7964 0 : break;
7965 : }
7966 : default:;
7967 : }
7968 : }
7969 : }
7970 0 : if (CONSTANT_CLASS_P (_p1))
7971 : {
7972 0 : {
7973 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
7974 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7975 0 : if (res) return res;
7976 : }
7977 : }
7978 : break;
7979 : }
7980 : default:;
7981 : }
7982 : }
7983 : }
7984 18168824 : switch (TREE_CODE (_p1))
7985 : {
7986 813223 : case REAL_CST:
7987 813223 : {
7988 813223 : {
7989 813223 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7990 813223 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GT_EXPR);
7991 813223 : if (res) return res;
7992 : }
7993 813167 : break;
7994 : }
7995 18168768 : default:;
7996 : }
7997 18168768 : switch (TREE_CODE (_p0))
7998 : {
7999 2115831 : case PLUS_EXPR:
8000 2115831 : {
8001 2115831 : tree _q20 = TREE_OPERAND (_p0, 0);
8002 2115831 : tree _q21 = TREE_OPERAND (_p0, 1);
8003 2115831 : switch (TREE_CODE (_q21))
8004 : {
8005 478 : case REAL_CST:
8006 478 : {
8007 478 : switch (TREE_CODE (_p1))
8008 : {
8009 199 : case REAL_CST:
8010 199 : {
8011 199 : {
8012 199 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8013 199 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR);
8014 199 : if (res) return res;
8015 : }
8016 199 : break;
8017 : }
8018 : default:;
8019 : }
8020 : break;
8021 : }
8022 1947702 : case INTEGER_CST:
8023 1947702 : {
8024 1947702 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8025 : {
8026 1332 : {
8027 1332 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8028 1332 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8029 1332 : if (res) return res;
8030 : }
8031 : }
8032 : break;
8033 : }
8034 : default:;
8035 : }
8036 : break;
8037 : }
8038 747823 : case MINUS_EXPR:
8039 747823 : {
8040 747823 : tree _q20 = TREE_OPERAND (_p0, 0);
8041 747823 : tree _q21 = TREE_OPERAND (_p0, 1);
8042 747823 : switch (TREE_CODE (_q21))
8043 : {
8044 743 : case REAL_CST:
8045 743 : {
8046 743 : switch (TREE_CODE (_p1))
8047 : {
8048 529 : case REAL_CST:
8049 529 : {
8050 529 : {
8051 529 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8052 529 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, MINUS_EXPR, GT_EXPR);
8053 529 : if (res) return res;
8054 : }
8055 527 : break;
8056 : }
8057 : default:;
8058 : }
8059 : break;
8060 : }
8061 747821 : default:;
8062 : }
8063 747821 : switch (TREE_CODE (_q20))
8064 : {
8065 43 : case REAL_CST:
8066 43 : {
8067 43 : switch (TREE_CODE (_p1))
8068 : {
8069 37 : case REAL_CST:
8070 37 : {
8071 37 : {
8072 37 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8073 37 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR);
8074 37 : if (res) return res;
8075 : }
8076 35 : break;
8077 : }
8078 : default:;
8079 : }
8080 : break;
8081 : }
8082 : default:;
8083 : }
8084 : break;
8085 : }
8086 39605 : case FLOAT_EXPR:
8087 39605 : {
8088 39605 : tree _q20 = TREE_OPERAND (_p0, 0);
8089 39605 : switch (TREE_CODE (_p1))
8090 : {
8091 30 : case FLOAT_EXPR:
8092 30 : {
8093 30 : tree _q40 = TREE_OPERAND (_p1, 0);
8094 30 : {
8095 30 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8096 30 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
8097 30 : if (res) return res;
8098 : }
8099 30 : break;
8100 : }
8101 37890 : case REAL_CST:
8102 37890 : {
8103 37890 : {
8104 37890 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8105 37890 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8106 37890 : if (res) return res;
8107 : }
8108 19121 : break;
8109 : }
8110 : default:;
8111 : }
8112 : break;
8113 : }
8114 20386 : case EXACT_DIV_EXPR:
8115 20386 : {
8116 20386 : tree _q20 = TREE_OPERAND (_p0, 0);
8117 20386 : tree _q21 = TREE_OPERAND (_p0, 1);
8118 20386 : switch (TREE_CODE (_q21))
8119 : {
8120 20386 : case INTEGER_CST:
8121 20386 : {
8122 20386 : switch (TREE_CODE (_p1))
8123 : {
8124 181 : case INTEGER_CST:
8125 181 : {
8126 181 : {
8127 181 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8128 181 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR);
8129 181 : if (res) return res;
8130 : }
8131 0 : break;
8132 : }
8133 : default:;
8134 : }
8135 : break;
8136 : }
8137 : default:;
8138 : }
8139 : break;
8140 : }
8141 2552418 : CASE_CONVERT:
8142 2552418 : {
8143 2552418 : tree _q20 = TREE_OPERAND (_p0, 0);
8144 2552418 : switch (TREE_CODE (_q20))
8145 : {
8146 5 : case EXACT_DIV_EXPR:
8147 5 : {
8148 5 : tree _q30 = TREE_OPERAND (_q20, 0);
8149 5 : tree _q31 = TREE_OPERAND (_q20, 1);
8150 5 : switch (TREE_CODE (_q31))
8151 : {
8152 5 : case INTEGER_CST:
8153 5 : {
8154 5 : switch (TREE_CODE (_p1))
8155 : {
8156 0 : case INTEGER_CST:
8157 0 : {
8158 0 : {
8159 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8160 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8161 0 : if (res) return res;
8162 : }
8163 0 : break;
8164 : }
8165 : default:;
8166 : }
8167 : break;
8168 : }
8169 : default:;
8170 : }
8171 : break;
8172 : }
8173 2552418 : default:;
8174 : }
8175 2552418 : switch (TREE_CODE (_p1))
8176 : {
8177 197828 : CASE_CONVERT:
8178 197828 : {
8179 197828 : tree _q40 = TREE_OPERAND (_p1, 0);
8180 197828 : {
8181 197828 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8182 197828 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GT_EXPR);
8183 197828 : if (res) return res;
8184 : }
8185 145810 : break;
8186 : }
8187 2500400 : default:;
8188 : }
8189 2500400 : {
8190 2500400 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8191 2500400 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GT_EXPR);
8192 2500400 : if (res) return res;
8193 : }
8194 1215494 : switch (TREE_CODE (_q20))
8195 : {
8196 849 : case ADDR_EXPR:
8197 849 : {
8198 849 : switch (TREE_CODE (_p1))
8199 : {
8200 724 : CASE_CONVERT:
8201 724 : {
8202 724 : tree _q40 = TREE_OPERAND (_p1, 0);
8203 724 : switch (TREE_CODE (_q40))
8204 : {
8205 724 : case ADDR_EXPR:
8206 724 : {
8207 724 : {
8208 724 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8209 724 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, GT_EXPR);
8210 724 : if (res) return res;
8211 : }
8212 231 : break;
8213 : }
8214 : default:;
8215 : }
8216 : break;
8217 : }
8218 0 : case ADDR_EXPR:
8219 0 : {
8220 0 : {
8221 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8222 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, GT_EXPR);
8223 0 : if (res) return res;
8224 : }
8225 0 : break;
8226 : }
8227 : default:;
8228 : }
8229 : break;
8230 : }
8231 1215001 : default:;
8232 : }
8233 1215001 : if (uniform_integer_cst_p (_p1))
8234 : {
8235 308097 : {
8236 308097 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8237 308097 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GT_EXPR);
8238 308097 : if (res) return res;
8239 : }
8240 : }
8241 : break;
8242 : }
8243 16161 : case BIT_AND_EXPR:
8244 16161 : {
8245 16161 : tree _q20 = TREE_OPERAND (_p0, 0);
8246 16161 : tree _q21 = TREE_OPERAND (_p0, 1);
8247 16161 : switch (TREE_CODE (_q21))
8248 : {
8249 15138 : case INTEGER_CST:
8250 15138 : {
8251 15138 : switch (TREE_CODE (_p1))
8252 : {
8253 9278 : case INTEGER_CST:
8254 9278 : {
8255 9278 : {
8256 9278 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8257 9278 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8258 9278 : if (res) return res;
8259 : }
8260 8765 : break;
8261 : }
8262 : default:;
8263 : }
8264 : break;
8265 : }
8266 : default:;
8267 : }
8268 : break;
8269 : }
8270 10808 : case NEGATE_EXPR:
8271 10808 : {
8272 10808 : tree _q20 = TREE_OPERAND (_p0, 0);
8273 10808 : switch (TREE_CODE (_p1))
8274 : {
8275 4 : case NEGATE_EXPR:
8276 4 : {
8277 4 : tree _q40 = TREE_OPERAND (_p1, 0);
8278 4 : {
8279 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8280 4 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8281 4 : if (res) return res;
8282 : }
8283 4 : break;
8284 : }
8285 10808 : default:;
8286 : }
8287 10808 : if (CONSTANT_CLASS_P (_p1))
8288 : {
8289 699 : {
8290 699 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8291 699 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8292 699 : if (res) return res;
8293 : }
8294 : }
8295 : break;
8296 : }
8297 4573 : case ADDR_EXPR:
8298 4573 : {
8299 4573 : switch (TREE_CODE (_p1))
8300 : {
8301 0 : CASE_CONVERT:
8302 0 : {
8303 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8304 0 : switch (TREE_CODE (_q30))
8305 : {
8306 0 : case ADDR_EXPR:
8307 0 : {
8308 0 : {
8309 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8310 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GT_EXPR);
8311 0 : if (res) return res;
8312 : }
8313 0 : break;
8314 : }
8315 : default:;
8316 : }
8317 : break;
8318 : }
8319 4268 : case ADDR_EXPR:
8320 4268 : {
8321 4268 : {
8322 4268 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8323 4268 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GT_EXPR);
8324 4268 : if (res) return res;
8325 : }
8326 702 : break;
8327 : }
8328 : default:;
8329 : }
8330 : break;
8331 : }
8332 316476 : case CALL_EXPR:
8333 316476 : switch (get_call_combined_fn (_p0))
8334 : {
8335 1 : case CFN_BUILT_IN_SQRTF:
8336 1 : if (call_expr_nargs (_p0) == 1)
8337 : {
8338 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8339 1 : switch (TREE_CODE (_p1))
8340 : {
8341 1 : case REAL_CST:
8342 1 : {
8343 1 : {
8344 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8345 1 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8346 1 : if (res) return res;
8347 : }
8348 0 : break;
8349 : }
8350 0 : case CALL_EXPR:
8351 0 : switch (get_call_combined_fn (_p1))
8352 : {
8353 0 : case CFN_BUILT_IN_SQRTF:
8354 0 : if (call_expr_nargs (_p1) == 1)
8355 : {
8356 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8357 0 : {
8358 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8359 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8360 0 : if (res) return res;
8361 : }
8362 : }
8363 : break;
8364 : default:;
8365 : }
8366 : break;
8367 : default:;
8368 : }
8369 : }
8370 : break;
8371 0 : case CFN_BUILT_IN_SQRTL:
8372 0 : if (call_expr_nargs (_p0) == 1)
8373 : {
8374 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8375 0 : switch (TREE_CODE (_p1))
8376 : {
8377 0 : case REAL_CST:
8378 0 : {
8379 0 : {
8380 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8381 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8382 0 : if (res) return res;
8383 : }
8384 0 : break;
8385 : }
8386 0 : case CALL_EXPR:
8387 0 : switch (get_call_combined_fn (_p1))
8388 : {
8389 0 : case CFN_BUILT_IN_SQRTL:
8390 0 : if (call_expr_nargs (_p1) == 1)
8391 : {
8392 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8393 0 : {
8394 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8395 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8396 0 : if (res) return res;
8397 : }
8398 : }
8399 : break;
8400 : default:;
8401 : }
8402 : break;
8403 : default:;
8404 : }
8405 : }
8406 : break;
8407 3 : case CFN_BUILT_IN_SQRT:
8408 3 : if (call_expr_nargs (_p0) == 1)
8409 : {
8410 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8411 3 : switch (TREE_CODE (_p1))
8412 : {
8413 3 : case REAL_CST:
8414 3 : {
8415 3 : {
8416 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8417 3 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8418 3 : if (res) return res;
8419 : }
8420 0 : break;
8421 : }
8422 0 : case CALL_EXPR:
8423 0 : switch (get_call_combined_fn (_p1))
8424 : {
8425 0 : case CFN_BUILT_IN_SQRT:
8426 0 : if (call_expr_nargs (_p1) == 1)
8427 : {
8428 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8429 0 : {
8430 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8431 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8432 0 : if (res) return res;
8433 : }
8434 : }
8435 : break;
8436 : default:;
8437 : }
8438 : break;
8439 : default:;
8440 : }
8441 : }
8442 : break;
8443 0 : case CFN_SQRT:
8444 0 : if (call_expr_nargs (_p0) == 1)
8445 : {
8446 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8447 0 : switch (TREE_CODE (_p1))
8448 : {
8449 0 : case REAL_CST:
8450 0 : {
8451 0 : {
8452 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8453 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8454 0 : if (res) return res;
8455 : }
8456 0 : break;
8457 : }
8458 0 : case CALL_EXPR:
8459 0 : switch (get_call_combined_fn (_p1))
8460 : {
8461 0 : case CFN_SQRT:
8462 0 : if (call_expr_nargs (_p1) == 1)
8463 : {
8464 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8465 0 : {
8466 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8467 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8468 0 : if (res) return res;
8469 : }
8470 : }
8471 : break;
8472 : default:;
8473 : }
8474 : break;
8475 : default:;
8476 : }
8477 : }
8478 : break;
8479 : default:;
8480 : }
8481 : break;
8482 16779376 : default:;
8483 : }
8484 16779376 : if (uniform_integer_cst_p (_p1))
8485 : {
8486 11014012 : {
8487 11014012 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8488 11014012 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GT_EXPR);
8489 11014012 : if (res) return res;
8490 : }
8491 : }
8492 15860939 : switch (TREE_CODE (_p0))
8493 : {
8494 1144675 : CASE_CONVERT:
8495 1144675 : {
8496 1144675 : tree _q20 = TREE_OPERAND (_p0, 0);
8497 1144675 : switch (TREE_CODE (_q20))
8498 : {
8499 1 : case NE_EXPR:
8500 1 : {
8501 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8502 1 : tree _q31 = TREE_OPERAND (_q20, 1);
8503 1 : if (integer_zerop (_q31))
8504 : {
8505 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8506 : {
8507 1 : {
8508 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
8509 1 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
8510 : )
8511 : {
8512 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1622;
8513 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1622;
8514 1 : {
8515 1 : tree _r;
8516 1 : _r = constant_boolean_node (false, type);
8517 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
8518 1 : return _r;
8519 : }
8520 : next_after_fail1622:;
8521 : }
8522 : }
8523 : }
8524 : }
8525 : break;
8526 : }
8527 50625 : case PLUS_EXPR:
8528 50625 : {
8529 50625 : tree _q30 = TREE_OPERAND (_q20, 0);
8530 50625 : tree _q31 = TREE_OPERAND (_q20, 1);
8531 50625 : switch (TREE_CODE (_q30))
8532 : {
8533 34208 : CASE_CONVERT:
8534 34208 : {
8535 34208 : tree _q40 = TREE_OPERAND (_q30, 0);
8536 34208 : switch (TREE_CODE (_q31))
8537 : {
8538 34204 : case INTEGER_CST:
8539 34204 : {
8540 34204 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8541 : {
8542 2 : {
8543 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
8544 2 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8545 2 : if (res) return res;
8546 : }
8547 : }
8548 : break;
8549 : }
8550 : default:;
8551 : }
8552 : break;
8553 : }
8554 : default:;
8555 : }
8556 : break;
8557 : }
8558 : default:;
8559 : }
8560 : break;
8561 : }
8562 15860936 : default:;
8563 : }
8564 15860936 : switch (TREE_CODE (_p1))
8565 : {
8566 749921 : CASE_CONVERT:
8567 749921 : {
8568 749921 : tree _q30 = TREE_OPERAND (_p1, 0);
8569 749921 : switch (TREE_CODE (_q30))
8570 : {
8571 3340 : case PLUS_EXPR:
8572 3340 : {
8573 3340 : tree _q40 = TREE_OPERAND (_q30, 0);
8574 3340 : tree _q41 = TREE_OPERAND (_q30, 1);
8575 3340 : switch (TREE_CODE (_q40))
8576 : {
8577 3286 : CASE_CONVERT:
8578 3286 : {
8579 3286 : tree _q50 = TREE_OPERAND (_q40, 0);
8580 3286 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
8581 : {
8582 0 : switch (TREE_CODE (_q41))
8583 : {
8584 0 : case INTEGER_CST:
8585 0 : {
8586 0 : {
8587 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
8588 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8589 0 : if (res) return res;
8590 : }
8591 0 : break;
8592 : }
8593 : default:;
8594 : }
8595 : }
8596 : break;
8597 : }
8598 : default:;
8599 : }
8600 : break;
8601 : }
8602 : default:;
8603 : }
8604 : break;
8605 : }
8606 111724 : case PLUS_EXPR:
8607 111724 : {
8608 111724 : tree _q30 = TREE_OPERAND (_p1, 0);
8609 111724 : tree _q31 = TREE_OPERAND (_p1, 1);
8610 111724 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8611 : {
8612 4 : switch (TREE_CODE (_q31))
8613 : {
8614 4 : case INTEGER_CST:
8615 4 : {
8616 4 : {
8617 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
8618 4 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8619 4 : if (res) return res;
8620 : }
8621 0 : break;
8622 : }
8623 : default:;
8624 : }
8625 : }
8626 : break;
8627 : }
8628 15860932 : default:;
8629 : }
8630 15860932 : switch (TREE_CODE (_p0))
8631 : {
8632 656829 : case MINUS_EXPR:
8633 656829 : {
8634 656829 : tree _q20 = TREE_OPERAND (_p0, 0);
8635 656829 : tree _q21 = TREE_OPERAND (_p0, 1);
8636 656829 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8637 : {
8638 7602 : {
8639 7602 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8640 7602 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GT_EXPR);
8641 7602 : if (res) return res;
8642 : }
8643 : }
8644 : break;
8645 : }
8646 15853342 : default:;
8647 : }
8648 15853342 : switch (TREE_CODE (_p1))
8649 : {
8650 111720 : case PLUS_EXPR:
8651 111720 : {
8652 111720 : tree _q30 = TREE_OPERAND (_p1, 0);
8653 111720 : tree _q31 = TREE_OPERAND (_p1, 1);
8654 111720 : switch (TREE_CODE (_q30))
8655 : {
8656 3 : case MINUS_EXPR:
8657 3 : {
8658 3 : tree _q40 = TREE_OPERAND (_q30, 0);
8659 3 : tree _q41 = TREE_OPERAND (_q30, 1);
8660 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8661 : {
8662 0 : if (integer_minus_onep (_q31))
8663 : {
8664 0 : {
8665 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
8666 0 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, LT_EXPR);
8667 0 : if (res) return res;
8668 : }
8669 : }
8670 : }
8671 : break;
8672 : }
8673 : default:;
8674 : }
8675 : break;
8676 : }
8677 15853342 : default:;
8678 : }
8679 15853342 : switch (TREE_CODE (_p0))
8680 : {
8681 83 : case REALPART_EXPR:
8682 83 : {
8683 83 : tree _q20 = TREE_OPERAND (_p0, 0);
8684 83 : switch (TREE_CODE (_q20))
8685 : {
8686 0 : case CALL_EXPR:
8687 0 : switch (get_call_combined_fn (_q20))
8688 : {
8689 0 : case CFN_SUB_OVERFLOW:
8690 0 : if (call_expr_nargs (_q20) == 2)
8691 : {
8692 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8693 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
8694 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8695 : {
8696 0 : {
8697 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8698 0 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8699 0 : if (res) return res;
8700 : }
8701 : }
8702 : }
8703 : break;
8704 : default:;
8705 : }
8706 : break;
8707 : default:;
8708 : }
8709 : break;
8710 : }
8711 15853342 : default:;
8712 : }
8713 15853342 : switch (TREE_CODE (_p1))
8714 : {
8715 20 : case REALPART_EXPR:
8716 20 : {
8717 20 : tree _q30 = TREE_OPERAND (_p1, 0);
8718 20 : switch (TREE_CODE (_q30))
8719 : {
8720 0 : case CALL_EXPR:
8721 0 : switch (get_call_combined_fn (_q30))
8722 : {
8723 0 : case CFN_ADD_OVERFLOW:
8724 0 : if (call_expr_nargs (_q30) == 2)
8725 : {
8726 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
8727 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
8728 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8729 : {
8730 0 : {
8731 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
8732 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8733 0 : if (res) return res;
8734 : }
8735 : }
8736 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
8737 : {
8738 0 : {
8739 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
8740 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8741 0 : if (res) return res;
8742 : }
8743 : }
8744 : }
8745 : break;
8746 : default:;
8747 : }
8748 : break;
8749 : default:;
8750 : }
8751 : break;
8752 : }
8753 1093 : case TRUNC_DIV_EXPR:
8754 1093 : {
8755 1093 : tree _q30 = TREE_OPERAND (_p1, 0);
8756 1093 : tree _q31 = TREE_OPERAND (_p1, 1);
8757 1093 : if (integer_all_onesp (_q30))
8758 : {
8759 0 : {
8760 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
8761 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8762 0 : if (res) return res;
8763 : }
8764 : }
8765 : break;
8766 : }
8767 15853342 : default:;
8768 : }
8769 15853342 : switch (TREE_CODE (_p0))
8770 : {
8771 160954 : case MULT_EXPR:
8772 160954 : {
8773 160954 : tree _q20 = TREE_OPERAND (_p0, 0);
8774 160954 : tree _q21 = TREE_OPERAND (_p0, 1);
8775 160954 : switch (TREE_CODE (_q21))
8776 : {
8777 22120 : case REAL_CST:
8778 22120 : {
8779 22120 : switch (TREE_CODE (_p1))
8780 : {
8781 58 : case REAL_CST:
8782 58 : {
8783 58 : {
8784 58 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8785 58 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8786 58 : if (res) return res;
8787 : }
8788 57 : break;
8789 : }
8790 : default:;
8791 : }
8792 : break;
8793 : }
8794 : default:;
8795 : }
8796 : break;
8797 : }
8798 2000933 : case PLUS_EXPR:
8799 2000933 : {
8800 2000933 : tree _q20 = TREE_OPERAND (_p0, 0);
8801 2000933 : tree _q21 = TREE_OPERAND (_p0, 1);
8802 2000933 : switch (TREE_CODE (_q21))
8803 : {
8804 1832897 : case INTEGER_CST:
8805 1832897 : {
8806 1832897 : switch (TREE_CODE (_p1))
8807 : {
8808 1266505 : case INTEGER_CST:
8809 1266505 : {
8810 1266505 : {
8811 1266505 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8812 1266505 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR, LT_EXPR);
8813 1266505 : if (res) return res;
8814 : }
8815 824972 : break;
8816 : }
8817 : default:;
8818 : }
8819 : break;
8820 : }
8821 : default:;
8822 : }
8823 : break;
8824 : }
8825 649239 : case MINUS_EXPR:
8826 649239 : {
8827 649239 : tree _q20 = TREE_OPERAND (_p0, 0);
8828 649239 : tree _q21 = TREE_OPERAND (_p0, 1);
8829 649239 : switch (TREE_CODE (_q21))
8830 : {
8831 2226 : case INTEGER_CST:
8832 2226 : {
8833 2226 : switch (TREE_CODE (_p1))
8834 : {
8835 2078 : case INTEGER_CST:
8836 2078 : {
8837 2078 : {
8838 2078 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8839 2078 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR, LT_EXPR);
8840 2078 : if (res) return res;
8841 : }
8842 1920 : break;
8843 : }
8844 : default:;
8845 : }
8846 : break;
8847 : }
8848 649081 : default:;
8849 : }
8850 649081 : switch (TREE_CODE (_q20))
8851 : {
8852 555853 : case INTEGER_CST:
8853 555853 : {
8854 555853 : switch (TREE_CODE (_p1))
8855 : {
8856 553046 : case INTEGER_CST:
8857 553046 : {
8858 553046 : {
8859 553046 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8860 553046 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8861 553046 : if (res) return res;
8862 : }
8863 0 : break;
8864 : }
8865 : default:;
8866 : }
8867 : break;
8868 : }
8869 : default:;
8870 : }
8871 : break;
8872 : }
8873 287925 : case CALL_EXPR:
8874 287925 : switch (get_call_combined_fn (_p0))
8875 : {
8876 4 : case CFN_BUILT_IN_CTZ:
8877 4 : if (call_expr_nargs (_p0) == 1)
8878 : {
8879 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8880 4 : switch (TREE_CODE (_p1))
8881 : {
8882 4 : case INTEGER_CST:
8883 4 : {
8884 4 : {
8885 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8886 4 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
8887 4 : if (res) return res;
8888 : }
8889 0 : break;
8890 : }
8891 : default:;
8892 : }
8893 : }
8894 : break;
8895 12 : case CFN_BUILT_IN_FFS:
8896 12 : if (call_expr_nargs (_p0) == 1)
8897 : {
8898 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8899 12 : switch (TREE_CODE (_p1))
8900 : {
8901 12 : case INTEGER_CST:
8902 12 : {
8903 12 : {
8904 12 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8905 12 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS);
8906 12 : if (res) return res;
8907 : }
8908 6 : break;
8909 : }
8910 : default:;
8911 : }
8912 : }
8913 : break;
8914 0 : case CFN_BUILT_IN_FFSIMAX:
8915 0 : if (call_expr_nargs (_p0) == 1)
8916 : {
8917 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8918 0 : switch (TREE_CODE (_p1))
8919 : {
8920 0 : case INTEGER_CST:
8921 0 : {
8922 0 : {
8923 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8924 0 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX);
8925 0 : if (res) return res;
8926 : }
8927 0 : break;
8928 : }
8929 : default:;
8930 : }
8931 : }
8932 : break;
8933 75 : case CFN_BUILT_IN_POPCOUNT:
8934 75 : if (call_expr_nargs (_p0) == 1)
8935 : {
8936 75 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8937 75 : if (integer_zerop (_p1))
8938 : {
8939 36 : {
8940 36 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8941 36 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
8942 36 : if (res) return res;
8943 : }
8944 : }
8945 : }
8946 : break;
8947 2 : case CFN_BUILT_IN_CTZL:
8948 2 : if (call_expr_nargs (_p0) == 1)
8949 : {
8950 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8951 2 : switch (TREE_CODE (_p1))
8952 : {
8953 2 : case INTEGER_CST:
8954 2 : {
8955 2 : {
8956 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8957 2 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
8958 2 : if (res) return res;
8959 : }
8960 0 : break;
8961 : }
8962 : default:;
8963 : }
8964 : }
8965 : break;
8966 8 : case CFN_BUILT_IN_FFSL:
8967 8 : if (call_expr_nargs (_p0) == 1)
8968 : {
8969 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8970 8 : switch (TREE_CODE (_p1))
8971 : {
8972 8 : case INTEGER_CST:
8973 8 : {
8974 8 : {
8975 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8976 8 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL);
8977 8 : if (res) return res;
8978 : }
8979 4 : break;
8980 : }
8981 : default:;
8982 : }
8983 : }
8984 : break;
8985 3 : case CFN_BUILT_IN_POPCOUNTLL:
8986 3 : if (call_expr_nargs (_p0) == 1)
8987 : {
8988 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8989 3 : if (integer_zerop (_p1))
8990 : {
8991 0 : {
8992 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
8993 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8994 0 : if (res) return res;
8995 : }
8996 : }
8997 : }
8998 : break;
8999 0 : case CFN_BUILT_IN_CTZIMAX:
9000 0 : if (call_expr_nargs (_p0) == 1)
9001 : {
9002 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9003 0 : switch (TREE_CODE (_p1))
9004 : {
9005 0 : case INTEGER_CST:
9006 0 : {
9007 0 : {
9008 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9009 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9010 0 : if (res) return res;
9011 : }
9012 0 : break;
9013 : }
9014 : default:;
9015 : }
9016 : }
9017 : break;
9018 0 : case CFN_POPCOUNT:
9019 0 : if (call_expr_nargs (_p0) == 1)
9020 : {
9021 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9022 0 : if (integer_zerop (_p1))
9023 : {
9024 0 : {
9025 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9026 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT);
9027 0 : if (res) return res;
9028 : }
9029 : }
9030 : }
9031 : break;
9032 0 : case CFN_CTZ:
9033 0 : if (call_expr_nargs (_p0) == 2)
9034 : {
9035 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9036 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
9037 0 : switch (TREE_CODE (_p1))
9038 : {
9039 0 : case INTEGER_CST:
9040 0 : {
9041 0 : {
9042 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9043 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
9044 0 : if (res) return res;
9045 : }
9046 0 : break;
9047 : }
9048 : default:;
9049 : }
9050 : }
9051 0 : if (call_expr_nargs (_p0) == 1)
9052 : {
9053 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9054 0 : switch (TREE_CODE (_p1))
9055 : {
9056 0 : case INTEGER_CST:
9057 0 : {
9058 0 : {
9059 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9060 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_CTZ);
9061 0 : if (res) return res;
9062 : }
9063 0 : break;
9064 : }
9065 : default:;
9066 : }
9067 : }
9068 : break;
9069 0 : case CFN_FFS:
9070 0 : if (call_expr_nargs (_p0) == 1)
9071 : {
9072 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9073 0 : switch (TREE_CODE (_p1))
9074 : {
9075 0 : case INTEGER_CST:
9076 0 : {
9077 0 : {
9078 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9079 0 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_FFS);
9080 0 : if (res) return res;
9081 : }
9082 0 : break;
9083 : }
9084 : default:;
9085 : }
9086 : }
9087 : break;
9088 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9089 0 : if (call_expr_nargs (_p0) == 1)
9090 : {
9091 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9092 0 : if (integer_zerop (_p1))
9093 : {
9094 0 : {
9095 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9096 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9097 0 : if (res) return res;
9098 : }
9099 : }
9100 : }
9101 : break;
9102 3 : case CFN_BUILT_IN_POPCOUNTL:
9103 3 : if (call_expr_nargs (_p0) == 1)
9104 : {
9105 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9106 3 : if (integer_zerop (_p1))
9107 : {
9108 0 : {
9109 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9110 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
9111 0 : if (res) return res;
9112 : }
9113 : }
9114 : }
9115 : break;
9116 18 : case CFN_BUILT_IN_CTZLL:
9117 18 : if (call_expr_nargs (_p0) == 1)
9118 : {
9119 18 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9120 18 : switch (TREE_CODE (_p1))
9121 : {
9122 18 : case INTEGER_CST:
9123 18 : {
9124 18 : {
9125 18 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9126 18 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
9127 18 : if (res) return res;
9128 : }
9129 16 : break;
9130 : }
9131 : default:;
9132 : }
9133 : }
9134 : break;
9135 9 : case CFN_BUILT_IN_FFSLL:
9136 9 : if (call_expr_nargs (_p0) == 1)
9137 : {
9138 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9139 9 : switch (TREE_CODE (_p1))
9140 : {
9141 9 : case INTEGER_CST:
9142 9 : {
9143 9 : {
9144 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9145 9 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL);
9146 9 : if (res) return res;
9147 : }
9148 4 : break;
9149 : }
9150 : default:;
9151 : }
9152 : }
9153 : break;
9154 : default:;
9155 : }
9156 : break;
9157 : default:;
9158 : }
9159 : return NULL_TREE;
9160 : }
9161 :
9162 : tree
9163 9511063 : 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)
9164 : {
9165 9511063 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9166 9511063 : switch (TREE_CODE (_p0))
9167 : {
9168 34924 : case LSHIFT_EXPR:
9169 34924 : {
9170 34924 : tree _q20 = TREE_OPERAND (_p0, 0);
9171 34924 : tree _q21 = TREE_OPERAND (_p0, 1);
9172 34924 : switch (TREE_CODE (_p1))
9173 : {
9174 1 : case LSHIFT_EXPR:
9175 1 : {
9176 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9177 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9178 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9179 : {
9180 1 : {
9181 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9182 1 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9183 1 : if (res) return res;
9184 : }
9185 : }
9186 : break;
9187 : }
9188 : default:;
9189 : }
9190 : break;
9191 : }
9192 179284 : case RSHIFT_EXPR:
9193 179284 : {
9194 179284 : tree _q20 = TREE_OPERAND (_p0, 0);
9195 179284 : tree _q21 = TREE_OPERAND (_p0, 1);
9196 179284 : switch (TREE_CODE (_p1))
9197 : {
9198 2 : case RSHIFT_EXPR:
9199 2 : {
9200 2 : tree _q50 = TREE_OPERAND (_p1, 0);
9201 2 : tree _q51 = TREE_OPERAND (_p1, 1);
9202 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9203 : {
9204 2 : {
9205 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9206 2 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9207 2 : if (res) return res;
9208 : }
9209 : }
9210 : break;
9211 : }
9212 : default:;
9213 : }
9214 : break;
9215 : }
9216 2723120 : CASE_CONVERT:
9217 2723120 : {
9218 2723120 : tree _q20 = TREE_OPERAND (_p0, 0);
9219 2723120 : switch (TREE_CODE (_p1))
9220 : {
9221 799574 : CASE_CONVERT:
9222 799574 : {
9223 799574 : tree _q40 = TREE_OPERAND (_p1, 0);
9224 799574 : {
9225 799574 : tree _q40_pops[1];
9226 799574 : if (tree_maybe_bit_not (_q40, _q40_pops))
9227 : {
9228 250 : tree _q50 = _q40_pops[0];
9229 250 : {
9230 250 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
9231 250 : tree res = generic_simplify_441 (loc, type, _p0, _p1, captures);
9232 250 : if (res) return res;
9233 : }
9234 : }
9235 : }
9236 799574 : break;
9237 : }
9238 2723120 : default:;
9239 : }
9240 2723120 : {
9241 2723120 : tree _q20_pops[1];
9242 2723120 : if (tree_maybe_bit_not (_q20, _q20_pops))
9243 : {
9244 437 : tree _q30 = _q20_pops[0];
9245 437 : switch (TREE_CODE (_p1))
9246 : {
9247 254 : CASE_CONVERT:
9248 254 : {
9249 254 : tree _q50 = TREE_OPERAND (_p1, 0);
9250 254 : {
9251 254 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
9252 254 : tree res = generic_simplify_441 (loc, type, _p0, _p1, captures);
9253 254 : if (res) return res;
9254 : }
9255 254 : break;
9256 : }
9257 : default:;
9258 : }
9259 : }
9260 : }
9261 2723120 : break;
9262 : }
9263 9511060 : default:;
9264 : }
9265 9511060 : {
9266 9511060 : tree _p1_pops[1];
9267 9511060 : if (tree_maybe_bit_not (_p1, _p1_pops))
9268 : {
9269 7579492 : tree _q30 = _p1_pops[0];
9270 7579492 : {
9271 7579492 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9272 7579492 : tree res = generic_simplify_441 (loc, type, _p0, _p1, captures);
9273 7579492 : if (res) return res;
9274 : }
9275 : }
9276 : }
9277 9511044 : {
9278 9511044 : tree _p0_pops[1];
9279 9511044 : if (tree_maybe_bit_not (_p0, _p0_pops))
9280 : {
9281 70721 : tree _q20 = _p0_pops[0];
9282 70721 : {
9283 70721 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
9284 70721 : tree res = generic_simplify_441 (loc, type, _p0, _p1, captures);
9285 70721 : if (res) return res;
9286 : }
9287 : }
9288 : }
9289 9510945 : switch (TREE_CODE (_p1))
9290 : {
9291 21260 : case PLUS_EXPR:
9292 21260 : {
9293 21260 : tree _q30 = TREE_OPERAND (_p1, 0);
9294 21260 : tree _q31 = TREE_OPERAND (_p1, 1);
9295 21260 : switch (TREE_CODE (_q30))
9296 : {
9297 163 : case LSHIFT_EXPR:
9298 163 : {
9299 163 : tree _q40 = TREE_OPERAND (_q30, 0);
9300 163 : tree _q41 = TREE_OPERAND (_q30, 1);
9301 163 : if (integer_onep (_q40))
9302 : {
9303 163 : if (integer_minus_onep (_q31))
9304 : {
9305 163 : {
9306 163 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q41 };
9307 163 : if (TYPE_UNSIGNED (type)
9308 : )
9309 : {
9310 163 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1655;
9311 163 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1655;
9312 163 : {
9313 163 : tree res_op0;
9314 163 : res_op0 = captures[0];
9315 163 : tree res_op1;
9316 163 : {
9317 163 : tree _o1[1], _r1;
9318 163 : {
9319 163 : tree _o2[2], _r2;
9320 163 : _o2[0] = build_all_ones_cst (type);
9321 163 : _o2[1] = captures[3];
9322 163 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9323 163 : _o1[0] = _r2;
9324 : }
9325 163 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9326 163 : res_op1 = _r1;
9327 : }
9328 163 : tree _r;
9329 163 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9330 163 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
9331 163 : return _r;
9332 : }
9333 0 : next_after_fail1655:;
9334 : }
9335 : }
9336 : }
9337 : }
9338 : break;
9339 : }
9340 : default:;
9341 : }
9342 : break;
9343 : }
9344 9510782 : default:;
9345 : }
9346 9510782 : switch (TREE_CODE (_p0))
9347 : {
9348 308711 : case PLUS_EXPR:
9349 308711 : {
9350 308711 : tree _q20 = TREE_OPERAND (_p0, 0);
9351 308711 : tree _q21 = TREE_OPERAND (_p0, 1);
9352 308711 : switch (TREE_CODE (_q20))
9353 : {
9354 169 : case LSHIFT_EXPR:
9355 169 : {
9356 169 : tree _q30 = TREE_OPERAND (_q20, 0);
9357 169 : tree _q31 = TREE_OPERAND (_q20, 1);
9358 169 : if (integer_onep (_q30))
9359 : {
9360 162 : if (integer_minus_onep (_q21))
9361 : {
9362 162 : {
9363 162 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q31 };
9364 162 : if (TYPE_UNSIGNED (type)
9365 : )
9366 : {
9367 134 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1656;
9368 134 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1656;
9369 134 : {
9370 134 : tree res_op0;
9371 134 : res_op0 = captures[0];
9372 134 : tree res_op1;
9373 134 : {
9374 134 : tree _o1[1], _r1;
9375 134 : {
9376 134 : tree _o2[2], _r2;
9377 134 : _o2[0] = build_all_ones_cst (type);
9378 134 : _o2[1] = captures[3];
9379 134 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9380 134 : _o1[0] = _r2;
9381 : }
9382 134 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9383 134 : res_op1 = _r1;
9384 : }
9385 134 : tree _r;
9386 134 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9387 134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
9388 134 : return _r;
9389 : }
9390 28 : next_after_fail1656:;
9391 : }
9392 : }
9393 : }
9394 : }
9395 : break;
9396 : }
9397 : default:;
9398 : }
9399 : break;
9400 : }
9401 1871 : case EQ_EXPR:
9402 1871 : {
9403 1871 : tree _q20 = TREE_OPERAND (_p0, 0);
9404 1871 : tree _q21 = TREE_OPERAND (_p0, 1);
9405 1871 : if (integer_zerop (_q21))
9406 : {
9407 753 : switch (TREE_CODE (_p1))
9408 : {
9409 68 : case EQ_EXPR:
9410 68 : {
9411 68 : tree _q50 = TREE_OPERAND (_p1, 0);
9412 68 : tree _q51 = TREE_OPERAND (_p1, 1);
9413 68 : if (integer_zerop (_q51))
9414 : {
9415 29 : {
9416 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9417 29 : tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9418 29 : if (res) return res;
9419 : }
9420 : }
9421 : break;
9422 : }
9423 : default:;
9424 : }
9425 : }
9426 1842 : if (integer_all_onesp (_q21))
9427 : {
9428 0 : switch (TREE_CODE (_p1))
9429 : {
9430 0 : case EQ_EXPR:
9431 0 : {
9432 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9433 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9434 0 : if (integer_all_onesp (_q51))
9435 : {
9436 0 : {
9437 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9438 0 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9439 0 : if (res) return res;
9440 : }
9441 : }
9442 : break;
9443 : }
9444 : default:;
9445 : }
9446 : }
9447 1842 : switch (TREE_CODE (_p1))
9448 : {
9449 8 : case BIT_IOR_EXPR:
9450 8 : {
9451 8 : tree _q50 = TREE_OPERAND (_p1, 0);
9452 8 : tree _q51 = TREE_OPERAND (_p1, 1);
9453 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9454 : {
9455 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9456 : {
9457 0 : {
9458 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9459 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9460 0 : if (res) return res;
9461 : }
9462 : }
9463 : }
9464 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9465 : {
9466 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9467 : {
9468 0 : {
9469 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9470 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9471 0 : if (res) return res;
9472 : }
9473 : }
9474 : }
9475 : break;
9476 : }
9477 1842 : default:;
9478 : }
9479 1842 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9480 : {
9481 12 : {
9482 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9483 12 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9484 12 : if (res) return res;
9485 : }
9486 : }
9487 1842 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9488 : {
9489 8 : {
9490 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9491 8 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9492 8 : if (res) return res;
9493 : }
9494 : }
9495 : break;
9496 : }
9497 1615 : case BIT_IOR_EXPR:
9498 1615 : {
9499 1615 : tree _q20 = TREE_OPERAND (_p0, 0);
9500 1615 : tree _q21 = TREE_OPERAND (_p0, 1);
9501 1615 : switch (TREE_CODE (_p1))
9502 : {
9503 169 : case BIT_NOT_EXPR:
9504 169 : {
9505 169 : tree _q50 = TREE_OPERAND (_p1, 0);
9506 169 : switch (TREE_CODE (_q50))
9507 : {
9508 6 : case BIT_XOR_EXPR:
9509 6 : {
9510 6 : tree _q60 = TREE_OPERAND (_q50, 0);
9511 6 : tree _q61 = TREE_OPERAND (_q50, 1);
9512 6 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9513 : {
9514 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9515 : {
9516 0 : {
9517 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9518 0 : tree res = generic_simplify_444 (loc, type, _p0, _p1, captures);
9519 0 : if (res) return res;
9520 : }
9521 : }
9522 : }
9523 6 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9524 : {
9525 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9526 : {
9527 0 : {
9528 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9529 0 : tree res = generic_simplify_444 (loc, type, _p0, _p1, captures);
9530 0 : if (res) return res;
9531 : }
9532 : }
9533 : }
9534 : break;
9535 : }
9536 : default:;
9537 : }
9538 : break;
9539 : }
9540 24 : case EQ_EXPR:
9541 24 : {
9542 24 : tree _q50 = TREE_OPERAND (_p1, 0);
9543 24 : tree _q51 = TREE_OPERAND (_p1, 1);
9544 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9545 : {
9546 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9547 : {
9548 8 : {
9549 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9550 8 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9551 8 : if (res) return res;
9552 : }
9553 : }
9554 : }
9555 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9556 : {
9557 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9558 : {
9559 0 : {
9560 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9561 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9562 0 : if (res) return res;
9563 : }
9564 : }
9565 : }
9566 : break;
9567 : }
9568 1615 : default:;
9569 : }
9570 1615 : {
9571 1615 : tree _p1_pops[1];
9572 1615 : if (tree_nop_convert (_p1, _p1_pops))
9573 : {
9574 139 : tree _q50 = _p1_pops[0];
9575 139 : switch (TREE_CODE (_q50))
9576 : {
9577 0 : case EQ_EXPR:
9578 0 : {
9579 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9580 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9581 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9582 : {
9583 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9584 : {
9585 0 : {
9586 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9587 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9588 0 : if (res) return res;
9589 : }
9590 : }
9591 : }
9592 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9593 : {
9594 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9595 : {
9596 0 : {
9597 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9598 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9599 0 : if (res) return res;
9600 : }
9601 : }
9602 : }
9603 : break;
9604 : }
9605 : default:;
9606 : }
9607 : }
9608 : }
9609 1615 : break;
9610 : }
9611 66845 : case BIT_NOT_EXPR:
9612 66845 : {
9613 66845 : tree _q20 = TREE_OPERAND (_p0, 0);
9614 66845 : switch (TREE_CODE (_q20))
9615 : {
9616 140 : case BIT_XOR_EXPR:
9617 140 : {
9618 140 : tree _q30 = TREE_OPERAND (_q20, 0);
9619 140 : tree _q31 = TREE_OPERAND (_q20, 1);
9620 140 : switch (TREE_CODE (_p1))
9621 : {
9622 48 : case BIT_IOR_EXPR:
9623 48 : {
9624 48 : tree _q60 = TREE_OPERAND (_p1, 0);
9625 48 : tree _q61 = TREE_OPERAND (_p1, 1);
9626 48 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9627 : {
9628 6 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9629 : {
9630 0 : {
9631 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9632 0 : tree res = generic_simplify_444 (loc, type, _p0, _p1, captures);
9633 0 : if (res) return res;
9634 : }
9635 : }
9636 : }
9637 48 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9638 : {
9639 3 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9640 : {
9641 0 : {
9642 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9643 0 : tree res = generic_simplify_444 (loc, type, _p0, _p1, captures);
9644 0 : if (res) return res;
9645 : }
9646 : }
9647 : }
9648 : break;
9649 : }
9650 140 : default:;
9651 : }
9652 140 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9653 : {
9654 1 : {
9655 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9656 1 : tree res = generic_simplify_445 (loc, type, _p0, _p1, captures);
9657 1 : if (res) return res;
9658 : }
9659 : }
9660 139 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9661 : {
9662 0 : {
9663 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9664 0 : tree res = generic_simplify_445 (loc, type, _p0, _p1, captures);
9665 0 : if (res) return res;
9666 : }
9667 : }
9668 : break;
9669 : }
9670 : default:;
9671 : }
9672 : break;
9673 : }
9674 9510618 : default:;
9675 : }
9676 9510618 : {
9677 9510618 : tree _p0_pops[1];
9678 9510618 : if (tree_nop_convert (_p0, _p0_pops))
9679 : {
9680 1533868 : tree _q20 = _p0_pops[0];
9681 1533868 : switch (TREE_CODE (_q20))
9682 : {
9683 0 : case EQ_EXPR:
9684 0 : {
9685 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9686 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9687 0 : switch (TREE_CODE (_p1))
9688 : {
9689 0 : case BIT_IOR_EXPR:
9690 0 : {
9691 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9692 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9693 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9694 : {
9695 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9696 : {
9697 0 : {
9698 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9699 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9700 0 : if (res) return res;
9701 : }
9702 : }
9703 : }
9704 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9705 : {
9706 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9707 : {
9708 0 : {
9709 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9710 0 : tree res = generic_simplify_442 (loc, type, _p0, _p1, captures);
9711 0 : if (res) return res;
9712 : }
9713 : }
9714 : }
9715 : break;
9716 : }
9717 0 : default:;
9718 : }
9719 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9720 : {
9721 0 : {
9722 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9723 0 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9724 0 : if (res) return res;
9725 : }
9726 : }
9727 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9728 : {
9729 0 : {
9730 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9731 0 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9732 0 : if (res) return res;
9733 : }
9734 : }
9735 : break;
9736 : }
9737 : default:;
9738 : }
9739 : }
9740 : }
9741 9510618 : switch (TREE_CODE (_p1))
9742 : {
9743 52152 : case BIT_NOT_EXPR:
9744 52152 : {
9745 52152 : tree _q30 = TREE_OPERAND (_p1, 0);
9746 52152 : switch (TREE_CODE (_q30))
9747 : {
9748 6 : case BIT_XOR_EXPR:
9749 6 : {
9750 6 : tree _q40 = TREE_OPERAND (_q30, 0);
9751 6 : tree _q41 = TREE_OPERAND (_q30, 1);
9752 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9753 : {
9754 0 : {
9755 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
9756 0 : tree res = generic_simplify_445 (loc, type, _p0, _p1, captures);
9757 0 : if (res) return res;
9758 : }
9759 : }
9760 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9761 : {
9762 0 : {
9763 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
9764 0 : tree res = generic_simplify_445 (loc, type, _p0, _p1, captures);
9765 0 : if (res) return res;
9766 : }
9767 : }
9768 : break;
9769 : }
9770 : default:;
9771 : }
9772 : break;
9773 : }
9774 9510618 : default:;
9775 : }
9776 9510618 : switch (TREE_CODE (_p0))
9777 : {
9778 308577 : case PLUS_EXPR:
9779 308577 : {
9780 308577 : tree _q20 = TREE_OPERAND (_p0, 0);
9781 308577 : tree _q21 = TREE_OPERAND (_p0, 1);
9782 308577 : if (integer_minus_onep (_q21))
9783 : {
9784 116735 : switch (TREE_CODE (_p1))
9785 : {
9786 10440 : case NEGATE_EXPR:
9787 10440 : {
9788 10440 : tree _q50 = TREE_OPERAND (_p1, 0);
9789 10440 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9790 : {
9791 9 : {
9792 9 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9793 9 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9794 9 : if (res) return res;
9795 : }
9796 : }
9797 : break;
9798 : }
9799 : default:;
9800 : }
9801 : }
9802 : break;
9803 : }
9804 47727 : case NEGATE_EXPR:
9805 47727 : {
9806 47727 : tree _q20 = TREE_OPERAND (_p0, 0);
9807 47727 : switch (TREE_CODE (_p1))
9808 : {
9809 26 : case PLUS_EXPR:
9810 26 : {
9811 26 : tree _q40 = TREE_OPERAND (_p1, 0);
9812 26 : tree _q41 = TREE_OPERAND (_p1, 1);
9813 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
9814 : {
9815 0 : if (integer_minus_onep (_q41))
9816 : {
9817 0 : {
9818 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9819 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9820 0 : if (res) return res;
9821 : }
9822 : }
9823 : }
9824 : break;
9825 : }
9826 0 : case MINUS_EXPR:
9827 0 : {
9828 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9829 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9830 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
9831 : {
9832 0 : if (integer_onep (_q41))
9833 : {
9834 0 : {
9835 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9836 0 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9837 0 : if (res) return res;
9838 : }
9839 : }
9840 : }
9841 : break;
9842 : }
9843 : default:;
9844 : }
9845 : break;
9846 : }
9847 699285 : case MINUS_EXPR:
9848 699285 : {
9849 699285 : tree _q20 = TREE_OPERAND (_p0, 0);
9850 699285 : tree _q21 = TREE_OPERAND (_p0, 1);
9851 699285 : if (integer_onep (_q21))
9852 : {
9853 2002 : switch (TREE_CODE (_p1))
9854 : {
9855 0 : case NEGATE_EXPR:
9856 0 : {
9857 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9858 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9859 : {
9860 0 : {
9861 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9862 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9863 0 : if (res) return res;
9864 : }
9865 : }
9866 : break;
9867 : }
9868 : default:;
9869 : }
9870 : }
9871 : break;
9872 : }
9873 9510609 : default:;
9874 : }
9875 9510609 : switch (TREE_CODE (_p1))
9876 : {
9877 1773 : case EQ_EXPR:
9878 1773 : {
9879 1773 : tree _q30 = TREE_OPERAND (_p1, 0);
9880 1773 : tree _q31 = TREE_OPERAND (_p1, 1);
9881 1773 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9882 : {
9883 1 : {
9884 1 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9885 1 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9886 1 : if (res) return res;
9887 : }
9888 : }
9889 1773 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9890 : {
9891 0 : {
9892 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9893 0 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9894 0 : if (res) return res;
9895 : }
9896 : }
9897 : break;
9898 : }
9899 257 : case BIT_XOR_EXPR:
9900 257 : {
9901 257 : tree _q30 = TREE_OPERAND (_p1, 0);
9902 257 : tree _q31 = TREE_OPERAND (_p1, 1);
9903 257 : {
9904 257 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
9905 257 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures);
9906 257 : if (res) return res;
9907 : }
9908 256 : {
9909 256 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
9910 256 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures);
9911 256 : if (res) return res;
9912 : }
9913 256 : break;
9914 : }
9915 9510608 : default:;
9916 : }
9917 9510608 : {
9918 9510608 : tree _p1_pops[1];
9919 9510608 : if (tree_nop_convert (_p1, _p1_pops))
9920 : {
9921 953710 : tree _q30 = _p1_pops[0];
9922 953710 : switch (TREE_CODE (_q30))
9923 : {
9924 0 : case EQ_EXPR:
9925 0 : {
9926 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9927 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9928 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9929 : {
9930 0 : {
9931 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
9932 0 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9933 0 : if (res) return res;
9934 : }
9935 : }
9936 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9937 : {
9938 0 : {
9939 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
9940 0 : tree res = generic_simplify_443 (loc, type, _p0, _p1, captures);
9941 0 : if (res) return res;
9942 : }
9943 : }
9944 : break;
9945 : }
9946 : default:;
9947 : }
9948 : }
9949 : }
9950 9510608 : switch (TREE_CODE (_p0))
9951 : {
9952 61673 : case BIT_XOR_EXPR:
9953 61673 : {
9954 61673 : tree _q20 = TREE_OPERAND (_p0, 0);
9955 61673 : tree _q21 = TREE_OPERAND (_p0, 1);
9956 61673 : {
9957 61673 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
9958 61673 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures);
9959 61673 : if (res) return res;
9960 : }
9961 61673 : {
9962 61673 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
9963 61673 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures);
9964 61673 : if (res) return res;
9965 : }
9966 61673 : switch (TREE_CODE (_p1))
9967 : {
9968 152 : case BIT_XOR_EXPR:
9969 152 : {
9970 152 : tree _q50 = TREE_OPERAND (_p1, 0);
9971 152 : tree _q51 = TREE_OPERAND (_p1, 1);
9972 152 : switch (TREE_CODE (_q50))
9973 : {
9974 3 : case BIT_XOR_EXPR:
9975 3 : {
9976 3 : tree _q60 = TREE_OPERAND (_q50, 0);
9977 3 : tree _q61 = TREE_OPERAND (_q50, 1);
9978 3 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9979 : {
9980 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9981 : {
9982 1 : {
9983 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q61 };
9984 1 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
9985 1 : if (res) return res;
9986 : }
9987 : }
9988 : }
9989 2 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9990 : {
9991 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9992 : {
9993 0 : {
9994 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q60 };
9995 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
9996 0 : if (res) return res;
9997 : }
9998 : }
9999 : }
10000 2 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10001 : {
10002 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10003 : {
10004 1 : {
10005 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q61 };
10006 1 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10007 1 : if (res) return res;
10008 : }
10009 : }
10010 : }
10011 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
10012 : {
10013 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10014 : {
10015 0 : {
10016 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q60 };
10017 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10018 0 : if (res) return res;
10019 : }
10020 : }
10021 : }
10022 : break;
10023 : }
10024 150 : default:;
10025 : }
10026 150 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10027 : {
10028 47 : switch (TREE_CODE (_q51))
10029 : {
10030 0 : case BIT_XOR_EXPR:
10031 0 : {
10032 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10033 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10034 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10035 : {
10036 0 : {
10037 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q71 };
10038 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10039 0 : if (res) return res;
10040 : }
10041 : }
10042 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10043 : {
10044 0 : {
10045 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q70 };
10046 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10047 0 : if (res) return res;
10048 : }
10049 : }
10050 : break;
10051 : }
10052 : default:;
10053 : }
10054 : }
10055 150 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10056 : {
10057 0 : switch (TREE_CODE (_q51))
10058 : {
10059 0 : case BIT_XOR_EXPR:
10060 0 : {
10061 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10062 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10063 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10064 : {
10065 0 : {
10066 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q71 };
10067 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10068 0 : if (res) return res;
10069 : }
10070 : }
10071 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10072 : {
10073 0 : {
10074 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q70 };
10075 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures);
10076 0 : if (res) return res;
10077 : }
10078 : }
10079 : break;
10080 : }
10081 : default:;
10082 : }
10083 : }
10084 : break;
10085 : }
10086 61671 : default:;
10087 : }
10088 61671 : switch (TREE_CODE (_q20))
10089 : {
10090 11 : case BIT_XOR_EXPR:
10091 11 : {
10092 11 : tree _q30 = TREE_OPERAND (_q20, 0);
10093 11 : tree _q31 = TREE_OPERAND (_q20, 1);
10094 11 : switch (TREE_CODE (_p1))
10095 : {
10096 0 : case BIT_XOR_EXPR:
10097 0 : {
10098 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10099 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10100 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10101 : {
10102 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10103 : {
10104 0 : {
10105 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10106 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10107 0 : if (res) return res;
10108 : }
10109 : }
10110 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10111 : {
10112 0 : {
10113 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10114 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10115 0 : if (res) return res;
10116 : }
10117 : }
10118 : }
10119 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10120 : {
10121 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10122 : {
10123 0 : {
10124 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10125 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10126 0 : if (res) return res;
10127 : }
10128 : }
10129 : }
10130 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10131 : {
10132 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10133 : {
10134 0 : {
10135 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10136 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10137 0 : if (res) return res;
10138 : }
10139 : }
10140 : }
10141 : break;
10142 : }
10143 : default:;
10144 : }
10145 : break;
10146 : }
10147 61671 : default:;
10148 : }
10149 61671 : switch (TREE_CODE (_q21))
10150 : {
10151 0 : case BIT_XOR_EXPR:
10152 0 : {
10153 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10154 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10155 0 : switch (TREE_CODE (_p1))
10156 : {
10157 0 : case BIT_XOR_EXPR:
10158 0 : {
10159 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10160 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10161 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10162 : {
10163 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
10164 : {
10165 0 : {
10166 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10167 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10168 0 : if (res) return res;
10169 : }
10170 : }
10171 0 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
10172 : {
10173 0 : {
10174 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10175 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10176 0 : if (res) return res;
10177 : }
10178 : }
10179 : }
10180 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
10181 : {
10182 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10183 : {
10184 0 : {
10185 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10186 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10187 0 : if (res) return res;
10188 : }
10189 : }
10190 : }
10191 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
10192 : {
10193 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10194 : {
10195 0 : {
10196 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10197 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
10198 0 : if (res) return res;
10199 : }
10200 : }
10201 : }
10202 : break;
10203 : }
10204 : default:;
10205 : }
10206 : break;
10207 : }
10208 : default:;
10209 : }
10210 : break;
10211 : }
10212 66843 : case BIT_NOT_EXPR:
10213 66843 : {
10214 66843 : tree _q20 = TREE_OPERAND (_p0, 0);
10215 66843 : switch (TREE_CODE (_q20))
10216 : {
10217 217 : case SSA_NAME:
10218 217 : {
10219 217 : switch (TREE_CODE (_p1))
10220 : {
10221 217 : case INTEGER_CST:
10222 217 : {
10223 217 : {
10224 217 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10225 434 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
10226 651 : && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0
10227 : )
10228 : {
10229 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1657;
10230 14 : {
10231 14 : tree res_op0;
10232 14 : res_op0 = captures[0];
10233 14 : tree res_op1;
10234 14 : res_op1 = captures[1];
10235 14 : tree _r;
10236 14 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
10237 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
10238 14 : return _r;
10239 : }
10240 0 : next_after_fail1657:;
10241 : }
10242 : }
10243 203 : break;
10244 : }
10245 : default:;
10246 : }
10247 : break;
10248 : }
10249 : default:;
10250 : }
10251 : break;
10252 : }
10253 308568 : case PLUS_EXPR:
10254 308568 : {
10255 308568 : tree _q20 = TREE_OPERAND (_p0, 0);
10256 308568 : tree _q21 = TREE_OPERAND (_p0, 1);
10257 308568 : switch (TREE_CODE (_q20))
10258 : {
10259 24 : case BIT_AND_EXPR:
10260 24 : {
10261 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10262 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10263 24 : switch (TREE_CODE (_q31))
10264 : {
10265 20 : case INTEGER_CST:
10266 20 : {
10267 20 : switch (TREE_CODE (_p1))
10268 : {
10269 20 : case INTEGER_CST:
10270 20 : {
10271 20 : {
10272 20 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10273 20 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10274 20 : if (res) return res;
10275 : }
10276 12 : break;
10277 : }
10278 : default:;
10279 : }
10280 : break;
10281 : }
10282 : default:;
10283 : }
10284 : break;
10285 : }
10286 64 : case BIT_IOR_EXPR:
10287 64 : {
10288 64 : tree _q30 = TREE_OPERAND (_q20, 0);
10289 64 : tree _q31 = TREE_OPERAND (_q20, 1);
10290 64 : switch (TREE_CODE (_q31))
10291 : {
10292 52 : case INTEGER_CST:
10293 52 : {
10294 52 : switch (TREE_CODE (_p1))
10295 : {
10296 52 : case INTEGER_CST:
10297 52 : {
10298 52 : {
10299 52 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10300 52 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10301 52 : if (res) return res;
10302 : }
10303 48 : break;
10304 : }
10305 : default:;
10306 : }
10307 : break;
10308 : }
10309 : default:;
10310 : }
10311 : break;
10312 : }
10313 24 : case BIT_XOR_EXPR:
10314 24 : {
10315 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10316 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10317 24 : switch (TREE_CODE (_q31))
10318 : {
10319 4 : case INTEGER_CST:
10320 4 : {
10321 4 : switch (TREE_CODE (_p1))
10322 : {
10323 4 : case INTEGER_CST:
10324 4 : {
10325 4 : {
10326 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10327 4 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10328 4 : if (res) return res;
10329 : }
10330 0 : break;
10331 : }
10332 : default:;
10333 : }
10334 : break;
10335 : }
10336 : default:;
10337 : }
10338 : break;
10339 : }
10340 308552 : default:;
10341 : }
10342 308552 : switch (TREE_CODE (_q21))
10343 : {
10344 0 : case BIT_AND_EXPR:
10345 0 : {
10346 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10347 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10348 0 : switch (TREE_CODE (_q41))
10349 : {
10350 0 : case INTEGER_CST:
10351 0 : {
10352 0 : switch (TREE_CODE (_p1))
10353 : {
10354 0 : case INTEGER_CST:
10355 0 : {
10356 0 : {
10357 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10358 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10359 0 : if (res) return res;
10360 : }
10361 0 : break;
10362 : }
10363 : default:;
10364 : }
10365 : break;
10366 : }
10367 : default:;
10368 : }
10369 : break;
10370 : }
10371 0 : case BIT_IOR_EXPR:
10372 0 : {
10373 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10374 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10375 0 : switch (TREE_CODE (_q41))
10376 : {
10377 0 : case INTEGER_CST:
10378 0 : {
10379 0 : switch (TREE_CODE (_p1))
10380 : {
10381 0 : case INTEGER_CST:
10382 0 : {
10383 0 : {
10384 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10385 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10386 0 : if (res) return res;
10387 : }
10388 0 : break;
10389 : }
10390 : default:;
10391 : }
10392 : break;
10393 : }
10394 : default:;
10395 : }
10396 : break;
10397 : }
10398 0 : case BIT_XOR_EXPR:
10399 0 : {
10400 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10401 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10402 0 : switch (TREE_CODE (_q41))
10403 : {
10404 0 : case INTEGER_CST:
10405 0 : {
10406 0 : switch (TREE_CODE (_p1))
10407 : {
10408 0 : case INTEGER_CST:
10409 0 : {
10410 0 : {
10411 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10412 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10413 0 : if (res) return res;
10414 : }
10415 0 : break;
10416 : }
10417 : default:;
10418 : }
10419 : break;
10420 : }
10421 : default:;
10422 : }
10423 : break;
10424 : }
10425 308552 : default:;
10426 : }
10427 308552 : switch (TREE_CODE (_p1))
10428 : {
10429 224454 : case INTEGER_CST:
10430 224454 : {
10431 224454 : {
10432 224454 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10433 224454 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures, PLUS_EXPR);
10434 224454 : if (res) return res;
10435 : }
10436 91825 : break;
10437 : }
10438 : default:;
10439 : }
10440 : break;
10441 : }
10442 699285 : case MINUS_EXPR:
10443 699285 : {
10444 699285 : tree _q20 = TREE_OPERAND (_p0, 0);
10445 699285 : tree _q21 = TREE_OPERAND (_p0, 1);
10446 699285 : switch (TREE_CODE (_q20))
10447 : {
10448 4 : case BIT_AND_EXPR:
10449 4 : {
10450 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10451 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10452 4 : switch (TREE_CODE (_q31))
10453 : {
10454 2 : case INTEGER_CST:
10455 2 : {
10456 2 : switch (TREE_CODE (_p1))
10457 : {
10458 2 : case INTEGER_CST:
10459 2 : {
10460 2 : {
10461 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10462 2 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10463 2 : if (res) return res;
10464 : }
10465 0 : break;
10466 : }
10467 : default:;
10468 : }
10469 : break;
10470 : }
10471 : default:;
10472 : }
10473 : break;
10474 : }
10475 4 : case BIT_IOR_EXPR:
10476 4 : {
10477 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10478 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10479 4 : switch (TREE_CODE (_q31))
10480 : {
10481 2 : case INTEGER_CST:
10482 2 : {
10483 2 : switch (TREE_CODE (_p1))
10484 : {
10485 2 : case INTEGER_CST:
10486 2 : {
10487 2 : {
10488 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10489 2 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10490 2 : if (res) return res;
10491 : }
10492 0 : break;
10493 : }
10494 : default:;
10495 : }
10496 : break;
10497 : }
10498 : default:;
10499 : }
10500 : break;
10501 : }
10502 4 : case BIT_XOR_EXPR:
10503 4 : {
10504 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10505 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10506 4 : switch (TREE_CODE (_q31))
10507 : {
10508 2 : case INTEGER_CST:
10509 2 : {
10510 2 : switch (TREE_CODE (_p1))
10511 : {
10512 2 : case INTEGER_CST:
10513 2 : {
10514 2 : {
10515 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10516 2 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10517 2 : if (res) return res;
10518 : }
10519 0 : break;
10520 : }
10521 : default:;
10522 : }
10523 : break;
10524 : }
10525 : default:;
10526 : }
10527 : break;
10528 : }
10529 699279 : default:;
10530 : }
10531 699279 : switch (TREE_CODE (_q21))
10532 : {
10533 360 : case BIT_AND_EXPR:
10534 360 : {
10535 360 : tree _q40 = TREE_OPERAND (_q21, 0);
10536 360 : tree _q41 = TREE_OPERAND (_q21, 1);
10537 360 : switch (TREE_CODE (_q41))
10538 : {
10539 358 : case INTEGER_CST:
10540 358 : {
10541 358 : switch (TREE_CODE (_p1))
10542 : {
10543 358 : case INTEGER_CST:
10544 358 : {
10545 358 : {
10546 358 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10547 358 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10548 358 : if (res) return res;
10549 : }
10550 1 : break;
10551 : }
10552 : default:;
10553 : }
10554 : break;
10555 : }
10556 : default:;
10557 : }
10558 : break;
10559 : }
10560 4 : case BIT_IOR_EXPR:
10561 4 : {
10562 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10563 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10564 4 : switch (TREE_CODE (_q41))
10565 : {
10566 2 : case INTEGER_CST:
10567 2 : {
10568 2 : switch (TREE_CODE (_p1))
10569 : {
10570 2 : case INTEGER_CST:
10571 2 : {
10572 2 : {
10573 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10574 2 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10575 2 : if (res) return res;
10576 : }
10577 0 : break;
10578 : }
10579 : default:;
10580 : }
10581 : break;
10582 : }
10583 : default:;
10584 : }
10585 : break;
10586 : }
10587 4 : case BIT_XOR_EXPR:
10588 4 : {
10589 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10590 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10591 4 : switch (TREE_CODE (_q41))
10592 : {
10593 2 : case INTEGER_CST:
10594 2 : {
10595 2 : switch (TREE_CODE (_p1))
10596 : {
10597 2 : case INTEGER_CST:
10598 2 : {
10599 2 : {
10600 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10601 2 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10602 2 : if (res) return res;
10603 : }
10604 0 : break;
10605 : }
10606 : default:;
10607 : }
10608 : break;
10609 : }
10610 : default:;
10611 : }
10612 : break;
10613 : }
10614 698918 : default:;
10615 : }
10616 698918 : switch (TREE_CODE (_p1))
10617 : {
10618 698716 : case INTEGER_CST:
10619 698716 : {
10620 698716 : {
10621 698716 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10622 698716 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures, MINUS_EXPR);
10623 698716 : if (res) return res;
10624 : }
10625 501393 : break;
10626 : }
10627 : default:;
10628 : }
10629 : break;
10630 : }
10631 47727 : case NEGATE_EXPR:
10632 47727 : {
10633 47727 : tree _q20 = TREE_OPERAND (_p0, 0);
10634 47727 : switch (TREE_CODE (_q20))
10635 : {
10636 25 : case BIT_AND_EXPR:
10637 25 : {
10638 25 : tree _q30 = TREE_OPERAND (_q20, 0);
10639 25 : tree _q31 = TREE_OPERAND (_q20, 1);
10640 25 : switch (TREE_CODE (_q31))
10641 : {
10642 21 : case INTEGER_CST:
10643 21 : {
10644 21 : switch (TREE_CODE (_p1))
10645 : {
10646 11 : case INTEGER_CST:
10647 11 : {
10648 11 : {
10649 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10650 11 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10651 11 : if (res) return res;
10652 : }
10653 8 : break;
10654 : }
10655 : default:;
10656 : }
10657 : break;
10658 : }
10659 : default:;
10660 : }
10661 : break;
10662 : }
10663 44 : case BIT_IOR_EXPR:
10664 44 : {
10665 44 : tree _q30 = TREE_OPERAND (_q20, 0);
10666 44 : tree _q31 = TREE_OPERAND (_q20, 1);
10667 44 : switch (TREE_CODE (_q31))
10668 : {
10669 2 : case INTEGER_CST:
10670 2 : {
10671 2 : switch (TREE_CODE (_p1))
10672 : {
10673 2 : case INTEGER_CST:
10674 2 : {
10675 2 : {
10676 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10677 2 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
10678 2 : if (res) return res;
10679 : }
10680 0 : break;
10681 : }
10682 : default:;
10683 : }
10684 : break;
10685 : }
10686 : default:;
10687 : }
10688 : break;
10689 : }
10690 4 : case BIT_XOR_EXPR:
10691 4 : {
10692 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10693 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10694 4 : switch (TREE_CODE (_q31))
10695 : {
10696 2 : case INTEGER_CST:
10697 2 : {
10698 2 : switch (TREE_CODE (_p1))
10699 : {
10700 2 : case INTEGER_CST:
10701 2 : {
10702 2 : {
10703 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10704 2 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
10705 2 : if (res) return res;
10706 : }
10707 0 : break;
10708 : }
10709 : default:;
10710 : }
10711 : break;
10712 : }
10713 : default:;
10714 : }
10715 : break;
10716 : }
10717 47720 : default:;
10718 : }
10719 47720 : if (tree_zero_one_valued_p (_q20))
10720 : {
10721 21 : {
10722 21 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10723 21 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10724 21 : if (res) return res;
10725 : }
10726 : }
10727 : break;
10728 : }
10729 9180229 : default:;
10730 : }
10731 9180229 : if (integer_zerop (_p1))
10732 : {
10733 3886 : {
10734 3886 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10735 3886 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1658;
10736 3886 : {
10737 3886 : tree _r;
10738 3886 : _r = captures[1];
10739 3886 : if (TREE_SIDE_EFFECTS (captures[0]))
10740 51 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10741 3886 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
10742 3886 : return _r;
10743 : }
10744 0 : next_after_fail1658:;
10745 : }
10746 : }
10747 9176343 : if (integer_all_onesp (_p1))
10748 : {
10749 44988 : {
10750 44988 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10751 44988 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1659;
10752 44988 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1659;
10753 44988 : {
10754 44988 : tree res_op0;
10755 44988 : res_op0 = captures[0];
10756 44988 : tree _r;
10757 44988 : _r = non_lvalue_loc (loc, res_op0);
10758 44988 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
10759 44988 : return _r;
10760 : }
10761 : next_after_fail1659:;
10762 : }
10763 : }
10764 9131355 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10765 : {
10766 131 : {
10767 131 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10768 131 : tree res = generic_simplify_89 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10769 131 : if (res) return res;
10770 : }
10771 : }
10772 9131224 : switch (TREE_CODE (_p1))
10773 : {
10774 52152 : case BIT_NOT_EXPR:
10775 52152 : {
10776 52152 : tree _q30 = TREE_OPERAND (_p1, 0);
10777 52152 : switch (TREE_CODE (_q30))
10778 : {
10779 13 : case BIT_AND_EXPR:
10780 13 : {
10781 13 : tree _q40 = TREE_OPERAND (_q30, 0);
10782 13 : tree _q41 = TREE_OPERAND (_q30, 1);
10783 13 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10784 : {
10785 0 : {
10786 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
10787 0 : tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10788 0 : if (res) return res;
10789 : }
10790 : }
10791 13 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10792 : {
10793 0 : {
10794 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
10795 0 : tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10796 0 : if (res) return res;
10797 : }
10798 : }
10799 : break;
10800 : }
10801 : default:;
10802 : }
10803 : break;
10804 : }
10805 9131224 : default:;
10806 : }
10807 9131224 : switch (TREE_CODE (_p0))
10808 : {
10809 66813 : case BIT_NOT_EXPR:
10810 66813 : {
10811 66813 : tree _q20 = TREE_OPERAND (_p0, 0);
10812 66813 : switch (TREE_CODE (_q20))
10813 : {
10814 28 : case BIT_AND_EXPR:
10815 28 : {
10816 28 : tree _q30 = TREE_OPERAND (_q20, 0);
10817 28 : tree _q31 = TREE_OPERAND (_q20, 1);
10818 28 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10819 : {
10820 4 : {
10821 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
10822 4 : tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10823 4 : if (res) return res;
10824 : }
10825 : }
10826 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
10827 : {
10828 3 : {
10829 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
10830 3 : tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10831 3 : if (res) return res;
10832 : }
10833 : }
10834 21 : switch (TREE_CODE (_p1))
10835 : {
10836 0 : case BIT_IOR_EXPR:
10837 0 : {
10838 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10839 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10840 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
10841 : {
10842 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
10843 : {
10844 0 : {
10845 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10846 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10847 0 : if (res) return res;
10848 : }
10849 : }
10850 : }
10851 : break;
10852 : }
10853 : default:;
10854 : }
10855 : break;
10856 : }
10857 66806 : default:;
10858 : }
10859 66806 : switch (TREE_CODE (_p1))
10860 : {
10861 27418 : CASE_CONVERT:
10862 27418 : {
10863 27418 : tree _q40 = TREE_OPERAND (_p1, 0);
10864 27418 : switch (TREE_CODE (_q40))
10865 : {
10866 0 : case BIT_NOT_EXPR:
10867 0 : {
10868 0 : tree _q50 = TREE_OPERAND (_q40, 0);
10869 0 : {
10870 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
10871 0 : tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
10872 0 : if (res) return res;
10873 : }
10874 0 : break;
10875 : }
10876 : default:;
10877 : }
10878 : break;
10879 : }
10880 44 : case BIT_NOT_EXPR:
10881 44 : {
10882 44 : tree _q40 = TREE_OPERAND (_p1, 0);
10883 44 : {
10884 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10885 44 : tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
10886 44 : if (res) return res;
10887 : }
10888 0 : break;
10889 : }
10890 : default:;
10891 : }
10892 : break;
10893 : }
10894 1585 : case BIT_IOR_EXPR:
10895 1585 : {
10896 1585 : tree _q20 = TREE_OPERAND (_p0, 0);
10897 1585 : tree _q21 = TREE_OPERAND (_p0, 1);
10898 1585 : switch (TREE_CODE (_p1))
10899 : {
10900 169 : case BIT_NOT_EXPR:
10901 169 : {
10902 169 : tree _q50 = TREE_OPERAND (_p1, 0);
10903 169 : switch (TREE_CODE (_q50))
10904 : {
10905 0 : case BIT_AND_EXPR:
10906 0 : {
10907 0 : tree _q60 = TREE_OPERAND (_q50, 0);
10908 0 : tree _q61 = TREE_OPERAND (_q50, 1);
10909 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10910 : {
10911 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
10912 : {
10913 0 : {
10914 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10915 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10916 0 : if (res) return res;
10917 : }
10918 : }
10919 : }
10920 : break;
10921 : }
10922 : default:;
10923 : }
10924 : break;
10925 : }
10926 2 : case BIT_XOR_EXPR:
10927 2 : {
10928 2 : tree _q50 = TREE_OPERAND (_p1, 0);
10929 2 : tree _q51 = TREE_OPERAND (_p1, 1);
10930 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10931 : {
10932 0 : {
10933 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
10934 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10935 0 : if (res) return res;
10936 : }
10937 : }
10938 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10939 : {
10940 2 : {
10941 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
10942 2 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10943 2 : if (res) return res;
10944 : }
10945 : }
10946 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10947 : {
10948 0 : {
10949 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
10950 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10951 0 : if (res) return res;
10952 : }
10953 : }
10954 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10955 : {
10956 0 : {
10957 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
10958 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10959 0 : if (res) return res;
10960 : }
10961 : }
10962 : break;
10963 : }
10964 1585 : default:;
10965 : }
10966 1585 : switch (TREE_CODE (_q20))
10967 : {
10968 127 : case BIT_NOT_EXPR:
10969 127 : {
10970 127 : tree _q30 = TREE_OPERAND (_q20, 0);
10971 127 : switch (TREE_CODE (_p1))
10972 : {
10973 2 : case BIT_IOR_EXPR:
10974 2 : {
10975 2 : tree _q60 = TREE_OPERAND (_p1, 0);
10976 2 : tree _q61 = TREE_OPERAND (_p1, 1);
10977 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
10978 : {
10979 0 : switch (TREE_CODE (_q61))
10980 : {
10981 0 : case BIT_NOT_EXPR:
10982 0 : {
10983 0 : tree _q80 = TREE_OPERAND (_q61, 0);
10984 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
10985 : {
10986 0 : {
10987 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
10988 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10989 0 : if (res) return res;
10990 : }
10991 : }
10992 : break;
10993 : }
10994 : default:;
10995 : }
10996 : }
10997 2 : switch (TREE_CODE (_q60))
10998 : {
10999 2 : case BIT_NOT_EXPR:
11000 2 : {
11001 2 : tree _q70 = TREE_OPERAND (_q60, 0);
11002 2 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
11003 : {
11004 2 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11005 : {
11006 2 : {
11007 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11008 2 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
11009 2 : if (res) return res;
11010 : }
11011 : }
11012 : }
11013 : break;
11014 : }
11015 : default:;
11016 : }
11017 : break;
11018 : }
11019 : default:;
11020 : }
11021 : break;
11022 : }
11023 1583 : default:;
11024 : }
11025 1583 : switch (TREE_CODE (_q21))
11026 : {
11027 0 : case BIT_NOT_EXPR:
11028 0 : {
11029 0 : tree _q40 = TREE_OPERAND (_q21, 0);
11030 0 : switch (TREE_CODE (_p1))
11031 : {
11032 0 : case BIT_IOR_EXPR:
11033 0 : {
11034 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11035 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11036 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
11037 : {
11038 0 : switch (TREE_CODE (_q61))
11039 : {
11040 0 : case BIT_NOT_EXPR:
11041 0 : {
11042 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11043 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11044 : {
11045 0 : {
11046 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11047 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
11048 0 : if (res) return res;
11049 : }
11050 : }
11051 : break;
11052 : }
11053 : default:;
11054 : }
11055 : }
11056 0 : switch (TREE_CODE (_q60))
11057 : {
11058 0 : case BIT_NOT_EXPR:
11059 0 : {
11060 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11061 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
11062 : {
11063 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
11064 : {
11065 0 : {
11066 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11067 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
11068 0 : if (res) return res;
11069 : }
11070 : }
11071 : }
11072 : break;
11073 : }
11074 : default:;
11075 : }
11076 : break;
11077 : }
11078 : default:;
11079 : }
11080 : break;
11081 : }
11082 : default:;
11083 : }
11084 : break;
11085 : }
11086 61615 : case BIT_XOR_EXPR:
11087 61615 : {
11088 61615 : tree _q20 = TREE_OPERAND (_p0, 0);
11089 61615 : tree _q21 = TREE_OPERAND (_p0, 1);
11090 61615 : switch (TREE_CODE (_p1))
11091 : {
11092 133 : case BIT_IOR_EXPR:
11093 133 : {
11094 133 : tree _q50 = TREE_OPERAND (_p1, 0);
11095 133 : tree _q51 = TREE_OPERAND (_p1, 1);
11096 133 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11097 : {
11098 18 : {
11099 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
11100 18 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
11101 18 : if (res) return res;
11102 : }
11103 : }
11104 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11105 : {
11106 33 : {
11107 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
11108 33 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
11109 33 : if (res) return res;
11110 : }
11111 : }
11112 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11113 : {
11114 30 : {
11115 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
11116 30 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
11117 30 : if (res) return res;
11118 : }
11119 : }
11120 133 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11121 : {
11122 21 : {
11123 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
11124 21 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
11125 21 : if (res) return res;
11126 : }
11127 : }
11128 : break;
11129 : }
11130 61615 : default:;
11131 : }
11132 61615 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11133 : {
11134 31 : {
11135 31 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11136 31 : tree res = generic_simplify_168 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11137 31 : if (res) return res;
11138 : }
11139 : }
11140 61584 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11141 : {
11142 2 : {
11143 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11144 2 : tree res = generic_simplify_168 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11145 2 : if (res) return res;
11146 : }
11147 : }
11148 : break;
11149 : }
11150 2685520 : CASE_CONVERT:
11151 2685520 : {
11152 2685520 : tree _q20 = TREE_OPERAND (_p0, 0);
11153 2685520 : switch (TREE_CODE (_q20))
11154 : {
11155 174 : case BIT_NOT_EXPR:
11156 174 : {
11157 174 : tree _q30 = TREE_OPERAND (_q20, 0);
11158 174 : switch (TREE_CODE (_p1))
11159 : {
11160 34 : CASE_CONVERT:
11161 34 : {
11162 34 : tree _q50 = TREE_OPERAND (_p1, 0);
11163 34 : switch (TREE_CODE (_q50))
11164 : {
11165 0 : case BIT_NOT_EXPR:
11166 0 : {
11167 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11168 0 : {
11169 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
11170 0 : tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11171 0 : if (res) return res;
11172 : }
11173 0 : break;
11174 : }
11175 : default:;
11176 : }
11177 : break;
11178 : }
11179 1 : case BIT_NOT_EXPR:
11180 1 : {
11181 1 : tree _q50 = TREE_OPERAND (_p1, 0);
11182 1 : {
11183 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
11184 1 : tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11185 1 : if (res) return res;
11186 : }
11187 0 : break;
11188 : }
11189 : default:;
11190 : }
11191 : break;
11192 : }
11193 : default:;
11194 : }
11195 : break;
11196 : }
11197 9131137 : default:;
11198 : }
11199 9131137 : switch (TREE_CODE (_p1))
11200 : {
11201 254 : case BIT_XOR_EXPR:
11202 254 : {
11203 254 : tree _q30 = TREE_OPERAND (_p1, 0);
11204 254 : tree _q31 = TREE_OPERAND (_p1, 1);
11205 254 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
11206 : {
11207 0 : {
11208 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
11209 0 : tree res = generic_simplify_168 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11210 0 : if (res) return res;
11211 : }
11212 : }
11213 254 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11214 : {
11215 1 : {
11216 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
11217 1 : tree res = generic_simplify_168 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11218 1 : if (res) return res;
11219 : }
11220 : }
11221 : break;
11222 : }
11223 9131136 : default:;
11224 : }
11225 9131136 : switch (TREE_CODE (_p0))
11226 : {
11227 2685519 : CASE_CONVERT:
11228 2685519 : {
11229 2685519 : tree _q20 = TREE_OPERAND (_p0, 0);
11230 2685519 : switch (TREE_CODE (_q20))
11231 : {
11232 171 : case BIT_IOR_EXPR:
11233 171 : {
11234 171 : tree _q30 = TREE_OPERAND (_q20, 0);
11235 171 : tree _q31 = TREE_OPERAND (_q20, 1);
11236 171 : switch (TREE_CODE (_p1))
11237 : {
11238 12 : CASE_CONVERT:
11239 12 : {
11240 12 : tree _q60 = TREE_OPERAND (_p1, 0);
11241 12 : switch (TREE_CODE (_q60))
11242 : {
11243 0 : case BIT_IOR_EXPR:
11244 0 : {
11245 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11246 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11247 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
11248 : {
11249 0 : {
11250 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
11251 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11252 0 : if (res) return res;
11253 : }
11254 : }
11255 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
11256 : {
11257 0 : {
11258 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
11259 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11260 0 : if (res) return res;
11261 : }
11262 : }
11263 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
11264 : {
11265 0 : {
11266 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
11267 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11268 0 : if (res) return res;
11269 : }
11270 : }
11271 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
11272 : {
11273 0 : {
11274 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
11275 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11276 0 : if (res) return res;
11277 : }
11278 : }
11279 : break;
11280 : }
11281 : default:;
11282 : }
11283 : break;
11284 : }
11285 : default:;
11286 : }
11287 : break;
11288 : }
11289 40 : case BIT_AND_EXPR:
11290 40 : {
11291 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11292 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11293 40 : switch (TREE_CODE (_p1))
11294 : {
11295 0 : CASE_CONVERT:
11296 0 : {
11297 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11298 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
11299 : {
11300 0 : {
11301 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11302 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11303 0 : if (res) return res;
11304 : }
11305 : }
11306 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
11307 : {
11308 0 : {
11309 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11310 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11311 0 : if (res) return res;
11312 : }
11313 : }
11314 : break;
11315 : }
11316 40 : default:;
11317 : }
11318 40 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
11319 : {
11320 0 : {
11321 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11322 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11323 0 : if (res) return res;
11324 : }
11325 : }
11326 40 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
11327 : {
11328 0 : {
11329 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11330 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11331 0 : if (res) return res;
11332 : }
11333 : }
11334 : break;
11335 : }
11336 2685519 : default:;
11337 : }
11338 2685519 : switch (TREE_CODE (_p1))
11339 : {
11340 799574 : CASE_CONVERT:
11341 799574 : {
11342 799574 : tree _q40 = TREE_OPERAND (_p1, 0);
11343 799574 : switch (TREE_CODE (_q40))
11344 : {
11345 0 : case BIT_AND_EXPR:
11346 0 : {
11347 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11348 0 : tree _q51 = TREE_OPERAND (_q40, 1);
11349 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11350 : {
11351 0 : {
11352 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
11353 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11354 0 : if (res) return res;
11355 : }
11356 : }
11357 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11358 : {
11359 0 : {
11360 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
11361 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11362 0 : if (res) return res;
11363 : }
11364 : }
11365 : break;
11366 : }
11367 : default:;
11368 : }
11369 : break;
11370 : }
11371 47 : case BIT_AND_EXPR:
11372 47 : {
11373 47 : tree _q40 = TREE_OPERAND (_p1, 0);
11374 47 : tree _q41 = TREE_OPERAND (_p1, 1);
11375 47 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
11376 : {
11377 0 : {
11378 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
11379 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11380 0 : if (res) return res;
11381 : }
11382 : }
11383 47 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
11384 : {
11385 0 : {
11386 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
11387 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11388 0 : if (res) return res;
11389 : }
11390 : }
11391 : break;
11392 : }
11393 : default:;
11394 : }
11395 : break;
11396 : }
11397 1583 : case BIT_IOR_EXPR:
11398 1583 : {
11399 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11400 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11401 1583 : switch (TREE_CODE (_p1))
11402 : {
11403 9 : case BIT_IOR_EXPR:
11404 9 : {
11405 9 : tree _q50 = TREE_OPERAND (_p1, 0);
11406 9 : tree _q51 = TREE_OPERAND (_p1, 1);
11407 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11408 : {
11409 0 : {
11410 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
11411 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11412 0 : if (res) return res;
11413 : }
11414 : }
11415 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11416 : {
11417 0 : {
11418 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
11419 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11420 0 : if (res) return res;
11421 : }
11422 : }
11423 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11424 : {
11425 0 : {
11426 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
11427 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11428 0 : if (res) return res;
11429 : }
11430 : }
11431 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
11432 : {
11433 0 : {
11434 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
11435 0 : tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11436 0 : if (res) return res;
11437 : }
11438 : }
11439 : break;
11440 : }
11441 : default:;
11442 : }
11443 : break;
11444 : }
11445 9131136 : default:;
11446 : }
11447 9131136 : switch (TREE_CODE (_p1))
11448 : {
11449 945509 : CASE_CONVERT:
11450 945509 : {
11451 945509 : tree _q30 = TREE_OPERAND (_p1, 0);
11452 945509 : switch (TREE_CODE (_q30))
11453 : {
11454 8 : case BIT_AND_EXPR:
11455 8 : {
11456 8 : tree _q40 = TREE_OPERAND (_q30, 0);
11457 8 : tree _q41 = TREE_OPERAND (_q30, 1);
11458 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
11459 : {
11460 0 : {
11461 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
11462 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11463 0 : if (res) return res;
11464 : }
11465 : }
11466 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
11467 : {
11468 0 : {
11469 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
11470 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11471 0 : if (res) return res;
11472 : }
11473 : }
11474 : break;
11475 : }
11476 : default:;
11477 : }
11478 : break;
11479 : }
11480 9131136 : default:;
11481 : }
11482 9131136 : switch (TREE_CODE (_p0))
11483 : {
11484 1591 : case BIT_AND_EXPR:
11485 1591 : {
11486 1591 : tree _q20 = TREE_OPERAND (_p0, 0);
11487 1591 : tree _q21 = TREE_OPERAND (_p0, 1);
11488 1591 : switch (TREE_CODE (_p1))
11489 : {
11490 82 : CASE_CONVERT:
11491 82 : {
11492 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11493 82 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11494 : {
11495 0 : {
11496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11497 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11498 0 : if (res) return res;
11499 : }
11500 : }
11501 82 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11502 : {
11503 0 : {
11504 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11505 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11506 0 : if (res) return res;
11507 : }
11508 : }
11509 : break;
11510 : }
11511 1591 : default:;
11512 : }
11513 1591 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
11514 : {
11515 0 : {
11516 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11517 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11518 0 : if (res) return res;
11519 : }
11520 : }
11521 1591 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
11522 : {
11523 0 : {
11524 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11525 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11526 0 : if (res) return res;
11527 : }
11528 : }
11529 1591 : {
11530 1591 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11531 1591 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
11532 1591 : if (res) return res;
11533 : }
11534 1583 : switch (TREE_CODE (_p1))
11535 : {
11536 82 : CASE_CONVERT:
11537 82 : {
11538 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11539 82 : switch (TREE_CODE (_q50))
11540 : {
11541 8 : case BIT_AND_EXPR:
11542 8 : {
11543 8 : tree _q60 = TREE_OPERAND (_q50, 0);
11544 8 : tree _q61 = TREE_OPERAND (_q50, 1);
11545 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11546 : {
11547 0 : {
11548 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
11549 0 : tree res = generic_simplify_99 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11550 0 : if (res) return res;
11551 : }
11552 : }
11553 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
11554 : {
11555 0 : {
11556 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
11557 0 : tree res = generic_simplify_99 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11558 0 : if (res) return res;
11559 : }
11560 : }
11561 8 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11562 : {
11563 0 : {
11564 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
11565 0 : tree res = generic_simplify_99 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11566 0 : if (res) return res;
11567 : }
11568 : }
11569 8 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11570 : {
11571 0 : {
11572 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
11573 0 : tree res = generic_simplify_99 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11574 0 : if (res) return res;
11575 : }
11576 : }
11577 : break;
11578 : }
11579 : default:;
11580 : }
11581 : break;
11582 : }
11583 12 : case BIT_AND_EXPR:
11584 12 : {
11585 12 : tree _q50 = TREE_OPERAND (_p1, 0);
11586 12 : tree _q51 = TREE_OPERAND (_p1, 1);
11587 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11588 : {
11589 0 : {
11590 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
11591 0 : tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11592 0 : if (res) return res;
11593 : }
11594 : }
11595 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11596 : {
11597 0 : {
11598 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
11599 0 : tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11600 0 : if (res) return res;
11601 : }
11602 : }
11603 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11604 : {
11605 0 : {
11606 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
11607 0 : tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11608 0 : if (res) return res;
11609 : }
11610 : }
11611 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11612 : {
11613 0 : {
11614 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
11615 0 : tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11616 0 : if (res) return res;
11617 : }
11618 : }
11619 : break;
11620 : }
11621 : default:;
11622 : }
11623 : break;
11624 : }
11625 9131128 : default:;
11626 : }
11627 9131128 : switch (TREE_CODE (_p1))
11628 : {
11629 76 : case BIT_AND_EXPR:
11630 76 : {
11631 76 : tree _q30 = TREE_OPERAND (_p1, 0);
11632 76 : tree _q31 = TREE_OPERAND (_p1, 1);
11633 76 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
11634 : {
11635 0 : {
11636 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
11637 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11638 0 : if (res) return res;
11639 : }
11640 : }
11641 76 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
11642 : {
11643 0 : {
11644 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
11645 0 : tree res = generic_simplify_97 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11646 0 : if (res) return res;
11647 : }
11648 : }
11649 76 : {
11650 76 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
11651 76 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
11652 76 : if (res) return res;
11653 : }
11654 76 : break;
11655 : }
11656 9131128 : default:;
11657 : }
11658 9131128 : switch (TREE_CODE (_p0))
11659 : {
11660 2685519 : CASE_CONVERT:
11661 2685519 : {
11662 2685519 : tree _q20 = TREE_OPERAND (_p0, 0);
11663 2685519 : switch (TREE_CODE (_q20))
11664 : {
11665 40 : case BIT_AND_EXPR:
11666 40 : {
11667 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11668 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11669 40 : switch (TREE_CODE (_p1))
11670 : {
11671 0 : CASE_CONVERT:
11672 0 : {
11673 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11674 0 : switch (TREE_CODE (_q60))
11675 : {
11676 0 : case BIT_AND_EXPR:
11677 0 : {
11678 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11679 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11680 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
11681 : {
11682 0 : {
11683 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
11684 0 : tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11685 0 : if (res) return res;
11686 : }
11687 : }
11688 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
11689 : {
11690 0 : {
11691 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
11692 0 : tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11693 0 : if (res) return res;
11694 : }
11695 : }
11696 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
11697 : {
11698 0 : {
11699 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
11700 0 : tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11701 0 : if (res) return res;
11702 : }
11703 : }
11704 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
11705 : {
11706 0 : {
11707 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
11708 0 : tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11709 0 : if (res) return res;
11710 : }
11711 : }
11712 : break;
11713 : }
11714 : default:;
11715 : }
11716 : break;
11717 : }
11718 0 : case BIT_AND_EXPR:
11719 0 : {
11720 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11721 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11722 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11723 : {
11724 0 : {
11725 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
11726 0 : tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11727 0 : if (res) return res;
11728 : }
11729 : }
11730 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11731 : {
11732 0 : {
11733 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
11734 0 : tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11735 0 : if (res) return res;
11736 : }
11737 : }
11738 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
11739 : {
11740 0 : {
11741 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
11742 0 : tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11743 0 : if (res) return res;
11744 : }
11745 : }
11746 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
11747 : {
11748 0 : {
11749 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
11750 0 : tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11751 0 : if (res) return res;
11752 : }
11753 : }
11754 : break;
11755 : }
11756 : default:;
11757 : }
11758 : break;
11759 : }
11760 2685519 : default:;
11761 : }
11762 2685519 : switch (TREE_CODE (_p1))
11763 : {
11764 799574 : CASE_CONVERT:
11765 799574 : {
11766 799574 : tree _q40 = TREE_OPERAND (_p1, 0);
11767 799574 : {
11768 799574 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11769 799574 : tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11770 799574 : if (res) return res;
11771 : }
11772 799574 : break;
11773 : }
11774 2685519 : default:;
11775 : }
11776 2685519 : {
11777 2685519 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
11778 2685519 : tree res = generic_simplify_104 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11779 2685519 : if (res) return res;
11780 : }
11781 2685519 : break;
11782 : }
11783 1583 : case BIT_IOR_EXPR:
11784 1583 : {
11785 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11786 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11787 1583 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11788 : {
11789 2 : {
11790 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11791 2 : tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11792 2 : if (res) return res;
11793 : }
11794 : }
11795 1581 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11796 : {
11797 4 : {
11798 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
11799 4 : tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11800 4 : if (res) return res;
11801 : }
11802 : }
11803 1577 : {
11804 1577 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11805 1577 : tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11806 1577 : if (res) return res;
11807 : }
11808 1572 : {
11809 1572 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11810 1572 : tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11811 1572 : if (res) return res;
11812 : }
11813 1572 : switch (TREE_CODE (_p1))
11814 : {
11815 1 : case BIT_AND_EXPR:
11816 1 : {
11817 1 : tree _q50 = TREE_OPERAND (_p1, 0);
11818 1 : tree _q51 = TREE_OPERAND (_p1, 1);
11819 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11820 : {
11821 1 : {
11822 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51 };
11823 1 : tree res = generic_simplify_107 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11824 1 : if (res) return res;
11825 : }
11826 : }
11827 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11828 : {
11829 0 : {
11830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50 };
11831 0 : tree res = generic_simplify_107 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11832 0 : if (res) return res;
11833 : }
11834 : }
11835 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11836 : {
11837 0 : {
11838 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51 };
11839 0 : tree res = generic_simplify_107 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11840 0 : if (res) return res;
11841 : }
11842 : }
11843 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11844 : {
11845 0 : {
11846 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50 };
11847 0 : tree res = generic_simplify_107 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11848 0 : if (res) return res;
11849 : }
11850 : }
11851 : break;
11852 : }
11853 168 : case BIT_NOT_EXPR:
11854 168 : {
11855 168 : tree _q50 = TREE_OPERAND (_p1, 0);
11856 168 : switch (TREE_CODE (_q50))
11857 : {
11858 9 : case BIT_IOR_EXPR:
11859 9 : {
11860 9 : tree _q60 = TREE_OPERAND (_q50, 0);
11861 9 : tree _q61 = TREE_OPERAND (_q50, 1);
11862 9 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11863 : {
11864 0 : {
11865 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q61 };
11866 0 : tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11867 0 : if (res) return res;
11868 : }
11869 : }
11870 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11871 : {
11872 1 : {
11873 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q60 };
11874 1 : tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11875 1 : if (res) return res;
11876 : }
11877 : }
11878 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11879 : {
11880 0 : {
11881 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q61 };
11882 0 : tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11883 0 : if (res) return res;
11884 : }
11885 : }
11886 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
11887 : {
11888 0 : {
11889 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q60 };
11890 0 : tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11891 0 : if (res) return res;
11892 : }
11893 : }
11894 : break;
11895 : }
11896 : default:;
11897 : }
11898 : break;
11899 : }
11900 : default:;
11901 : }
11902 : break;
11903 : }
11904 9131115 : default:;
11905 : }
11906 9131115 : switch (TREE_CODE (_p1))
11907 : {
11908 476 : case BIT_IOR_EXPR:
11909 476 : {
11910 476 : tree _q30 = TREE_OPERAND (_p1, 0);
11911 476 : tree _q31 = TREE_OPERAND (_p1, 1);
11912 476 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11913 : {
11914 0 : {
11915 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
11916 0 : tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11917 0 : if (res) return res;
11918 : }
11919 : }
11920 476 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
11921 : {
11922 0 : {
11923 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
11924 0 : tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11925 0 : if (res) return res;
11926 : }
11927 : }
11928 476 : {
11929 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
11930 476 : tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11931 476 : if (res) return res;
11932 : }
11933 476 : {
11934 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
11935 476 : tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11936 476 : if (res) return res;
11937 : }
11938 475 : break;
11939 : }
11940 9131114 : default:;
11941 : }
11942 9131114 : switch (TREE_CODE (_p0))
11943 : {
11944 1583 : case BIT_AND_EXPR:
11945 1583 : {
11946 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11947 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11948 1583 : switch (TREE_CODE (_p1))
11949 : {
11950 16 : case BIT_IOR_EXPR:
11951 16 : {
11952 16 : tree _q50 = TREE_OPERAND (_p1, 0);
11953 16 : tree _q51 = TREE_OPERAND (_p1, 1);
11954 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11955 : {
11956 0 : {
11957 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q51, _p0, _q21 };
11958 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11959 0 : if (res) return res;
11960 : }
11961 : }
11962 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11963 : {
11964 0 : {
11965 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q51, _p0, _q20 };
11966 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11967 0 : if (res) return res;
11968 : }
11969 : }
11970 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11971 : {
11972 0 : {
11973 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q50, _p0, _q21 };
11974 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11975 0 : if (res) return res;
11976 : }
11977 : }
11978 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11979 : {
11980 0 : {
11981 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20 };
11982 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11983 0 : if (res) return res;
11984 : }
11985 : }
11986 : break;
11987 : }
11988 : default:;
11989 : }
11990 : break;
11991 : }
11992 66761 : case BIT_NOT_EXPR:
11993 66761 : {
11994 66761 : tree _q20 = TREE_OPERAND (_p0, 0);
11995 66761 : switch (TREE_CODE (_q20))
11996 : {
11997 11 : case BIT_IOR_EXPR:
11998 11 : {
11999 11 : tree _q30 = TREE_OPERAND (_q20, 0);
12000 11 : tree _q31 = TREE_OPERAND (_q20, 1);
12001 11 : switch (TREE_CODE (_p1))
12002 : {
12003 0 : case BIT_IOR_EXPR:
12004 0 : {
12005 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12006 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12007 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12008 : {
12009 0 : {
12010 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q30, _p0, _q31 };
12011 0 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12012 0 : if (res) return res;
12013 : }
12014 : }
12015 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12016 : {
12017 0 : {
12018 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q31, _p0, _q30 };
12019 0 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12020 0 : if (res) return res;
12021 : }
12022 : }
12023 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12024 : {
12025 0 : {
12026 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q30, _p0, _q31 };
12027 0 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12028 0 : if (res) return res;
12029 : }
12030 : }
12031 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
12032 : {
12033 0 : {
12034 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q31, _p0, _q30 };
12035 0 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12036 0 : if (res) return res;
12037 : }
12038 : }
12039 : break;
12040 : }
12041 11 : default:;
12042 : }
12043 11 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12044 : {
12045 0 : {
12046 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
12047 0 : tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12048 0 : if (res) return res;
12049 : }
12050 : }
12051 11 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
12052 : {
12053 1 : {
12054 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
12055 1 : tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12056 1 : if (res) return res;
12057 : }
12058 : }
12059 : break;
12060 : }
12061 : default:;
12062 : }
12063 : break;
12064 : }
12065 9131113 : default:;
12066 : }
12067 9131113 : switch (TREE_CODE (_p1))
12068 : {
12069 52105 : case BIT_NOT_EXPR:
12070 52105 : {
12071 52105 : tree _q30 = TREE_OPERAND (_p1, 0);
12072 52105 : switch (TREE_CODE (_q30))
12073 : {
12074 8 : case BIT_IOR_EXPR:
12075 8 : {
12076 8 : tree _q40 = TREE_OPERAND (_q30, 0);
12077 8 : tree _q41 = TREE_OPERAND (_q30, 1);
12078 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12079 : {
12080 0 : {
12081 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
12082 0 : tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12083 0 : if (res) return res;
12084 : }
12085 : }
12086 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
12087 : {
12088 0 : {
12089 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
12090 0 : tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12091 0 : if (res) return res;
12092 : }
12093 : }
12094 : break;
12095 : }
12096 : default:;
12097 : }
12098 : break;
12099 : }
12100 9131113 : default:;
12101 : }
12102 9131113 : switch (TREE_CODE (_p0))
12103 : {
12104 1570 : case BIT_IOR_EXPR:
12105 1570 : {
12106 1570 : tree _q20 = TREE_OPERAND (_p0, 0);
12107 1570 : tree _q21 = TREE_OPERAND (_p0, 1);
12108 1570 : if (CONSTANT_CLASS_P (_q21))
12109 : {
12110 459 : if (CONSTANT_CLASS_P (_p1))
12111 : {
12112 25 : {
12113 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12114 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1660;
12115 25 : {
12116 25 : if (! tree_invariant_p (captures[2])) goto next_after_fail1660;
12117 25 : tree res_op0;
12118 25 : {
12119 25 : tree _o1[2], _r1;
12120 25 : _o1[0] = captures[0];
12121 25 : _o1[1] = unshare_expr (captures[2]);
12122 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12123 25 : res_op0 = _r1;
12124 : }
12125 25 : tree res_op1;
12126 25 : {
12127 25 : tree _o1[2], _r1;
12128 25 : _o1[0] = captures[1];
12129 25 : _o1[1] = captures[2];
12130 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12131 25 : if (EXPR_P (_r1))
12132 0 : goto next_after_fail1660;
12133 25 : res_op1 = _r1;
12134 : }
12135 25 : tree _r;
12136 25 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
12137 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
12138 25 : return _r;
12139 : }
12140 0 : next_after_fail1660:;
12141 : }
12142 : }
12143 : }
12144 : break;
12145 : }
12146 1583 : case BIT_AND_EXPR:
12147 1583 : {
12148 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12149 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12150 1583 : if (CONSTANT_CLASS_P (_q21))
12151 : {
12152 508 : if (CONSTANT_CLASS_P (_p1))
12153 : {
12154 441 : {
12155 441 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12156 441 : tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12157 441 : if (res) return res;
12158 : }
12159 : }
12160 : }
12161 : break;
12162 : }
12163 9130647 : default:;
12164 : }
12165 9130647 : {
12166 9130647 : tree _p1_pops[1];
12167 9130647 : if (tree_logical_inverted_value (_p1, _p1_pops))
12168 : {
12169 890 : tree _q30 = _p1_pops[0];
12170 890 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12171 : {
12172 1 : {
12173 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12174 1 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
12175 1 : if (res) return res;
12176 : }
12177 : }
12178 : }
12179 : }
12180 9130646 : switch (TREE_CODE (_p0))
12181 : {
12182 2685519 : CASE_CONVERT:
12183 2685519 : {
12184 2685519 : tree _q20 = TREE_OPERAND (_p0, 0);
12185 2685519 : switch (TREE_CODE (_q20))
12186 : {
12187 6049 : case NEGATE_EXPR:
12188 6049 : {
12189 6049 : tree _q30 = TREE_OPERAND (_q20, 0);
12190 6049 : if (tree_zero_one_valued_p (_q30))
12191 : {
12192 2 : {
12193 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
12194 2 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
12195 2 : if (res) return res;
12196 : }
12197 : }
12198 : break;
12199 : }
12200 : default:;
12201 : }
12202 : break;
12203 : }
12204 9130644 : default:;
12205 : }
12206 9130644 : {
12207 9130644 : tree _p0_pops[1];
12208 9130644 : if (tree_logical_inverted_value (_p0, _p0_pops))
12209 : {
12210 526 : tree _q20 = _p0_pops[0];
12211 526 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12212 : {
12213 12 : {
12214 12 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
12215 12 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
12216 12 : if (res) return res;
12217 : }
12218 : }
12219 : }
12220 : }
12221 9130632 : switch (TREE_CODE (_p1))
12222 : {
12223 945509 : CASE_CONVERT:
12224 945509 : {
12225 945509 : tree _q30 = TREE_OPERAND (_p1, 0);
12226 945509 : switch (TREE_CODE (_q30))
12227 : {
12228 108 : case NEGATE_EXPR:
12229 108 : {
12230 108 : tree _q40 = TREE_OPERAND (_q30, 0);
12231 108 : if (tree_zero_one_valued_p (_q40))
12232 : {
12233 18 : {
12234 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
12235 18 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
12236 18 : if (res) return res;
12237 : }
12238 : }
12239 : break;
12240 : }
12241 : default:;
12242 : }
12243 : break;
12244 : }
12245 10579 : case NEGATE_EXPR:
12246 10579 : {
12247 10579 : tree _q30 = TREE_OPERAND (_p1, 0);
12248 10579 : if (tree_zero_one_valued_p (_q30))
12249 : {
12250 24 : {
12251 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
12252 24 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
12253 24 : if (res) return res;
12254 : }
12255 : }
12256 : break;
12257 : }
12258 9130590 : default:;
12259 : }
12260 9130590 : switch (TREE_CODE (_p0))
12261 : {
12262 47686 : case NEGATE_EXPR:
12263 47686 : {
12264 47686 : tree _q20 = TREE_OPERAND (_p0, 0);
12265 47686 : switch (TREE_CODE (_q20))
12266 : {
12267 6106 : CASE_CONVERT:
12268 6106 : {
12269 6106 : tree _q30 = TREE_OPERAND (_q20, 0);
12270 6106 : switch (TREE_CODE (_q30))
12271 : {
12272 0 : case LT_EXPR:
12273 0 : {
12274 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12275 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12276 0 : {
12277 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12278 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, LT_EXPR);
12279 0 : if (res) return res;
12280 : }
12281 0 : break;
12282 : }
12283 0 : case LE_EXPR:
12284 0 : {
12285 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12286 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12287 0 : {
12288 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12289 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, LE_EXPR);
12290 0 : if (res) return res;
12291 : }
12292 0 : break;
12293 : }
12294 0 : case EQ_EXPR:
12295 0 : {
12296 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12297 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12298 0 : {
12299 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12300 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, EQ_EXPR);
12301 0 : if (res) return res;
12302 : }
12303 0 : break;
12304 : }
12305 0 : case NE_EXPR:
12306 0 : {
12307 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12308 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12309 0 : {
12310 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12311 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, NE_EXPR);
12312 0 : if (res) return res;
12313 : }
12314 0 : break;
12315 : }
12316 0 : case GE_EXPR:
12317 0 : {
12318 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12319 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12320 0 : {
12321 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12322 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, GE_EXPR);
12323 0 : if (res) return res;
12324 : }
12325 0 : break;
12326 : }
12327 0 : case GT_EXPR:
12328 0 : {
12329 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12330 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12331 0 : {
12332 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12333 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, GT_EXPR);
12334 0 : if (res) return res;
12335 : }
12336 0 : break;
12337 : }
12338 0 : case UNORDERED_EXPR:
12339 0 : {
12340 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12341 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12342 0 : {
12343 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12344 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12345 0 : if (res) return res;
12346 : }
12347 0 : break;
12348 : }
12349 0 : case ORDERED_EXPR:
12350 0 : {
12351 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12352 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12353 0 : {
12354 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12355 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12356 0 : if (res) return res;
12357 : }
12358 0 : break;
12359 : }
12360 0 : case UNLT_EXPR:
12361 0 : {
12362 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12363 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12364 0 : {
12365 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12366 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12367 0 : if (res) return res;
12368 : }
12369 0 : break;
12370 : }
12371 0 : case UNLE_EXPR:
12372 0 : {
12373 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12374 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12375 0 : {
12376 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12377 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12378 0 : if (res) return res;
12379 : }
12380 0 : break;
12381 : }
12382 0 : case UNGT_EXPR:
12383 0 : {
12384 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12385 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12386 0 : {
12387 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12388 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12389 0 : if (res) return res;
12390 : }
12391 0 : break;
12392 : }
12393 0 : case UNGE_EXPR:
12394 0 : {
12395 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12396 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12397 0 : {
12398 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12399 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12400 0 : if (res) return res;
12401 : }
12402 0 : break;
12403 : }
12404 0 : case UNEQ_EXPR:
12405 0 : {
12406 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12407 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12408 0 : {
12409 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12410 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12411 0 : if (res) return res;
12412 : }
12413 0 : break;
12414 : }
12415 0 : case LTGT_EXPR:
12416 0 : {
12417 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12418 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12419 0 : {
12420 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12421 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12422 0 : if (res) return res;
12423 : }
12424 0 : break;
12425 : }
12426 : default:;
12427 : }
12428 : break;
12429 : }
12430 : default:;
12431 : }
12432 : break;
12433 : }
12434 9130590 : default:;
12435 : }
12436 9130590 : switch (TREE_CODE (_p1))
12437 : {
12438 10555 : case NEGATE_EXPR:
12439 10555 : {
12440 10555 : tree _q30 = TREE_OPERAND (_p1, 0);
12441 10555 : switch (TREE_CODE (_q30))
12442 : {
12443 65 : CASE_CONVERT:
12444 65 : {
12445 65 : tree _q40 = TREE_OPERAND (_q30, 0);
12446 65 : switch (TREE_CODE (_q40))
12447 : {
12448 0 : case LT_EXPR:
12449 0 : {
12450 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12451 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12452 0 : {
12453 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12454 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, LT_EXPR);
12455 0 : if (res) return res;
12456 : }
12457 0 : break;
12458 : }
12459 0 : case LE_EXPR:
12460 0 : {
12461 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12462 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12463 0 : {
12464 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12465 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, LE_EXPR);
12466 0 : if (res) return res;
12467 : }
12468 0 : break;
12469 : }
12470 0 : case EQ_EXPR:
12471 0 : {
12472 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12473 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12474 0 : {
12475 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12476 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, EQ_EXPR);
12477 0 : if (res) return res;
12478 : }
12479 0 : break;
12480 : }
12481 0 : case NE_EXPR:
12482 0 : {
12483 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12484 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12485 0 : {
12486 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12487 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, NE_EXPR);
12488 0 : if (res) return res;
12489 : }
12490 0 : break;
12491 : }
12492 0 : case GE_EXPR:
12493 0 : {
12494 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12495 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12496 0 : {
12497 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12498 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, GE_EXPR);
12499 0 : if (res) return res;
12500 : }
12501 0 : break;
12502 : }
12503 0 : case GT_EXPR:
12504 0 : {
12505 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12506 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12507 0 : {
12508 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12509 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, GT_EXPR);
12510 0 : if (res) return res;
12511 : }
12512 0 : break;
12513 : }
12514 0 : case UNORDERED_EXPR:
12515 0 : {
12516 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12517 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12518 0 : {
12519 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12520 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12521 0 : if (res) return res;
12522 : }
12523 0 : break;
12524 : }
12525 0 : case ORDERED_EXPR:
12526 0 : {
12527 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12528 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12529 0 : {
12530 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12531 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12532 0 : if (res) return res;
12533 : }
12534 0 : break;
12535 : }
12536 0 : case UNLT_EXPR:
12537 0 : {
12538 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12539 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12540 0 : {
12541 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12542 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12543 0 : if (res) return res;
12544 : }
12545 0 : break;
12546 : }
12547 0 : case UNLE_EXPR:
12548 0 : {
12549 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12550 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12551 0 : {
12552 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12553 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12554 0 : if (res) return res;
12555 : }
12556 0 : break;
12557 : }
12558 0 : case UNGT_EXPR:
12559 0 : {
12560 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12561 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12562 0 : {
12563 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12564 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12565 0 : if (res) return res;
12566 : }
12567 0 : break;
12568 : }
12569 0 : case UNGE_EXPR:
12570 0 : {
12571 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12572 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12573 0 : {
12574 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12575 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12576 0 : if (res) return res;
12577 : }
12578 0 : break;
12579 : }
12580 0 : case UNEQ_EXPR:
12581 0 : {
12582 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12583 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12584 0 : {
12585 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12586 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12587 0 : if (res) return res;
12588 : }
12589 0 : break;
12590 : }
12591 0 : case LTGT_EXPR:
12592 0 : {
12593 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12594 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12595 0 : {
12596 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12597 0 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12598 0 : if (res) return res;
12599 : }
12600 0 : break;
12601 : }
12602 : default:;
12603 : }
12604 : break;
12605 : }
12606 : default:;
12607 : }
12608 : break;
12609 : }
12610 9130590 : default:;
12611 : }
12612 9130590 : switch (TREE_CODE (_p0))
12613 : {
12614 2685515 : CASE_CONVERT:
12615 2685515 : {
12616 2685515 : tree _q20 = TREE_OPERAND (_p0, 0);
12617 2685515 : switch (TREE_CODE (_p1))
12618 : {
12619 1631595 : case INTEGER_CST:
12620 1631595 : {
12621 1631595 : {
12622 1631595 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12623 1631595 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
12624 1631595 : if (res) return res;
12625 : }
12626 1626679 : break;
12627 : }
12628 : default:;
12629 : }
12630 : break;
12631 : }
12632 9125674 : default:;
12633 : }
12634 9125674 : switch (TREE_CODE (_p1))
12635 : {
12636 7138964 : case INTEGER_CST:
12637 7138964 : {
12638 7138964 : {
12639 7138964 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12640 7138964 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
12641 7138964 : if (res) return res;
12642 : }
12643 7138964 : break;
12644 : }
12645 9125674 : default:;
12646 : }
12647 9125674 : switch (TREE_CODE (_p0))
12648 : {
12649 356 : case GT_EXPR:
12650 356 : {
12651 356 : tree _q20 = TREE_OPERAND (_p0, 0);
12652 356 : tree _q21 = TREE_OPERAND (_p0, 1);
12653 356 : switch (TREE_CODE (_p1))
12654 : {
12655 59 : case EQ_EXPR:
12656 59 : {
12657 59 : tree _q50 = TREE_OPERAND (_p1, 0);
12658 59 : tree _q51 = TREE_OPERAND (_p1, 1);
12659 59 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12660 : {
12661 8 : if (tree_min_value (_q51))
12662 : {
12663 4 : {
12664 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12665 4 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, EQ_EXPR);
12666 4 : if (res) return res;
12667 : }
12668 : }
12669 : }
12670 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12671 : {
12672 0 : if (tree_max_value (_q51))
12673 : {
12674 0 : {
12675 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12676 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, EQ_EXPR);
12677 0 : if (res) return res;
12678 : }
12679 : }
12680 : }
12681 : break;
12682 : }
12683 4 : case NE_EXPR:
12684 4 : {
12685 4 : tree _q50 = TREE_OPERAND (_p1, 0);
12686 4 : tree _q51 = TREE_OPERAND (_p1, 1);
12687 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12688 : {
12689 4 : if (tree_min_value (_q51))
12690 : {
12691 4 : {
12692 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12693 4 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, NE_EXPR);
12694 4 : if (res) return res;
12695 : }
12696 : }
12697 : }
12698 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12699 : {
12700 0 : if (tree_max_value (_q51))
12701 : {
12702 0 : {
12703 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12704 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, NE_EXPR);
12705 0 : if (res) return res;
12706 : }
12707 : }
12708 : }
12709 : break;
12710 : }
12711 348 : default:;
12712 : }
12713 348 : switch (TREE_CODE (_q20))
12714 : {
12715 0 : CASE_CONVERT:
12716 0 : {
12717 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12718 0 : switch (TREE_CODE (_p1))
12719 : {
12720 0 : case EQ_EXPR:
12721 0 : {
12722 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12723 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12724 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12725 : {
12726 0 : {
12727 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
12728 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12729 0 : if (res) return res;
12730 : }
12731 : }
12732 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12733 : {
12734 0 : {
12735 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
12736 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12737 0 : if (res) return res;
12738 : }
12739 : }
12740 : break;
12741 : }
12742 0 : case NE_EXPR:
12743 0 : {
12744 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12745 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12746 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12747 : {
12748 0 : {
12749 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
12750 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
12751 0 : if (res) return res;
12752 : }
12753 : }
12754 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12755 : {
12756 0 : {
12757 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
12758 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
12759 0 : if (res) return res;
12760 : }
12761 : }
12762 : break;
12763 : }
12764 : default:;
12765 : }
12766 : break;
12767 : }
12768 348 : default:;
12769 : }
12770 348 : switch (TREE_CODE (_q21))
12771 : {
12772 0 : CASE_CONVERT:
12773 0 : {
12774 0 : tree _q40 = TREE_OPERAND (_q21, 0);
12775 0 : switch (TREE_CODE (_p1))
12776 : {
12777 0 : case EQ_EXPR:
12778 0 : {
12779 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12780 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12781 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
12782 : {
12783 0 : {
12784 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
12785 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
12786 0 : if (res) return res;
12787 : }
12788 : }
12789 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
12790 : {
12791 0 : {
12792 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
12793 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
12794 0 : if (res) return res;
12795 : }
12796 : }
12797 : break;
12798 : }
12799 0 : case NE_EXPR:
12800 0 : {
12801 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12802 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12803 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
12804 : {
12805 0 : {
12806 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
12807 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
12808 0 : if (res) return res;
12809 : }
12810 : }
12811 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
12812 : {
12813 0 : {
12814 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
12815 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
12816 0 : if (res) return res;
12817 : }
12818 : }
12819 : break;
12820 : }
12821 : default:;
12822 : }
12823 : break;
12824 : }
12825 348 : default:;
12826 : }
12827 348 : switch (TREE_CODE (_p1))
12828 : {
12829 55 : case EQ_EXPR:
12830 55 : {
12831 55 : tree _q50 = TREE_OPERAND (_p1, 0);
12832 55 : tree _q51 = TREE_OPERAND (_p1, 1);
12833 55 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12834 : {
12835 4 : {
12836 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
12837 4 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12838 4 : if (res) return res;
12839 : }
12840 : }
12841 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12842 : {
12843 0 : {
12844 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
12845 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
12846 0 : if (res) return res;
12847 : }
12848 : }
12849 55 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12850 : {
12851 0 : {
12852 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
12853 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12854 0 : if (res) return res;
12855 : }
12856 : }
12857 55 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12858 : {
12859 0 : {
12860 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
12861 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
12862 0 : if (res) return res;
12863 : }
12864 : }
12865 : break;
12866 : }
12867 0 : case NE_EXPR:
12868 0 : {
12869 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12870 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12871 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12872 : {
12873 0 : {
12874 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
12875 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
12876 0 : if (res) return res;
12877 : }
12878 : }
12879 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12880 : {
12881 0 : {
12882 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
12883 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
12884 0 : if (res) return res;
12885 : }
12886 : }
12887 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12888 : {
12889 0 : {
12890 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
12891 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
12892 0 : if (res) return res;
12893 : }
12894 : }
12895 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12896 : {
12897 0 : {
12898 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
12899 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
12900 0 : if (res) return res;
12901 : }
12902 : }
12903 : break;
12904 : }
12905 67 : case LT_EXPR:
12906 67 : {
12907 67 : tree _q50 = TREE_OPERAND (_p1, 0);
12908 67 : tree _q51 = TREE_OPERAND (_p1, 1);
12909 67 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12910 : {
12911 4 : {
12912 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
12913 4 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
12914 4 : if (res) return res;
12915 : }
12916 : }
12917 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12918 : {
12919 0 : {
12920 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
12921 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
12922 0 : if (res) return res;
12923 : }
12924 : }
12925 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12926 : {
12927 0 : {
12928 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
12929 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
12930 0 : if (res) return res;
12931 : }
12932 : }
12933 67 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12934 : {
12935 4 : {
12936 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
12937 4 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
12938 4 : if (res) return res;
12939 : }
12940 : }
12941 : break;
12942 : }
12943 72 : case LE_EXPR:
12944 72 : {
12945 72 : tree _q50 = TREE_OPERAND (_p1, 0);
12946 72 : tree _q51 = TREE_OPERAND (_p1, 1);
12947 72 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12948 : {
12949 23 : {
12950 23 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
12951 23 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
12952 23 : if (res) return res;
12953 : }
12954 : }
12955 72 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12956 : {
12957 0 : {
12958 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
12959 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
12960 0 : if (res) return res;
12961 : }
12962 : }
12963 72 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12964 : {
12965 0 : {
12966 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
12967 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
12968 0 : if (res) return res;
12969 : }
12970 : }
12971 72 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12972 : {
12973 0 : {
12974 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
12975 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
12976 0 : if (res) return res;
12977 : }
12978 : }
12979 : break;
12980 : }
12981 85 : case GT_EXPR:
12982 85 : {
12983 85 : tree _q50 = TREE_OPERAND (_p1, 0);
12984 85 : tree _q51 = TREE_OPERAND (_p1, 1);
12985 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12986 : {
12987 0 : {
12988 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
12989 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
12990 0 : if (res) return res;
12991 : }
12992 : }
12993 85 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12994 : {
12995 0 : {
12996 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
12997 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
12998 0 : if (res) return res;
12999 : }
13000 : }
13001 85 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13002 : {
13003 0 : {
13004 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13005 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13006 0 : if (res) return res;
13007 : }
13008 : }
13009 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13010 : {
13011 35 : {
13012 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13013 35 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13014 35 : if (res) return res;
13015 : }
13016 : }
13017 : break;
13018 : }
13019 0 : case GE_EXPR:
13020 0 : {
13021 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13022 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13023 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13024 : {
13025 0 : {
13026 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13027 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13028 0 : if (res) return res;
13029 : }
13030 : }
13031 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13032 : {
13033 0 : {
13034 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13035 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13036 0 : if (res) return res;
13037 : }
13038 : }
13039 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13040 : {
13041 0 : {
13042 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13043 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13044 0 : if (res) return res;
13045 : }
13046 : }
13047 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13048 : {
13049 0 : {
13050 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13051 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13052 0 : if (res) return res;
13053 : }
13054 : }
13055 : break;
13056 : }
13057 : default:;
13058 : }
13059 : break;
13060 : }
13061 92 : case LT_EXPR:
13062 92 : {
13063 92 : tree _q20 = TREE_OPERAND (_p0, 0);
13064 92 : tree _q21 = TREE_OPERAND (_p0, 1);
13065 92 : switch (TREE_CODE (_p1))
13066 : {
13067 35 : case EQ_EXPR:
13068 35 : {
13069 35 : tree _q50 = TREE_OPERAND (_p1, 0);
13070 35 : tree _q51 = TREE_OPERAND (_p1, 1);
13071 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13072 : {
13073 0 : if (tree_min_value (_q51))
13074 : {
13075 0 : {
13076 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13077 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, EQ_EXPR);
13078 0 : if (res) return res;
13079 : }
13080 : }
13081 : }
13082 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13083 : {
13084 4 : if (tree_max_value (_q51))
13085 : {
13086 4 : {
13087 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13088 4 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, EQ_EXPR);
13089 4 : if (res) return res;
13090 : }
13091 : }
13092 : }
13093 : break;
13094 : }
13095 6 : case NE_EXPR:
13096 6 : {
13097 6 : tree _q50 = TREE_OPERAND (_p1, 0);
13098 6 : tree _q51 = TREE_OPERAND (_p1, 1);
13099 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13100 : {
13101 0 : if (tree_min_value (_q51))
13102 : {
13103 0 : {
13104 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13105 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, NE_EXPR);
13106 0 : if (res) return res;
13107 : }
13108 : }
13109 : }
13110 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13111 : {
13112 4 : if (tree_max_value (_q51))
13113 : {
13114 4 : {
13115 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13116 4 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, NE_EXPR);
13117 4 : if (res) return res;
13118 : }
13119 : }
13120 : }
13121 : break;
13122 : }
13123 84 : default:;
13124 : }
13125 84 : switch (TREE_CODE (_q20))
13126 : {
13127 8 : CASE_CONVERT:
13128 8 : {
13129 8 : tree _q30 = TREE_OPERAND (_q20, 0);
13130 8 : switch (TREE_CODE (_p1))
13131 : {
13132 0 : case EQ_EXPR:
13133 0 : {
13134 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13135 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13136 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13137 : {
13138 0 : {
13139 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13140 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13141 0 : if (res) return res;
13142 : }
13143 : }
13144 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13145 : {
13146 0 : {
13147 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13148 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13149 0 : if (res) return res;
13150 : }
13151 : }
13152 : break;
13153 : }
13154 0 : case NE_EXPR:
13155 0 : {
13156 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13157 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13158 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13159 : {
13160 0 : {
13161 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13162 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13163 0 : if (res) return res;
13164 : }
13165 : }
13166 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13167 : {
13168 0 : {
13169 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13170 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13171 0 : if (res) return res;
13172 : }
13173 : }
13174 : break;
13175 : }
13176 : default:;
13177 : }
13178 : break;
13179 : }
13180 84 : default:;
13181 : }
13182 84 : switch (TREE_CODE (_q21))
13183 : {
13184 5 : CASE_CONVERT:
13185 5 : {
13186 5 : tree _q40 = TREE_OPERAND (_q21, 0);
13187 5 : switch (TREE_CODE (_p1))
13188 : {
13189 0 : case EQ_EXPR:
13190 0 : {
13191 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13192 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13193 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13194 : {
13195 0 : {
13196 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13197 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13198 0 : if (res) return res;
13199 : }
13200 : }
13201 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13202 : {
13203 0 : {
13204 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13205 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13206 0 : if (res) return res;
13207 : }
13208 : }
13209 : break;
13210 : }
13211 0 : case NE_EXPR:
13212 0 : {
13213 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13214 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13215 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13216 : {
13217 0 : {
13218 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13219 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13220 0 : if (res) return res;
13221 : }
13222 : }
13223 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13224 : {
13225 0 : {
13226 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13227 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13228 0 : if (res) return res;
13229 : }
13230 : }
13231 : break;
13232 : }
13233 : default:;
13234 : }
13235 : break;
13236 : }
13237 84 : default:;
13238 : }
13239 84 : switch (TREE_CODE (_p1))
13240 : {
13241 31 : case EQ_EXPR:
13242 31 : {
13243 31 : tree _q50 = TREE_OPERAND (_p1, 0);
13244 31 : tree _q51 = TREE_OPERAND (_p1, 1);
13245 31 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13246 : {
13247 0 : {
13248 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13249 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13250 0 : if (res) return res;
13251 : }
13252 : }
13253 31 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13254 : {
13255 0 : {
13256 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13257 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13258 0 : if (res) return res;
13259 : }
13260 : }
13261 31 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13262 : {
13263 0 : {
13264 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13265 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13266 0 : if (res) return res;
13267 : }
13268 : }
13269 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13270 : {
13271 0 : {
13272 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13273 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13274 0 : if (res) return res;
13275 : }
13276 : }
13277 : break;
13278 : }
13279 2 : case NE_EXPR:
13280 2 : {
13281 2 : tree _q50 = TREE_OPERAND (_p1, 0);
13282 2 : tree _q51 = TREE_OPERAND (_p1, 1);
13283 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13284 : {
13285 0 : {
13286 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13287 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13288 0 : if (res) return res;
13289 : }
13290 : }
13291 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13292 : {
13293 0 : {
13294 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13295 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13296 0 : if (res) return res;
13297 : }
13298 : }
13299 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13300 : {
13301 0 : {
13302 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13303 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13304 0 : if (res) return res;
13305 : }
13306 : }
13307 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13308 : {
13309 2 : {
13310 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13311 2 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13312 2 : if (res) return res;
13313 : }
13314 : }
13315 : break;
13316 : }
13317 8 : case LT_EXPR:
13318 8 : {
13319 8 : tree _q50 = TREE_OPERAND (_p1, 0);
13320 8 : tree _q51 = TREE_OPERAND (_p1, 1);
13321 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13322 : {
13323 0 : {
13324 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13325 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13326 0 : if (res) return res;
13327 : }
13328 : }
13329 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13330 : {
13331 0 : {
13332 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13333 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13334 0 : if (res) return res;
13335 : }
13336 : }
13337 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13338 : {
13339 0 : {
13340 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13341 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13342 0 : if (res) return res;
13343 : }
13344 : }
13345 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13346 : {
13347 0 : {
13348 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13349 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13350 0 : if (res) return res;
13351 : }
13352 : }
13353 : break;
13354 : }
13355 0 : case LE_EXPR:
13356 0 : {
13357 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13358 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13359 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13360 : {
13361 0 : {
13362 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13363 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13364 0 : if (res) return res;
13365 : }
13366 : }
13367 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13368 : {
13369 0 : {
13370 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13371 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13372 0 : if (res) return res;
13373 : }
13374 : }
13375 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13376 : {
13377 0 : {
13378 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13379 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13380 0 : if (res) return res;
13381 : }
13382 : }
13383 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13384 : {
13385 0 : {
13386 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13387 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13388 0 : if (res) return res;
13389 : }
13390 : }
13391 : break;
13392 : }
13393 5 : case GT_EXPR:
13394 5 : {
13395 5 : tree _q50 = TREE_OPERAND (_p1, 0);
13396 5 : tree _q51 = TREE_OPERAND (_p1, 1);
13397 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13398 : {
13399 4 : {
13400 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13401 4 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13402 4 : if (res) return res;
13403 : }
13404 : }
13405 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13406 : {
13407 0 : {
13408 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13409 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13410 0 : if (res) return res;
13411 : }
13412 : }
13413 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13414 : {
13415 0 : {
13416 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13417 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13418 0 : if (res) return res;
13419 : }
13420 : }
13421 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13422 : {
13423 0 : {
13424 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13425 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13426 0 : if (res) return res;
13427 : }
13428 : }
13429 : break;
13430 : }
13431 0 : case GE_EXPR:
13432 0 : {
13433 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13434 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13435 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13436 : {
13437 0 : {
13438 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13439 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13440 0 : if (res) return res;
13441 : }
13442 : }
13443 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13444 : {
13445 0 : {
13446 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13447 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13448 0 : if (res) return res;
13449 : }
13450 : }
13451 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13452 : {
13453 0 : {
13454 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13455 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13456 0 : if (res) return res;
13457 : }
13458 : }
13459 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13460 : {
13461 0 : {
13462 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13463 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13464 0 : if (res) return res;
13465 : }
13466 : }
13467 : break;
13468 : }
13469 : default:;
13470 : }
13471 : break;
13472 : }
13473 1072 : case EQ_EXPR:
13474 1072 : {
13475 1072 : tree _q20 = TREE_OPERAND (_p0, 0);
13476 1072 : tree _q21 = TREE_OPERAND (_p0, 1);
13477 1072 : if (tree_min_value (_q21))
13478 : {
13479 40 : switch (TREE_CODE (_p1))
13480 : {
13481 0 : case GT_EXPR:
13482 0 : {
13483 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13484 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13485 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13486 : {
13487 0 : {
13488 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13489 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, EQ_EXPR);
13490 0 : if (res) return res;
13491 : }
13492 : }
13493 : break;
13494 : }
13495 14 : case LT_EXPR:
13496 14 : {
13497 14 : tree _q50 = TREE_OPERAND (_p1, 0);
13498 14 : tree _q51 = TREE_OPERAND (_p1, 1);
13499 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13500 : {
13501 0 : {
13502 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13503 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, EQ_EXPR);
13504 0 : if (res) return res;
13505 : }
13506 : }
13507 : break;
13508 : }
13509 0 : case LE_EXPR:
13510 0 : {
13511 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13512 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13513 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13514 : {
13515 0 : {
13516 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13517 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
13518 0 : if (res) return res;
13519 : }
13520 : }
13521 : break;
13522 : }
13523 0 : case GE_EXPR:
13524 0 : {
13525 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13526 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13527 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13528 : {
13529 0 : {
13530 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13531 0 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
13532 0 : if (res) return res;
13533 : }
13534 : }
13535 : break;
13536 : }
13537 : default:;
13538 : }
13539 : }
13540 1072 : if (tree_max_value (_q21))
13541 : {
13542 0 : switch (TREE_CODE (_p1))
13543 : {
13544 0 : case LT_EXPR:
13545 0 : {
13546 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13547 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13548 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13549 : {
13550 0 : {
13551 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13552 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, EQ_EXPR);
13553 0 : if (res) return res;
13554 : }
13555 : }
13556 : break;
13557 : }
13558 0 : case GT_EXPR:
13559 0 : {
13560 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13561 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13562 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13563 : {
13564 0 : {
13565 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13566 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, EQ_EXPR);
13567 0 : if (res) return res;
13568 : }
13569 : }
13570 : break;
13571 : }
13572 0 : case GE_EXPR:
13573 0 : {
13574 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13575 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13576 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13577 : {
13578 0 : {
13579 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13580 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures);
13581 0 : if (res) return res;
13582 : }
13583 : }
13584 : break;
13585 : }
13586 0 : case LE_EXPR:
13587 0 : {
13588 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13589 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13590 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13591 : {
13592 0 : {
13593 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13594 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures);
13595 0 : if (res) return res;
13596 : }
13597 : }
13598 : break;
13599 : }
13600 : default:;
13601 : }
13602 : }
13603 1072 : switch (TREE_CODE (_p1))
13604 : {
13605 537 : case EQ_EXPR:
13606 537 : {
13607 537 : tree _q50 = TREE_OPERAND (_p1, 0);
13608 537 : tree _q51 = TREE_OPERAND (_p1, 1);
13609 537 : switch (TREE_CODE (_q50))
13610 : {
13611 0 : CASE_CONVERT:
13612 0 : {
13613 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13614 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13615 : {
13616 0 : {
13617 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13618 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13619 0 : if (res) return res;
13620 : }
13621 : }
13622 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13623 : {
13624 0 : {
13625 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13626 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13627 0 : if (res) return res;
13628 : }
13629 : }
13630 : break;
13631 : }
13632 537 : default:;
13633 : }
13634 537 : switch (TREE_CODE (_q51))
13635 : {
13636 0 : CASE_CONVERT:
13637 0 : {
13638 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13639 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13640 : {
13641 0 : {
13642 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13643 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13644 0 : if (res) return res;
13645 : }
13646 : }
13647 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13648 : {
13649 0 : {
13650 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13651 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13652 0 : if (res) return res;
13653 : }
13654 : }
13655 : break;
13656 : }
13657 : default:;
13658 : }
13659 : break;
13660 : }
13661 33 : case NE_EXPR:
13662 33 : {
13663 33 : tree _q50 = TREE_OPERAND (_p1, 0);
13664 33 : tree _q51 = TREE_OPERAND (_p1, 1);
13665 33 : switch (TREE_CODE (_q50))
13666 : {
13667 0 : CASE_CONVERT:
13668 0 : {
13669 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13670 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13671 : {
13672 0 : {
13673 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13674 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13675 0 : if (res) return res;
13676 : }
13677 : }
13678 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13679 : {
13680 0 : {
13681 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13682 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13683 0 : if (res) return res;
13684 : }
13685 : }
13686 : break;
13687 : }
13688 33 : default:;
13689 : }
13690 33 : switch (TREE_CODE (_q51))
13691 : {
13692 0 : CASE_CONVERT:
13693 0 : {
13694 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13695 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13696 : {
13697 0 : {
13698 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13699 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13700 0 : if (res) return res;
13701 : }
13702 : }
13703 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13704 : {
13705 0 : {
13706 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13707 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13708 0 : if (res) return res;
13709 : }
13710 : }
13711 : break;
13712 : }
13713 : default:;
13714 : }
13715 : break;
13716 : }
13717 19 : case LT_EXPR:
13718 19 : {
13719 19 : tree _q50 = TREE_OPERAND (_p1, 0);
13720 19 : tree _q51 = TREE_OPERAND (_p1, 1);
13721 19 : switch (TREE_CODE (_q50))
13722 : {
13723 0 : CASE_CONVERT:
13724 0 : {
13725 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13726 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13727 : {
13728 0 : {
13729 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13730 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13731 0 : if (res) return res;
13732 : }
13733 : }
13734 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13735 : {
13736 0 : {
13737 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13738 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13739 0 : if (res) return res;
13740 : }
13741 : }
13742 : break;
13743 : }
13744 19 : default:;
13745 : }
13746 19 : switch (TREE_CODE (_q51))
13747 : {
13748 0 : CASE_CONVERT:
13749 0 : {
13750 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13751 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13752 : {
13753 0 : {
13754 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13755 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13756 0 : if (res) return res;
13757 : }
13758 : }
13759 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13760 : {
13761 0 : {
13762 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13763 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13764 0 : if (res) return res;
13765 : }
13766 : }
13767 : break;
13768 : }
13769 : default:;
13770 : }
13771 : break;
13772 : }
13773 12 : case GT_EXPR:
13774 12 : {
13775 12 : tree _q50 = TREE_OPERAND (_p1, 0);
13776 12 : tree _q51 = TREE_OPERAND (_p1, 1);
13777 12 : switch (TREE_CODE (_q50))
13778 : {
13779 0 : CASE_CONVERT:
13780 0 : {
13781 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13782 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13783 : {
13784 0 : {
13785 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13786 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13787 0 : if (res) return res;
13788 : }
13789 : }
13790 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13791 : {
13792 0 : {
13793 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13794 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13795 0 : if (res) return res;
13796 : }
13797 : }
13798 : break;
13799 : }
13800 12 : default:;
13801 : }
13802 12 : switch (TREE_CODE (_q51))
13803 : {
13804 0 : CASE_CONVERT:
13805 0 : {
13806 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13807 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13808 : {
13809 0 : {
13810 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13811 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13812 0 : if (res) return res;
13813 : }
13814 : }
13815 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13816 : {
13817 0 : {
13818 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13819 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13820 0 : if (res) return res;
13821 : }
13822 : }
13823 : break;
13824 : }
13825 : default:;
13826 : }
13827 : break;
13828 : }
13829 36 : case LE_EXPR:
13830 36 : {
13831 36 : tree _q50 = TREE_OPERAND (_p1, 0);
13832 36 : tree _q51 = TREE_OPERAND (_p1, 1);
13833 36 : switch (TREE_CODE (_q50))
13834 : {
13835 12 : CASE_CONVERT:
13836 12 : {
13837 12 : tree _q60 = TREE_OPERAND (_q50, 0);
13838 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13839 : {
13840 0 : {
13841 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13842 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
13843 0 : if (res) return res;
13844 : }
13845 : }
13846 12 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13847 : {
13848 0 : {
13849 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13850 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
13851 0 : if (res) return res;
13852 : }
13853 : }
13854 : break;
13855 : }
13856 36 : default:;
13857 : }
13858 36 : switch (TREE_CODE (_q51))
13859 : {
13860 0 : CASE_CONVERT:
13861 0 : {
13862 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13863 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13864 : {
13865 0 : {
13866 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13867 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
13868 0 : if (res) return res;
13869 : }
13870 : }
13871 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13872 : {
13873 0 : {
13874 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13875 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
13876 0 : if (res) return res;
13877 : }
13878 : }
13879 : break;
13880 : }
13881 : default:;
13882 : }
13883 : break;
13884 : }
13885 4 : case GE_EXPR:
13886 4 : {
13887 4 : tree _q50 = TREE_OPERAND (_p1, 0);
13888 4 : tree _q51 = TREE_OPERAND (_p1, 1);
13889 4 : switch (TREE_CODE (_q50))
13890 : {
13891 0 : CASE_CONVERT:
13892 0 : {
13893 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13894 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13895 : {
13896 0 : {
13897 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13898 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
13899 0 : if (res) return res;
13900 : }
13901 : }
13902 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13903 : {
13904 0 : {
13905 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13906 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
13907 0 : if (res) return res;
13908 : }
13909 : }
13910 : break;
13911 : }
13912 4 : default:;
13913 : }
13914 4 : switch (TREE_CODE (_q51))
13915 : {
13916 0 : CASE_CONVERT:
13917 0 : {
13918 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13919 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13920 : {
13921 0 : {
13922 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13923 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
13924 0 : if (res) return res;
13925 : }
13926 : }
13927 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13928 : {
13929 0 : {
13930 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13931 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
13932 0 : if (res) return res;
13933 : }
13934 : }
13935 : break;
13936 : }
13937 : default:;
13938 : }
13939 : break;
13940 : }
13941 1072 : default:;
13942 : }
13943 1072 : switch (TREE_CODE (_q20))
13944 : {
13945 0 : CASE_CONVERT:
13946 0 : {
13947 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13948 0 : switch (TREE_CODE (_p1))
13949 : {
13950 0 : case EQ_EXPR:
13951 0 : {
13952 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13953 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13954 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13955 : {
13956 0 : {
13957 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13958 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13959 0 : if (res) return res;
13960 : }
13961 : }
13962 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13963 : {
13964 0 : {
13965 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13966 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13967 0 : if (res) return res;
13968 : }
13969 : }
13970 : break;
13971 : }
13972 0 : case NE_EXPR:
13973 0 : {
13974 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13975 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13976 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13977 : {
13978 0 : {
13979 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13980 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
13981 0 : if (res) return res;
13982 : }
13983 : }
13984 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13985 : {
13986 0 : {
13987 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13988 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
13989 0 : if (res) return res;
13990 : }
13991 : }
13992 : break;
13993 : }
13994 : default:;
13995 : }
13996 : break;
13997 : }
13998 1072 : default:;
13999 : }
14000 1072 : switch (TREE_CODE (_q21))
14001 : {
14002 0 : CASE_CONVERT:
14003 0 : {
14004 0 : tree _q40 = TREE_OPERAND (_q21, 0);
14005 0 : switch (TREE_CODE (_p1))
14006 : {
14007 0 : case EQ_EXPR:
14008 0 : {
14009 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14010 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14011 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14012 : {
14013 0 : {
14014 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14015 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14016 0 : if (res) return res;
14017 : }
14018 : }
14019 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14020 : {
14021 0 : {
14022 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14023 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14024 0 : if (res) return res;
14025 : }
14026 : }
14027 : break;
14028 : }
14029 0 : case NE_EXPR:
14030 0 : {
14031 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14032 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14033 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14034 : {
14035 0 : {
14036 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14037 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14038 0 : if (res) return res;
14039 : }
14040 : }
14041 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14042 : {
14043 0 : {
14044 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14045 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14046 0 : if (res) return res;
14047 : }
14048 : }
14049 : break;
14050 : }
14051 : default:;
14052 : }
14053 : break;
14054 : }
14055 1072 : default:;
14056 : }
14057 1072 : switch (TREE_CODE (_p1))
14058 : {
14059 537 : case EQ_EXPR:
14060 537 : {
14061 537 : tree _q50 = TREE_OPERAND (_p1, 0);
14062 537 : tree _q51 = TREE_OPERAND (_p1, 1);
14063 537 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14064 : {
14065 0 : {
14066 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14067 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14068 0 : if (res) return res;
14069 : }
14070 0 : {
14071 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14072 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14073 0 : if (res) return res;
14074 : }
14075 : }
14076 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14077 : {
14078 0 : {
14079 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14080 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14081 0 : if (res) return res;
14082 : }
14083 : }
14084 537 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14085 : {
14086 0 : {
14087 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14088 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14089 0 : if (res) return res;
14090 : }
14091 0 : {
14092 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14093 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14094 0 : if (res) return res;
14095 : }
14096 : }
14097 537 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14098 : {
14099 178 : {
14100 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14101 178 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14102 178 : if (res) return res;
14103 : }
14104 178 : {
14105 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14106 178 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14107 178 : if (res) return res;
14108 : }
14109 : }
14110 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14111 : {
14112 0 : {
14113 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14114 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14115 0 : if (res) return res;
14116 : }
14117 : }
14118 : break;
14119 : }
14120 33 : case NE_EXPR:
14121 33 : {
14122 33 : tree _q50 = TREE_OPERAND (_p1, 0);
14123 33 : tree _q51 = TREE_OPERAND (_p1, 1);
14124 33 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14125 : {
14126 0 : {
14127 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14128 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14129 0 : if (res) return res;
14130 : }
14131 0 : {
14132 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14133 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14134 0 : if (res) return res;
14135 : }
14136 : }
14137 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14138 : {
14139 0 : {
14140 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14141 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14142 0 : if (res) return res;
14143 : }
14144 : }
14145 33 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14146 : {
14147 0 : {
14148 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14149 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14150 0 : if (res) return res;
14151 : }
14152 0 : {
14153 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14154 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14155 0 : if (res) return res;
14156 : }
14157 : }
14158 33 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14159 : {
14160 11 : {
14161 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14162 11 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14163 11 : if (res) return res;
14164 : }
14165 11 : {
14166 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14167 11 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14168 11 : if (res) return res;
14169 : }
14170 : }
14171 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14172 : {
14173 0 : {
14174 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14175 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14176 0 : if (res) return res;
14177 : }
14178 : }
14179 : break;
14180 : }
14181 19 : case LT_EXPR:
14182 19 : {
14183 19 : tree _q50 = TREE_OPERAND (_p1, 0);
14184 19 : tree _q51 = TREE_OPERAND (_p1, 1);
14185 19 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14186 : {
14187 0 : {
14188 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14189 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14190 0 : if (res) return res;
14191 : }
14192 : }
14193 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14194 : {
14195 0 : {
14196 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14197 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14198 0 : if (res) return res;
14199 : }
14200 : }
14201 19 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14202 : {
14203 0 : {
14204 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14205 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14206 0 : if (res) return res;
14207 : }
14208 : }
14209 19 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14210 : {
14211 0 : {
14212 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14213 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14214 0 : if (res) return res;
14215 : }
14216 : }
14217 : break;
14218 : }
14219 12 : case GT_EXPR:
14220 12 : {
14221 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14222 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14223 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14224 : {
14225 0 : {
14226 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14227 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14228 0 : if (res) return res;
14229 : }
14230 : }
14231 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14232 : {
14233 0 : {
14234 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14235 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14236 0 : if (res) return res;
14237 : }
14238 : }
14239 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14240 : {
14241 0 : {
14242 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14243 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14244 0 : if (res) return res;
14245 : }
14246 : }
14247 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14248 : {
14249 0 : {
14250 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14251 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14252 0 : if (res) return res;
14253 : }
14254 : }
14255 : break;
14256 : }
14257 36 : case LE_EXPR:
14258 36 : {
14259 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14260 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14261 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14262 : {
14263 0 : {
14264 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14265 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14266 0 : if (res) return res;
14267 : }
14268 : }
14269 36 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14270 : {
14271 0 : {
14272 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14273 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14274 0 : if (res) return res;
14275 : }
14276 : }
14277 36 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14278 : {
14279 0 : {
14280 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14281 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14282 0 : if (res) return res;
14283 : }
14284 : }
14285 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14286 : {
14287 0 : {
14288 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14289 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14290 0 : if (res) return res;
14291 : }
14292 : }
14293 : break;
14294 : }
14295 4 : case GE_EXPR:
14296 4 : {
14297 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14298 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14299 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14300 : {
14301 0 : {
14302 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14303 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14304 0 : if (res) return res;
14305 : }
14306 : }
14307 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14308 : {
14309 0 : {
14310 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14311 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14312 0 : if (res) return res;
14313 : }
14314 : }
14315 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14316 : {
14317 0 : {
14318 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14319 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14320 0 : if (res) return res;
14321 : }
14322 : }
14323 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14324 : {
14325 0 : {
14326 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14327 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14328 0 : if (res) return res;
14329 : }
14330 : }
14331 : break;
14332 : }
14333 : default:;
14334 : }
14335 : break;
14336 : }
14337 132 : case NE_EXPR:
14338 132 : {
14339 132 : tree _q20 = TREE_OPERAND (_p0, 0);
14340 132 : tree _q21 = TREE_OPERAND (_p0, 1);
14341 132 : if (tree_min_value (_q21))
14342 : {
14343 16 : switch (TREE_CODE (_p1))
14344 : {
14345 0 : case GT_EXPR:
14346 0 : {
14347 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14348 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14349 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14350 : {
14351 0 : {
14352 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14353 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, NE_EXPR);
14354 0 : if (res) return res;
14355 : }
14356 : }
14357 : break;
14358 : }
14359 0 : case LT_EXPR:
14360 0 : {
14361 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14362 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14363 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14364 : {
14365 0 : {
14366 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14367 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, NE_EXPR);
14368 0 : if (res) return res;
14369 : }
14370 : }
14371 : break;
14372 : }
14373 3 : case GE_EXPR:
14374 3 : {
14375 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14376 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14377 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14378 : {
14379 3 : {
14380 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
14381 3 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures);
14382 3 : if (res) return res;
14383 : }
14384 : }
14385 : break;
14386 : }
14387 0 : case LE_EXPR:
14388 0 : {
14389 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14390 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14391 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14392 : {
14393 0 : {
14394 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q51 };
14395 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures);
14396 0 : if (res) return res;
14397 : }
14398 : }
14399 : break;
14400 : }
14401 : default:;
14402 : }
14403 : }
14404 129 : if (tree_max_value (_q21))
14405 : {
14406 0 : switch (TREE_CODE (_p1))
14407 : {
14408 0 : case LT_EXPR:
14409 0 : {
14410 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14411 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14412 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14413 : {
14414 0 : {
14415 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14416 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, NE_EXPR);
14417 0 : if (res) return res;
14418 : }
14419 : }
14420 : break;
14421 : }
14422 0 : case GT_EXPR:
14423 0 : {
14424 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14425 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14426 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14427 : {
14428 0 : {
14429 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14430 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, NE_EXPR);
14431 0 : if (res) return res;
14432 : }
14433 : }
14434 : break;
14435 : }
14436 : default:;
14437 : }
14438 : }
14439 129 : switch (TREE_CODE (_p1))
14440 : {
14441 13 : case EQ_EXPR:
14442 13 : {
14443 13 : tree _q50 = TREE_OPERAND (_p1, 0);
14444 13 : tree _q51 = TREE_OPERAND (_p1, 1);
14445 13 : switch (TREE_CODE (_q50))
14446 : {
14447 0 : CASE_CONVERT:
14448 0 : {
14449 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14450 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14451 : {
14452 0 : {
14453 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14454 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14455 0 : if (res) return res;
14456 : }
14457 : }
14458 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14459 : {
14460 0 : {
14461 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14462 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14463 0 : if (res) return res;
14464 : }
14465 : }
14466 : break;
14467 : }
14468 13 : default:;
14469 : }
14470 13 : switch (TREE_CODE (_q51))
14471 : {
14472 0 : CASE_CONVERT:
14473 0 : {
14474 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14475 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14476 : {
14477 0 : {
14478 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14479 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14480 0 : if (res) return res;
14481 : }
14482 : }
14483 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14484 : {
14485 0 : {
14486 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14487 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14488 0 : if (res) return res;
14489 : }
14490 : }
14491 : break;
14492 : }
14493 : default:;
14494 : }
14495 : break;
14496 : }
14497 3 : case NE_EXPR:
14498 3 : {
14499 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14500 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14501 3 : switch (TREE_CODE (_q50))
14502 : {
14503 0 : CASE_CONVERT:
14504 0 : {
14505 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14506 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14507 : {
14508 0 : {
14509 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14510 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14511 0 : if (res) return res;
14512 : }
14513 : }
14514 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14515 : {
14516 0 : {
14517 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14518 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14519 0 : if (res) return res;
14520 : }
14521 : }
14522 : break;
14523 : }
14524 3 : default:;
14525 : }
14526 3 : switch (TREE_CODE (_q51))
14527 : {
14528 0 : CASE_CONVERT:
14529 0 : {
14530 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14531 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14532 : {
14533 0 : {
14534 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14535 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14536 0 : if (res) return res;
14537 : }
14538 : }
14539 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14540 : {
14541 0 : {
14542 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14543 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14544 0 : if (res) return res;
14545 : }
14546 : }
14547 : break;
14548 : }
14549 : default:;
14550 : }
14551 : break;
14552 : }
14553 0 : case LT_EXPR:
14554 0 : {
14555 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14556 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14557 0 : switch (TREE_CODE (_q50))
14558 : {
14559 0 : CASE_CONVERT:
14560 0 : {
14561 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14562 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14563 : {
14564 0 : {
14565 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14566 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14567 0 : if (res) return res;
14568 : }
14569 : }
14570 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14571 : {
14572 0 : {
14573 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14574 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14575 0 : if (res) return res;
14576 : }
14577 : }
14578 : break;
14579 : }
14580 0 : default:;
14581 : }
14582 0 : switch (TREE_CODE (_q51))
14583 : {
14584 0 : CASE_CONVERT:
14585 0 : {
14586 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14587 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14588 : {
14589 0 : {
14590 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14591 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14592 0 : if (res) return res;
14593 : }
14594 : }
14595 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14596 : {
14597 0 : {
14598 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14599 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14600 0 : if (res) return res;
14601 : }
14602 : }
14603 : break;
14604 : }
14605 : default:;
14606 : }
14607 : break;
14608 : }
14609 4 : case GT_EXPR:
14610 4 : {
14611 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14612 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14613 4 : switch (TREE_CODE (_q50))
14614 : {
14615 0 : CASE_CONVERT:
14616 0 : {
14617 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14618 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14619 : {
14620 0 : {
14621 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14622 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14623 0 : if (res) return res;
14624 : }
14625 : }
14626 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14627 : {
14628 0 : {
14629 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14630 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14631 0 : if (res) return res;
14632 : }
14633 : }
14634 : break;
14635 : }
14636 4 : default:;
14637 : }
14638 4 : switch (TREE_CODE (_q51))
14639 : {
14640 0 : CASE_CONVERT:
14641 0 : {
14642 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14643 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14644 : {
14645 0 : {
14646 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14647 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14648 0 : if (res) return res;
14649 : }
14650 : }
14651 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14652 : {
14653 0 : {
14654 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14655 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14656 0 : if (res) return res;
14657 : }
14658 : }
14659 : break;
14660 : }
14661 : default:;
14662 : }
14663 : break;
14664 : }
14665 0 : case LE_EXPR:
14666 0 : {
14667 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14668 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14669 0 : switch (TREE_CODE (_q50))
14670 : {
14671 0 : CASE_CONVERT:
14672 0 : {
14673 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14674 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14675 : {
14676 0 : {
14677 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14678 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14679 0 : if (res) return res;
14680 : }
14681 : }
14682 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14683 : {
14684 0 : {
14685 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14686 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14687 0 : if (res) return res;
14688 : }
14689 : }
14690 : break;
14691 : }
14692 0 : default:;
14693 : }
14694 0 : switch (TREE_CODE (_q51))
14695 : {
14696 0 : CASE_CONVERT:
14697 0 : {
14698 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14699 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14700 : {
14701 0 : {
14702 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14703 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14704 0 : if (res) return res;
14705 : }
14706 : }
14707 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14708 : {
14709 0 : {
14710 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14711 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14712 0 : if (res) return res;
14713 : }
14714 : }
14715 : break;
14716 : }
14717 : default:;
14718 : }
14719 : break;
14720 : }
14721 14 : case GE_EXPR:
14722 14 : {
14723 14 : tree _q50 = TREE_OPERAND (_p1, 0);
14724 14 : tree _q51 = TREE_OPERAND (_p1, 1);
14725 14 : switch (TREE_CODE (_q50))
14726 : {
14727 0 : CASE_CONVERT:
14728 0 : {
14729 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14730 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14731 : {
14732 0 : {
14733 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14734 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14735 0 : if (res) return res;
14736 : }
14737 : }
14738 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14739 : {
14740 0 : {
14741 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14742 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14743 0 : if (res) return res;
14744 : }
14745 : }
14746 : break;
14747 : }
14748 14 : default:;
14749 : }
14750 14 : switch (TREE_CODE (_q51))
14751 : {
14752 0 : CASE_CONVERT:
14753 0 : {
14754 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14755 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14756 : {
14757 0 : {
14758 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14759 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14760 0 : if (res) return res;
14761 : }
14762 : }
14763 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14764 : {
14765 0 : {
14766 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14767 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14768 0 : if (res) return res;
14769 : }
14770 : }
14771 : break;
14772 : }
14773 : default:;
14774 : }
14775 : break;
14776 : }
14777 129 : default:;
14778 : }
14779 129 : switch (TREE_CODE (_q20))
14780 : {
14781 0 : CASE_CONVERT:
14782 0 : {
14783 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14784 0 : switch (TREE_CODE (_p1))
14785 : {
14786 0 : case EQ_EXPR:
14787 0 : {
14788 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14789 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14790 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14791 : {
14792 0 : {
14793 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14794 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14795 0 : if (res) return res;
14796 : }
14797 : }
14798 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14799 : {
14800 0 : {
14801 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14802 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14803 0 : if (res) return res;
14804 : }
14805 : }
14806 : break;
14807 : }
14808 0 : case NE_EXPR:
14809 0 : {
14810 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14811 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14812 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14813 : {
14814 0 : {
14815 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14816 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14817 0 : if (res) return res;
14818 : }
14819 : }
14820 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14821 : {
14822 0 : {
14823 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14824 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14825 0 : if (res) return res;
14826 : }
14827 : }
14828 : break;
14829 : }
14830 : default:;
14831 : }
14832 : break;
14833 : }
14834 129 : default:;
14835 : }
14836 129 : switch (TREE_CODE (_q21))
14837 : {
14838 0 : CASE_CONVERT:
14839 0 : {
14840 0 : tree _q40 = TREE_OPERAND (_q21, 0);
14841 0 : switch (TREE_CODE (_p1))
14842 : {
14843 0 : case EQ_EXPR:
14844 0 : {
14845 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14846 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14847 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14848 : {
14849 0 : {
14850 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14851 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14852 0 : if (res) return res;
14853 : }
14854 : }
14855 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14856 : {
14857 0 : {
14858 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14859 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14860 0 : if (res) return res;
14861 : }
14862 : }
14863 : break;
14864 : }
14865 0 : case NE_EXPR:
14866 0 : {
14867 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14868 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14869 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14870 : {
14871 0 : {
14872 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14873 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14874 0 : if (res) return res;
14875 : }
14876 : }
14877 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14878 : {
14879 0 : {
14880 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14881 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14882 0 : if (res) return res;
14883 : }
14884 : }
14885 : break;
14886 : }
14887 : default:;
14888 : }
14889 : break;
14890 : }
14891 129 : default:;
14892 : }
14893 129 : switch (TREE_CODE (_p1))
14894 : {
14895 13 : case EQ_EXPR:
14896 13 : {
14897 13 : tree _q50 = TREE_OPERAND (_p1, 0);
14898 13 : tree _q51 = TREE_OPERAND (_p1, 1);
14899 13 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14900 : {
14901 0 : {
14902 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14903 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14904 0 : if (res) return res;
14905 : }
14906 0 : {
14907 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14908 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14909 0 : if (res) return res;
14910 : }
14911 : }
14912 13 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14913 : {
14914 0 : {
14915 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14916 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14917 0 : if (res) return res;
14918 : }
14919 : }
14920 13 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14921 : {
14922 0 : {
14923 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14924 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14925 0 : if (res) return res;
14926 : }
14927 0 : {
14928 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14929 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14930 0 : if (res) return res;
14931 : }
14932 : }
14933 13 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14934 : {
14935 4 : {
14936 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14937 4 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14938 4 : if (res) return res;
14939 : }
14940 4 : {
14941 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14942 4 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14943 4 : if (res) return res;
14944 : }
14945 : }
14946 13 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14947 : {
14948 0 : {
14949 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14950 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14951 0 : if (res) return res;
14952 : }
14953 : }
14954 : break;
14955 : }
14956 3 : case NE_EXPR:
14957 3 : {
14958 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14959 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14960 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14961 : {
14962 2 : {
14963 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14964 2 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14965 2 : if (res) return res;
14966 : }
14967 2 : {
14968 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14969 2 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14970 2 : if (res) return res;
14971 : }
14972 : }
14973 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14974 : {
14975 0 : {
14976 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14977 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14978 0 : if (res) return res;
14979 : }
14980 : }
14981 3 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14982 : {
14983 0 : {
14984 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14985 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14986 0 : if (res) return res;
14987 : }
14988 0 : {
14989 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14990 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14991 0 : if (res) return res;
14992 : }
14993 : }
14994 3 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14995 : {
14996 0 : {
14997 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14998 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14999 0 : if (res) return res;
15000 : }
15001 0 : {
15002 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15003 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15004 0 : if (res) return res;
15005 : }
15006 : }
15007 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15008 : {
15009 0 : {
15010 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15011 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15012 0 : if (res) return res;
15013 : }
15014 : }
15015 : break;
15016 : }
15017 0 : case LT_EXPR:
15018 0 : {
15019 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15020 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15021 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15022 : {
15023 0 : {
15024 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15025 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15026 0 : if (res) return res;
15027 : }
15028 : }
15029 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15030 : {
15031 0 : {
15032 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15033 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15034 0 : if (res) return res;
15035 : }
15036 : }
15037 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15038 : {
15039 0 : {
15040 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15041 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15042 0 : if (res) return res;
15043 : }
15044 : }
15045 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15046 : {
15047 0 : {
15048 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15049 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15050 0 : if (res) return res;
15051 : }
15052 : }
15053 : break;
15054 : }
15055 4 : case GT_EXPR:
15056 4 : {
15057 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15058 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15059 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15060 : {
15061 4 : {
15062 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15063 4 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15064 4 : if (res) return res;
15065 : }
15066 : }
15067 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15068 : {
15069 0 : {
15070 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15071 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15072 0 : if (res) return res;
15073 : }
15074 : }
15075 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15076 : {
15077 0 : {
15078 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15079 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15080 0 : if (res) return res;
15081 : }
15082 : }
15083 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15084 : {
15085 0 : {
15086 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15087 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15088 0 : if (res) return res;
15089 : }
15090 : }
15091 : break;
15092 : }
15093 0 : case LE_EXPR:
15094 0 : {
15095 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15096 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15097 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15098 : {
15099 0 : {
15100 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15101 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15102 0 : if (res) return res;
15103 : }
15104 : }
15105 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15106 : {
15107 0 : {
15108 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15109 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15110 0 : if (res) return res;
15111 : }
15112 : }
15113 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15114 : {
15115 0 : {
15116 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15117 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15118 0 : if (res) return res;
15119 : }
15120 : }
15121 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15122 : {
15123 0 : {
15124 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15125 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15126 0 : if (res) return res;
15127 : }
15128 : }
15129 : break;
15130 : }
15131 14 : case GE_EXPR:
15132 14 : {
15133 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15134 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15135 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15136 : {
15137 0 : {
15138 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15139 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15140 0 : if (res) return res;
15141 : }
15142 : }
15143 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15144 : {
15145 0 : {
15146 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15147 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15148 0 : if (res) return res;
15149 : }
15150 : }
15151 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15152 : {
15153 0 : {
15154 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15155 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15156 0 : if (res) return res;
15157 : }
15158 : }
15159 14 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15160 : {
15161 14 : {
15162 14 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15163 14 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15164 14 : if (res) return res;
15165 : }
15166 : }
15167 : break;
15168 : }
15169 : default:;
15170 : }
15171 : break;
15172 : }
15173 36 : case LE_EXPR:
15174 36 : {
15175 36 : tree _q20 = TREE_OPERAND (_p0, 0);
15176 36 : tree _q21 = TREE_OPERAND (_p0, 1);
15177 36 : switch (TREE_CODE (_p1))
15178 : {
15179 16 : case EQ_EXPR:
15180 16 : {
15181 16 : tree _q50 = TREE_OPERAND (_p1, 0);
15182 16 : tree _q51 = TREE_OPERAND (_p1, 1);
15183 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15184 : {
15185 4 : if (tree_min_value (_q51))
15186 : {
15187 4 : {
15188 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15189 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures);
15190 4 : if (res) return res;
15191 : }
15192 : }
15193 : }
15194 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15195 : {
15196 0 : if (tree_max_value (_q51))
15197 : {
15198 0 : {
15199 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15200 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures);
15201 0 : if (res) return res;
15202 : }
15203 : }
15204 : }
15205 : break;
15206 : }
15207 0 : case NE_EXPR:
15208 0 : {
15209 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15210 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15211 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15212 : {
15213 0 : if (tree_min_value (_q51))
15214 : {
15215 0 : {
15216 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _p0, _q21 };
15217 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures);
15218 0 : if (res) return res;
15219 : }
15220 : }
15221 : }
15222 : break;
15223 : }
15224 32 : default:;
15225 : }
15226 32 : switch (TREE_CODE (_q20))
15227 : {
15228 0 : CASE_CONVERT:
15229 0 : {
15230 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15231 0 : switch (TREE_CODE (_p1))
15232 : {
15233 0 : case EQ_EXPR:
15234 0 : {
15235 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15236 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15237 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15238 : {
15239 0 : {
15240 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15241 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15242 0 : if (res) return res;
15243 : }
15244 : }
15245 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15246 : {
15247 0 : {
15248 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15249 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15250 0 : if (res) return res;
15251 : }
15252 : }
15253 : break;
15254 : }
15255 0 : case NE_EXPR:
15256 0 : {
15257 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15258 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15259 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15260 : {
15261 0 : {
15262 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15263 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15264 0 : if (res) return res;
15265 : }
15266 : }
15267 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15268 : {
15269 0 : {
15270 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15271 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15272 0 : if (res) return res;
15273 : }
15274 : }
15275 : break;
15276 : }
15277 : default:;
15278 : }
15279 : break;
15280 : }
15281 32 : default:;
15282 : }
15283 32 : switch (TREE_CODE (_q21))
15284 : {
15285 0 : CASE_CONVERT:
15286 0 : {
15287 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15288 0 : switch (TREE_CODE (_p1))
15289 : {
15290 0 : case EQ_EXPR:
15291 0 : {
15292 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15293 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15294 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15295 : {
15296 0 : {
15297 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15298 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15299 0 : if (res) return res;
15300 : }
15301 : }
15302 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15303 : {
15304 0 : {
15305 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15306 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15307 0 : if (res) return res;
15308 : }
15309 : }
15310 : break;
15311 : }
15312 0 : case NE_EXPR:
15313 0 : {
15314 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15315 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15316 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15317 : {
15318 0 : {
15319 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15320 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15321 0 : if (res) return res;
15322 : }
15323 : }
15324 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15325 : {
15326 0 : {
15327 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15328 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15329 0 : if (res) return res;
15330 : }
15331 : }
15332 : break;
15333 : }
15334 : default:;
15335 : }
15336 : break;
15337 : }
15338 32 : default:;
15339 : }
15340 32 : switch (TREE_CODE (_p1))
15341 : {
15342 12 : case EQ_EXPR:
15343 12 : {
15344 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15345 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15346 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15347 : {
15348 0 : {
15349 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15350 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15351 0 : if (res) return res;
15352 : }
15353 : }
15354 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15355 : {
15356 0 : {
15357 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15358 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15359 0 : if (res) return res;
15360 : }
15361 : }
15362 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15363 : {
15364 0 : {
15365 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15366 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15367 0 : if (res) return res;
15368 : }
15369 : }
15370 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15371 : {
15372 0 : {
15373 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15374 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15375 0 : if (res) return res;
15376 : }
15377 : }
15378 : break;
15379 : }
15380 0 : case NE_EXPR:
15381 0 : {
15382 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15383 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15384 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15385 : {
15386 0 : {
15387 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15388 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15389 0 : if (res) return res;
15390 : }
15391 : }
15392 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15393 : {
15394 0 : {
15395 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15396 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15397 0 : if (res) return res;
15398 : }
15399 : }
15400 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15401 : {
15402 0 : {
15403 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15404 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15405 0 : if (res) return res;
15406 : }
15407 : }
15408 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15409 : {
15410 0 : {
15411 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15412 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15413 0 : if (res) return res;
15414 : }
15415 : }
15416 : break;
15417 : }
15418 0 : case LT_EXPR:
15419 0 : {
15420 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15421 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15422 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15423 : {
15424 0 : {
15425 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15426 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15427 0 : if (res) return res;
15428 : }
15429 : }
15430 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15431 : {
15432 0 : {
15433 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15434 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15435 0 : if (res) return res;
15436 : }
15437 : }
15438 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15439 : {
15440 0 : {
15441 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15442 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15443 0 : if (res) return res;
15444 : }
15445 : }
15446 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15447 : {
15448 0 : {
15449 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15450 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15451 0 : if (res) return res;
15452 : }
15453 : }
15454 : break;
15455 : }
15456 5 : case LE_EXPR:
15457 5 : {
15458 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15459 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15460 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15461 : {
15462 0 : {
15463 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15464 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15465 0 : if (res) return res;
15466 : }
15467 : }
15468 5 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15469 : {
15470 0 : {
15471 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15472 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15473 0 : if (res) return res;
15474 : }
15475 : }
15476 5 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15477 : {
15478 0 : {
15479 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15480 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15481 0 : if (res) return res;
15482 : }
15483 : }
15484 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15485 : {
15486 4 : {
15487 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15488 4 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15489 4 : if (res) return res;
15490 : }
15491 : }
15492 : break;
15493 : }
15494 4 : case GT_EXPR:
15495 4 : {
15496 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15497 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15498 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15499 : {
15500 0 : {
15501 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15502 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15503 0 : if (res) return res;
15504 : }
15505 : }
15506 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15507 : {
15508 0 : {
15509 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15510 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15511 0 : if (res) return res;
15512 : }
15513 : }
15514 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15515 : {
15516 0 : {
15517 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15518 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15519 0 : if (res) return res;
15520 : }
15521 : }
15522 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15523 : {
15524 0 : {
15525 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15526 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15527 0 : if (res) return res;
15528 : }
15529 : }
15530 : break;
15531 : }
15532 0 : case GE_EXPR:
15533 0 : {
15534 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15535 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15536 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15537 : {
15538 0 : {
15539 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15540 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15541 0 : if (res) return res;
15542 : }
15543 : }
15544 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15545 : {
15546 0 : {
15547 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15548 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15549 0 : if (res) return res;
15550 : }
15551 : }
15552 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15553 : {
15554 0 : {
15555 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15556 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15557 0 : if (res) return res;
15558 : }
15559 : }
15560 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15561 : {
15562 0 : {
15563 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15564 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15565 0 : if (res) return res;
15566 : }
15567 : }
15568 : break;
15569 : }
15570 : default:;
15571 : }
15572 : break;
15573 : }
15574 78 : case GE_EXPR:
15575 78 : {
15576 78 : tree _q20 = TREE_OPERAND (_p0, 0);
15577 78 : tree _q21 = TREE_OPERAND (_p0, 1);
15578 78 : switch (TREE_CODE (_p1))
15579 : {
15580 10 : case EQ_EXPR:
15581 10 : {
15582 10 : tree _q50 = TREE_OPERAND (_p1, 0);
15583 10 : tree _q51 = TREE_OPERAND (_p1, 1);
15584 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15585 : {
15586 0 : if (tree_min_value (_q51))
15587 : {
15588 0 : {
15589 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15590 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures);
15591 0 : if (res) return res;
15592 : }
15593 : }
15594 : }
15595 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15596 : {
15597 4 : if (tree_max_value (_q51))
15598 : {
15599 4 : {
15600 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15601 4 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures);
15602 4 : if (res) return res;
15603 : }
15604 : }
15605 : }
15606 : break;
15607 : }
15608 0 : case NE_EXPR:
15609 0 : {
15610 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15611 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15612 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15613 : {
15614 0 : if (tree_min_value (_q51))
15615 : {
15616 0 : {
15617 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
15618 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures);
15619 0 : if (res) return res;
15620 : }
15621 : }
15622 : }
15623 : break;
15624 : }
15625 74 : default:;
15626 : }
15627 74 : switch (TREE_CODE (_q20))
15628 : {
15629 4 : CASE_CONVERT:
15630 4 : {
15631 4 : tree _q30 = TREE_OPERAND (_q20, 0);
15632 4 : switch (TREE_CODE (_p1))
15633 : {
15634 0 : case EQ_EXPR:
15635 0 : {
15636 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15637 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15638 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15639 : {
15640 0 : {
15641 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15642 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15643 0 : if (res) return res;
15644 : }
15645 : }
15646 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15647 : {
15648 0 : {
15649 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15650 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15651 0 : if (res) return res;
15652 : }
15653 : }
15654 : break;
15655 : }
15656 0 : case NE_EXPR:
15657 0 : {
15658 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15659 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15660 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15661 : {
15662 0 : {
15663 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15664 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15665 0 : if (res) return res;
15666 : }
15667 : }
15668 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15669 : {
15670 0 : {
15671 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15672 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15673 0 : if (res) return res;
15674 : }
15675 : }
15676 : break;
15677 : }
15678 : default:;
15679 : }
15680 : break;
15681 : }
15682 74 : default:;
15683 : }
15684 74 : switch (TREE_CODE (_q21))
15685 : {
15686 0 : CASE_CONVERT:
15687 0 : {
15688 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15689 0 : switch (TREE_CODE (_p1))
15690 : {
15691 0 : case EQ_EXPR:
15692 0 : {
15693 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15694 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15695 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15696 : {
15697 0 : {
15698 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15699 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15700 0 : if (res) return res;
15701 : }
15702 : }
15703 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15704 : {
15705 0 : {
15706 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15707 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15708 0 : if (res) return res;
15709 : }
15710 : }
15711 : break;
15712 : }
15713 0 : case NE_EXPR:
15714 0 : {
15715 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15716 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15717 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15718 : {
15719 0 : {
15720 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15721 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15722 0 : if (res) return res;
15723 : }
15724 : }
15725 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15726 : {
15727 0 : {
15728 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15729 0 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15730 0 : if (res) return res;
15731 : }
15732 : }
15733 : break;
15734 : }
15735 : default:;
15736 : }
15737 : break;
15738 : }
15739 74 : default:;
15740 : }
15741 74 : switch (TREE_CODE (_p1))
15742 : {
15743 6 : case EQ_EXPR:
15744 6 : {
15745 6 : tree _q50 = TREE_OPERAND (_p1, 0);
15746 6 : tree _q51 = TREE_OPERAND (_p1, 1);
15747 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15748 : {
15749 0 : {
15750 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15751 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15752 0 : if (res) return res;
15753 : }
15754 : }
15755 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15756 : {
15757 0 : {
15758 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15759 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15760 0 : if (res) return res;
15761 : }
15762 : }
15763 6 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15764 : {
15765 0 : {
15766 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15767 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15768 0 : if (res) return res;
15769 : }
15770 : }
15771 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15772 : {
15773 0 : {
15774 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15775 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15776 0 : if (res) return res;
15777 : }
15778 : }
15779 : break;
15780 : }
15781 0 : case NE_EXPR:
15782 0 : {
15783 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15784 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15785 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15786 : {
15787 0 : {
15788 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15789 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15790 0 : if (res) return res;
15791 : }
15792 : }
15793 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15794 : {
15795 0 : {
15796 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15797 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15798 0 : if (res) return res;
15799 : }
15800 : }
15801 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15802 : {
15803 0 : {
15804 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15805 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15806 0 : if (res) return res;
15807 : }
15808 : }
15809 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15810 : {
15811 0 : {
15812 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15813 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15814 0 : if (res) return res;
15815 : }
15816 : }
15817 : break;
15818 : }
15819 12 : case LT_EXPR:
15820 12 : {
15821 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15822 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15823 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15824 : {
15825 12 : {
15826 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15827 12 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15828 12 : if (res) return res;
15829 : }
15830 : }
15831 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15832 : {
15833 0 : {
15834 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15835 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15836 0 : if (res) return res;
15837 : }
15838 : }
15839 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15840 : {
15841 0 : {
15842 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15843 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15844 0 : if (res) return res;
15845 : }
15846 : }
15847 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15848 : {
15849 0 : {
15850 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15851 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15852 0 : if (res) return res;
15853 : }
15854 : }
15855 : break;
15856 : }
15857 17 : case LE_EXPR:
15858 17 : {
15859 17 : tree _q50 = TREE_OPERAND (_p1, 0);
15860 17 : tree _q51 = TREE_OPERAND (_p1, 1);
15861 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15862 : {
15863 14 : {
15864 14 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15865 14 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15866 14 : if (res) return res;
15867 : }
15868 : }
15869 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15870 : {
15871 0 : {
15872 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15873 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15874 0 : if (res) return res;
15875 : }
15876 : }
15877 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15878 : {
15879 0 : {
15880 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15881 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15882 0 : if (res) return res;
15883 : }
15884 : }
15885 17 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15886 : {
15887 0 : {
15888 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15889 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15890 0 : if (res) return res;
15891 : }
15892 : }
15893 : break;
15894 : }
15895 0 : case GT_EXPR:
15896 0 : {
15897 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15898 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15899 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15900 : {
15901 0 : {
15902 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15903 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15904 0 : if (res) return res;
15905 : }
15906 : }
15907 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15908 : {
15909 0 : {
15910 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15911 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15912 0 : if (res) return res;
15913 : }
15914 : }
15915 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15916 : {
15917 0 : {
15918 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15919 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15920 0 : if (res) return res;
15921 : }
15922 : }
15923 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15924 : {
15925 0 : {
15926 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15927 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15928 0 : if (res) return res;
15929 : }
15930 : }
15931 : break;
15932 : }
15933 11 : case GE_EXPR:
15934 11 : {
15935 11 : tree _q50 = TREE_OPERAND (_p1, 0);
15936 11 : tree _q51 = TREE_OPERAND (_p1, 1);
15937 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15938 : {
15939 7 : {
15940 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15941 7 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15942 7 : if (res) return res;
15943 : }
15944 : }
15945 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15946 : {
15947 0 : {
15948 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15949 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15950 0 : if (res) return res;
15951 : }
15952 : }
15953 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15954 : {
15955 4 : {
15956 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15957 4 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15958 4 : if (res) return res;
15959 : }
15960 : }
15961 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15962 : {
15963 0 : {
15964 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15965 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15966 0 : if (res) return res;
15967 : }
15968 : }
15969 : break;
15970 : }
15971 : default:;
15972 : }
15973 : break;
15974 : }
15975 0 : case MIN_EXPR:
15976 0 : {
15977 0 : tree _q20 = TREE_OPERAND (_p0, 0);
15978 0 : tree _q21 = TREE_OPERAND (_p0, 1);
15979 0 : switch (TREE_CODE (_p1))
15980 : {
15981 0 : case MAX_EXPR:
15982 0 : {
15983 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15984 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15985 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15986 : {
15987 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15988 : {
15989 0 : {
15990 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
15991 0 : if (!HONOR_NANS (captures[0])
15992 : )
15993 : {
15994 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1661;
15995 0 : {
15996 0 : tree res_op0;
15997 0 : res_op0 = captures[0];
15998 0 : tree res_op1;
15999 0 : res_op1 = captures[1];
16000 0 : tree _r;
16001 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16002 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
16003 0 : return _r;
16004 : }
16005 0 : next_after_fail1661:;
16006 : }
16007 : }
16008 : }
16009 : }
16010 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16011 : {
16012 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16013 : {
16014 0 : {
16015 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16016 0 : if (!HONOR_NANS (captures[0])
16017 : )
16018 : {
16019 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1662;
16020 0 : {
16021 0 : tree res_op0;
16022 0 : res_op0 = captures[0];
16023 0 : tree res_op1;
16024 0 : res_op1 = captures[1];
16025 0 : tree _r;
16026 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16027 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
16028 0 : return _r;
16029 : }
16030 0 : next_after_fail1662:;
16031 : }
16032 : }
16033 : }
16034 : }
16035 : break;
16036 : }
16037 : default:;
16038 : }
16039 : break;
16040 : }
16041 80 : case MAX_EXPR:
16042 80 : {
16043 80 : tree _q20 = TREE_OPERAND (_p0, 0);
16044 80 : tree _q21 = TREE_OPERAND (_p0, 1);
16045 80 : switch (TREE_CODE (_p1))
16046 : {
16047 0 : case MIN_EXPR:
16048 0 : {
16049 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16050 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16051 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16052 : {
16053 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16054 : {
16055 0 : {
16056 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16057 0 : if (!HONOR_NANS (captures[0])
16058 : )
16059 : {
16060 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1663;
16061 0 : {
16062 0 : tree res_op0;
16063 0 : res_op0 = captures[0];
16064 0 : tree res_op1;
16065 0 : res_op1 = captures[1];
16066 0 : tree _r;
16067 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16068 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
16069 0 : return _r;
16070 : }
16071 0 : next_after_fail1663:;
16072 : }
16073 : }
16074 : }
16075 : }
16076 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16077 : {
16078 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16079 : {
16080 0 : {
16081 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16082 0 : if (!HONOR_NANS (captures[0])
16083 : )
16084 : {
16085 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1664;
16086 0 : {
16087 0 : tree res_op0;
16088 0 : res_op0 = captures[0];
16089 0 : tree res_op1;
16090 0 : res_op1 = captures[1];
16091 0 : tree _r;
16092 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16093 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
16094 0 : return _r;
16095 : }
16096 0 : next_after_fail1664:;
16097 : }
16098 : }
16099 : }
16100 : }
16101 : break;
16102 : }
16103 : default:;
16104 : }
16105 : break;
16106 : }
16107 125577 : case MULT_EXPR:
16108 125577 : {
16109 125577 : tree _q20 = TREE_OPERAND (_p0, 0);
16110 125577 : tree _q21 = TREE_OPERAND (_p0, 1);
16111 125577 : if (tree_zero_one_valued_p (_q20))
16112 : {
16113 4 : {
16114 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
16115 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
16116 4 : if (res) return res;
16117 : }
16118 : }
16119 125575 : if (tree_zero_one_valued_p (_q21))
16120 : {
16121 0 : {
16122 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
16123 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
16124 0 : if (res) return res;
16125 : }
16126 : }
16127 : break;
16128 : }
16129 9125640 : default:;
16130 : }
16131 9125640 : switch (TREE_CODE (_p1))
16132 : {
16133 26 : case MULT_EXPR:
16134 26 : {
16135 26 : tree _q30 = TREE_OPERAND (_p1, 0);
16136 26 : tree _q31 = TREE_OPERAND (_p1, 1);
16137 26 : if (tree_zero_one_valued_p (_q30))
16138 : {
16139 0 : {
16140 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
16141 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
16142 0 : if (res) return res;
16143 : }
16144 : }
16145 26 : if (tree_zero_one_valued_p (_q31))
16146 : {
16147 0 : {
16148 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
16149 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
16150 0 : if (res) return res;
16151 : }
16152 : }
16153 : break;
16154 : }
16155 9125640 : default:;
16156 : }
16157 9125640 : switch (TREE_CODE (_p0))
16158 : {
16159 34238 : case LSHIFT_EXPR:
16160 34238 : {
16161 34238 : tree _q20 = TREE_OPERAND (_p0, 0);
16162 34238 : tree _q21 = TREE_OPERAND (_p0, 1);
16163 34238 : switch (TREE_CODE (_q20))
16164 : {
16165 5349 : case INTEGER_CST:
16166 5349 : {
16167 5349 : if (integer_onep (_p1))
16168 : {
16169 44 : {
16170 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16171 44 : if ((wi::to_wide (captures[0]) & 1) != 0
16172 : )
16173 : {
16174 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1665;
16175 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1665;
16176 40 : {
16177 40 : tree res_op0;
16178 40 : {
16179 40 : tree _o1[2], _r1;
16180 40 : _o1[0] = captures[1];
16181 40 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
16182 40 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
16183 40 : res_op0 = _r1;
16184 : }
16185 40 : tree _r;
16186 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16187 40 : if (TREE_SIDE_EFFECTS (captures[0]))
16188 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16189 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
16190 40 : return _r;
16191 : }
16192 0 : next_after_fail1665:;
16193 : }
16194 : else
16195 : {
16196 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1666;
16197 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1666;
16198 4 : {
16199 4 : tree _r;
16200 4 : _r = build_zero_cst (type);
16201 4 : if (TREE_SIDE_EFFECTS (captures[0]))
16202 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16203 4 : if (TREE_SIDE_EFFECTS (captures[1]))
16204 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16205 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
16206 4 : return _r;
16207 : }
16208 0 : next_after_fail1666:;
16209 : }
16210 : }
16211 : }
16212 : break;
16213 : }
16214 5327 : CASE_CONVERT:
16215 5327 : {
16216 5327 : tree _q30 = TREE_OPERAND (_q20, 0);
16217 5327 : switch (TREE_CODE (_q21))
16218 : {
16219 5223 : case INTEGER_CST:
16220 5223 : {
16221 5223 : switch (TREE_CODE (_p1))
16222 : {
16223 5223 : case INTEGER_CST:
16224 5223 : {
16225 5223 : {
16226 5223 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16227 5223 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16228 5223 : if (res) return res;
16229 : }
16230 4567 : break;
16231 : }
16232 : default:;
16233 : }
16234 : break;
16235 : }
16236 : default:;
16237 : }
16238 : break;
16239 : }
16240 33538 : default:;
16241 : }
16242 33538 : switch (TREE_CODE (_q21))
16243 : {
16244 27828 : case INTEGER_CST:
16245 27828 : {
16246 27828 : switch (TREE_CODE (_p1))
16247 : {
16248 27791 : case INTEGER_CST:
16249 27791 : {
16250 27791 : {
16251 27791 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
16252 27791 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16253 27791 : if (res) return res;
16254 : }
16255 17002 : break;
16256 : }
16257 : default:;
16258 : }
16259 : break;
16260 : }
16261 : default:;
16262 : }
16263 : break;
16264 : }
16265 2680599 : CASE_CONVERT:
16266 2680599 : {
16267 2680599 : tree _q20 = TREE_OPERAND (_p0, 0);
16268 2680599 : switch (TREE_CODE (_q20))
16269 : {
16270 74787 : case LSHIFT_EXPR:
16271 74787 : {
16272 74787 : tree _q30 = TREE_OPERAND (_q20, 0);
16273 74787 : tree _q31 = TREE_OPERAND (_q20, 1);
16274 74787 : switch (TREE_CODE (_q30))
16275 : {
16276 147 : CASE_CONVERT:
16277 147 : {
16278 147 : tree _q40 = TREE_OPERAND (_q30, 0);
16279 147 : switch (TREE_CODE (_q31))
16280 : {
16281 79 : case INTEGER_CST:
16282 79 : {
16283 79 : switch (TREE_CODE (_p1))
16284 : {
16285 79 : case INTEGER_CST:
16286 79 : {
16287 79 : {
16288 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16289 79 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16290 79 : if (res) return res;
16291 : }
16292 79 : break;
16293 : }
16294 : default:;
16295 : }
16296 : break;
16297 : }
16298 : default:;
16299 : }
16300 : break;
16301 : }
16302 74787 : default:;
16303 : }
16304 74787 : switch (TREE_CODE (_q31))
16305 : {
16306 79 : case INTEGER_CST:
16307 79 : {
16308 79 : switch (TREE_CODE (_p1))
16309 : {
16310 79 : case INTEGER_CST:
16311 79 : {
16312 79 : {
16313 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16314 79 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16315 79 : if (res) return res;
16316 : }
16317 79 : break;
16318 : }
16319 : default:;
16320 : }
16321 : break;
16322 : }
16323 : default:;
16324 : }
16325 : break;
16326 : }
16327 176676 : case RSHIFT_EXPR:
16328 176676 : {
16329 176676 : tree _q30 = TREE_OPERAND (_q20, 0);
16330 176676 : tree _q31 = TREE_OPERAND (_q20, 1);
16331 176676 : switch (TREE_CODE (_q30))
16332 : {
16333 98358 : CASE_CONVERT:
16334 98358 : {
16335 98358 : tree _q40 = TREE_OPERAND (_q30, 0);
16336 98358 : switch (TREE_CODE (_q31))
16337 : {
16338 98231 : case INTEGER_CST:
16339 98231 : {
16340 98231 : switch (TREE_CODE (_p1))
16341 : {
16342 98231 : case INTEGER_CST:
16343 98231 : {
16344 98231 : {
16345 98231 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16346 98231 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16347 98231 : if (res) return res;
16348 : }
16349 98174 : break;
16350 : }
16351 : default:;
16352 : }
16353 : break;
16354 : }
16355 98301 : default:;
16356 : }
16357 98301 : switch (TREE_CODE (_q40))
16358 : {
16359 2 : case CALL_EXPR:
16360 2 : switch (get_call_combined_fn (_q40))
16361 : {
16362 0 : case CFN_BUILT_IN_BSWAP128:
16363 0 : if (call_expr_nargs (_q40) == 1)
16364 : {
16365 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16366 0 : switch (TREE_CODE (_q31))
16367 : {
16368 0 : case INTEGER_CST:
16369 0 : {
16370 0 : switch (TREE_CODE (_p1))
16371 : {
16372 0 : case INTEGER_CST:
16373 0 : {
16374 0 : {
16375 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16376 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16377 0 : if (res) return res;
16378 : }
16379 0 : break;
16380 : }
16381 : default:;
16382 : }
16383 : break;
16384 : }
16385 : default:;
16386 : }
16387 : }
16388 : break;
16389 2 : case CFN_BUILT_IN_BSWAP16:
16390 2 : if (call_expr_nargs (_q40) == 1)
16391 : {
16392 2 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16393 2 : switch (TREE_CODE (_q31))
16394 : {
16395 2 : case INTEGER_CST:
16396 2 : {
16397 2 : switch (TREE_CODE (_p1))
16398 : {
16399 2 : case INTEGER_CST:
16400 2 : {
16401 2 : {
16402 2 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16403 2 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16404 2 : if (res) return res;
16405 : }
16406 0 : break;
16407 : }
16408 : default:;
16409 : }
16410 : break;
16411 : }
16412 : default:;
16413 : }
16414 : }
16415 : break;
16416 0 : case CFN_BUILT_IN_BSWAP32:
16417 0 : if (call_expr_nargs (_q40) == 1)
16418 : {
16419 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16420 0 : switch (TREE_CODE (_q31))
16421 : {
16422 0 : case INTEGER_CST:
16423 0 : {
16424 0 : switch (TREE_CODE (_p1))
16425 : {
16426 0 : case INTEGER_CST:
16427 0 : {
16428 0 : {
16429 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16430 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16431 0 : if (res) return res;
16432 : }
16433 0 : break;
16434 : }
16435 : default:;
16436 : }
16437 : break;
16438 : }
16439 : default:;
16440 : }
16441 : }
16442 : break;
16443 0 : case CFN_BUILT_IN_BSWAP64:
16444 0 : if (call_expr_nargs (_q40) == 1)
16445 : {
16446 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16447 0 : switch (TREE_CODE (_q31))
16448 : {
16449 0 : case INTEGER_CST:
16450 0 : {
16451 0 : switch (TREE_CODE (_p1))
16452 : {
16453 0 : case INTEGER_CST:
16454 0 : {
16455 0 : {
16456 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16457 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16458 0 : if (res) return res;
16459 : }
16460 0 : break;
16461 : }
16462 : default:;
16463 : }
16464 : break;
16465 : }
16466 : default:;
16467 : }
16468 : }
16469 : break;
16470 : default:;
16471 : }
16472 : break;
16473 : default:;
16474 : }
16475 : break;
16476 : }
16477 176617 : default:;
16478 : }
16479 176617 : switch (TREE_CODE (_q31))
16480 : {
16481 104749 : case INTEGER_CST:
16482 104749 : {
16483 104749 : switch (TREE_CODE (_p1))
16484 : {
16485 104677 : case INTEGER_CST:
16486 104677 : {
16487 104677 : {
16488 104677 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16489 104677 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16490 104677 : if (res) return res;
16491 : }
16492 104605 : break;
16493 : }
16494 : default:;
16495 : }
16496 : break;
16497 : }
16498 176545 : default:;
16499 : }
16500 176545 : switch (TREE_CODE (_q30))
16501 : {
16502 80 : case CALL_EXPR:
16503 80 : switch (get_call_combined_fn (_q30))
16504 : {
16505 0 : case CFN_BUILT_IN_BSWAP128:
16506 0 : if (call_expr_nargs (_q30) == 1)
16507 : {
16508 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16509 0 : switch (TREE_CODE (_q31))
16510 : {
16511 0 : case INTEGER_CST:
16512 0 : {
16513 0 : switch (TREE_CODE (_p1))
16514 : {
16515 0 : case INTEGER_CST:
16516 0 : {
16517 0 : {
16518 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16519 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16520 0 : if (res) return res;
16521 : }
16522 0 : break;
16523 : }
16524 : default:;
16525 : }
16526 : break;
16527 : }
16528 : default:;
16529 : }
16530 : }
16531 : break;
16532 9 : case CFN_BUILT_IN_BSWAP16:
16533 9 : if (call_expr_nargs (_q30) == 1)
16534 : {
16535 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16536 9 : switch (TREE_CODE (_q31))
16537 : {
16538 9 : case INTEGER_CST:
16539 9 : {
16540 9 : switch (TREE_CODE (_p1))
16541 : {
16542 9 : case INTEGER_CST:
16543 9 : {
16544 9 : {
16545 9 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16546 9 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16547 9 : if (res) return res;
16548 : }
16549 0 : break;
16550 : }
16551 : default:;
16552 : }
16553 : break;
16554 : }
16555 : default:;
16556 : }
16557 : }
16558 : break;
16559 0 : case CFN_BUILT_IN_BSWAP32:
16560 0 : if (call_expr_nargs (_q30) == 1)
16561 : {
16562 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16563 0 : switch (TREE_CODE (_q31))
16564 : {
16565 0 : case INTEGER_CST:
16566 0 : {
16567 0 : switch (TREE_CODE (_p1))
16568 : {
16569 0 : case INTEGER_CST:
16570 0 : {
16571 0 : {
16572 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16573 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16574 0 : if (res) return res;
16575 : }
16576 0 : break;
16577 : }
16578 : default:;
16579 : }
16580 : break;
16581 : }
16582 : default:;
16583 : }
16584 : }
16585 : break;
16586 71 : case CFN_BUILT_IN_BSWAP64:
16587 71 : if (call_expr_nargs (_q30) == 1)
16588 : {
16589 71 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16590 71 : switch (TREE_CODE (_q31))
16591 : {
16592 70 : case INTEGER_CST:
16593 70 : {
16594 70 : switch (TREE_CODE (_p1))
16595 : {
16596 70 : case INTEGER_CST:
16597 70 : {
16598 70 : {
16599 70 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16600 70 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16601 70 : if (res) return res;
16602 : }
16603 0 : break;
16604 : }
16605 : default:;
16606 : }
16607 : break;
16608 : }
16609 : default:;
16610 : }
16611 : }
16612 : break;
16613 : default:;
16614 : }
16615 : break;
16616 : default:;
16617 : }
16618 : break;
16619 : }
16620 29535 : case CALL_EXPR:
16621 29535 : switch (get_call_combined_fn (_q20))
16622 : {
16623 0 : case CFN_BUILT_IN_BSWAP128:
16624 0 : if (call_expr_nargs (_q20) == 1)
16625 : {
16626 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16627 0 : switch (TREE_CODE (_p1))
16628 : {
16629 0 : case INTEGER_CST:
16630 0 : {
16631 0 : {
16632 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16633 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16634 0 : if (res) return res;
16635 : }
16636 0 : break;
16637 : }
16638 : default:;
16639 : }
16640 : }
16641 : break;
16642 10 : case CFN_BUILT_IN_BSWAP16:
16643 10 : if (call_expr_nargs (_q20) == 1)
16644 : {
16645 10 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16646 10 : switch (TREE_CODE (_p1))
16647 : {
16648 10 : case INTEGER_CST:
16649 10 : {
16650 10 : {
16651 10 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16652 10 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16653 10 : if (res) return res;
16654 : }
16655 0 : break;
16656 : }
16657 : default:;
16658 : }
16659 : }
16660 : break;
16661 4 : case CFN_BUILT_IN_BSWAP32:
16662 4 : if (call_expr_nargs (_q20) == 1)
16663 : {
16664 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16665 4 : switch (TREE_CODE (_p1))
16666 : {
16667 4 : case INTEGER_CST:
16668 4 : {
16669 4 : {
16670 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16671 4 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16672 4 : if (res) return res;
16673 : }
16674 0 : break;
16675 : }
16676 : default:;
16677 : }
16678 : }
16679 : break;
16680 4 : case CFN_BUILT_IN_BSWAP64:
16681 4 : if (call_expr_nargs (_q20) == 1)
16682 : {
16683 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16684 4 : switch (TREE_CODE (_p1))
16685 : {
16686 4 : case INTEGER_CST:
16687 4 : {
16688 4 : {
16689 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16690 4 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16691 4 : if (res) return res;
16692 : }
16693 0 : break;
16694 : }
16695 : default:;
16696 : }
16697 : }
16698 : break;
16699 : default:;
16700 : }
16701 : break;
16702 : default:;
16703 : }
16704 : break;
16705 : }
16706 177305 : case RSHIFT_EXPR:
16707 177305 : {
16708 177305 : tree _q20 = TREE_OPERAND (_p0, 0);
16709 177305 : tree _q21 = TREE_OPERAND (_p0, 1);
16710 177305 : switch (TREE_CODE (_q20))
16711 : {
16712 127155 : CASE_CONVERT:
16713 127155 : {
16714 127155 : tree _q30 = TREE_OPERAND (_q20, 0);
16715 127155 : switch (TREE_CODE (_q21))
16716 : {
16717 124072 : case INTEGER_CST:
16718 124072 : {
16719 124072 : switch (TREE_CODE (_p1))
16720 : {
16721 124072 : case INTEGER_CST:
16722 124072 : {
16723 124072 : {
16724 124072 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16725 124072 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16726 124072 : if (res) return res;
16727 : }
16728 123752 : break;
16729 : }
16730 : default:;
16731 : }
16732 : break;
16733 : }
16734 126835 : default:;
16735 : }
16736 126835 : switch (TREE_CODE (_q30))
16737 : {
16738 22 : case CALL_EXPR:
16739 22 : switch (get_call_combined_fn (_q30))
16740 : {
16741 0 : case CFN_BUILT_IN_BSWAP128:
16742 0 : if (call_expr_nargs (_q30) == 1)
16743 : {
16744 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16745 0 : switch (TREE_CODE (_q21))
16746 : {
16747 0 : case INTEGER_CST:
16748 0 : {
16749 0 : switch (TREE_CODE (_p1))
16750 : {
16751 0 : case INTEGER_CST:
16752 0 : {
16753 0 : {
16754 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
16755 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16756 0 : if (res) return res;
16757 : }
16758 0 : break;
16759 : }
16760 : default:;
16761 : }
16762 : break;
16763 : }
16764 : default:;
16765 : }
16766 : }
16767 : break;
16768 1 : case CFN_BUILT_IN_BSWAP16:
16769 1 : if (call_expr_nargs (_q30) == 1)
16770 : {
16771 1 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16772 1 : switch (TREE_CODE (_q21))
16773 : {
16774 0 : case INTEGER_CST:
16775 0 : {
16776 0 : switch (TREE_CODE (_p1))
16777 : {
16778 0 : case INTEGER_CST:
16779 0 : {
16780 0 : {
16781 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
16782 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16783 0 : if (res) return res;
16784 : }
16785 0 : break;
16786 : }
16787 : default:;
16788 : }
16789 : break;
16790 : }
16791 : default:;
16792 : }
16793 : }
16794 : break;
16795 9 : case CFN_BUILT_IN_BSWAP32:
16796 9 : if (call_expr_nargs (_q30) == 1)
16797 : {
16798 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16799 9 : switch (TREE_CODE (_q21))
16800 : {
16801 9 : case INTEGER_CST:
16802 9 : {
16803 9 : switch (TREE_CODE (_p1))
16804 : {
16805 9 : case INTEGER_CST:
16806 9 : {
16807 9 : {
16808 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
16809 9 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16810 9 : if (res) return res;
16811 : }
16812 0 : break;
16813 : }
16814 : default:;
16815 : }
16816 : break;
16817 : }
16818 : default:;
16819 : }
16820 : }
16821 : break;
16822 12 : case CFN_BUILT_IN_BSWAP64:
16823 12 : if (call_expr_nargs (_q30) == 1)
16824 : {
16825 12 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16826 12 : switch (TREE_CODE (_q21))
16827 : {
16828 12 : case INTEGER_CST:
16829 12 : {
16830 12 : switch (TREE_CODE (_p1))
16831 : {
16832 12 : case INTEGER_CST:
16833 12 : {
16834 12 : {
16835 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
16836 12 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16837 12 : if (res) return res;
16838 : }
16839 0 : break;
16840 : }
16841 : default:;
16842 : }
16843 : break;
16844 : }
16845 : default:;
16846 : }
16847 : }
16848 : break;
16849 : default:;
16850 : }
16851 : break;
16852 : default:;
16853 : }
16854 : break;
16855 : }
16856 176964 : default:;
16857 : }
16858 176964 : switch (TREE_CODE (_q21))
16859 : {
16860 133067 : case INTEGER_CST:
16861 133067 : {
16862 133067 : switch (TREE_CODE (_p1))
16863 : {
16864 132922 : case INTEGER_CST:
16865 132922 : {
16866 132922 : {
16867 132922 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
16868 132922 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16869 132922 : if (res) return res;
16870 : }
16871 131114 : break;
16872 : }
16873 : default:;
16874 : }
16875 : break;
16876 : }
16877 175156 : default:;
16878 : }
16879 175156 : switch (TREE_CODE (_q20))
16880 : {
16881 140 : case CALL_EXPR:
16882 140 : switch (get_call_combined_fn (_q20))
16883 : {
16884 0 : case CFN_BUILT_IN_BSWAP128:
16885 0 : if (call_expr_nargs (_q20) == 1)
16886 : {
16887 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16888 0 : switch (TREE_CODE (_q21))
16889 : {
16890 0 : case INTEGER_CST:
16891 0 : {
16892 0 : switch (TREE_CODE (_p1))
16893 : {
16894 0 : case INTEGER_CST:
16895 0 : {
16896 0 : {
16897 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
16898 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16899 0 : if (res) return res;
16900 : }
16901 0 : break;
16902 : }
16903 : default:;
16904 : }
16905 : break;
16906 : }
16907 : default:;
16908 : }
16909 : }
16910 : break;
16911 0 : case CFN_BUILT_IN_BSWAP16:
16912 0 : if (call_expr_nargs (_q20) == 1)
16913 : {
16914 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16915 0 : switch (TREE_CODE (_q21))
16916 : {
16917 0 : case INTEGER_CST:
16918 0 : {
16919 0 : switch (TREE_CODE (_p1))
16920 : {
16921 0 : case INTEGER_CST:
16922 0 : {
16923 0 : {
16924 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
16925 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16926 0 : if (res) return res;
16927 : }
16928 0 : break;
16929 : }
16930 : default:;
16931 : }
16932 : break;
16933 : }
16934 : default:;
16935 : }
16936 : }
16937 : break;
16938 60 : case CFN_BUILT_IN_BSWAP32:
16939 60 : if (call_expr_nargs (_q20) == 1)
16940 : {
16941 60 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16942 60 : switch (TREE_CODE (_q21))
16943 : {
16944 59 : case INTEGER_CST:
16945 59 : {
16946 59 : switch (TREE_CODE (_p1))
16947 : {
16948 59 : case INTEGER_CST:
16949 59 : {
16950 59 : {
16951 59 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
16952 59 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16953 59 : if (res) return res;
16954 : }
16955 0 : break;
16956 : }
16957 : default:;
16958 : }
16959 : break;
16960 : }
16961 : default:;
16962 : }
16963 : }
16964 : break;
16965 73 : case CFN_BUILT_IN_BSWAP64:
16966 73 : if (call_expr_nargs (_q20) == 1)
16967 : {
16968 73 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16969 73 : switch (TREE_CODE (_q21))
16970 : {
16971 73 : case INTEGER_CST:
16972 73 : {
16973 73 : switch (TREE_CODE (_p1))
16974 : {
16975 73 : case INTEGER_CST:
16976 73 : {
16977 73 : {
16978 73 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
16979 73 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16980 73 : if (res) return res;
16981 : }
16982 0 : break;
16983 : }
16984 : default:;
16985 : }
16986 : break;
16987 : }
16988 : default:;
16989 : }
16990 : }
16991 : break;
16992 : default:;
16993 : }
16994 : break;
16995 : default:;
16996 : }
16997 : break;
16998 : }
16999 65 : case VEC_COND_EXPR:
17000 65 : {
17001 65 : tree _q20 = TREE_OPERAND (_p0, 0);
17002 65 : tree _q21 = TREE_OPERAND (_p0, 1);
17003 65 : tree _q22 = TREE_OPERAND (_p0, 2);
17004 65 : switch (TREE_CODE (_p1))
17005 : {
17006 47 : case VEC_COND_EXPR:
17007 47 : {
17008 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17009 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17010 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17011 47 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17012 : {
17013 0 : {
17014 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
17015 0 : if (VECTOR_TYPE_P (type)
17016 0 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
17017 : || types_match (type, TREE_TYPE (captures[2]))
17018 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
17019 : || (optimize_vectors_before_lowering_p ()
17020 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
17021 : )
17022 : {
17023 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1667;
17024 0 : {
17025 0 : tree res_op0;
17026 0 : res_op0 = captures[1];
17027 0 : tree res_op1;
17028 0 : {
17029 0 : tree _o1[2], _r1;
17030 0 : _o1[0] = captures[2];
17031 0 : _o1[1] = captures[5];
17032 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17033 0 : if (EXPR_P (_r1))
17034 0 : goto next_after_fail1667;
17035 0 : res_op1 = _r1;
17036 : }
17037 0 : tree res_op2;
17038 0 : {
17039 0 : tree _o1[2], _r1;
17040 0 : _o1[0] = captures[3];
17041 0 : _o1[1] = captures[6];
17042 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17043 0 : if (EXPR_P (_r1))
17044 0 : goto next_after_fail1667;
17045 0 : res_op2 = _r1;
17046 : }
17047 0 : tree _r;
17048 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17049 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
17050 0 : return _r;
17051 : }
17052 0 : next_after_fail1667:;
17053 : }
17054 : }
17055 : }
17056 : break;
17057 : }
17058 65 : default:;
17059 : }
17060 65 : if (integer_minus_onep (_q21))
17061 : {
17062 65 : if (integer_zerop (_q22))
17063 : {
17064 65 : switch (TREE_CODE (_p1))
17065 : {
17066 47 : case VEC_COND_EXPR:
17067 47 : {
17068 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17069 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17070 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17071 47 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
17072 : {
17073 47 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
17074 : {
17075 47 : {
17076 47 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17077 47 : const enum tree_code lop = BIT_AND_EXPR;
17078 47 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17079 : )
17080 : {
17081 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1668;
17082 47 : {
17083 47 : tree res_op0;
17084 47 : {
17085 47 : tree _o1[2], _r1;
17086 47 : _o1[0] = captures[0];
17087 47 : _o1[1] = captures[3];
17088 47 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17089 47 : res_op0 = _r1;
17090 : }
17091 47 : tree res_op1;
17092 47 : res_op1 = captures[1];
17093 47 : tree res_op2;
17094 47 : res_op2 = captures[2];
17095 47 : tree _r;
17096 47 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17097 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17098 47 : return _r;
17099 : }
17100 0 : next_after_fail1668:;
17101 : }
17102 : }
17103 0 : {
17104 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17105 0 : const enum tree_code lop = BIT_AND_EXPR;
17106 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17107 : )
17108 : {
17109 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1669;
17110 0 : {
17111 0 : tree res_op0;
17112 0 : {
17113 0 : tree _o1[2], _r1;
17114 0 : _o1[0] = captures[0];
17115 0 : _o1[1] = captures[3];
17116 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17117 0 : res_op0 = _r1;
17118 : }
17119 0 : tree res_op1;
17120 0 : res_op1 = captures[1];
17121 0 : tree res_op2;
17122 0 : res_op2 = captures[2];
17123 0 : tree _r;
17124 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17126 0 : return _r;
17127 : }
17128 0 : next_after_fail1669:;
17129 : }
17130 : }
17131 0 : {
17132 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17133 0 : const enum tree_code lop = BIT_AND_EXPR;
17134 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17135 : )
17136 : {
17137 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1670;
17138 0 : {
17139 0 : tree res_op0;
17140 0 : {
17141 0 : tree _o1[2], _r1;
17142 0 : _o1[0] = captures[0];
17143 0 : _o1[1] = captures[3];
17144 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17145 0 : res_op0 = _r1;
17146 : }
17147 0 : tree res_op1;
17148 0 : res_op1 = captures[1];
17149 0 : tree res_op2;
17150 0 : res_op2 = captures[2];
17151 0 : tree _r;
17152 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17153 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17154 0 : return _r;
17155 : }
17156 0 : next_after_fail1670:;
17157 : }
17158 : }
17159 0 : {
17160 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17161 0 : const enum tree_code lop = BIT_AND_EXPR;
17162 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17163 : )
17164 : {
17165 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1671;
17166 0 : {
17167 0 : tree res_op0;
17168 0 : {
17169 0 : tree _o1[2], _r1;
17170 0 : _o1[0] = captures[0];
17171 0 : _o1[1] = captures[3];
17172 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17173 0 : res_op0 = _r1;
17174 : }
17175 0 : tree res_op1;
17176 0 : res_op1 = captures[1];
17177 0 : tree res_op2;
17178 0 : res_op2 = captures[2];
17179 0 : tree _r;
17180 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17181 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17182 0 : return _r;
17183 : }
17184 0 : next_after_fail1671:;
17185 : }
17186 : }
17187 0 : {
17188 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17189 0 : const enum tree_code lop = BIT_AND_EXPR;
17190 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17191 : )
17192 : {
17193 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1672;
17194 0 : {
17195 0 : tree res_op0;
17196 0 : {
17197 0 : tree _o1[2], _r1;
17198 0 : _o1[0] = captures[0];
17199 0 : _o1[1] = captures[3];
17200 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17201 0 : res_op0 = _r1;
17202 : }
17203 0 : tree res_op1;
17204 0 : res_op1 = captures[1];
17205 0 : tree res_op2;
17206 0 : res_op2 = captures[2];
17207 0 : tree _r;
17208 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17209 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17210 0 : return _r;
17211 : }
17212 0 : next_after_fail1672:;
17213 : }
17214 : }
17215 0 : {
17216 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17217 0 : const enum tree_code lop = BIT_AND_EXPR;
17218 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17219 : )
17220 : {
17221 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1673;
17222 0 : {
17223 0 : tree res_op0;
17224 0 : {
17225 0 : tree _o1[2], _r1;
17226 0 : _o1[0] = captures[0];
17227 0 : _o1[1] = captures[3];
17228 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17229 0 : res_op0 = _r1;
17230 : }
17231 0 : tree res_op1;
17232 0 : res_op1 = captures[1];
17233 0 : tree res_op2;
17234 0 : res_op2 = captures[2];
17235 0 : tree _r;
17236 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17237 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17238 0 : return _r;
17239 : }
17240 0 : next_after_fail1673:;
17241 : }
17242 : }
17243 0 : {
17244 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17245 0 : const enum tree_code lop = BIT_AND_EXPR;
17246 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17247 : )
17248 : {
17249 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1674;
17250 0 : {
17251 0 : tree res_op0;
17252 0 : {
17253 0 : tree _o1[2], _r1;
17254 0 : _o1[0] = captures[0];
17255 0 : _o1[1] = captures[3];
17256 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17257 0 : res_op0 = _r1;
17258 : }
17259 0 : tree res_op1;
17260 0 : res_op1 = captures[1];
17261 0 : tree res_op2;
17262 0 : res_op2 = captures[2];
17263 0 : tree _r;
17264 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17265 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17266 0 : return _r;
17267 : }
17268 0 : next_after_fail1674:;
17269 : }
17270 : }
17271 0 : {
17272 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17273 0 : const enum tree_code lop = BIT_AND_EXPR;
17274 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17275 : )
17276 : {
17277 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1675;
17278 0 : {
17279 0 : tree res_op0;
17280 0 : {
17281 0 : tree _o1[2], _r1;
17282 0 : _o1[0] = captures[0];
17283 0 : _o1[1] = captures[3];
17284 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17285 0 : res_op0 = _r1;
17286 : }
17287 0 : tree res_op1;
17288 0 : res_op1 = captures[1];
17289 0 : tree res_op2;
17290 0 : res_op2 = captures[2];
17291 0 : tree _r;
17292 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17293 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17294 0 : return _r;
17295 : }
17296 0 : next_after_fail1675:;
17297 : }
17298 : }
17299 0 : {
17300 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17301 0 : const enum tree_code lop = BIT_AND_EXPR;
17302 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17303 : )
17304 : {
17305 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1676;
17306 0 : {
17307 0 : tree res_op0;
17308 0 : {
17309 0 : tree _o1[2], _r1;
17310 0 : _o1[0] = captures[0];
17311 0 : _o1[1] = captures[3];
17312 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17313 0 : res_op0 = _r1;
17314 : }
17315 0 : tree res_op1;
17316 0 : res_op1 = captures[1];
17317 0 : tree res_op2;
17318 0 : res_op2 = captures[2];
17319 0 : tree _r;
17320 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17321 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17322 0 : return _r;
17323 : }
17324 0 : next_after_fail1676:;
17325 : }
17326 : }
17327 0 : {
17328 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17329 0 : const enum tree_code lop = BIT_AND_EXPR;
17330 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17331 : )
17332 : {
17333 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1677;
17334 0 : {
17335 0 : tree res_op0;
17336 0 : {
17337 0 : tree _o1[2], _r1;
17338 0 : _o1[0] = captures[0];
17339 0 : _o1[1] = captures[3];
17340 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17341 0 : res_op0 = _r1;
17342 : }
17343 0 : tree res_op1;
17344 0 : res_op1 = captures[1];
17345 0 : tree res_op2;
17346 0 : res_op2 = captures[2];
17347 0 : tree _r;
17348 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17349 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17350 0 : return _r;
17351 : }
17352 0 : next_after_fail1677:;
17353 : }
17354 : }
17355 0 : {
17356 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17357 0 : const enum tree_code lop = BIT_AND_EXPR;
17358 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17359 : )
17360 : {
17361 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1678;
17362 0 : {
17363 0 : tree res_op0;
17364 0 : {
17365 0 : tree _o1[2], _r1;
17366 0 : _o1[0] = captures[0];
17367 0 : _o1[1] = captures[3];
17368 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17369 0 : res_op0 = _r1;
17370 : }
17371 0 : tree res_op1;
17372 0 : res_op1 = captures[1];
17373 0 : tree res_op2;
17374 0 : res_op2 = captures[2];
17375 0 : tree _r;
17376 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17377 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17378 0 : return _r;
17379 : }
17380 0 : next_after_fail1678:;
17381 : }
17382 : }
17383 0 : {
17384 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17385 0 : const enum tree_code lop = BIT_AND_EXPR;
17386 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17387 : )
17388 : {
17389 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1679;
17390 0 : {
17391 0 : tree res_op0;
17392 0 : {
17393 0 : tree _o1[2], _r1;
17394 0 : _o1[0] = captures[0];
17395 0 : _o1[1] = captures[3];
17396 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17397 0 : res_op0 = _r1;
17398 : }
17399 0 : tree res_op1;
17400 0 : res_op1 = captures[1];
17401 0 : tree res_op2;
17402 0 : res_op2 = captures[2];
17403 0 : tree _r;
17404 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17405 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17406 0 : return _r;
17407 : }
17408 0 : next_after_fail1679:;
17409 : }
17410 : }
17411 0 : {
17412 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17413 0 : const enum tree_code lop = BIT_AND_EXPR;
17414 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17415 : )
17416 : {
17417 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1680;
17418 0 : {
17419 0 : tree res_op0;
17420 0 : {
17421 0 : tree _o1[2], _r1;
17422 0 : _o1[0] = captures[0];
17423 0 : _o1[1] = captures[3];
17424 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17425 0 : res_op0 = _r1;
17426 : }
17427 0 : tree res_op1;
17428 0 : res_op1 = captures[1];
17429 0 : tree res_op2;
17430 0 : res_op2 = captures[2];
17431 0 : tree _r;
17432 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17433 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17434 0 : return _r;
17435 : }
17436 0 : next_after_fail1680:;
17437 : }
17438 : }
17439 0 : {
17440 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17441 0 : const enum tree_code lop = BIT_AND_EXPR;
17442 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17443 : )
17444 : {
17445 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1681;
17446 0 : {
17447 0 : tree res_op0;
17448 0 : {
17449 0 : tree _o1[2], _r1;
17450 0 : _o1[0] = captures[0];
17451 0 : _o1[1] = captures[3];
17452 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17453 0 : res_op0 = _r1;
17454 : }
17455 0 : tree res_op1;
17456 0 : res_op1 = captures[1];
17457 0 : tree res_op2;
17458 0 : res_op2 = captures[2];
17459 0 : tree _r;
17460 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17461 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17462 0 : return _r;
17463 : }
17464 0 : next_after_fail1681:;
17465 : }
17466 : }
17467 0 : {
17468 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17469 0 : const enum tree_code lop = BIT_AND_EXPR;
17470 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17471 : )
17472 : {
17473 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1682;
17474 0 : {
17475 0 : tree res_op0;
17476 0 : {
17477 0 : tree _o1[2], _r1;
17478 0 : _o1[0] = captures[0];
17479 0 : _o1[1] = captures[3];
17480 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17481 0 : res_op0 = _r1;
17482 : }
17483 0 : tree res_op1;
17484 0 : res_op1 = captures[1];
17485 0 : tree res_op2;
17486 0 : res_op2 = captures[2];
17487 0 : tree _r;
17488 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17489 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17490 0 : return _r;
17491 : }
17492 0 : next_after_fail1682:;
17493 : }
17494 : }
17495 0 : {
17496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17497 0 : const enum tree_code lop = BIT_AND_EXPR;
17498 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17499 : )
17500 : {
17501 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1683;
17502 0 : {
17503 0 : tree res_op0;
17504 0 : {
17505 0 : tree _o1[2], _r1;
17506 0 : _o1[0] = captures[0];
17507 0 : _o1[1] = captures[3];
17508 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17509 0 : res_op0 = _r1;
17510 : }
17511 0 : tree res_op1;
17512 0 : res_op1 = captures[1];
17513 0 : tree res_op2;
17514 0 : res_op2 = captures[2];
17515 0 : tree _r;
17516 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17518 0 : return _r;
17519 : }
17520 0 : next_after_fail1683:;
17521 : }
17522 : }
17523 0 : {
17524 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17525 0 : const enum tree_code lop = BIT_AND_EXPR;
17526 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17527 : )
17528 : {
17529 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1684;
17530 0 : {
17531 0 : tree res_op0;
17532 0 : {
17533 0 : tree _o1[2], _r1;
17534 0 : _o1[0] = captures[0];
17535 0 : _o1[1] = captures[3];
17536 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17537 0 : res_op0 = _r1;
17538 : }
17539 0 : tree res_op1;
17540 0 : res_op1 = captures[1];
17541 0 : tree res_op2;
17542 0 : res_op2 = captures[2];
17543 0 : tree _r;
17544 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17545 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17546 0 : return _r;
17547 : }
17548 0 : next_after_fail1684:;
17549 : }
17550 : }
17551 0 : {
17552 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17553 0 : const enum tree_code lop = BIT_AND_EXPR;
17554 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17555 : )
17556 : {
17557 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1685;
17558 0 : {
17559 0 : tree res_op0;
17560 0 : {
17561 0 : tree _o1[2], _r1;
17562 0 : _o1[0] = captures[0];
17563 0 : _o1[1] = captures[3];
17564 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17565 0 : res_op0 = _r1;
17566 : }
17567 0 : tree res_op1;
17568 0 : res_op1 = captures[1];
17569 0 : tree res_op2;
17570 0 : res_op2 = captures[2];
17571 0 : tree _r;
17572 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17573 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17574 0 : return _r;
17575 : }
17576 0 : next_after_fail1685:;
17577 : }
17578 : }
17579 0 : {
17580 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17581 0 : const enum tree_code lop = BIT_AND_EXPR;
17582 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17583 : )
17584 : {
17585 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1686;
17586 0 : {
17587 0 : tree res_op0;
17588 0 : {
17589 0 : tree _o1[2], _r1;
17590 0 : _o1[0] = captures[0];
17591 0 : _o1[1] = captures[3];
17592 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17593 0 : res_op0 = _r1;
17594 : }
17595 0 : tree res_op1;
17596 0 : res_op1 = captures[1];
17597 0 : tree res_op2;
17598 0 : res_op2 = captures[2];
17599 0 : tree _r;
17600 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17601 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17602 0 : return _r;
17603 : }
17604 0 : next_after_fail1686:;
17605 : }
17606 : }
17607 0 : {
17608 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17609 0 : const enum tree_code lop = BIT_AND_EXPR;
17610 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17611 : )
17612 : {
17613 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1687;
17614 0 : {
17615 0 : tree res_op0;
17616 0 : {
17617 0 : tree _o1[2], _r1;
17618 0 : _o1[0] = captures[0];
17619 0 : _o1[1] = captures[3];
17620 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17621 0 : res_op0 = _r1;
17622 : }
17623 0 : tree res_op1;
17624 0 : res_op1 = captures[1];
17625 0 : tree res_op2;
17626 0 : res_op2 = captures[2];
17627 0 : tree _r;
17628 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17629 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17630 0 : return _r;
17631 : }
17632 0 : next_after_fail1687:;
17633 : }
17634 : }
17635 0 : {
17636 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17637 0 : const enum tree_code lop = BIT_AND_EXPR;
17638 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17639 : )
17640 : {
17641 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1688;
17642 0 : {
17643 0 : tree res_op0;
17644 0 : {
17645 0 : tree _o1[2], _r1;
17646 0 : _o1[0] = captures[0];
17647 0 : _o1[1] = captures[3];
17648 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17649 0 : res_op0 = _r1;
17650 : }
17651 0 : tree res_op1;
17652 0 : res_op1 = captures[1];
17653 0 : tree res_op2;
17654 0 : res_op2 = captures[2];
17655 0 : tree _r;
17656 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17657 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17658 0 : return _r;
17659 : }
17660 0 : next_after_fail1688:;
17661 : }
17662 : }
17663 0 : {
17664 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17665 0 : const enum tree_code lop = BIT_AND_EXPR;
17666 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17667 : )
17668 : {
17669 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1689;
17670 0 : {
17671 0 : tree res_op0;
17672 0 : {
17673 0 : tree _o1[2], _r1;
17674 0 : _o1[0] = captures[0];
17675 0 : _o1[1] = captures[3];
17676 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17677 0 : res_op0 = _r1;
17678 : }
17679 0 : tree res_op1;
17680 0 : res_op1 = captures[1];
17681 0 : tree res_op2;
17682 0 : res_op2 = captures[2];
17683 0 : tree _r;
17684 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17685 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17686 0 : return _r;
17687 : }
17688 0 : next_after_fail1689:;
17689 : }
17690 : }
17691 0 : {
17692 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17693 0 : const enum tree_code lop = BIT_AND_EXPR;
17694 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17695 : )
17696 : {
17697 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1690;
17698 0 : {
17699 0 : tree res_op0;
17700 0 : {
17701 0 : tree _o1[2], _r1;
17702 0 : _o1[0] = captures[0];
17703 0 : _o1[1] = captures[3];
17704 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17705 0 : res_op0 = _r1;
17706 : }
17707 0 : tree res_op1;
17708 0 : res_op1 = captures[1];
17709 0 : tree res_op2;
17710 0 : res_op2 = captures[2];
17711 0 : tree _r;
17712 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17713 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17714 0 : return _r;
17715 : }
17716 0 : next_after_fail1690:;
17717 : }
17718 : }
17719 0 : {
17720 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17721 0 : const enum tree_code lop = BIT_AND_EXPR;
17722 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17723 : )
17724 : {
17725 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1691;
17726 0 : {
17727 0 : tree res_op0;
17728 0 : {
17729 0 : tree _o1[2], _r1;
17730 0 : _o1[0] = captures[0];
17731 0 : _o1[1] = captures[3];
17732 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17733 0 : res_op0 = _r1;
17734 : }
17735 0 : tree res_op1;
17736 0 : res_op1 = captures[1];
17737 0 : tree res_op2;
17738 0 : res_op2 = captures[2];
17739 0 : tree _r;
17740 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17741 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17742 0 : return _r;
17743 : }
17744 0 : next_after_fail1691:;
17745 : }
17746 : }
17747 0 : {
17748 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17749 0 : const enum tree_code lop = BIT_AND_EXPR;
17750 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17751 : )
17752 : {
17753 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1692;
17754 0 : {
17755 0 : tree res_op0;
17756 0 : {
17757 0 : tree _o1[2], _r1;
17758 0 : _o1[0] = captures[0];
17759 0 : _o1[1] = captures[3];
17760 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17761 0 : res_op0 = _r1;
17762 : }
17763 0 : tree res_op1;
17764 0 : res_op1 = captures[1];
17765 0 : tree res_op2;
17766 0 : res_op2 = captures[2];
17767 0 : tree _r;
17768 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17769 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17770 0 : return _r;
17771 : }
17772 0 : next_after_fail1692:;
17773 : }
17774 : }
17775 0 : {
17776 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17777 0 : const enum tree_code lop = BIT_AND_EXPR;
17778 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17779 : )
17780 : {
17781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1693;
17782 0 : {
17783 0 : tree res_op0;
17784 0 : {
17785 0 : tree _o1[2], _r1;
17786 0 : _o1[0] = captures[0];
17787 0 : _o1[1] = captures[3];
17788 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17789 0 : res_op0 = _r1;
17790 : }
17791 0 : tree res_op1;
17792 0 : res_op1 = captures[1];
17793 0 : tree res_op2;
17794 0 : res_op2 = captures[2];
17795 0 : tree _r;
17796 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17797 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17798 0 : return _r;
17799 : }
17800 0 : next_after_fail1693:;
17801 : }
17802 : }
17803 0 : {
17804 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17805 0 : const enum tree_code lop = BIT_AND_EXPR;
17806 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17807 : )
17808 : {
17809 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1694;
17810 0 : {
17811 0 : tree res_op0;
17812 0 : {
17813 0 : tree _o1[2], _r1;
17814 0 : _o1[0] = captures[0];
17815 0 : _o1[1] = captures[3];
17816 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17817 0 : res_op0 = _r1;
17818 : }
17819 0 : tree res_op1;
17820 0 : res_op1 = captures[1];
17821 0 : tree res_op2;
17822 0 : res_op2 = captures[2];
17823 0 : tree _r;
17824 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17826 0 : return _r;
17827 : }
17828 0 : next_after_fail1694:;
17829 : }
17830 : }
17831 0 : {
17832 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17833 0 : const enum tree_code lop = BIT_AND_EXPR;
17834 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17835 : )
17836 : {
17837 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1695;
17838 0 : {
17839 0 : tree res_op0;
17840 0 : {
17841 0 : tree _o1[2], _r1;
17842 0 : _o1[0] = captures[0];
17843 0 : _o1[1] = captures[3];
17844 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17845 0 : res_op0 = _r1;
17846 : }
17847 0 : tree res_op1;
17848 0 : res_op1 = captures[1];
17849 0 : tree res_op2;
17850 0 : res_op2 = captures[2];
17851 0 : tree _r;
17852 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17853 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17854 0 : return _r;
17855 : }
17856 0 : next_after_fail1695:;
17857 : }
17858 : }
17859 0 : {
17860 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17861 0 : const enum tree_code lop = BIT_AND_EXPR;
17862 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17863 : )
17864 : {
17865 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1696;
17866 0 : {
17867 0 : tree res_op0;
17868 0 : {
17869 0 : tree _o1[2], _r1;
17870 0 : _o1[0] = captures[0];
17871 0 : _o1[1] = captures[3];
17872 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17873 0 : res_op0 = _r1;
17874 : }
17875 0 : tree res_op1;
17876 0 : res_op1 = captures[1];
17877 0 : tree res_op2;
17878 0 : res_op2 = captures[2];
17879 0 : tree _r;
17880 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17881 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17882 0 : return _r;
17883 : }
17884 0 : next_after_fail1696:;
17885 : }
17886 : }
17887 0 : {
17888 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17889 0 : const enum tree_code lop = BIT_AND_EXPR;
17890 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17891 : )
17892 : {
17893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1697;
17894 0 : {
17895 0 : tree res_op0;
17896 0 : {
17897 0 : tree _o1[2], _r1;
17898 0 : _o1[0] = captures[0];
17899 0 : _o1[1] = captures[3];
17900 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17901 0 : res_op0 = _r1;
17902 : }
17903 0 : tree res_op1;
17904 0 : res_op1 = captures[1];
17905 0 : tree res_op2;
17906 0 : res_op2 = captures[2];
17907 0 : tree _r;
17908 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17909 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17910 0 : return _r;
17911 : }
17912 0 : next_after_fail1697:;
17913 : }
17914 : }
17915 0 : {
17916 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17917 0 : const enum tree_code lop = BIT_AND_EXPR;
17918 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17919 : )
17920 : {
17921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1698;
17922 0 : {
17923 0 : tree res_op0;
17924 0 : {
17925 0 : tree _o1[2], _r1;
17926 0 : _o1[0] = captures[0];
17927 0 : _o1[1] = captures[3];
17928 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17929 0 : res_op0 = _r1;
17930 : }
17931 0 : tree res_op1;
17932 0 : res_op1 = captures[1];
17933 0 : tree res_op2;
17934 0 : res_op2 = captures[2];
17935 0 : tree _r;
17936 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17937 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17938 0 : return _r;
17939 : }
17940 0 : next_after_fail1698:;
17941 : }
17942 : }
17943 0 : {
17944 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17945 0 : const enum tree_code lop = BIT_AND_EXPR;
17946 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17947 : )
17948 : {
17949 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1699;
17950 0 : {
17951 0 : tree res_op0;
17952 0 : {
17953 0 : tree _o1[2], _r1;
17954 0 : _o1[0] = captures[0];
17955 0 : _o1[1] = captures[3];
17956 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17957 0 : res_op0 = _r1;
17958 : }
17959 0 : tree res_op1;
17960 0 : res_op1 = captures[1];
17961 0 : tree res_op2;
17962 0 : res_op2 = captures[2];
17963 0 : tree _r;
17964 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17965 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17966 0 : return _r;
17967 : }
17968 0 : next_after_fail1699:;
17969 : }
17970 : }
17971 0 : {
17972 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17973 0 : const enum tree_code lop = BIT_AND_EXPR;
17974 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17975 : )
17976 : {
17977 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1700;
17978 0 : {
17979 0 : tree res_op0;
17980 0 : {
17981 0 : tree _o1[2], _r1;
17982 0 : _o1[0] = captures[0];
17983 0 : _o1[1] = captures[3];
17984 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17985 0 : res_op0 = _r1;
17986 : }
17987 0 : tree res_op1;
17988 0 : res_op1 = captures[1];
17989 0 : tree res_op2;
17990 0 : res_op2 = captures[2];
17991 0 : tree _r;
17992 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17993 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
17994 0 : return _r;
17995 : }
17996 0 : next_after_fail1700:;
17997 : }
17998 : }
17999 0 : {
18000 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18001 0 : const enum tree_code lop = BIT_AND_EXPR;
18002 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18003 : )
18004 : {
18005 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1701;
18006 0 : {
18007 0 : tree res_op0;
18008 0 : {
18009 0 : tree _o1[2], _r1;
18010 0 : _o1[0] = captures[0];
18011 0 : _o1[1] = captures[3];
18012 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18013 0 : res_op0 = _r1;
18014 : }
18015 0 : tree res_op1;
18016 0 : res_op1 = captures[1];
18017 0 : tree res_op2;
18018 0 : res_op2 = captures[2];
18019 0 : tree _r;
18020 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18021 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
18022 0 : return _r;
18023 : }
18024 0 : next_after_fail1701:;
18025 : }
18026 : }
18027 : }
18028 : }
18029 : break;
18030 : }
18031 : default:;
18032 : }
18033 : }
18034 : }
18035 18 : {
18036 18 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
18037 18 : if (VECTOR_TYPE_P (type)
18038 18 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18039 : || types_match (type, TREE_TYPE (captures[2]))
18040 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
18041 : || (optimize_vectors_before_lowering_p ()
18042 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
18043 : )
18044 : {
18045 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1702;
18046 18 : {
18047 18 : if (! tree_invariant_p (captures[4])) goto next_after_fail1702;
18048 14 : tree res_op0;
18049 14 : res_op0 = captures[1];
18050 14 : tree res_op1;
18051 14 : {
18052 14 : tree _o1[2], _r1;
18053 14 : _o1[0] = captures[2];
18054 14 : _o1[1] = unshare_expr (captures[4]);
18055 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18056 14 : if (EXPR_P (_r1))
18057 0 : goto next_after_fail1702;
18058 14 : res_op1 = _r1;
18059 : }
18060 14 : tree res_op2;
18061 14 : {
18062 14 : tree _o1[2], _r1;
18063 14 : _o1[0] = captures[3];
18064 14 : _o1[1] = captures[4];
18065 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18066 14 : if (EXPR_P (_r1))
18067 0 : goto next_after_fail1702;
18068 14 : res_op2 = _r1;
18069 : }
18070 14 : tree _r;
18071 14 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18072 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
18073 14 : return _r;
18074 : }
18075 4 : next_after_fail1702:;
18076 : }
18077 : }
18078 4 : break;
18079 : }
18080 198902 : case CALL_EXPR:
18081 198902 : switch (get_call_combined_fn (_p0))
18082 : {
18083 0 : case CFN_BUILT_IN_BSWAP128:
18084 0 : if (call_expr_nargs (_p0) == 1)
18085 : {
18086 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18087 0 : switch (TREE_CODE (_p1))
18088 : {
18089 0 : case INTEGER_CST:
18090 0 : {
18091 0 : {
18092 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18093 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
18094 0 : if (res) return res;
18095 : }
18096 0 : break;
18097 : }
18098 : default:;
18099 : }
18100 : }
18101 : break;
18102 0 : case CFN_BUILT_IN_BSWAP16:
18103 0 : if (call_expr_nargs (_p0) == 1)
18104 : {
18105 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18106 0 : switch (TREE_CODE (_p1))
18107 : {
18108 0 : case INTEGER_CST:
18109 0 : {
18110 0 : {
18111 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18112 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
18113 0 : if (res) return res;
18114 : }
18115 0 : break;
18116 : }
18117 : default:;
18118 : }
18119 : }
18120 : break;
18121 10 : case CFN_BUILT_IN_BSWAP32:
18122 10 : if (call_expr_nargs (_p0) == 1)
18123 : {
18124 10 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18125 10 : switch (TREE_CODE (_p1))
18126 : {
18127 9 : case INTEGER_CST:
18128 9 : {
18129 9 : {
18130 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18131 9 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
18132 9 : if (res) return res;
18133 : }
18134 1 : break;
18135 : }
18136 : default:;
18137 : }
18138 : }
18139 : break;
18140 8 : case CFN_BUILT_IN_BSWAP64:
18141 8 : if (call_expr_nargs (_p0) == 1)
18142 : {
18143 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18144 8 : switch (TREE_CODE (_p1))
18145 : {
18146 7 : case INTEGER_CST:
18147 7 : {
18148 7 : {
18149 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18150 7 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
18151 7 : if (res) return res;
18152 : }
18153 1 : break;
18154 : }
18155 : default:;
18156 : }
18157 : }
18158 : break;
18159 : default:;
18160 : }
18161 : break;
18162 9111567 : default:;
18163 : }
18164 9111567 : switch (TREE_CODE (_p1))
18165 : {
18166 1 : case VEC_COND_EXPR:
18167 1 : {
18168 1 : tree _q30 = TREE_OPERAND (_p1, 0);
18169 1 : tree _q31 = TREE_OPERAND (_p1, 1);
18170 1 : tree _q32 = TREE_OPERAND (_p1, 2);
18171 1 : {
18172 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
18173 1 : if (VECTOR_TYPE_P (type)
18174 1 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18175 : || types_match (type, TREE_TYPE (captures[3]))
18176 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
18177 : || (optimize_vectors_before_lowering_p ()
18178 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
18179 : )
18180 : {
18181 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1703;
18182 1 : {
18183 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail1703;
18184 0 : tree res_op0;
18185 0 : res_op0 = captures[2];
18186 0 : tree res_op1;
18187 0 : {
18188 0 : tree _o1[2], _r1;
18189 0 : _o1[0] = unshare_expr (captures[0]);
18190 0 : _o1[1] = captures[3];
18191 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18192 0 : if (EXPR_P (_r1))
18193 0 : goto next_after_fail1703;
18194 0 : res_op1 = _r1;
18195 : }
18196 0 : tree res_op2;
18197 0 : {
18198 0 : tree _o1[2], _r1;
18199 0 : _o1[0] = captures[0];
18200 0 : _o1[1] = captures[4];
18201 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18202 0 : if (EXPR_P (_r1))
18203 0 : goto next_after_fail1703;
18204 0 : res_op2 = _r1;
18205 : }
18206 0 : tree _r;
18207 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18208 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
18209 0 : return _r;
18210 : }
18211 1 : next_after_fail1703:;
18212 : }
18213 : }
18214 1 : break;
18215 : }
18216 9111567 : default:;
18217 : }
18218 9111567 : switch (TREE_CODE (_p0))
18219 : {
18220 0 : case ORDERED_EXPR:
18221 0 : {
18222 0 : tree _q20 = TREE_OPERAND (_p0, 0);
18223 0 : tree _q21 = TREE_OPERAND (_p0, 1);
18224 0 : switch (TREE_CODE (_p1))
18225 : {
18226 0 : case NE_EXPR:
18227 0 : {
18228 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18229 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18230 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18231 : {
18232 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18233 : {
18234 0 : {
18235 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18236 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
18237 0 : if (res) return res;
18238 : }
18239 : }
18240 : }
18241 : break;
18242 : }
18243 0 : default:;
18244 : }
18245 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18246 : {
18247 0 : switch (TREE_CODE (_p1))
18248 : {
18249 0 : case ORDERED_EXPR:
18250 0 : {
18251 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18252 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18253 0 : if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
18254 : {
18255 0 : {
18256 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
18257 0 : if (types_match (captures[0], captures[1])
18258 : )
18259 : {
18260 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1704;
18261 0 : {
18262 0 : tree res_op0;
18263 0 : res_op0 = captures[0];
18264 0 : tree res_op1;
18265 0 : res_op1 = captures[1];
18266 0 : tree _r;
18267 0 : _r = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
18268 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1003, __FILE__, __LINE__, true);
18269 0 : return _r;
18270 : }
18271 0 : next_after_fail1704:;
18272 : }
18273 : }
18274 : }
18275 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18276 : {
18277 0 : {
18278 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
18279 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
18280 0 : if (res) return res;
18281 : }
18282 : }
18283 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18284 : {
18285 0 : {
18286 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
18287 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
18288 0 : if (res) return res;
18289 : }
18290 : }
18291 : break;
18292 : }
18293 : default:;
18294 : }
18295 : }
18296 0 : switch (TREE_CODE (_p1))
18297 : {
18298 0 : case ORDERED_EXPR:
18299 0 : {
18300 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18301 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18302 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18303 : {
18304 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18305 : {
18306 0 : {
18307 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
18308 0 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures);
18309 0 : if (res) return res;
18310 : }
18311 : }
18312 : }
18313 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18314 : {
18315 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18316 : {
18317 0 : {
18318 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
18319 0 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures);
18320 0 : if (res) return res;
18321 : }
18322 : }
18323 : }
18324 : break;
18325 : }
18326 : default:;
18327 : }
18328 : break;
18329 : }
18330 129 : case NE_EXPR:
18331 129 : {
18332 129 : tree _q20 = TREE_OPERAND (_p0, 0);
18333 129 : tree _q21 = TREE_OPERAND (_p0, 1);
18334 129 : switch (TREE_CODE (_p1))
18335 : {
18336 0 : case ORDERED_EXPR:
18337 0 : {
18338 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18339 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18340 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18341 : {
18342 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18343 : {
18344 0 : {
18345 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18346 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
18347 0 : if (res) return res;
18348 : }
18349 : }
18350 : }
18351 : break;
18352 : }
18353 : default:;
18354 : }
18355 : break;
18356 : }
18357 501558 : case MINUS_EXPR:
18358 501558 : {
18359 501558 : tree _q20 = TREE_OPERAND (_p0, 0);
18360 501558 : tree _q21 = TREE_OPERAND (_p0, 1);
18361 501558 : switch (TREE_CODE (_q20))
18362 : {
18363 434762 : CASE_CONVERT:
18364 434762 : {
18365 434762 : tree _q30 = TREE_OPERAND (_q20, 0);
18366 434762 : switch (TREE_CODE (_q21))
18367 : {
18368 429860 : CASE_CONVERT:
18369 429860 : {
18370 429860 : tree _q50 = TREE_OPERAND (_q21, 0);
18371 429860 : switch (TREE_CODE (_p1))
18372 : {
18373 429836 : case INTEGER_CST:
18374 429836 : {
18375 429836 : {
18376 429836 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18377 429836 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, MINUS_EXPR);
18378 429836 : if (res) return res;
18379 : }
18380 429826 : break;
18381 : }
18382 : default:;
18383 : }
18384 : break;
18385 : }
18386 : default:;
18387 : }
18388 : break;
18389 : }
18390 : default:;
18391 : }
18392 : break;
18393 : }
18394 174446 : case PLUS_EXPR:
18395 174446 : {
18396 174446 : tree _q20 = TREE_OPERAND (_p0, 0);
18397 174446 : tree _q21 = TREE_OPERAND (_p0, 1);
18398 174446 : switch (TREE_CODE (_q20))
18399 : {
18400 52251 : CASE_CONVERT:
18401 52251 : {
18402 52251 : tree _q30 = TREE_OPERAND (_q20, 0);
18403 52251 : switch (TREE_CODE (_q21))
18404 : {
18405 119 : CASE_CONVERT:
18406 119 : {
18407 119 : tree _q50 = TREE_OPERAND (_q21, 0);
18408 119 : switch (TREE_CODE (_p1))
18409 : {
18410 60 : case INTEGER_CST:
18411 60 : {
18412 60 : {
18413 60 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18414 60 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, PLUS_EXPR);
18415 60 : if (res) return res;
18416 : }
18417 45 : break;
18418 : }
18419 : default:;
18420 : }
18421 : break;
18422 : }
18423 : default:;
18424 : }
18425 : break;
18426 : }
18427 : default:;
18428 : }
18429 : break;
18430 : }
18431 80 : case LT_EXPR:
18432 80 : {
18433 80 : tree _q20 = TREE_OPERAND (_p0, 0);
18434 80 : tree _q21 = TREE_OPERAND (_p0, 1);
18435 80 : switch (TREE_CODE (_p1))
18436 : {
18437 8 : case LT_EXPR:
18438 8 : {
18439 8 : tree _q50 = TREE_OPERAND (_p1, 0);
18440 8 : tree _q51 = TREE_OPERAND (_p1, 1);
18441 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18442 : {
18443 0 : {
18444 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18445 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18446 0 : if (res) return res;
18447 : }
18448 : }
18449 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18450 : {
18451 0 : {
18452 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18453 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18454 0 : if (res) return res;
18455 : }
18456 : }
18457 : break;
18458 : }
18459 1 : case GT_EXPR:
18460 1 : {
18461 1 : tree _q50 = TREE_OPERAND (_p1, 0);
18462 1 : tree _q51 = TREE_OPERAND (_p1, 1);
18463 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18464 : {
18465 0 : {
18466 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18467 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18468 0 : if (res) return res;
18469 : }
18470 : }
18471 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18472 : {
18473 0 : {
18474 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18475 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18476 0 : if (res) return res;
18477 : }
18478 : }
18479 : break;
18480 : }
18481 : default:;
18482 : }
18483 : break;
18484 : }
18485 32 : case LE_EXPR:
18486 32 : {
18487 32 : tree _q20 = TREE_OPERAND (_p0, 0);
18488 32 : tree _q21 = TREE_OPERAND (_p0, 1);
18489 32 : switch (TREE_CODE (_p1))
18490 : {
18491 5 : case LE_EXPR:
18492 5 : {
18493 5 : tree _q50 = TREE_OPERAND (_p1, 0);
18494 5 : tree _q51 = TREE_OPERAND (_p1, 1);
18495 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18496 : {
18497 0 : {
18498 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18499 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18500 0 : if (res) return res;
18501 : }
18502 : }
18503 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18504 : {
18505 4 : {
18506 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18507 4 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18508 4 : if (res) return res;
18509 : }
18510 : }
18511 : break;
18512 : }
18513 0 : case GE_EXPR:
18514 0 : {
18515 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18516 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18517 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18518 : {
18519 0 : {
18520 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18521 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18522 0 : if (res) return res;
18523 : }
18524 : }
18525 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18526 : {
18527 0 : {
18528 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18529 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18530 0 : if (res) return res;
18531 : }
18532 : }
18533 : break;
18534 : }
18535 : default:;
18536 : }
18537 : break;
18538 : }
18539 348 : case GT_EXPR:
18540 348 : {
18541 348 : tree _q20 = TREE_OPERAND (_p0, 0);
18542 348 : tree _q21 = TREE_OPERAND (_p0, 1);
18543 348 : switch (TREE_CODE (_p1))
18544 : {
18545 85 : case GT_EXPR:
18546 85 : {
18547 85 : tree _q50 = TREE_OPERAND (_p1, 0);
18548 85 : tree _q51 = TREE_OPERAND (_p1, 1);
18549 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18550 : {
18551 0 : {
18552 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18553 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18554 0 : if (res) return res;
18555 : }
18556 : }
18557 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18558 : {
18559 35 : {
18560 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18561 35 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18562 35 : if (res) return res;
18563 : }
18564 : }
18565 : break;
18566 : }
18567 67 : case LT_EXPR:
18568 67 : {
18569 67 : tree _q50 = TREE_OPERAND (_p1, 0);
18570 67 : tree _q51 = TREE_OPERAND (_p1, 1);
18571 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18572 : {
18573 0 : {
18574 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18575 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18576 0 : if (res) return res;
18577 : }
18578 : }
18579 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18580 : {
18581 0 : {
18582 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18583 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18584 0 : if (res) return res;
18585 : }
18586 : }
18587 : break;
18588 : }
18589 : default:;
18590 : }
18591 : break;
18592 : }
18593 73 : case GE_EXPR:
18594 73 : {
18595 73 : tree _q20 = TREE_OPERAND (_p0, 0);
18596 73 : tree _q21 = TREE_OPERAND (_p0, 1);
18597 73 : switch (TREE_CODE (_p1))
18598 : {
18599 11 : case GE_EXPR:
18600 11 : {
18601 11 : tree _q50 = TREE_OPERAND (_p1, 0);
18602 11 : tree _q51 = TREE_OPERAND (_p1, 1);
18603 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18604 : {
18605 7 : {
18606 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18607 7 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18608 7 : if (res) return res;
18609 : }
18610 : }
18611 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18612 : {
18613 0 : {
18614 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18615 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18616 0 : if (res) return res;
18617 : }
18618 : }
18619 : break;
18620 : }
18621 17 : case LE_EXPR:
18622 17 : {
18623 17 : tree _q50 = TREE_OPERAND (_p1, 0);
18624 17 : tree _q51 = TREE_OPERAND (_p1, 1);
18625 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18626 : {
18627 0 : {
18628 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18629 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18630 0 : if (res) return res;
18631 : }
18632 : }
18633 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18634 : {
18635 0 : {
18636 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18637 0 : tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18638 0 : if (res) return res;
18639 : }
18640 : }
18641 : break;
18642 : }
18643 : default:;
18644 : }
18645 : break;
18646 : }
18647 47686 : case NEGATE_EXPR:
18648 47686 : {
18649 47686 : tree _q20 = TREE_OPERAND (_p0, 0);
18650 47686 : if (integer_onep (_p1))
18651 : {
18652 2047 : {
18653 2047 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
18654 2047 : if (!TYPE_OVERFLOW_SANITIZED (type)
18655 : )
18656 : {
18657 2034 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1705;
18658 2034 : {
18659 2034 : tree res_op0;
18660 2034 : res_op0 = captures[0];
18661 2034 : tree res_op1;
18662 2034 : res_op1 = captures[1];
18663 2034 : tree _r;
18664 2034 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18665 2034 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
18666 2034 : return _r;
18667 : }
18668 0 : next_after_fail1705:;
18669 : }
18670 : }
18671 : }
18672 : break;
18673 : }
18674 1 : case VEC_PERM_EXPR:
18675 1 : {
18676 1 : tree _q20 = TREE_OPERAND (_p0, 0);
18677 1 : tree _q21 = TREE_OPERAND (_p0, 1);
18678 1 : tree _q22 = TREE_OPERAND (_p0, 2);
18679 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18680 : {
18681 0 : switch (TREE_CODE (_p1))
18682 : {
18683 0 : case VEC_PERM_EXPR:
18684 0 : {
18685 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18686 0 : tree _q61 = TREE_OPERAND (_p1, 1);
18687 0 : tree _q62 = TREE_OPERAND (_p1, 2);
18688 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
18689 : {
18690 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
18691 : {
18692 0 : {
18693 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
18694 0 : if (VECTOR_INTEGER_TYPE_P (type)
18695 : )
18696 : {
18697 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1706;
18698 0 : {
18699 0 : tree res_op0;
18700 0 : {
18701 0 : tree _o1[2], _r1;
18702 0 : _o1[0] = captures[0];
18703 0 : _o1[1] = captures[2];
18704 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18705 0 : captures[3] = _r1;
18706 : }
18707 0 : res_op0 = unshare_expr (captures[3]);
18708 0 : tree res_op1;
18709 0 : res_op1 = captures[3];
18710 0 : tree res_op2;
18711 0 : res_op2 = captures[1];
18712 0 : tree _r;
18713 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
18714 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
18715 0 : return _r;
18716 : }
18717 0 : next_after_fail1706:;
18718 : }
18719 : }
18720 : }
18721 : }
18722 : break;
18723 : }
18724 : default:;
18725 : }
18726 : }
18727 : break;
18728 : }
18729 198888 : case CALL_EXPR:
18730 198888 : switch (get_call_combined_fn (_p0))
18731 : {
18732 1 : case CFN_BUILT_IN_POPCOUNT:
18733 1 : if (call_expr_nargs (_p0) == 1)
18734 : {
18735 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18736 1 : if (integer_onep (_p1))
18737 : {
18738 1 : {
18739 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18740 1 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY);
18741 1 : if (res) return res;
18742 : }
18743 : }
18744 : }
18745 : break;
18746 1 : case CFN_BUILT_IN_POPCOUNTLL:
18747 1 : if (call_expr_nargs (_p0) == 1)
18748 : {
18749 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18750 1 : if (integer_onep (_p1))
18751 : {
18752 1 : {
18753 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18754 1 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL);
18755 1 : if (res) return res;
18756 : }
18757 : }
18758 : }
18759 : break;
18760 0 : case CFN_POPCOUNT:
18761 0 : if (call_expr_nargs (_p0) == 1)
18762 : {
18763 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18764 0 : if (integer_onep (_p1))
18765 : {
18766 0 : {
18767 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18768 0 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, CFN_POPCOUNT, CFN_PARITY);
18769 0 : if (res) return res;
18770 : }
18771 : }
18772 : }
18773 : break;
18774 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
18775 0 : if (call_expr_nargs (_p0) == 1)
18776 : {
18777 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18778 0 : if (integer_onep (_p1))
18779 : {
18780 0 : {
18781 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18782 0 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX);
18783 0 : if (res) return res;
18784 : }
18785 : }
18786 : }
18787 : break;
18788 1 : case CFN_BUILT_IN_POPCOUNTL:
18789 1 : if (call_expr_nargs (_p0) == 1)
18790 : {
18791 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18792 1 : if (integer_onep (_p1))
18793 : {
18794 1 : {
18795 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18796 1 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL);
18797 1 : if (res) return res;
18798 : }
18799 : }
18800 : }
18801 : break;
18802 : default:;
18803 : }
18804 : break;
18805 : default:;
18806 : }
18807 : return NULL_TREE;
18808 : }
18809 : #pragma GCC diagnostic pop
|