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 106074802 : tree_bit_xor_cst (tree t, tree *res_ops)
11 : {
12 106074802 : const tree type = TREE_TYPE (t);
13 106074802 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 106074802 : if (TREE_SIDE_EFFECTS (t)) return false;
15 106074802 : switch (TREE_CODE (t))
16 : {
17 91998 : case BIT_XOR_EXPR:
18 91998 : {
19 91998 : tree _p0 = TREE_OPERAND (t, 0);
20 91998 : tree _p1 = TREE_OPERAND (t, 1);
21 91998 : if (uniform_integer_cst_p (_p1))
22 : {
23 1601 : {
24 1601 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
25 1601 : {
26 1601 : res_ops[0] = captures[0];
27 1601 : res_ops[1] = captures[1];
28 1601 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 4, __FILE__, __LINE__, false);
29 1601 : return true;
30 : }
31 : }
32 : }
33 : break;
34 : }
35 : default:;
36 : }
37 : return false;
38 : }
39 :
40 : bool
41 76033101 : tree_with_possible_nonzero_bits_1 (tree t)
42 : {
43 76033101 : const tree type = TREE_TYPE (t);
44 76033101 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
45 76033101 : if (TREE_SIDE_EFFECTS (t)) return false;
46 76033101 : switch (TREE_CODE (t))
47 : {
48 16587307 : case INTEGER_CST:
49 16587307 : {
50 16587307 : {
51 16587307 : tree captures[1] ATTRIBUTE_UNUSED = { t };
52 16587307 : {
53 16587307 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 32, __FILE__, __LINE__, false);
54 16587307 : return true;
55 : }
56 : }
57 0 : break;
58 : }
59 0 : case POLY_INT_CST:
60 0 : {
61 0 : {
62 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
63 0 : {
64 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 33, __FILE__, __LINE__, false);
65 0 : return true;
66 : }
67 : }
68 26271989 : break;
69 : }
70 26271989 : case SSA_NAME:
71 26271989 : {
72 26271989 : {
73 26271989 : tree captures[1] ATTRIBUTE_UNUSED = { t };
74 26271989 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))
75 : )
76 : {
77 25757379 : {
78 25757379 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 34, __FILE__, __LINE__, false);
79 25757379 : return true;
80 : }
81 : }
82 : }
83 : break;
84 : }
85 : default:;
86 : }
87 : return false;
88 : }
89 :
90 : bool
91 2379 : tree_max_value (tree t)
92 : {
93 2379 : const tree type = TREE_TYPE (t);
94 2379 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
95 2379 : if (TREE_SIDE_EFFECTS (t)) return false;
96 2371 : if (uniform_integer_cst_p (t))
97 : {
98 2106 : {
99 2106 : {
100 2106 : tree int_cst = uniform_integer_cst_p (t);
101 2106 : tree itype = TREE_TYPE (int_cst);
102 4212 : if ((INTEGRAL_TYPE_P (itype)
103 17 : || POINTER_TYPE_P (itype))
104 4229 : && wi::eq_p (wi::to_wide (int_cst), wi::max_value (itype))
105 : )
106 : {
107 24 : {
108 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 42, __FILE__, __LINE__, false);
109 24 : return true;
110 : }
111 : }
112 : }
113 : }
114 : }
115 : return false;
116 : }
117 :
118 : tree
119 72196 : generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
120 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
121 : const enum tree_code ARG_UNUSED (op))
122 : {
123 72196 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
124 72196 : {
125 72196 : bool wascmp0, wascmp1;
126 72196 : if (bitwise_inverted_equal_p (captures[1], captures[3], wascmp0)
127 1190 : && bitwise_inverted_equal_p (captures[0], captures[2], wascmp1)
128 72200 : && ((!wascmp0 && !wascmp1)
129 0 : || element_precision (type) == 1)
130 : )
131 : {
132 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail76;
133 4 : {
134 4 : tree res_op0;
135 4 : res_op0 = captures[0];
136 4 : tree res_op1;
137 4 : res_op1 = captures[3];
138 4 : tree _r;
139 4 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
140 4 : if (TREE_SIDE_EFFECTS (captures[1]))
141 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
142 4 : if (TREE_SIDE_EFFECTS (captures[2]))
143 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
144 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 53, __FILE__, __LINE__, true);
145 4 : return _r;
146 : }
147 0 : next_after_fail76:;
148 : }
149 : }
150 72192 : return NULL_TREE;
151 : }
152 :
153 : tree
154 1 : generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
155 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
156 : {
157 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
158 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail91;
159 1 : {
160 1 : tree res_op0;
161 1 : res_op0 = captures[0];
162 1 : tree res_op1;
163 1 : res_op1 = captures[1];
164 1 : tree _r;
165 1 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
166 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 64, __FILE__, __LINE__, true);
167 : return _r;
168 : }
169 0 : next_after_fail91:;
170 0 : return NULL_TREE;
171 : }
172 :
173 : tree
174 0 : generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
175 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
176 : const enum tree_code ARG_UNUSED (op))
177 : {
178 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
179 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
180 0 : {
181 0 : tree res_op0;
182 0 : res_op0 = captures[0];
183 0 : tree res_op1;
184 0 : res_op1 = captures[1];
185 0 : tree _r;
186 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
187 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 70, __FILE__, __LINE__, true);
188 : return _r;
189 : }
190 0 : next_after_fail97:;
191 0 : return NULL_TREE;
192 : }
193 :
194 : tree
195 390 : generic_simplify_29 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
196 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
197 : const enum tree_code ARG_UNUSED (op),
198 : const enum tree_code ARG_UNUSED (rop))
199 : {
200 390 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
201 390 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
202 390 : && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
203 : )
204 : {
205 390 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail104;
206 390 : {
207 390 : tree res_op0;
208 390 : {
209 390 : tree _o1[1], _r1;
210 390 : _o1[0] = captures[0];
211 390 : if (TREE_TYPE (_o1[0]) != type)
212 : {
213 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
214 : }
215 : else
216 : _r1 = _o1[0];
217 390 : res_op0 = _r1;
218 : }
219 390 : tree res_op1;
220 390 : {
221 390 : tree _o1[2], _r1;
222 390 : {
223 390 : tree _o2[1], _r2;
224 390 : _o2[0] = captures[1];
225 390 : if (TREE_TYPE (_o2[0]) != type)
226 : {
227 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
228 : }
229 : else
230 : _r2 = _o2[0];
231 390 : _o1[0] = _r2;
232 : }
233 390 : {
234 390 : tree _o2[1], _r2;
235 390 : _o2[0] = captures[2];
236 390 : if (TREE_TYPE (_o2[0]) != type)
237 : {
238 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
239 : }
240 : else
241 : _r2 = _o2[0];
242 390 : _o1[1] = _r2;
243 : }
244 390 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
245 390 : res_op1 = _r1;
246 : }
247 390 : tree _r;
248 390 : _r = fold_build2_loc (loc, rop, type, res_op0, res_op1);
249 390 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 77, __FILE__, __LINE__, true);
250 390 : return _r;
251 : }
252 0 : next_after_fail104:;
253 : }
254 : return NULL_TREE;
255 : }
256 :
257 : tree
258 0 : generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
259 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
260 : const enum tree_code ARG_UNUSED (op))
261 : {
262 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
263 0 : if (INTEGRAL_TYPE_P (type)
264 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
265 : )
266 : {
267 0 : {
268 0 : tree t = type;
269 0 : if (!TYPE_OVERFLOW_WRAPS (t))
270 0 : t = unsigned_type_for (t);
271 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
272 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail117;
273 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail117;
274 0 : {
275 0 : tree res_op0;
276 0 : {
277 0 : tree _o1[2], _r1;
278 0 : {
279 0 : tree _o2[1], _r2;
280 0 : _o2[0] = captures[2];
281 0 : if (TREE_TYPE (_o2[0]) != t)
282 : {
283 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
284 : }
285 : else
286 : _r2 = _o2[0];
287 0 : _o1[0] = _r2;
288 : }
289 0 : _o1[1] = wide_int_to_tree (t, c);
290 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
291 0 : res_op0 = _r1;
292 : }
293 0 : tree _r;
294 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
295 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
296 0 : return _r;
297 : }
298 0 : next_after_fail117:;
299 0 : }
300 : }
301 : return NULL_TREE;
302 : }
303 :
304 : tree
305 534 : generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
306 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
307 : const enum tree_code ARG_UNUSED (op))
308 : {
309 534 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
310 1068 : if (INTEGRAL_TYPE_P (type)
311 532 : && tree_int_cst_sgn (captures[2]) > 0
312 2132 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
313 : )
314 : {
315 6 : {
316 6 : tree t = type;
317 6 : if (!TYPE_OVERFLOW_WRAPS (t))
318 6 : t = unsigned_type_for (t);
319 6 : wide_int wone = wi::one (TYPE_PRECISION (t));
320 6 : wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])), wone);
321 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail125;
322 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail125;
323 6 : {
324 6 : tree res_op0;
325 6 : {
326 6 : tree _o1[2], _r1;
327 6 : {
328 6 : tree _o2[1], _r2;
329 6 : _o2[0] = captures[1];
330 6 : if (TREE_TYPE (_o2[0]) != t)
331 : {
332 6 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
333 : }
334 : else
335 : _r2 = _o2[0];
336 6 : _o1[0] = _r2;
337 : }
338 6 : _o1[1] = wide_int_to_tree (t, c);
339 6 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
340 6 : res_op0 = _r1;
341 : }
342 6 : tree _r;
343 6 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
344 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 93, __FILE__, __LINE__, true);
345 6 : return _r;
346 : }
347 0 : next_after_fail125:;
348 6 : }
349 : }
350 : return NULL_TREE;
351 : }
352 :
353 : tree
354 3025437 : generic_simplify_61 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
355 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
356 : const enum tree_code ARG_UNUSED (inner_op),
357 : const enum tree_code ARG_UNUSED (neg_inner_op),
358 : const enum tree_code ARG_UNUSED (outer_op))
359 : {
360 3025437 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
361 3025437 : if (!TYPE_SATURATING (type)
362 : )
363 : {
364 3025437 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
365 6050628 : && !FIXED_POINT_TYPE_P (type)
366 : )
367 : {
368 3025191 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
369 : )
370 : {
371 2017306 : if (!CONSTANT_CLASS_P (captures[0])
372 : )
373 : {
374 2017299 : if (outer_op == PLUS_EXPR
375 : )
376 : {
377 2017299 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail142;
378 2017299 : {
379 2017299 : tree res_op0;
380 2017299 : {
381 2017299 : tree _o1[1], _r1;
382 2017299 : _o1[0] = captures[0];
383 2017299 : if (TREE_TYPE (_o1[0]) != type)
384 : {
385 843633 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
386 : }
387 : else
388 : _r1 = _o1[0];
389 2017299 : res_op0 = _r1;
390 : }
391 2017299 : tree res_op1;
392 2017299 : {
393 2017299 : tree _o1[2], _r1;
394 2017299 : _o1[0] = captures[2];
395 2017299 : {
396 2017299 : tree _o2[1], _r2;
397 2017299 : _o2[0] = captures[1];
398 2017299 : if (TREE_TYPE (_o2[0]) != type)
399 : {
400 834908 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
401 : }
402 : else
403 : _r2 = _o2[0];
404 2017299 : _o1[1] = _r2;
405 : }
406 2017299 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
407 2017299 : if (EXPR_P (_r1))
408 0 : goto next_after_fail142;
409 2017299 : res_op1 = _r1;
410 : }
411 2017299 : tree _r;
412 2017299 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
413 2017299 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 110, __FILE__, __LINE__, true);
414 2017299 : return _r;
415 : }
416 : next_after_fail142:;
417 : }
418 : else
419 : {
420 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail143;
421 0 : {
422 0 : tree res_op0;
423 0 : {
424 0 : tree _o1[1], _r1;
425 0 : _o1[0] = captures[0];
426 0 : if (TREE_TYPE (_o1[0]) != type)
427 : {
428 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
429 : }
430 : else
431 : _r1 = _o1[0];
432 0 : res_op0 = _r1;
433 : }
434 0 : tree res_op1;
435 0 : {
436 0 : tree _o1[2], _r1;
437 0 : _o1[0] = captures[2];
438 0 : {
439 0 : tree _o2[1], _r2;
440 0 : _o2[0] = captures[1];
441 0 : if (TREE_TYPE (_o2[0]) != type)
442 : {
443 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
444 : }
445 : else
446 : _r2 = _o2[0];
447 0 : _o1[1] = _r2;
448 : }
449 0 : _r1 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
450 0 : if (EXPR_P (_r1))
451 0 : goto next_after_fail143;
452 0 : res_op1 = _r1;
453 : }
454 0 : tree _r;
455 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
456 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 111, __FILE__, __LINE__, true);
457 0 : return _r;
458 : }
459 : next_after_fail143:;
460 : }
461 : }
462 : }
463 : else
464 : {
465 2015770 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
466 2015770 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
467 : )
468 : {
469 217913 : if (outer_op == PLUS_EXPR
470 : )
471 : {
472 217913 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail144;
473 217913 : {
474 217913 : tree res_op0;
475 217913 : {
476 217913 : tree _o1[2], _r1;
477 217913 : _o1[0] = captures[0];
478 217913 : {
479 217913 : tree _o2[2], _r2;
480 217913 : {
481 217913 : tree _o3[1], _r3;
482 217913 : _o3[0] = captures[2];
483 217913 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
484 : {
485 217913 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
486 : }
487 : else
488 : _r3 = _o3[0];
489 217913 : _o2[0] = _r3;
490 : }
491 217913 : _o2[1] = captures[1];
492 217913 : _r2 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
493 217913 : if (EXPR_P (_r2))
494 0 : goto next_after_fail144;
495 217913 : _o1[1] = _r2;
496 : }
497 217913 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
498 217913 : res_op0 = _r1;
499 : }
500 217913 : tree _r;
501 217913 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
502 217913 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 112, __FILE__, __LINE__, true);
503 217913 : return _r;
504 : }
505 : next_after_fail144:;
506 : }
507 : else
508 : {
509 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail145;
510 0 : {
511 0 : tree res_op0;
512 0 : {
513 0 : tree _o1[2], _r1;
514 0 : _o1[0] = captures[0];
515 0 : {
516 0 : tree _o2[2], _r2;
517 0 : {
518 0 : tree _o3[1], _r3;
519 0 : _o3[0] = captures[2];
520 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
521 : {
522 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
523 : }
524 : else
525 : _r3 = _o3[0];
526 0 : _o2[0] = _r3;
527 : }
528 0 : _o2[1] = captures[1];
529 0 : _r2 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
530 0 : if (EXPR_P (_r2))
531 0 : goto next_after_fail145;
532 0 : _o1[1] = _r2;
533 : }
534 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
535 0 : res_op0 = _r1;
536 : }
537 0 : tree _r;
538 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
539 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 113, __FILE__, __LINE__, true);
540 0 : return _r;
541 : }
542 : next_after_fail145:;
543 : }
544 : }
545 : else
546 : {
547 789972 : if (types_match (type, captures[0]) && !TYPE_OVERFLOW_SANITIZED (type)
548 : )
549 : {
550 788793 : {
551 788793 : tree cst = const_binop (outer_op == inner_op
552 : ? PLUS_EXPR : MINUS_EXPR,
553 : type, captures[1], captures[2]);
554 788793 : if (cst
555 : )
556 : {
557 788793 : if (INTEGRAL_TYPE_P (type) && !TREE_OVERFLOW (cst)
558 : )
559 : {
560 788779 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail146;
561 788779 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail146;
562 788779 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail146;
563 788779 : {
564 788779 : tree res_op0;
565 788779 : res_op0 = captures[0];
566 788779 : tree res_op1;
567 788779 : res_op1 = cst;
568 788779 : tree _r;
569 788779 : _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
570 788779 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 114, __FILE__, __LINE__, true);
571 788779 : return _r;
572 : }
573 : next_after_fail146:;
574 : }
575 : else
576 : {
577 28 : if (INTEGRAL_TYPE_P (type)
578 28 : && wi::to_wide (cst) == wi::min_value (type)
579 : )
580 : {
581 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail147;
582 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail147;
583 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail147;
584 7 : {
585 7 : tree res_op0;
586 7 : res_op0 = captures[0];
587 7 : tree res_op1;
588 7 : res_op1 = wide_int_to_tree (type, wi::to_wide (cst));
589 7 : tree _r;
590 7 : _r = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
591 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 115, __FILE__, __LINE__, true);
592 7 : return _r;
593 : }
594 : next_after_fail147:;
595 : }
596 : else
597 : {
598 7 : {
599 7 : tree utype = unsigned_type_for (type);
600 7 : if (utype
601 : )
602 : {
603 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail148;
604 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail148;
605 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail148;
606 7 : {
607 7 : tree res_op0;
608 7 : {
609 7 : tree _o1[2], _r1;
610 7 : {
611 7 : tree _o2[1], _r2;
612 7 : _o2[0] = captures[0];
613 7 : if (TREE_TYPE (_o2[0]) != utype)
614 : {
615 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
616 : }
617 : else
618 : _r2 = _o2[0];
619 7 : _o1[0] = _r2;
620 : }
621 7 : {
622 7 : tree _o2[1], _r2;
623 7 : _o2[0] = TREE_OVERFLOW (cst)
624 7 : ? drop_tree_overflow (cst) : cst;
625 7 : if (TREE_TYPE (_o2[0]) != utype)
626 : {
627 7 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
628 : }
629 : else
630 : _r2 = _o2[0];
631 7 : _o1[1] = _r2;
632 : }
633 7 : _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
634 7 : res_op0 = _r1;
635 : }
636 7 : tree _r;
637 7 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
638 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 116, __FILE__, __LINE__, true);
639 7 : return _r;
640 : }
641 : next_after_fail148:;
642 : }
643 : }
644 : }
645 : }
646 : }
647 : }
648 : }
649 : }
650 : }
651 : }
652 : }
653 : return NULL_TREE;
654 : }
655 :
656 : tree
657 0 : generic_simplify_119 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
658 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
659 : const enum tree_code ARG_UNUSED (op))
660 : {
661 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
662 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail216;
663 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail216;
664 0 : {
665 0 : tree _r;
666 0 : _r = captures[0];
667 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 180, __FILE__, __LINE__, true);
668 : return _r;
669 : }
670 : next_after_fail216:;
671 : return NULL_TREE;
672 : }
673 :
674 : tree
675 253 : generic_simplify_126 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
676 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
677 : const enum tree_code ARG_UNUSED (bitop))
678 : {
679 253 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
680 253 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail223;
681 253 : {
682 253 : tree res_op0;
683 253 : res_op0 = captures[0];
684 253 : tree _r;
685 253 : _r = non_lvalue_loc (loc, res_op0);
686 253 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
687 : return _r;
688 : }
689 0 : next_after_fail223:;
690 0 : return NULL_TREE;
691 : }
692 :
693 : tree
694 0 : generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
695 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
696 : const enum tree_code ARG_UNUSED (op))
697 : {
698 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
699 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
700 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
701 : )
702 : {
703 0 : if (single_use (captures[4]) && single_use (captures[5])
704 : )
705 : {
706 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail232;
707 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail232;
708 0 : {
709 0 : tree res_op0;
710 0 : res_op0 = captures[0];
711 0 : tree res_op1;
712 0 : {
713 0 : tree _o1[1], _r1;
714 0 : _o1[0] = captures[6];
715 0 : if (TREE_TYPE (_o1[0]) != type)
716 : {
717 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
718 : }
719 : else
720 : _r1 = _o1[0];
721 0 : res_op1 = _r1;
722 : }
723 0 : tree _r;
724 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
725 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 192, __FILE__, __LINE__, true);
726 0 : return _r;
727 : }
728 : next_after_fail232:;
729 : }
730 : else
731 : {
732 : if (single_use (captures[0]) && single_use (captures[1])
733 : )
734 : {
735 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail233;
736 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail233;
737 : {
738 : tree res_op0;
739 : {
740 : tree _o1[1], _r1;
741 : _o1[0] = captures[3];
742 : if (TREE_TYPE (_o1[0]) != type)
743 : {
744 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
745 : }
746 : else
747 : _r1 = _o1[0];
748 : res_op0 = _r1;
749 : }
750 : tree res_op1;
751 : res_op1 = captures[4];
752 : tree _r;
753 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
754 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 193, __FILE__, __LINE__, true);
755 : return _r;
756 : }
757 : next_after_fail233:;
758 : }
759 : }
760 : }
761 : return NULL_TREE;
762 : }
763 :
764 : tree
765 0 : generic_simplify_149 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
766 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
767 : const enum tree_code ARG_UNUSED (op))
768 : {
769 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
770 0 : if (bitwise_equal_p (captures[4], captures[7])
771 : )
772 : {
773 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail251;
774 0 : {
775 0 : tree res_op0;
776 0 : {
777 0 : tree _o1[2], _r1;
778 0 : {
779 0 : tree _o2[2], _r2;
780 0 : _o2[0] = captures[5];
781 0 : {
782 0 : tree _o3[1], _r3;
783 0 : _o3[0] = captures[6];
784 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
785 : {
786 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
787 : }
788 : else
789 : _r3 = _o3[0];
790 0 : _o2[1] = _r3;
791 : }
792 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
793 0 : _o1[0] = _r2;
794 : }
795 0 : {
796 0 : tree _o2[1], _r2;
797 0 : _o2[0] = captures[4];
798 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
799 : {
800 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
801 : }
802 : else
803 : _r2 = _o2[0];
804 0 : _o1[1] = _r2;
805 : }
806 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
807 0 : res_op0 = _r1;
808 : }
809 0 : tree _r;
810 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
811 0 : if (TREE_SIDE_EFFECTS (captures[7]))
812 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
813 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
814 0 : return _r;
815 : }
816 0 : next_after_fail251:;
817 : }
818 : return NULL_TREE;
819 : }
820 :
821 : tree
822 0 : generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
823 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
824 : {
825 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
826 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail286;
827 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail286;
828 0 : {
829 0 : tree _r;
830 0 : _r = captures[2];
831 0 : if (TREE_SIDE_EFFECTS (captures[1]))
832 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
833 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 208, __FILE__, __LINE__, true);
834 : return _r;
835 : }
836 : next_after_fail286:;
837 : return NULL_TREE;
838 : }
839 :
840 : tree
841 4 : generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
842 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
843 : {
844 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
845 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail306;
846 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail306;
847 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail306;
848 4 : {
849 4 : tree _r;
850 4 : _r = captures[0];
851 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
852 : return _r;
853 : }
854 : next_after_fail306:;
855 : return NULL_TREE;
856 : }
857 :
858 : tree
859 0 : generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
860 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
861 : {
862 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
863 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail308;
864 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail308;
865 0 : {
866 0 : tree _r;
867 0 : _r = captures[1];
868 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
869 : return _r;
870 : }
871 : next_after_fail308:;
872 : return NULL_TREE;
873 : }
874 :
875 : tree
876 7 : generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
877 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
878 : {
879 7 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
880 7 : if (type_has_mode_precision_p (type)
881 0 : && tree_fits_uhwi_p (captures[1])
882 0 : && tree_fits_uhwi_p (captures[2])
883 0 : && tree_fits_uhwi_p (captures[4])
884 0 : && (((((HOST_WIDE_INT_1U << tree_to_uhwi (captures[1])) - 1)) & tree_to_uhwi (captures[2])) == 0)
885 0 : && (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[4])) == TYPE_PRECISION (type)
886 0 : && TYPE_UNSIGNED (type)
887 7 : && captures[0] == captures[3]
888 : )
889 : {
890 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail312;
891 0 : {
892 0 : tree res_op0;
893 0 : {
894 0 : tree _o1[2], _r1;
895 0 : _o1[0] = captures[0];
896 0 : _o1[1] = captures[4];
897 0 : _r1 = fold_build2_loc (loc, RROTATE_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
898 0 : res_op0 = _r1;
899 : }
900 0 : tree res_op1;
901 0 : res_op1 = captures[2];
902 0 : tree _r;
903 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
904 0 : if (TREE_SIDE_EFFECTS (captures[1]))
905 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
906 0 : if (TREE_SIDE_EFFECTS (captures[3]))
907 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
908 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
909 0 : return _r;
910 : }
911 0 : next_after_fail312:;
912 : }
913 : return NULL_TREE;
914 : }
915 :
916 : tree
917 3643 : generic_simplify_182 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
918 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
919 : {
920 3643 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
921 3643 : if (! FLOAT_TYPE_P (type)
922 7286 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
923 : )
924 : {
925 3642 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail319;
926 3642 : {
927 3642 : tree res_op0;
928 3642 : res_op0 = captures[0];
929 3642 : tree res_op1;
930 3642 : res_op1 = captures[2];
931 3642 : tree _r;
932 3642 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
933 3642 : if (TREE_SIDE_EFFECTS (captures[1]))
934 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
935 3642 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 238, __FILE__, __LINE__, true);
936 3642 : return _r;
937 : }
938 0 : next_after_fail319:;
939 : }
940 : return NULL_TREE;
941 : }
942 :
943 : tree
944 14 : generic_simplify_190 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
945 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
946 : {
947 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
948 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
949 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
950 : )
951 : {
952 14 : {
953 14 : unsigned int shift = tree_to_uhwi (captures[1]);
954 14 : unsigned int prec = TYPE_PRECISION (type);
955 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
956 0 : || tree_int_cst_sgn (captures[2]) >= 0)
957 28 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
958 : )
959 : {
960 6 : {
961 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
962 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail329;
963 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail329;
964 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail329;
965 6 : {
966 6 : tree res_op0;
967 6 : {
968 6 : tree _o1[1], _r1;
969 6 : _o1[0] = captures[0];
970 6 : if (TREE_TYPE (_o1[0]) != type)
971 : {
972 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
973 : }
974 : else
975 : _r1 = _o1[0];
976 6 : res_op0 = _r1;
977 : }
978 6 : tree res_op1;
979 6 : res_op1 = wide_int_to_tree (type, mask << shift);
980 6 : tree _r;
981 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
982 6 : if (TREE_SIDE_EFFECTS (captures[3]))
983 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
984 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 244, __FILE__, __LINE__, true);
985 6 : return _r;
986 : }
987 0 : next_after_fail329:;
988 6 : }
989 : }
990 : }
991 : }
992 : return NULL_TREE;
993 : }
994 :
995 : tree
996 6 : generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
997 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
998 : const combined_fn ARG_UNUSED (LDEXP))
999 : {
1000 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1001 6 : if (flag_unsafe_math_optimizations
1002 : )
1003 : {
1004 6 : {
1005 6 : HOST_WIDE_INT tmp = 0;
1006 6 : if (real_isinteger (&TREE_REAL_CST (captures[0]), &tmp)
1007 6 : && tmp > 0 && pow2p_hwi (tmp)
1008 : )
1009 : {
1010 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail337;
1011 3 : {
1012 3 : tree res_op0;
1013 3 : res_op0 = captures[1];
1014 3 : tree res_op1;
1015 3 : {
1016 3 : tree _o1[2], _r1;
1017 3 : _o1[0] = build_int_cst (integer_type_node,
1018 6 : exact_log2 (tmp));
1019 3 : _o1[1] = captures[2];
1020 3 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1021 3 : res_op1 = _r1;
1022 : }
1023 3 : tree _r;
1024 3 : _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
1025 3 : if (!_r)
1026 0 : goto next_after_fail337;
1027 3 : if (TREE_SIDE_EFFECTS (captures[0]))
1028 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1029 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
1030 3 : return _r;
1031 : }
1032 3 : next_after_fail337:;
1033 : }
1034 : }
1035 : }
1036 : return NULL_TREE;
1037 : }
1038 :
1039 : tree
1040 0 : generic_simplify_208 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1041 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1042 : const enum tree_code ARG_UNUSED (op))
1043 : {
1044 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1045 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail351;
1046 0 : {
1047 0 : tree _r;
1048 0 : _r = constant_boolean_node (op == NE_EXPR ? true : false, type);
1049 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1050 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1051 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 265, __FILE__, __LINE__, true);
1052 : return _r;
1053 : }
1054 0 : next_after_fail351:;
1055 0 : return NULL_TREE;
1056 : }
1057 :
1058 : tree
1059 2444 : generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1060 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1061 : const enum tree_code ARG_UNUSED (cmp))
1062 : {
1063 2444 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1064 4888 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1065 3094 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1066 4020 : && tree_expr_nonzero_p (captures[1])
1067 : )
1068 : {
1069 20 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail356;
1070 20 : {
1071 20 : tree res_op0;
1072 20 : res_op0 = captures[0];
1073 20 : tree res_op1;
1074 20 : res_op1 = captures[2];
1075 20 : tree _r;
1076 20 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1077 20 : if (TREE_SIDE_EFFECTS (captures[1]))
1078 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1079 20 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 270, __FILE__, __LINE__, true);
1080 20 : return _r;
1081 : }
1082 0 : next_after_fail356:;
1083 : }
1084 : return NULL_TREE;
1085 : }
1086 :
1087 : tree
1088 0 : generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1089 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1090 : const enum tree_code ARG_UNUSED (op))
1091 : {
1092 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1093 0 : if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
1094 : )
1095 : {
1096 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail376;
1097 0 : {
1098 0 : tree res_op0;
1099 0 : res_op0 = captures[3];
1100 0 : tree res_op1;
1101 0 : res_op1 = captures[2];
1102 0 : tree _r;
1103 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1104 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1105 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1106 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 290, __FILE__, __LINE__, true);
1107 0 : return _r;
1108 : }
1109 0 : next_after_fail376:;
1110 : }
1111 : return NULL_TREE;
1112 : }
1113 :
1114 : tree
1115 1063 : generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1116 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1117 : const enum tree_code ARG_UNUSED (minmax),
1118 : const enum tree_code ARG_UNUSED (cmp),
1119 : const enum tree_code ARG_UNUSED (out))
1120 : {
1121 1063 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1122 2126 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1123 1208 : && (!VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1124 1 : || (VECTOR_TYPE_P (type)
1125 0 : && (!expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, cmp)
1126 0 : || expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, out))))
1127 : )
1128 : {
1129 144 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail384;
1130 144 : {
1131 144 : tree res_op0;
1132 144 : res_op0 = captures[0];
1133 144 : tree res_op1;
1134 144 : res_op1 = captures[1];
1135 144 : tree _r;
1136 144 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1137 144 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 297, __FILE__, __LINE__, true);
1138 144 : return _r;
1139 : }
1140 0 : next_after_fail384:;
1141 : }
1142 : return NULL_TREE;
1143 : }
1144 :
1145 : tree
1146 671 : generic_simplify_236 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1147 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1148 : const enum tree_code ARG_UNUSED (cmp))
1149 : {
1150 671 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1151 671 : if (tree_fits_shwi_p (captures[3])
1152 671 : && tree_to_shwi (captures[3]) > 0
1153 1328 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1154 : )
1155 : {
1156 657 : {
1157 657 : tree t0 = TREE_TYPE (captures[2]);
1158 657 : unsigned int prec = TYPE_PRECISION (t0);
1159 657 : wide_int c1 = wi::to_wide (captures[3]);
1160 657 : wide_int c2 = wi::to_wide (captures[4]);
1161 657 : wide_int c3 = wi::to_wide (captures[5]);
1162 657 : wide_int sb = wi::set_bit_in_zero (prec - 1, prec);
1163 657 : if ((c2 & c3) != c3
1164 : )
1165 : {
1166 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail397;
1167 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail397;
1168 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail397;
1169 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail397;
1170 0 : {
1171 0 : tree _r;
1172 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1173 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1174 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1175 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 310, __FILE__, __LINE__, true);
1176 0 : return _r;
1177 : }
1178 0 : next_after_fail397:;
1179 : }
1180 : else
1181 : {
1182 657 : if (TYPE_UNSIGNED (t0)
1183 : )
1184 : {
1185 535 : if ((c3 & wi::arshift (sb, c1 - 1)) != 0
1186 : )
1187 : {
1188 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail398;
1189 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail398;
1190 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail398;
1191 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail398;
1192 0 : {
1193 0 : tree _r;
1194 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1195 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1196 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1197 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 311, __FILE__, __LINE__, true);
1198 0 : return _r;
1199 : }
1200 0 : next_after_fail398:;
1201 : }
1202 : else
1203 : {
1204 535 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail399;
1205 535 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail399;
1206 535 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail399;
1207 535 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail399;
1208 535 : {
1209 535 : tree res_op0;
1210 535 : {
1211 535 : tree _o1[2], _r1;
1212 535 : _o1[0] = captures[2];
1213 535 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1214 535 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1215 535 : res_op0 = _r1;
1216 : }
1217 535 : tree res_op1;
1218 535 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1219 535 : tree _r;
1220 535 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1221 535 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 312, __FILE__, __LINE__, true);
1222 535 : return _r;
1223 : }
1224 0 : next_after_fail399:;
1225 : }
1226 : }
1227 : else
1228 : {
1229 122 : {
1230 122 : wide_int smask = wi::arshift (sb, c1);
1231 122 : if ((c2 & smask) == 0
1232 : )
1233 : {
1234 120 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail400;
1235 120 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail400;
1236 120 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail400;
1237 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail400;
1238 120 : {
1239 120 : tree res_op0;
1240 120 : {
1241 120 : tree _o1[2], _r1;
1242 120 : _o1[0] = captures[2];
1243 120 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1244 120 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1245 120 : res_op0 = _r1;
1246 : }
1247 120 : tree res_op1;
1248 120 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1249 120 : tree _r;
1250 120 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1251 120 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 313, __FILE__, __LINE__, true);
1252 120 : return _r;
1253 : }
1254 0 : next_after_fail400:;
1255 : }
1256 : else
1257 : {
1258 2 : if ((c3 & smask) == 0
1259 : )
1260 : {
1261 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail401;
1262 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail401;
1263 2 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail401;
1264 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail401;
1265 2 : {
1266 2 : tree res_op0;
1267 2 : {
1268 2 : tree _o1[2], _r1;
1269 2 : _o1[0] = captures[2];
1270 2 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1271 2 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1272 2 : res_op0 = _r1;
1273 : }
1274 2 : tree res_op1;
1275 2 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1276 2 : tree _r;
1277 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1278 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 314, __FILE__, __LINE__, true);
1279 2 : return _r;
1280 : }
1281 0 : next_after_fail401:;
1282 : }
1283 : else
1284 : {
1285 0 : if ((c2 & smask) != (c3 & smask)
1286 : )
1287 : {
1288 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail402;
1289 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail402;
1290 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail402;
1291 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail402;
1292 0 : {
1293 0 : tree _r;
1294 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1295 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1296 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1297 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 315, __FILE__, __LINE__, true);
1298 0 : return _r;
1299 : }
1300 0 : next_after_fail402:;
1301 : }
1302 : else
1303 : {
1304 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail403;
1305 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail403;
1306 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail403;
1307 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail403;
1308 0 : {
1309 0 : tree res_op0;
1310 0 : {
1311 0 : tree _o1[2], _r1;
1312 0 : _o1[0] = captures[2];
1313 0 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1314 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1315 0 : res_op0 = _r1;
1316 : }
1317 0 : tree res_op1;
1318 0 : res_op1 = wide_int_to_tree (t0, (c3 << c1) | sb);
1319 0 : tree _r;
1320 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1321 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 316, __FILE__, __LINE__, true);
1322 0 : return _r;
1323 : }
1324 0 : next_after_fail403:;
1325 : }
1326 : }
1327 : }
1328 122 : }
1329 : }
1330 : }
1331 657 : }
1332 : }
1333 : return NULL_TREE;
1334 : }
1335 :
1336 : tree
1337 1084229 : generic_simplify_268 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1338 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1339 : const enum tree_code ARG_UNUSED (cmp))
1340 : {
1341 1084229 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1342 1084229 : {
1343 1084229 : poly_int64 off; tree base;
1344 1084229 : tree addr = (TREE_CODE (captures[1]) == SSA_NAME
1345 1084229 : ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[1])) : captures[1]);
1346 1084229 : if (SSA_NAME_IS_DEFAULT_DEF (captures[0])
1347 46753 : && TREE_CODE (SSA_NAME_VAR (captures[0])) == PARM_DECL
1348 46595 : && (base = get_base_address (TREE_OPERAND (addr, 0)))
1349 46595 : && TREE_CODE (base) == VAR_DECL
1350 1087467 : && auto_var_in_fn_p (base, current_function_decl)
1351 : )
1352 : {
1353 0 : if (cmp == NE_EXPR
1354 : )
1355 : {
1356 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail495;
1357 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail495;
1358 0 : {
1359 0 : tree _r;
1360 0 : _r = constant_boolean_node (true, type);
1361 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1362 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1363 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 399, __FILE__, __LINE__, true);
1364 2 : return _r;
1365 : }
1366 1084227 : next_after_fail495:;
1367 : }
1368 : else
1369 : {
1370 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail496;
1371 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail496;
1372 0 : {
1373 0 : tree _r;
1374 0 : _r = constant_boolean_node (false, type);
1375 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1376 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1377 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 400, __FILE__, __LINE__, true);
1378 0 : return _r;
1379 : }
1380 1084227 : next_after_fail496:;
1381 : }
1382 : }
1383 : else
1384 : {
1385 1084229 : if ((base = get_addr_base_and_unit_offset (TREE_OPERAND (addr, 0), &off))
1386 1082884 : && TREE_CODE (base) == MEM_REF
1387 1240930 : && TREE_OPERAND (base, 0) == captures[0]
1388 : )
1389 : {
1390 2 : {
1391 2 : off += mem_ref_offset (base).force_shwi ();
1392 2 : if (known_ne (off, 0)
1393 : )
1394 : {
1395 2 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail497;
1396 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail497;
1397 2 : {
1398 2 : tree _r;
1399 2 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1400 2 : if (TREE_SIDE_EFFECTS (captures[0]))
1401 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1402 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 401, __FILE__, __LINE__, true);
1403 2 : return _r;
1404 : }
1405 1084227 : next_after_fail497:;
1406 : }
1407 : else
1408 : {
1409 0 : if (known_eq (off, 0)
1410 : )
1411 : {
1412 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail498;
1413 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail498;
1414 0 : {
1415 0 : tree _r;
1416 0 : _r = constant_boolean_node (cmp == EQ_EXPR, type);
1417 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1418 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 402, __FILE__, __LINE__, true);
1420 0 : return _r;
1421 : }
1422 1084227 : next_after_fail498:;
1423 : }
1424 : }
1425 : }
1426 : }
1427 : }
1428 : }
1429 1084227 : return NULL_TREE;
1430 : }
1431 :
1432 : tree
1433 4 : generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1434 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1435 : const enum tree_code ARG_UNUSED (cmp),
1436 : const enum tree_code ARG_UNUSED (ncmp))
1437 : {
1438 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1439 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1440 4 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1441 8 : && types_match (captures[0], captures[2])
1442 : )
1443 : {
1444 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail511;
1445 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail511;
1446 4 : {
1447 4 : tree res_op0;
1448 4 : {
1449 4 : tree _o1[2], _r1;
1450 4 : _o1[0] = captures[0];
1451 4 : _o1[1] = captures[2];
1452 4 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1453 4 : res_op0 = _r1;
1454 : }
1455 4 : tree res_op1;
1456 4 : res_op1 = captures[1];
1457 4 : tree _r;
1458 4 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1459 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
1460 4 : return _r;
1461 : }
1462 : next_after_fail511:;
1463 : }
1464 : return NULL_TREE;
1465 : }
1466 :
1467 : tree
1468 1054860 : generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1469 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1470 : const enum tree_code ARG_UNUSED (cmp))
1471 : {
1472 1054860 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1473 1609125 : if (((POINTER_TYPE_P (TREE_TYPE (captures[0]))
1474 502458 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0])))
1475 465393 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1476 9297 : && !(
1477 : 1
1478 9229 : && TREE_CODE (TREE_TYPE (captures[0])) == REFERENCE_TYPE
1479 68 : && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))))
1480 1045643 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1481 552273 : && POINTER_TYPE_P (TREE_TYPE (captures[1]))
1482 2219 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))))
1483 1065808 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
1484 : )
1485 : {
1486 9886 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
1487 9886 : {
1488 9886 : tree res_op0;
1489 9886 : res_op0 = captures[0];
1490 9886 : tree res_op1;
1491 9886 : {
1492 9886 : tree _o1[1], _r1;
1493 9886 : _o1[0] = captures[1];
1494 9886 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1495 : {
1496 9886 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1497 : }
1498 : else
1499 : _r1 = _o1[0];
1500 9886 : res_op1 = _r1;
1501 : }
1502 9886 : tree _r;
1503 9886 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1504 9886 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
1505 9886 : return _r;
1506 : }
1507 0 : next_after_fail531:;
1508 : }
1509 : return NULL_TREE;
1510 : }
1511 :
1512 : tree
1513 591819 : generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1514 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1515 : const enum tree_code ARG_UNUSED (cmp),
1516 : const enum tree_code ARG_UNUSED (rcmp))
1517 : {
1518 591819 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1519 1183638 : if (!TREE_OVERFLOW (captures[0]) && !TREE_OVERFLOW (captures[2])
1520 1183638 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1521 : )
1522 : {
1523 4397 : {
1524 4397 : tree res = int_const_binop (MINUS_EXPR, captures[0], captures[2]);
1525 4397 : if (TREE_OVERFLOW (res)
1526 : )
1527 : {
1528 48 : if (cmp == NE_EXPR
1529 : )
1530 : {
1531 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail540;
1532 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail540;
1533 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail540;
1534 0 : {
1535 0 : tree _r;
1536 0 : _r = constant_boolean_node (true, type);
1537 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1538 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1539 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 434, __FILE__, __LINE__, true);
1540 0 : return _r;
1541 : }
1542 : next_after_fail540:;
1543 : }
1544 : else
1545 : {
1546 48 : if (cmp == EQ_EXPR
1547 : )
1548 : {
1549 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail541;
1550 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail541;
1551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail541;
1552 0 : {
1553 0 : tree _r;
1554 0 : _r = constant_boolean_node (false, type);
1555 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1556 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1557 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 435, __FILE__, __LINE__, true);
1558 0 : return _r;
1559 : }
1560 : next_after_fail541:;
1561 : }
1562 : else
1563 : {
1564 48 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail542;
1565 48 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail542;
1566 48 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail542;
1567 48 : {
1568 48 : tree _r;
1569 48 : bool less = cmp == LE_EXPR || cmp == LT_EXPR;
1570 48 : bool ovf_high = wi::lt_p (wi::to_wide (captures[0]), 0,
1571 48 : TYPE_SIGN (TREE_TYPE (captures[0]))); _r =
1572 48 : constant_boolean_node (less == ovf_high, type);
1573 48 : if (TREE_SIDE_EFFECTS (captures[1]))
1574 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1575 48 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 436, __FILE__, __LINE__, true);
1576 48 : return _r;
1577 : }
1578 : next_after_fail542:;
1579 : }
1580 : }
1581 : }
1582 : else
1583 : {
1584 4349 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail543;
1585 4349 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail543;
1586 4349 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail543;
1587 4349 : {
1588 4349 : tree res_op0;
1589 4349 : res_op0 = captures[1];
1590 4349 : tree res_op1;
1591 4349 : res_op1 = res;
1592 4349 : tree _r;
1593 4349 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1594 4349 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 437, __FILE__, __LINE__, true);
1595 4349 : return _r;
1596 : }
1597 : next_after_fail543:;
1598 : }
1599 : }
1600 : }
1601 : else
1602 : {
1603 587422 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1604 : )
1605 : {
1606 587316 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1607 : )
1608 : {
1609 37455 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail544;
1610 37455 : {
1611 37455 : tree res_op0;
1612 37455 : res_op0 = captures[1];
1613 37455 : tree res_op1;
1614 37455 : {
1615 37455 : tree _o1[2], _r1;
1616 37455 : _o1[0] = captures[0];
1617 37455 : _o1[1] = captures[2];
1618 37455 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1619 37455 : res_op1 = _r1;
1620 : }
1621 37455 : tree _r;
1622 37455 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1623 37455 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 438, __FILE__, __LINE__, true);
1624 37455 : return _r;
1625 : }
1626 0 : next_after_fail544:;
1627 : }
1628 : else
1629 : {
1630 549861 : if (cmp == LE_EXPR || cmp == GT_EXPR
1631 : )
1632 : {
1633 549861 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail545;
1634 549861 : {
1635 549861 : if (! tree_invariant_p (captures[2])) goto next_after_fail545;
1636 549861 : tree res_op0;
1637 549861 : {
1638 549861 : tree _o1[2], _r1;
1639 549861 : _o1[0] = captures[1];
1640 549861 : {
1641 549861 : tree _o2[2], _r2;
1642 549861 : _o2[0] = unshare_expr (captures[2]);
1643 549861 : _o2[1] = captures[0];
1644 549861 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1645 549861 : _o1[1] = _r2;
1646 : }
1647 549861 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1648 549861 : res_op0 = _r1;
1649 : }
1650 549861 : tree res_op1;
1651 549861 : res_op1 = captures[2];
1652 549861 : tree _r;
1653 549861 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1654 549861 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 439, __FILE__, __LINE__, true);
1655 549861 : return _r;
1656 : }
1657 : next_after_fail545:;
1658 : }
1659 : else
1660 : {
1661 0 : if (cmp == LT_EXPR || cmp == GE_EXPR
1662 : )
1663 : {
1664 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail546;
1665 0 : {
1666 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail546;
1667 0 : tree res_op0;
1668 0 : {
1669 0 : tree _o1[2], _r1;
1670 0 : _o1[0] = captures[1];
1671 0 : {
1672 0 : tree _o2[2], _r2;
1673 0 : _o2[0] = unshare_expr (captures[2]);
1674 0 : {
1675 0 : tree _o3[2], _r3;
1676 0 : _o3[0] = captures[0];
1677 0 : _o3[1] = build_one_cst (TREE_TYPE (captures[1]));
1678 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
1679 0 : _o2[1] = _r3;
1680 : }
1681 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1682 0 : _o1[1] = _r2;
1683 : }
1684 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1685 0 : res_op0 = _r1;
1686 : }
1687 0 : tree res_op1;
1688 0 : res_op1 = captures[2];
1689 0 : tree _r;
1690 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1691 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 440, __FILE__, __LINE__, true);
1692 0 : return _r;
1693 : }
1694 : next_after_fail546:;
1695 : }
1696 : }
1697 : }
1698 : }
1699 : else
1700 : {
1701 106 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1702 106 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1703 : )
1704 : {
1705 106 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1706 : )
1707 : {
1708 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail547;
1709 0 : {
1710 0 : tree res_op0;
1711 0 : res_op0 = captures[1];
1712 0 : tree res_op1;
1713 0 : {
1714 0 : tree _o1[2], _r1;
1715 0 : _o1[0] = captures[0];
1716 0 : _o1[1] = captures[2];
1717 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1718 0 : res_op1 = _r1;
1719 : }
1720 0 : tree _r;
1721 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 441, __FILE__, __LINE__, true);
1723 0 : return _r;
1724 : }
1725 0 : next_after_fail547:;
1726 : }
1727 : else
1728 : {
1729 106 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail548;
1730 106 : {
1731 106 : tree res_op0;
1732 106 : {
1733 106 : tree _o1[2], _r1;
1734 106 : _o1[0] = captures[1];
1735 106 : {
1736 106 : tree _o2[2], _r2;
1737 106 : _o2[0] = captures[0];
1738 106 : _o2[1] = build_one_cst (TREE_TYPE (captures[1]));
1739 106 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1740 106 : _o1[1] = _r2;
1741 : }
1742 106 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1743 106 : res_op0 = _r1;
1744 : }
1745 106 : tree res_op1;
1746 106 : {
1747 106 : tree _o1[1], _r1;
1748 106 : _o1[0] = captures[2];
1749 106 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1750 106 : res_op1 = _r1;
1751 : }
1752 106 : tree _r;
1753 106 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1754 106 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 442, __FILE__, __LINE__, true);
1755 106 : return _r;
1756 : }
1757 0 : next_after_fail548:;
1758 : }
1759 : }
1760 : }
1761 : }
1762 : return NULL_TREE;
1763 : }
1764 :
1765 : tree
1766 6 : generic_simplify_332 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1767 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1768 : const combined_fn ARG_UNUSED (SIN),
1769 : const combined_fn ARG_UNUSED (COS),
1770 : const combined_fn ARG_UNUSED (TAN))
1771 : {
1772 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1773 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1774 : )
1775 : {
1776 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail601;
1777 6 : {
1778 6 : tree res_op0;
1779 6 : res_op0 = captures[1];
1780 6 : tree _r;
1781 6 : _r = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
1782 6 : if (!_r)
1783 0 : goto next_after_fail601;
1784 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 493, __FILE__, __LINE__, true);
1785 6 : return _r;
1786 : }
1787 : next_after_fail601:;
1788 : }
1789 : return NULL_TREE;
1790 : }
1791 :
1792 : tree
1793 0 : generic_simplify_340 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1794 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1795 : const enum tree_code ARG_UNUSED (op),
1796 : const combined_fn ARG_UNUSED (bt),
1797 : const combined_fn ARG_UNUSED (bf),
1798 : const combined_fn ARG_UNUSED (floor),
1799 : const combined_fn ARG_UNUSED (ceil))
1800 : {
1801 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1802 0 : if (!HONOR_SIGNED_ZEROS (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
1803 : )
1804 : {
1805 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail609;
1806 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
1807 0 : {
1808 0 : tree res_op0;
1809 0 : {
1810 0 : tree _o1[2], _r1;
1811 0 : _o1[0] = captures[1];
1812 0 : _o1[1] = build_real (type, dconsthalf);
1813 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1814 0 : res_op0 = _r1;
1815 : }
1816 0 : tree _r;
1817 0 : _r = maybe_build_call_expr_loc (loc, floor, type, 1, res_op0);
1818 0 : if (!_r)
1819 0 : goto next_after_fail609;
1820 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 501, __FILE__, __LINE__, true);
1821 0 : return _r;
1822 : }
1823 : next_after_fail609:;
1824 : }
1825 : return NULL_TREE;
1826 : }
1827 :
1828 : tree
1829 0 : generic_simplify_349 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1830 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1831 : const enum tree_code ARG_UNUSED (cmp))
1832 : {
1833 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1834 0 : if (INTEGRAL_TYPE_P (type)
1835 : )
1836 : {
1837 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail624;
1838 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail624;
1839 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail624;
1840 0 : {
1841 0 : tree res_op0;
1842 0 : res_op0 = captures[0];
1843 0 : tree res_op1;
1844 0 : res_op1 = captures[1];
1845 0 : tree _r;
1846 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1847 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 516, __FILE__, __LINE__, true);
1848 0 : return _r;
1849 : }
1850 : next_after_fail624:;
1851 : }
1852 : return NULL_TREE;
1853 : }
1854 :
1855 : tree
1856 0 : generic_simplify_353 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1857 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1858 : const enum tree_code ARG_UNUSED (op))
1859 : {
1860 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1861 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail628;
1862 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail628;
1863 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail628;
1864 0 : {
1865 0 : tree _r;
1866 0 : _r = captures[2];
1867 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 520, __FILE__, __LINE__, true);
1868 : return _r;
1869 : }
1870 : next_after_fail628:;
1871 : return NULL_TREE;
1872 : }
1873 :
1874 : tree
1875 51 : generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1876 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1877 : const enum tree_code ARG_UNUSED (op))
1878 : {
1879 51 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1880 51 : if (bitwise_equal_p (captures[0], captures[2])
1881 1 : && tree_expr_nonzero_p (captures[3])
1882 52 : && expr_no_side_effects_p (captures[2])
1883 : )
1884 : {
1885 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail633;
1886 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail633;
1887 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail633;
1888 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail633;
1889 1 : {
1890 1 : tree _r;
1891 1 : _r = captures[1];
1892 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 525, __FILE__, __LINE__, true);
1893 1 : return _r;
1894 : }
1895 : next_after_fail633:;
1896 : }
1897 : return NULL_TREE;
1898 : }
1899 :
1900 : tree
1901 0 : generic_simplify_366 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1902 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1903 : const enum tree_code ARG_UNUSED (cmp))
1904 : {
1905 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1906 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail642;
1907 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail642;
1908 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail642;
1909 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail642;
1910 0 : {
1911 0 : tree _r;
1912 0 : _r = captures[0];
1913 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
1914 : return _r;
1915 : }
1916 : next_after_fail642:;
1917 : return NULL_TREE;
1918 : }
1919 :
1920 : tree
1921 396 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1922 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1923 : const enum tree_code ARG_UNUSED (op),
1924 : const enum tree_code ARG_UNUSED (neg_op))
1925 : {
1926 396 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1927 396 : if (flag_unsafe_math_optimizations
1928 : )
1929 : {
1930 4 : if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1])
1931 : )
1932 : {
1933 4 : if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0]))
1934 : )
1935 : {
1936 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail652;
1937 2 : {
1938 2 : tree res_op0;
1939 2 : res_op0 = captures[1];
1940 2 : tree res_op1;
1941 2 : res_op1 = captures[2];
1942 2 : tree _r;
1943 2 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1944 2 : if (TREE_SIDE_EFFECTS (captures[0]))
1945 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1946 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 542, __FILE__, __LINE__, true);
1947 2 : return _r;
1948 : }
1949 0 : next_after_fail652:;
1950 : }
1951 : else
1952 : {
1953 2 : if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0)
1954 : )
1955 : {
1956 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail653;
1957 2 : {
1958 2 : tree res_op0;
1959 2 : res_op0 = captures[1];
1960 2 : tree res_op1;
1961 2 : res_op1 = captures[2];
1962 2 : tree _r;
1963 2 : _r = fold_build2_loc (loc, neg_op, type, res_op0, res_op1);
1964 2 : if (TREE_SIDE_EFFECTS (captures[0]))
1965 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1966 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 543, __FILE__, __LINE__, true);
1967 2 : return _r;
1968 : }
1969 0 : next_after_fail653:;
1970 : }
1971 : }
1972 : }
1973 : }
1974 : return NULL_TREE;
1975 : }
1976 :
1977 : tree
1978 0 : generic_simplify_384 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1979 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1980 : const enum tree_code ARG_UNUSED (ltge),
1981 : const enum tree_code ARG_UNUSED (neeq))
1982 : {
1983 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1984 0 : if (!HONOR_NANS (captures[0])
1985 : )
1986 : {
1987 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail665;
1988 0 : {
1989 0 : tree res_op0;
1990 0 : res_op0 = captures[0];
1991 0 : tree res_op1;
1992 0 : res_op1 = captures[1];
1993 0 : tree _r;
1994 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1995 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 555, __FILE__, __LINE__, true);
1996 0 : return _r;
1997 : }
1998 0 : next_after_fail665:;
1999 : }
2000 : return NULL_TREE;
2001 : }
2002 :
2003 : tree
2004 1119294 : generic_simplify_392 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2005 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2006 : const enum tree_code ARG_UNUSED (cmp))
2007 : {
2008 1119294 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2009 2238588 : if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2010 469 : || POINTER_TYPE_P (TREE_TYPE (captures[2]))
2011 94 : || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
2012 2238588 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2013 : )
2014 : {
2015 942554 : {
2016 942554 : tree cst = uniform_integer_cst_p (captures[2]);
2017 942554 : tree arg1_type = TREE_TYPE (cst);
2018 942554 : unsigned int prec = TYPE_PRECISION (arg1_type);
2019 942554 : wide_int max = wi::max_value (arg1_type);
2020 942554 : wide_int signed_max = wi::max_value (prec, SIGNED);
2021 942554 : wide_int min = wi::min_value (arg1_type);
2022 942554 : if (wi::to_wide (cst) == max
2023 : )
2024 : {
2025 671 : if (cmp == GT_EXPR
2026 : )
2027 : {
2028 449 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail675;
2029 449 : {
2030 449 : tree _r;
2031 449 : _r = constant_boolean_node (false, type);
2032 449 : if (TREE_SIDE_EFFECTS (captures[1]))
2033 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2034 449 : if (TREE_SIDE_EFFECTS (captures[2]))
2035 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2036 449 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 565, __FILE__, __LINE__, true);
2037 449 : return _r;
2038 : }
2039 0 : next_after_fail675:;
2040 : }
2041 : else
2042 : {
2043 222 : if (cmp == GE_EXPR
2044 : )
2045 : {
2046 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail676;
2047 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail676;
2048 0 : {
2049 0 : tree res_op0;
2050 0 : res_op0 = captures[0];
2051 0 : tree res_op1;
2052 0 : res_op1 = captures[2];
2053 0 : tree _r;
2054 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2055 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
2056 0 : return _r;
2057 : }
2058 879465 : next_after_fail676:;
2059 : }
2060 : else
2061 : {
2062 222 : if (cmp == LE_EXPR
2063 : )
2064 : {
2065 222 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail677;
2066 222 : {
2067 222 : tree _r;
2068 222 : _r = constant_boolean_node (true, type);
2069 222 : if (TREE_SIDE_EFFECTS (captures[1]))
2070 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2071 222 : if (TREE_SIDE_EFFECTS (captures[2]))
2072 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2073 222 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2074 222 : return _r;
2075 : }
2076 0 : next_after_fail677:;
2077 : }
2078 : else
2079 : {
2080 0 : if (cmp == LT_EXPR
2081 : )
2082 : {
2083 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail678;
2084 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail678;
2085 0 : {
2086 0 : tree res_op0;
2087 0 : res_op0 = captures[0];
2088 0 : tree res_op1;
2089 0 : res_op1 = captures[2];
2090 0 : tree _r;
2091 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2092 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2093 0 : return _r;
2094 : }
2095 879465 : next_after_fail678:;
2096 : }
2097 : }
2098 : }
2099 : }
2100 : }
2101 : else
2102 : {
2103 941883 : if (wi::to_wide (cst) == min
2104 : )
2105 : {
2106 57419 : if (cmp == LT_EXPR
2107 : )
2108 : {
2109 2816 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail679;
2110 2816 : {
2111 2816 : tree _r;
2112 2816 : _r = constant_boolean_node (false, type);
2113 2816 : if (TREE_SIDE_EFFECTS (captures[1]))
2114 6 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2115 2816 : if (TREE_SIDE_EFFECTS (captures[2]))
2116 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2117 2816 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
2118 2816 : return _r;
2119 : }
2120 0 : next_after_fail679:;
2121 : }
2122 : else
2123 : {
2124 54603 : if (cmp == LE_EXPR
2125 : )
2126 : {
2127 15148 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail680;
2128 14030 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail680;
2129 14030 : {
2130 14030 : tree res_op0;
2131 14030 : res_op0 = captures[0];
2132 14030 : tree res_op1;
2133 14030 : res_op1 = captures[2];
2134 14030 : tree _r;
2135 14030 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2136 14030 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
2137 14030 : return _r;
2138 : }
2139 879465 : next_after_fail680:;
2140 : }
2141 : else
2142 : {
2143 39455 : if (cmp == GE_EXPR
2144 : )
2145 : {
2146 8435 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail681;
2147 8435 : {
2148 8435 : tree _r;
2149 8435 : _r = constant_boolean_node (true, type);
2150 8435 : if (TREE_SIDE_EFFECTS (captures[1]))
2151 51 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2152 8435 : if (TREE_SIDE_EFFECTS (captures[2]))
2153 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2154 8435 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
2155 8435 : return _r;
2156 : }
2157 0 : next_after_fail681:;
2158 : }
2159 : else
2160 : {
2161 31020 : if (cmp == GT_EXPR
2162 : )
2163 : {
2164 31020 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail682;
2165 25430 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail682;
2166 25430 : {
2167 25430 : tree res_op0;
2168 25430 : res_op0 = captures[0];
2169 25430 : tree res_op1;
2170 25430 : res_op1 = captures[2];
2171 25430 : tree _r;
2172 25430 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2173 25430 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
2174 25430 : return _r;
2175 : }
2176 879465 : next_after_fail682:;
2177 : }
2178 : }
2179 : }
2180 : }
2181 : }
2182 : else
2183 : {
2184 884464 : if (wi::to_wide (cst) == max - 1
2185 : )
2186 : {
2187 6683 : if (cmp == GT_EXPR
2188 : )
2189 : {
2190 1404 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail683;
2191 1404 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail683;
2192 1404 : {
2193 1404 : tree res_op0;
2194 1404 : res_op0 = captures[0];
2195 1404 : tree res_op1;
2196 1404 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2197 1404 : wide_int_to_tree (TREE_TYPE (cst),
2198 1404 : wi::to_wide (cst)
2199 2808 : + 1));
2200 1404 : tree _r;
2201 1404 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2202 1404 : if (TREE_SIDE_EFFECTS (captures[2]))
2203 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2204 1404 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
2205 1404 : return _r;
2206 : }
2207 879465 : next_after_fail683:;
2208 : }
2209 : else
2210 : {
2211 5279 : if (cmp == LE_EXPR
2212 : )
2213 : {
2214 5279 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail684;
2215 5279 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
2216 5279 : {
2217 5279 : tree res_op0;
2218 5279 : res_op0 = captures[0];
2219 5279 : tree res_op1;
2220 5279 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2221 5279 : wide_int_to_tree (TREE_TYPE (cst),
2222 5279 : wi::to_wide (cst)
2223 10558 : + 1));
2224 5279 : tree _r;
2225 5279 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2226 5279 : if (TREE_SIDE_EFFECTS (captures[2]))
2227 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2228 5279 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
2229 5279 : return _r;
2230 : }
2231 879465 : next_after_fail684:;
2232 : }
2233 : }
2234 : }
2235 : else
2236 : {
2237 877781 : if (wi::to_wide (cst) == min + 1
2238 : )
2239 : {
2240 54606 : if (cmp == GE_EXPR
2241 : )
2242 : {
2243 1805 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail685;
2244 1805 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
2245 1805 : {
2246 1805 : tree res_op0;
2247 1805 : res_op0 = captures[0];
2248 1805 : tree res_op1;
2249 1805 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2250 1805 : wide_int_to_tree (TREE_TYPE (cst),
2251 1805 : wi::to_wide (cst)
2252 3610 : - 1));
2253 1805 : tree _r;
2254 1805 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2255 1805 : if (TREE_SIDE_EFFECTS (captures[2]))
2256 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2257 1805 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
2258 1805 : return _r;
2259 : }
2260 879465 : next_after_fail685:;
2261 : }
2262 : else
2263 : {
2264 52801 : if (cmp == LT_EXPR
2265 : )
2266 : {
2267 334 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail686;
2268 334 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail686;
2269 334 : {
2270 334 : tree res_op0;
2271 334 : res_op0 = captures[0];
2272 334 : tree res_op1;
2273 334 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2274 334 : wide_int_to_tree (TREE_TYPE (cst),
2275 334 : wi::to_wide (cst)
2276 668 : - 1));
2277 334 : tree _r;
2278 334 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2279 334 : if (TREE_SIDE_EFFECTS (captures[2]))
2280 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2281 334 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
2282 334 : return _r;
2283 : }
2284 879465 : next_after_fail686:;
2285 : }
2286 : }
2287 : }
2288 : else
2289 : {
2290 823175 : if (wi::to_wide (cst) == signed_max
2291 2885 : && TYPE_UNSIGNED (arg1_type)
2292 2885 : && TYPE_MODE (arg1_type) != BLKmode
2293 823175 : && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
2294 826060 : && INTEGRAL_TYPE_P (arg1_type)
2295 : )
2296 : {
2297 2885 : if (cmp == LE_EXPR || cmp == GT_EXPR
2298 : )
2299 : {
2300 2885 : {
2301 2885 : tree st = signed_type_for (TREE_TYPE (captures[2]));
2302 2885 : if (cst == captures[2] && cmp == LE_EXPR
2303 : )
2304 : {
2305 2848 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail687;
2306 2848 : {
2307 2848 : tree res_op0;
2308 2848 : {
2309 2848 : tree _o1[1], _r1;
2310 2848 : _o1[0] = captures[1];
2311 2848 : if (TREE_TYPE (_o1[0]) != st)
2312 : {
2313 2844 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2314 : }
2315 : else
2316 : _r1 = _o1[0];
2317 2848 : res_op0 = _r1;
2318 : }
2319 2848 : tree res_op1;
2320 2848 : res_op1 = build_zero_cst (st);
2321 2848 : tree _r;
2322 2848 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2323 2848 : if (TREE_SIDE_EFFECTS (captures[2]))
2324 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2325 2848 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
2326 2848 : return _r;
2327 : }
2328 0 : next_after_fail687:;
2329 0 : }
2330 : else
2331 : {
2332 37 : if (cst == captures[2] && cmp == GT_EXPR
2333 : )
2334 : {
2335 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
2336 37 : {
2337 37 : tree res_op0;
2338 37 : {
2339 37 : tree _o1[1], _r1;
2340 37 : _o1[0] = captures[1];
2341 37 : if (TREE_TYPE (_o1[0]) != st)
2342 : {
2343 37 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2344 : }
2345 : else
2346 : _r1 = _o1[0];
2347 37 : res_op0 = _r1;
2348 : }
2349 37 : tree res_op1;
2350 37 : res_op1 = build_zero_cst (st);
2351 37 : tree _r;
2352 37 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2353 37 : if (TREE_SIDE_EFFECTS (captures[2]))
2354 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2355 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 578, __FILE__, __LINE__, true);
2356 37 : return _r;
2357 : }
2358 0 : next_after_fail688:;
2359 0 : }
2360 : else
2361 : {
2362 0 : if (cmp == LE_EXPR
2363 : )
2364 : {
2365 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
2366 0 : {
2367 0 : tree res_op0;
2368 0 : {
2369 0 : tree _o1[1], _r1;
2370 0 : _o1[0] = captures[1];
2371 0 : if (TREE_TYPE (_o1[0]) != st)
2372 : {
2373 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2374 : }
2375 : else
2376 : _r1 = _o1[0];
2377 0 : res_op0 = _r1;
2378 : }
2379 0 : tree res_op1;
2380 0 : res_op1 = build_zero_cst (st);
2381 0 : tree _r;
2382 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2383 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2384 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2385 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
2386 0 : return _r;
2387 : }
2388 0 : next_after_fail689:;
2389 : }
2390 : else
2391 : {
2392 0 : if (cmp == GT_EXPR
2393 : )
2394 : {
2395 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
2396 0 : {
2397 0 : tree res_op0;
2398 0 : {
2399 0 : tree _o1[1], _r1;
2400 0 : _o1[0] = captures[1];
2401 0 : if (TREE_TYPE (_o1[0]) != st)
2402 : {
2403 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2404 : }
2405 : else
2406 : _r1 = _o1[0];
2407 0 : res_op0 = _r1;
2408 : }
2409 0 : tree res_op1;
2410 0 : res_op1 = build_zero_cst (st);
2411 0 : tree _r;
2412 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2413 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2414 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2415 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 580, __FILE__, __LINE__, true);
2416 0 : return _r;
2417 : }
2418 0 : next_after_fail690:;
2419 : }
2420 : }
2421 : }
2422 : }
2423 : }
2424 : }
2425 : }
2426 : }
2427 : }
2428 : }
2429 : }
2430 942554 : }
2431 : }
2432 : return NULL_TREE;
2433 : }
2434 :
2435 : tree
2436 2 : generic_simplify_454 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2437 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2438 : {
2439 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2440 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail799;
2441 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail799;
2442 2 : {
2443 2 : tree res_op0;
2444 2 : res_op0 = captures[0];
2445 2 : tree res_op1;
2446 2 : {
2447 2 : tree _o1[1], _r1;
2448 2 : _o1[0] = captures[5];
2449 2 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2450 2 : res_op1 = _r1;
2451 : }
2452 2 : tree _r;
2453 2 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2454 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 654, __FILE__, __LINE__, true);
2455 : return _r;
2456 : }
2457 : next_after_fail799:;
2458 : return NULL_TREE;
2459 : }
2460 :
2461 : tree
2462 65 : generic_simplify_460 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2463 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2464 : {
2465 65 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2466 65 : if (INTEGRAL_TYPE_P (type)
2467 65 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2468 65 : && TREE_CODE (TREE_TYPE (captures[0])) != BOOLEAN_TYPE
2469 130 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2470 19 : || TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])))
2471 : )
2472 : {
2473 65 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail805;
2474 65 : {
2475 65 : tree res_op0;
2476 65 : {
2477 65 : tree _o1[1], _r1;
2478 65 : _o1[0] = captures[0];
2479 65 : if (TREE_TYPE (_o1[0]) != type)
2480 : {
2481 20 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2482 : }
2483 : else
2484 : _r1 = _o1[0];
2485 65 : res_op0 = _r1;
2486 : }
2487 65 : tree res_op1;
2488 65 : res_op1 = captures[1];
2489 65 : tree _r;
2490 65 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2491 65 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 659, __FILE__, __LINE__, true);
2492 65 : return _r;
2493 : }
2494 0 : next_after_fail805:;
2495 : }
2496 : return NULL_TREE;
2497 : }
2498 :
2499 : tree
2500 5279214 : generic_simplify_468 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2501 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2502 : {
2503 5279214 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2504 10377060 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
2505 5279234 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2506 : )
2507 : {
2508 181388 : {
2509 181388 : unsigned int align;
2510 181388 : unsigned HOST_WIDE_INT bitpos;
2511 181388 : get_pointer_alignment_1 (captures[0], &align, &bitpos);
2512 181388 : if (wi::ltu_p (wi::to_wide (captures[1]), align / BITS_PER_UNIT)
2513 : )
2514 : {
2515 5451 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail813;
2516 5451 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail813;
2517 5451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail813;
2518 5451 : {
2519 5451 : tree _r;
2520 10902 : _r = wide_int_to_tree (type, (wi::to_wide (captures[1])
2521 10902 : & (bitpos / BITS_PER_UNIT)));
2522 5451 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 666, __FILE__, __LINE__, true);
2523 5451 : return _r;
2524 : }
2525 175937 : next_after_fail813:;
2526 : }
2527 : }
2528 : }
2529 : return NULL_TREE;
2530 : }
2531 :
2532 : tree
2533 0 : generic_simplify_478 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2534 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2535 : const enum tree_code ARG_UNUSED (code2),
2536 : const enum tree_code ARG_UNUSED (code1))
2537 : {
2538 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2539 0 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2540 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2541 0 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2542 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2543 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2544 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2545 0 : && bitwise_equal_p (captures[2], captures[5]))
2546 : )
2547 : {
2548 0 : {
2549 0 : bool one_before = false;
2550 0 : bool one_after = false;
2551 0 : int cmp = 0;
2552 0 : bool allbits = true;
2553 0 : if (TREE_CODE (captures[2]) == INTEGER_CST
2554 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2555 : {
2556 0 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2557 0 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2558 0 : auto t2 = wi::to_wide (captures[5]);
2559 0 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2560 0 : if (cmp < 0
2561 0 : && t1 == t2 - 1)
2562 : one_before = true;
2563 0 : if (cmp > 0
2564 0 : && t1 == t2 + 1)
2565 : one_after = true;
2566 : }
2567 0 : bool val;
2568 0 : switch (code2)
2569 : {
2570 0 : case EQ_EXPR: val = (cmp == 0); break;
2571 0 : case NE_EXPR: val = (cmp != 0); break;
2572 0 : case LT_EXPR: val = (cmp < 0); break;
2573 0 : case GT_EXPR: val = (cmp > 0); break;
2574 0 : case LE_EXPR: val = (cmp <= 0); break;
2575 0 : case GE_EXPR: val = (cmp >= 0); break;
2576 0 : default: gcc_unreachable ();
2577 : }
2578 0 : if (code1 == EQ_EXPR && val
2579 : )
2580 : {
2581 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail845;
2582 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail845;
2583 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail845;
2584 0 : {
2585 0 : tree _r;
2586 0 : _r = captures[0];
2587 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2588 0 : return _r;
2589 : }
2590 : next_after_fail845:;
2591 : }
2592 : else
2593 : {
2594 0 : if (code1 == EQ_EXPR && !val
2595 : )
2596 : {
2597 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail846;
2598 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail846;
2599 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail846;
2600 0 : {
2601 0 : tree _r;
2602 0 : _r = constant_boolean_node (false, type);
2603 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2604 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2605 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2606 0 : return _r;
2607 : }
2608 : next_after_fail846:;
2609 : }
2610 : else
2611 : {
2612 0 : if (code1 == NE_EXPR && !val && allbits
2613 : )
2614 : {
2615 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail847;
2616 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail847;
2617 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail847;
2618 0 : {
2619 0 : tree _r;
2620 0 : _r = captures[3];
2621 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2622 0 : return _r;
2623 : }
2624 : next_after_fail847:;
2625 : }
2626 : else
2627 : {
2628 0 : if ((code1 == NE_EXPR
2629 0 : && code2 == GE_EXPR
2630 0 : && cmp == 0
2631 0 : && allbits)
2632 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2633 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2634 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2635 : )
2636 : {
2637 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail848;
2638 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail848;
2639 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail848;
2640 0 : {
2641 0 : tree res_op0;
2642 0 : res_op0 = captures[4];
2643 0 : tree res_op1;
2644 0 : {
2645 0 : tree _o1[1], _r1;
2646 0 : _o1[0] = captures[2];
2647 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2648 : {
2649 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2650 : }
2651 : else
2652 : _r1 = _o1[0];
2653 0 : res_op1 = _r1;
2654 : }
2655 0 : tree _r;
2656 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2657 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2658 0 : return _r;
2659 : }
2660 : next_after_fail848:;
2661 : }
2662 : else
2663 : {
2664 0 : if ((code1 == NE_EXPR
2665 0 : && code2 == LE_EXPR
2666 0 : && cmp == 0
2667 0 : && allbits)
2668 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2669 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2670 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2671 : )
2672 : {
2673 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail849;
2674 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail849;
2675 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail849;
2676 0 : {
2677 0 : tree res_op0;
2678 0 : res_op0 = captures[4];
2679 0 : tree res_op1;
2680 0 : {
2681 0 : tree _o1[1], _r1;
2682 0 : _o1[0] = captures[2];
2683 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2684 : {
2685 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2686 : }
2687 : else
2688 : _r1 = _o1[0];
2689 0 : res_op1 = _r1;
2690 : }
2691 0 : tree _r;
2692 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2693 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
2694 0 : return _r;
2695 : }
2696 : next_after_fail849:;
2697 : }
2698 : else
2699 : {
2700 0 : if ((code1 == NE_EXPR
2701 0 : && code2 == GT_EXPR
2702 : && one_after
2703 0 : && allbits)
2704 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2705 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2706 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2707 : )
2708 : {
2709 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail850;
2710 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail850;
2711 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail850;
2712 0 : {
2713 0 : tree res_op0;
2714 0 : res_op0 = captures[4];
2715 0 : tree res_op1;
2716 0 : {
2717 0 : tree _o1[1], _r1;
2718 0 : _o1[0] = captures[2];
2719 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2720 : {
2721 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2722 : }
2723 : else
2724 : _r1 = _o1[0];
2725 0 : res_op1 = _r1;
2726 : }
2727 0 : tree _r;
2728 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2729 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
2730 0 : return _r;
2731 : }
2732 : next_after_fail850:;
2733 : }
2734 : else
2735 : {
2736 0 : if ((code1 == NE_EXPR
2737 0 : && code2 == LT_EXPR
2738 : && one_before
2739 0 : && allbits)
2740 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2741 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2742 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2743 : )
2744 : {
2745 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail851;
2746 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail851;
2747 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail851;
2748 0 : {
2749 0 : tree res_op0;
2750 0 : res_op0 = captures[4];
2751 0 : tree res_op1;
2752 0 : {
2753 0 : tree _o1[1], _r1;
2754 0 : _o1[0] = captures[2];
2755 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2756 : {
2757 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2758 : }
2759 : else
2760 : _r1 = _o1[0];
2761 0 : res_op1 = _r1;
2762 : }
2763 0 : tree _r;
2764 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2765 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
2766 0 : return _r;
2767 : }
2768 : next_after_fail851:;
2769 : }
2770 : }
2771 : }
2772 : }
2773 : }
2774 : }
2775 : }
2776 : }
2777 : }
2778 : return NULL_TREE;
2779 : }
2780 :
2781 : tree
2782 0 : generic_simplify_507 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2783 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2784 : const enum tree_code ARG_UNUSED (minmax),
2785 : const enum tree_code ARG_UNUSED (maxmin))
2786 : {
2787 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2788 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail896;
2789 0 : {
2790 0 : tree res_op0;
2791 0 : res_op0 = captures[1];
2792 0 : tree res_op1;
2793 0 : {
2794 0 : tree _o1[1], _r1;
2795 0 : _o1[0] = captures[2];
2796 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2797 0 : res_op1 = _r1;
2798 : }
2799 0 : tree _r;
2800 0 : _r = fold_build2_loc (loc, maxmin, type, res_op0, res_op1);
2801 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
2802 : return _r;
2803 : }
2804 0 : next_after_fail896:;
2805 0 : return NULL_TREE;
2806 : }
2807 :
2808 : tree
2809 1847 : generic_simplify_514 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2810 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2811 : {
2812 1847 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2813 1847 : if (! TYPE_UNSIGNED (type)
2814 1433 : && ! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2815 1847 : && single_use (captures[0])
2816 : )
2817 : {
2818 1433 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
2819 1433 : {
2820 1433 : tree res_op0;
2821 1433 : res_op0 = captures[1];
2822 1433 : tree res_op1;
2823 1433 : {
2824 1433 : tree _o1[1], _r1;
2825 1433 : _o1[0] = captures[2];
2826 1433 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2827 1433 : res_op1 = _r1;
2828 : }
2829 1433 : tree _r;
2830 1433 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2831 1433 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 717, __FILE__, __LINE__, true);
2832 1433 : return _r;
2833 : }
2834 0 : next_after_fail904:;
2835 : }
2836 : return NULL_TREE;
2837 : }
2838 :
2839 : tree
2840 0 : generic_simplify_523 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2841 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2842 : const enum tree_code ARG_UNUSED (minmax))
2843 : {
2844 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2845 0 : if (INTEGRAL_TYPE_P (type)
2846 0 : && TYPE_OVERFLOW_UNDEFINED (type)
2847 0 : && !TYPE_OVERFLOW_SANITIZED (type)
2848 : )
2849 : {
2850 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail914;
2851 0 : {
2852 0 : tree res_op0;
2853 0 : {
2854 0 : tree _o1[2], _r1;
2855 0 : _o1[0] = captures[1];
2856 0 : _o1[1] = captures[4];
2857 0 : _r1 = fold_build2_loc (loc, minmax, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2858 0 : res_op0 = _r1;
2859 : }
2860 0 : tree res_op1;
2861 0 : res_op1 = captures[2];
2862 0 : tree _r;
2863 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2864 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 726, __FILE__, __LINE__, true);
2865 0 : return _r;
2866 : }
2867 0 : next_after_fail914:;
2868 : }
2869 : return NULL_TREE;
2870 : }
2871 :
2872 : tree
2873 2 : generic_simplify_532 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2874 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2875 : {
2876 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2877 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail937;
2878 2 : {
2879 2 : tree _r;
2880 2 : _r = captures[1];
2881 2 : if (TREE_SIDE_EFFECTS (captures[0]))
2882 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2883 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
2884 : return _r;
2885 : }
2886 0 : next_after_fail937:;
2887 0 : return NULL_TREE;
2888 : }
2889 :
2890 : tree
2891 0 : generic_simplify_536 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2892 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2893 : const combined_fn ARG_UNUSED (FMIN_ALL))
2894 : {
2895 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2896 0 : if (flag_finite_math_only
2897 : )
2898 : {
2899 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail941;
2900 0 : {
2901 0 : tree res_op0;
2902 0 : res_op0 = captures[0];
2903 0 : tree res_op1;
2904 0 : res_op1 = captures[1];
2905 0 : tree _r;
2906 0 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
2907 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
2908 0 : return _r;
2909 : }
2910 0 : next_after_fail941:;
2911 : }
2912 : return NULL_TREE;
2913 : }
2914 :
2915 : tree
2916 0 : generic_simplify_542 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2917 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2918 : const enum tree_code ARG_UNUSED (cmp))
2919 : {
2920 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2921 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail947;
2922 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail947;
2923 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail947;
2924 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail947;
2925 0 : {
2926 0 : tree _r;
2927 0 : _r = captures[0];
2928 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
2929 : return _r;
2930 : }
2931 : next_after_fail947:;
2932 : return NULL_TREE;
2933 : }
2934 :
2935 : tree
2936 0 : generic_simplify_552 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2937 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2938 : const combined_fn ARG_UNUSED (cond_op))
2939 : {
2940 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2941 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail957;
2942 0 : {
2943 0 : tree res_op0;
2944 0 : {
2945 0 : tree _o1[2], _r1;
2946 0 : _o1[0] = captures[2];
2947 0 : _o1[1] = captures[0];
2948 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2949 0 : res_op0 = _r1;
2950 : }
2951 0 : tree res_op1;
2952 0 : res_op1 = captures[3];
2953 0 : tree res_op2;
2954 0 : res_op2 = captures[4];
2955 0 : tree res_op3;
2956 0 : res_op3 = captures[5];
2957 0 : tree res_op4;
2958 0 : res_op4 = captures[6];
2959 0 : tree _r;
2960 0 : _r = maybe_build_call_expr_loc (loc, cond_op, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
2961 0 : if (!_r)
2962 0 : goto next_after_fail957;
2963 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 752, __FILE__, __LINE__, true);
2964 : return _r;
2965 : }
2966 : next_after_fail957:;
2967 : return NULL_TREE;
2968 : }
2969 :
2970 : tree
2971 0 : generic_simplify_558 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2972 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2973 : const combined_fn ARG_UNUSED (bswap))
2974 : {
2975 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2976 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail966;
2977 0 : {
2978 0 : tree res_op0;
2979 0 : res_op0 = captures[0];
2980 0 : tree _r;
2981 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2982 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 761, __FILE__, __LINE__, true);
2983 : return _r;
2984 : }
2985 0 : next_after_fail966:;
2986 0 : return NULL_TREE;
2987 : }
2988 :
2989 : tree
2990 0 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2991 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2992 : const combined_fn ARG_UNUSED (logs))
2993 : {
2994 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2995 0 : if (flag_unsafe_math_optimizations
2996 : )
2997 : {
2998 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2999 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
3000 0 : && ! flag_trapping_math
3001 0 : && ! flag_errno_math
3002 : )
3003 : {
3004 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail973;
3005 0 : {
3006 0 : tree res_op0;
3007 0 : {
3008 0 : tree _o1[1], _r1;
3009 0 : _o1[0] = captures[2];
3010 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
3011 0 : if (!_r1)
3012 0 : goto next_after_fail973;
3013 0 : res_op0 = _r1;
3014 : }
3015 0 : tree _r;
3016 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
3017 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3018 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3019 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 768, __FILE__, __LINE__, true);
3020 0 : return _r;
3021 : }
3022 : next_after_fail973:;
3023 : }
3024 : }
3025 : return NULL_TREE;
3026 : }
3027 :
3028 : tree
3029 0 : generic_simplify_574 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3030 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3031 : const combined_fn ARG_UNUSED (froms),
3032 : const combined_fn ARG_UNUSED (tos))
3033 : {
3034 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3035 0 : if (optimize && canonicalize_math_p ()
3036 : )
3037 : {
3038 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail982;
3039 0 : {
3040 0 : tree res_op0;
3041 0 : {
3042 0 : tree _o1[1], _r1;
3043 0 : _o1[0] = captures[0];
3044 0 : _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
3045 0 : if (!_r1)
3046 0 : goto next_after_fail982;
3047 0 : res_op0 = _r1;
3048 : }
3049 0 : tree _r;
3050 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3051 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 777, __FILE__, __LINE__, true);
3052 0 : return _r;
3053 : }
3054 : next_after_fail982:;
3055 : }
3056 : return NULL_TREE;
3057 : }
3058 :
3059 : tree
3060 0 : generic_simplify_583 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3061 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3062 : const combined_fn ARG_UNUSED (ifn),
3063 : const combined_fn ARG_UNUSED (lfn),
3064 : const combined_fn ARG_UNUSED (llfn))
3065 : {
3066 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3067 0 : if (canonicalize_math_p ()
3068 : )
3069 : {
3070 0 : if (TYPE_PRECISION (long_long_integer_type_node)
3071 0 : == TYPE_PRECISION (long_integer_type_node)
3072 : )
3073 : {
3074 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail991;
3075 0 : {
3076 0 : tree res_op0;
3077 0 : res_op0 = captures[0];
3078 0 : tree _r;
3079 0 : _r = maybe_build_call_expr_loc (loc, lfn, type, 1, res_op0);
3080 0 : if (!_r)
3081 0 : goto next_after_fail991;
3082 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 786, __FILE__, __LINE__, true);
3083 0 : return _r;
3084 : }
3085 : next_after_fail991:;
3086 : }
3087 : }
3088 : return NULL_TREE;
3089 : }
3090 :
3091 : tree
3092 0 : generic_simplify_594 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3093 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3094 : {
3095 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3096 0 : if (canonicalize_math_after_vectorization_p ()
3097 : )
3098 : {
3099 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1002;
3100 : {
3101 : tree res_op0;
3102 : res_op0 = captures[0];
3103 : tree res_op1;
3104 : res_op1 = captures[1];
3105 : tree res_op2;
3106 : res_op2 = captures[2];
3107 : tree _r;
3108 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3109 : if (!_r)
3110 : goto next_after_fail1002;
3111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
3112 : return _r;
3113 : }
3114 0 : next_after_fail1002:;
3115 : }
3116 0 : return NULL_TREE;
3117 : }
3118 :
3119 : tree
3120 0 : generic_simplify_604 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3121 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3122 : const combined_fn ARG_UNUSED (ctz))
3123 : {
3124 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3125 0 : {
3126 0 : tree t = TREE_TYPE (captures[0]);
3127 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1012;
3128 0 : {
3129 0 : tree res_op0;
3130 0 : {
3131 0 : tree _o1[1], _r1;
3132 0 : _o1[0] = captures[1];
3133 0 : if (TREE_TYPE (_o1[0]) != t)
3134 : {
3135 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3136 : }
3137 : else
3138 : _r1 = _o1[0];
3139 0 : res_op0 = _r1;
3140 : }
3141 0 : tree _r;
3142 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3143 0 : if (!_r)
3144 0 : goto next_after_fail1012;
3145 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
3146 : return _r;
3147 : }
3148 : next_after_fail1012:;
3149 : }
3150 : return NULL_TREE;
3151 : }
3152 :
3153 : tree
3154 0 : generic_simplify_612 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3155 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3156 : const enum tree_code ARG_UNUSED (rot),
3157 : const combined_fn ARG_UNUSED (popcount))
3158 : {
3159 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3160 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3161 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3162 0 : && (
3163 :
3164 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3165 : )
3166 : {
3167 0 : {
3168 0 : tree type0 = TREE_TYPE (captures[0]);
3169 0 : tree type1 = TREE_TYPE (captures[1]);
3170 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3171 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3172 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3173 : )
3174 : {
3175 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1020;
3176 0 : {
3177 0 : tree res_op0;
3178 0 : {
3179 0 : tree _o1[1], _r1;
3180 0 : _o1[0] = captures[2];
3181 0 : if (TREE_TYPE (_o1[0]) != type0)
3182 : {
3183 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3184 : }
3185 : else
3186 : _r1 = _o1[0];
3187 0 : res_op0 = _r1;
3188 : }
3189 0 : tree _r;
3190 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3191 0 : if (!_r)
3192 0 : goto next_after_fail1020;
3193 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3194 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3195 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 809, __FILE__, __LINE__, true);
3196 0 : return _r;
3197 : }
3198 : next_after_fail1020:;
3199 : }
3200 : }
3201 : }
3202 : return NULL_TREE;
3203 : }
3204 :
3205 : tree
3206 0 : generic_simplify_622 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3207 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3208 : {
3209 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3210 0 : {
3211 0 : bool can_fold = false;
3212 0 : unsigned HOST_WIDE_INT nelts;
3213 0 : vec_perm_builder builder;
3214 0 : if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
3215 0 : && tree_to_vec_perm_builder (&builder, captures[2]))
3216 : {
3217 0 : vec_perm_indices sel0 (builder, 2, VECTOR_CST_NELTS (captures[2]));
3218 0 : unsigned int sel0_first_idx = sel0[0].to_constant ();
3219 0 : unsigned int elt_size = vector_element_bits (TREE_TYPE (captures[0]));
3220 0 : unsigned int ia_size = tree_to_uhwi (TYPE_SIZE (type))
3221 0 : - elt_size * sel0_first_idx;
3222 0 : unsigned int ib_start;
3223 0 : if (sel0.series_p (0, 1, sel0_first_idx, 1)
3224 0 : && multiple_p (ia_size, vector_element_bits (type), &ib_start)
3225 0 : && tree_to_vec_perm_builder (&builder, captures[5]))
3226 : {
3227 0 : vec_perm_indices sel1 (builder, 2, VECTOR_CST_NELTS (captures[5]));
3228 0 : can_fold = sel1.series_p (ib_start, 1, nelts + ib_start, 1);
3229 0 : if (can_fold)
3230 0 : for (unsigned int i = 0; i < ib_start; i++)
3231 0 : if (sel1[i].to_constant () != i)
3232 : {
3233 : can_fold = false;
3234 : break;
3235 : }
3236 0 : }
3237 0 : }
3238 0 : if (can_fold
3239 : )
3240 : {
3241 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1032;
3242 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1032;
3243 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1032;
3244 0 : {
3245 0 : tree res_op0;
3246 0 : {
3247 0 : tree _o1[3], _r1;
3248 0 : _o1[0] = captures[0];
3249 0 : _o1[1] = captures[4];
3250 0 : _o1[2] = captures[2];
3251 0 : _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
3252 0 : res_op0 = _r1;
3253 : }
3254 0 : tree _r;
3255 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3256 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3257 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3258 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3259 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3260 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 820, __FILE__, __LINE__, true);
3261 0 : return _r;
3262 : }
3263 0 : next_after_fail1032:;
3264 : }
3265 0 : }
3266 0 : return NULL_TREE;
3267 : }
3268 :
3269 : tree
3270 3678 : generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3271 : {
3272 3678 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3273 3678 : switch (TREE_CODE (_p0))
3274 : {
3275 2 : case PAREN_EXPR:
3276 2 : {
3277 2 : tree _q20 = TREE_OPERAND (_p0, 0);
3278 2 : {
3279 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3280 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1126;
3281 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1126;
3282 2 : {
3283 2 : tree _r;
3284 2 : _r = captures[0];
3285 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
3286 2 : return _r;
3287 : }
3288 0 : next_after_fail1126:;
3289 : }
3290 0 : break;
3291 : }
3292 3676 : default:;
3293 : }
3294 3676 : if (CONSTANT_CLASS_P (_p0))
3295 : {
3296 1 : {
3297 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3298 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1127;
3299 1 : {
3300 1 : tree _r;
3301 1 : _r = captures[0];
3302 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 873, __FILE__, __LINE__, true);
3303 1 : return _r;
3304 : }
3305 0 : next_after_fail1127:;
3306 : }
3307 : }
3308 : return NULL_TREE;
3309 : }
3310 :
3311 : tree
3312 1647151 : generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3313 : {
3314 1647151 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3315 1647151 : switch (TREE_CODE (_p0))
3316 : {
3317 9611 : case COMPLEX_EXPR:
3318 9611 : {
3319 9611 : tree _q20 = TREE_OPERAND (_p0, 0);
3320 9611 : tree _q21 = TREE_OPERAND (_p0, 1);
3321 9611 : {
3322 9611 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3323 9611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1128;
3324 9611 : {
3325 9611 : tree _r;
3326 9611 : _r = captures[0];
3327 9611 : if (TREE_SIDE_EFFECTS (captures[1]))
3328 1366 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3329 9611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 874, __FILE__, __LINE__, true);
3330 9611 : return _r;
3331 : }
3332 0 : next_after_fail1128:;
3333 : }
3334 0 : break;
3335 : }
3336 45368 : CASE_CONVERT:
3337 45368 : {
3338 45368 : tree _q20 = TREE_OPERAND (_p0, 0);
3339 45368 : switch (TREE_CODE (_q20))
3340 : {
3341 0 : case CONJ_EXPR:
3342 0 : {
3343 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3344 0 : {
3345 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3346 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1129;
3347 0 : {
3348 0 : tree res_op0;
3349 0 : {
3350 0 : tree _o1[1], _r1;
3351 0 : _o1[0] = captures[2];
3352 0 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3353 0 : res_op0 = _r1;
3354 : }
3355 0 : tree _r;
3356 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3357 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
3358 0 : return _r;
3359 : }
3360 0 : next_after_fail1129:;
3361 : }
3362 0 : break;
3363 : }
3364 0 : case PLUS_EXPR:
3365 0 : {
3366 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3367 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3368 0 : {
3369 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3370 0 : const enum tree_code op = PLUS_EXPR;
3371 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1130;
3372 0 : {
3373 0 : tree res_op0;
3374 0 : {
3375 0 : tree _o1[2], _r1;
3376 0 : {
3377 0 : tree _o2[1], _r2;
3378 0 : _o2[0] = captures[2];
3379 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3380 0 : _o1[0] = _r2;
3381 : }
3382 0 : {
3383 0 : tree _o2[1], _r2;
3384 0 : _o2[0] = captures[3];
3385 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3386 0 : _o1[1] = _r2;
3387 : }
3388 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3389 0 : res_op0 = _r1;
3390 : }
3391 0 : tree _r;
3392 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3393 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
3394 0 : return _r;
3395 : }
3396 0 : next_after_fail1130:;
3397 : }
3398 0 : break;
3399 : }
3400 0 : case MINUS_EXPR:
3401 0 : {
3402 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3403 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3404 0 : {
3405 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3406 0 : const enum tree_code op = MINUS_EXPR;
3407 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1131;
3408 0 : {
3409 0 : tree res_op0;
3410 0 : {
3411 0 : tree _o1[2], _r1;
3412 0 : {
3413 0 : tree _o2[1], _r2;
3414 0 : _o2[0] = captures[2];
3415 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3416 0 : _o1[0] = _r2;
3417 : }
3418 0 : {
3419 0 : tree _o2[1], _r2;
3420 0 : _o2[0] = captures[3];
3421 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3422 0 : _o1[1] = _r2;
3423 : }
3424 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3425 0 : res_op0 = _r1;
3426 : }
3427 0 : tree _r;
3428 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3429 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
3430 0 : return _r;
3431 : }
3432 0 : next_after_fail1131:;
3433 : }
3434 0 : break;
3435 : }
3436 0 : case CALL_EXPR:
3437 0 : switch (get_call_combined_fn (_q20))
3438 : {
3439 0 : case CFN_BUILT_IN_CEXPIF:
3440 0 : if (call_expr_nargs (_q20) == 1)
3441 : {
3442 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3443 0 : {
3444 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3445 0 : if (single_use (captures[1]) && single_use (captures[0])
3446 : )
3447 : {
3448 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1132;
3449 0 : {
3450 0 : tree res_op0;
3451 0 : {
3452 0 : tree _o1[1], _r1;
3453 0 : _o1[0] = captures[2];
3454 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3455 0 : if (!_r1)
3456 0 : goto next_after_fail1132;
3457 0 : res_op0 = _r1;
3458 : }
3459 0 : tree _r;
3460 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3461 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3462 0 : return _r;
3463 : }
3464 0 : next_after_fail1132:;
3465 : }
3466 : }
3467 : }
3468 : break;
3469 0 : case CFN_BUILT_IN_CEXPIL:
3470 0 : if (call_expr_nargs (_q20) == 1)
3471 : {
3472 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3473 0 : {
3474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3475 0 : if (single_use (captures[1]) && single_use (captures[0])
3476 : )
3477 : {
3478 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1133;
3479 0 : {
3480 0 : tree res_op0;
3481 0 : {
3482 0 : tree _o1[1], _r1;
3483 0 : _o1[0] = captures[2];
3484 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3485 0 : if (!_r1)
3486 0 : goto next_after_fail1133;
3487 0 : res_op0 = _r1;
3488 : }
3489 0 : tree _r;
3490 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3491 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3492 0 : return _r;
3493 : }
3494 0 : next_after_fail1133:;
3495 : }
3496 : }
3497 : }
3498 : break;
3499 0 : case CFN_BUILT_IN_CEXPI:
3500 0 : if (call_expr_nargs (_q20) == 1)
3501 : {
3502 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3503 0 : {
3504 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3505 0 : if (single_use (captures[1]) && single_use (captures[0])
3506 : )
3507 : {
3508 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1134;
3509 0 : {
3510 0 : tree res_op0;
3511 0 : {
3512 0 : tree _o1[1], _r1;
3513 0 : _o1[0] = captures[2];
3514 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3515 0 : if (!_r1)
3516 0 : goto next_after_fail1134;
3517 0 : res_op0 = _r1;
3518 : }
3519 0 : tree _r;
3520 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3521 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3522 0 : return _r;
3523 : }
3524 0 : next_after_fail1134:;
3525 : }
3526 : }
3527 : }
3528 : break;
3529 : default:;
3530 : }
3531 : break;
3532 : default:;
3533 : }
3534 : break;
3535 : }
3536 16 : case CONJ_EXPR:
3537 16 : {
3538 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3539 16 : {
3540 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3541 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1135;
3542 16 : {
3543 16 : tree res_op0;
3544 16 : {
3545 16 : tree _o1[1], _r1;
3546 16 : _o1[0] = captures[2];
3547 16 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3548 16 : res_op0 = _r1;
3549 : }
3550 16 : tree _r;
3551 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3552 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
3553 16 : return _r;
3554 : }
3555 0 : next_after_fail1135:;
3556 : }
3557 0 : break;
3558 : }
3559 407 : case PLUS_EXPR:
3560 407 : {
3561 407 : tree _q20 = TREE_OPERAND (_p0, 0);
3562 407 : tree _q21 = TREE_OPERAND (_p0, 1);
3563 407 : {
3564 407 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3565 407 : const enum tree_code op = PLUS_EXPR;
3566 407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1136;
3567 407 : {
3568 407 : tree res_op0;
3569 407 : {
3570 407 : tree _o1[2], _r1;
3571 407 : {
3572 407 : tree _o2[1], _r2;
3573 407 : _o2[0] = captures[2];
3574 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3575 407 : _o1[0] = _r2;
3576 : }
3577 407 : {
3578 407 : tree _o2[1], _r2;
3579 407 : _o2[0] = captures[3];
3580 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3581 407 : _o1[1] = _r2;
3582 : }
3583 407 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3584 407 : res_op0 = _r1;
3585 : }
3586 407 : tree _r;
3587 407 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3588 407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
3589 407 : return _r;
3590 : }
3591 0 : next_after_fail1136:;
3592 : }
3593 0 : break;
3594 : }
3595 47 : case MINUS_EXPR:
3596 47 : {
3597 47 : tree _q20 = TREE_OPERAND (_p0, 0);
3598 47 : tree _q21 = TREE_OPERAND (_p0, 1);
3599 47 : {
3600 47 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3601 47 : const enum tree_code op = MINUS_EXPR;
3602 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1137;
3603 47 : {
3604 47 : tree res_op0;
3605 47 : {
3606 47 : tree _o1[2], _r1;
3607 47 : {
3608 47 : tree _o2[1], _r2;
3609 47 : _o2[0] = captures[2];
3610 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3611 47 : _o1[0] = _r2;
3612 : }
3613 47 : {
3614 47 : tree _o2[1], _r2;
3615 47 : _o2[0] = captures[3];
3616 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3617 47 : _o1[1] = _r2;
3618 : }
3619 47 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3620 47 : res_op0 = _r1;
3621 : }
3622 47 : tree _r;
3623 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3624 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
3625 47 : return _r;
3626 : }
3627 0 : next_after_fail1137:;
3628 : }
3629 0 : break;
3630 : }
3631 263 : case CALL_EXPR:
3632 263 : switch (get_call_combined_fn (_p0))
3633 : {
3634 0 : case CFN_BUILT_IN_CEXPIF:
3635 0 : if (call_expr_nargs (_p0) == 1)
3636 : {
3637 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3638 0 : {
3639 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3640 0 : if (single_use (captures[1]) && single_use (captures[0])
3641 : )
3642 : {
3643 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1138;
3644 0 : {
3645 0 : tree res_op0;
3646 0 : {
3647 0 : tree _o1[1], _r1;
3648 0 : _o1[0] = captures[2];
3649 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3650 0 : if (!_r1)
3651 0 : goto next_after_fail1138;
3652 0 : res_op0 = _r1;
3653 : }
3654 0 : tree _r;
3655 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3656 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3657 0 : return _r;
3658 : }
3659 0 : next_after_fail1138:;
3660 : }
3661 : }
3662 : }
3663 : break;
3664 0 : case CFN_BUILT_IN_CEXPIL:
3665 0 : if (call_expr_nargs (_p0) == 1)
3666 : {
3667 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3668 0 : {
3669 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3670 0 : if (single_use (captures[1]) && single_use (captures[0])
3671 : )
3672 : {
3673 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1139;
3674 0 : {
3675 0 : tree res_op0;
3676 0 : {
3677 0 : tree _o1[1], _r1;
3678 0 : _o1[0] = captures[2];
3679 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3680 0 : if (!_r1)
3681 0 : goto next_after_fail1139;
3682 0 : res_op0 = _r1;
3683 : }
3684 0 : tree _r;
3685 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3686 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3687 0 : return _r;
3688 : }
3689 0 : next_after_fail1139:;
3690 : }
3691 : }
3692 : }
3693 : break;
3694 1 : case CFN_BUILT_IN_CEXPI:
3695 1 : if (call_expr_nargs (_p0) == 1)
3696 : {
3697 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3698 1 : {
3699 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3700 1 : if (single_use (captures[1]) && single_use (captures[0])
3701 : )
3702 : {
3703 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1140;
3704 1 : {
3705 1 : tree res_op0;
3706 1 : {
3707 1 : tree _o1[1], _r1;
3708 1 : _o1[0] = captures[2];
3709 1 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3710 1 : if (!_r1)
3711 0 : goto next_after_fail1140;
3712 1 : res_op0 = _r1;
3713 : }
3714 1 : tree _r;
3715 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3716 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
3717 1 : return _r;
3718 : }
3719 0 : next_after_fail1140:;
3720 : }
3721 : }
3722 : }
3723 : break;
3724 : default:;
3725 : }
3726 : break;
3727 : default:;
3728 : }
3729 : return NULL_TREE;
3730 : }
3731 :
3732 : tree
3733 2868250 : 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)
3734 : {
3735 2868250 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3736 2868250 : if (integer_zerop (_p1))
3737 : {
3738 29 : {
3739 29 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3740 29 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1367;
3741 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1367;
3742 29 : {
3743 29 : tree res_op0;
3744 29 : res_op0 = captures[0];
3745 29 : tree _r;
3746 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3747 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 942, __FILE__, __LINE__, true);
3748 29 : return _r;
3749 : }
3750 : next_after_fail1367:;
3751 : }
3752 : }
3753 2868221 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _p0, 0))
3754 : {
3755 39194 : {
3756 39194 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p0 };
3757 39194 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1368;
3758 39194 : {
3759 39194 : tree _r;
3760 39194 : _r = build_zero_cst (type);
3761 39194 : if (TREE_SIDE_EFFECTS (captures[1]))
3762 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3763 39194 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
3764 39194 : return _r;
3765 : }
3766 0 : next_after_fail1368:;
3767 : }
3768 : }
3769 2829027 : switch (TREE_CODE (_p0))
3770 : {
3771 255000 : case POINTER_PLUS_EXPR:
3772 255000 : {
3773 255000 : tree _q20 = TREE_OPERAND (_p0, 0);
3774 255000 : tree _q21 = TREE_OPERAND (_p0, 1);
3775 255000 : switch (TREE_CODE (_p1))
3776 : {
3777 15325 : case POINTER_PLUS_EXPR:
3778 15325 : {
3779 15325 : tree _q50 = TREE_OPERAND (_p1, 0);
3780 15325 : tree _q51 = TREE_OPERAND (_p1, 1);
3781 15325 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3782 : {
3783 15294 : {
3784 15294 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
3785 15294 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
3786 : )
3787 : {
3788 15294 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1369;
3789 15294 : {
3790 15294 : tree res_op0;
3791 15294 : {
3792 15294 : tree _o1[2], _r1;
3793 15294 : _o1[0] = captures[1];
3794 15294 : _o1[1] = captures[2];
3795 15294 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3796 15294 : res_op0 = _r1;
3797 : }
3798 15294 : tree _r;
3799 15294 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3800 15294 : if (TREE_SIDE_EFFECTS (captures[0]))
3801 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3802 15294 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
3803 15294 : return _r;
3804 : }
3805 0 : next_after_fail1369:;
3806 : }
3807 : }
3808 : }
3809 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3810 : {
3811 1 : {
3812 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
3813 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1370;
3814 1 : {
3815 1 : tree res_op0;
3816 1 : res_op0 = captures[0];
3817 1 : tree res_op1;
3818 1 : res_op1 = captures[2];
3819 1 : tree _r;
3820 1 : _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
3821 1 : if (TREE_SIDE_EFFECTS (captures[1]))
3822 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3823 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 945, __FILE__, __LINE__, true);
3824 1 : return _r;
3825 : }
3826 0 : next_after_fail1370:;
3827 : }
3828 : }
3829 : break;
3830 : }
3831 : default:;
3832 : }
3833 : break;
3834 : }
3835 165304 : CASE_CONVERT:
3836 165304 : {
3837 165304 : tree _q20 = TREE_OPERAND (_p0, 0);
3838 165304 : switch (TREE_CODE (_q20))
3839 : {
3840 2017 : case ADDR_EXPR:
3841 2017 : {
3842 2017 : switch (TREE_CODE (_p1))
3843 : {
3844 324 : CASE_CONVERT:
3845 324 : {
3846 324 : tree _q40 = TREE_OPERAND (_p1, 0);
3847 324 : {
3848 324 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3849 324 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3850 324 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3851 : )
3852 : {
3853 324 : {
3854 324 : poly_int64 diff;
3855 324 : if (ptr_difference_const (captures[1], captures[3], &diff)
3856 : )
3857 : {
3858 189 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1371;
3859 189 : {
3860 189 : tree _r;
3861 189 : _r = build_int_cst_type (type, diff);
3862 189 : if (TREE_SIDE_EFFECTS (captures[1]))
3863 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3864 189 : if (TREE_SIDE_EFFECTS (captures[3]))
3865 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3866 189 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
3867 189 : return _r;
3868 : }
3869 0 : next_after_fail1371:;
3870 : }
3871 : }
3872 : }
3873 : }
3874 135 : break;
3875 : }
3876 1828 : default:;
3877 : }
3878 1828 : {
3879 1828 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3880 1828 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3881 1828 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3882 : )
3883 : {
3884 1828 : {
3885 1828 : poly_int64 diff;
3886 1828 : if (ptr_difference_const (captures[1], captures[3], &diff)
3887 : )
3888 : {
3889 103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1372;
3890 103 : {
3891 103 : tree _r;
3892 103 : _r = build_int_cst_type (type, diff);
3893 103 : if (TREE_SIDE_EFFECTS (captures[1]))
3894 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3895 103 : if (TREE_SIDE_EFFECTS (captures[2]))
3896 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3897 103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
3898 103 : return _r;
3899 : }
3900 0 : next_after_fail1372:;
3901 : }
3902 : }
3903 : }
3904 : }
3905 1725 : break;
3906 : }
3907 165012 : default:;
3908 : }
3909 165012 : switch (TREE_CODE (_p1))
3910 : {
3911 133536 : CASE_CONVERT:
3912 133536 : {
3913 133536 : tree _q40 = TREE_OPERAND (_p1, 0);
3914 133536 : switch (TREE_CODE (_q40))
3915 : {
3916 18209 : case ADDR_EXPR:
3917 18209 : {
3918 18209 : {
3919 18209 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3920 18209 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3921 18209 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3922 : )
3923 : {
3924 18209 : {
3925 18209 : poly_int64 diff;
3926 18209 : if (ptr_difference_const (captures[1], captures[3], &diff)
3927 : )
3928 : {
3929 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1373;
3930 37 : {
3931 37 : tree _r;
3932 37 : _r = build_int_cst_type (type, diff);
3933 37 : if (TREE_SIDE_EFFECTS (captures[1]))
3934 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3935 37 : if (TREE_SIDE_EFFECTS (captures[3]))
3936 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3937 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
3938 37 : return _r;
3939 : }
3940 0 : next_after_fail1373:;
3941 : }
3942 : }
3943 : }
3944 : }
3945 18172 : break;
3946 : }
3947 : default:;
3948 : }
3949 : break;
3950 : }
3951 12 : case ADDR_EXPR:
3952 12 : {
3953 12 : {
3954 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3955 12 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3956 12 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3957 : )
3958 : {
3959 12 : {
3960 12 : poly_int64 diff;
3961 12 : if (ptr_difference_const (captures[1], captures[3], &diff)
3962 : )
3963 : {
3964 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1374;
3965 0 : {
3966 0 : tree _r;
3967 0 : _r = build_int_cst_type (type, diff);
3968 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3969 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3970 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3971 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3972 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
3973 0 : return _r;
3974 : }
3975 0 : next_after_fail1374:;
3976 : }
3977 : }
3978 : }
3979 : }
3980 12 : break;
3981 : }
3982 : default:;
3983 : }
3984 : break;
3985 : }
3986 3758 : case ADDR_EXPR:
3987 3758 : {
3988 3758 : switch (TREE_CODE (_p1))
3989 : {
3990 50 : CASE_CONVERT:
3991 50 : {
3992 50 : tree _q30 = TREE_OPERAND (_p1, 0);
3993 50 : {
3994 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
3995 50 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3996 50 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3997 : )
3998 : {
3999 50 : {
4000 50 : poly_int64 diff;
4001 50 : if (ptr_difference_const (captures[1], captures[3], &diff)
4002 : )
4003 : {
4004 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1375;
4005 29 : {
4006 29 : tree _r;
4007 29 : _r = build_int_cst_type (type, diff);
4008 29 : if (TREE_SIDE_EFFECTS (captures[0]))
4009 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4010 29 : if (TREE_SIDE_EFFECTS (captures[3]))
4011 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4012 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
4013 29 : return _r;
4014 : }
4015 0 : next_after_fail1375:;
4016 : }
4017 : }
4018 : }
4019 : }
4020 21 : break;
4021 : }
4022 3729 : default:;
4023 : }
4024 3729 : {
4025 3729 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
4026 3729 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4027 3729 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4028 : )
4029 : {
4030 3729 : {
4031 3729 : poly_int64 diff;
4032 3729 : if (ptr_difference_const (captures[1], captures[3], &diff)
4033 : )
4034 : {
4035 2437 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1376;
4036 2437 : {
4037 2437 : tree _r;
4038 2437 : _r = build_int_cst_type (type, diff);
4039 2437 : if (TREE_SIDE_EFFECTS (captures[0]))
4040 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4041 2437 : if (TREE_SIDE_EFFECTS (captures[2]))
4042 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4043 2437 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
4044 2437 : return _r;
4045 : }
4046 0 : next_after_fail1376:;
4047 : }
4048 : }
4049 : }
4050 : }
4051 1292 : break;
4052 : }
4053 2810937 : default:;
4054 : }
4055 2810937 : switch (TREE_CODE (_p1))
4056 : {
4057 550346 : CASE_CONVERT:
4058 550346 : {
4059 550346 : tree _q30 = TREE_OPERAND (_p1, 0);
4060 550346 : switch (TREE_CODE (_q30))
4061 : {
4062 374964 : case ADDR_EXPR:
4063 374964 : {
4064 374964 : {
4065 374964 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
4066 374964 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4067 374964 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4068 : )
4069 : {
4070 374964 : {
4071 374964 : poly_int64 diff;
4072 374964 : if (ptr_difference_const (captures[1], captures[3], &diff)
4073 : )
4074 : {
4075 233706 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1377;
4076 233706 : {
4077 233706 : tree _r;
4078 233706 : _r = build_int_cst_type (type, diff);
4079 233706 : if (TREE_SIDE_EFFECTS (captures[0]))
4080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4081 233706 : if (TREE_SIDE_EFFECTS (captures[3]))
4082 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4083 233706 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
4084 233706 : return _r;
4085 : }
4086 0 : next_after_fail1377:;
4087 : }
4088 : }
4089 : }
4090 : }
4091 141258 : break;
4092 : }
4093 : default:;
4094 : }
4095 : break;
4096 : }
4097 8028 : case ADDR_EXPR:
4098 8028 : {
4099 8028 : {
4100 8028 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
4101 8028 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4102 8028 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4103 : )
4104 : {
4105 8028 : {
4106 8028 : poly_int64 diff;
4107 8028 : if (ptr_difference_const (captures[1], captures[3], &diff)
4108 : )
4109 : {
4110 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1378;
4111 76 : {
4112 76 : tree _r;
4113 76 : _r = build_int_cst_type (type, diff);
4114 76 : if (TREE_SIDE_EFFECTS (captures[0]))
4115 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4116 76 : if (TREE_SIDE_EFFECTS (captures[2]))
4117 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4118 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
4119 76 : return _r;
4120 : }
4121 0 : next_after_fail1378:;
4122 : }
4123 : }
4124 : }
4125 : }
4126 7952 : break;
4127 : }
4128 2577155 : default:;
4129 : }
4130 2577155 : switch (TREE_CODE (_p0))
4131 : {
4132 5923 : case POINTER_PLUS_EXPR:
4133 5923 : {
4134 5923 : tree _q20 = TREE_OPERAND (_p0, 0);
4135 5923 : tree _q21 = TREE_OPERAND (_p0, 1);
4136 5923 : switch (TREE_CODE (_q20))
4137 : {
4138 65 : case ADDR_EXPR:
4139 65 : {
4140 65 : switch (TREE_CODE (_p1))
4141 : {
4142 0 : case POINTER_PLUS_EXPR:
4143 0 : {
4144 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4145 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4146 0 : switch (TREE_CODE (_q50))
4147 : {
4148 0 : case ADDR_EXPR:
4149 0 : {
4150 0 : {
4151 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
4152 0 : {
4153 0 : poly_int64 diff;
4154 0 : if (ptr_difference_const (captures[0], captures[2], &diff)
4155 : )
4156 : {
4157 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1379;
4158 0 : {
4159 0 : tree res_op0;
4160 0 : res_op0 = build_int_cst_type (type, diff);
4161 0 : tree res_op1;
4162 0 : {
4163 0 : tree _o1[1], _r1;
4164 0 : {
4165 0 : tree _o2[2], _r2;
4166 0 : _o2[0] = captures[1];
4167 0 : _o2[1] = captures[3];
4168 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4169 0 : _o1[0] = _r2;
4170 : }
4171 0 : if (TREE_TYPE (_o1[0]) != type)
4172 : {
4173 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4174 : }
4175 : else
4176 : _r1 = _o1[0];
4177 0 : res_op1 = _r1;
4178 : }
4179 0 : tree _r;
4180 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4181 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4182 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4183 0 : if (TREE_SIDE_EFFECTS (captures[2]))
4184 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4185 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
4186 0 : return _r;
4187 : }
4188 0 : next_after_fail1379:;
4189 : }
4190 : }
4191 : }
4192 0 : break;
4193 : }
4194 : default:;
4195 : }
4196 : break;
4197 : }
4198 : default:;
4199 : }
4200 : break;
4201 : }
4202 5923 : default:;
4203 : }
4204 5923 : switch (TREE_CODE (_p1))
4205 : {
4206 112 : case ADDR_EXPR:
4207 112 : {
4208 112 : {
4209 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4210 112 : {
4211 112 : poly_int64 diff;
4212 112 : if (ptr_difference_const (captures[0], captures[2], &diff)
4213 : )
4214 : {
4215 98 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1380;
4216 98 : {
4217 98 : tree res_op0;
4218 98 : res_op0 = build_int_cst_type (type, diff);
4219 98 : tree res_op1;
4220 98 : {
4221 98 : tree _o1[1], _r1;
4222 98 : _o1[0] = captures[1];
4223 98 : if (TREE_TYPE (_o1[0]) != type)
4224 : {
4225 98 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4226 : }
4227 : else
4228 : _r1 = _o1[0];
4229 98 : res_op1 = _r1;
4230 : }
4231 98 : tree _r;
4232 98 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4233 98 : if (TREE_SIDE_EFFECTS (captures[0]))
4234 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4235 98 : if (TREE_SIDE_EFFECTS (captures[2]))
4236 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4237 98 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
4238 98 : return _r;
4239 : }
4240 0 : next_after_fail1380:;
4241 : }
4242 : }
4243 : }
4244 14 : break;
4245 : }
4246 5825 : default:;
4247 : }
4248 5825 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4249 : {
4250 1745 : {
4251 1745 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4252 1745 : if (!TYPE_SATURATING (type)
4253 : )
4254 : {
4255 1745 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4256 3490 : && !FIXED_POINT_TYPE_P (type)
4257 : )
4258 : {
4259 1745 : {
4260 1745 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4261 1745 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1381;
4262 1745 : {
4263 1745 : tree res_op0;
4264 1745 : {
4265 1745 : tree _o1[1], _r1;
4266 1745 : _o1[0] = captures[1];
4267 1745 : if (TREE_TYPE (_o1[0]) != stype)
4268 : {
4269 1745 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o1[0]);
4270 : }
4271 : else
4272 : _r1 = _o1[0];
4273 1745 : res_op0 = _r1;
4274 : }
4275 1745 : tree _r;
4276 1745 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4277 1745 : if (TREE_SIDE_EFFECTS (captures[2]))
4278 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4279 1745 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
4280 1745 : return _r;
4281 : }
4282 0 : next_after_fail1381:;
4283 : }
4284 : }
4285 : }
4286 : }
4287 : }
4288 : break;
4289 : }
4290 1292 : case ADDR_EXPR:
4291 1292 : {
4292 1292 : switch (TREE_CODE (_p1))
4293 : {
4294 9 : case POINTER_PLUS_EXPR:
4295 9 : {
4296 9 : tree _q30 = TREE_OPERAND (_p1, 0);
4297 9 : tree _q31 = TREE_OPERAND (_p1, 1);
4298 9 : {
4299 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
4300 9 : {
4301 9 : poly_int64 diff;
4302 9 : if (ptr_difference_const (captures[0], captures[1], &diff)
4303 : )
4304 : {
4305 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1382;
4306 9 : {
4307 9 : tree res_op0;
4308 9 : res_op0 = build_int_cst_type (type, diff);
4309 9 : tree res_op1;
4310 9 : {
4311 9 : tree _o1[1], _r1;
4312 9 : _o1[0] = captures[2];
4313 9 : if (TREE_TYPE (_o1[0]) != type)
4314 : {
4315 9 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4316 : }
4317 : else
4318 : _r1 = _o1[0];
4319 9 : res_op1 = _r1;
4320 : }
4321 9 : tree _r;
4322 9 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4323 9 : if (TREE_SIDE_EFFECTS (captures[0]))
4324 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4325 9 : if (TREE_SIDE_EFFECTS (captures[1]))
4326 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4327 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 951, __FILE__, __LINE__, true);
4328 9 : return _r;
4329 : }
4330 0 : next_after_fail1382:;
4331 : }
4332 : }
4333 : }
4334 0 : break;
4335 : }
4336 : default:;
4337 : }
4338 : break;
4339 : }
4340 2575303 : default:;
4341 : }
4342 2575303 : switch (TREE_CODE (_p1))
4343 : {
4344 209 : case POINTER_PLUS_EXPR:
4345 209 : {
4346 209 : tree _q30 = TREE_OPERAND (_p1, 0);
4347 209 : tree _q31 = TREE_OPERAND (_p1, 1);
4348 209 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
4349 : {
4350 124 : {
4351 124 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
4352 124 : if (!TYPE_SATURATING (type)
4353 : )
4354 : {
4355 124 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4356 248 : && !FIXED_POINT_TYPE_P (type)
4357 : )
4358 : {
4359 124 : {
4360 124 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4361 124 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1383;
4362 124 : {
4363 124 : tree res_op0;
4364 124 : {
4365 124 : tree _o1[1], _r1;
4366 124 : {
4367 124 : tree _o2[1], _r2;
4368 124 : _o2[0] = captures[1];
4369 124 : if (TREE_TYPE (_o2[0]) != stype)
4370 : {
4371 124 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4372 : }
4373 : else
4374 : _r2 = _o2[0];
4375 124 : _o1[0] = _r2;
4376 : }
4377 124 : if (TREE_TYPE (_o1[0]) != type)
4378 : {
4379 124 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4380 : }
4381 : else
4382 : _r1 = _o1[0];
4383 124 : res_op0 = _r1;
4384 : }
4385 124 : tree _r;
4386 124 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4387 124 : if (TREE_SIDE_EFFECTS (captures[2]))
4388 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4389 124 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 952, __FILE__, __LINE__, true);
4390 124 : return _r;
4391 : }
4392 0 : next_after_fail1383:;
4393 : }
4394 : }
4395 : }
4396 : }
4397 : }
4398 : break;
4399 : }
4400 2575179 : default:;
4401 : }
4402 2575179 : switch (TREE_CODE (_p0))
4403 : {
4404 4080 : case POINTER_PLUS_EXPR:
4405 4080 : {
4406 4080 : tree _q20 = TREE_OPERAND (_p0, 0);
4407 4080 : tree _q21 = TREE_OPERAND (_p0, 1);
4408 4080 : switch (TREE_CODE (_p1))
4409 : {
4410 30 : case POINTER_PLUS_EXPR:
4411 30 : {
4412 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4413 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4414 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4415 : {
4416 2 : {
4417 2 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
4418 2 : if (!TYPE_SATURATING (type)
4419 : )
4420 : {
4421 2 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4422 4 : && !FIXED_POINT_TYPE_P (type)
4423 : )
4424 : {
4425 2 : {
4426 2 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4427 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1384;
4428 2 : {
4429 2 : tree res_op0;
4430 2 : {
4431 2 : tree _o1[1], _r1;
4432 2 : {
4433 2 : tree _o2[1], _r2;
4434 2 : _o2[0] = captures[1];
4435 2 : if (TREE_TYPE (_o2[0]) != stype)
4436 : {
4437 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4438 : }
4439 : else
4440 : _r2 = _o2[0];
4441 2 : _o1[0] = _r2;
4442 : }
4443 2 : if (TREE_TYPE (_o1[0]) != type)
4444 : {
4445 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4446 : }
4447 : else
4448 : _r1 = _o1[0];
4449 2 : res_op0 = _r1;
4450 : }
4451 2 : tree res_op1;
4452 2 : {
4453 2 : tree _o1[1], _r1;
4454 2 : {
4455 2 : tree _o2[1], _r2;
4456 2 : _o2[0] = captures[2];
4457 2 : if (TREE_TYPE (_o2[0]) != stype)
4458 : {
4459 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4460 : }
4461 : else
4462 : _r2 = _o2[0];
4463 2 : _o1[0] = _r2;
4464 : }
4465 2 : if (TREE_TYPE (_o1[0]) != type)
4466 : {
4467 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4468 : }
4469 : else
4470 : _r1 = _o1[0];
4471 2 : res_op1 = _r1;
4472 : }
4473 2 : tree _r;
4474 2 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4475 2 : if (TREE_SIDE_EFFECTS (captures[3]))
4476 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4477 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
4478 2 : return _r;
4479 : }
4480 0 : next_after_fail1384:;
4481 : }
4482 : }
4483 : }
4484 : }
4485 : }
4486 : break;
4487 : }
4488 : default:;
4489 : }
4490 : break;
4491 : }
4492 2575177 : default:;
4493 : }
4494 2575177 : if (integer_zerop (_p0))
4495 : {
4496 0 : {
4497 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
4498 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1385;
4499 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1385;
4500 0 : {
4501 0 : tree res_op0;
4502 0 : {
4503 0 : tree _o1[1], _r1;
4504 0 : _o1[0] = captures[0];
4505 0 : if (TREE_TYPE (_o1[0]) != type)
4506 : {
4507 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4508 : }
4509 : else
4510 : _r1 = _o1[0];
4511 0 : res_op0 = _r1;
4512 : }
4513 0 : tree _r;
4514 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4515 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
4516 0 : return _r;
4517 : }
4518 : next_after_fail1385:;
4519 : }
4520 : }
4521 : return NULL_TREE;
4522 : }
4523 :
4524 : tree
4525 2190885 : 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)
4526 : {
4527 2190885 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4528 2190885 : if (integer_onep (_p1))
4529 : {
4530 769444 : {
4531 769444 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4532 769444 : tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4533 769444 : if (res) return res;
4534 : }
4535 : }
4536 1421441 : if (integer_zerop (_p0))
4537 : {
4538 4 : {
4539 4 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4540 4 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4541 4 : if (res) return res;
4542 : }
4543 : }
4544 1421437 : switch (TREE_CODE (_p1))
4545 : {
4546 969 : case SSA_NAME:
4547 969 : {
4548 969 : {
4549 969 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4550 969 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4551 969 : if (res) return res;
4552 : }
4553 969 : break;
4554 : }
4555 1421437 : default:;
4556 : }
4557 1421437 : if (integer_minus_onep (_p1))
4558 : {
4559 229 : {
4560 229 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4561 229 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4562 229 : if (res) return res;
4563 : }
4564 : }
4565 1421376 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4566 : {
4567 0 : {
4568 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4569 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4570 0 : if (res) return res;
4571 : }
4572 : }
4573 1421376 : switch (TREE_CODE (_p1))
4574 : {
4575 0 : case ABS_EXPR:
4576 0 : {
4577 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4578 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4579 : {
4580 0 : {
4581 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4582 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4583 0 : if (res) return res;
4584 : }
4585 : }
4586 : break;
4587 : }
4588 1421376 : default:;
4589 : }
4590 1421376 : switch (TREE_CODE (_p0))
4591 : {
4592 0 : case ABS_EXPR:
4593 0 : {
4594 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4595 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4596 : {
4597 0 : {
4598 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4599 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4600 0 : if (res) return res;
4601 : }
4602 : }
4603 : break;
4604 : }
4605 1421376 : default:;
4606 : }
4607 1421376 : switch (TREE_CODE (_p1))
4608 : {
4609 0 : case NEGATE_EXPR:
4610 0 : {
4611 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4612 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4613 : {
4614 0 : {
4615 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4616 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4617 0 : if (res) return res;
4618 : }
4619 : }
4620 : break;
4621 : }
4622 1421376 : default:;
4623 : }
4624 1421376 : switch (TREE_CODE (_p0))
4625 : {
4626 290 : case NEGATE_EXPR:
4627 290 : {
4628 290 : tree _q20 = TREE_OPERAND (_p0, 0);
4629 290 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4630 : {
4631 0 : {
4632 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4633 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4634 0 : if (res) return res;
4635 : }
4636 : }
4637 : break;
4638 : }
4639 1421376 : default:;
4640 : }
4641 1421376 : {
4642 1421376 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4643 1421376 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR);
4644 1421376 : if (res) return res;
4645 : }
4646 5553 : switch (TREE_CODE (_p0))
4647 : {
4648 388 : CASE_CONVERT:
4649 388 : {
4650 388 : tree _q20 = TREE_OPERAND (_p0, 0);
4651 388 : switch (TREE_CODE (_q20))
4652 : {
4653 0 : case BIT_AND_EXPR:
4654 0 : {
4655 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4656 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4657 0 : switch (TREE_CODE (_q31))
4658 : {
4659 0 : case INTEGER_CST:
4660 0 : {
4661 0 : switch (TREE_CODE (_p1))
4662 : {
4663 0 : case INTEGER_CST:
4664 0 : {
4665 0 : {
4666 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4667 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4668 0 : if (res) return res;
4669 : }
4670 0 : break;
4671 : }
4672 : default:;
4673 : }
4674 : break;
4675 : }
4676 : default:;
4677 : }
4678 : break;
4679 : }
4680 : default:;
4681 : }
4682 : break;
4683 : }
4684 0 : case BIT_AND_EXPR:
4685 0 : {
4686 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4687 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4688 0 : switch (TREE_CODE (_q21))
4689 : {
4690 0 : case INTEGER_CST:
4691 0 : {
4692 0 : switch (TREE_CODE (_p1))
4693 : {
4694 0 : case INTEGER_CST:
4695 0 : {
4696 0 : {
4697 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4698 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4699 0 : if (res) return res;
4700 : }
4701 0 : break;
4702 : }
4703 : default:;
4704 : }
4705 : break;
4706 : }
4707 : default:;
4708 : }
4709 : break;
4710 : }
4711 0 : case MULT_EXPR:
4712 0 : {
4713 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4714 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4715 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4716 : {
4717 0 : {
4718 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4719 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4720 0 : if (res) return res;
4721 : }
4722 : }
4723 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4724 : {
4725 0 : {
4726 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4727 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4728 0 : if (res) return res;
4729 : }
4730 : }
4731 0 : switch (TREE_CODE (_q21))
4732 : {
4733 0 : case INTEGER_CST:
4734 0 : {
4735 0 : switch (TREE_CODE (_p1))
4736 : {
4737 0 : case MULT_EXPR:
4738 0 : {
4739 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4740 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4741 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4742 : {
4743 0 : switch (TREE_CODE (_q51))
4744 : {
4745 0 : case INTEGER_CST:
4746 0 : {
4747 0 : {
4748 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4749 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4750 0 : if (res) return res;
4751 : }
4752 0 : break;
4753 : }
4754 : default:;
4755 : }
4756 : }
4757 : break;
4758 : }
4759 : default:;
4760 : }
4761 : break;
4762 : }
4763 : default:;
4764 : }
4765 : break;
4766 : }
4767 0 : case VEC_COND_EXPR:
4768 0 : {
4769 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4770 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4771 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4772 0 : switch (TREE_CODE (_p1))
4773 : {
4774 0 : case VEC_COND_EXPR:
4775 0 : {
4776 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4777 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4778 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4779 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4780 : {
4781 0 : {
4782 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4783 0 : if (VECTOR_TYPE_P (type)
4784 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4785 : || types_match (type, TREE_TYPE (captures[2]))
4786 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4787 : || (optimize_vectors_before_lowering_p ()
4788 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4789 : )
4790 : {
4791 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1577;
4792 0 : {
4793 0 : tree res_op0;
4794 0 : res_op0 = captures[1];
4795 0 : tree res_op1;
4796 0 : {
4797 0 : tree _o1[2], _r1;
4798 0 : _o1[0] = captures[2];
4799 0 : _o1[1] = captures[5];
4800 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4801 0 : if (EXPR_P (_r1))
4802 0 : goto next_after_fail1577;
4803 0 : res_op1 = _r1;
4804 : }
4805 0 : tree res_op2;
4806 0 : {
4807 0 : tree _o1[2], _r1;
4808 0 : _o1[0] = captures[3];
4809 0 : _o1[1] = captures[6];
4810 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4811 0 : if (EXPR_P (_r1))
4812 0 : goto next_after_fail1577;
4813 0 : res_op2 = _r1;
4814 : }
4815 0 : tree _r;
4816 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
4818 0 : return _r;
4819 : }
4820 0 : next_after_fail1577:;
4821 : }
4822 : }
4823 : }
4824 : break;
4825 : }
4826 0 : default:;
4827 : }
4828 0 : {
4829 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4830 0 : if (VECTOR_TYPE_P (type)
4831 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4832 : || types_match (type, TREE_TYPE (captures[2]))
4833 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4834 : || (optimize_vectors_before_lowering_p ()
4835 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4836 : )
4837 : {
4838 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1578;
4839 0 : {
4840 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1578;
4841 0 : tree res_op0;
4842 0 : res_op0 = captures[1];
4843 0 : tree res_op1;
4844 0 : {
4845 0 : tree _o1[2], _r1;
4846 0 : _o1[0] = captures[2];
4847 0 : _o1[1] = unshare_expr (captures[4]);
4848 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4849 0 : if (EXPR_P (_r1))
4850 0 : goto next_after_fail1578;
4851 0 : res_op1 = _r1;
4852 : }
4853 0 : tree res_op2;
4854 0 : {
4855 0 : tree _o1[2], _r1;
4856 0 : _o1[0] = captures[3];
4857 0 : _o1[1] = captures[4];
4858 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4859 0 : if (EXPR_P (_r1))
4860 0 : goto next_after_fail1578;
4861 0 : res_op2 = _r1;
4862 : }
4863 0 : tree _r;
4864 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4865 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
4866 0 : return _r;
4867 : }
4868 0 : next_after_fail1578:;
4869 : }
4870 : }
4871 0 : break;
4872 : }
4873 5553 : default:;
4874 : }
4875 5553 : switch (TREE_CODE (_p1))
4876 : {
4877 0 : case VEC_COND_EXPR:
4878 0 : {
4879 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4880 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4881 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4882 0 : {
4883 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4884 0 : if (VECTOR_TYPE_P (type)
4885 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4886 : || types_match (type, TREE_TYPE (captures[3]))
4887 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4888 : || (optimize_vectors_before_lowering_p ()
4889 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4890 : )
4891 : {
4892 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1579;
4893 0 : {
4894 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1579;
4895 0 : tree res_op0;
4896 0 : res_op0 = captures[2];
4897 0 : tree res_op1;
4898 0 : {
4899 0 : tree _o1[2], _r1;
4900 0 : _o1[0] = unshare_expr (captures[0]);
4901 0 : _o1[1] = captures[3];
4902 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4903 0 : if (EXPR_P (_r1))
4904 0 : goto next_after_fail1579;
4905 0 : res_op1 = _r1;
4906 : }
4907 0 : tree res_op2;
4908 0 : {
4909 0 : tree _o1[2], _r1;
4910 0 : _o1[0] = captures[0];
4911 0 : _o1[1] = captures[4];
4912 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4913 0 : if (EXPR_P (_r1))
4914 0 : goto next_after_fail1579;
4915 0 : res_op2 = _r1;
4916 : }
4917 0 : tree _r;
4918 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4919 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
4920 0 : return _r;
4921 : }
4922 0 : next_after_fail1579:;
4923 : }
4924 : }
4925 0 : break;
4926 : }
4927 : default:;
4928 : }
4929 : return NULL_TREE;
4930 : }
4931 :
4932 : tree
4933 852973 : 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)
4934 : {
4935 852973 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4936 852973 : {
4937 852973 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4938 852973 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR);
4939 852973 : if (res) return res;
4940 : }
4941 3561 : if (integer_zerop (_p0))
4942 : {
4943 0 : {
4944 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4945 0 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4946 0 : if (res) return res;
4947 : }
4948 : }
4949 3561 : if (integer_onep (_p1))
4950 : {
4951 0 : {
4952 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4953 0 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4954 0 : if (res) return res;
4955 : }
4956 : }
4957 3561 : if (integer_minus_onep (_p1))
4958 : {
4959 0 : {
4960 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4961 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4962 0 : if (res) return res;
4963 : }
4964 : }
4965 3561 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4966 : {
4967 0 : {
4968 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4969 0 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4970 0 : if (res) return res;
4971 : }
4972 : }
4973 3561 : switch (TREE_CODE (_p0))
4974 : {
4975 0 : case FLOOR_MOD_EXPR:
4976 0 : {
4977 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4978 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4979 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4980 : {
4981 0 : {
4982 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4983 0 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4984 0 : if (res) return res;
4985 : }
4986 : }
4987 : break;
4988 : }
4989 4 : case MULT_EXPR:
4990 4 : {
4991 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4992 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4993 4 : switch (TREE_CODE (_q21))
4994 : {
4995 4 : case INTEGER_CST:
4996 4 : {
4997 4 : switch (TREE_CODE (_p1))
4998 : {
4999 4 : case INTEGER_CST:
5000 4 : {
5001 4 : {
5002 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5003 4 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5004 4 : if (res) return res;
5005 : }
5006 4 : break;
5007 : }
5008 : default:;
5009 : }
5010 : break;
5011 : }
5012 : default:;
5013 : }
5014 : break;
5015 : }
5016 3561 : default:;
5017 : }
5018 3561 : switch (TREE_CODE (_p1))
5019 : {
5020 1 : CASE_CONVERT:
5021 1 : {
5022 1 : tree _q30 = TREE_OPERAND (_p1, 0);
5023 1 : {
5024 1 : tree _q30_pops[1];
5025 1 : if (tree_power_of_two_cand (_q30, _q30_pops))
5026 : {
5027 0 : tree _q40 = _q30_pops[0];
5028 0 : {
5029 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
5030 0 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5031 0 : if (res) return res;
5032 : }
5033 : }
5034 : }
5035 1 : break;
5036 : }
5037 3561 : default:;
5038 : }
5039 3561 : {
5040 3561 : tree _p1_pops[1];
5041 3561 : if (tree_power_of_two_cand (_p1, _p1_pops))
5042 : {
5043 1778 : tree _q30 = _p1_pops[0];
5044 1778 : {
5045 1778 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
5046 1778 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5047 1778 : if (res) return res;
5048 : }
5049 : }
5050 : }
5051 3521 : switch (TREE_CODE (_p0))
5052 : {
5053 0 : case VEC_COND_EXPR:
5054 0 : {
5055 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5056 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5057 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5058 0 : switch (TREE_CODE (_p1))
5059 : {
5060 0 : case VEC_COND_EXPR:
5061 0 : {
5062 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5063 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5064 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5065 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5066 : {
5067 0 : {
5068 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5069 0 : if (VECTOR_TYPE_P (type)
5070 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5071 : || types_match (type, TREE_TYPE (captures[2]))
5072 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5073 : || (optimize_vectors_before_lowering_p ()
5074 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5075 : )
5076 : {
5077 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1586;
5078 0 : {
5079 0 : tree res_op0;
5080 0 : res_op0 = captures[1];
5081 0 : tree res_op1;
5082 0 : {
5083 0 : tree _o1[2], _r1;
5084 0 : _o1[0] = captures[2];
5085 0 : _o1[1] = captures[5];
5086 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5087 0 : if (EXPR_P (_r1))
5088 0 : goto next_after_fail1586;
5089 0 : res_op1 = _r1;
5090 : }
5091 0 : tree res_op2;
5092 0 : {
5093 0 : tree _o1[2], _r1;
5094 0 : _o1[0] = captures[3];
5095 0 : _o1[1] = captures[6];
5096 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5097 0 : if (EXPR_P (_r1))
5098 0 : goto next_after_fail1586;
5099 0 : res_op2 = _r1;
5100 : }
5101 0 : tree _r;
5102 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5103 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
5104 0 : return _r;
5105 : }
5106 0 : next_after_fail1586:;
5107 : }
5108 : }
5109 : }
5110 : break;
5111 : }
5112 0 : default:;
5113 : }
5114 0 : {
5115 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5116 0 : if (VECTOR_TYPE_P (type)
5117 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5118 : || types_match (type, TREE_TYPE (captures[2]))
5119 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5120 : || (optimize_vectors_before_lowering_p ()
5121 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5122 : )
5123 : {
5124 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1587;
5125 0 : {
5126 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1587;
5127 0 : tree res_op0;
5128 0 : res_op0 = captures[1];
5129 0 : tree res_op1;
5130 0 : {
5131 0 : tree _o1[2], _r1;
5132 0 : _o1[0] = captures[2];
5133 0 : _o1[1] = unshare_expr (captures[4]);
5134 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5135 0 : if (EXPR_P (_r1))
5136 0 : goto next_after_fail1587;
5137 0 : res_op1 = _r1;
5138 : }
5139 0 : tree res_op2;
5140 0 : {
5141 0 : tree _o1[2], _r1;
5142 0 : _o1[0] = captures[3];
5143 0 : _o1[1] = captures[4];
5144 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5145 0 : if (EXPR_P (_r1))
5146 0 : goto next_after_fail1587;
5147 0 : res_op2 = _r1;
5148 : }
5149 0 : tree _r;
5150 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5151 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
5152 0 : return _r;
5153 : }
5154 0 : next_after_fail1587:;
5155 : }
5156 : }
5157 0 : break;
5158 : }
5159 3521 : default:;
5160 : }
5161 3521 : switch (TREE_CODE (_p1))
5162 : {
5163 0 : case VEC_COND_EXPR:
5164 0 : {
5165 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5166 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5167 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5168 0 : {
5169 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5170 0 : if (VECTOR_TYPE_P (type)
5171 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5172 : || types_match (type, TREE_TYPE (captures[3]))
5173 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5174 : || (optimize_vectors_before_lowering_p ()
5175 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5176 : )
5177 : {
5178 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1588;
5179 0 : {
5180 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1588;
5181 0 : tree res_op0;
5182 0 : res_op0 = captures[2];
5183 0 : tree res_op1;
5184 0 : {
5185 0 : tree _o1[2], _r1;
5186 0 : _o1[0] = unshare_expr (captures[0]);
5187 0 : _o1[1] = captures[3];
5188 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5189 0 : if (EXPR_P (_r1))
5190 0 : goto next_after_fail1588;
5191 0 : res_op1 = _r1;
5192 : }
5193 0 : tree res_op2;
5194 0 : {
5195 0 : tree _o1[2], _r1;
5196 0 : _o1[0] = captures[0];
5197 0 : _o1[1] = captures[4];
5198 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5199 0 : if (EXPR_P (_r1))
5200 0 : goto next_after_fail1588;
5201 0 : res_op2 = _r1;
5202 : }
5203 0 : tree _r;
5204 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5205 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
5206 0 : return _r;
5207 : }
5208 0 : next_after_fail1588:;
5209 : }
5210 : }
5211 0 : break;
5212 : }
5213 : default:;
5214 : }
5215 : return NULL_TREE;
5216 : }
5217 :
5218 : tree
5219 17653954 : generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5220 : {
5221 17653954 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5222 17653954 : switch (TREE_CODE (_p0))
5223 : {
5224 2173 : case RDIV_EXPR:
5225 2173 : {
5226 2173 : tree _q20 = TREE_OPERAND (_p0, 0);
5227 2173 : tree _q21 = TREE_OPERAND (_p0, 1);
5228 2173 : switch (TREE_CODE (_q20))
5229 : {
5230 677 : case REAL_CST:
5231 677 : {
5232 677 : if (real_zerop (_p1))
5233 : {
5234 392 : {
5235 392 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5236 392 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5237 392 : if (res) return res;
5238 : }
5239 : }
5240 : break;
5241 : }
5242 : default:;
5243 : }
5244 : break;
5245 : }
5246 2943 : case TRUNC_MOD_EXPR:
5247 2943 : {
5248 2943 : tree _q20 = TREE_OPERAND (_p0, 0);
5249 2943 : tree _q21 = TREE_OPERAND (_p0, 1);
5250 2943 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5251 : {
5252 74 : {
5253 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5254 74 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
5255 74 : if (res) return res;
5256 : }
5257 : }
5258 : break;
5259 : }
5260 142571 : case MULT_EXPR:
5261 142571 : {
5262 142571 : tree _q20 = TREE_OPERAND (_p0, 0);
5263 142571 : tree _q21 = TREE_OPERAND (_p0, 1);
5264 142571 : switch (TREE_CODE (_p1))
5265 : {
5266 50642 : case MULT_EXPR:
5267 50642 : {
5268 50642 : tree _q50 = TREE_OPERAND (_p1, 0);
5269 50642 : tree _q51 = TREE_OPERAND (_p1, 1);
5270 50642 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5271 : {
5272 10224 : {
5273 10224 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5274 10224 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5275 10224 : if (res) return res;
5276 : }
5277 : }
5278 42461 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5279 : {
5280 0 : {
5281 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5282 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5283 0 : if (res) return res;
5284 : }
5285 : }
5286 42461 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5287 : {
5288 0 : {
5289 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5290 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5291 0 : if (res) return res;
5292 : }
5293 : }
5294 42461 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5295 : {
5296 1374 : {
5297 1374 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5298 1374 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, LT_EXPR);
5299 1374 : if (res) return res;
5300 : }
5301 : }
5302 : break;
5303 : }
5304 : default:;
5305 : }
5306 : break;
5307 : }
5308 3032943 : CASE_CONVERT:
5309 3032943 : {
5310 3032943 : tree _q20 = TREE_OPERAND (_p0, 0);
5311 3032943 : switch (TREE_CODE (_q20))
5312 : {
5313 107 : case EXACT_DIV_EXPR:
5314 107 : {
5315 107 : tree _q30 = TREE_OPERAND (_q20, 0);
5316 107 : tree _q31 = TREE_OPERAND (_q20, 1);
5317 107 : switch (TREE_CODE (_q31))
5318 : {
5319 107 : case INTEGER_CST:
5320 107 : {
5321 107 : switch (TREE_CODE (_p1))
5322 : {
5323 37 : CASE_CONVERT:
5324 37 : {
5325 37 : tree _q60 = TREE_OPERAND (_p1, 0);
5326 37 : switch (TREE_CODE (_q60))
5327 : {
5328 0 : case EXACT_DIV_EXPR:
5329 0 : {
5330 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5331 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5332 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
5333 : {
5334 0 : {
5335 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
5336 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, LT_EXPR);
5337 0 : if (res) return res;
5338 : }
5339 : }
5340 : break;
5341 : }
5342 : default:;
5343 : }
5344 : break;
5345 : }
5346 : default:;
5347 : }
5348 : break;
5349 : }
5350 : default:;
5351 : }
5352 : break;
5353 : }
5354 : default:;
5355 : }
5356 : break;
5357 : }
5358 1028 : case EXACT_DIV_EXPR:
5359 1028 : {
5360 1028 : tree _q20 = TREE_OPERAND (_p0, 0);
5361 1028 : tree _q21 = TREE_OPERAND (_p0, 1);
5362 1028 : switch (TREE_CODE (_q21))
5363 : {
5364 1028 : case INTEGER_CST:
5365 1028 : {
5366 1028 : switch (TREE_CODE (_p1))
5367 : {
5368 2 : case EXACT_DIV_EXPR:
5369 2 : {
5370 2 : tree _q50 = TREE_OPERAND (_p1, 0);
5371 2 : tree _q51 = TREE_OPERAND (_p1, 1);
5372 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5373 : {
5374 0 : {
5375 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5376 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, LT_EXPR);
5377 0 : if (res) return res;
5378 : }
5379 : }
5380 : break;
5381 : }
5382 : default:;
5383 : }
5384 : break;
5385 : }
5386 : default:;
5387 : }
5388 : break;
5389 : }
5390 12427 : case TRUNC_DIV_EXPR:
5391 12427 : {
5392 12427 : tree _q20 = TREE_OPERAND (_p0, 0);
5393 12427 : tree _q21 = TREE_OPERAND (_p0, 1);
5394 12427 : switch (TREE_CODE (_q21))
5395 : {
5396 3483 : case INTEGER_CST:
5397 3483 : {
5398 3483 : switch (TREE_CODE (_p1))
5399 : {
5400 1457 : case INTEGER_CST:
5401 1457 : {
5402 1457 : {
5403 1457 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5404 1457 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, LT_EXPR);
5405 1457 : if (res) return res;
5406 : }
5407 698 : break;
5408 : }
5409 : default:;
5410 : }
5411 : break;
5412 : }
5413 : default:;
5414 : }
5415 : break;
5416 : }
5417 2340342 : case PLUS_EXPR:
5418 2340342 : {
5419 2340342 : tree _q20 = TREE_OPERAND (_p0, 0);
5420 2340342 : tree _q21 = TREE_OPERAND (_p0, 1);
5421 2340342 : switch (TREE_CODE (_p1))
5422 : {
5423 344711 : case PLUS_EXPR:
5424 344711 : {
5425 344711 : tree _q50 = TREE_OPERAND (_p1, 0);
5426 344711 : tree _q51 = TREE_OPERAND (_p1, 1);
5427 344711 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5428 : {
5429 137443 : {
5430 137443 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5431 137443 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5432 137443 : if (res) return res;
5433 : }
5434 : }
5435 285345 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5436 : {
5437 24 : {
5438 24 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5439 24 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5440 24 : if (res) return res;
5441 : }
5442 : }
5443 285329 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5444 : {
5445 48 : {
5446 48 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5447 48 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5448 48 : if (res) return res;
5449 : }
5450 : }
5451 285313 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5452 : {
5453 1735 : {
5454 1735 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5455 1735 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR);
5456 1735 : if (res) return res;
5457 : }
5458 : }
5459 : break;
5460 : }
5461 2280594 : default:;
5462 : }
5463 2280594 : switch (TREE_CODE (_q21))
5464 : {
5465 1761088 : case INTEGER_CST:
5466 1761088 : {
5467 1761088 : switch (TREE_CODE (_p1))
5468 : {
5469 279978 : case PLUS_EXPR:
5470 279978 : {
5471 279978 : tree _q50 = TREE_OPERAND (_p1, 0);
5472 279978 : tree _q51 = TREE_OPERAND (_p1, 1);
5473 279978 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5474 : {
5475 78077 : {
5476 78077 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5477 78077 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5478 78077 : if (res) return res;
5479 : }
5480 : }
5481 : break;
5482 : }
5483 : default:;
5484 : }
5485 : break;
5486 : }
5487 2280589 : default:;
5488 : }
5489 2280589 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5490 : {
5491 208857 : {
5492 208857 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5493 208857 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5494 208857 : if (res) return res;
5495 : }
5496 : }
5497 2099134 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5498 : {
5499 55789 : {
5500 55789 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5501 55789 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5502 55789 : if (res) return res;
5503 : }
5504 : }
5505 : break;
5506 : }
5507 193391 : case MINUS_EXPR:
5508 193391 : {
5509 193391 : tree _q20 = TREE_OPERAND (_p0, 0);
5510 193391 : tree _q21 = TREE_OPERAND (_p0, 1);
5511 193391 : switch (TREE_CODE (_p1))
5512 : {
5513 5206 : case MINUS_EXPR:
5514 5206 : {
5515 5206 : tree _q50 = TREE_OPERAND (_p1, 0);
5516 5206 : tree _q51 = TREE_OPERAND (_p1, 1);
5517 5206 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5518 : {
5519 0 : {
5520 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5521 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5522 0 : if (res) return res;
5523 : }
5524 : }
5525 5206 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5526 : {
5527 215 : {
5528 215 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5529 215 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LT_EXPR);
5530 215 : if (res) return res;
5531 : }
5532 : }
5533 : break;
5534 : }
5535 : default:;
5536 : }
5537 : break;
5538 : }
5539 108719 : case POINTER_DIFF_EXPR:
5540 108719 : {
5541 108719 : tree _q20 = TREE_OPERAND (_p0, 0);
5542 108719 : tree _q21 = TREE_OPERAND (_p0, 1);
5543 108719 : switch (TREE_CODE (_p1))
5544 : {
5545 430 : case POINTER_DIFF_EXPR:
5546 430 : {
5547 430 : tree _q50 = TREE_OPERAND (_p1, 0);
5548 430 : tree _q51 = TREE_OPERAND (_p1, 1);
5549 430 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5550 : {
5551 0 : {
5552 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5553 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LT_EXPR);
5554 0 : if (res) return res;
5555 : }
5556 : }
5557 430 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5558 : {
5559 0 : {
5560 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5561 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, LT_EXPR);
5562 0 : if (res) return res;
5563 : }
5564 : }
5565 : break;
5566 : }
5567 : default:;
5568 : }
5569 : break;
5570 : }
5571 17403416 : default:;
5572 : }
5573 17403416 : switch (TREE_CODE (_p1))
5574 : {
5575 353041 : case PLUS_EXPR:
5576 353041 : {
5577 353041 : tree _q30 = TREE_OPERAND (_p1, 0);
5578 353041 : tree _q31 = TREE_OPERAND (_p1, 1);
5579 353041 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5580 : {
5581 120 : {
5582 120 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5583 120 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
5584 120 : if (res) return res;
5585 : }
5586 : }
5587 352921 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5588 : {
5589 80 : {
5590 80 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5591 80 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
5592 80 : if (res) return res;
5593 : }
5594 : }
5595 : break;
5596 : }
5597 23688 : case MINUS_EXPR:
5598 23688 : {
5599 23688 : tree _q30 = TREE_OPERAND (_p1, 0);
5600 23688 : tree _q31 = TREE_OPERAND (_p1, 1);
5601 23688 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5602 : {
5603 0 : {
5604 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5605 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, LT_EXPR);
5606 0 : if (res) return res;
5607 : }
5608 : }
5609 : break;
5610 : }
5611 17403296 : default:;
5612 : }
5613 17403296 : switch (TREE_CODE (_p0))
5614 : {
5615 193391 : case MINUS_EXPR:
5616 193391 : {
5617 193391 : tree _q20 = TREE_OPERAND (_p0, 0);
5618 193391 : tree _q21 = TREE_OPERAND (_p0, 1);
5619 193391 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5620 : {
5621 3334 : {
5622 3334 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5623 3334 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GT_EXPR);
5624 3334 : if (res) return res;
5625 : }
5626 : }
5627 : break;
5628 : }
5629 1464 : case BIT_IOR_EXPR:
5630 1464 : {
5631 1464 : tree _q20 = TREE_OPERAND (_p0, 0);
5632 1464 : tree _q21 = TREE_OPERAND (_p0, 1);
5633 1464 : if (tree_expr_nonnegative_p (_q20))
5634 : {
5635 553 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5636 : {
5637 0 : {
5638 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5639 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5640 0 : if (res) return res;
5641 : }
5642 : }
5643 : }
5644 1464 : if (tree_expr_nonnegative_p (_q21))
5645 : {
5646 811 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5647 : {
5648 0 : {
5649 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5650 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5651 0 : if (res) return res;
5652 : }
5653 : }
5654 : }
5655 : break;
5656 : }
5657 17400872 : default:;
5658 : }
5659 17400872 : switch (TREE_CODE (_p1))
5660 : {
5661 458 : case BIT_AND_EXPR:
5662 458 : {
5663 458 : tree _q30 = TREE_OPERAND (_p1, 0);
5664 458 : tree _q31 = TREE_OPERAND (_p1, 1);
5665 458 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5666 : {
5667 0 : if (tree_expr_nonnegative_p (_q30))
5668 : {
5669 0 : {
5670 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5671 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5672 0 : if (res) return res;
5673 : }
5674 : }
5675 : }
5676 458 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5677 : {
5678 0 : if (tree_expr_nonnegative_p (_q31))
5679 : {
5680 0 : {
5681 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5682 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5683 0 : if (res) return res;
5684 : }
5685 : }
5686 : }
5687 : break;
5688 : }
5689 17400872 : default:;
5690 : }
5691 17400872 : switch (TREE_CODE (_p0))
5692 : {
5693 6559 : case MAX_EXPR:
5694 6559 : {
5695 6559 : tree _q20 = TREE_OPERAND (_p0, 0);
5696 6559 : tree _q21 = TREE_OPERAND (_p0, 1);
5697 6559 : switch (TREE_CODE (_p1))
5698 : {
5699 8 : case MIN_EXPR:
5700 8 : {
5701 8 : tree _q50 = TREE_OPERAND (_p1, 0);
5702 8 : tree _q51 = TREE_OPERAND (_p1, 1);
5703 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5704 : {
5705 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5706 : {
5707 0 : {
5708 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5709 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR);
5710 0 : if (res) return res;
5711 : }
5712 : }
5713 : }
5714 : break;
5715 : }
5716 : default:;
5717 : }
5718 : break;
5719 : }
5720 9801 : case MIN_EXPR:
5721 9801 : {
5722 9801 : tree _q20 = TREE_OPERAND (_p0, 0);
5723 9801 : tree _q21 = TREE_OPERAND (_p0, 1);
5724 9801 : switch (TREE_CODE (_p1))
5725 : {
5726 0 : case MAX_EXPR:
5727 0 : {
5728 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5729 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5730 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5731 : {
5732 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5733 : {
5734 0 : {
5735 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5736 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
5737 0 : if (res) return res;
5738 : }
5739 : }
5740 : }
5741 : break;
5742 : }
5743 9801 : default:;
5744 : }
5745 9801 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5746 : {
5747 1 : {
5748 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5749 1 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5750 1 : if (res) return res;
5751 : }
5752 : }
5753 9800 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5754 : {
5755 5 : {
5756 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5757 5 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5758 5 : if (res) return res;
5759 : }
5760 : }
5761 : break;
5762 : }
5763 17400869 : default:;
5764 : }
5765 17400869 : switch (TREE_CODE (_p1))
5766 : {
5767 1016 : case MAX_EXPR:
5768 1016 : {
5769 1016 : tree _q30 = TREE_OPERAND (_p1, 0);
5770 1016 : tree _q31 = TREE_OPERAND (_p1, 1);
5771 1016 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5772 : {
5773 0 : {
5774 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5775 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5776 0 : if (res) return res;
5777 : }
5778 : }
5779 1016 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5780 : {
5781 0 : {
5782 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5783 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5784 0 : if (res) return res;
5785 : }
5786 : }
5787 : break;
5788 : }
5789 911 : case MIN_EXPR:
5790 911 : {
5791 911 : tree _q30 = TREE_OPERAND (_p1, 0);
5792 911 : tree _q31 = TREE_OPERAND (_p1, 1);
5793 911 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5794 : {
5795 0 : {
5796 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5797 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5798 0 : if (res) return res;
5799 : }
5800 : }
5801 911 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5802 : {
5803 0 : {
5804 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5805 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5806 0 : if (res) return res;
5807 : }
5808 : }
5809 : break;
5810 : }
5811 17400869 : default:;
5812 : }
5813 17400869 : switch (TREE_CODE (_p0))
5814 : {
5815 6559 : case MAX_EXPR:
5816 6559 : {
5817 6559 : tree _q20 = TREE_OPERAND (_p0, 0);
5818 6559 : tree _q21 = TREE_OPERAND (_p0, 1);
5819 6559 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5820 : {
5821 1 : {
5822 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5823 1 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5824 1 : if (res) return res;
5825 : }
5826 : }
5827 6558 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5828 : {
5829 1 : {
5830 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5831 1 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5832 1 : if (res) return res;
5833 : }
5834 : }
5835 6557 : switch (TREE_CODE (_q21))
5836 : {
5837 6028 : case INTEGER_CST:
5838 6028 : {
5839 6028 : switch (TREE_CODE (_p1))
5840 : {
5841 1 : case INTEGER_CST:
5842 1 : {
5843 1 : {
5844 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5845 1 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
5846 1 : if (res) return res;
5847 : }
5848 0 : break;
5849 : }
5850 : default:;
5851 : }
5852 : break;
5853 : }
5854 : default:;
5855 : }
5856 : break;
5857 : }
5858 9798 : case MIN_EXPR:
5859 9798 : {
5860 9798 : tree _q20 = TREE_OPERAND (_p0, 0);
5861 9798 : tree _q21 = TREE_OPERAND (_p0, 1);
5862 9798 : switch (TREE_CODE (_q21))
5863 : {
5864 774 : case INTEGER_CST:
5865 774 : {
5866 774 : switch (TREE_CODE (_p1))
5867 : {
5868 2 : case INTEGER_CST:
5869 2 : {
5870 2 : {
5871 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5872 2 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
5873 2 : if (res) return res;
5874 : }
5875 0 : break;
5876 : }
5877 : default:;
5878 : }
5879 : break;
5880 : }
5881 : default:;
5882 : }
5883 : break;
5884 : }
5885 3032823 : CASE_CONVERT:
5886 3032823 : {
5887 3032823 : tree _q20 = TREE_OPERAND (_p0, 0);
5888 3032823 : switch (TREE_CODE (_q20))
5889 : {
5890 0 : case GE_EXPR:
5891 0 : {
5892 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5893 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5894 0 : if (tree_zero_one_valued_p (_q30))
5895 : {
5896 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5897 : {
5898 0 : {
5899 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
5900 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR);
5901 0 : if (res) return res;
5902 : }
5903 : }
5904 : }
5905 : break;
5906 : }
5907 : default:;
5908 : }
5909 : break;
5910 : }
5911 15 : case GE_EXPR:
5912 15 : {
5913 15 : tree _q20 = TREE_OPERAND (_p0, 0);
5914 15 : tree _q21 = TREE_OPERAND (_p0, 1);
5915 15 : if (tree_zero_one_valued_p (_q20))
5916 : {
5917 3 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5918 : {
5919 3 : {
5920 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5921 3 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR);
5922 3 : if (res) return res;
5923 : }
5924 : }
5925 : }
5926 : break;
5927 : }
5928 904 : case VEC_COND_EXPR:
5929 904 : {
5930 904 : tree _q20 = TREE_OPERAND (_p0, 0);
5931 904 : tree _q21 = TREE_OPERAND (_p0, 1);
5932 904 : tree _q22 = TREE_OPERAND (_p0, 2);
5933 904 : switch (TREE_CODE (_p1))
5934 : {
5935 0 : case VEC_COND_EXPR:
5936 0 : {
5937 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5938 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5939 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5940 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5941 : {
5942 0 : {
5943 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5944 0 : if (VECTOR_TYPE_P (type)
5945 0 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5946 0 : || types_match (type, TREE_TYPE (captures[2]))
5947 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5948 : || (optimize_vectors_before_lowering_p ()
5949 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5950 : )
5951 : {
5952 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1627;
5953 0 : {
5954 0 : tree res_op0;
5955 0 : res_op0 = captures[1];
5956 0 : tree res_op1;
5957 0 : {
5958 0 : tree _o1[2], _r1;
5959 0 : _o1[0] = captures[2];
5960 0 : _o1[1] = captures[5];
5961 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5962 0 : if (EXPR_P (_r1))
5963 0 : goto next_after_fail1627;
5964 0 : res_op1 = _r1;
5965 : }
5966 0 : tree res_op2;
5967 0 : {
5968 0 : tree _o1[2], _r1;
5969 0 : _o1[0] = captures[3];
5970 0 : _o1[1] = captures[6];
5971 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5972 0 : if (EXPR_P (_r1))
5973 0 : goto next_after_fail1627;
5974 0 : res_op2 = _r1;
5975 : }
5976 0 : tree _r;
5977 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5978 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
5979 0 : return _r;
5980 : }
5981 0 : next_after_fail1627:;
5982 : }
5983 : }
5984 : }
5985 : break;
5986 : }
5987 904 : default:;
5988 : }
5989 904 : {
5990 904 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5991 904 : if (VECTOR_TYPE_P (type)
5992 904 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5993 904 : || types_match (type, TREE_TYPE (captures[2]))
5994 904 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5995 : || (optimize_vectors_before_lowering_p ()
5996 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5997 : )
5998 : {
5999 904 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1628;
6000 904 : {
6001 904 : if (! tree_invariant_p (captures[4])) goto next_after_fail1628;
6002 36 : tree res_op0;
6003 36 : res_op0 = captures[1];
6004 36 : tree res_op1;
6005 36 : {
6006 36 : tree _o1[2], _r1;
6007 36 : _o1[0] = captures[2];
6008 36 : _o1[1] = unshare_expr (captures[4]);
6009 36 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6010 36 : if (EXPR_P (_r1))
6011 35 : goto next_after_fail1628;
6012 1 : res_op1 = _r1;
6013 : }
6014 1 : tree res_op2;
6015 1 : {
6016 1 : tree _o1[2], _r1;
6017 1 : _o1[0] = captures[3];
6018 1 : _o1[1] = captures[4];
6019 1 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6020 1 : if (EXPR_P (_r1))
6021 0 : goto next_after_fail1628;
6022 1 : res_op2 = _r1;
6023 : }
6024 1 : tree _r;
6025 1 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6026 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6027 1 : return _r;
6028 : }
6029 903 : next_after_fail1628:;
6030 : }
6031 : }
6032 903 : break;
6033 : }
6034 17400860 : default:;
6035 : }
6036 17400860 : switch (TREE_CODE (_p1))
6037 : {
6038 68 : case VEC_COND_EXPR:
6039 68 : {
6040 68 : tree _q30 = TREE_OPERAND (_p1, 0);
6041 68 : tree _q31 = TREE_OPERAND (_p1, 1);
6042 68 : tree _q32 = TREE_OPERAND (_p1, 2);
6043 68 : {
6044 68 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
6045 68 : if (VECTOR_TYPE_P (type)
6046 68 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
6047 68 : || types_match (type, TREE_TYPE (captures[3]))
6048 68 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
6049 : || (optimize_vectors_before_lowering_p ()
6050 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
6051 : )
6052 : {
6053 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1629;
6054 68 : {
6055 68 : if (! tree_invariant_p (captures[0])) goto next_after_fail1629;
6056 0 : tree res_op0;
6057 0 : res_op0 = captures[2];
6058 0 : tree res_op1;
6059 0 : {
6060 0 : tree _o1[2], _r1;
6061 0 : _o1[0] = unshare_expr (captures[0]);
6062 0 : _o1[1] = captures[3];
6063 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6064 0 : if (EXPR_P (_r1))
6065 0 : goto next_after_fail1629;
6066 0 : res_op1 = _r1;
6067 : }
6068 0 : tree res_op2;
6069 0 : {
6070 0 : tree _o1[2], _r1;
6071 0 : _o1[0] = captures[0];
6072 0 : _o1[1] = captures[4];
6073 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6074 0 : if (EXPR_P (_r1))
6075 0 : goto next_after_fail1629;
6076 0 : res_op2 = _r1;
6077 : }
6078 0 : tree _r;
6079 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
6081 0 : return _r;
6082 : }
6083 68 : next_after_fail1629:;
6084 : }
6085 : }
6086 68 : break;
6087 : }
6088 17400860 : default:;
6089 : }
6090 17400860 : if (uniform_integer_cst_p (_p1))
6091 : {
6092 6119634 : {
6093 6119634 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6094 6119634 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6095 6119634 : if (res) return res;
6096 : }
6097 : }
6098 14944166 : switch (TREE_CODE (_p0))
6099 : {
6100 126097 : case MULT_EXPR:
6101 126097 : {
6102 126097 : tree _q20 = TREE_OPERAND (_p0, 0);
6103 126097 : tree _q21 = TREE_OPERAND (_p0, 1);
6104 126097 : switch (TREE_CODE (_q21))
6105 : {
6106 69214 : case INTEGER_CST:
6107 69214 : {
6108 69214 : if (integer_zerop (_p1))
6109 : {
6110 5828 : {
6111 5828 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6112 5828 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6113 5828 : if (res) return res;
6114 : }
6115 : }
6116 : break;
6117 : }
6118 : default:;
6119 : }
6120 : break;
6121 : }
6122 14941174 : default:;
6123 : }
6124 14941174 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
6125 : {
6126 3913 : {
6127 3913 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6128 3913 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, LT_EXPR);
6129 3913 : if (res) return res;
6130 : }
6131 : }
6132 14937261 : switch (TREE_CODE (_p0))
6133 : {
6134 2484 : case BIT_NOT_EXPR:
6135 2484 : {
6136 2484 : tree _q20 = TREE_OPERAND (_p0, 0);
6137 2484 : switch (TREE_CODE (_p1))
6138 : {
6139 7 : case BIT_NOT_EXPR:
6140 7 : {
6141 7 : tree _q40 = TREE_OPERAND (_p1, 0);
6142 7 : {
6143 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
6144 7 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LT_EXPR);
6145 7 : if (res) return res;
6146 : }
6147 0 : break;
6148 : }
6149 2477 : default:;
6150 : }
6151 2477 : {
6152 2477 : tree _p1_pops[1];
6153 2477 : if (tree_nop_convert (_p1, _p1_pops))
6154 : {
6155 24 : tree _q40 = _p1_pops[0];
6156 24 : switch (TREE_CODE (_q40))
6157 : {
6158 0 : case BIT_NOT_EXPR:
6159 0 : {
6160 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6161 0 : {
6162 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
6163 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LT_EXPR);
6164 0 : if (res) return res;
6165 : }
6166 0 : break;
6167 : }
6168 : default:;
6169 : }
6170 : }
6171 : }
6172 2477 : if (CONSTANT_CLASS_P (_p1))
6173 : {
6174 20 : {
6175 20 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6176 20 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6177 20 : if (res) return res;
6178 : }
6179 : }
6180 : break;
6181 : }
6182 14937234 : default:;
6183 : }
6184 14937234 : {
6185 14937234 : tree _p0_pops[1];
6186 14937234 : if (tree_nop_convert (_p0, _p0_pops))
6187 : {
6188 1620865 : tree _q20 = _p0_pops[0];
6189 1620865 : switch (TREE_CODE (_q20))
6190 : {
6191 0 : case BIT_NOT_EXPR:
6192 0 : {
6193 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6194 0 : switch (TREE_CODE (_p1))
6195 : {
6196 0 : case BIT_NOT_EXPR:
6197 0 : {
6198 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6199 0 : {
6200 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
6201 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR);
6202 0 : if (res) return res;
6203 : }
6204 0 : break;
6205 : }
6206 0 : default:;
6207 : }
6208 0 : {
6209 0 : tree _p1_pops[1];
6210 0 : if (tree_nop_convert (_p1, _p1_pops))
6211 : {
6212 0 : tree _q50 = _p1_pops[0];
6213 0 : switch (TREE_CODE (_q50))
6214 : {
6215 0 : case BIT_NOT_EXPR:
6216 0 : {
6217 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6218 0 : {
6219 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
6220 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR);
6221 0 : if (res) return res;
6222 : }
6223 0 : break;
6224 : }
6225 : default:;
6226 : }
6227 : }
6228 : }
6229 0 : if (CONSTANT_CLASS_P (_p1))
6230 : {
6231 0 : {
6232 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
6233 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6234 0 : if (res) return res;
6235 : }
6236 : }
6237 : break;
6238 : }
6239 : default:;
6240 : }
6241 : }
6242 : }
6243 14937234 : switch (TREE_CODE (_p1))
6244 : {
6245 2928032 : case REAL_CST:
6246 2928032 : {
6247 2928032 : {
6248 2928032 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6249 2928032 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, LT_EXPR);
6250 2928032 : if (res) return res;
6251 : }
6252 2927950 : break;
6253 : }
6254 14937152 : default:;
6255 : }
6256 14937152 : switch (TREE_CODE (_p0))
6257 : {
6258 1976284 : case PLUS_EXPR:
6259 1976284 : {
6260 1976284 : tree _q20 = TREE_OPERAND (_p0, 0);
6261 1976284 : tree _q21 = TREE_OPERAND (_p0, 1);
6262 1976284 : switch (TREE_CODE (_q21))
6263 : {
6264 567 : case REAL_CST:
6265 567 : {
6266 567 : switch (TREE_CODE (_p1))
6267 : {
6268 217 : case REAL_CST:
6269 217 : {
6270 217 : {
6271 217 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6272 217 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR);
6273 217 : if (res) return res;
6274 : }
6275 215 : break;
6276 : }
6277 : default:;
6278 : }
6279 : break;
6280 : }
6281 1465543 : case INTEGER_CST:
6282 1465543 : {
6283 1465543 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6284 : {
6285 17969 : {
6286 17969 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
6287 17969 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6288 17969 : if (res) return res;
6289 : }
6290 : }
6291 : break;
6292 : }
6293 : default:;
6294 : }
6295 : break;
6296 : }
6297 183796 : case MINUS_EXPR:
6298 183796 : {
6299 183796 : tree _q20 = TREE_OPERAND (_p0, 0);
6300 183796 : tree _q21 = TREE_OPERAND (_p0, 1);
6301 183796 : switch (TREE_CODE (_q21))
6302 : {
6303 202 : case REAL_CST:
6304 202 : {
6305 202 : switch (TREE_CODE (_p1))
6306 : {
6307 187 : case REAL_CST:
6308 187 : {
6309 187 : {
6310 187 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6311 187 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, MINUS_EXPR, LT_EXPR);
6312 187 : if (res) return res;
6313 : }
6314 187 : break;
6315 : }
6316 : default:;
6317 : }
6318 : break;
6319 : }
6320 183796 : default:;
6321 : }
6322 183796 : switch (TREE_CODE (_q20))
6323 : {
6324 18901 : case REAL_CST:
6325 18901 : {
6326 18901 : switch (TREE_CODE (_p1))
6327 : {
6328 18688 : case REAL_CST:
6329 18688 : {
6330 18688 : {
6331 18688 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6332 18688 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LT_EXPR);
6333 18688 : if (res) return res;
6334 : }
6335 18678 : break;
6336 : }
6337 : default:;
6338 : }
6339 : break;
6340 : }
6341 : default:;
6342 : }
6343 : break;
6344 : }
6345 49183 : case FLOAT_EXPR:
6346 49183 : {
6347 49183 : tree _q20 = TREE_OPERAND (_p0, 0);
6348 49183 : switch (TREE_CODE (_p1))
6349 : {
6350 102 : case FLOAT_EXPR:
6351 102 : {
6352 102 : tree _q40 = TREE_OPERAND (_p1, 0);
6353 102 : {
6354 102 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6355 102 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
6356 102 : if (res) return res;
6357 : }
6358 71 : break;
6359 : }
6360 656 : case REAL_CST:
6361 656 : {
6362 656 : {
6363 656 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6364 656 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6365 656 : if (res) return res;
6366 : }
6367 552 : break;
6368 : }
6369 : default:;
6370 : }
6371 : break;
6372 : }
6373 694 : case EXACT_DIV_EXPR:
6374 694 : {
6375 694 : tree _q20 = TREE_OPERAND (_p0, 0);
6376 694 : tree _q21 = TREE_OPERAND (_p0, 1);
6377 694 : switch (TREE_CODE (_q21))
6378 : {
6379 694 : case INTEGER_CST:
6380 694 : {
6381 694 : switch (TREE_CODE (_p1))
6382 : {
6383 19 : case INTEGER_CST:
6384 19 : {
6385 19 : {
6386 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6387 19 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LT_EXPR);
6388 19 : if (res) return res;
6389 : }
6390 0 : break;
6391 : }
6392 : default:;
6393 : }
6394 : break;
6395 : }
6396 : default:;
6397 : }
6398 : break;
6399 : }
6400 2581438 : CASE_CONVERT:
6401 2581438 : {
6402 2581438 : tree _q20 = TREE_OPERAND (_p0, 0);
6403 2581438 : switch (TREE_CODE (_q20))
6404 : {
6405 107 : case EXACT_DIV_EXPR:
6406 107 : {
6407 107 : tree _q30 = TREE_OPERAND (_q20, 0);
6408 107 : tree _q31 = TREE_OPERAND (_q20, 1);
6409 107 : switch (TREE_CODE (_q31))
6410 : {
6411 107 : case INTEGER_CST:
6412 107 : {
6413 107 : switch (TREE_CODE (_p1))
6414 : {
6415 0 : case INTEGER_CST:
6416 0 : {
6417 0 : {
6418 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6419 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
6420 0 : if (res) return res;
6421 : }
6422 0 : break;
6423 : }
6424 : default:;
6425 : }
6426 : break;
6427 : }
6428 : default:;
6429 : }
6430 : break;
6431 : }
6432 2581438 : default:;
6433 : }
6434 2581438 : switch (TREE_CODE (_p1))
6435 : {
6436 1393518 : CASE_CONVERT:
6437 1393518 : {
6438 1393518 : tree _q40 = TREE_OPERAND (_p1, 0);
6439 1393518 : {
6440 1393518 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6441 1393518 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LT_EXPR);
6442 1393518 : if (res) return res;
6443 : }
6444 1140337 : break;
6445 : }
6446 2328257 : default:;
6447 : }
6448 2328257 : {
6449 2328257 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6450 2328257 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, LT_EXPR);
6451 2328257 : if (res) return res;
6452 : }
6453 1942483 : switch (TREE_CODE (_q20))
6454 : {
6455 50843 : case ADDR_EXPR:
6456 50843 : {
6457 50843 : switch (TREE_CODE (_p1))
6458 : {
6459 50348 : CASE_CONVERT:
6460 50348 : {
6461 50348 : tree _q40 = TREE_OPERAND (_p1, 0);
6462 50348 : switch (TREE_CODE (_q40))
6463 : {
6464 50348 : case ADDR_EXPR:
6465 50348 : {
6466 50348 : {
6467 50348 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6468 50348 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LT_EXPR);
6469 50348 : if (res) return res;
6470 : }
6471 310 : break;
6472 : }
6473 : default:;
6474 : }
6475 : break;
6476 : }
6477 468 : case ADDR_EXPR:
6478 468 : {
6479 468 : {
6480 468 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6481 468 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LT_EXPR);
6482 468 : if (res) return res;
6483 : }
6484 0 : break;
6485 : }
6486 : default:;
6487 : }
6488 : break;
6489 : }
6490 1891977 : default:;
6491 : }
6492 1891977 : if (uniform_integer_cst_p (_p1))
6493 : {
6494 223172 : {
6495 223172 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6496 223172 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LT_EXPR);
6497 223172 : if (res) return res;
6498 : }
6499 : }
6500 : break;
6501 : }
6502 2277 : case NEGATE_EXPR:
6503 2277 : {
6504 2277 : tree _q20 = TREE_OPERAND (_p0, 0);
6505 2277 : switch (TREE_CODE (_p1))
6506 : {
6507 0 : case NEGATE_EXPR:
6508 0 : {
6509 0 : tree _q40 = TREE_OPERAND (_p1, 0);
6510 0 : {
6511 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6512 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6513 0 : if (res) return res;
6514 : }
6515 0 : break;
6516 : }
6517 2277 : default:;
6518 : }
6519 2277 : if (CONSTANT_CLASS_P (_p1))
6520 : {
6521 301 : {
6522 301 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6523 301 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6524 301 : if (res) return res;
6525 : }
6526 : }
6527 : break;
6528 : }
6529 30067 : case ADDR_EXPR:
6530 30067 : {
6531 30067 : switch (TREE_CODE (_p1))
6532 : {
6533 0 : CASE_CONVERT:
6534 0 : {
6535 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6536 0 : switch (TREE_CODE (_q30))
6537 : {
6538 0 : case ADDR_EXPR:
6539 0 : {
6540 0 : {
6541 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
6542 0 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LT_EXPR);
6543 0 : if (res) return res;
6544 : }
6545 0 : break;
6546 : }
6547 : default:;
6548 : }
6549 : break;
6550 : }
6551 29644 : case ADDR_EXPR:
6552 29644 : {
6553 29644 : {
6554 29644 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6555 29644 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LT_EXPR);
6556 29644 : if (res) return res;
6557 : }
6558 620 : break;
6559 : }
6560 : default:;
6561 : }
6562 : break;
6563 : }
6564 1720771 : case CALL_EXPR:
6565 1720771 : switch (get_call_combined_fn (_p0))
6566 : {
6567 5 : case CFN_BUILT_IN_SQRTF:
6568 5 : if (call_expr_nargs (_p0) == 1)
6569 : {
6570 5 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6571 5 : switch (TREE_CODE (_p1))
6572 : {
6573 5 : case REAL_CST:
6574 5 : {
6575 5 : {
6576 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6577 5 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6578 5 : if (res) return res;
6579 : }
6580 0 : break;
6581 : }
6582 0 : case CALL_EXPR:
6583 0 : switch (get_call_combined_fn (_p1))
6584 : {
6585 0 : case CFN_BUILT_IN_SQRTF:
6586 0 : if (call_expr_nargs (_p1) == 1)
6587 : {
6588 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6589 0 : {
6590 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6591 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6592 0 : if (res) return res;
6593 : }
6594 : }
6595 : break;
6596 : default:;
6597 : }
6598 : break;
6599 : default:;
6600 : }
6601 : }
6602 : break;
6603 0 : case CFN_BUILT_IN_SQRTL:
6604 0 : if (call_expr_nargs (_p0) == 1)
6605 : {
6606 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6607 0 : switch (TREE_CODE (_p1))
6608 : {
6609 0 : case REAL_CST:
6610 0 : {
6611 0 : {
6612 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6613 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6614 0 : if (res) return res;
6615 : }
6616 0 : break;
6617 : }
6618 0 : case CALL_EXPR:
6619 0 : switch (get_call_combined_fn (_p1))
6620 : {
6621 0 : case CFN_BUILT_IN_SQRTL:
6622 0 : if (call_expr_nargs (_p1) == 1)
6623 : {
6624 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6625 0 : {
6626 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6627 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6628 0 : if (res) return res;
6629 : }
6630 : }
6631 : break;
6632 : default:;
6633 : }
6634 : break;
6635 : default:;
6636 : }
6637 : }
6638 : break;
6639 4 : case CFN_BUILT_IN_SQRT:
6640 4 : if (call_expr_nargs (_p0) == 1)
6641 : {
6642 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6643 4 : switch (TREE_CODE (_p1))
6644 : {
6645 4 : case REAL_CST:
6646 4 : {
6647 4 : {
6648 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6649 4 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6650 4 : if (res) return res;
6651 : }
6652 1 : break;
6653 : }
6654 0 : case CALL_EXPR:
6655 0 : switch (get_call_combined_fn (_p1))
6656 : {
6657 0 : case CFN_BUILT_IN_SQRT:
6658 0 : if (call_expr_nargs (_p1) == 1)
6659 : {
6660 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6661 0 : {
6662 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6663 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6664 0 : if (res) return res;
6665 : }
6666 : }
6667 : break;
6668 : default:;
6669 : }
6670 : break;
6671 : default:;
6672 : }
6673 : }
6674 : break;
6675 0 : case CFN_SQRT:
6676 0 : if (call_expr_nargs (_p0) == 1)
6677 : {
6678 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6679 0 : switch (TREE_CODE (_p1))
6680 : {
6681 0 : case REAL_CST:
6682 0 : {
6683 0 : {
6684 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6685 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6686 0 : if (res) return res;
6687 : }
6688 0 : break;
6689 : }
6690 0 : case CALL_EXPR:
6691 0 : switch (get_call_combined_fn (_p1))
6692 : {
6693 0 : case CFN_SQRT:
6694 0 : if (call_expr_nargs (_p1) == 1)
6695 : {
6696 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6697 0 : {
6698 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6699 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6700 0 : if (res) return res;
6701 : }
6702 : }
6703 : break;
6704 : default:;
6705 : }
6706 : break;
6707 : default:;
6708 : }
6709 : }
6710 : break;
6711 : default:;
6712 : }
6713 : break;
6714 14197210 : default:;
6715 : }
6716 14197210 : switch (TREE_CODE (_p1))
6717 : {
6718 1877453 : CASE_CONVERT:
6719 1877453 : {
6720 1877453 : tree _q30 = TREE_OPERAND (_p1, 0);
6721 1877453 : switch (TREE_CODE (_q30))
6722 : {
6723 0 : case NE_EXPR:
6724 0 : {
6725 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6726 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6727 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6728 : {
6729 0 : if (integer_zerop (_q41))
6730 : {
6731 0 : {
6732 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6733 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
6734 : )
6735 : {
6736 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1630;
6737 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1630;
6738 0 : {
6739 0 : tree _r;
6740 0 : _r = constant_boolean_node (false, type);
6741 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
6742 0 : return _r;
6743 : }
6744 : next_after_fail1630:;
6745 : }
6746 : }
6747 : }
6748 : }
6749 : break;
6750 : }
6751 : default:;
6752 : }
6753 : break;
6754 : }
6755 14197210 : default:;
6756 : }
6757 14197210 : if (uniform_integer_cst_p (_p1))
6758 : {
6759 3271296 : {
6760 3271296 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6761 3271296 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LT_EXPR);
6762 3271296 : if (res) return res;
6763 : }
6764 : }
6765 13739296 : switch (TREE_CODE (_p0))
6766 : {
6767 1888167 : CASE_CONVERT:
6768 1888167 : {
6769 1888167 : tree _q20 = TREE_OPERAND (_p0, 0);
6770 1888167 : switch (TREE_CODE (_q20))
6771 : {
6772 84544 : case PLUS_EXPR:
6773 84544 : {
6774 84544 : tree _q30 = TREE_OPERAND (_q20, 0);
6775 84544 : tree _q31 = TREE_OPERAND (_q20, 1);
6776 84544 : switch (TREE_CODE (_q30))
6777 : {
6778 56351 : CASE_CONVERT:
6779 56351 : {
6780 56351 : tree _q40 = TREE_OPERAND (_q30, 0);
6781 56351 : switch (TREE_CODE (_q31))
6782 : {
6783 56314 : case INTEGER_CST:
6784 56314 : {
6785 56314 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6786 : {
6787 27 : {
6788 27 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
6789 27 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6790 27 : if (res) return res;
6791 : }
6792 : }
6793 : break;
6794 : }
6795 : default:;
6796 : }
6797 : break;
6798 : }
6799 : default:;
6800 : }
6801 : break;
6802 : }
6803 : default:;
6804 : }
6805 : break;
6806 : }
6807 13739269 : default:;
6808 : }
6809 13739269 : switch (TREE_CODE (_p1))
6810 : {
6811 1877453 : CASE_CONVERT:
6812 1877453 : {
6813 1877453 : tree _q30 = TREE_OPERAND (_p1, 0);
6814 1877453 : switch (TREE_CODE (_q30))
6815 : {
6816 22777 : case PLUS_EXPR:
6817 22777 : {
6818 22777 : tree _q40 = TREE_OPERAND (_q30, 0);
6819 22777 : tree _q41 = TREE_OPERAND (_q30, 1);
6820 22777 : switch (TREE_CODE (_q40))
6821 : {
6822 20742 : CASE_CONVERT:
6823 20742 : {
6824 20742 : tree _q50 = TREE_OPERAND (_q40, 0);
6825 20742 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6826 : {
6827 0 : switch (TREE_CODE (_q41))
6828 : {
6829 0 : case INTEGER_CST:
6830 0 : {
6831 0 : {
6832 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
6833 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6834 0 : if (res) return res;
6835 : }
6836 0 : break;
6837 : }
6838 : default:;
6839 : }
6840 : }
6841 : break;
6842 : }
6843 : default:;
6844 : }
6845 : break;
6846 : }
6847 : default:;
6848 : }
6849 : break;
6850 : }
6851 352921 : case PLUS_EXPR:
6852 352921 : {
6853 352921 : tree _q30 = TREE_OPERAND (_p1, 0);
6854 352921 : tree _q31 = TREE_OPERAND (_p1, 1);
6855 352921 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6856 : {
6857 80 : switch (TREE_CODE (_q31))
6858 : {
6859 64 : case INTEGER_CST:
6860 64 : {
6861 64 : {
6862 64 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
6863 64 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6864 64 : if (res) return res;
6865 : }
6866 0 : break;
6867 : }
6868 : default:;
6869 : }
6870 : }
6871 : break;
6872 : }
6873 23688 : case MINUS_EXPR:
6874 23688 : {
6875 23688 : tree _q30 = TREE_OPERAND (_p1, 0);
6876 23688 : tree _q31 = TREE_OPERAND (_p1, 1);
6877 23688 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6878 : {
6879 0 : {
6880 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
6881 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR);
6882 0 : if (res) return res;
6883 : }
6884 : }
6885 : break;
6886 : }
6887 13739205 : default:;
6888 : }
6889 13739205 : switch (TREE_CODE (_p0))
6890 : {
6891 1941534 : case PLUS_EXPR:
6892 1941534 : {
6893 1941534 : tree _q20 = TREE_OPERAND (_p0, 0);
6894 1941534 : tree _q21 = TREE_OPERAND (_p0, 1);
6895 1941534 : switch (TREE_CODE (_q20))
6896 : {
6897 1345 : case MINUS_EXPR:
6898 1345 : {
6899 1345 : tree _q30 = TREE_OPERAND (_q20, 0);
6900 1345 : tree _q31 = TREE_OPERAND (_q20, 1);
6901 1345 : if (integer_minus_onep (_q21))
6902 : {
6903 49 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6904 : {
6905 1 : {
6906 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6907 1 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LT_EXPR);
6908 1 : if (res) return res;
6909 : }
6910 : }
6911 : }
6912 : break;
6913 : }
6914 : default:;
6915 : }
6916 : break;
6917 : }
6918 13739204 : default:;
6919 : }
6920 13739204 : switch (TREE_CODE (_p1))
6921 : {
6922 0 : case REALPART_EXPR:
6923 0 : {
6924 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6925 0 : switch (TREE_CODE (_q30))
6926 : {
6927 0 : case CALL_EXPR:
6928 0 : switch (get_call_combined_fn (_q30))
6929 : {
6930 0 : case CFN_SUB_OVERFLOW:
6931 0 : if (call_expr_nargs (_q30) == 2)
6932 : {
6933 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
6934 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
6935 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6936 : {
6937 0 : {
6938 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
6939 0 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
6940 0 : if (res) return res;
6941 : }
6942 : }
6943 : }
6944 : break;
6945 : default:;
6946 : }
6947 : break;
6948 : default:;
6949 : }
6950 : break;
6951 : }
6952 13739204 : default:;
6953 : }
6954 13739204 : switch (TREE_CODE (_p0))
6955 : {
6956 20 : case REALPART_EXPR:
6957 20 : {
6958 20 : tree _q20 = TREE_OPERAND (_p0, 0);
6959 20 : switch (TREE_CODE (_q20))
6960 : {
6961 0 : case CALL_EXPR:
6962 0 : switch (get_call_combined_fn (_q20))
6963 : {
6964 0 : case CFN_ADD_OVERFLOW:
6965 0 : if (call_expr_nargs (_q20) == 2)
6966 : {
6967 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
6968 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
6969 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6970 : {
6971 0 : {
6972 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
6973 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6974 0 : if (res) return res;
6975 : }
6976 : }
6977 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6978 : {
6979 0 : {
6980 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
6981 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6982 0 : if (res) return res;
6983 : }
6984 : }
6985 : }
6986 : break;
6987 : default:;
6988 : }
6989 : break;
6990 : default:;
6991 : }
6992 : break;
6993 : }
6994 7226 : case TRUNC_DIV_EXPR:
6995 7226 : {
6996 7226 : tree _q20 = TREE_OPERAND (_p0, 0);
6997 7226 : tree _q21 = TREE_OPERAND (_p0, 1);
6998 7226 : if (integer_all_onesp (_q20))
6999 : {
7000 1056 : {
7001 1056 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
7002 1056 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7003 1056 : if (res) return res;
7004 : }
7005 : }
7006 : break;
7007 : }
7008 118384 : case MULT_EXPR:
7009 118384 : {
7010 118384 : tree _q20 = TREE_OPERAND (_p0, 0);
7011 118384 : tree _q21 = TREE_OPERAND (_p0, 1);
7012 118384 : switch (TREE_CODE (_q21))
7013 : {
7014 11651 : case REAL_CST:
7015 11651 : {
7016 11651 : switch (TREE_CODE (_p1))
7017 : {
7018 825 : case REAL_CST:
7019 825 : {
7020 825 : {
7021 825 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7022 825 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
7023 825 : if (res) return res;
7024 : }
7025 825 : break;
7026 : }
7027 : default:;
7028 : }
7029 : break;
7030 : }
7031 : default:;
7032 : }
7033 : break;
7034 : }
7035 1941533 : case PLUS_EXPR:
7036 1941533 : {
7037 1941533 : tree _q20 = TREE_OPERAND (_p0, 0);
7038 1941533 : tree _q21 = TREE_OPERAND (_p0, 1);
7039 1941533 : switch (TREE_CODE (_q21))
7040 : {
7041 1446178 : case INTEGER_CST:
7042 1446178 : {
7043 1446178 : switch (TREE_CODE (_p1))
7044 : {
7045 229534 : case INTEGER_CST:
7046 229534 : {
7047 229534 : {
7048 229534 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7049 229534 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR, GT_EXPR);
7050 229534 : if (res) return res;
7051 : }
7052 15222 : break;
7053 : }
7054 : default:;
7055 : }
7056 : break;
7057 : }
7058 : default:;
7059 : }
7060 : break;
7061 : }
7062 183636 : case MINUS_EXPR:
7063 183636 : {
7064 183636 : tree _q20 = TREE_OPERAND (_p0, 0);
7065 183636 : tree _q21 = TREE_OPERAND (_p0, 1);
7066 183636 : switch (TREE_CODE (_q21))
7067 : {
7068 0 : case INTEGER_CST:
7069 0 : {
7070 0 : switch (TREE_CODE (_p1))
7071 : {
7072 0 : case INTEGER_CST:
7073 0 : {
7074 0 : {
7075 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7076 0 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR, GT_EXPR);
7077 0 : if (res) return res;
7078 : }
7079 0 : break;
7080 : }
7081 : default:;
7082 : }
7083 : break;
7084 : }
7085 183636 : default:;
7086 : }
7087 183636 : switch (TREE_CODE (_q20))
7088 : {
7089 44682 : case INTEGER_CST:
7090 44682 : {
7091 44682 : switch (TREE_CODE (_p1))
7092 : {
7093 1645 : case INTEGER_CST:
7094 1645 : {
7095 1645 : {
7096 1645 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7097 1645 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
7098 1645 : if (res) return res;
7099 : }
7100 0 : break;
7101 : }
7102 : default:;
7103 : }
7104 : break;
7105 : }
7106 : default:;
7107 : }
7108 : break;
7109 : }
7110 1720748 : case CALL_EXPR:
7111 1720748 : switch (get_call_combined_fn (_p0))
7112 : {
7113 3 : case CFN_BUILT_IN_CTZ:
7114 3 : if (call_expr_nargs (_p0) == 1)
7115 : {
7116 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7117 3 : switch (TREE_CODE (_p1))
7118 : {
7119 3 : case INTEGER_CST:
7120 3 : {
7121 3 : {
7122 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7123 3 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
7124 3 : if (res) return res;
7125 : }
7126 0 : break;
7127 : }
7128 : default:;
7129 : }
7130 : }
7131 : break;
7132 2 : case CFN_BUILT_IN_CTZL:
7133 2 : if (call_expr_nargs (_p0) == 1)
7134 : {
7135 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7136 2 : switch (TREE_CODE (_p1))
7137 : {
7138 2 : case INTEGER_CST:
7139 2 : {
7140 2 : {
7141 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7142 2 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
7143 2 : if (res) return res;
7144 : }
7145 0 : break;
7146 : }
7147 : default:;
7148 : }
7149 : }
7150 : break;
7151 0 : case CFN_BUILT_IN_CTZIMAX:
7152 0 : if (call_expr_nargs (_p0) == 1)
7153 : {
7154 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7155 0 : switch (TREE_CODE (_p1))
7156 : {
7157 0 : case INTEGER_CST:
7158 0 : {
7159 0 : {
7160 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7161 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
7162 0 : if (res) return res;
7163 : }
7164 0 : break;
7165 : }
7166 : default:;
7167 : }
7168 : }
7169 : break;
7170 0 : case CFN_CTZ:
7171 0 : if (call_expr_nargs (_p0) == 1)
7172 : {
7173 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7174 0 : switch (TREE_CODE (_p1))
7175 : {
7176 0 : case INTEGER_CST:
7177 0 : {
7178 0 : {
7179 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7180 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_CTZ);
7181 0 : if (res) return res;
7182 : }
7183 0 : break;
7184 : }
7185 : default:;
7186 : }
7187 : }
7188 0 : if (call_expr_nargs (_p0) == 2)
7189 : {
7190 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7191 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7192 0 : switch (TREE_CODE (_p1))
7193 : {
7194 0 : case INTEGER_CST:
7195 0 : {
7196 0 : {
7197 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7198 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7199 0 : if (res) return res;
7200 : }
7201 0 : break;
7202 : }
7203 : default:;
7204 : }
7205 : }
7206 : break;
7207 2 : case CFN_BUILT_IN_CTZLL:
7208 2 : if (call_expr_nargs (_p0) == 1)
7209 : {
7210 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7211 2 : switch (TREE_CODE (_p1))
7212 : {
7213 2 : case INTEGER_CST:
7214 2 : {
7215 2 : {
7216 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7217 2 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
7218 2 : if (res) return res;
7219 : }
7220 0 : break;
7221 : }
7222 : default:;
7223 : }
7224 : }
7225 : break;
7226 : default:;
7227 : }
7228 : break;
7229 : default:;
7230 : }
7231 : return NULL_TREE;
7232 : }
7233 :
7234 : tree
7235 20215451 : generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7236 : {
7237 20215451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7238 20215451 : switch (TREE_CODE (_p0))
7239 : {
7240 1006 : case RDIV_EXPR:
7241 1006 : {
7242 1006 : tree _q20 = TREE_OPERAND (_p0, 0);
7243 1006 : tree _q21 = TREE_OPERAND (_p0, 1);
7244 1006 : switch (TREE_CODE (_q20))
7245 : {
7246 29 : case REAL_CST:
7247 29 : {
7248 29 : if (real_zerop (_p1))
7249 : {
7250 0 : {
7251 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7252 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7253 0 : if (res) return res;
7254 : }
7255 : }
7256 : break;
7257 : }
7258 : default:;
7259 : }
7260 : break;
7261 : }
7262 20215451 : default:;
7263 : }
7264 20215451 : switch (TREE_CODE (_p1))
7265 : {
7266 96 : case TRUNC_MOD_EXPR:
7267 96 : {
7268 96 : tree _q30 = TREE_OPERAND (_p1, 0);
7269 96 : tree _q31 = TREE_OPERAND (_p1, 1);
7270 96 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7271 : {
7272 0 : {
7273 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
7274 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LT_EXPR);
7275 0 : if (res) return res;
7276 : }
7277 : }
7278 : break;
7279 : }
7280 20215451 : default:;
7281 : }
7282 20215451 : switch (TREE_CODE (_p0))
7283 : {
7284 179288 : case MULT_EXPR:
7285 179288 : {
7286 179288 : tree _q20 = TREE_OPERAND (_p0, 0);
7287 179288 : tree _q21 = TREE_OPERAND (_p0, 1);
7288 179288 : switch (TREE_CODE (_p1))
7289 : {
7290 7603 : case MULT_EXPR:
7291 7603 : {
7292 7603 : tree _q50 = TREE_OPERAND (_p1, 0);
7293 7603 : tree _q51 = TREE_OPERAND (_p1, 1);
7294 7603 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7295 : {
7296 592 : {
7297 592 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7298 592 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GT_EXPR);
7299 592 : if (res) return res;
7300 : }
7301 : }
7302 7118 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7303 : {
7304 8 : {
7305 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7306 8 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GT_EXPR);
7307 8 : if (res) return res;
7308 : }
7309 : }
7310 7118 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7311 : {
7312 0 : {
7313 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7314 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GT_EXPR);
7315 0 : if (res) return res;
7316 : }
7317 : }
7318 7118 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7319 : {
7320 646 : {
7321 646 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7322 646 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GT_EXPR);
7323 646 : if (res) return res;
7324 : }
7325 : }
7326 : break;
7327 : }
7328 : default:;
7329 : }
7330 : break;
7331 : }
7332 2135086 : case PLUS_EXPR:
7333 2135086 : {
7334 2135086 : tree _q20 = TREE_OPERAND (_p0, 0);
7335 2135086 : tree _q21 = TREE_OPERAND (_p0, 1);
7336 2135086 : if (integer_minus_onep (_q21))
7337 : {
7338 548123 : switch (TREE_CODE (_p1))
7339 : {
7340 413271 : case INTEGER_CST:
7341 413271 : {
7342 413271 : {
7343 413271 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7344 413271 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
7345 413271 : if (res) return res;
7346 : }
7347 408094 : break;
7348 : }
7349 : default:;
7350 : }
7351 : }
7352 2129909 : switch (TREE_CODE (_p1))
7353 : {
7354 60915 : case PLUS_EXPR:
7355 60915 : {
7356 60915 : tree _q50 = TREE_OPERAND (_p1, 0);
7357 60915 : tree _q51 = TREE_OPERAND (_p1, 1);
7358 60915 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7359 : {
7360 4602 : {
7361 4602 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7362 4602 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7363 4602 : if (res) return res;
7364 : }
7365 : }
7366 57682 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7367 : {
7368 319 : {
7369 319 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7370 319 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7371 319 : if (res) return res;
7372 : }
7373 : }
7374 57682 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7375 : {
7376 31 : {
7377 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7378 31 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7379 31 : if (res) return res;
7380 : }
7381 : }
7382 57682 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7383 : {
7384 302 : {
7385 302 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7386 302 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR);
7387 302 : if (res) return res;
7388 : }
7389 : }
7390 : break;
7391 : }
7392 2126676 : default:;
7393 : }
7394 2126676 : switch (TREE_CODE (_q21))
7395 : {
7396 1953823 : case INTEGER_CST:
7397 1953823 : {
7398 1953823 : switch (TREE_CODE (_p1))
7399 : {
7400 34737 : case PLUS_EXPR:
7401 34737 : {
7402 34737 : tree _q50 = TREE_OPERAND (_p1, 0);
7403 34737 : tree _q51 = TREE_OPERAND (_p1, 1);
7404 34737 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7405 : {
7406 1343 : {
7407 1343 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7408 1343 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GT_EXPR);
7409 1343 : if (res) return res;
7410 : }
7411 : }
7412 : break;
7413 : }
7414 : default:;
7415 : }
7416 : break;
7417 : }
7418 2126676 : default:;
7419 : }
7420 2126676 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7421 : {
7422 59929 : {
7423 59929 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7424 59929 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7425 59929 : if (res) return res;
7426 : }
7427 : }
7428 2088469 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7429 : {
7430 6343 : {
7431 6343 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7432 6343 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7433 6343 : if (res) return res;
7434 : }
7435 : }
7436 : break;
7437 : }
7438 2344405 : CASE_CONVERT:
7439 2344405 : {
7440 2344405 : tree _q20 = TREE_OPERAND (_p0, 0);
7441 2344405 : switch (TREE_CODE (_q20))
7442 : {
7443 5 : case EXACT_DIV_EXPR:
7444 5 : {
7445 5 : tree _q30 = TREE_OPERAND (_q20, 0);
7446 5 : tree _q31 = TREE_OPERAND (_q20, 1);
7447 5 : switch (TREE_CODE (_q31))
7448 : {
7449 5 : case INTEGER_CST:
7450 5 : {
7451 5 : switch (TREE_CODE (_p1))
7452 : {
7453 2 : CASE_CONVERT:
7454 2 : {
7455 2 : tree _q60 = TREE_OPERAND (_p1, 0);
7456 2 : switch (TREE_CODE (_q60))
7457 : {
7458 0 : case EXACT_DIV_EXPR:
7459 0 : {
7460 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7461 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7462 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7463 : {
7464 0 : {
7465 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7466 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GT_EXPR);
7467 0 : if (res) return res;
7468 : }
7469 : }
7470 : break;
7471 : }
7472 : default:;
7473 : }
7474 : break;
7475 : }
7476 : default:;
7477 : }
7478 : break;
7479 : }
7480 : default:;
7481 : }
7482 : break;
7483 : }
7484 : default:;
7485 : }
7486 : break;
7487 : }
7488 3598 : case EXACT_DIV_EXPR:
7489 3598 : {
7490 3598 : tree _q20 = TREE_OPERAND (_p0, 0);
7491 3598 : tree _q21 = TREE_OPERAND (_p0, 1);
7492 3598 : switch (TREE_CODE (_q21))
7493 : {
7494 3598 : case INTEGER_CST:
7495 3598 : {
7496 3598 : switch (TREE_CODE (_p1))
7497 : {
7498 6 : case EXACT_DIV_EXPR:
7499 6 : {
7500 6 : tree _q50 = TREE_OPERAND (_p1, 0);
7501 6 : tree _q51 = TREE_OPERAND (_p1, 1);
7502 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7503 : {
7504 0 : {
7505 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7506 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GT_EXPR);
7507 0 : if (res) return res;
7508 : }
7509 : }
7510 : break;
7511 : }
7512 : default:;
7513 : }
7514 : break;
7515 : }
7516 : default:;
7517 : }
7518 : break;
7519 : }
7520 1726510 : case TRUNC_DIV_EXPR:
7521 1726510 : {
7522 1726510 : tree _q20 = TREE_OPERAND (_p0, 0);
7523 1726510 : tree _q21 = TREE_OPERAND (_p0, 1);
7524 1726510 : switch (TREE_CODE (_q21))
7525 : {
7526 1718196 : case INTEGER_CST:
7527 1718196 : {
7528 1718196 : switch (TREE_CODE (_p1))
7529 : {
7530 1704689 : case INTEGER_CST:
7531 1704689 : {
7532 1704689 : {
7533 1704689 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7534 1704689 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, GT_EXPR);
7535 1704689 : if (res) return res;
7536 : }
7537 69 : break;
7538 : }
7539 : default:;
7540 : }
7541 : break;
7542 : }
7543 : default:;
7544 : }
7545 : break;
7546 : }
7547 756746 : case MINUS_EXPR:
7548 756746 : {
7549 756746 : tree _q20 = TREE_OPERAND (_p0, 0);
7550 756746 : tree _q21 = TREE_OPERAND (_p0, 1);
7551 756746 : switch (TREE_CODE (_p1))
7552 : {
7553 3481 : case MINUS_EXPR:
7554 3481 : {
7555 3481 : tree _q50 = TREE_OPERAND (_p1, 0);
7556 3481 : tree _q51 = TREE_OPERAND (_p1, 1);
7557 3481 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7558 : {
7559 880 : {
7560 880 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7561 880 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7562 880 : if (res) return res;
7563 : }
7564 : }
7565 3481 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7566 : {
7567 172 : {
7568 172 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7569 172 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GT_EXPR);
7570 172 : if (res) return res;
7571 : }
7572 : }
7573 : break;
7574 : }
7575 : default:;
7576 : }
7577 : break;
7578 : }
7579 49715 : case POINTER_DIFF_EXPR:
7580 49715 : {
7581 49715 : tree _q20 = TREE_OPERAND (_p0, 0);
7582 49715 : tree _q21 = TREE_OPERAND (_p0, 1);
7583 49715 : switch (TREE_CODE (_p1))
7584 : {
7585 311 : case POINTER_DIFF_EXPR:
7586 311 : {
7587 311 : tree _q50 = TREE_OPERAND (_p1, 0);
7588 311 : tree _q51 = TREE_OPERAND (_p1, 1);
7589 311 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7590 : {
7591 43 : {
7592 43 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7593 43 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GT_EXPR);
7594 43 : if (res) return res;
7595 : }
7596 : }
7597 268 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7598 : {
7599 0 : {
7600 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
7601 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, GT_EXPR);
7602 0 : if (res) return res;
7603 : }
7604 : }
7605 : break;
7606 : }
7607 : default:;
7608 : }
7609 : break;
7610 : }
7611 18462143 : default:;
7612 : }
7613 18462143 : switch (TREE_CODE (_p1))
7614 : {
7615 111419 : case PLUS_EXPR:
7616 111419 : {
7617 111419 : tree _q30 = TREE_OPERAND (_p1, 0);
7618 111419 : tree _q31 = TREE_OPERAND (_p1, 1);
7619 111419 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7620 : {
7621 0 : {
7622 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7623 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
7624 0 : if (res) return res;
7625 : }
7626 : }
7627 111419 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7628 : {
7629 4 : {
7630 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7631 4 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
7632 4 : if (res) return res;
7633 : }
7634 : }
7635 : break;
7636 : }
7637 11850 : case MINUS_EXPR:
7638 11850 : {
7639 11850 : tree _q30 = TREE_OPERAND (_p1, 0);
7640 11850 : tree _q31 = TREE_OPERAND (_p1, 1);
7641 11850 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7642 : {
7643 0 : {
7644 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7645 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GT_EXPR);
7646 0 : if (res) return res;
7647 : }
7648 : }
7649 : break;
7650 : }
7651 18462143 : default:;
7652 : }
7653 18462143 : switch (TREE_CODE (_p0))
7654 : {
7655 756746 : case MINUS_EXPR:
7656 756746 : {
7657 756746 : tree _q20 = TREE_OPERAND (_p0, 0);
7658 756746 : tree _q21 = TREE_OPERAND (_p0, 1);
7659 756746 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7660 : {
7661 16024 : {
7662 16024 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
7663 16024 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, LT_EXPR);
7664 16024 : if (res) return res;
7665 : }
7666 : }
7667 : break;
7668 : }
7669 20230 : case BIT_AND_EXPR:
7670 20230 : {
7671 20230 : tree _q20 = TREE_OPERAND (_p0, 0);
7672 20230 : tree _q21 = TREE_OPERAND (_p0, 1);
7673 20230 : if (tree_expr_nonnegative_p (_q20))
7674 : {
7675 18123 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7676 : {
7677 0 : {
7678 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7679 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7680 0 : if (res) return res;
7681 : }
7682 : }
7683 : }
7684 20230 : if (tree_expr_nonnegative_p (_q21))
7685 : {
7686 19222 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7687 : {
7688 3936 : {
7689 3936 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7690 3936 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7691 3936 : if (res) return res;
7692 : }
7693 : }
7694 : }
7695 : break;
7696 : }
7697 18458164 : default:;
7698 : }
7699 18458164 : switch (TREE_CODE (_p1))
7700 : {
7701 98 : case BIT_IOR_EXPR:
7702 98 : {
7703 98 : tree _q30 = TREE_OPERAND (_p1, 0);
7704 98 : tree _q31 = TREE_OPERAND (_p1, 1);
7705 98 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7706 : {
7707 0 : if (tree_expr_nonnegative_p (_q30))
7708 : {
7709 0 : {
7710 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7711 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7712 0 : if (res) return res;
7713 : }
7714 : }
7715 : }
7716 98 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7717 : {
7718 0 : if (tree_expr_nonnegative_p (_q31))
7719 : {
7720 0 : {
7721 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7722 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7723 0 : if (res) return res;
7724 : }
7725 : }
7726 : }
7727 : break;
7728 : }
7729 18458164 : default:;
7730 : }
7731 18458164 : switch (TREE_CODE (_p0))
7732 : {
7733 33387 : case MIN_EXPR:
7734 33387 : {
7735 33387 : tree _q20 = TREE_OPERAND (_p0, 0);
7736 33387 : tree _q21 = TREE_OPERAND (_p0, 1);
7737 33387 : switch (TREE_CODE (_p1))
7738 : {
7739 4 : case MAX_EXPR:
7740 4 : {
7741 4 : tree _q50 = TREE_OPERAND (_p1, 0);
7742 4 : tree _q51 = TREE_OPERAND (_p1, 1);
7743 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7744 : {
7745 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7746 : {
7747 0 : {
7748 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7749 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR);
7750 0 : if (res) return res;
7751 : }
7752 : }
7753 : }
7754 : break;
7755 : }
7756 : default:;
7757 : }
7758 : break;
7759 : }
7760 14048 : case MAX_EXPR:
7761 14048 : {
7762 14048 : tree _q20 = TREE_OPERAND (_p0, 0);
7763 14048 : tree _q21 = TREE_OPERAND (_p0, 1);
7764 14048 : switch (TREE_CODE (_p1))
7765 : {
7766 16 : case MIN_EXPR:
7767 16 : {
7768 16 : tree _q50 = TREE_OPERAND (_p1, 0);
7769 16 : tree _q51 = TREE_OPERAND (_p1, 1);
7770 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7771 : {
7772 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7773 : {
7774 0 : {
7775 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7776 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7777 0 : if (res) return res;
7778 : }
7779 : }
7780 : }
7781 : break;
7782 : }
7783 14048 : default:;
7784 : }
7785 14048 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7786 : {
7787 1 : {
7788 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7789 1 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7790 1 : if (res) return res;
7791 : }
7792 : }
7793 14047 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7794 : {
7795 12 : {
7796 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7797 12 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7798 12 : if (res) return res;
7799 : }
7800 : }
7801 : break;
7802 : }
7803 18458154 : default:;
7804 : }
7805 18458154 : switch (TREE_CODE (_p1))
7806 : {
7807 119 : case MIN_EXPR:
7808 119 : {
7809 119 : tree _q30 = TREE_OPERAND (_p1, 0);
7810 119 : tree _q31 = TREE_OPERAND (_p1, 1);
7811 119 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7812 : {
7813 0 : {
7814 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7815 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7816 0 : if (res) return res;
7817 : }
7818 : }
7819 119 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7820 : {
7821 0 : {
7822 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7823 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7824 0 : if (res) return res;
7825 : }
7826 : }
7827 : break;
7828 : }
7829 691 : case MAX_EXPR:
7830 691 : {
7831 691 : tree _q30 = TREE_OPERAND (_p1, 0);
7832 691 : tree _q31 = TREE_OPERAND (_p1, 1);
7833 691 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7834 : {
7835 0 : {
7836 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7837 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7838 0 : if (res) return res;
7839 : }
7840 : }
7841 691 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7842 : {
7843 0 : {
7844 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7845 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7846 0 : if (res) return res;
7847 : }
7848 : }
7849 : break;
7850 : }
7851 18458154 : default:;
7852 : }
7853 18458154 : switch (TREE_CODE (_p0))
7854 : {
7855 33387 : case MIN_EXPR:
7856 33387 : {
7857 33387 : tree _q20 = TREE_OPERAND (_p0, 0);
7858 33387 : tree _q21 = TREE_OPERAND (_p0, 1);
7859 33387 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7860 : {
7861 1 : {
7862 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7863 1 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7864 1 : if (res) return res;
7865 : }
7866 : }
7867 33386 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7868 : {
7869 1 : {
7870 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7871 1 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7872 1 : if (res) return res;
7873 : }
7874 : }
7875 33385 : switch (TREE_CODE (_q21))
7876 : {
7877 20092 : case INTEGER_CST:
7878 20092 : {
7879 20092 : switch (TREE_CODE (_p1))
7880 : {
7881 61 : case INTEGER_CST:
7882 61 : {
7883 61 : {
7884 61 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7885 61 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
7886 61 : if (res) return res;
7887 : }
7888 0 : break;
7889 : }
7890 : default:;
7891 : }
7892 : break;
7893 : }
7894 : default:;
7895 : }
7896 : break;
7897 : }
7898 14038 : case MAX_EXPR:
7899 14038 : {
7900 14038 : tree _q20 = TREE_OPERAND (_p0, 0);
7901 14038 : tree _q21 = TREE_OPERAND (_p0, 1);
7902 14038 : switch (TREE_CODE (_q21))
7903 : {
7904 13439 : case INTEGER_CST:
7905 13439 : {
7906 13439 : switch (TREE_CODE (_p1))
7907 : {
7908 0 : case INTEGER_CST:
7909 0 : {
7910 0 : {
7911 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7912 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
7913 0 : if (res) return res;
7914 : }
7915 0 : break;
7916 : }
7917 : default:;
7918 : }
7919 : break;
7920 : }
7921 : default:;
7922 : }
7923 : break;
7924 : }
7925 877 : case VEC_COND_EXPR:
7926 877 : {
7927 877 : tree _q20 = TREE_OPERAND (_p0, 0);
7928 877 : tree _q21 = TREE_OPERAND (_p0, 1);
7929 877 : tree _q22 = TREE_OPERAND (_p0, 2);
7930 877 : switch (TREE_CODE (_p1))
7931 : {
7932 14 : case VEC_COND_EXPR:
7933 14 : {
7934 14 : tree _q60 = TREE_OPERAND (_p1, 0);
7935 14 : tree _q61 = TREE_OPERAND (_p1, 1);
7936 14 : tree _q62 = TREE_OPERAND (_p1, 2);
7937 14 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7938 : {
7939 0 : {
7940 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7941 0 : if (VECTOR_TYPE_P (type)
7942 0 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7943 0 : || types_match (type, TREE_TYPE (captures[2]))
7944 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7945 : || (optimize_vectors_before_lowering_p ()
7946 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7947 : )
7948 : {
7949 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1634;
7950 0 : {
7951 0 : tree res_op0;
7952 0 : res_op0 = captures[1];
7953 0 : tree res_op1;
7954 0 : {
7955 0 : tree _o1[2], _r1;
7956 0 : _o1[0] = captures[2];
7957 0 : _o1[1] = captures[5];
7958 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7959 0 : if (EXPR_P (_r1))
7960 0 : goto next_after_fail1634;
7961 0 : res_op1 = _r1;
7962 : }
7963 0 : tree res_op2;
7964 0 : {
7965 0 : tree _o1[2], _r1;
7966 0 : _o1[0] = captures[3];
7967 0 : _o1[1] = captures[6];
7968 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7969 0 : if (EXPR_P (_r1))
7970 0 : goto next_after_fail1634;
7971 0 : res_op2 = _r1;
7972 : }
7973 0 : tree _r;
7974 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7975 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
7976 0 : return _r;
7977 : }
7978 0 : next_after_fail1634:;
7979 : }
7980 : }
7981 : }
7982 : break;
7983 : }
7984 877 : default:;
7985 : }
7986 877 : {
7987 877 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7988 877 : if (VECTOR_TYPE_P (type)
7989 877 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7990 877 : || types_match (type, TREE_TYPE (captures[2]))
7991 877 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7992 : || (optimize_vectors_before_lowering_p ()
7993 10 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7994 : )
7995 : {
7996 877 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1635;
7997 877 : {
7998 877 : if (! tree_invariant_p (captures[4])) goto next_after_fail1635;
7999 21 : tree res_op0;
8000 21 : res_op0 = captures[1];
8001 21 : tree res_op1;
8002 21 : {
8003 21 : tree _o1[2], _r1;
8004 21 : _o1[0] = captures[2];
8005 21 : _o1[1] = unshare_expr (captures[4]);
8006 21 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8007 21 : if (EXPR_P (_r1))
8008 17 : goto next_after_fail1635;
8009 4 : res_op1 = _r1;
8010 : }
8011 4 : tree res_op2;
8012 4 : {
8013 4 : tree _o1[2], _r1;
8014 4 : _o1[0] = captures[3];
8015 4 : _o1[1] = captures[4];
8016 4 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8017 4 : if (EXPR_P (_r1))
8018 4 : goto next_after_fail1635;
8019 0 : res_op2 = _r1;
8020 : }
8021 0 : tree _r;
8022 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8023 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
8024 0 : return _r;
8025 : }
8026 877 : next_after_fail1635:;
8027 : }
8028 : }
8029 877 : break;
8030 : }
8031 18458091 : default:;
8032 : }
8033 18458091 : switch (TREE_CODE (_p1))
8034 : {
8035 74 : case VEC_COND_EXPR:
8036 74 : {
8037 74 : tree _q30 = TREE_OPERAND (_p1, 0);
8038 74 : tree _q31 = TREE_OPERAND (_p1, 1);
8039 74 : tree _q32 = TREE_OPERAND (_p1, 2);
8040 74 : {
8041 74 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8042 74 : if (VECTOR_TYPE_P (type)
8043 74 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
8044 74 : || types_match (type, TREE_TYPE (captures[3]))
8045 74 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8046 : || (optimize_vectors_before_lowering_p ()
8047 7 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8048 : )
8049 : {
8050 74 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1636;
8051 74 : {
8052 74 : if (! tree_invariant_p (captures[0])) goto next_after_fail1636;
8053 0 : tree res_op0;
8054 0 : res_op0 = captures[2];
8055 0 : tree res_op1;
8056 0 : {
8057 0 : tree _o1[2], _r1;
8058 0 : _o1[0] = unshare_expr (captures[0]);
8059 0 : _o1[1] = captures[3];
8060 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8061 0 : if (EXPR_P (_r1))
8062 0 : goto next_after_fail1636;
8063 0 : res_op1 = _r1;
8064 : }
8065 0 : tree res_op2;
8066 0 : {
8067 0 : tree _o1[2], _r1;
8068 0 : _o1[0] = captures[0];
8069 0 : _o1[1] = captures[4];
8070 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8071 0 : if (EXPR_P (_r1))
8072 0 : goto next_after_fail1636;
8073 0 : res_op2 = _r1;
8074 : }
8075 0 : tree _r;
8076 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8077 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
8078 0 : return _r;
8079 : }
8080 74 : next_after_fail1636:;
8081 : }
8082 : }
8083 74 : break;
8084 : }
8085 18458091 : default:;
8086 : }
8087 18458091 : if (uniform_integer_cst_p (_p1))
8088 : {
8089 12896359 : {
8090 12896359 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8091 12896359 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8092 12896359 : if (res) return res;
8093 : }
8094 : }
8095 18379440 : switch (TREE_CODE (_p0))
8096 : {
8097 178491 : case MULT_EXPR:
8098 178491 : {
8099 178491 : tree _q20 = TREE_OPERAND (_p0, 0);
8100 178491 : tree _q21 = TREE_OPERAND (_p0, 1);
8101 178491 : switch (TREE_CODE (_q21))
8102 : {
8103 140097 : case INTEGER_CST:
8104 140097 : {
8105 140097 : if (integer_zerop (_p1))
8106 : {
8107 7437 : {
8108 7437 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8109 7437 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8110 7437 : if (res) return res;
8111 : }
8112 : }
8113 : break;
8114 : }
8115 : default:;
8116 : }
8117 : break;
8118 : }
8119 18376981 : default:;
8120 : }
8121 18376981 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8122 : {
8123 1280 : {
8124 1280 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8125 1280 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, GT_EXPR);
8126 1280 : if (res) return res;
8127 : }
8128 : }
8129 18375701 : switch (TREE_CODE (_p0))
8130 : {
8131 913149 : case BIT_NOT_EXPR:
8132 913149 : {
8133 913149 : tree _q20 = TREE_OPERAND (_p0, 0);
8134 913149 : switch (TREE_CODE (_p1))
8135 : {
8136 10 : case BIT_NOT_EXPR:
8137 10 : {
8138 10 : tree _q40 = TREE_OPERAND (_p1, 0);
8139 10 : {
8140 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8141 10 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GT_EXPR);
8142 10 : if (res) return res;
8143 : }
8144 0 : break;
8145 : }
8146 913139 : default:;
8147 : }
8148 913139 : {
8149 913139 : tree _p1_pops[1];
8150 913139 : if (tree_nop_convert (_p1, _p1_pops))
8151 : {
8152 2 : tree _q40 = _p1_pops[0];
8153 2 : switch (TREE_CODE (_q40))
8154 : {
8155 0 : case BIT_NOT_EXPR:
8156 0 : {
8157 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8158 0 : {
8159 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8160 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GT_EXPR);
8161 0 : if (res) return res;
8162 : }
8163 0 : break;
8164 : }
8165 : default:;
8166 : }
8167 : }
8168 : }
8169 913139 : if (CONSTANT_CLASS_P (_p1))
8170 : {
8171 910874 : {
8172 910874 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8173 910874 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8174 910874 : if (res) return res;
8175 : }
8176 : }
8177 : break;
8178 : }
8179 17464817 : default:;
8180 : }
8181 17464817 : {
8182 17464817 : tree _p0_pops[1];
8183 17464817 : if (tree_nop_convert (_p0, _p0_pops))
8184 : {
8185 941089 : tree _q20 = _p0_pops[0];
8186 941089 : switch (TREE_CODE (_q20))
8187 : {
8188 0 : case BIT_NOT_EXPR:
8189 0 : {
8190 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8191 0 : switch (TREE_CODE (_p1))
8192 : {
8193 0 : case BIT_NOT_EXPR:
8194 0 : {
8195 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8196 0 : {
8197 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8198 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR);
8199 0 : if (res) return res;
8200 : }
8201 0 : break;
8202 : }
8203 0 : default:;
8204 : }
8205 0 : {
8206 0 : tree _p1_pops[1];
8207 0 : if (tree_nop_convert (_p1, _p1_pops))
8208 : {
8209 0 : tree _q50 = _p1_pops[0];
8210 0 : switch (TREE_CODE (_q50))
8211 : {
8212 0 : case BIT_NOT_EXPR:
8213 0 : {
8214 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8215 0 : {
8216 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8217 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR);
8218 0 : if (res) return res;
8219 : }
8220 0 : break;
8221 : }
8222 : default:;
8223 : }
8224 : }
8225 : }
8226 0 : if (CONSTANT_CLASS_P (_p1))
8227 : {
8228 0 : {
8229 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8230 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8231 0 : if (res) return res;
8232 : }
8233 : }
8234 : break;
8235 : }
8236 : default:;
8237 : }
8238 : }
8239 : }
8240 17464817 : switch (TREE_CODE (_p1))
8241 : {
8242 817756 : case REAL_CST:
8243 817756 : {
8244 817756 : {
8245 817756 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8246 817756 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GT_EXPR);
8247 817756 : if (res) return res;
8248 : }
8249 817708 : break;
8250 : }
8251 17464769 : default:;
8252 : }
8253 17464769 : switch (TREE_CODE (_p0))
8254 : {
8255 2086241 : case PLUS_EXPR:
8256 2086241 : {
8257 2086241 : tree _q20 = TREE_OPERAND (_p0, 0);
8258 2086241 : tree _q21 = TREE_OPERAND (_p0, 1);
8259 2086241 : switch (TREE_CODE (_q21))
8260 : {
8261 479 : case REAL_CST:
8262 479 : {
8263 479 : switch (TREE_CODE (_p1))
8264 : {
8265 199 : case REAL_CST:
8266 199 : {
8267 199 : {
8268 199 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8269 199 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR);
8270 199 : if (res) return res;
8271 : }
8272 199 : break;
8273 : }
8274 : default:;
8275 : }
8276 : break;
8277 : }
8278 1914702 : case INTEGER_CST:
8279 1914702 : {
8280 1914702 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8281 : {
8282 1313 : {
8283 1313 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8284 1313 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8285 1313 : if (res) return res;
8286 : }
8287 : }
8288 : break;
8289 : }
8290 : default:;
8291 : }
8292 : break;
8293 : }
8294 746439 : case MINUS_EXPR:
8295 746439 : {
8296 746439 : tree _q20 = TREE_OPERAND (_p0, 0);
8297 746439 : tree _q21 = TREE_OPERAND (_p0, 1);
8298 746439 : switch (TREE_CODE (_q21))
8299 : {
8300 743 : case REAL_CST:
8301 743 : {
8302 743 : switch (TREE_CODE (_p1))
8303 : {
8304 529 : case REAL_CST:
8305 529 : {
8306 529 : {
8307 529 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8308 529 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, MINUS_EXPR, GT_EXPR);
8309 529 : if (res) return res;
8310 : }
8311 527 : break;
8312 : }
8313 : default:;
8314 : }
8315 : break;
8316 : }
8317 746437 : default:;
8318 : }
8319 746437 : switch (TREE_CODE (_q20))
8320 : {
8321 43 : case REAL_CST:
8322 43 : {
8323 43 : switch (TREE_CODE (_p1))
8324 : {
8325 37 : case REAL_CST:
8326 37 : {
8327 37 : {
8328 37 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8329 37 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, GT_EXPR);
8330 37 : if (res) return res;
8331 : }
8332 35 : break;
8333 : }
8334 : default:;
8335 : }
8336 : break;
8337 : }
8338 : default:;
8339 : }
8340 : break;
8341 : }
8342 39773 : case FLOAT_EXPR:
8343 39773 : {
8344 39773 : tree _q20 = TREE_OPERAND (_p0, 0);
8345 39773 : switch (TREE_CODE (_p1))
8346 : {
8347 30 : case FLOAT_EXPR:
8348 30 : {
8349 30 : tree _q40 = TREE_OPERAND (_p1, 0);
8350 30 : {
8351 30 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8352 30 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
8353 30 : if (res) return res;
8354 : }
8355 30 : break;
8356 : }
8357 38058 : case REAL_CST:
8358 38058 : {
8359 38058 : {
8360 38058 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8361 38058 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8362 38058 : if (res) return res;
8363 : }
8364 19205 : break;
8365 : }
8366 : default:;
8367 : }
8368 : break;
8369 : }
8370 3598 : case EXACT_DIV_EXPR:
8371 3598 : {
8372 3598 : tree _q20 = TREE_OPERAND (_p0, 0);
8373 3598 : tree _q21 = TREE_OPERAND (_p0, 1);
8374 3598 : switch (TREE_CODE (_q21))
8375 : {
8376 3598 : case INTEGER_CST:
8377 3598 : {
8378 3598 : switch (TREE_CODE (_p1))
8379 : {
8380 181 : case INTEGER_CST:
8381 181 : {
8382 181 : {
8383 181 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8384 181 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GT_EXPR);
8385 181 : if (res) return res;
8386 : }
8387 0 : break;
8388 : }
8389 : default:;
8390 : }
8391 : break;
8392 : }
8393 : default:;
8394 : }
8395 : break;
8396 : }
8397 2340749 : CASE_CONVERT:
8398 2340749 : {
8399 2340749 : tree _q20 = TREE_OPERAND (_p0, 0);
8400 2340749 : switch (TREE_CODE (_q20))
8401 : {
8402 5 : case EXACT_DIV_EXPR:
8403 5 : {
8404 5 : tree _q30 = TREE_OPERAND (_q20, 0);
8405 5 : tree _q31 = TREE_OPERAND (_q20, 1);
8406 5 : switch (TREE_CODE (_q31))
8407 : {
8408 5 : case INTEGER_CST:
8409 5 : {
8410 5 : switch (TREE_CODE (_p1))
8411 : {
8412 0 : case INTEGER_CST:
8413 0 : {
8414 0 : {
8415 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8416 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8417 0 : if (res) return res;
8418 : }
8419 0 : break;
8420 : }
8421 : default:;
8422 : }
8423 : break;
8424 : }
8425 : default:;
8426 : }
8427 : break;
8428 : }
8429 2340749 : default:;
8430 : }
8431 2340749 : switch (TREE_CODE (_p1))
8432 : {
8433 172398 : CASE_CONVERT:
8434 172398 : {
8435 172398 : tree _q40 = TREE_OPERAND (_p1, 0);
8436 172398 : {
8437 172398 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8438 172398 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GT_EXPR);
8439 172398 : if (res) return res;
8440 : }
8441 144810 : break;
8442 : }
8443 2313161 : default:;
8444 : }
8445 2313161 : {
8446 2313161 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8447 2313161 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, GT_EXPR);
8448 2313161 : if (res) return res;
8449 : }
8450 1163397 : switch (TREE_CODE (_q20))
8451 : {
8452 854 : case ADDR_EXPR:
8453 854 : {
8454 854 : switch (TREE_CODE (_p1))
8455 : {
8456 733 : CASE_CONVERT:
8457 733 : {
8458 733 : tree _q40 = TREE_OPERAND (_p1, 0);
8459 733 : switch (TREE_CODE (_q40))
8460 : {
8461 733 : case ADDR_EXPR:
8462 733 : {
8463 733 : {
8464 733 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8465 733 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GT_EXPR);
8466 733 : if (res) return res;
8467 : }
8468 240 : break;
8469 : }
8470 : default:;
8471 : }
8472 : break;
8473 : }
8474 0 : case ADDR_EXPR:
8475 0 : {
8476 0 : {
8477 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8478 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GT_EXPR);
8479 0 : if (res) return res;
8480 : }
8481 0 : break;
8482 : }
8483 : default:;
8484 : }
8485 : break;
8486 : }
8487 1162904 : default:;
8488 : }
8489 1162904 : if (uniform_integer_cst_p (_p1))
8490 : {
8491 314472 : {
8492 314472 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8493 314472 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GT_EXPR);
8494 314472 : if (res) return res;
8495 : }
8496 : }
8497 : break;
8498 : }
8499 16291 : case BIT_AND_EXPR:
8500 16291 : {
8501 16291 : tree _q20 = TREE_OPERAND (_p0, 0);
8502 16291 : tree _q21 = TREE_OPERAND (_p0, 1);
8503 16291 : switch (TREE_CODE (_q21))
8504 : {
8505 15178 : case INTEGER_CST:
8506 15178 : {
8507 15178 : switch (TREE_CODE (_p1))
8508 : {
8509 9269 : case INTEGER_CST:
8510 9269 : {
8511 9269 : {
8512 9269 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8513 9269 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8514 9269 : if (res) return res;
8515 : }
8516 8756 : break;
8517 : }
8518 : default:;
8519 : }
8520 : break;
8521 : }
8522 : default:;
8523 : }
8524 : break;
8525 : }
8526 10912 : case NEGATE_EXPR:
8527 10912 : {
8528 10912 : tree _q20 = TREE_OPERAND (_p0, 0);
8529 10912 : switch (TREE_CODE (_p1))
8530 : {
8531 4 : case NEGATE_EXPR:
8532 4 : {
8533 4 : tree _q40 = TREE_OPERAND (_p1, 0);
8534 4 : {
8535 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8536 4 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8537 4 : if (res) return res;
8538 : }
8539 4 : break;
8540 : }
8541 10912 : default:;
8542 : }
8543 10912 : if (CONSTANT_CLASS_P (_p1))
8544 : {
8545 690 : {
8546 690 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8547 690 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8548 690 : if (res) return res;
8549 : }
8550 : }
8551 : break;
8552 : }
8553 4573 : case ADDR_EXPR:
8554 4573 : {
8555 4573 : switch (TREE_CODE (_p1))
8556 : {
8557 0 : CASE_CONVERT:
8558 0 : {
8559 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8560 0 : switch (TREE_CODE (_q30))
8561 : {
8562 0 : case ADDR_EXPR:
8563 0 : {
8564 0 : {
8565 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8566 0 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GT_EXPR);
8567 0 : if (res) return res;
8568 : }
8569 0 : break;
8570 : }
8571 : default:;
8572 : }
8573 : break;
8574 : }
8575 4268 : case ADDR_EXPR:
8576 4268 : {
8577 4268 : {
8578 4268 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8579 4268 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GT_EXPR);
8580 4268 : if (res) return res;
8581 : }
8582 702 : break;
8583 : }
8584 : default:;
8585 : }
8586 : break;
8587 : }
8588 299380 : case CALL_EXPR:
8589 299380 : switch (get_call_combined_fn (_p0))
8590 : {
8591 1 : case CFN_BUILT_IN_SQRTF:
8592 1 : if (call_expr_nargs (_p0) == 1)
8593 : {
8594 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8595 1 : switch (TREE_CODE (_p1))
8596 : {
8597 1 : case REAL_CST:
8598 1 : {
8599 1 : {
8600 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8601 1 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8602 1 : if (res) return res;
8603 : }
8604 0 : break;
8605 : }
8606 0 : case CALL_EXPR:
8607 0 : switch (get_call_combined_fn (_p1))
8608 : {
8609 0 : case CFN_BUILT_IN_SQRTF:
8610 0 : if (call_expr_nargs (_p1) == 1)
8611 : {
8612 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8613 0 : {
8614 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8615 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8616 0 : if (res) return res;
8617 : }
8618 : }
8619 : break;
8620 : default:;
8621 : }
8622 : break;
8623 : default:;
8624 : }
8625 : }
8626 : break;
8627 0 : case CFN_BUILT_IN_SQRTL:
8628 0 : if (call_expr_nargs (_p0) == 1)
8629 : {
8630 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8631 0 : switch (TREE_CODE (_p1))
8632 : {
8633 0 : case REAL_CST:
8634 0 : {
8635 0 : {
8636 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8637 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8638 0 : if (res) return res;
8639 : }
8640 0 : break;
8641 : }
8642 0 : case CALL_EXPR:
8643 0 : switch (get_call_combined_fn (_p1))
8644 : {
8645 0 : case CFN_BUILT_IN_SQRTL:
8646 0 : if (call_expr_nargs (_p1) == 1)
8647 : {
8648 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8649 0 : {
8650 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8651 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8652 0 : if (res) return res;
8653 : }
8654 : }
8655 : break;
8656 : default:;
8657 : }
8658 : break;
8659 : default:;
8660 : }
8661 : }
8662 : break;
8663 3 : case CFN_BUILT_IN_SQRT:
8664 3 : if (call_expr_nargs (_p0) == 1)
8665 : {
8666 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8667 3 : switch (TREE_CODE (_p1))
8668 : {
8669 3 : case REAL_CST:
8670 3 : {
8671 3 : {
8672 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8673 3 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8674 3 : if (res) return res;
8675 : }
8676 0 : break;
8677 : }
8678 0 : case CALL_EXPR:
8679 0 : switch (get_call_combined_fn (_p1))
8680 : {
8681 0 : case CFN_BUILT_IN_SQRT:
8682 0 : if (call_expr_nargs (_p1) == 1)
8683 : {
8684 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8685 0 : {
8686 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8687 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8688 0 : if (res) return res;
8689 : }
8690 : }
8691 : break;
8692 : default:;
8693 : }
8694 : break;
8695 : default:;
8696 : }
8697 : }
8698 : break;
8699 0 : case CFN_SQRT:
8700 0 : if (call_expr_nargs (_p0) == 1)
8701 : {
8702 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8703 0 : switch (TREE_CODE (_p1))
8704 : {
8705 0 : case REAL_CST:
8706 0 : {
8707 0 : {
8708 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8709 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8710 0 : if (res) return res;
8711 : }
8712 0 : break;
8713 : }
8714 0 : case CALL_EXPR:
8715 0 : switch (get_call_combined_fn (_p1))
8716 : {
8717 0 : case CFN_SQRT:
8718 0 : if (call_expr_nargs (_p1) == 1)
8719 : {
8720 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8721 0 : {
8722 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8723 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8724 0 : if (res) return res;
8725 : }
8726 : }
8727 : break;
8728 : default:;
8729 : }
8730 : break;
8731 : default:;
8732 : }
8733 : }
8734 : break;
8735 : default:;
8736 : }
8737 : break;
8738 16234969 : default:;
8739 : }
8740 16234969 : if (uniform_integer_cst_p (_p1))
8741 : {
8742 10726838 : {
8743 10726838 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8744 10726838 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GT_EXPR);
8745 10726838 : if (res) return res;
8746 : }
8747 : }
8748 15358429 : switch (TREE_CODE (_p0))
8749 : {
8750 1092703 : CASE_CONVERT:
8751 1092703 : {
8752 1092703 : tree _q20 = TREE_OPERAND (_p0, 0);
8753 1092703 : switch (TREE_CODE (_q20))
8754 : {
8755 1 : case NE_EXPR:
8756 1 : {
8757 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8758 1 : tree _q31 = TREE_OPERAND (_q20, 1);
8759 1 : if (integer_zerop (_q31))
8760 : {
8761 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8762 : {
8763 1 : {
8764 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
8765 1 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
8766 : )
8767 : {
8768 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1637;
8769 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
8770 1 : {
8771 1 : tree _r;
8772 1 : _r = constant_boolean_node (false, type);
8773 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
8774 1 : return _r;
8775 : }
8776 : next_after_fail1637:;
8777 : }
8778 : }
8779 : }
8780 : }
8781 : break;
8782 : }
8783 50251 : case PLUS_EXPR:
8784 50251 : {
8785 50251 : tree _q30 = TREE_OPERAND (_q20, 0);
8786 50251 : tree _q31 = TREE_OPERAND (_q20, 1);
8787 50251 : switch (TREE_CODE (_q30))
8788 : {
8789 34026 : CASE_CONVERT:
8790 34026 : {
8791 34026 : tree _q40 = TREE_OPERAND (_q30, 0);
8792 34026 : switch (TREE_CODE (_q31))
8793 : {
8794 34022 : case INTEGER_CST:
8795 34022 : {
8796 34022 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8797 : {
8798 2 : {
8799 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
8800 2 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8801 2 : if (res) return res;
8802 : }
8803 : }
8804 : break;
8805 : }
8806 : default:;
8807 : }
8808 : break;
8809 : }
8810 : default:;
8811 : }
8812 : break;
8813 : }
8814 : default:;
8815 : }
8816 : break;
8817 : }
8818 15358426 : default:;
8819 : }
8820 15358426 : switch (TREE_CODE (_p1))
8821 : {
8822 616283 : CASE_CONVERT:
8823 616283 : {
8824 616283 : tree _q30 = TREE_OPERAND (_p1, 0);
8825 616283 : switch (TREE_CODE (_q30))
8826 : {
8827 3343 : case PLUS_EXPR:
8828 3343 : {
8829 3343 : tree _q40 = TREE_OPERAND (_q30, 0);
8830 3343 : tree _q41 = TREE_OPERAND (_q30, 1);
8831 3343 : switch (TREE_CODE (_q40))
8832 : {
8833 3284 : CASE_CONVERT:
8834 3284 : {
8835 3284 : tree _q50 = TREE_OPERAND (_q40, 0);
8836 3284 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
8837 : {
8838 0 : switch (TREE_CODE (_q41))
8839 : {
8840 0 : case INTEGER_CST:
8841 0 : {
8842 0 : {
8843 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
8844 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8845 0 : if (res) return res;
8846 : }
8847 0 : break;
8848 : }
8849 : default:;
8850 : }
8851 : }
8852 : break;
8853 : }
8854 : default:;
8855 : }
8856 : break;
8857 : }
8858 : default:;
8859 : }
8860 : break;
8861 : }
8862 111419 : case PLUS_EXPR:
8863 111419 : {
8864 111419 : tree _q30 = TREE_OPERAND (_p1, 0);
8865 111419 : tree _q31 = TREE_OPERAND (_p1, 1);
8866 111419 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8867 : {
8868 4 : switch (TREE_CODE (_q31))
8869 : {
8870 4 : case INTEGER_CST:
8871 4 : {
8872 4 : {
8873 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
8874 4 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8875 4 : if (res) return res;
8876 : }
8877 0 : break;
8878 : }
8879 : default:;
8880 : }
8881 : }
8882 : break;
8883 : }
8884 15358422 : default:;
8885 : }
8886 15358422 : switch (TREE_CODE (_p0))
8887 : {
8888 655209 : case MINUS_EXPR:
8889 655209 : {
8890 655209 : tree _q20 = TREE_OPERAND (_p0, 0);
8891 655209 : tree _q21 = TREE_OPERAND (_p0, 1);
8892 655209 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8893 : {
8894 7609 : {
8895 7609 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8896 7609 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR);
8897 7609 : if (res) return res;
8898 : }
8899 : }
8900 : break;
8901 : }
8902 15350825 : default:;
8903 : }
8904 15350825 : switch (TREE_CODE (_p1))
8905 : {
8906 111415 : case PLUS_EXPR:
8907 111415 : {
8908 111415 : tree _q30 = TREE_OPERAND (_p1, 0);
8909 111415 : tree _q31 = TREE_OPERAND (_p1, 1);
8910 111415 : switch (TREE_CODE (_q30))
8911 : {
8912 3 : case MINUS_EXPR:
8913 3 : {
8914 3 : tree _q40 = TREE_OPERAND (_q30, 0);
8915 3 : tree _q41 = TREE_OPERAND (_q30, 1);
8916 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8917 : {
8918 0 : if (integer_minus_onep (_q31))
8919 : {
8920 0 : {
8921 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
8922 0 : tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, LT_EXPR);
8923 0 : if (res) return res;
8924 : }
8925 : }
8926 : }
8927 : break;
8928 : }
8929 : default:;
8930 : }
8931 : break;
8932 : }
8933 15350825 : default:;
8934 : }
8935 15350825 : switch (TREE_CODE (_p0))
8936 : {
8937 83 : case REALPART_EXPR:
8938 83 : {
8939 83 : tree _q20 = TREE_OPERAND (_p0, 0);
8940 83 : switch (TREE_CODE (_q20))
8941 : {
8942 0 : case CALL_EXPR:
8943 0 : switch (get_call_combined_fn (_q20))
8944 : {
8945 0 : case CFN_SUB_OVERFLOW:
8946 0 : if (call_expr_nargs (_q20) == 2)
8947 : {
8948 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8949 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
8950 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8951 : {
8952 0 : {
8953 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8954 0 : tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8955 0 : if (res) return res;
8956 : }
8957 : }
8958 : }
8959 : break;
8960 : default:;
8961 : }
8962 : break;
8963 : default:;
8964 : }
8965 : break;
8966 : }
8967 15350825 : default:;
8968 : }
8969 15350825 : switch (TREE_CODE (_p1))
8970 : {
8971 20 : case REALPART_EXPR:
8972 20 : {
8973 20 : tree _q30 = TREE_OPERAND (_p1, 0);
8974 20 : switch (TREE_CODE (_q30))
8975 : {
8976 0 : case CALL_EXPR:
8977 0 : switch (get_call_combined_fn (_q30))
8978 : {
8979 0 : case CFN_ADD_OVERFLOW:
8980 0 : if (call_expr_nargs (_q30) == 2)
8981 : {
8982 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
8983 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
8984 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8985 : {
8986 0 : {
8987 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
8988 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8989 0 : if (res) return res;
8990 : }
8991 : }
8992 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
8993 : {
8994 0 : {
8995 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
8996 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8997 0 : if (res) return res;
8998 : }
8999 : }
9000 : }
9001 : break;
9002 : default:;
9003 : }
9004 : break;
9005 : default:;
9006 : }
9007 : break;
9008 : }
9009 1088 : case TRUNC_DIV_EXPR:
9010 1088 : {
9011 1088 : tree _q30 = TREE_OPERAND (_p1, 0);
9012 1088 : tree _q31 = TREE_OPERAND (_p1, 1);
9013 1088 : if (integer_all_onesp (_q30))
9014 : {
9015 0 : {
9016 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
9017 0 : tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
9018 0 : if (res) return res;
9019 : }
9020 : }
9021 : break;
9022 : }
9023 15350825 : default:;
9024 : }
9025 15350825 : switch (TREE_CODE (_p0))
9026 : {
9027 168659 : case MULT_EXPR:
9028 168659 : {
9029 168659 : tree _q20 = TREE_OPERAND (_p0, 0);
9030 168659 : tree _q21 = TREE_OPERAND (_p0, 1);
9031 168659 : switch (TREE_CODE (_q21))
9032 : {
9033 22190 : case REAL_CST:
9034 22190 : {
9035 22190 : switch (TREE_CODE (_p1))
9036 : {
9037 58 : case REAL_CST:
9038 58 : {
9039 58 : {
9040 58 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9041 58 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9042 58 : if (res) return res;
9043 : }
9044 57 : break;
9045 : }
9046 : default:;
9047 : }
9048 : break;
9049 : }
9050 : default:;
9051 : }
9052 : break;
9053 : }
9054 1977638 : case PLUS_EXPR:
9055 1977638 : {
9056 1977638 : tree _q20 = TREE_OPERAND (_p0, 0);
9057 1977638 : tree _q21 = TREE_OPERAND (_p0, 1);
9058 1977638 : switch (TREE_CODE (_q21))
9059 : {
9060 1806192 : case INTEGER_CST:
9061 1806192 : {
9062 1806192 : switch (TREE_CODE (_p1))
9063 : {
9064 1258331 : case INTEGER_CST:
9065 1258331 : {
9066 1258331 : {
9067 1258331 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9068 1258331 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR, LT_EXPR);
9069 1258331 : if (res) return res;
9070 : }
9071 821521 : break;
9072 : }
9073 : default:;
9074 : }
9075 : break;
9076 : }
9077 : default:;
9078 : }
9079 : break;
9080 : }
9081 647612 : case MINUS_EXPR:
9082 647612 : {
9083 647612 : tree _q20 = TREE_OPERAND (_p0, 0);
9084 647612 : tree _q21 = TREE_OPERAND (_p0, 1);
9085 647612 : switch (TREE_CODE (_q21))
9086 : {
9087 2226 : case INTEGER_CST:
9088 2226 : {
9089 2226 : switch (TREE_CODE (_p1))
9090 : {
9091 2078 : case INTEGER_CST:
9092 2078 : {
9093 2078 : {
9094 2078 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9095 2078 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR, LT_EXPR);
9096 2078 : if (res) return res;
9097 : }
9098 1920 : break;
9099 : }
9100 : default:;
9101 : }
9102 : break;
9103 : }
9104 647454 : default:;
9105 : }
9106 647454 : switch (TREE_CODE (_q20))
9107 : {
9108 553680 : case INTEGER_CST:
9109 553680 : {
9110 553680 : switch (TREE_CODE (_p1))
9111 : {
9112 550867 : case INTEGER_CST:
9113 550867 : {
9114 550867 : {
9115 550867 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9116 550867 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9117 550867 : if (res) return res;
9118 : }
9119 0 : break;
9120 : }
9121 : default:;
9122 : }
9123 : break;
9124 : }
9125 : default:;
9126 : }
9127 : break;
9128 : }
9129 270679 : case CALL_EXPR:
9130 270679 : switch (get_call_combined_fn (_p0))
9131 : {
9132 4 : case CFN_BUILT_IN_CTZ:
9133 4 : if (call_expr_nargs (_p0) == 1)
9134 : {
9135 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9136 4 : switch (TREE_CODE (_p1))
9137 : {
9138 4 : case INTEGER_CST:
9139 4 : {
9140 4 : {
9141 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9142 4 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9143 4 : if (res) return res;
9144 : }
9145 0 : break;
9146 : }
9147 : default:;
9148 : }
9149 : }
9150 : break;
9151 12 : case CFN_BUILT_IN_FFS:
9152 12 : if (call_expr_nargs (_p0) == 1)
9153 : {
9154 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9155 12 : switch (TREE_CODE (_p1))
9156 : {
9157 12 : case INTEGER_CST:
9158 12 : {
9159 12 : {
9160 12 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9161 12 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS);
9162 12 : if (res) return res;
9163 : }
9164 6 : break;
9165 : }
9166 : default:;
9167 : }
9168 : }
9169 : break;
9170 0 : case CFN_BUILT_IN_FFSIMAX:
9171 0 : if (call_expr_nargs (_p0) == 1)
9172 : {
9173 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9174 0 : switch (TREE_CODE (_p1))
9175 : {
9176 0 : case INTEGER_CST:
9177 0 : {
9178 0 : {
9179 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9180 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX);
9181 0 : if (res) return res;
9182 : }
9183 0 : break;
9184 : }
9185 : default:;
9186 : }
9187 : }
9188 : break;
9189 75 : case CFN_BUILT_IN_POPCOUNT:
9190 75 : if (call_expr_nargs (_p0) == 1)
9191 : {
9192 75 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9193 75 : if (integer_zerop (_p1))
9194 : {
9195 36 : {
9196 36 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9197 36 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
9198 36 : if (res) return res;
9199 : }
9200 : }
9201 : }
9202 : break;
9203 2 : case CFN_BUILT_IN_CTZL:
9204 2 : if (call_expr_nargs (_p0) == 1)
9205 : {
9206 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9207 2 : switch (TREE_CODE (_p1))
9208 : {
9209 2 : case INTEGER_CST:
9210 2 : {
9211 2 : {
9212 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9213 2 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9214 2 : if (res) return res;
9215 : }
9216 0 : break;
9217 : }
9218 : default:;
9219 : }
9220 : }
9221 : break;
9222 8 : case CFN_BUILT_IN_FFSL:
9223 8 : if (call_expr_nargs (_p0) == 1)
9224 : {
9225 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9226 8 : switch (TREE_CODE (_p1))
9227 : {
9228 8 : case INTEGER_CST:
9229 8 : {
9230 8 : {
9231 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9232 8 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL);
9233 8 : if (res) return res;
9234 : }
9235 4 : break;
9236 : }
9237 : default:;
9238 : }
9239 : }
9240 : break;
9241 3 : case CFN_BUILT_IN_POPCOUNTLL:
9242 3 : if (call_expr_nargs (_p0) == 1)
9243 : {
9244 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9245 3 : if (integer_zerop (_p1))
9246 : {
9247 0 : {
9248 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9249 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9250 0 : if (res) return res;
9251 : }
9252 : }
9253 : }
9254 : break;
9255 0 : case CFN_BUILT_IN_CTZIMAX:
9256 0 : if (call_expr_nargs (_p0) == 1)
9257 : {
9258 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9259 0 : switch (TREE_CODE (_p1))
9260 : {
9261 0 : case INTEGER_CST:
9262 0 : {
9263 0 : {
9264 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9265 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9266 0 : if (res) return res;
9267 : }
9268 0 : break;
9269 : }
9270 : default:;
9271 : }
9272 : }
9273 : break;
9274 0 : case CFN_POPCOUNT:
9275 0 : if (call_expr_nargs (_p0) == 1)
9276 : {
9277 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9278 0 : if (integer_zerop (_p1))
9279 : {
9280 0 : {
9281 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9282 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT);
9283 0 : if (res) return res;
9284 : }
9285 : }
9286 : }
9287 : break;
9288 0 : case CFN_CTZ:
9289 0 : if (call_expr_nargs (_p0) == 2)
9290 : {
9291 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9292 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
9293 0 : switch (TREE_CODE (_p1))
9294 : {
9295 0 : case INTEGER_CST:
9296 0 : {
9297 0 : {
9298 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9299 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
9300 0 : if (res) return res;
9301 : }
9302 0 : break;
9303 : }
9304 : default:;
9305 : }
9306 : }
9307 0 : if (call_expr_nargs (_p0) == 1)
9308 : {
9309 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9310 0 : switch (TREE_CODE (_p1))
9311 : {
9312 0 : case INTEGER_CST:
9313 0 : {
9314 0 : {
9315 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9316 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_CTZ);
9317 0 : if (res) return res;
9318 : }
9319 0 : break;
9320 : }
9321 : default:;
9322 : }
9323 : }
9324 : break;
9325 0 : case CFN_FFS:
9326 0 : if (call_expr_nargs (_p0) == 1)
9327 : {
9328 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9329 0 : switch (TREE_CODE (_p1))
9330 : {
9331 0 : case INTEGER_CST:
9332 0 : {
9333 0 : {
9334 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9335 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_FFS);
9336 0 : if (res) return res;
9337 : }
9338 0 : break;
9339 : }
9340 : default:;
9341 : }
9342 : }
9343 : break;
9344 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9345 0 : if (call_expr_nargs (_p0) == 1)
9346 : {
9347 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9348 0 : if (integer_zerop (_p1))
9349 : {
9350 0 : {
9351 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9352 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9353 0 : if (res) return res;
9354 : }
9355 : }
9356 : }
9357 : break;
9358 3 : case CFN_BUILT_IN_POPCOUNTL:
9359 3 : if (call_expr_nargs (_p0) == 1)
9360 : {
9361 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9362 3 : if (integer_zerop (_p1))
9363 : {
9364 0 : {
9365 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9366 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
9367 0 : if (res) return res;
9368 : }
9369 : }
9370 : }
9371 : break;
9372 18 : case CFN_BUILT_IN_CTZLL:
9373 18 : if (call_expr_nargs (_p0) == 1)
9374 : {
9375 18 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9376 18 : switch (TREE_CODE (_p1))
9377 : {
9378 18 : case INTEGER_CST:
9379 18 : {
9380 18 : {
9381 18 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9382 18 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
9383 18 : if (res) return res;
9384 : }
9385 16 : break;
9386 : }
9387 : default:;
9388 : }
9389 : }
9390 : break;
9391 9 : case CFN_BUILT_IN_FFSLL:
9392 9 : if (call_expr_nargs (_p0) == 1)
9393 : {
9394 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9395 9 : switch (TREE_CODE (_p1))
9396 : {
9397 9 : case INTEGER_CST:
9398 9 : {
9399 9 : {
9400 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9401 9 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL);
9402 9 : if (res) return res;
9403 : }
9404 4 : break;
9405 : }
9406 : default:;
9407 : }
9408 : }
9409 : break;
9410 : default:;
9411 : }
9412 : break;
9413 : default:;
9414 : }
9415 : return NULL_TREE;
9416 : }
9417 :
9418 : tree
9419 6743155 : 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)
9420 : {
9421 6743155 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9422 6743155 : switch (TREE_CODE (_p0))
9423 : {
9424 34972 : case LSHIFT_EXPR:
9425 34972 : {
9426 34972 : tree _q20 = TREE_OPERAND (_p0, 0);
9427 34972 : tree _q21 = TREE_OPERAND (_p0, 1);
9428 34972 : switch (TREE_CODE (_p1))
9429 : {
9430 1 : case LSHIFT_EXPR:
9431 1 : {
9432 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9433 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9434 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9435 : {
9436 1 : {
9437 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9438 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9439 1 : if (res) return res;
9440 : }
9441 : }
9442 : break;
9443 : }
9444 : default:;
9445 : }
9446 : break;
9447 : }
9448 80962 : case RSHIFT_EXPR:
9449 80962 : {
9450 80962 : tree _q20 = TREE_OPERAND (_p0, 0);
9451 80962 : tree _q21 = TREE_OPERAND (_p0, 1);
9452 80962 : switch (TREE_CODE (_p1))
9453 : {
9454 2 : case RSHIFT_EXPR:
9455 2 : {
9456 2 : tree _q50 = TREE_OPERAND (_p1, 0);
9457 2 : tree _q51 = TREE_OPERAND (_p1, 1);
9458 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9459 : {
9460 2 : {
9461 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9462 2 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9463 2 : if (res) return res;
9464 : }
9465 : }
9466 : break;
9467 : }
9468 : default:;
9469 : }
9470 : break;
9471 : }
9472 2004049 : CASE_CONVERT:
9473 2004049 : {
9474 2004049 : tree _q20 = TREE_OPERAND (_p0, 0);
9475 2004049 : switch (TREE_CODE (_p1))
9476 : {
9477 805343 : CASE_CONVERT:
9478 805343 : {
9479 805343 : tree _q40 = TREE_OPERAND (_p1, 0);
9480 805343 : {
9481 805343 : tree _q40_pops[1];
9482 805343 : if (tree_maybe_bit_not (_q40, _q40_pops))
9483 : {
9484 250 : tree _q50 = _q40_pops[0];
9485 250 : {
9486 250 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
9487 250 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
9488 250 : if (res) return res;
9489 : }
9490 : }
9491 : }
9492 805343 : break;
9493 : }
9494 2004049 : default:;
9495 : }
9496 2004049 : {
9497 2004049 : tree _q20_pops[1];
9498 2004049 : if (tree_maybe_bit_not (_q20, _q20_pops))
9499 : {
9500 427 : tree _q30 = _q20_pops[0];
9501 427 : switch (TREE_CODE (_p1))
9502 : {
9503 254 : CASE_CONVERT:
9504 254 : {
9505 254 : tree _q50 = TREE_OPERAND (_p1, 0);
9506 254 : {
9507 254 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
9508 254 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
9509 254 : if (res) return res;
9510 : }
9511 254 : break;
9512 : }
9513 : default:;
9514 : }
9515 : }
9516 : }
9517 2004049 : break;
9518 : }
9519 6743152 : default:;
9520 : }
9521 6743152 : {
9522 6743152 : tree _p1_pops[1];
9523 6743152 : if (tree_maybe_bit_not (_p1, _p1_pops))
9524 : {
9525 4803049 : tree _q30 = _p1_pops[0];
9526 4803049 : {
9527 4803049 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9528 4803049 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
9529 4803049 : if (res) return res;
9530 : }
9531 : }
9532 : }
9533 6743136 : {
9534 6743136 : tree _p0_pops[1];
9535 6743136 : if (tree_maybe_bit_not (_p0, _p0_pops))
9536 : {
9537 70796 : tree _q20 = _p0_pops[0];
9538 70796 : {
9539 70796 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
9540 70796 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures);
9541 70796 : if (res) return res;
9542 : }
9543 : }
9544 : }
9545 6743037 : switch (TREE_CODE (_p1))
9546 : {
9547 21308 : case PLUS_EXPR:
9548 21308 : {
9549 21308 : tree _q30 = TREE_OPERAND (_p1, 0);
9550 21308 : tree _q31 = TREE_OPERAND (_p1, 1);
9551 21308 : switch (TREE_CODE (_q30))
9552 : {
9553 163 : case LSHIFT_EXPR:
9554 163 : {
9555 163 : tree _q40 = TREE_OPERAND (_q30, 0);
9556 163 : tree _q41 = TREE_OPERAND (_q30, 1);
9557 163 : if (integer_onep (_q40))
9558 : {
9559 163 : if (integer_minus_onep (_q31))
9560 : {
9561 163 : {
9562 163 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q41 };
9563 163 : if (TYPE_UNSIGNED (type)
9564 : )
9565 : {
9566 163 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1670;
9567 163 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1670;
9568 163 : {
9569 163 : tree res_op0;
9570 163 : res_op0 = captures[0];
9571 163 : tree res_op1;
9572 163 : {
9573 163 : tree _o1[1], _r1;
9574 163 : {
9575 163 : tree _o2[2], _r2;
9576 163 : _o2[0] = build_all_ones_cst (type);
9577 163 : _o2[1] = captures[3];
9578 163 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9579 163 : _o1[0] = _r2;
9580 : }
9581 163 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9582 163 : res_op1 = _r1;
9583 : }
9584 163 : tree _r;
9585 163 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9586 163 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
9587 163 : return _r;
9588 : }
9589 0 : next_after_fail1670:;
9590 : }
9591 : }
9592 : }
9593 : }
9594 : break;
9595 : }
9596 : default:;
9597 : }
9598 : break;
9599 : }
9600 6742874 : default:;
9601 : }
9602 6742874 : switch (TREE_CODE (_p0))
9603 : {
9604 295766 : case PLUS_EXPR:
9605 295766 : {
9606 295766 : tree _q20 = TREE_OPERAND (_p0, 0);
9607 295766 : tree _q21 = TREE_OPERAND (_p0, 1);
9608 295766 : switch (TREE_CODE (_q20))
9609 : {
9610 169 : case LSHIFT_EXPR:
9611 169 : {
9612 169 : tree _q30 = TREE_OPERAND (_q20, 0);
9613 169 : tree _q31 = TREE_OPERAND (_q20, 1);
9614 169 : if (integer_onep (_q30))
9615 : {
9616 162 : if (integer_minus_onep (_q21))
9617 : {
9618 162 : {
9619 162 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q31 };
9620 162 : if (TYPE_UNSIGNED (type)
9621 : )
9622 : {
9623 134 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1671;
9624 134 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1671;
9625 134 : {
9626 134 : tree res_op0;
9627 134 : res_op0 = captures[0];
9628 134 : tree res_op1;
9629 134 : {
9630 134 : tree _o1[1], _r1;
9631 134 : {
9632 134 : tree _o2[2], _r2;
9633 134 : _o2[0] = build_all_ones_cst (type);
9634 134 : _o2[1] = captures[3];
9635 134 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9636 134 : _o1[0] = _r2;
9637 : }
9638 134 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9639 134 : res_op1 = _r1;
9640 : }
9641 134 : tree _r;
9642 134 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9643 134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
9644 134 : return _r;
9645 : }
9646 28 : next_after_fail1671:;
9647 : }
9648 : }
9649 : }
9650 : }
9651 : break;
9652 : }
9653 : default:;
9654 : }
9655 : break;
9656 : }
9657 1871 : case EQ_EXPR:
9658 1871 : {
9659 1871 : tree _q20 = TREE_OPERAND (_p0, 0);
9660 1871 : tree _q21 = TREE_OPERAND (_p0, 1);
9661 1871 : if (integer_zerop (_q21))
9662 : {
9663 753 : switch (TREE_CODE (_p1))
9664 : {
9665 68 : case EQ_EXPR:
9666 68 : {
9667 68 : tree _q50 = TREE_OPERAND (_p1, 0);
9668 68 : tree _q51 = TREE_OPERAND (_p1, 1);
9669 68 : if (integer_zerop (_q51))
9670 : {
9671 29 : {
9672 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9673 29 : tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9674 29 : if (res) return res;
9675 : }
9676 : }
9677 : break;
9678 : }
9679 : default:;
9680 : }
9681 : }
9682 1842 : if (integer_all_onesp (_q21))
9683 : {
9684 0 : switch (TREE_CODE (_p1))
9685 : {
9686 0 : case EQ_EXPR:
9687 0 : {
9688 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9689 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9690 0 : if (integer_all_onesp (_q51))
9691 : {
9692 0 : {
9693 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9694 0 : tree res = generic_simplify_110 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9695 0 : if (res) return res;
9696 : }
9697 : }
9698 : break;
9699 : }
9700 : default:;
9701 : }
9702 : }
9703 1842 : switch (TREE_CODE (_p1))
9704 : {
9705 8 : case BIT_IOR_EXPR:
9706 8 : {
9707 8 : tree _q50 = TREE_OPERAND (_p1, 0);
9708 8 : tree _q51 = TREE_OPERAND (_p1, 1);
9709 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9710 : {
9711 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9712 : {
9713 0 : {
9714 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9715 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9716 0 : if (res) return res;
9717 : }
9718 : }
9719 : }
9720 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9721 : {
9722 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9723 : {
9724 0 : {
9725 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9726 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9727 0 : if (res) return res;
9728 : }
9729 : }
9730 : }
9731 : break;
9732 : }
9733 1842 : default:;
9734 : }
9735 1842 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9736 : {
9737 12 : {
9738 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9739 12 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9740 12 : if (res) return res;
9741 : }
9742 : }
9743 1842 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9744 : {
9745 8 : {
9746 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9747 8 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9748 8 : if (res) return res;
9749 : }
9750 : }
9751 : break;
9752 : }
9753 1615 : case BIT_IOR_EXPR:
9754 1615 : {
9755 1615 : tree _q20 = TREE_OPERAND (_p0, 0);
9756 1615 : tree _q21 = TREE_OPERAND (_p0, 1);
9757 1615 : switch (TREE_CODE (_p1))
9758 : {
9759 169 : case BIT_NOT_EXPR:
9760 169 : {
9761 169 : tree _q50 = TREE_OPERAND (_p1, 0);
9762 169 : switch (TREE_CODE (_q50))
9763 : {
9764 6 : case BIT_XOR_EXPR:
9765 6 : {
9766 6 : tree _q60 = TREE_OPERAND (_q50, 0);
9767 6 : tree _q61 = TREE_OPERAND (_q50, 1);
9768 6 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9769 : {
9770 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9771 : {
9772 0 : {
9773 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9774 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9775 0 : if (res) return res;
9776 : }
9777 : }
9778 : }
9779 6 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9780 : {
9781 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9782 : {
9783 0 : {
9784 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9785 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9786 0 : if (res) return res;
9787 : }
9788 : }
9789 : }
9790 : break;
9791 : }
9792 : default:;
9793 : }
9794 : break;
9795 : }
9796 24 : case EQ_EXPR:
9797 24 : {
9798 24 : tree _q50 = TREE_OPERAND (_p1, 0);
9799 24 : tree _q51 = TREE_OPERAND (_p1, 1);
9800 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9801 : {
9802 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9803 : {
9804 8 : {
9805 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9806 8 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9807 8 : if (res) return res;
9808 : }
9809 : }
9810 : }
9811 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9812 : {
9813 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9814 : {
9815 0 : {
9816 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9817 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9818 0 : if (res) return res;
9819 : }
9820 : }
9821 : }
9822 : break;
9823 : }
9824 1615 : default:;
9825 : }
9826 1615 : {
9827 1615 : tree _p1_pops[1];
9828 1615 : if (tree_nop_convert (_p1, _p1_pops))
9829 : {
9830 139 : tree _q50 = _p1_pops[0];
9831 139 : switch (TREE_CODE (_q50))
9832 : {
9833 0 : case EQ_EXPR:
9834 0 : {
9835 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9836 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9837 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9838 : {
9839 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9840 : {
9841 0 : {
9842 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9843 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9844 0 : if (res) return res;
9845 : }
9846 : }
9847 : }
9848 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9849 : {
9850 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9851 : {
9852 0 : {
9853 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9854 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9855 0 : if (res) return res;
9856 : }
9857 : }
9858 : }
9859 : break;
9860 : }
9861 : default:;
9862 : }
9863 : }
9864 : }
9865 1615 : break;
9866 : }
9867 66923 : case BIT_NOT_EXPR:
9868 66923 : {
9869 66923 : tree _q20 = TREE_OPERAND (_p0, 0);
9870 66923 : switch (TREE_CODE (_q20))
9871 : {
9872 140 : case BIT_XOR_EXPR:
9873 140 : {
9874 140 : tree _q30 = TREE_OPERAND (_q20, 0);
9875 140 : tree _q31 = TREE_OPERAND (_q20, 1);
9876 140 : switch (TREE_CODE (_p1))
9877 : {
9878 48 : case BIT_IOR_EXPR:
9879 48 : {
9880 48 : tree _q60 = TREE_OPERAND (_p1, 0);
9881 48 : tree _q61 = TREE_OPERAND (_p1, 1);
9882 48 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9883 : {
9884 6 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9885 : {
9886 0 : {
9887 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9888 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9889 0 : if (res) return res;
9890 : }
9891 : }
9892 : }
9893 48 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9894 : {
9895 3 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9896 : {
9897 0 : {
9898 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9899 0 : tree res = generic_simplify_451 (loc, type, _p0, _p1, captures);
9900 0 : if (res) return res;
9901 : }
9902 : }
9903 : }
9904 : break;
9905 : }
9906 140 : default:;
9907 : }
9908 140 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9909 : {
9910 1 : {
9911 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9912 1 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9913 1 : if (res) return res;
9914 : }
9915 : }
9916 139 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9917 : {
9918 0 : {
9919 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9920 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9921 0 : if (res) return res;
9922 : }
9923 : }
9924 : break;
9925 : }
9926 : default:;
9927 : }
9928 : break;
9929 : }
9930 6742710 : default:;
9931 : }
9932 6742710 : {
9933 6742710 : tree _p0_pops[1];
9934 6742710 : if (tree_nop_convert (_p0, _p0_pops))
9935 : {
9936 1412188 : tree _q20 = _p0_pops[0];
9937 1412188 : switch (TREE_CODE (_q20))
9938 : {
9939 0 : case EQ_EXPR:
9940 0 : {
9941 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9942 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9943 0 : switch (TREE_CODE (_p1))
9944 : {
9945 0 : case BIT_IOR_EXPR:
9946 0 : {
9947 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9948 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9949 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9950 : {
9951 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9952 : {
9953 0 : {
9954 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9955 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9956 0 : if (res) return res;
9957 : }
9958 : }
9959 : }
9960 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9961 : {
9962 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9963 : {
9964 0 : {
9965 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9966 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures);
9967 0 : if (res) return res;
9968 : }
9969 : }
9970 : }
9971 : break;
9972 : }
9973 0 : default:;
9974 : }
9975 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9976 : {
9977 0 : {
9978 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9979 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9980 0 : if (res) return res;
9981 : }
9982 : }
9983 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9984 : {
9985 0 : {
9986 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9987 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
9988 0 : if (res) return res;
9989 : }
9990 : }
9991 : break;
9992 : }
9993 : default:;
9994 : }
9995 : }
9996 : }
9997 6742710 : switch (TREE_CODE (_p1))
9998 : {
9999 52622 : case BIT_NOT_EXPR:
10000 52622 : {
10001 52622 : tree _q30 = TREE_OPERAND (_p1, 0);
10002 52622 : switch (TREE_CODE (_q30))
10003 : {
10004 6 : case BIT_XOR_EXPR:
10005 6 : {
10006 6 : tree _q40 = TREE_OPERAND (_q30, 0);
10007 6 : tree _q41 = TREE_OPERAND (_q30, 1);
10008 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10009 : {
10010 0 : {
10011 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10012 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
10013 0 : if (res) return res;
10014 : }
10015 : }
10016 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10017 : {
10018 0 : {
10019 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10020 0 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
10021 0 : if (res) return res;
10022 : }
10023 : }
10024 : break;
10025 : }
10026 : default:;
10027 : }
10028 : break;
10029 : }
10030 6742710 : default:;
10031 : }
10032 6742710 : switch (TREE_CODE (_p0))
10033 : {
10034 295632 : case PLUS_EXPR:
10035 295632 : {
10036 295632 : tree _q20 = TREE_OPERAND (_p0, 0);
10037 295632 : tree _q21 = TREE_OPERAND (_p0, 1);
10038 295632 : if (integer_minus_onep (_q21))
10039 : {
10040 110590 : switch (TREE_CODE (_p1))
10041 : {
10042 10501 : case NEGATE_EXPR:
10043 10501 : {
10044 10501 : tree _q50 = TREE_OPERAND (_p1, 0);
10045 10501 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10046 : {
10047 9 : {
10048 9 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10049 9 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10050 9 : if (res) return res;
10051 : }
10052 : }
10053 : break;
10054 : }
10055 : default:;
10056 : }
10057 : }
10058 : break;
10059 : }
10060 47190 : case NEGATE_EXPR:
10061 47190 : {
10062 47190 : tree _q20 = TREE_OPERAND (_p0, 0);
10063 47190 : switch (TREE_CODE (_p1))
10064 : {
10065 26 : case PLUS_EXPR:
10066 26 : {
10067 26 : tree _q40 = TREE_OPERAND (_p1, 0);
10068 26 : tree _q41 = TREE_OPERAND (_p1, 1);
10069 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10070 : {
10071 0 : if (integer_minus_onep (_q41))
10072 : {
10073 0 : {
10074 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10075 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10076 0 : if (res) return res;
10077 : }
10078 : }
10079 : }
10080 : break;
10081 : }
10082 0 : case MINUS_EXPR:
10083 0 : {
10084 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10085 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10086 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10087 : {
10088 0 : if (integer_onep (_q41))
10089 : {
10090 0 : {
10091 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10092 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10093 0 : if (res) return res;
10094 : }
10095 : }
10096 : }
10097 : break;
10098 : }
10099 : default:;
10100 : }
10101 : break;
10102 : }
10103 680517 : case MINUS_EXPR:
10104 680517 : {
10105 680517 : tree _q20 = TREE_OPERAND (_p0, 0);
10106 680517 : tree _q21 = TREE_OPERAND (_p0, 1);
10107 680517 : if (integer_onep (_q21))
10108 : {
10109 805 : switch (TREE_CODE (_p1))
10110 : {
10111 0 : case NEGATE_EXPR:
10112 0 : {
10113 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10114 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10115 : {
10116 0 : {
10117 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10118 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10119 0 : if (res) return res;
10120 : }
10121 : }
10122 : break;
10123 : }
10124 : default:;
10125 : }
10126 : }
10127 : break;
10128 : }
10129 6742701 : default:;
10130 : }
10131 6742701 : switch (TREE_CODE (_p1))
10132 : {
10133 1780 : case EQ_EXPR:
10134 1780 : {
10135 1780 : tree _q30 = TREE_OPERAND (_p1, 0);
10136 1780 : tree _q31 = TREE_OPERAND (_p1, 1);
10137 1780 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10138 : {
10139 1 : {
10140 1 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10141 1 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10142 1 : if (res) return res;
10143 : }
10144 : }
10145 1780 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10146 : {
10147 0 : {
10148 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
10149 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10150 0 : if (res) return res;
10151 : }
10152 : }
10153 : break;
10154 : }
10155 257 : case BIT_XOR_EXPR:
10156 257 : {
10157 257 : tree _q30 = TREE_OPERAND (_p1, 0);
10158 257 : tree _q31 = TREE_OPERAND (_p1, 1);
10159 257 : {
10160 257 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
10161 257 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10162 257 : if (res) return res;
10163 : }
10164 256 : {
10165 256 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
10166 256 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10167 256 : if (res) return res;
10168 : }
10169 256 : break;
10170 : }
10171 6742700 : default:;
10172 : }
10173 6742700 : {
10174 6742700 : tree _p1_pops[1];
10175 6742700 : if (tree_nop_convert (_p1, _p1_pops))
10176 : {
10177 960478 : tree _q30 = _p1_pops[0];
10178 960478 : switch (TREE_CODE (_q30))
10179 : {
10180 0 : case EQ_EXPR:
10181 0 : {
10182 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10183 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10184 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10185 : {
10186 0 : {
10187 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10188 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10189 0 : if (res) return res;
10190 : }
10191 : }
10192 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10193 : {
10194 0 : {
10195 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10196 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures);
10197 0 : if (res) return res;
10198 : }
10199 : }
10200 : break;
10201 : }
10202 : default:;
10203 : }
10204 : }
10205 : }
10206 6742700 : switch (TREE_CODE (_p0))
10207 : {
10208 61863 : case BIT_XOR_EXPR:
10209 61863 : {
10210 61863 : tree _q20 = TREE_OPERAND (_p0, 0);
10211 61863 : tree _q21 = TREE_OPERAND (_p0, 1);
10212 61863 : {
10213 61863 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
10214 61863 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10215 61863 : if (res) return res;
10216 : }
10217 61863 : {
10218 61863 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
10219 61863 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
10220 61863 : if (res) return res;
10221 : }
10222 61863 : switch (TREE_CODE (_p1))
10223 : {
10224 152 : case BIT_XOR_EXPR:
10225 152 : {
10226 152 : tree _q50 = TREE_OPERAND (_p1, 0);
10227 152 : tree _q51 = TREE_OPERAND (_p1, 1);
10228 152 : switch (TREE_CODE (_q50))
10229 : {
10230 3 : case BIT_XOR_EXPR:
10231 3 : {
10232 3 : tree _q60 = TREE_OPERAND (_q50, 0);
10233 3 : tree _q61 = TREE_OPERAND (_q50, 1);
10234 3 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
10235 : {
10236 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10237 : {
10238 1 : {
10239 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q61 };
10240 1 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10241 1 : if (res) return res;
10242 : }
10243 : }
10244 : }
10245 2 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
10246 : {
10247 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10248 : {
10249 0 : {
10250 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q60 };
10251 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10252 0 : if (res) return res;
10253 : }
10254 : }
10255 : }
10256 2 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10257 : {
10258 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10259 : {
10260 1 : {
10261 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q61 };
10262 1 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10263 1 : if (res) return res;
10264 : }
10265 : }
10266 : }
10267 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
10268 : {
10269 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10270 : {
10271 0 : {
10272 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q60 };
10273 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10274 0 : if (res) return res;
10275 : }
10276 : }
10277 : }
10278 : break;
10279 : }
10280 150 : default:;
10281 : }
10282 150 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10283 : {
10284 47 : switch (TREE_CODE (_q51))
10285 : {
10286 0 : case BIT_XOR_EXPR:
10287 0 : {
10288 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10289 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10290 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10291 : {
10292 0 : {
10293 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q71 };
10294 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10295 0 : if (res) return res;
10296 : }
10297 : }
10298 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10299 : {
10300 0 : {
10301 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q70 };
10302 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10303 0 : if (res) return res;
10304 : }
10305 : }
10306 : break;
10307 : }
10308 : default:;
10309 : }
10310 : }
10311 150 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10312 : {
10313 0 : switch (TREE_CODE (_q51))
10314 : {
10315 0 : case BIT_XOR_EXPR:
10316 0 : {
10317 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10318 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10319 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10320 : {
10321 0 : {
10322 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q71 };
10323 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10324 0 : if (res) return res;
10325 : }
10326 : }
10327 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10328 : {
10329 0 : {
10330 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q70 };
10331 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10332 0 : if (res) return res;
10333 : }
10334 : }
10335 : break;
10336 : }
10337 : default:;
10338 : }
10339 : }
10340 : break;
10341 : }
10342 61861 : default:;
10343 : }
10344 61861 : switch (TREE_CODE (_q20))
10345 : {
10346 11 : case BIT_XOR_EXPR:
10347 11 : {
10348 11 : tree _q30 = TREE_OPERAND (_q20, 0);
10349 11 : tree _q31 = TREE_OPERAND (_q20, 1);
10350 11 : switch (TREE_CODE (_p1))
10351 : {
10352 0 : case BIT_XOR_EXPR:
10353 0 : {
10354 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10355 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10356 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10357 : {
10358 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10359 : {
10360 0 : {
10361 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10362 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10363 0 : if (res) return res;
10364 : }
10365 : }
10366 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10367 : {
10368 0 : {
10369 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10370 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10371 0 : if (res) return res;
10372 : }
10373 : }
10374 : }
10375 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10376 : {
10377 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10378 : {
10379 0 : {
10380 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10381 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10382 0 : if (res) return res;
10383 : }
10384 : }
10385 : }
10386 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10387 : {
10388 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10389 : {
10390 0 : {
10391 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10392 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10393 0 : if (res) return res;
10394 : }
10395 : }
10396 : }
10397 : break;
10398 : }
10399 : default:;
10400 : }
10401 : break;
10402 : }
10403 61861 : default:;
10404 : }
10405 61861 : switch (TREE_CODE (_q21))
10406 : {
10407 0 : case BIT_XOR_EXPR:
10408 0 : {
10409 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10410 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10411 0 : switch (TREE_CODE (_p1))
10412 : {
10413 0 : case BIT_XOR_EXPR:
10414 0 : {
10415 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10416 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10417 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10418 : {
10419 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
10420 : {
10421 0 : {
10422 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10423 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10424 0 : if (res) return res;
10425 : }
10426 : }
10427 0 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
10428 : {
10429 0 : {
10430 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10431 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10432 0 : if (res) return res;
10433 : }
10434 : }
10435 : }
10436 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
10437 : {
10438 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10439 : {
10440 0 : {
10441 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10442 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10443 0 : if (res) return res;
10444 : }
10445 : }
10446 : }
10447 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
10448 : {
10449 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10450 : {
10451 0 : {
10452 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10453 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
10454 0 : if (res) return res;
10455 : }
10456 : }
10457 : }
10458 : break;
10459 : }
10460 : default:;
10461 : }
10462 : break;
10463 : }
10464 : default:;
10465 : }
10466 : break;
10467 : }
10468 66921 : case BIT_NOT_EXPR:
10469 66921 : {
10470 66921 : tree _q20 = TREE_OPERAND (_p0, 0);
10471 66921 : switch (TREE_CODE (_q20))
10472 : {
10473 187 : case SSA_NAME:
10474 187 : {
10475 187 : switch (TREE_CODE (_p1))
10476 : {
10477 187 : case INTEGER_CST:
10478 187 : {
10479 187 : {
10480 187 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10481 374 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
10482 561 : && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0
10483 : )
10484 : {
10485 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1672;
10486 14 : {
10487 14 : tree res_op0;
10488 14 : res_op0 = captures[0];
10489 14 : tree res_op1;
10490 14 : res_op1 = captures[1];
10491 14 : tree _r;
10492 14 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
10493 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
10494 14 : return _r;
10495 : }
10496 0 : next_after_fail1672:;
10497 : }
10498 : }
10499 173 : break;
10500 : }
10501 : default:;
10502 : }
10503 : break;
10504 : }
10505 : default:;
10506 : }
10507 : break;
10508 : }
10509 295623 : case PLUS_EXPR:
10510 295623 : {
10511 295623 : tree _q20 = TREE_OPERAND (_p0, 0);
10512 295623 : tree _q21 = TREE_OPERAND (_p0, 1);
10513 295623 : switch (TREE_CODE (_q20))
10514 : {
10515 24 : case BIT_AND_EXPR:
10516 24 : {
10517 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10518 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10519 24 : switch (TREE_CODE (_q31))
10520 : {
10521 20 : case INTEGER_CST:
10522 20 : {
10523 20 : switch (TREE_CODE (_p1))
10524 : {
10525 20 : case INTEGER_CST:
10526 20 : {
10527 20 : {
10528 20 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10529 20 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10530 20 : if (res) return res;
10531 : }
10532 12 : break;
10533 : }
10534 : default:;
10535 : }
10536 : break;
10537 : }
10538 : default:;
10539 : }
10540 : break;
10541 : }
10542 64 : case BIT_IOR_EXPR:
10543 64 : {
10544 64 : tree _q30 = TREE_OPERAND (_q20, 0);
10545 64 : tree _q31 = TREE_OPERAND (_q20, 1);
10546 64 : switch (TREE_CODE (_q31))
10547 : {
10548 52 : case INTEGER_CST:
10549 52 : {
10550 52 : switch (TREE_CODE (_p1))
10551 : {
10552 52 : case INTEGER_CST:
10553 52 : {
10554 52 : {
10555 52 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10556 52 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10557 52 : if (res) return res;
10558 : }
10559 48 : break;
10560 : }
10561 : default:;
10562 : }
10563 : break;
10564 : }
10565 : default:;
10566 : }
10567 : break;
10568 : }
10569 24 : case BIT_XOR_EXPR:
10570 24 : {
10571 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10572 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10573 24 : switch (TREE_CODE (_q31))
10574 : {
10575 4 : case INTEGER_CST:
10576 4 : {
10577 4 : switch (TREE_CODE (_p1))
10578 : {
10579 4 : case INTEGER_CST:
10580 4 : {
10581 4 : {
10582 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10583 4 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10584 4 : if (res) return res;
10585 : }
10586 0 : break;
10587 : }
10588 : default:;
10589 : }
10590 : break;
10591 : }
10592 : default:;
10593 : }
10594 : break;
10595 : }
10596 295607 : default:;
10597 : }
10598 295607 : switch (TREE_CODE (_q21))
10599 : {
10600 0 : case BIT_AND_EXPR:
10601 0 : {
10602 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10603 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10604 0 : switch (TREE_CODE (_q41))
10605 : {
10606 0 : case INTEGER_CST:
10607 0 : {
10608 0 : switch (TREE_CODE (_p1))
10609 : {
10610 0 : case INTEGER_CST:
10611 0 : {
10612 0 : {
10613 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10614 0 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10615 0 : if (res) return res;
10616 : }
10617 0 : break;
10618 : }
10619 : default:;
10620 : }
10621 : break;
10622 : }
10623 : default:;
10624 : }
10625 : break;
10626 : }
10627 0 : case BIT_IOR_EXPR:
10628 0 : {
10629 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10630 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10631 0 : switch (TREE_CODE (_q41))
10632 : {
10633 0 : case INTEGER_CST:
10634 0 : {
10635 0 : switch (TREE_CODE (_p1))
10636 : {
10637 0 : case INTEGER_CST:
10638 0 : {
10639 0 : {
10640 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10641 0 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10642 0 : if (res) return res;
10643 : }
10644 0 : break;
10645 : }
10646 : default:;
10647 : }
10648 : break;
10649 : }
10650 : default:;
10651 : }
10652 : break;
10653 : }
10654 0 : case BIT_XOR_EXPR:
10655 0 : {
10656 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10657 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10658 0 : switch (TREE_CODE (_q41))
10659 : {
10660 0 : case INTEGER_CST:
10661 0 : {
10662 0 : switch (TREE_CODE (_p1))
10663 : {
10664 0 : case INTEGER_CST:
10665 0 : {
10666 0 : {
10667 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10668 0 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10669 0 : if (res) return res;
10670 : }
10671 0 : break;
10672 : }
10673 : default:;
10674 : }
10675 : break;
10676 : }
10677 : default:;
10678 : }
10679 : break;
10680 : }
10681 295607 : default:;
10682 : }
10683 295607 : switch (TREE_CODE (_p1))
10684 : {
10685 211301 : case INTEGER_CST:
10686 211301 : {
10687 211301 : {
10688 211301 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10689 211301 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, PLUS_EXPR);
10690 211301 : if (res) return res;
10691 : }
10692 83902 : break;
10693 : }
10694 : default:;
10695 : }
10696 : break;
10697 : }
10698 680517 : case MINUS_EXPR:
10699 680517 : {
10700 680517 : tree _q20 = TREE_OPERAND (_p0, 0);
10701 680517 : tree _q21 = TREE_OPERAND (_p0, 1);
10702 680517 : switch (TREE_CODE (_q20))
10703 : {
10704 4 : case BIT_AND_EXPR:
10705 4 : {
10706 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10707 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10708 4 : switch (TREE_CODE (_q31))
10709 : {
10710 2 : case INTEGER_CST:
10711 2 : {
10712 2 : switch (TREE_CODE (_p1))
10713 : {
10714 2 : case INTEGER_CST:
10715 2 : {
10716 2 : {
10717 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10718 2 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10719 2 : if (res) return res;
10720 : }
10721 0 : break;
10722 : }
10723 : default:;
10724 : }
10725 : break;
10726 : }
10727 : default:;
10728 : }
10729 : break;
10730 : }
10731 4 : case BIT_IOR_EXPR:
10732 4 : {
10733 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10734 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10735 4 : switch (TREE_CODE (_q31))
10736 : {
10737 2 : case INTEGER_CST:
10738 2 : {
10739 2 : switch (TREE_CODE (_p1))
10740 : {
10741 2 : case INTEGER_CST:
10742 2 : {
10743 2 : {
10744 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10745 2 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10746 2 : if (res) return res;
10747 : }
10748 0 : break;
10749 : }
10750 : default:;
10751 : }
10752 : break;
10753 : }
10754 : default:;
10755 : }
10756 : break;
10757 : }
10758 4 : case BIT_XOR_EXPR:
10759 4 : {
10760 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10761 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10762 4 : switch (TREE_CODE (_q31))
10763 : {
10764 2 : case INTEGER_CST:
10765 2 : {
10766 2 : switch (TREE_CODE (_p1))
10767 : {
10768 2 : case INTEGER_CST:
10769 2 : {
10770 2 : {
10771 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10772 2 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10773 2 : if (res) return res;
10774 : }
10775 0 : break;
10776 : }
10777 : default:;
10778 : }
10779 : break;
10780 : }
10781 : default:;
10782 : }
10783 : break;
10784 : }
10785 680511 : default:;
10786 : }
10787 680511 : switch (TREE_CODE (_q21))
10788 : {
10789 360 : case BIT_AND_EXPR:
10790 360 : {
10791 360 : tree _q40 = TREE_OPERAND (_q21, 0);
10792 360 : tree _q41 = TREE_OPERAND (_q21, 1);
10793 360 : switch (TREE_CODE (_q41))
10794 : {
10795 358 : case INTEGER_CST:
10796 358 : {
10797 358 : switch (TREE_CODE (_p1))
10798 : {
10799 358 : case INTEGER_CST:
10800 358 : {
10801 358 : {
10802 358 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10803 358 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10804 358 : if (res) return res;
10805 : }
10806 1 : break;
10807 : }
10808 : default:;
10809 : }
10810 : break;
10811 : }
10812 : default:;
10813 : }
10814 : break;
10815 : }
10816 4 : case BIT_IOR_EXPR:
10817 4 : {
10818 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10819 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10820 4 : switch (TREE_CODE (_q41))
10821 : {
10822 2 : case INTEGER_CST:
10823 2 : {
10824 2 : switch (TREE_CODE (_p1))
10825 : {
10826 2 : case INTEGER_CST:
10827 2 : {
10828 2 : {
10829 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10830 2 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10831 2 : if (res) return res;
10832 : }
10833 0 : break;
10834 : }
10835 : default:;
10836 : }
10837 : break;
10838 : }
10839 : default:;
10840 : }
10841 : break;
10842 : }
10843 4 : case BIT_XOR_EXPR:
10844 4 : {
10845 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10846 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10847 4 : switch (TREE_CODE (_q41))
10848 : {
10849 2 : case INTEGER_CST:
10850 2 : {
10851 2 : switch (TREE_CODE (_p1))
10852 : {
10853 2 : case INTEGER_CST:
10854 2 : {
10855 2 : {
10856 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10857 2 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10858 2 : if (res) return res;
10859 : }
10860 0 : break;
10861 : }
10862 : default:;
10863 : }
10864 : break;
10865 : }
10866 : default:;
10867 : }
10868 : break;
10869 : }
10870 680150 : default:;
10871 : }
10872 680150 : switch (TREE_CODE (_p1))
10873 : {
10874 679948 : case INTEGER_CST:
10875 679948 : {
10876 679948 : {
10877 679948 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10878 679948 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures, MINUS_EXPR);
10879 679948 : if (res) return res;
10880 : }
10881 489530 : break;
10882 : }
10883 : default:;
10884 : }
10885 : break;
10886 : }
10887 47190 : case NEGATE_EXPR:
10888 47190 : {
10889 47190 : tree _q20 = TREE_OPERAND (_p0, 0);
10890 47190 : switch (TREE_CODE (_q20))
10891 : {
10892 25 : case BIT_AND_EXPR:
10893 25 : {
10894 25 : tree _q30 = TREE_OPERAND (_q20, 0);
10895 25 : tree _q31 = TREE_OPERAND (_q20, 1);
10896 25 : switch (TREE_CODE (_q31))
10897 : {
10898 21 : case INTEGER_CST:
10899 21 : {
10900 21 : switch (TREE_CODE (_p1))
10901 : {
10902 11 : case INTEGER_CST:
10903 11 : {
10904 11 : {
10905 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10906 11 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10907 11 : if (res) return res;
10908 : }
10909 8 : break;
10910 : }
10911 : default:;
10912 : }
10913 : break;
10914 : }
10915 : default:;
10916 : }
10917 : break;
10918 : }
10919 44 : case BIT_IOR_EXPR:
10920 44 : {
10921 44 : tree _q30 = TREE_OPERAND (_q20, 0);
10922 44 : tree _q31 = TREE_OPERAND (_q20, 1);
10923 44 : switch (TREE_CODE (_q31))
10924 : {
10925 2 : case INTEGER_CST:
10926 2 : {
10927 2 : switch (TREE_CODE (_p1))
10928 : {
10929 2 : case INTEGER_CST:
10930 2 : {
10931 2 : {
10932 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10933 2 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
10934 2 : if (res) return res;
10935 : }
10936 0 : break;
10937 : }
10938 : default:;
10939 : }
10940 : break;
10941 : }
10942 : default:;
10943 : }
10944 : break;
10945 : }
10946 4 : case BIT_XOR_EXPR:
10947 4 : {
10948 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10949 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10950 4 : switch (TREE_CODE (_q31))
10951 : {
10952 2 : case INTEGER_CST:
10953 2 : {
10954 2 : switch (TREE_CODE (_p1))
10955 : {
10956 2 : case INTEGER_CST:
10957 2 : {
10958 2 : {
10959 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10960 2 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
10961 2 : if (res) return res;
10962 : }
10963 0 : break;
10964 : }
10965 : default:;
10966 : }
10967 : break;
10968 : }
10969 : default:;
10970 : }
10971 : break;
10972 : }
10973 47183 : default:;
10974 : }
10975 47183 : if (tree_zero_one_valued_p (_q20))
10976 : {
10977 21 : {
10978 21 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10979 21 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures);
10980 21 : if (res) return res;
10981 : }
10982 : }
10983 : break;
10984 : }
10985 6424456 : default:;
10986 : }
10987 6424456 : if (integer_zerop (_p1))
10988 : {
10989 3886 : {
10990 3886 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10991 3886 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1673;
10992 3886 : {
10993 3886 : tree _r;
10994 3886 : _r = captures[1];
10995 3886 : if (TREE_SIDE_EFFECTS (captures[0]))
10996 51 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10997 3886 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
10998 3886 : return _r;
10999 : }
11000 0 : next_after_fail1673:;
11001 : }
11002 : }
11003 6420570 : if (integer_all_onesp (_p1))
11004 : {
11005 45228 : {
11006 45228 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11007 45228 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1674;
11008 45228 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1674;
11009 45228 : {
11010 45228 : tree res_op0;
11011 45228 : res_op0 = captures[0];
11012 45228 : tree _r;
11013 45228 : _r = non_lvalue_loc (loc, res_op0);
11014 45228 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
11015 45228 : return _r;
11016 : }
11017 : next_after_fail1674:;
11018 : }
11019 : }
11020 6375342 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11021 : {
11022 131 : {
11023 131 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11024 131 : tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11025 131 : if (res) return res;
11026 : }
11027 : }
11028 6375211 : switch (TREE_CODE (_p1))
11029 : {
11030 52622 : case BIT_NOT_EXPR:
11031 52622 : {
11032 52622 : tree _q30 = TREE_OPERAND (_p1, 0);
11033 52622 : switch (TREE_CODE (_q30))
11034 : {
11035 13 : case BIT_AND_EXPR:
11036 13 : {
11037 13 : tree _q40 = TREE_OPERAND (_q30, 0);
11038 13 : tree _q41 = TREE_OPERAND (_q30, 1);
11039 13 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11040 : {
11041 0 : {
11042 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
11043 0 : tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11044 0 : if (res) return res;
11045 : }
11046 : }
11047 13 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
11048 : {
11049 0 : {
11050 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
11051 0 : tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11052 0 : if (res) return res;
11053 : }
11054 : }
11055 : break;
11056 : }
11057 : default:;
11058 : }
11059 : break;
11060 : }
11061 6375211 : default:;
11062 : }
11063 6375211 : switch (TREE_CODE (_p0))
11064 : {
11065 66891 : case BIT_NOT_EXPR:
11066 66891 : {
11067 66891 : tree _q20 = TREE_OPERAND (_p0, 0);
11068 66891 : switch (TREE_CODE (_q20))
11069 : {
11070 28 : case BIT_AND_EXPR:
11071 28 : {
11072 28 : tree _q30 = TREE_OPERAND (_q20, 0);
11073 28 : tree _q31 = TREE_OPERAND (_q20, 1);
11074 28 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11075 : {
11076 4 : {
11077 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
11078 4 : tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11079 4 : if (res) return res;
11080 : }
11081 : }
11082 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
11083 : {
11084 3 : {
11085 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
11086 3 : tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11087 3 : if (res) return res;
11088 : }
11089 : }
11090 21 : switch (TREE_CODE (_p1))
11091 : {
11092 0 : case BIT_IOR_EXPR:
11093 0 : {
11094 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11095 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11096 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11097 : {
11098 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
11099 : {
11100 0 : {
11101 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
11102 0 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
11103 0 : if (res) return res;
11104 : }
11105 : }
11106 : }
11107 : break;
11108 : }
11109 : default:;
11110 : }
11111 : break;
11112 : }
11113 66884 : default:;
11114 : }
11115 66884 : switch (TREE_CODE (_p1))
11116 : {
11117 27556 : CASE_CONVERT:
11118 27556 : {
11119 27556 : tree _q40 = TREE_OPERAND (_p1, 0);
11120 27556 : switch (TREE_CODE (_q40))
11121 : {
11122 0 : case BIT_NOT_EXPR:
11123 0 : {
11124 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11125 0 : {
11126 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
11127 0 : tree res = generic_simplify_131 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11128 0 : if (res) return res;
11129 : }
11130 0 : break;
11131 : }
11132 : default:;
11133 : }
11134 : break;
11135 : }
11136 44 : case BIT_NOT_EXPR:
11137 44 : {
11138 44 : tree _q40 = TREE_OPERAND (_p1, 0);
11139 44 : {
11140 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11141 44 : tree res = generic_simplify_131 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11142 44 : if (res) return res;
11143 : }
11144 0 : break;
11145 : }
11146 : default:;
11147 : }
11148 : break;
11149 : }
11150 1585 : case BIT_IOR_EXPR:
11151 1585 : {
11152 1585 : tree _q20 = TREE_OPERAND (_p0, 0);
11153 1585 : tree _q21 = TREE_OPERAND (_p0, 1);
11154 1585 : switch (TREE_CODE (_p1))
11155 : {
11156 169 : case BIT_NOT_EXPR:
11157 169 : {
11158 169 : tree _q50 = TREE_OPERAND (_p1, 0);
11159 169 : switch (TREE_CODE (_q50))
11160 : {
11161 0 : case BIT_AND_EXPR:
11162 0 : {
11163 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11164 0 : tree _q61 = TREE_OPERAND (_q50, 1);
11165 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11166 : {
11167 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11168 : {
11169 0 : {
11170 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11171 0 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures);
11172 0 : if (res) return res;
11173 : }
11174 : }
11175 : }
11176 : break;
11177 : }
11178 : default:;
11179 : }
11180 : break;
11181 : }
11182 2 : case BIT_XOR_EXPR:
11183 2 : {
11184 2 : tree _q50 = TREE_OPERAND (_p1, 0);
11185 2 : tree _q51 = TREE_OPERAND (_p1, 1);
11186 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11187 : {
11188 0 : {
11189 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
11190 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11191 0 : if (res) return res;
11192 : }
11193 : }
11194 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11195 : {
11196 2 : {
11197 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
11198 2 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11199 2 : if (res) return res;
11200 : }
11201 : }
11202 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11203 : {
11204 0 : {
11205 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
11206 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11207 0 : if (res) return res;
11208 : }
11209 : }
11210 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11211 : {
11212 0 : {
11213 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
11214 0 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11215 0 : if (res) return res;
11216 : }
11217 : }
11218 : break;
11219 : }
11220 1585 : default:;
11221 : }
11222 1585 : switch (TREE_CODE (_q20))
11223 : {
11224 127 : case BIT_NOT_EXPR:
11225 127 : {
11226 127 : tree _q30 = TREE_OPERAND (_q20, 0);
11227 127 : switch (TREE_CODE (_p1))
11228 : {
11229 2 : case BIT_IOR_EXPR:
11230 2 : {
11231 2 : tree _q60 = TREE_OPERAND (_p1, 0);
11232 2 : tree _q61 = TREE_OPERAND (_p1, 1);
11233 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11234 : {
11235 0 : switch (TREE_CODE (_q61))
11236 : {
11237 0 : case BIT_NOT_EXPR:
11238 0 : {
11239 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11240 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11241 : {
11242 0 : {
11243 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11244 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11245 0 : if (res) return res;
11246 : }
11247 : }
11248 : break;
11249 : }
11250 : default:;
11251 : }
11252 : }
11253 2 : switch (TREE_CODE (_q60))
11254 : {
11255 2 : case BIT_NOT_EXPR:
11256 2 : {
11257 2 : tree _q70 = TREE_OPERAND (_q60, 0);
11258 2 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
11259 : {
11260 2 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11261 : {
11262 2 : {
11263 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11264 2 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11265 2 : if (res) return res;
11266 : }
11267 : }
11268 : }
11269 : break;
11270 : }
11271 : default:;
11272 : }
11273 : break;
11274 : }
11275 : default:;
11276 : }
11277 : break;
11278 : }
11279 1583 : default:;
11280 : }
11281 1583 : switch (TREE_CODE (_q21))
11282 : {
11283 0 : case BIT_NOT_EXPR:
11284 0 : {
11285 0 : tree _q40 = TREE_OPERAND (_q21, 0);
11286 0 : switch (TREE_CODE (_p1))
11287 : {
11288 0 : case BIT_IOR_EXPR:
11289 0 : {
11290 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11291 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11292 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
11293 : {
11294 0 : switch (TREE_CODE (_q61))
11295 : {
11296 0 : case BIT_NOT_EXPR:
11297 0 : {
11298 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11299 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11300 : {
11301 0 : {
11302 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11303 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11304 0 : if (res) return res;
11305 : }
11306 : }
11307 : break;
11308 : }
11309 : default:;
11310 : }
11311 : }
11312 0 : switch (TREE_CODE (_q60))
11313 : {
11314 0 : case BIT_NOT_EXPR:
11315 0 : {
11316 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11317 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
11318 : {
11319 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
11320 : {
11321 0 : {
11322 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11323 0 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures);
11324 0 : if (res) return res;
11325 : }
11326 : }
11327 : }
11328 : break;
11329 : }
11330 : default:;
11331 : }
11332 : break;
11333 : }
11334 : default:;
11335 : }
11336 : break;
11337 : }
11338 : default:;
11339 : }
11340 : break;
11341 : }
11342 61805 : case BIT_XOR_EXPR:
11343 61805 : {
11344 61805 : tree _q20 = TREE_OPERAND (_p0, 0);
11345 61805 : tree _q21 = TREE_OPERAND (_p0, 1);
11346 61805 : switch (TREE_CODE (_p1))
11347 : {
11348 133 : case BIT_IOR_EXPR:
11349 133 : {
11350 133 : tree _q50 = TREE_OPERAND (_p1, 0);
11351 133 : tree _q51 = TREE_OPERAND (_p1, 1);
11352 133 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11353 : {
11354 18 : {
11355 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
11356 18 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11357 18 : if (res) return res;
11358 : }
11359 : }
11360 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11361 : {
11362 33 : {
11363 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
11364 33 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11365 33 : if (res) return res;
11366 : }
11367 : }
11368 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11369 : {
11370 30 : {
11371 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
11372 30 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11373 30 : if (res) return res;
11374 : }
11375 : }
11376 133 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11377 : {
11378 21 : {
11379 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
11380 21 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures);
11381 21 : if (res) return res;
11382 : }
11383 : }
11384 : break;
11385 : }
11386 61805 : default:;
11387 : }
11388 61805 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11389 : {
11390 31 : {
11391 31 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11392 31 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11393 31 : if (res) return res;
11394 : }
11395 : }
11396 61774 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11397 : {
11398 2 : {
11399 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11400 2 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11401 2 : if (res) return res;
11402 : }
11403 : }
11404 : break;
11405 : }
11406 1966271 : CASE_CONVERT:
11407 1966271 : {
11408 1966271 : tree _q20 = TREE_OPERAND (_p0, 0);
11409 1966271 : switch (TREE_CODE (_q20))
11410 : {
11411 164 : case BIT_NOT_EXPR:
11412 164 : {
11413 164 : tree _q30 = TREE_OPERAND (_q20, 0);
11414 164 : switch (TREE_CODE (_p1))
11415 : {
11416 34 : CASE_CONVERT:
11417 34 : {
11418 34 : tree _q50 = TREE_OPERAND (_p1, 0);
11419 34 : switch (TREE_CODE (_q50))
11420 : {
11421 0 : case BIT_NOT_EXPR:
11422 0 : {
11423 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11424 0 : {
11425 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
11426 0 : tree res = generic_simplify_131 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11427 0 : if (res) return res;
11428 : }
11429 0 : break;
11430 : }
11431 : default:;
11432 : }
11433 : break;
11434 : }
11435 1 : case BIT_NOT_EXPR:
11436 1 : {
11437 1 : tree _q50 = TREE_OPERAND (_p1, 0);
11438 1 : {
11439 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
11440 1 : tree res = generic_simplify_131 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11441 1 : if (res) return res;
11442 : }
11443 0 : break;
11444 : }
11445 : default:;
11446 : }
11447 : break;
11448 : }
11449 : default:;
11450 : }
11451 : break;
11452 : }
11453 6375124 : default:;
11454 : }
11455 6375124 : switch (TREE_CODE (_p1))
11456 : {
11457 254 : case BIT_XOR_EXPR:
11458 254 : {
11459 254 : tree _q30 = TREE_OPERAND (_p1, 0);
11460 254 : tree _q31 = TREE_OPERAND (_p1, 1);
11461 254 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
11462 : {
11463 0 : {
11464 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
11465 0 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11466 0 : if (res) return res;
11467 : }
11468 : }
11469 254 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11470 : {
11471 1 : {
11472 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
11473 1 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11474 1 : if (res) return res;
11475 : }
11476 : }
11477 : break;
11478 : }
11479 6375123 : default:;
11480 : }
11481 6375123 : switch (TREE_CODE (_p0))
11482 : {
11483 1966270 : CASE_CONVERT:
11484 1966270 : {
11485 1966270 : tree _q20 = TREE_OPERAND (_p0, 0);
11486 1966270 : switch (TREE_CODE (_q20))
11487 : {
11488 171 : case BIT_IOR_EXPR:
11489 171 : {
11490 171 : tree _q30 = TREE_OPERAND (_q20, 0);
11491 171 : tree _q31 = TREE_OPERAND (_q20, 1);
11492 171 : switch (TREE_CODE (_p1))
11493 : {
11494 12 : CASE_CONVERT:
11495 12 : {
11496 12 : tree _q60 = TREE_OPERAND (_p1, 0);
11497 12 : switch (TREE_CODE (_q60))
11498 : {
11499 0 : case BIT_IOR_EXPR:
11500 0 : {
11501 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11502 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11503 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
11504 : {
11505 0 : {
11506 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
11507 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11508 0 : if (res) return res;
11509 : }
11510 : }
11511 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
11512 : {
11513 0 : {
11514 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
11515 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11516 0 : if (res) return res;
11517 : }
11518 : }
11519 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
11520 : {
11521 0 : {
11522 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
11523 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11524 0 : if (res) return res;
11525 : }
11526 : }
11527 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
11528 : {
11529 0 : {
11530 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
11531 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11532 0 : if (res) return res;
11533 : }
11534 : }
11535 : break;
11536 : }
11537 : default:;
11538 : }
11539 : break;
11540 : }
11541 : default:;
11542 : }
11543 : break;
11544 : }
11545 40 : case BIT_AND_EXPR:
11546 40 : {
11547 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11548 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11549 40 : switch (TREE_CODE (_p1))
11550 : {
11551 0 : CASE_CONVERT:
11552 0 : {
11553 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11554 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
11555 : {
11556 0 : {
11557 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11558 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11559 0 : if (res) return res;
11560 : }
11561 : }
11562 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
11563 : {
11564 0 : {
11565 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11566 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11567 0 : if (res) return res;
11568 : }
11569 : }
11570 : break;
11571 : }
11572 40 : default:;
11573 : }
11574 40 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
11575 : {
11576 0 : {
11577 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11578 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11579 0 : if (res) return res;
11580 : }
11581 : }
11582 40 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
11583 : {
11584 0 : {
11585 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11586 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11587 0 : if (res) return res;
11588 : }
11589 : }
11590 : break;
11591 : }
11592 1966270 : default:;
11593 : }
11594 1966270 : switch (TREE_CODE (_p1))
11595 : {
11596 805343 : CASE_CONVERT:
11597 805343 : {
11598 805343 : tree _q40 = TREE_OPERAND (_p1, 0);
11599 805343 : switch (TREE_CODE (_q40))
11600 : {
11601 0 : case BIT_AND_EXPR:
11602 0 : {
11603 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11604 0 : tree _q51 = TREE_OPERAND (_q40, 1);
11605 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11606 : {
11607 0 : {
11608 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
11609 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11610 0 : if (res) return res;
11611 : }
11612 : }
11613 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11614 : {
11615 0 : {
11616 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
11617 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11618 0 : if (res) return res;
11619 : }
11620 : }
11621 : break;
11622 : }
11623 : default:;
11624 : }
11625 : break;
11626 : }
11627 47 : case BIT_AND_EXPR:
11628 47 : {
11629 47 : tree _q40 = TREE_OPERAND (_p1, 0);
11630 47 : tree _q41 = TREE_OPERAND (_p1, 1);
11631 47 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
11632 : {
11633 0 : {
11634 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
11635 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11636 0 : if (res) return res;
11637 : }
11638 : }
11639 47 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
11640 : {
11641 0 : {
11642 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
11643 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11644 0 : if (res) return res;
11645 : }
11646 : }
11647 : break;
11648 : }
11649 : default:;
11650 : }
11651 : break;
11652 : }
11653 1583 : case BIT_IOR_EXPR:
11654 1583 : {
11655 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11656 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11657 1583 : switch (TREE_CODE (_p1))
11658 : {
11659 9 : case BIT_IOR_EXPR:
11660 9 : {
11661 9 : tree _q50 = TREE_OPERAND (_p1, 0);
11662 9 : tree _q51 = TREE_OPERAND (_p1, 1);
11663 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11664 : {
11665 0 : {
11666 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
11667 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11668 0 : if (res) return res;
11669 : }
11670 : }
11671 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11672 : {
11673 0 : {
11674 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
11675 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11676 0 : if (res) return res;
11677 : }
11678 : }
11679 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11680 : {
11681 0 : {
11682 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
11683 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11684 0 : if (res) return res;
11685 : }
11686 : }
11687 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
11688 : {
11689 0 : {
11690 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
11691 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11692 0 : if (res) return res;
11693 : }
11694 : }
11695 : break;
11696 : }
11697 : default:;
11698 : }
11699 : break;
11700 : }
11701 6375123 : default:;
11702 : }
11703 6375123 : switch (TREE_CODE (_p1))
11704 : {
11705 952323 : CASE_CONVERT:
11706 952323 : {
11707 952323 : tree _q30 = TREE_OPERAND (_p1, 0);
11708 952323 : switch (TREE_CODE (_q30))
11709 : {
11710 8 : case BIT_AND_EXPR:
11711 8 : {
11712 8 : tree _q40 = TREE_OPERAND (_q30, 0);
11713 8 : tree _q41 = TREE_OPERAND (_q30, 1);
11714 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
11715 : {
11716 0 : {
11717 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
11718 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11719 0 : if (res) return res;
11720 : }
11721 : }
11722 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
11723 : {
11724 0 : {
11725 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
11726 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11727 0 : if (res) return res;
11728 : }
11729 : }
11730 : break;
11731 : }
11732 : default:;
11733 : }
11734 : break;
11735 : }
11736 6375123 : default:;
11737 : }
11738 6375123 : switch (TREE_CODE (_p0))
11739 : {
11740 1591 : case BIT_AND_EXPR:
11741 1591 : {
11742 1591 : tree _q20 = TREE_OPERAND (_p0, 0);
11743 1591 : tree _q21 = TREE_OPERAND (_p0, 1);
11744 1591 : switch (TREE_CODE (_p1))
11745 : {
11746 82 : CASE_CONVERT:
11747 82 : {
11748 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11749 82 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11750 : {
11751 0 : {
11752 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11753 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11754 0 : if (res) return res;
11755 : }
11756 : }
11757 82 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11758 : {
11759 0 : {
11760 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11761 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11762 0 : if (res) return res;
11763 : }
11764 : }
11765 : break;
11766 : }
11767 1591 : default:;
11768 : }
11769 1591 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
11770 : {
11771 0 : {
11772 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11773 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11774 0 : if (res) return res;
11775 : }
11776 : }
11777 1591 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
11778 : {
11779 0 : {
11780 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11781 0 : tree res = generic_simplify_118 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11782 0 : if (res) return res;
11783 : }
11784 : }
11785 1591 : {
11786 1591 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11787 1591 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11788 1591 : if (res) return res;
11789 : }
11790 1583 : switch (TREE_CODE (_p1))
11791 : {
11792 82 : CASE_CONVERT:
11793 82 : {
11794 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11795 82 : switch (TREE_CODE (_q50))
11796 : {
11797 8 : case BIT_AND_EXPR:
11798 8 : {
11799 8 : tree _q60 = TREE_OPERAND (_q50, 0);
11800 8 : tree _q61 = TREE_OPERAND (_q50, 1);
11801 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11802 : {
11803 0 : {
11804 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
11805 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11806 0 : if (res) return res;
11807 : }
11808 : }
11809 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
11810 : {
11811 0 : {
11812 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
11813 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11814 0 : if (res) return res;
11815 : }
11816 : }
11817 8 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11818 : {
11819 0 : {
11820 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
11821 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11822 0 : if (res) return res;
11823 : }
11824 : }
11825 8 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11826 : {
11827 0 : {
11828 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
11829 0 : tree res = generic_simplify_135 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11830 0 : if (res) return res;
11831 : }
11832 : }
11833 : break;
11834 : }
11835 : default:;
11836 : }
11837 : break;
11838 : }
11839 12 : case BIT_AND_EXPR:
11840 12 : {
11841 12 : tree _q50 = TREE_OPERAND (_p1, 0);
11842 12 : tree _q51 = TREE_OPERAND (_p1, 1);
11843 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11844 : {
11845 0 : {
11846 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
11847 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11848 0 : if (res) return res;
11849 : }
11850 : }
11851 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11852 : {
11853 0 : {
11854 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
11855 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11856 0 : if (res) return res;
11857 : }
11858 : }
11859 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11860 : {
11861 0 : {
11862 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
11863 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11864 0 : if (res) return res;
11865 : }
11866 : }
11867 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11868 : {
11869 0 : {
11870 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
11871 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11872 0 : if (res) return res;
11873 : }
11874 : }
11875 : break;
11876 : }
11877 : default:;
11878 : }
11879 : break;
11880 : }
11881 6375115 : default:;
11882 : }
11883 6375115 : switch (TREE_CODE (_p1))
11884 : {
11885 76 : case BIT_AND_EXPR:
11886 76 : {
11887 76 : tree _q30 = TREE_OPERAND (_p1, 0);
11888 76 : tree _q31 = TREE_OPERAND (_p1, 1);
11889 76 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
11890 : {
11891 0 : {
11892 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
11893 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11894 0 : if (res) return res;
11895 : }
11896 : }
11897 76 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
11898 : {
11899 0 : {
11900 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
11901 0 : tree res = generic_simplify_133 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11902 0 : if (res) return res;
11903 : }
11904 : }
11905 76 : {
11906 76 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
11907 76 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
11908 76 : if (res) return res;
11909 : }
11910 76 : break;
11911 : }
11912 6375115 : default:;
11913 : }
11914 6375115 : switch (TREE_CODE (_p0))
11915 : {
11916 1966270 : CASE_CONVERT:
11917 1966270 : {
11918 1966270 : tree _q20 = TREE_OPERAND (_p0, 0);
11919 1966270 : switch (TREE_CODE (_q20))
11920 : {
11921 40 : case BIT_AND_EXPR:
11922 40 : {
11923 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11924 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11925 40 : switch (TREE_CODE (_p1))
11926 : {
11927 0 : CASE_CONVERT:
11928 0 : {
11929 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11930 0 : switch (TREE_CODE (_q60))
11931 : {
11932 0 : case BIT_AND_EXPR:
11933 0 : {
11934 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11935 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11936 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
11937 : {
11938 0 : {
11939 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
11940 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11941 0 : if (res) return res;
11942 : }
11943 : }
11944 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
11945 : {
11946 0 : {
11947 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
11948 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11949 0 : if (res) return res;
11950 : }
11951 : }
11952 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
11953 : {
11954 0 : {
11955 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
11956 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11957 0 : if (res) return res;
11958 : }
11959 : }
11960 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
11961 : {
11962 0 : {
11963 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
11964 0 : tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11965 0 : if (res) return res;
11966 : }
11967 : }
11968 : break;
11969 : }
11970 : default:;
11971 : }
11972 : break;
11973 : }
11974 0 : case BIT_AND_EXPR:
11975 0 : {
11976 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11977 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11978 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11979 : {
11980 0 : {
11981 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
11982 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11983 0 : if (res) return res;
11984 : }
11985 : }
11986 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11987 : {
11988 0 : {
11989 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
11990 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11991 0 : if (res) return res;
11992 : }
11993 : }
11994 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
11995 : {
11996 0 : {
11997 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
11998 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11999 0 : if (res) return res;
12000 : }
12001 : }
12002 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12003 : {
12004 0 : {
12005 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
12006 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12007 0 : if (res) return res;
12008 : }
12009 : }
12010 : break;
12011 : }
12012 : default:;
12013 : }
12014 : break;
12015 : }
12016 1966270 : default:;
12017 : }
12018 1966270 : switch (TREE_CODE (_p1))
12019 : {
12020 805343 : CASE_CONVERT:
12021 805343 : {
12022 805343 : tree _q40 = TREE_OPERAND (_p1, 0);
12023 805343 : {
12024 805343 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
12025 805343 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12026 805343 : if (res) return res;
12027 : }
12028 805343 : break;
12029 : }
12030 1966270 : default:;
12031 : }
12032 1966270 : {
12033 1966270 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
12034 1966270 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12035 1966270 : if (res) return res;
12036 : }
12037 1966270 : break;
12038 : }
12039 1583 : case BIT_IOR_EXPR:
12040 1583 : {
12041 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12042 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12043 1583 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12044 : {
12045 2 : {
12046 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
12047 2 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12048 2 : if (res) return res;
12049 : }
12050 : }
12051 1581 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
12052 : {
12053 4 : {
12054 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
12055 4 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12056 4 : if (res) return res;
12057 : }
12058 : }
12059 1577 : {
12060 1577 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12061 1577 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12062 1577 : if (res) return res;
12063 : }
12064 1572 : {
12065 1572 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12066 1572 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12067 1572 : if (res) return res;
12068 : }
12069 1572 : switch (TREE_CODE (_p1))
12070 : {
12071 1 : case BIT_AND_EXPR:
12072 1 : {
12073 1 : tree _q50 = TREE_OPERAND (_p1, 0);
12074 1 : tree _q51 = TREE_OPERAND (_p1, 1);
12075 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12076 : {
12077 1 : {
12078 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51 };
12079 1 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12080 1 : if (res) return res;
12081 : }
12082 : }
12083 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12084 : {
12085 0 : {
12086 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50 };
12087 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12088 0 : if (res) return res;
12089 : }
12090 : }
12091 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12092 : {
12093 0 : {
12094 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51 };
12095 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12096 0 : if (res) return res;
12097 : }
12098 : }
12099 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12100 : {
12101 0 : {
12102 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50 };
12103 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12104 0 : if (res) return res;
12105 : }
12106 : }
12107 : break;
12108 : }
12109 168 : case BIT_NOT_EXPR:
12110 168 : {
12111 168 : tree _q50 = TREE_OPERAND (_p1, 0);
12112 168 : switch (TREE_CODE (_q50))
12113 : {
12114 9 : case BIT_IOR_EXPR:
12115 9 : {
12116 9 : tree _q60 = TREE_OPERAND (_q50, 0);
12117 9 : tree _q61 = TREE_OPERAND (_q50, 1);
12118 9 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
12119 : {
12120 0 : {
12121 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q61 };
12122 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12123 0 : if (res) return res;
12124 : }
12125 : }
12126 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
12127 : {
12128 1 : {
12129 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q60 };
12130 1 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12131 1 : if (res) return res;
12132 : }
12133 : }
12134 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12135 : {
12136 0 : {
12137 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q61 };
12138 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12139 0 : if (res) return res;
12140 : }
12141 : }
12142 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
12143 : {
12144 0 : {
12145 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q60 };
12146 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12147 0 : if (res) return res;
12148 : }
12149 : }
12150 : break;
12151 : }
12152 : default:;
12153 : }
12154 : break;
12155 : }
12156 : default:;
12157 : }
12158 : break;
12159 : }
12160 6375102 : default:;
12161 : }
12162 6375102 : switch (TREE_CODE (_p1))
12163 : {
12164 476 : case BIT_IOR_EXPR:
12165 476 : {
12166 476 : tree _q30 = TREE_OPERAND (_p1, 0);
12167 476 : tree _q31 = TREE_OPERAND (_p1, 1);
12168 476 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12169 : {
12170 0 : {
12171 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
12172 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12173 0 : if (res) return res;
12174 : }
12175 : }
12176 476 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
12177 : {
12178 0 : {
12179 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
12180 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12181 0 : if (res) return res;
12182 : }
12183 : }
12184 476 : {
12185 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
12186 476 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12187 476 : if (res) return res;
12188 : }
12189 476 : {
12190 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
12191 476 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12192 476 : if (res) return res;
12193 : }
12194 475 : break;
12195 : }
12196 6375101 : default:;
12197 : }
12198 6375101 : switch (TREE_CODE (_p0))
12199 : {
12200 1583 : case BIT_AND_EXPR:
12201 1583 : {
12202 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12203 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12204 1583 : switch (TREE_CODE (_p1))
12205 : {
12206 16 : case BIT_IOR_EXPR:
12207 16 : {
12208 16 : tree _q50 = TREE_OPERAND (_p1, 0);
12209 16 : tree _q51 = TREE_OPERAND (_p1, 1);
12210 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12211 : {
12212 0 : {
12213 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q51, _p0, _q21 };
12214 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12215 0 : if (res) return res;
12216 : }
12217 : }
12218 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12219 : {
12220 0 : {
12221 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q51, _p0, _q20 };
12222 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12223 0 : if (res) return res;
12224 : }
12225 : }
12226 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12227 : {
12228 0 : {
12229 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q50, _p0, _q21 };
12230 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12231 0 : if (res) return res;
12232 : }
12233 : }
12234 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12235 : {
12236 0 : {
12237 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20 };
12238 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12239 0 : if (res) return res;
12240 : }
12241 : }
12242 : break;
12243 : }
12244 : default:;
12245 : }
12246 : break;
12247 : }
12248 66839 : case BIT_NOT_EXPR:
12249 66839 : {
12250 66839 : tree _q20 = TREE_OPERAND (_p0, 0);
12251 66839 : switch (TREE_CODE (_q20))
12252 : {
12253 11 : case BIT_IOR_EXPR:
12254 11 : {
12255 11 : tree _q30 = TREE_OPERAND (_q20, 0);
12256 11 : tree _q31 = TREE_OPERAND (_q20, 1);
12257 11 : switch (TREE_CODE (_p1))
12258 : {
12259 0 : case BIT_IOR_EXPR:
12260 0 : {
12261 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12262 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12263 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12264 : {
12265 0 : {
12266 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q30, _p0, _q31 };
12267 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12268 0 : if (res) return res;
12269 : }
12270 : }
12271 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12272 : {
12273 0 : {
12274 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q31, _p0, _q30 };
12275 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12276 0 : if (res) return res;
12277 : }
12278 : }
12279 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12280 : {
12281 0 : {
12282 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q30, _p0, _q31 };
12283 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12284 0 : if (res) return res;
12285 : }
12286 : }
12287 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
12288 : {
12289 0 : {
12290 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q31, _p0, _q30 };
12291 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12292 0 : if (res) return res;
12293 : }
12294 : }
12295 : break;
12296 : }
12297 11 : default:;
12298 : }
12299 11 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12300 : {
12301 0 : {
12302 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
12303 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12304 0 : if (res) return res;
12305 : }
12306 : }
12307 11 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
12308 : {
12309 1 : {
12310 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
12311 1 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12312 1 : if (res) return res;
12313 : }
12314 : }
12315 : break;
12316 : }
12317 : default:;
12318 : }
12319 : break;
12320 : }
12321 6375100 : default:;
12322 : }
12323 6375100 : switch (TREE_CODE (_p1))
12324 : {
12325 52575 : case BIT_NOT_EXPR:
12326 52575 : {
12327 52575 : tree _q30 = TREE_OPERAND (_p1, 0);
12328 52575 : switch (TREE_CODE (_q30))
12329 : {
12330 8 : case BIT_IOR_EXPR:
12331 8 : {
12332 8 : tree _q40 = TREE_OPERAND (_q30, 0);
12333 8 : tree _q41 = TREE_OPERAND (_q30, 1);
12334 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12335 : {
12336 0 : {
12337 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
12338 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12339 0 : if (res) return res;
12340 : }
12341 : }
12342 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
12343 : {
12344 0 : {
12345 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
12346 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12347 0 : if (res) return res;
12348 : }
12349 : }
12350 : break;
12351 : }
12352 : default:;
12353 : }
12354 : break;
12355 : }
12356 6375100 : default:;
12357 : }
12358 6375100 : switch (TREE_CODE (_p0))
12359 : {
12360 1570 : case BIT_IOR_EXPR:
12361 1570 : {
12362 1570 : tree _q20 = TREE_OPERAND (_p0, 0);
12363 1570 : tree _q21 = TREE_OPERAND (_p0, 1);
12364 1570 : if (CONSTANT_CLASS_P (_q21))
12365 : {
12366 459 : if (CONSTANT_CLASS_P (_p1))
12367 : {
12368 25 : {
12369 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12370 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1675;
12371 25 : {
12372 25 : if (! tree_invariant_p (captures[2])) goto next_after_fail1675;
12373 25 : tree res_op0;
12374 25 : {
12375 25 : tree _o1[2], _r1;
12376 25 : _o1[0] = captures[0];
12377 25 : _o1[1] = unshare_expr (captures[2]);
12378 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12379 25 : res_op0 = _r1;
12380 : }
12381 25 : tree res_op1;
12382 25 : {
12383 25 : tree _o1[2], _r1;
12384 25 : _o1[0] = captures[1];
12385 25 : _o1[1] = captures[2];
12386 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12387 25 : if (EXPR_P (_r1))
12388 0 : goto next_after_fail1675;
12389 25 : res_op1 = _r1;
12390 : }
12391 25 : tree _r;
12392 25 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
12393 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
12394 25 : return _r;
12395 : }
12396 0 : next_after_fail1675:;
12397 : }
12398 : }
12399 : }
12400 : break;
12401 : }
12402 1583 : case BIT_AND_EXPR:
12403 1583 : {
12404 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12405 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12406 1583 : if (CONSTANT_CLASS_P (_q21))
12407 : {
12408 508 : if (CONSTANT_CLASS_P (_p1))
12409 : {
12410 441 : {
12411 441 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12412 441 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12413 441 : if (res) return res;
12414 : }
12415 : }
12416 : }
12417 : break;
12418 : }
12419 6374634 : default:;
12420 : }
12421 6374634 : {
12422 6374634 : tree _p1_pops[1];
12423 6374634 : if (tree_logical_inverted_value (_p1, _p1_pops))
12424 : {
12425 897 : tree _q30 = _p1_pops[0];
12426 897 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12427 : {
12428 1 : {
12429 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12430 1 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
12431 1 : if (res) return res;
12432 : }
12433 : }
12434 : }
12435 : }
12436 6374633 : switch (TREE_CODE (_p0))
12437 : {
12438 1966270 : CASE_CONVERT:
12439 1966270 : {
12440 1966270 : tree _q20 = TREE_OPERAND (_p0, 0);
12441 1966270 : switch (TREE_CODE (_q20))
12442 : {
12443 6049 : case NEGATE_EXPR:
12444 6049 : {
12445 6049 : tree _q30 = TREE_OPERAND (_q20, 0);
12446 6049 : if (tree_zero_one_valued_p (_q30))
12447 : {
12448 2 : {
12449 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
12450 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures);
12451 2 : if (res) return res;
12452 : }
12453 : }
12454 : break;
12455 : }
12456 : default:;
12457 : }
12458 : break;
12459 : }
12460 6374631 : default:;
12461 : }
12462 6374631 : {
12463 6374631 : tree _p0_pops[1];
12464 6374631 : if (tree_logical_inverted_value (_p0, _p0_pops))
12465 : {
12466 526 : tree _q20 = _p0_pops[0];
12467 526 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12468 : {
12469 12 : {
12470 12 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
12471 12 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
12472 12 : if (res) return res;
12473 : }
12474 : }
12475 : }
12476 : }
12477 6374619 : switch (TREE_CODE (_p1))
12478 : {
12479 952323 : CASE_CONVERT:
12480 952323 : {
12481 952323 : tree _q30 = TREE_OPERAND (_p1, 0);
12482 952323 : switch (TREE_CODE (_q30))
12483 : {
12484 108 : case NEGATE_EXPR:
12485 108 : {
12486 108 : tree _q40 = TREE_OPERAND (_q30, 0);
12487 108 : if (tree_zero_one_valued_p (_q40))
12488 : {
12489 18 : {
12490 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
12491 18 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures);
12492 18 : if (res) return res;
12493 : }
12494 : }
12495 : break;
12496 : }
12497 : default:;
12498 : }
12499 : break;
12500 : }
12501 10640 : case NEGATE_EXPR:
12502 10640 : {
12503 10640 : tree _q30 = TREE_OPERAND (_p1, 0);
12504 10640 : if (tree_zero_one_valued_p (_q30))
12505 : {
12506 24 : {
12507 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
12508 24 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures);
12509 24 : if (res) return res;
12510 : }
12511 : }
12512 : break;
12513 : }
12514 6374577 : default:;
12515 : }
12516 6374577 : switch (TREE_CODE (_p0))
12517 : {
12518 47149 : case NEGATE_EXPR:
12519 47149 : {
12520 47149 : tree _q20 = TREE_OPERAND (_p0, 0);
12521 47149 : switch (TREE_CODE (_q20))
12522 : {
12523 5463 : CASE_CONVERT:
12524 5463 : {
12525 5463 : tree _q30 = TREE_OPERAND (_q20, 0);
12526 5463 : switch (TREE_CODE (_q30))
12527 : {
12528 0 : case LT_EXPR:
12529 0 : {
12530 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12531 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12532 0 : {
12533 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12534 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LT_EXPR);
12535 0 : if (res) return res;
12536 : }
12537 0 : break;
12538 : }
12539 0 : case LE_EXPR:
12540 0 : {
12541 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12542 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12543 0 : {
12544 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12545 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LE_EXPR);
12546 0 : if (res) return res;
12547 : }
12548 0 : break;
12549 : }
12550 0 : case EQ_EXPR:
12551 0 : {
12552 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12553 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12554 0 : {
12555 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12556 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, EQ_EXPR);
12557 0 : if (res) return res;
12558 : }
12559 0 : break;
12560 : }
12561 0 : case NE_EXPR:
12562 0 : {
12563 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12564 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12565 0 : {
12566 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12567 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, NE_EXPR);
12568 0 : if (res) return res;
12569 : }
12570 0 : break;
12571 : }
12572 0 : case GE_EXPR:
12573 0 : {
12574 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12575 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12576 0 : {
12577 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12578 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GE_EXPR);
12579 0 : if (res) return res;
12580 : }
12581 0 : break;
12582 : }
12583 0 : case GT_EXPR:
12584 0 : {
12585 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12586 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12587 0 : {
12588 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12589 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, GT_EXPR);
12590 0 : if (res) return res;
12591 : }
12592 0 : break;
12593 : }
12594 0 : case UNORDERED_EXPR:
12595 0 : {
12596 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12597 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12598 0 : {
12599 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12600 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12601 0 : if (res) return res;
12602 : }
12603 0 : break;
12604 : }
12605 0 : case ORDERED_EXPR:
12606 0 : {
12607 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12608 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12609 0 : {
12610 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12611 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12612 0 : if (res) return res;
12613 : }
12614 0 : break;
12615 : }
12616 0 : case UNLT_EXPR:
12617 0 : {
12618 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12619 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12620 0 : {
12621 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12622 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12623 0 : if (res) return res;
12624 : }
12625 0 : break;
12626 : }
12627 0 : case UNLE_EXPR:
12628 0 : {
12629 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12630 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12631 0 : {
12632 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12633 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12634 0 : if (res) return res;
12635 : }
12636 0 : break;
12637 : }
12638 0 : case UNGT_EXPR:
12639 0 : {
12640 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12641 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12642 0 : {
12643 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12644 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12645 0 : if (res) return res;
12646 : }
12647 0 : break;
12648 : }
12649 0 : case UNGE_EXPR:
12650 0 : {
12651 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12652 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12653 0 : {
12654 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12655 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12656 0 : if (res) return res;
12657 : }
12658 0 : break;
12659 : }
12660 0 : case UNEQ_EXPR:
12661 0 : {
12662 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12663 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12664 0 : {
12665 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12666 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12667 0 : if (res) return res;
12668 : }
12669 0 : break;
12670 : }
12671 0 : case LTGT_EXPR:
12672 0 : {
12673 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12674 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12675 0 : {
12676 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12677 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12678 0 : if (res) return res;
12679 : }
12680 0 : break;
12681 : }
12682 : default:;
12683 : }
12684 : break;
12685 : }
12686 : default:;
12687 : }
12688 : break;
12689 : }
12690 6374577 : default:;
12691 : }
12692 6374577 : switch (TREE_CODE (_p1))
12693 : {
12694 10616 : case NEGATE_EXPR:
12695 10616 : {
12696 10616 : tree _q30 = TREE_OPERAND (_p1, 0);
12697 10616 : switch (TREE_CODE (_q30))
12698 : {
12699 65 : CASE_CONVERT:
12700 65 : {
12701 65 : tree _q40 = TREE_OPERAND (_q30, 0);
12702 65 : switch (TREE_CODE (_q40))
12703 : {
12704 0 : case LT_EXPR:
12705 0 : {
12706 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12707 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12708 0 : {
12709 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12710 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LT_EXPR);
12711 0 : if (res) return res;
12712 : }
12713 0 : break;
12714 : }
12715 0 : case LE_EXPR:
12716 0 : {
12717 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12718 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12719 0 : {
12720 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12721 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LE_EXPR);
12722 0 : if (res) return res;
12723 : }
12724 0 : break;
12725 : }
12726 0 : case EQ_EXPR:
12727 0 : {
12728 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12729 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12730 0 : {
12731 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12732 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, EQ_EXPR);
12733 0 : if (res) return res;
12734 : }
12735 0 : break;
12736 : }
12737 0 : case NE_EXPR:
12738 0 : {
12739 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12740 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12741 0 : {
12742 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12743 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, NE_EXPR);
12744 0 : if (res) return res;
12745 : }
12746 0 : break;
12747 : }
12748 0 : case GE_EXPR:
12749 0 : {
12750 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12751 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12752 0 : {
12753 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12754 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, GE_EXPR);
12755 0 : if (res) return res;
12756 : }
12757 0 : break;
12758 : }
12759 0 : case GT_EXPR:
12760 0 : {
12761 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12762 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12763 0 : {
12764 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12765 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, GT_EXPR);
12766 0 : if (res) return res;
12767 : }
12768 0 : break;
12769 : }
12770 0 : case UNORDERED_EXPR:
12771 0 : {
12772 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12773 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12774 0 : {
12775 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12776 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12777 0 : if (res) return res;
12778 : }
12779 0 : break;
12780 : }
12781 0 : case ORDERED_EXPR:
12782 0 : {
12783 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12784 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12785 0 : {
12786 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12787 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12788 0 : if (res) return res;
12789 : }
12790 0 : break;
12791 : }
12792 0 : case UNLT_EXPR:
12793 0 : {
12794 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12795 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12796 0 : {
12797 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12798 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12799 0 : if (res) return res;
12800 : }
12801 0 : break;
12802 : }
12803 0 : case UNLE_EXPR:
12804 0 : {
12805 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12806 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12807 0 : {
12808 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12809 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12810 0 : if (res) return res;
12811 : }
12812 0 : break;
12813 : }
12814 0 : case UNGT_EXPR:
12815 0 : {
12816 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12817 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12818 0 : {
12819 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12820 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12821 0 : if (res) return res;
12822 : }
12823 0 : break;
12824 : }
12825 0 : case UNGE_EXPR:
12826 0 : {
12827 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12828 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12829 0 : {
12830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12831 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12832 0 : if (res) return res;
12833 : }
12834 0 : break;
12835 : }
12836 0 : case UNEQ_EXPR:
12837 0 : {
12838 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12839 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12840 0 : {
12841 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12842 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12843 0 : if (res) return res;
12844 : }
12845 0 : break;
12846 : }
12847 0 : case LTGT_EXPR:
12848 0 : {
12849 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12850 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12851 0 : {
12852 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12853 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12854 0 : if (res) return res;
12855 : }
12856 0 : break;
12857 : }
12858 : default:;
12859 : }
12860 : break;
12861 : }
12862 : default:;
12863 : }
12864 : break;
12865 : }
12866 6374577 : default:;
12867 : }
12868 6374577 : switch (TREE_CODE (_p0))
12869 : {
12870 1966266 : CASE_CONVERT:
12871 1966266 : {
12872 1966266 : tree _q20 = TREE_OPERAND (_p0, 0);
12873 1966266 : switch (TREE_CODE (_p1))
12874 : {
12875 905813 : case INTEGER_CST:
12876 905813 : {
12877 905813 : {
12878 905813 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12879 905813 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
12880 905813 : if (res) return res;
12881 : }
12882 900362 : break;
12883 : }
12884 : default:;
12885 : }
12886 : break;
12887 : }
12888 6369126 : default:;
12889 : }
12890 6369126 : switch (TREE_CODE (_p1))
12891 : {
12892 4373401 : case INTEGER_CST:
12893 4373401 : {
12894 4373401 : {
12895 4373401 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12896 4373401 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
12897 4373401 : if (res) return res;
12898 : }
12899 4373401 : break;
12900 : }
12901 6369126 : default:;
12902 : }
12903 6369126 : switch (TREE_CODE (_p0))
12904 : {
12905 356 : case GT_EXPR:
12906 356 : {
12907 356 : tree _q20 = TREE_OPERAND (_p0, 0);
12908 356 : tree _q21 = TREE_OPERAND (_p0, 1);
12909 356 : switch (TREE_CODE (_p1))
12910 : {
12911 59 : case EQ_EXPR:
12912 59 : {
12913 59 : tree _q50 = TREE_OPERAND (_p1, 0);
12914 59 : tree _q51 = TREE_OPERAND (_p1, 1);
12915 59 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12916 : {
12917 8 : if (tree_min_value (_q51))
12918 : {
12919 4 : {
12920 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12921 4 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, EQ_EXPR);
12922 4 : if (res) return res;
12923 : }
12924 : }
12925 : }
12926 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12927 : {
12928 0 : if (tree_max_value (_q51))
12929 : {
12930 0 : {
12931 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12932 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, EQ_EXPR);
12933 0 : if (res) return res;
12934 : }
12935 : }
12936 : }
12937 : break;
12938 : }
12939 4 : case NE_EXPR:
12940 4 : {
12941 4 : tree _q50 = TREE_OPERAND (_p1, 0);
12942 4 : tree _q51 = TREE_OPERAND (_p1, 1);
12943 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12944 : {
12945 4 : if (tree_min_value (_q51))
12946 : {
12947 4 : {
12948 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12949 4 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, NE_EXPR);
12950 4 : if (res) return res;
12951 : }
12952 : }
12953 : }
12954 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12955 : {
12956 0 : if (tree_max_value (_q51))
12957 : {
12958 0 : {
12959 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12960 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, NE_EXPR);
12961 0 : if (res) return res;
12962 : }
12963 : }
12964 : }
12965 : break;
12966 : }
12967 348 : default:;
12968 : }
12969 348 : switch (TREE_CODE (_q20))
12970 : {
12971 0 : CASE_CONVERT:
12972 0 : {
12973 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12974 0 : switch (TREE_CODE (_p1))
12975 : {
12976 0 : case EQ_EXPR:
12977 0 : {
12978 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12979 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12980 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12981 : {
12982 0 : {
12983 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
12984 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12985 0 : if (res) return res;
12986 : }
12987 : }
12988 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12989 : {
12990 0 : {
12991 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
12992 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
12993 0 : if (res) return res;
12994 : }
12995 : }
12996 : break;
12997 : }
12998 0 : case NE_EXPR:
12999 0 : {
13000 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13001 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13002 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13003 : {
13004 0 : {
13005 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13006 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13007 0 : if (res) return res;
13008 : }
13009 : }
13010 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13011 : {
13012 0 : {
13013 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13014 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13015 0 : if (res) return res;
13016 : }
13017 : }
13018 : break;
13019 : }
13020 : default:;
13021 : }
13022 : break;
13023 : }
13024 348 : default:;
13025 : }
13026 348 : switch (TREE_CODE (_q21))
13027 : {
13028 0 : CASE_CONVERT:
13029 0 : {
13030 0 : tree _q40 = TREE_OPERAND (_q21, 0);
13031 0 : switch (TREE_CODE (_p1))
13032 : {
13033 0 : case EQ_EXPR:
13034 0 : {
13035 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13036 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13037 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13038 : {
13039 0 : {
13040 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13041 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13042 0 : if (res) return res;
13043 : }
13044 : }
13045 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13046 : {
13047 0 : {
13048 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13049 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13050 0 : if (res) return res;
13051 : }
13052 : }
13053 : break;
13054 : }
13055 0 : case NE_EXPR:
13056 0 : {
13057 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13058 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13059 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13060 : {
13061 0 : {
13062 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13063 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13064 0 : if (res) return res;
13065 : }
13066 : }
13067 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13068 : {
13069 0 : {
13070 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13071 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13072 0 : if (res) return res;
13073 : }
13074 : }
13075 : break;
13076 : }
13077 : default:;
13078 : }
13079 : break;
13080 : }
13081 348 : default:;
13082 : }
13083 348 : switch (TREE_CODE (_p1))
13084 : {
13085 55 : case EQ_EXPR:
13086 55 : {
13087 55 : tree _q50 = TREE_OPERAND (_p1, 0);
13088 55 : tree _q51 = TREE_OPERAND (_p1, 1);
13089 55 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13090 : {
13091 4 : {
13092 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13093 4 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13094 4 : if (res) return res;
13095 : }
13096 : }
13097 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13098 : {
13099 0 : {
13100 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13101 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13102 0 : if (res) return res;
13103 : }
13104 : }
13105 55 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13106 : {
13107 0 : {
13108 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13109 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13110 0 : if (res) return res;
13111 : }
13112 : }
13113 55 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13114 : {
13115 0 : {
13116 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13117 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13118 0 : if (res) return res;
13119 : }
13120 : }
13121 : break;
13122 : }
13123 0 : case NE_EXPR:
13124 0 : {
13125 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13126 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13127 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13128 : {
13129 0 : {
13130 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13131 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13132 0 : if (res) return res;
13133 : }
13134 : }
13135 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13136 : {
13137 0 : {
13138 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13139 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13140 0 : if (res) return res;
13141 : }
13142 : }
13143 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13144 : {
13145 0 : {
13146 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13147 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13148 0 : if (res) return res;
13149 : }
13150 : }
13151 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13152 : {
13153 0 : {
13154 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13155 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13156 0 : if (res) return res;
13157 : }
13158 : }
13159 : break;
13160 : }
13161 67 : case LT_EXPR:
13162 67 : {
13163 67 : tree _q50 = TREE_OPERAND (_p1, 0);
13164 67 : tree _q51 = TREE_OPERAND (_p1, 1);
13165 67 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13166 : {
13167 4 : {
13168 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13169 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13170 4 : if (res) return res;
13171 : }
13172 : }
13173 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13174 : {
13175 0 : {
13176 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13177 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13178 0 : if (res) return res;
13179 : }
13180 : }
13181 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13182 : {
13183 0 : {
13184 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13185 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13186 0 : if (res) return res;
13187 : }
13188 : }
13189 67 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13190 : {
13191 4 : {
13192 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13193 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13194 4 : if (res) return res;
13195 : }
13196 : }
13197 : break;
13198 : }
13199 72 : case LE_EXPR:
13200 72 : {
13201 72 : tree _q50 = TREE_OPERAND (_p1, 0);
13202 72 : tree _q51 = TREE_OPERAND (_p1, 1);
13203 72 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13204 : {
13205 23 : {
13206 23 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13207 23 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13208 23 : if (res) return res;
13209 : }
13210 : }
13211 72 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13212 : {
13213 0 : {
13214 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13215 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13216 0 : if (res) return res;
13217 : }
13218 : }
13219 72 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13220 : {
13221 0 : {
13222 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13223 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13224 0 : if (res) return res;
13225 : }
13226 : }
13227 72 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13228 : {
13229 0 : {
13230 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13231 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13232 0 : if (res) return res;
13233 : }
13234 : }
13235 : break;
13236 : }
13237 85 : case GT_EXPR:
13238 85 : {
13239 85 : tree _q50 = TREE_OPERAND (_p1, 0);
13240 85 : tree _q51 = TREE_OPERAND (_p1, 1);
13241 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13242 : {
13243 0 : {
13244 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13245 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13246 0 : if (res) return res;
13247 : }
13248 : }
13249 85 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13250 : {
13251 0 : {
13252 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13253 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13254 0 : if (res) return res;
13255 : }
13256 : }
13257 85 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13258 : {
13259 0 : {
13260 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13261 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13262 0 : if (res) return res;
13263 : }
13264 : }
13265 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13266 : {
13267 35 : {
13268 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13269 35 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13270 35 : if (res) return res;
13271 : }
13272 : }
13273 : break;
13274 : }
13275 0 : case GE_EXPR:
13276 0 : {
13277 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13278 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13279 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13280 : {
13281 0 : {
13282 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13283 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13284 0 : if (res) return res;
13285 : }
13286 : }
13287 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13288 : {
13289 0 : {
13290 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13291 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13292 0 : if (res) return res;
13293 : }
13294 : }
13295 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13296 : {
13297 0 : {
13298 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13299 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13300 0 : if (res) return res;
13301 : }
13302 : }
13303 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13304 : {
13305 0 : {
13306 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13307 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13308 0 : if (res) return res;
13309 : }
13310 : }
13311 : break;
13312 : }
13313 : default:;
13314 : }
13315 : break;
13316 : }
13317 92 : case LT_EXPR:
13318 92 : {
13319 92 : tree _q20 = TREE_OPERAND (_p0, 0);
13320 92 : tree _q21 = TREE_OPERAND (_p0, 1);
13321 92 : switch (TREE_CODE (_p1))
13322 : {
13323 35 : case EQ_EXPR:
13324 35 : {
13325 35 : tree _q50 = TREE_OPERAND (_p1, 0);
13326 35 : tree _q51 = TREE_OPERAND (_p1, 1);
13327 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13328 : {
13329 0 : if (tree_min_value (_q51))
13330 : {
13331 0 : {
13332 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13333 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, EQ_EXPR);
13334 0 : if (res) return res;
13335 : }
13336 : }
13337 : }
13338 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13339 : {
13340 4 : if (tree_max_value (_q51))
13341 : {
13342 4 : {
13343 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13344 4 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, EQ_EXPR);
13345 4 : if (res) return res;
13346 : }
13347 : }
13348 : }
13349 : break;
13350 : }
13351 6 : case NE_EXPR:
13352 6 : {
13353 6 : tree _q50 = TREE_OPERAND (_p1, 0);
13354 6 : tree _q51 = TREE_OPERAND (_p1, 1);
13355 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13356 : {
13357 0 : if (tree_min_value (_q51))
13358 : {
13359 0 : {
13360 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13361 0 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures, NE_EXPR);
13362 0 : if (res) return res;
13363 : }
13364 : }
13365 : }
13366 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13367 : {
13368 4 : if (tree_max_value (_q51))
13369 : {
13370 4 : {
13371 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13372 4 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, NE_EXPR);
13373 4 : if (res) return res;
13374 : }
13375 : }
13376 : }
13377 : break;
13378 : }
13379 84 : default:;
13380 : }
13381 84 : switch (TREE_CODE (_q20))
13382 : {
13383 8 : CASE_CONVERT:
13384 8 : {
13385 8 : tree _q30 = TREE_OPERAND (_q20, 0);
13386 8 : switch (TREE_CODE (_p1))
13387 : {
13388 0 : case EQ_EXPR:
13389 0 : {
13390 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13391 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13392 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13393 : {
13394 0 : {
13395 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13396 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13397 0 : if (res) return res;
13398 : }
13399 : }
13400 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13401 : {
13402 0 : {
13403 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13404 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13405 0 : if (res) return res;
13406 : }
13407 : }
13408 : break;
13409 : }
13410 0 : case NE_EXPR:
13411 0 : {
13412 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13413 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13414 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13415 : {
13416 0 : {
13417 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13418 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13419 0 : if (res) return res;
13420 : }
13421 : }
13422 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13423 : {
13424 0 : {
13425 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13426 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13427 0 : if (res) return res;
13428 : }
13429 : }
13430 : break;
13431 : }
13432 : default:;
13433 : }
13434 : break;
13435 : }
13436 84 : default:;
13437 : }
13438 84 : switch (TREE_CODE (_q21))
13439 : {
13440 5 : CASE_CONVERT:
13441 5 : {
13442 5 : tree _q40 = TREE_OPERAND (_q21, 0);
13443 5 : switch (TREE_CODE (_p1))
13444 : {
13445 0 : case EQ_EXPR:
13446 0 : {
13447 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13448 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13449 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13450 : {
13451 0 : {
13452 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13453 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13454 0 : if (res) return res;
13455 : }
13456 : }
13457 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13458 : {
13459 0 : {
13460 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13461 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13462 0 : if (res) return res;
13463 : }
13464 : }
13465 : break;
13466 : }
13467 0 : case NE_EXPR:
13468 0 : {
13469 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13470 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13471 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13472 : {
13473 0 : {
13474 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13475 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13476 0 : if (res) return res;
13477 : }
13478 : }
13479 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13480 : {
13481 0 : {
13482 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13483 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13484 0 : if (res) return res;
13485 : }
13486 : }
13487 : break;
13488 : }
13489 : default:;
13490 : }
13491 : break;
13492 : }
13493 84 : default:;
13494 : }
13495 84 : switch (TREE_CODE (_p1))
13496 : {
13497 31 : case EQ_EXPR:
13498 31 : {
13499 31 : tree _q50 = TREE_OPERAND (_p1, 0);
13500 31 : tree _q51 = TREE_OPERAND (_p1, 1);
13501 31 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13502 : {
13503 0 : {
13504 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13505 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13506 0 : if (res) return res;
13507 : }
13508 : }
13509 31 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13510 : {
13511 0 : {
13512 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13513 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13514 0 : if (res) return res;
13515 : }
13516 : }
13517 31 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13518 : {
13519 0 : {
13520 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13521 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13522 0 : if (res) return res;
13523 : }
13524 : }
13525 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13526 : {
13527 0 : {
13528 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13529 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13530 0 : if (res) return res;
13531 : }
13532 : }
13533 : break;
13534 : }
13535 2 : case NE_EXPR:
13536 2 : {
13537 2 : tree _q50 = TREE_OPERAND (_p1, 0);
13538 2 : tree _q51 = TREE_OPERAND (_p1, 1);
13539 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13540 : {
13541 0 : {
13542 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13543 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13544 0 : if (res) return res;
13545 : }
13546 : }
13547 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13548 : {
13549 0 : {
13550 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13551 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13552 0 : if (res) return res;
13553 : }
13554 : }
13555 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13556 : {
13557 0 : {
13558 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13559 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13560 0 : if (res) return res;
13561 : }
13562 : }
13563 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13564 : {
13565 2 : {
13566 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13567 2 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13568 2 : if (res) return res;
13569 : }
13570 : }
13571 : break;
13572 : }
13573 8 : case LT_EXPR:
13574 8 : {
13575 8 : tree _q50 = TREE_OPERAND (_p1, 0);
13576 8 : tree _q51 = TREE_OPERAND (_p1, 1);
13577 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13578 : {
13579 0 : {
13580 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13581 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13582 0 : if (res) return res;
13583 : }
13584 : }
13585 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13586 : {
13587 0 : {
13588 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13589 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13590 0 : if (res) return res;
13591 : }
13592 : }
13593 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13594 : {
13595 0 : {
13596 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13597 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13598 0 : if (res) return res;
13599 : }
13600 : }
13601 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13602 : {
13603 0 : {
13604 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13605 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13606 0 : if (res) return res;
13607 : }
13608 : }
13609 : break;
13610 : }
13611 0 : case LE_EXPR:
13612 0 : {
13613 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13614 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13615 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13616 : {
13617 0 : {
13618 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13619 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13620 0 : if (res) return res;
13621 : }
13622 : }
13623 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13624 : {
13625 0 : {
13626 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13627 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13628 0 : if (res) return res;
13629 : }
13630 : }
13631 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13632 : {
13633 0 : {
13634 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13635 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13636 0 : if (res) return res;
13637 : }
13638 : }
13639 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13640 : {
13641 0 : {
13642 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13643 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13644 0 : if (res) return res;
13645 : }
13646 : }
13647 : break;
13648 : }
13649 5 : case GT_EXPR:
13650 5 : {
13651 5 : tree _q50 = TREE_OPERAND (_p1, 0);
13652 5 : tree _q51 = TREE_OPERAND (_p1, 1);
13653 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13654 : {
13655 4 : {
13656 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13657 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13658 4 : if (res) return res;
13659 : }
13660 : }
13661 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13662 : {
13663 0 : {
13664 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13665 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13666 0 : if (res) return res;
13667 : }
13668 : }
13669 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13670 : {
13671 0 : {
13672 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13673 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13674 0 : if (res) return res;
13675 : }
13676 : }
13677 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13678 : {
13679 0 : {
13680 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13681 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13682 0 : if (res) return res;
13683 : }
13684 : }
13685 : break;
13686 : }
13687 0 : case GE_EXPR:
13688 0 : {
13689 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13690 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13691 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13692 : {
13693 0 : {
13694 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13695 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13696 0 : if (res) return res;
13697 : }
13698 : }
13699 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13700 : {
13701 0 : {
13702 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13703 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13704 0 : if (res) return res;
13705 : }
13706 : }
13707 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13708 : {
13709 0 : {
13710 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13711 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13712 0 : if (res) return res;
13713 : }
13714 : }
13715 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13716 : {
13717 0 : {
13718 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13719 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13720 0 : if (res) return res;
13721 : }
13722 : }
13723 : break;
13724 : }
13725 : default:;
13726 : }
13727 : break;
13728 : }
13729 1072 : case EQ_EXPR:
13730 1072 : {
13731 1072 : tree _q20 = TREE_OPERAND (_p0, 0);
13732 1072 : tree _q21 = TREE_OPERAND (_p0, 1);
13733 1072 : if (tree_min_value (_q21))
13734 : {
13735 40 : switch (TREE_CODE (_p1))
13736 : {
13737 0 : case GT_EXPR:
13738 0 : {
13739 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13740 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13741 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13742 : {
13743 0 : {
13744 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13745 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, EQ_EXPR);
13746 0 : if (res) return res;
13747 : }
13748 : }
13749 : break;
13750 : }
13751 14 : case LT_EXPR:
13752 14 : {
13753 14 : tree _q50 = TREE_OPERAND (_p1, 0);
13754 14 : tree _q51 = TREE_OPERAND (_p1, 1);
13755 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13756 : {
13757 0 : {
13758 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13759 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, EQ_EXPR);
13760 0 : if (res) return res;
13761 : }
13762 : }
13763 : break;
13764 : }
13765 0 : case LE_EXPR:
13766 0 : {
13767 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13768 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13769 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13770 : {
13771 0 : {
13772 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13773 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures);
13774 0 : if (res) return res;
13775 : }
13776 : }
13777 : break;
13778 : }
13779 0 : case GE_EXPR:
13780 0 : {
13781 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13782 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13783 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13784 : {
13785 0 : {
13786 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13787 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures);
13788 0 : if (res) return res;
13789 : }
13790 : }
13791 : break;
13792 : }
13793 : default:;
13794 : }
13795 : }
13796 1072 : if (tree_max_value (_q21))
13797 : {
13798 0 : switch (TREE_CODE (_p1))
13799 : {
13800 0 : case LT_EXPR:
13801 0 : {
13802 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13803 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13804 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13805 : {
13806 0 : {
13807 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13808 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR);
13809 0 : if (res) return res;
13810 : }
13811 : }
13812 : break;
13813 : }
13814 0 : case GT_EXPR:
13815 0 : {
13816 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13817 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13818 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13819 : {
13820 0 : {
13821 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13822 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR);
13823 0 : if (res) return res;
13824 : }
13825 : }
13826 : break;
13827 : }
13828 0 : case GE_EXPR:
13829 0 : {
13830 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13831 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13832 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13833 : {
13834 0 : {
13835 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13836 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
13837 0 : if (res) return res;
13838 : }
13839 : }
13840 : break;
13841 : }
13842 0 : case LE_EXPR:
13843 0 : {
13844 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13845 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13846 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13847 : {
13848 0 : {
13849 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13850 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures);
13851 0 : if (res) return res;
13852 : }
13853 : }
13854 : break;
13855 : }
13856 : default:;
13857 : }
13858 : }
13859 1072 : switch (TREE_CODE (_p1))
13860 : {
13861 537 : case EQ_EXPR:
13862 537 : {
13863 537 : tree _q50 = TREE_OPERAND (_p1, 0);
13864 537 : tree _q51 = TREE_OPERAND (_p1, 1);
13865 537 : switch (TREE_CODE (_q50))
13866 : {
13867 0 : CASE_CONVERT:
13868 0 : {
13869 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13870 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13871 : {
13872 0 : {
13873 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13874 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13875 0 : if (res) return res;
13876 : }
13877 : }
13878 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13879 : {
13880 0 : {
13881 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13882 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13883 0 : if (res) return res;
13884 : }
13885 : }
13886 : break;
13887 : }
13888 537 : default:;
13889 : }
13890 537 : switch (TREE_CODE (_q51))
13891 : {
13892 0 : CASE_CONVERT:
13893 0 : {
13894 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13895 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13896 : {
13897 0 : {
13898 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13899 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13900 0 : if (res) return res;
13901 : }
13902 : }
13903 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13904 : {
13905 0 : {
13906 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13907 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13908 0 : if (res) return res;
13909 : }
13910 : }
13911 : break;
13912 : }
13913 : default:;
13914 : }
13915 : break;
13916 : }
13917 33 : case NE_EXPR:
13918 33 : {
13919 33 : tree _q50 = TREE_OPERAND (_p1, 0);
13920 33 : tree _q51 = TREE_OPERAND (_p1, 1);
13921 33 : switch (TREE_CODE (_q50))
13922 : {
13923 0 : CASE_CONVERT:
13924 0 : {
13925 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13926 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13927 : {
13928 0 : {
13929 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13930 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13931 0 : if (res) return res;
13932 : }
13933 : }
13934 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13935 : {
13936 0 : {
13937 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13938 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13939 0 : if (res) return res;
13940 : }
13941 : }
13942 : break;
13943 : }
13944 33 : default:;
13945 : }
13946 33 : switch (TREE_CODE (_q51))
13947 : {
13948 0 : CASE_CONVERT:
13949 0 : {
13950 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13951 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13952 : {
13953 0 : {
13954 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13955 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13956 0 : if (res) return res;
13957 : }
13958 : }
13959 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13960 : {
13961 0 : {
13962 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13963 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13964 0 : if (res) return res;
13965 : }
13966 : }
13967 : break;
13968 : }
13969 : default:;
13970 : }
13971 : break;
13972 : }
13973 19 : case LT_EXPR:
13974 19 : {
13975 19 : tree _q50 = TREE_OPERAND (_p1, 0);
13976 19 : tree _q51 = TREE_OPERAND (_p1, 1);
13977 19 : switch (TREE_CODE (_q50))
13978 : {
13979 0 : CASE_CONVERT:
13980 0 : {
13981 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13982 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13983 : {
13984 0 : {
13985 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13986 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13987 0 : if (res) return res;
13988 : }
13989 : }
13990 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13991 : {
13992 0 : {
13993 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13994 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13995 0 : if (res) return res;
13996 : }
13997 : }
13998 : break;
13999 : }
14000 19 : default:;
14001 : }
14002 19 : switch (TREE_CODE (_q51))
14003 : {
14004 0 : CASE_CONVERT:
14005 0 : {
14006 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14007 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14008 : {
14009 0 : {
14010 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14011 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14012 0 : if (res) return res;
14013 : }
14014 : }
14015 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14016 : {
14017 0 : {
14018 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14019 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14020 0 : if (res) return res;
14021 : }
14022 : }
14023 : break;
14024 : }
14025 : default:;
14026 : }
14027 : break;
14028 : }
14029 12 : case GT_EXPR:
14030 12 : {
14031 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14032 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14033 12 : switch (TREE_CODE (_q50))
14034 : {
14035 0 : CASE_CONVERT:
14036 0 : {
14037 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14038 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14039 : {
14040 0 : {
14041 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14042 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14043 0 : if (res) return res;
14044 : }
14045 : }
14046 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14047 : {
14048 0 : {
14049 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14050 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14051 0 : if (res) return res;
14052 : }
14053 : }
14054 : break;
14055 : }
14056 12 : default:;
14057 : }
14058 12 : switch (TREE_CODE (_q51))
14059 : {
14060 0 : CASE_CONVERT:
14061 0 : {
14062 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14063 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14064 : {
14065 0 : {
14066 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14067 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14068 0 : if (res) return res;
14069 : }
14070 : }
14071 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14072 : {
14073 0 : {
14074 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14075 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14076 0 : if (res) return res;
14077 : }
14078 : }
14079 : break;
14080 : }
14081 : default:;
14082 : }
14083 : break;
14084 : }
14085 36 : case LE_EXPR:
14086 36 : {
14087 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14088 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14089 36 : switch (TREE_CODE (_q50))
14090 : {
14091 12 : CASE_CONVERT:
14092 12 : {
14093 12 : tree _q60 = TREE_OPERAND (_q50, 0);
14094 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14095 : {
14096 0 : {
14097 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14098 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14099 0 : if (res) return res;
14100 : }
14101 : }
14102 12 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14103 : {
14104 0 : {
14105 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14106 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14107 0 : if (res) return res;
14108 : }
14109 : }
14110 : break;
14111 : }
14112 36 : default:;
14113 : }
14114 36 : switch (TREE_CODE (_q51))
14115 : {
14116 0 : CASE_CONVERT:
14117 0 : {
14118 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14119 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14120 : {
14121 0 : {
14122 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14123 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14124 0 : if (res) return res;
14125 : }
14126 : }
14127 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14128 : {
14129 0 : {
14130 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14131 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14132 0 : if (res) return res;
14133 : }
14134 : }
14135 : break;
14136 : }
14137 : default:;
14138 : }
14139 : break;
14140 : }
14141 4 : case GE_EXPR:
14142 4 : {
14143 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14144 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14145 4 : switch (TREE_CODE (_q50))
14146 : {
14147 0 : CASE_CONVERT:
14148 0 : {
14149 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14150 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14151 : {
14152 0 : {
14153 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14154 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14155 0 : if (res) return res;
14156 : }
14157 : }
14158 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14159 : {
14160 0 : {
14161 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14162 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14163 0 : if (res) return res;
14164 : }
14165 : }
14166 : break;
14167 : }
14168 4 : default:;
14169 : }
14170 4 : switch (TREE_CODE (_q51))
14171 : {
14172 0 : CASE_CONVERT:
14173 0 : {
14174 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14175 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14176 : {
14177 0 : {
14178 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14179 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14180 0 : if (res) return res;
14181 : }
14182 : }
14183 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14184 : {
14185 0 : {
14186 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14187 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14188 0 : if (res) return res;
14189 : }
14190 : }
14191 : break;
14192 : }
14193 : default:;
14194 : }
14195 : break;
14196 : }
14197 1072 : default:;
14198 : }
14199 1072 : switch (TREE_CODE (_q20))
14200 : {
14201 0 : CASE_CONVERT:
14202 0 : {
14203 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14204 0 : switch (TREE_CODE (_p1))
14205 : {
14206 0 : case EQ_EXPR:
14207 0 : {
14208 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14209 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14210 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14211 : {
14212 0 : {
14213 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14214 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14215 0 : if (res) return res;
14216 : }
14217 : }
14218 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14219 : {
14220 0 : {
14221 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14222 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14223 0 : if (res) return res;
14224 : }
14225 : }
14226 : break;
14227 : }
14228 0 : case NE_EXPR:
14229 0 : {
14230 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14231 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14232 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14233 : {
14234 0 : {
14235 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14236 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14237 0 : if (res) return res;
14238 : }
14239 : }
14240 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14241 : {
14242 0 : {
14243 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14244 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14245 0 : if (res) return res;
14246 : }
14247 : }
14248 : break;
14249 : }
14250 : default:;
14251 : }
14252 : break;
14253 : }
14254 1072 : default:;
14255 : }
14256 1072 : switch (TREE_CODE (_q21))
14257 : {
14258 0 : CASE_CONVERT:
14259 0 : {
14260 0 : tree _q40 = TREE_OPERAND (_q21, 0);
14261 0 : switch (TREE_CODE (_p1))
14262 : {
14263 0 : case EQ_EXPR:
14264 0 : {
14265 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14266 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14267 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14268 : {
14269 0 : {
14270 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14271 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14272 0 : if (res) return res;
14273 : }
14274 : }
14275 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14276 : {
14277 0 : {
14278 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14279 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14280 0 : if (res) return res;
14281 : }
14282 : }
14283 : break;
14284 : }
14285 0 : case NE_EXPR:
14286 0 : {
14287 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14288 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14289 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14290 : {
14291 0 : {
14292 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14293 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14294 0 : if (res) return res;
14295 : }
14296 : }
14297 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14298 : {
14299 0 : {
14300 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14301 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14302 0 : if (res) return res;
14303 : }
14304 : }
14305 : break;
14306 : }
14307 : default:;
14308 : }
14309 : break;
14310 : }
14311 1072 : default:;
14312 : }
14313 1072 : switch (TREE_CODE (_p1))
14314 : {
14315 537 : case EQ_EXPR:
14316 537 : {
14317 537 : tree _q50 = TREE_OPERAND (_p1, 0);
14318 537 : tree _q51 = TREE_OPERAND (_p1, 1);
14319 537 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14320 : {
14321 0 : {
14322 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14323 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14324 0 : if (res) return res;
14325 : }
14326 0 : {
14327 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14328 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14329 0 : if (res) return res;
14330 : }
14331 : }
14332 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14333 : {
14334 0 : {
14335 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14336 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14337 0 : if (res) return res;
14338 : }
14339 : }
14340 537 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14341 : {
14342 0 : {
14343 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14344 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14345 0 : if (res) return res;
14346 : }
14347 0 : {
14348 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14349 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14350 0 : if (res) return res;
14351 : }
14352 : }
14353 537 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14354 : {
14355 178 : {
14356 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14357 178 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14358 178 : if (res) return res;
14359 : }
14360 178 : {
14361 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14362 178 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14363 178 : if (res) return res;
14364 : }
14365 : }
14366 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14367 : {
14368 0 : {
14369 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14370 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14371 0 : if (res) return res;
14372 : }
14373 : }
14374 : break;
14375 : }
14376 33 : case NE_EXPR:
14377 33 : {
14378 33 : tree _q50 = TREE_OPERAND (_p1, 0);
14379 33 : tree _q51 = TREE_OPERAND (_p1, 1);
14380 33 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14381 : {
14382 0 : {
14383 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14384 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14385 0 : if (res) return res;
14386 : }
14387 0 : {
14388 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14389 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14390 0 : if (res) return res;
14391 : }
14392 : }
14393 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14394 : {
14395 0 : {
14396 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14397 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14398 0 : if (res) return res;
14399 : }
14400 : }
14401 33 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14402 : {
14403 0 : {
14404 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14405 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14406 0 : if (res) return res;
14407 : }
14408 0 : {
14409 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14410 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14411 0 : if (res) return res;
14412 : }
14413 : }
14414 33 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14415 : {
14416 11 : {
14417 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14418 11 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14419 11 : if (res) return res;
14420 : }
14421 11 : {
14422 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14423 11 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14424 11 : if (res) return res;
14425 : }
14426 : }
14427 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14428 : {
14429 0 : {
14430 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14431 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14432 0 : if (res) return res;
14433 : }
14434 : }
14435 : break;
14436 : }
14437 19 : case LT_EXPR:
14438 19 : {
14439 19 : tree _q50 = TREE_OPERAND (_p1, 0);
14440 19 : tree _q51 = TREE_OPERAND (_p1, 1);
14441 19 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14442 : {
14443 0 : {
14444 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14445 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14446 0 : if (res) return res;
14447 : }
14448 : }
14449 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14450 : {
14451 0 : {
14452 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14453 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14454 0 : if (res) return res;
14455 : }
14456 : }
14457 19 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14458 : {
14459 0 : {
14460 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14461 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14462 0 : if (res) return res;
14463 : }
14464 : }
14465 19 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14466 : {
14467 0 : {
14468 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14469 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14470 0 : if (res) return res;
14471 : }
14472 : }
14473 : break;
14474 : }
14475 12 : case GT_EXPR:
14476 12 : {
14477 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14478 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14479 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14480 : {
14481 0 : {
14482 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14483 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14484 0 : if (res) return res;
14485 : }
14486 : }
14487 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14488 : {
14489 0 : {
14490 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14491 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14492 0 : if (res) return res;
14493 : }
14494 : }
14495 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14496 : {
14497 0 : {
14498 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14499 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14500 0 : if (res) return res;
14501 : }
14502 : }
14503 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14504 : {
14505 0 : {
14506 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14507 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14508 0 : if (res) return res;
14509 : }
14510 : }
14511 : break;
14512 : }
14513 36 : case LE_EXPR:
14514 36 : {
14515 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14516 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14517 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14518 : {
14519 0 : {
14520 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14521 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14522 0 : if (res) return res;
14523 : }
14524 : }
14525 36 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14526 : {
14527 0 : {
14528 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14529 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14530 0 : if (res) return res;
14531 : }
14532 : }
14533 36 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14534 : {
14535 0 : {
14536 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14537 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14538 0 : if (res) return res;
14539 : }
14540 : }
14541 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14542 : {
14543 0 : {
14544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14545 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14546 0 : if (res) return res;
14547 : }
14548 : }
14549 : break;
14550 : }
14551 4 : case GE_EXPR:
14552 4 : {
14553 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14554 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14555 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14556 : {
14557 0 : {
14558 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14559 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14560 0 : if (res) return res;
14561 : }
14562 : }
14563 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14564 : {
14565 0 : {
14566 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14567 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14568 0 : if (res) return res;
14569 : }
14570 : }
14571 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14572 : {
14573 0 : {
14574 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14575 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14576 0 : if (res) return res;
14577 : }
14578 : }
14579 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14580 : {
14581 0 : {
14582 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14583 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14584 0 : if (res) return res;
14585 : }
14586 : }
14587 : break;
14588 : }
14589 : default:;
14590 : }
14591 : break;
14592 : }
14593 139 : case NE_EXPR:
14594 139 : {
14595 139 : tree _q20 = TREE_OPERAND (_p0, 0);
14596 139 : tree _q21 = TREE_OPERAND (_p0, 1);
14597 139 : if (tree_min_value (_q21))
14598 : {
14599 16 : switch (TREE_CODE (_p1))
14600 : {
14601 0 : case GT_EXPR:
14602 0 : {
14603 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14604 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14605 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14606 : {
14607 0 : {
14608 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14609 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, NE_EXPR);
14610 0 : if (res) return res;
14611 : }
14612 : }
14613 : break;
14614 : }
14615 0 : case LT_EXPR:
14616 0 : {
14617 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14618 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14619 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14620 : {
14621 0 : {
14622 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14623 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, NE_EXPR);
14624 0 : if (res) return res;
14625 : }
14626 : }
14627 : break;
14628 : }
14629 3 : case GE_EXPR:
14630 3 : {
14631 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14632 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14633 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14634 : {
14635 3 : {
14636 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
14637 3 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures);
14638 3 : if (res) return res;
14639 : }
14640 : }
14641 : break;
14642 : }
14643 0 : case LE_EXPR:
14644 0 : {
14645 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14646 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14647 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14648 : {
14649 0 : {
14650 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q51 };
14651 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures);
14652 0 : if (res) return res;
14653 : }
14654 : }
14655 : break;
14656 : }
14657 : default:;
14658 : }
14659 : }
14660 136 : if (tree_max_value (_q21))
14661 : {
14662 0 : switch (TREE_CODE (_p1))
14663 : {
14664 0 : case LT_EXPR:
14665 0 : {
14666 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14667 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14668 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14669 : {
14670 0 : {
14671 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14672 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR);
14673 0 : if (res) return res;
14674 : }
14675 : }
14676 : break;
14677 : }
14678 0 : case GT_EXPR:
14679 0 : {
14680 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14681 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14682 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14683 : {
14684 0 : {
14685 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14686 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR);
14687 0 : if (res) return res;
14688 : }
14689 : }
14690 : break;
14691 : }
14692 : default:;
14693 : }
14694 : }
14695 136 : switch (TREE_CODE (_p1))
14696 : {
14697 20 : case EQ_EXPR:
14698 20 : {
14699 20 : tree _q50 = TREE_OPERAND (_p1, 0);
14700 20 : tree _q51 = TREE_OPERAND (_p1, 1);
14701 20 : switch (TREE_CODE (_q50))
14702 : {
14703 0 : CASE_CONVERT:
14704 0 : {
14705 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14706 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14707 : {
14708 0 : {
14709 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14710 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14711 0 : if (res) return res;
14712 : }
14713 : }
14714 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14715 : {
14716 0 : {
14717 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14718 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14719 0 : if (res) return res;
14720 : }
14721 : }
14722 : break;
14723 : }
14724 20 : default:;
14725 : }
14726 20 : switch (TREE_CODE (_q51))
14727 : {
14728 0 : CASE_CONVERT:
14729 0 : {
14730 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14731 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14732 : {
14733 0 : {
14734 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14735 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14736 0 : if (res) return res;
14737 : }
14738 : }
14739 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14740 : {
14741 0 : {
14742 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14743 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14744 0 : if (res) return res;
14745 : }
14746 : }
14747 : break;
14748 : }
14749 : default:;
14750 : }
14751 : break;
14752 : }
14753 3 : case NE_EXPR:
14754 3 : {
14755 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14756 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14757 3 : switch (TREE_CODE (_q50))
14758 : {
14759 0 : CASE_CONVERT:
14760 0 : {
14761 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14762 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14763 : {
14764 0 : {
14765 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14766 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14767 0 : if (res) return res;
14768 : }
14769 : }
14770 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14771 : {
14772 0 : {
14773 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14774 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14775 0 : if (res) return res;
14776 : }
14777 : }
14778 : break;
14779 : }
14780 3 : default:;
14781 : }
14782 3 : switch (TREE_CODE (_q51))
14783 : {
14784 0 : CASE_CONVERT:
14785 0 : {
14786 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14787 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14788 : {
14789 0 : {
14790 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14791 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14792 0 : if (res) return res;
14793 : }
14794 : }
14795 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14796 : {
14797 0 : {
14798 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14799 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14800 0 : if (res) return res;
14801 : }
14802 : }
14803 : break;
14804 : }
14805 : default:;
14806 : }
14807 : break;
14808 : }
14809 0 : case LT_EXPR:
14810 0 : {
14811 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14812 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14813 0 : switch (TREE_CODE (_q50))
14814 : {
14815 0 : CASE_CONVERT:
14816 0 : {
14817 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14818 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14819 : {
14820 0 : {
14821 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14822 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14823 0 : if (res) return res;
14824 : }
14825 : }
14826 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14827 : {
14828 0 : {
14829 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14830 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14831 0 : if (res) return res;
14832 : }
14833 : }
14834 : break;
14835 : }
14836 0 : default:;
14837 : }
14838 0 : switch (TREE_CODE (_q51))
14839 : {
14840 0 : CASE_CONVERT:
14841 0 : {
14842 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14843 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14844 : {
14845 0 : {
14846 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14847 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14848 0 : if (res) return res;
14849 : }
14850 : }
14851 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14852 : {
14853 0 : {
14854 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14855 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14856 0 : if (res) return res;
14857 : }
14858 : }
14859 : break;
14860 : }
14861 : default:;
14862 : }
14863 : break;
14864 : }
14865 4 : case GT_EXPR:
14866 4 : {
14867 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14868 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14869 4 : switch (TREE_CODE (_q50))
14870 : {
14871 0 : CASE_CONVERT:
14872 0 : {
14873 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14874 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14875 : {
14876 0 : {
14877 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14878 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14879 0 : if (res) return res;
14880 : }
14881 : }
14882 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14883 : {
14884 0 : {
14885 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14886 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14887 0 : if (res) return res;
14888 : }
14889 : }
14890 : break;
14891 : }
14892 4 : default:;
14893 : }
14894 4 : switch (TREE_CODE (_q51))
14895 : {
14896 0 : CASE_CONVERT:
14897 0 : {
14898 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14899 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14900 : {
14901 0 : {
14902 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14903 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14904 0 : if (res) return res;
14905 : }
14906 : }
14907 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14908 : {
14909 0 : {
14910 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14911 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14912 0 : if (res) return res;
14913 : }
14914 : }
14915 : break;
14916 : }
14917 : default:;
14918 : }
14919 : break;
14920 : }
14921 0 : case LE_EXPR:
14922 0 : {
14923 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14924 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14925 0 : switch (TREE_CODE (_q50))
14926 : {
14927 0 : CASE_CONVERT:
14928 0 : {
14929 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14930 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14931 : {
14932 0 : {
14933 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14934 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14935 0 : if (res) return res;
14936 : }
14937 : }
14938 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14939 : {
14940 0 : {
14941 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14942 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14943 0 : if (res) return res;
14944 : }
14945 : }
14946 : break;
14947 : }
14948 0 : default:;
14949 : }
14950 0 : switch (TREE_CODE (_q51))
14951 : {
14952 0 : CASE_CONVERT:
14953 0 : {
14954 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14955 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14956 : {
14957 0 : {
14958 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14959 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14960 0 : if (res) return res;
14961 : }
14962 : }
14963 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14964 : {
14965 0 : {
14966 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14967 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14968 0 : if (res) return res;
14969 : }
14970 : }
14971 : break;
14972 : }
14973 : default:;
14974 : }
14975 : break;
14976 : }
14977 14 : case GE_EXPR:
14978 14 : {
14979 14 : tree _q50 = TREE_OPERAND (_p1, 0);
14980 14 : tree _q51 = TREE_OPERAND (_p1, 1);
14981 14 : switch (TREE_CODE (_q50))
14982 : {
14983 0 : CASE_CONVERT:
14984 0 : {
14985 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14986 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14987 : {
14988 0 : {
14989 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14990 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14991 0 : if (res) return res;
14992 : }
14993 : }
14994 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14995 : {
14996 0 : {
14997 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14998 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14999 0 : if (res) return res;
15000 : }
15001 : }
15002 : break;
15003 : }
15004 14 : default:;
15005 : }
15006 14 : switch (TREE_CODE (_q51))
15007 : {
15008 0 : CASE_CONVERT:
15009 0 : {
15010 0 : tree _q70 = TREE_OPERAND (_q51, 0);
15011 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15012 : {
15013 0 : {
15014 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15015 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15016 0 : if (res) return res;
15017 : }
15018 : }
15019 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
15020 : {
15021 0 : {
15022 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15023 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15024 0 : if (res) return res;
15025 : }
15026 : }
15027 : break;
15028 : }
15029 : default:;
15030 : }
15031 : break;
15032 : }
15033 136 : default:;
15034 : }
15035 136 : switch (TREE_CODE (_q20))
15036 : {
15037 0 : CASE_CONVERT:
15038 0 : {
15039 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15040 0 : switch (TREE_CODE (_p1))
15041 : {
15042 0 : case EQ_EXPR:
15043 0 : {
15044 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15045 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15046 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15047 : {
15048 0 : {
15049 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15050 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15051 0 : if (res) return res;
15052 : }
15053 : }
15054 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15055 : {
15056 0 : {
15057 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15058 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15059 0 : if (res) return res;
15060 : }
15061 : }
15062 : break;
15063 : }
15064 0 : case NE_EXPR:
15065 0 : {
15066 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15067 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15068 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15069 : {
15070 0 : {
15071 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15072 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15073 0 : if (res) return res;
15074 : }
15075 : }
15076 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15077 : {
15078 0 : {
15079 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15080 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15081 0 : if (res) return res;
15082 : }
15083 : }
15084 : break;
15085 : }
15086 : default:;
15087 : }
15088 : break;
15089 : }
15090 136 : default:;
15091 : }
15092 136 : switch (TREE_CODE (_q21))
15093 : {
15094 0 : CASE_CONVERT:
15095 0 : {
15096 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15097 0 : switch (TREE_CODE (_p1))
15098 : {
15099 0 : case EQ_EXPR:
15100 0 : {
15101 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15102 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15103 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15104 : {
15105 0 : {
15106 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15107 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15108 0 : if (res) return res;
15109 : }
15110 : }
15111 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15112 : {
15113 0 : {
15114 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15115 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15116 0 : if (res) return res;
15117 : }
15118 : }
15119 : break;
15120 : }
15121 0 : case NE_EXPR:
15122 0 : {
15123 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15124 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15125 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15126 : {
15127 0 : {
15128 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15129 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15130 0 : if (res) return res;
15131 : }
15132 : }
15133 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15134 : {
15135 0 : {
15136 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15137 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15138 0 : if (res) return res;
15139 : }
15140 : }
15141 : break;
15142 : }
15143 : default:;
15144 : }
15145 : break;
15146 : }
15147 136 : default:;
15148 : }
15149 136 : switch (TREE_CODE (_p1))
15150 : {
15151 20 : case EQ_EXPR:
15152 20 : {
15153 20 : tree _q50 = TREE_OPERAND (_p1, 0);
15154 20 : tree _q51 = TREE_OPERAND (_p1, 1);
15155 20 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15156 : {
15157 0 : {
15158 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15159 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15160 0 : if (res) return res;
15161 : }
15162 0 : {
15163 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15164 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15165 0 : if (res) return res;
15166 : }
15167 : }
15168 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15169 : {
15170 0 : {
15171 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15172 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15173 0 : if (res) return res;
15174 : }
15175 : }
15176 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15177 : {
15178 0 : {
15179 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15180 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15181 0 : if (res) return res;
15182 : }
15183 0 : {
15184 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15185 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15186 0 : if (res) return res;
15187 : }
15188 : }
15189 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15190 : {
15191 4 : {
15192 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15193 4 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15194 4 : if (res) return res;
15195 : }
15196 4 : {
15197 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15198 4 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15199 4 : if (res) return res;
15200 : }
15201 : }
15202 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15203 : {
15204 0 : {
15205 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15206 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15207 0 : if (res) return res;
15208 : }
15209 : }
15210 : break;
15211 : }
15212 3 : case NE_EXPR:
15213 3 : {
15214 3 : tree _q50 = TREE_OPERAND (_p1, 0);
15215 3 : tree _q51 = TREE_OPERAND (_p1, 1);
15216 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15217 : {
15218 2 : {
15219 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15220 2 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15221 2 : if (res) return res;
15222 : }
15223 2 : {
15224 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15225 2 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15226 2 : if (res) return res;
15227 : }
15228 : }
15229 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15230 : {
15231 0 : {
15232 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15233 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15234 0 : if (res) return res;
15235 : }
15236 : }
15237 3 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15238 : {
15239 0 : {
15240 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15241 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15242 0 : if (res) return res;
15243 : }
15244 0 : {
15245 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15246 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15247 0 : if (res) return res;
15248 : }
15249 : }
15250 3 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15251 : {
15252 0 : {
15253 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15254 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15255 0 : if (res) return res;
15256 : }
15257 0 : {
15258 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15259 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15260 0 : if (res) return res;
15261 : }
15262 : }
15263 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15264 : {
15265 0 : {
15266 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15267 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15268 0 : if (res) return res;
15269 : }
15270 : }
15271 : break;
15272 : }
15273 0 : case LT_EXPR:
15274 0 : {
15275 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15276 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15277 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15278 : {
15279 0 : {
15280 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15281 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15282 0 : if (res) return res;
15283 : }
15284 : }
15285 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15286 : {
15287 0 : {
15288 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15289 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15290 0 : if (res) return res;
15291 : }
15292 : }
15293 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15294 : {
15295 0 : {
15296 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15297 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15298 0 : if (res) return res;
15299 : }
15300 : }
15301 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15302 : {
15303 0 : {
15304 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15305 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15306 0 : if (res) return res;
15307 : }
15308 : }
15309 : break;
15310 : }
15311 4 : case GT_EXPR:
15312 4 : {
15313 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15314 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15315 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15316 : {
15317 4 : {
15318 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15319 4 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15320 4 : if (res) return res;
15321 : }
15322 : }
15323 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15324 : {
15325 0 : {
15326 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15327 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15328 0 : if (res) return res;
15329 : }
15330 : }
15331 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15332 : {
15333 0 : {
15334 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15335 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15336 0 : if (res) return res;
15337 : }
15338 : }
15339 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15340 : {
15341 0 : {
15342 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15343 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15344 0 : if (res) return res;
15345 : }
15346 : }
15347 : break;
15348 : }
15349 0 : case LE_EXPR:
15350 0 : {
15351 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15352 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15353 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15354 : {
15355 0 : {
15356 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15357 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15358 0 : if (res) return res;
15359 : }
15360 : }
15361 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15362 : {
15363 0 : {
15364 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15365 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15366 0 : if (res) return res;
15367 : }
15368 : }
15369 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15370 : {
15371 0 : {
15372 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15373 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15374 0 : if (res) return res;
15375 : }
15376 : }
15377 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15378 : {
15379 0 : {
15380 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15381 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15382 0 : if (res) return res;
15383 : }
15384 : }
15385 : break;
15386 : }
15387 14 : case GE_EXPR:
15388 14 : {
15389 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15390 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15391 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15392 : {
15393 0 : {
15394 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15395 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15396 0 : if (res) return res;
15397 : }
15398 : }
15399 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15400 : {
15401 0 : {
15402 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15403 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15404 0 : if (res) return res;
15405 : }
15406 : }
15407 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15408 : {
15409 0 : {
15410 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15411 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15412 0 : if (res) return res;
15413 : }
15414 : }
15415 14 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15416 : {
15417 14 : {
15418 14 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15419 14 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15420 14 : if (res) return res;
15421 : }
15422 : }
15423 : break;
15424 : }
15425 : default:;
15426 : }
15427 : break;
15428 : }
15429 36 : case LE_EXPR:
15430 36 : {
15431 36 : tree _q20 = TREE_OPERAND (_p0, 0);
15432 36 : tree _q21 = TREE_OPERAND (_p0, 1);
15433 36 : switch (TREE_CODE (_p1))
15434 : {
15435 16 : case EQ_EXPR:
15436 16 : {
15437 16 : tree _q50 = TREE_OPERAND (_p1, 0);
15438 16 : tree _q51 = TREE_OPERAND (_p1, 1);
15439 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15440 : {
15441 4 : if (tree_min_value (_q51))
15442 : {
15443 4 : {
15444 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15445 4 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
15446 4 : if (res) return res;
15447 : }
15448 : }
15449 : }
15450 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15451 : {
15452 0 : if (tree_max_value (_q51))
15453 : {
15454 0 : {
15455 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15456 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures);
15457 0 : if (res) return res;
15458 : }
15459 : }
15460 : }
15461 : break;
15462 : }
15463 0 : case NE_EXPR:
15464 0 : {
15465 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15466 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15467 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15468 : {
15469 0 : if (tree_min_value (_q51))
15470 : {
15471 0 : {
15472 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _p0, _q21 };
15473 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures);
15474 0 : if (res) return res;
15475 : }
15476 : }
15477 : }
15478 : break;
15479 : }
15480 32 : default:;
15481 : }
15482 32 : switch (TREE_CODE (_q20))
15483 : {
15484 0 : CASE_CONVERT:
15485 0 : {
15486 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15487 0 : switch (TREE_CODE (_p1))
15488 : {
15489 0 : case EQ_EXPR:
15490 0 : {
15491 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15492 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15493 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15494 : {
15495 0 : {
15496 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15497 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15498 0 : if (res) return res;
15499 : }
15500 : }
15501 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15502 : {
15503 0 : {
15504 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15505 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15506 0 : if (res) return res;
15507 : }
15508 : }
15509 : break;
15510 : }
15511 0 : case NE_EXPR:
15512 0 : {
15513 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15514 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15515 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15516 : {
15517 0 : {
15518 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15519 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15520 0 : if (res) return res;
15521 : }
15522 : }
15523 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15524 : {
15525 0 : {
15526 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15527 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15528 0 : if (res) return res;
15529 : }
15530 : }
15531 : break;
15532 : }
15533 : default:;
15534 : }
15535 : break;
15536 : }
15537 32 : default:;
15538 : }
15539 32 : switch (TREE_CODE (_q21))
15540 : {
15541 0 : CASE_CONVERT:
15542 0 : {
15543 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15544 0 : switch (TREE_CODE (_p1))
15545 : {
15546 0 : case EQ_EXPR:
15547 0 : {
15548 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15549 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15550 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15551 : {
15552 0 : {
15553 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15554 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15555 0 : if (res) return res;
15556 : }
15557 : }
15558 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15559 : {
15560 0 : {
15561 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15562 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15563 0 : if (res) return res;
15564 : }
15565 : }
15566 : break;
15567 : }
15568 0 : case NE_EXPR:
15569 0 : {
15570 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15571 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15572 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15573 : {
15574 0 : {
15575 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15576 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15577 0 : if (res) return res;
15578 : }
15579 : }
15580 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15581 : {
15582 0 : {
15583 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15584 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15585 0 : if (res) return res;
15586 : }
15587 : }
15588 : break;
15589 : }
15590 : default:;
15591 : }
15592 : break;
15593 : }
15594 32 : default:;
15595 : }
15596 32 : switch (TREE_CODE (_p1))
15597 : {
15598 12 : case EQ_EXPR:
15599 12 : {
15600 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15601 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15602 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15603 : {
15604 0 : {
15605 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15606 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15607 0 : if (res) return res;
15608 : }
15609 : }
15610 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15611 : {
15612 0 : {
15613 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15614 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15615 0 : if (res) return res;
15616 : }
15617 : }
15618 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15619 : {
15620 0 : {
15621 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15622 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15623 0 : if (res) return res;
15624 : }
15625 : }
15626 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15627 : {
15628 0 : {
15629 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15630 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15631 0 : if (res) return res;
15632 : }
15633 : }
15634 : break;
15635 : }
15636 0 : case NE_EXPR:
15637 0 : {
15638 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15639 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15640 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15641 : {
15642 0 : {
15643 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15644 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15645 0 : if (res) return res;
15646 : }
15647 : }
15648 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15649 : {
15650 0 : {
15651 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15652 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15653 0 : if (res) return res;
15654 : }
15655 : }
15656 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15657 : {
15658 0 : {
15659 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15660 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15661 0 : if (res) return res;
15662 : }
15663 : }
15664 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15665 : {
15666 0 : {
15667 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15668 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15669 0 : if (res) return res;
15670 : }
15671 : }
15672 : break;
15673 : }
15674 0 : case LT_EXPR:
15675 0 : {
15676 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15677 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15678 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15679 : {
15680 0 : {
15681 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15682 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15683 0 : if (res) return res;
15684 : }
15685 : }
15686 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15687 : {
15688 0 : {
15689 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15690 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15691 0 : if (res) return res;
15692 : }
15693 : }
15694 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15695 : {
15696 0 : {
15697 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15698 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15699 0 : if (res) return res;
15700 : }
15701 : }
15702 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15703 : {
15704 0 : {
15705 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15706 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15707 0 : if (res) return res;
15708 : }
15709 : }
15710 : break;
15711 : }
15712 5 : case LE_EXPR:
15713 5 : {
15714 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15715 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15716 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15717 : {
15718 0 : {
15719 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15720 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15721 0 : if (res) return res;
15722 : }
15723 : }
15724 5 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15725 : {
15726 0 : {
15727 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15728 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15729 0 : if (res) return res;
15730 : }
15731 : }
15732 5 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15733 : {
15734 0 : {
15735 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15736 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15737 0 : if (res) return res;
15738 : }
15739 : }
15740 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15741 : {
15742 4 : {
15743 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15744 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15745 4 : if (res) return res;
15746 : }
15747 : }
15748 : break;
15749 : }
15750 4 : case GT_EXPR:
15751 4 : {
15752 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15753 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15754 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15755 : {
15756 0 : {
15757 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15758 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15759 0 : if (res) return res;
15760 : }
15761 : }
15762 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15763 : {
15764 0 : {
15765 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15766 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15767 0 : if (res) return res;
15768 : }
15769 : }
15770 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15771 : {
15772 0 : {
15773 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15774 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15775 0 : if (res) return res;
15776 : }
15777 : }
15778 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15779 : {
15780 0 : {
15781 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15782 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15783 0 : if (res) return res;
15784 : }
15785 : }
15786 : break;
15787 : }
15788 0 : case GE_EXPR:
15789 0 : {
15790 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15791 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15792 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15793 : {
15794 0 : {
15795 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15796 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15797 0 : if (res) return res;
15798 : }
15799 : }
15800 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15801 : {
15802 0 : {
15803 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15804 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15805 0 : if (res) return res;
15806 : }
15807 : }
15808 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15809 : {
15810 0 : {
15811 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15812 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15813 0 : if (res) return res;
15814 : }
15815 : }
15816 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15817 : {
15818 0 : {
15819 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15820 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15821 0 : if (res) return res;
15822 : }
15823 : }
15824 : break;
15825 : }
15826 : default:;
15827 : }
15828 : break;
15829 : }
15830 78 : case GE_EXPR:
15831 78 : {
15832 78 : tree _q20 = TREE_OPERAND (_p0, 0);
15833 78 : tree _q21 = TREE_OPERAND (_p0, 1);
15834 78 : switch (TREE_CODE (_p1))
15835 : {
15836 10 : case EQ_EXPR:
15837 10 : {
15838 10 : tree _q50 = TREE_OPERAND (_p1, 0);
15839 10 : tree _q51 = TREE_OPERAND (_p1, 1);
15840 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15841 : {
15842 0 : if (tree_min_value (_q51))
15843 : {
15844 0 : {
15845 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15846 0 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
15847 0 : if (res) return res;
15848 : }
15849 : }
15850 : }
15851 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15852 : {
15853 4 : if (tree_max_value (_q51))
15854 : {
15855 4 : {
15856 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15857 4 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures);
15858 4 : if (res) return res;
15859 : }
15860 : }
15861 : }
15862 : break;
15863 : }
15864 0 : case NE_EXPR:
15865 0 : {
15866 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15867 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15868 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15869 : {
15870 0 : if (tree_min_value (_q51))
15871 : {
15872 0 : {
15873 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
15874 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures);
15875 0 : if (res) return res;
15876 : }
15877 : }
15878 : }
15879 : break;
15880 : }
15881 74 : default:;
15882 : }
15883 74 : switch (TREE_CODE (_q20))
15884 : {
15885 4 : CASE_CONVERT:
15886 4 : {
15887 4 : tree _q30 = TREE_OPERAND (_q20, 0);
15888 4 : switch (TREE_CODE (_p1))
15889 : {
15890 0 : case EQ_EXPR:
15891 0 : {
15892 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15893 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15894 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15895 : {
15896 0 : {
15897 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15898 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15899 0 : if (res) return res;
15900 : }
15901 : }
15902 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15903 : {
15904 0 : {
15905 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15906 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15907 0 : if (res) return res;
15908 : }
15909 : }
15910 : break;
15911 : }
15912 0 : case NE_EXPR:
15913 0 : {
15914 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15915 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15916 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15917 : {
15918 0 : {
15919 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15920 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15921 0 : if (res) return res;
15922 : }
15923 : }
15924 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15925 : {
15926 0 : {
15927 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15928 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15929 0 : if (res) return res;
15930 : }
15931 : }
15932 : break;
15933 : }
15934 : default:;
15935 : }
15936 : break;
15937 : }
15938 74 : default:;
15939 : }
15940 74 : switch (TREE_CODE (_q21))
15941 : {
15942 0 : CASE_CONVERT:
15943 0 : {
15944 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15945 0 : switch (TREE_CODE (_p1))
15946 : {
15947 0 : case EQ_EXPR:
15948 0 : {
15949 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15950 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15951 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15952 : {
15953 0 : {
15954 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15955 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15956 0 : if (res) return res;
15957 : }
15958 : }
15959 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15960 : {
15961 0 : {
15962 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15963 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15964 0 : if (res) return res;
15965 : }
15966 : }
15967 : break;
15968 : }
15969 0 : case NE_EXPR:
15970 0 : {
15971 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15972 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15973 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15974 : {
15975 0 : {
15976 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15977 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15978 0 : if (res) return res;
15979 : }
15980 : }
15981 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15982 : {
15983 0 : {
15984 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15985 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15986 0 : if (res) return res;
15987 : }
15988 : }
15989 : break;
15990 : }
15991 : default:;
15992 : }
15993 : break;
15994 : }
15995 74 : default:;
15996 : }
15997 74 : switch (TREE_CODE (_p1))
15998 : {
15999 6 : case EQ_EXPR:
16000 6 : {
16001 6 : tree _q50 = TREE_OPERAND (_p1, 0);
16002 6 : tree _q51 = TREE_OPERAND (_p1, 1);
16003 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16004 : {
16005 0 : {
16006 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16007 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16008 0 : if (res) return res;
16009 : }
16010 : }
16011 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16012 : {
16013 0 : {
16014 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16015 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16016 0 : if (res) return res;
16017 : }
16018 : }
16019 6 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16020 : {
16021 0 : {
16022 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16023 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16024 0 : if (res) return res;
16025 : }
16026 : }
16027 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16028 : {
16029 0 : {
16030 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16031 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16032 0 : if (res) return res;
16033 : }
16034 : }
16035 : break;
16036 : }
16037 0 : case NE_EXPR:
16038 0 : {
16039 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16040 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16041 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16042 : {
16043 0 : {
16044 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16045 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16046 0 : if (res) return res;
16047 : }
16048 : }
16049 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16050 : {
16051 0 : {
16052 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16053 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16054 0 : if (res) return res;
16055 : }
16056 : }
16057 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16058 : {
16059 0 : {
16060 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16061 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16062 0 : if (res) return res;
16063 : }
16064 : }
16065 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16066 : {
16067 0 : {
16068 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16069 0 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16070 0 : if (res) return res;
16071 : }
16072 : }
16073 : break;
16074 : }
16075 12 : case LT_EXPR:
16076 12 : {
16077 12 : tree _q50 = TREE_OPERAND (_p1, 0);
16078 12 : tree _q51 = TREE_OPERAND (_p1, 1);
16079 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16080 : {
16081 12 : {
16082 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16083 12 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16084 12 : if (res) return res;
16085 : }
16086 : }
16087 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16088 : {
16089 0 : {
16090 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16091 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16092 0 : if (res) return res;
16093 : }
16094 : }
16095 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16096 : {
16097 0 : {
16098 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16099 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16100 0 : if (res) return res;
16101 : }
16102 : }
16103 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16104 : {
16105 0 : {
16106 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16107 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16108 0 : if (res) return res;
16109 : }
16110 : }
16111 : break;
16112 : }
16113 17 : case LE_EXPR:
16114 17 : {
16115 17 : tree _q50 = TREE_OPERAND (_p1, 0);
16116 17 : tree _q51 = TREE_OPERAND (_p1, 1);
16117 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16118 : {
16119 14 : {
16120 14 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16121 14 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16122 14 : if (res) return res;
16123 : }
16124 : }
16125 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16126 : {
16127 0 : {
16128 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16129 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16130 0 : if (res) return res;
16131 : }
16132 : }
16133 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16134 : {
16135 0 : {
16136 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16137 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16138 0 : if (res) return res;
16139 : }
16140 : }
16141 17 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16142 : {
16143 0 : {
16144 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16145 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16146 0 : if (res) return res;
16147 : }
16148 : }
16149 : break;
16150 : }
16151 0 : case GT_EXPR:
16152 0 : {
16153 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16154 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16155 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16156 : {
16157 0 : {
16158 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16159 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16160 0 : if (res) return res;
16161 : }
16162 : }
16163 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16164 : {
16165 0 : {
16166 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16167 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16168 0 : if (res) return res;
16169 : }
16170 : }
16171 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16172 : {
16173 0 : {
16174 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16175 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16176 0 : if (res) return res;
16177 : }
16178 : }
16179 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16180 : {
16181 0 : {
16182 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16183 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16184 0 : if (res) return res;
16185 : }
16186 : }
16187 : break;
16188 : }
16189 11 : case GE_EXPR:
16190 11 : {
16191 11 : tree _q50 = TREE_OPERAND (_p1, 0);
16192 11 : tree _q51 = TREE_OPERAND (_p1, 1);
16193 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16194 : {
16195 7 : {
16196 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16197 7 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16198 7 : if (res) return res;
16199 : }
16200 : }
16201 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16202 : {
16203 0 : {
16204 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16205 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16206 0 : if (res) return res;
16207 : }
16208 : }
16209 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16210 : {
16211 4 : {
16212 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16213 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16214 4 : if (res) return res;
16215 : }
16216 : }
16217 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16218 : {
16219 0 : {
16220 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16221 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16222 0 : if (res) return res;
16223 : }
16224 : }
16225 : break;
16226 : }
16227 : default:;
16228 : }
16229 : break;
16230 : }
16231 0 : case MIN_EXPR:
16232 0 : {
16233 0 : tree _q20 = TREE_OPERAND (_p0, 0);
16234 0 : tree _q21 = TREE_OPERAND (_p0, 1);
16235 0 : switch (TREE_CODE (_p1))
16236 : {
16237 0 : case MAX_EXPR:
16238 0 : {
16239 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16240 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16241 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16242 : {
16243 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16244 : {
16245 0 : {
16246 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16247 0 : if (!HONOR_NANS (captures[0])
16248 : )
16249 : {
16250 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1676;
16251 0 : {
16252 0 : tree res_op0;
16253 0 : res_op0 = captures[0];
16254 0 : tree res_op1;
16255 0 : res_op1 = captures[1];
16256 0 : tree _r;
16257 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16258 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
16259 0 : return _r;
16260 : }
16261 0 : next_after_fail1676:;
16262 : }
16263 : }
16264 : }
16265 : }
16266 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16267 : {
16268 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16269 : {
16270 0 : {
16271 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16272 0 : if (!HONOR_NANS (captures[0])
16273 : )
16274 : {
16275 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1677;
16276 0 : {
16277 0 : tree res_op0;
16278 0 : res_op0 = captures[0];
16279 0 : tree res_op1;
16280 0 : res_op1 = captures[1];
16281 0 : tree _r;
16282 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16283 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
16284 0 : return _r;
16285 : }
16286 0 : next_after_fail1677:;
16287 : }
16288 : }
16289 : }
16290 : }
16291 : break;
16292 : }
16293 : default:;
16294 : }
16295 : break;
16296 : }
16297 80 : case MAX_EXPR:
16298 80 : {
16299 80 : tree _q20 = TREE_OPERAND (_p0, 0);
16300 80 : tree _q21 = TREE_OPERAND (_p0, 1);
16301 80 : switch (TREE_CODE (_p1))
16302 : {
16303 0 : case MIN_EXPR:
16304 0 : {
16305 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16306 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16307 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16308 : {
16309 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16310 : {
16311 0 : {
16312 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16313 0 : if (!HONOR_NANS (captures[0])
16314 : )
16315 : {
16316 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1678;
16317 0 : {
16318 0 : tree res_op0;
16319 0 : res_op0 = captures[0];
16320 0 : tree res_op1;
16321 0 : res_op1 = captures[1];
16322 0 : tree _r;
16323 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16324 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
16325 0 : return _r;
16326 : }
16327 0 : next_after_fail1678:;
16328 : }
16329 : }
16330 : }
16331 : }
16332 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16333 : {
16334 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16335 : {
16336 0 : {
16337 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16338 0 : if (!HONOR_NANS (captures[0])
16339 : )
16340 : {
16341 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1679;
16342 0 : {
16343 0 : tree res_op0;
16344 0 : res_op0 = captures[0];
16345 0 : tree res_op1;
16346 0 : res_op1 = captures[1];
16347 0 : tree _r;
16348 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16349 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
16350 0 : return _r;
16351 : }
16352 0 : next_after_fail1679:;
16353 : }
16354 : }
16355 : }
16356 : }
16357 : break;
16358 : }
16359 : default:;
16360 : }
16361 : break;
16362 : }
16363 122583 : case MULT_EXPR:
16364 122583 : {
16365 122583 : tree _q20 = TREE_OPERAND (_p0, 0);
16366 122583 : tree _q21 = TREE_OPERAND (_p0, 1);
16367 122583 : if (tree_zero_one_valued_p (_q20))
16368 : {
16369 4 : {
16370 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
16371 4 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
16372 4 : if (res) return res;
16373 : }
16374 : }
16375 122581 : if (tree_zero_one_valued_p (_q21))
16376 : {
16377 0 : {
16378 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
16379 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
16380 0 : if (res) return res;
16381 : }
16382 : }
16383 : break;
16384 : }
16385 6369092 : default:;
16386 : }
16387 6369092 : switch (TREE_CODE (_p1))
16388 : {
16389 26 : case MULT_EXPR:
16390 26 : {
16391 26 : tree _q30 = TREE_OPERAND (_p1, 0);
16392 26 : tree _q31 = TREE_OPERAND (_p1, 1);
16393 26 : if (tree_zero_one_valued_p (_q30))
16394 : {
16395 0 : {
16396 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
16397 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
16398 0 : if (res) return res;
16399 : }
16400 : }
16401 26 : if (tree_zero_one_valued_p (_q31))
16402 : {
16403 0 : {
16404 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
16405 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
16406 0 : if (res) return res;
16407 : }
16408 : }
16409 : break;
16410 : }
16411 6369092 : default:;
16412 : }
16413 6369092 : switch (TREE_CODE (_p0))
16414 : {
16415 34286 : case LSHIFT_EXPR:
16416 34286 : {
16417 34286 : tree _q20 = TREE_OPERAND (_p0, 0);
16418 34286 : tree _q21 = TREE_OPERAND (_p0, 1);
16419 34286 : switch (TREE_CODE (_q20))
16420 : {
16421 5273 : case INTEGER_CST:
16422 5273 : {
16423 5273 : if (integer_onep (_p1))
16424 : {
16425 44 : {
16426 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16427 44 : if ((wi::to_wide (captures[0]) & 1) != 0
16428 : )
16429 : {
16430 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1680;
16431 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1680;
16432 40 : {
16433 40 : tree res_op0;
16434 40 : {
16435 40 : tree _o1[2], _r1;
16436 40 : _o1[0] = captures[1];
16437 40 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
16438 40 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
16439 40 : res_op0 = _r1;
16440 : }
16441 40 : tree _r;
16442 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16443 40 : if (TREE_SIDE_EFFECTS (captures[0]))
16444 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16445 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
16446 40 : return _r;
16447 : }
16448 0 : next_after_fail1680:;
16449 : }
16450 : else
16451 : {
16452 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1681;
16453 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1681;
16454 4 : {
16455 4 : tree _r;
16456 4 : _r = build_zero_cst (type);
16457 4 : if (TREE_SIDE_EFFECTS (captures[0]))
16458 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16459 4 : if (TREE_SIDE_EFFECTS (captures[1]))
16460 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16461 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
16462 4 : return _r;
16463 : }
16464 0 : next_after_fail1681:;
16465 : }
16466 : }
16467 : }
16468 : break;
16469 : }
16470 5339 : CASE_CONVERT:
16471 5339 : {
16472 5339 : tree _q30 = TREE_OPERAND (_q20, 0);
16473 5339 : switch (TREE_CODE (_q21))
16474 : {
16475 5235 : case INTEGER_CST:
16476 5235 : {
16477 5235 : switch (TREE_CODE (_p1))
16478 : {
16479 5235 : case INTEGER_CST:
16480 5235 : {
16481 5235 : {
16482 5235 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16483 5235 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16484 5235 : if (res) return res;
16485 : }
16486 4579 : break;
16487 : }
16488 : default:;
16489 : }
16490 : break;
16491 : }
16492 : default:;
16493 : }
16494 : break;
16495 : }
16496 33586 : default:;
16497 : }
16498 33586 : switch (TREE_CODE (_q21))
16499 : {
16500 27952 : case INTEGER_CST:
16501 27952 : {
16502 27952 : switch (TREE_CODE (_p1))
16503 : {
16504 27915 : case INTEGER_CST:
16505 27915 : {
16506 27915 : {
16507 27915 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
16508 27915 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16509 27915 : if (res) return res;
16510 : }
16511 17101 : break;
16512 : }
16513 : default:;
16514 : }
16515 : break;
16516 : }
16517 : default:;
16518 : }
16519 : break;
16520 : }
16521 1960815 : CASE_CONVERT:
16522 1960815 : {
16523 1960815 : tree _q20 = TREE_OPERAND (_p0, 0);
16524 1960815 : switch (TREE_CODE (_q20))
16525 : {
16526 74787 : case LSHIFT_EXPR:
16527 74787 : {
16528 74787 : tree _q30 = TREE_OPERAND (_q20, 0);
16529 74787 : tree _q31 = TREE_OPERAND (_q20, 1);
16530 74787 : switch (TREE_CODE (_q30))
16531 : {
16532 147 : CASE_CONVERT:
16533 147 : {
16534 147 : tree _q40 = TREE_OPERAND (_q30, 0);
16535 147 : switch (TREE_CODE (_q31))
16536 : {
16537 79 : case INTEGER_CST:
16538 79 : {
16539 79 : switch (TREE_CODE (_p1))
16540 : {
16541 79 : case INTEGER_CST:
16542 79 : {
16543 79 : {
16544 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16545 79 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16546 79 : if (res) return res;
16547 : }
16548 79 : break;
16549 : }
16550 : default:;
16551 : }
16552 : break;
16553 : }
16554 : default:;
16555 : }
16556 : break;
16557 : }
16558 74787 : default:;
16559 : }
16560 74787 : switch (TREE_CODE (_q31))
16561 : {
16562 79 : case INTEGER_CST:
16563 79 : {
16564 79 : switch (TREE_CODE (_p1))
16565 : {
16566 79 : case INTEGER_CST:
16567 79 : {
16568 79 : {
16569 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16570 79 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16571 79 : if (res) return res;
16572 : }
16573 79 : break;
16574 : }
16575 : default:;
16576 : }
16577 : break;
16578 : }
16579 : default:;
16580 : }
16581 : break;
16582 : }
16583 111484 : case RSHIFT_EXPR:
16584 111484 : {
16585 111484 : tree _q30 = TREE_OPERAND (_q20, 0);
16586 111484 : tree _q31 = TREE_OPERAND (_q20, 1);
16587 111484 : switch (TREE_CODE (_q30))
16588 : {
16589 32482 : CASE_CONVERT:
16590 32482 : {
16591 32482 : tree _q40 = TREE_OPERAND (_q30, 0);
16592 32482 : switch (TREE_CODE (_q31))
16593 : {
16594 32355 : case INTEGER_CST:
16595 32355 : {
16596 32355 : switch (TREE_CODE (_p1))
16597 : {
16598 32355 : case INTEGER_CST:
16599 32355 : {
16600 32355 : {
16601 32355 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16602 32355 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16603 32355 : if (res) return res;
16604 : }
16605 32298 : break;
16606 : }
16607 : default:;
16608 : }
16609 : break;
16610 : }
16611 32425 : default:;
16612 : }
16613 32425 : switch (TREE_CODE (_q40))
16614 : {
16615 2 : case CALL_EXPR:
16616 2 : switch (get_call_combined_fn (_q40))
16617 : {
16618 0 : case CFN_BUILT_IN_BSWAP128:
16619 0 : if (call_expr_nargs (_q40) == 1)
16620 : {
16621 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16622 0 : switch (TREE_CODE (_q31))
16623 : {
16624 0 : case INTEGER_CST:
16625 0 : {
16626 0 : switch (TREE_CODE (_p1))
16627 : {
16628 0 : case INTEGER_CST:
16629 0 : {
16630 0 : {
16631 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16632 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16633 0 : if (res) return res;
16634 : }
16635 0 : break;
16636 : }
16637 : default:;
16638 : }
16639 : break;
16640 : }
16641 : default:;
16642 : }
16643 : }
16644 : break;
16645 2 : case CFN_BUILT_IN_BSWAP16:
16646 2 : if (call_expr_nargs (_q40) == 1)
16647 : {
16648 2 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16649 2 : switch (TREE_CODE (_q31))
16650 : {
16651 2 : case INTEGER_CST:
16652 2 : {
16653 2 : switch (TREE_CODE (_p1))
16654 : {
16655 2 : case INTEGER_CST:
16656 2 : {
16657 2 : {
16658 2 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16659 2 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16660 2 : if (res) return res;
16661 : }
16662 0 : break;
16663 : }
16664 : default:;
16665 : }
16666 : break;
16667 : }
16668 : default:;
16669 : }
16670 : }
16671 : break;
16672 0 : case CFN_BUILT_IN_BSWAP32:
16673 0 : if (call_expr_nargs (_q40) == 1)
16674 : {
16675 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16676 0 : switch (TREE_CODE (_q31))
16677 : {
16678 0 : case INTEGER_CST:
16679 0 : {
16680 0 : switch (TREE_CODE (_p1))
16681 : {
16682 0 : case INTEGER_CST:
16683 0 : {
16684 0 : {
16685 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16686 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16687 0 : if (res) return res;
16688 : }
16689 0 : break;
16690 : }
16691 : default:;
16692 : }
16693 : break;
16694 : }
16695 : default:;
16696 : }
16697 : }
16698 : break;
16699 0 : case CFN_BUILT_IN_BSWAP64:
16700 0 : if (call_expr_nargs (_q40) == 1)
16701 : {
16702 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16703 0 : switch (TREE_CODE (_q31))
16704 : {
16705 0 : case INTEGER_CST:
16706 0 : {
16707 0 : switch (TREE_CODE (_p1))
16708 : {
16709 0 : case INTEGER_CST:
16710 0 : {
16711 0 : {
16712 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16713 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16714 0 : if (res) return res;
16715 : }
16716 0 : break;
16717 : }
16718 : default:;
16719 : }
16720 : break;
16721 : }
16722 : default:;
16723 : }
16724 : }
16725 : break;
16726 : default:;
16727 : }
16728 : break;
16729 : default:;
16730 : }
16731 : break;
16732 : }
16733 111425 : default:;
16734 : }
16735 111425 : switch (TREE_CODE (_q31))
16736 : {
16737 38873 : case INTEGER_CST:
16738 38873 : {
16739 38873 : switch (TREE_CODE (_p1))
16740 : {
16741 38801 : case INTEGER_CST:
16742 38801 : {
16743 38801 : {
16744 38801 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16745 38801 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16746 38801 : if (res) return res;
16747 : }
16748 38729 : break;
16749 : }
16750 : default:;
16751 : }
16752 : break;
16753 : }
16754 111353 : default:;
16755 : }
16756 111353 : switch (TREE_CODE (_q30))
16757 : {
16758 80 : case CALL_EXPR:
16759 80 : switch (get_call_combined_fn (_q30))
16760 : {
16761 0 : case CFN_BUILT_IN_BSWAP128:
16762 0 : if (call_expr_nargs (_q30) == 1)
16763 : {
16764 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16765 0 : switch (TREE_CODE (_q31))
16766 : {
16767 0 : case INTEGER_CST:
16768 0 : {
16769 0 : switch (TREE_CODE (_p1))
16770 : {
16771 0 : case INTEGER_CST:
16772 0 : {
16773 0 : {
16774 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16775 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16776 0 : if (res) return res;
16777 : }
16778 0 : break;
16779 : }
16780 : default:;
16781 : }
16782 : break;
16783 : }
16784 : default:;
16785 : }
16786 : }
16787 : break;
16788 9 : case CFN_BUILT_IN_BSWAP16:
16789 9 : if (call_expr_nargs (_q30) == 1)
16790 : {
16791 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16792 9 : switch (TREE_CODE (_q31))
16793 : {
16794 9 : case INTEGER_CST:
16795 9 : {
16796 9 : switch (TREE_CODE (_p1))
16797 : {
16798 9 : case INTEGER_CST:
16799 9 : {
16800 9 : {
16801 9 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16802 9 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16803 9 : if (res) return res;
16804 : }
16805 0 : break;
16806 : }
16807 : default:;
16808 : }
16809 : break;
16810 : }
16811 : default:;
16812 : }
16813 : }
16814 : break;
16815 0 : case CFN_BUILT_IN_BSWAP32:
16816 0 : if (call_expr_nargs (_q30) == 1)
16817 : {
16818 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16819 0 : switch (TREE_CODE (_q31))
16820 : {
16821 0 : case INTEGER_CST:
16822 0 : {
16823 0 : switch (TREE_CODE (_p1))
16824 : {
16825 0 : case INTEGER_CST:
16826 0 : {
16827 0 : {
16828 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16829 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16830 0 : if (res) return res;
16831 : }
16832 0 : break;
16833 : }
16834 : default:;
16835 : }
16836 : break;
16837 : }
16838 : default:;
16839 : }
16840 : }
16841 : break;
16842 71 : case CFN_BUILT_IN_BSWAP64:
16843 71 : if (call_expr_nargs (_q30) == 1)
16844 : {
16845 71 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16846 71 : switch (TREE_CODE (_q31))
16847 : {
16848 70 : case INTEGER_CST:
16849 70 : {
16850 70 : switch (TREE_CODE (_p1))
16851 : {
16852 70 : case INTEGER_CST:
16853 70 : {
16854 70 : {
16855 70 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16856 70 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16857 70 : if (res) return res;
16858 : }
16859 0 : break;
16860 : }
16861 : default:;
16862 : }
16863 : break;
16864 : }
16865 : default:;
16866 : }
16867 : }
16868 : break;
16869 : default:;
16870 : }
16871 : break;
16872 : default:;
16873 : }
16874 : break;
16875 : }
16876 29670 : case CALL_EXPR:
16877 29670 : switch (get_call_combined_fn (_q20))
16878 : {
16879 0 : case CFN_BUILT_IN_BSWAP128:
16880 0 : if (call_expr_nargs (_q20) == 1)
16881 : {
16882 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16883 0 : switch (TREE_CODE (_p1))
16884 : {
16885 0 : case INTEGER_CST:
16886 0 : {
16887 0 : {
16888 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16889 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16890 0 : if (res) return res;
16891 : }
16892 0 : break;
16893 : }
16894 : default:;
16895 : }
16896 : }
16897 : break;
16898 10 : case CFN_BUILT_IN_BSWAP16:
16899 10 : if (call_expr_nargs (_q20) == 1)
16900 : {
16901 10 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16902 10 : switch (TREE_CODE (_p1))
16903 : {
16904 10 : case INTEGER_CST:
16905 10 : {
16906 10 : {
16907 10 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16908 10 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16909 10 : if (res) return res;
16910 : }
16911 0 : break;
16912 : }
16913 : default:;
16914 : }
16915 : }
16916 : break;
16917 4 : case CFN_BUILT_IN_BSWAP32:
16918 4 : if (call_expr_nargs (_q20) == 1)
16919 : {
16920 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16921 4 : switch (TREE_CODE (_p1))
16922 : {
16923 4 : case INTEGER_CST:
16924 4 : {
16925 4 : {
16926 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16927 4 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16928 4 : if (res) return res;
16929 : }
16930 0 : break;
16931 : }
16932 : default:;
16933 : }
16934 : }
16935 : break;
16936 4 : case CFN_BUILT_IN_BSWAP64:
16937 4 : if (call_expr_nargs (_q20) == 1)
16938 : {
16939 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
16940 4 : switch (TREE_CODE (_p1))
16941 : {
16942 4 : case INTEGER_CST:
16943 4 : {
16944 4 : {
16945 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
16946 4 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16947 4 : if (res) return res;
16948 : }
16949 0 : break;
16950 : }
16951 : default:;
16952 : }
16953 : }
16954 : break;
16955 : default:;
16956 : }
16957 : break;
16958 : default:;
16959 : }
16960 : break;
16961 : }
16962 78992 : case RSHIFT_EXPR:
16963 78992 : {
16964 78992 : tree _q20 = TREE_OPERAND (_p0, 0);
16965 78992 : tree _q21 = TREE_OPERAND (_p0, 1);
16966 78992 : switch (TREE_CODE (_q20))
16967 : {
16968 28514 : CASE_CONVERT:
16969 28514 : {
16970 28514 : tree _q30 = TREE_OPERAND (_q20, 0);
16971 28514 : switch (TREE_CODE (_q21))
16972 : {
16973 25276 : case INTEGER_CST:
16974 25276 : {
16975 25276 : switch (TREE_CODE (_p1))
16976 : {
16977 25276 : case INTEGER_CST:
16978 25276 : {
16979 25276 : {
16980 25276 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16981 25276 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16982 25276 : if (res) return res;
16983 : }
16984 24952 : break;
16985 : }
16986 : default:;
16987 : }
16988 : break;
16989 : }
16990 28190 : default:;
16991 : }
16992 28190 : switch (TREE_CODE (_q30))
16993 : {
16994 22 : case CALL_EXPR:
16995 22 : switch (get_call_combined_fn (_q30))
16996 : {
16997 0 : case CFN_BUILT_IN_BSWAP128:
16998 0 : if (call_expr_nargs (_q30) == 1)
16999 : {
17000 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17001 0 : switch (TREE_CODE (_q21))
17002 : {
17003 0 : case INTEGER_CST:
17004 0 : {
17005 0 : switch (TREE_CODE (_p1))
17006 : {
17007 0 : case INTEGER_CST:
17008 0 : {
17009 0 : {
17010 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17011 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17012 0 : if (res) return res;
17013 : }
17014 0 : break;
17015 : }
17016 : default:;
17017 : }
17018 : break;
17019 : }
17020 : default:;
17021 : }
17022 : }
17023 : break;
17024 1 : case CFN_BUILT_IN_BSWAP16:
17025 1 : if (call_expr_nargs (_q30) == 1)
17026 : {
17027 1 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17028 1 : switch (TREE_CODE (_q21))
17029 : {
17030 0 : case INTEGER_CST:
17031 0 : {
17032 0 : switch (TREE_CODE (_p1))
17033 : {
17034 0 : case INTEGER_CST:
17035 0 : {
17036 0 : {
17037 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17038 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17039 0 : if (res) return res;
17040 : }
17041 0 : break;
17042 : }
17043 : default:;
17044 : }
17045 : break;
17046 : }
17047 : default:;
17048 : }
17049 : }
17050 : break;
17051 9 : case CFN_BUILT_IN_BSWAP32:
17052 9 : if (call_expr_nargs (_q30) == 1)
17053 : {
17054 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17055 9 : switch (TREE_CODE (_q21))
17056 : {
17057 9 : case INTEGER_CST:
17058 9 : {
17059 9 : switch (TREE_CODE (_p1))
17060 : {
17061 9 : case INTEGER_CST:
17062 9 : {
17063 9 : {
17064 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17065 9 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17066 9 : if (res) return res;
17067 : }
17068 0 : break;
17069 : }
17070 : default:;
17071 : }
17072 : break;
17073 : }
17074 : default:;
17075 : }
17076 : }
17077 : break;
17078 12 : case CFN_BUILT_IN_BSWAP64:
17079 12 : if (call_expr_nargs (_q30) == 1)
17080 : {
17081 12 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17082 12 : switch (TREE_CODE (_q21))
17083 : {
17084 12 : case INTEGER_CST:
17085 12 : {
17086 12 : switch (TREE_CODE (_p1))
17087 : {
17088 12 : case INTEGER_CST:
17089 12 : {
17090 12 : {
17091 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17092 12 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17093 12 : if (res) return res;
17094 : }
17095 0 : break;
17096 : }
17097 : default:;
17098 : }
17099 : break;
17100 : }
17101 : default:;
17102 : }
17103 : }
17104 : break;
17105 : default:;
17106 : }
17107 : break;
17108 : default:;
17109 : }
17110 : break;
17111 : }
17112 78647 : default:;
17113 : }
17114 78647 : switch (TREE_CODE (_q21))
17115 : {
17116 34305 : case INTEGER_CST:
17117 34305 : {
17118 34305 : switch (TREE_CODE (_p1))
17119 : {
17120 34160 : case INTEGER_CST:
17121 34160 : {
17122 34160 : {
17123 34160 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
17124 34160 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
17125 34160 : if (res) return res;
17126 : }
17127 32365 : break;
17128 : }
17129 : default:;
17130 : }
17131 : break;
17132 : }
17133 76852 : default:;
17134 : }
17135 76852 : switch (TREE_CODE (_q20))
17136 : {
17137 140 : case CALL_EXPR:
17138 140 : switch (get_call_combined_fn (_q20))
17139 : {
17140 0 : case CFN_BUILT_IN_BSWAP128:
17141 0 : if (call_expr_nargs (_q20) == 1)
17142 : {
17143 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17144 0 : switch (TREE_CODE (_q21))
17145 : {
17146 0 : case INTEGER_CST:
17147 0 : {
17148 0 : switch (TREE_CODE (_p1))
17149 : {
17150 0 : case INTEGER_CST:
17151 0 : {
17152 0 : {
17153 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17154 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17155 0 : if (res) return res;
17156 : }
17157 0 : break;
17158 : }
17159 : default:;
17160 : }
17161 : break;
17162 : }
17163 : default:;
17164 : }
17165 : }
17166 : break;
17167 0 : case CFN_BUILT_IN_BSWAP16:
17168 0 : if (call_expr_nargs (_q20) == 1)
17169 : {
17170 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17171 0 : switch (TREE_CODE (_q21))
17172 : {
17173 0 : case INTEGER_CST:
17174 0 : {
17175 0 : switch (TREE_CODE (_p1))
17176 : {
17177 0 : case INTEGER_CST:
17178 0 : {
17179 0 : {
17180 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17181 0 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17182 0 : if (res) return res;
17183 : }
17184 0 : break;
17185 : }
17186 : default:;
17187 : }
17188 : break;
17189 : }
17190 : default:;
17191 : }
17192 : }
17193 : break;
17194 60 : case CFN_BUILT_IN_BSWAP32:
17195 60 : if (call_expr_nargs (_q20) == 1)
17196 : {
17197 60 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17198 60 : switch (TREE_CODE (_q21))
17199 : {
17200 59 : case INTEGER_CST:
17201 59 : {
17202 59 : switch (TREE_CODE (_p1))
17203 : {
17204 59 : case INTEGER_CST:
17205 59 : {
17206 59 : {
17207 59 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17208 59 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17209 59 : if (res) return res;
17210 : }
17211 0 : break;
17212 : }
17213 : default:;
17214 : }
17215 : break;
17216 : }
17217 : default:;
17218 : }
17219 : }
17220 : break;
17221 73 : case CFN_BUILT_IN_BSWAP64:
17222 73 : if (call_expr_nargs (_q20) == 1)
17223 : {
17224 73 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17225 73 : switch (TREE_CODE (_q21))
17226 : {
17227 73 : case INTEGER_CST:
17228 73 : {
17229 73 : switch (TREE_CODE (_p1))
17230 : {
17231 73 : case INTEGER_CST:
17232 73 : {
17233 73 : {
17234 73 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17235 73 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17236 73 : if (res) return res;
17237 : }
17238 0 : break;
17239 : }
17240 : default:;
17241 : }
17242 : break;
17243 : }
17244 : default:;
17245 : }
17246 : }
17247 : break;
17248 : default:;
17249 : }
17250 : break;
17251 : default:;
17252 : }
17253 : break;
17254 : }
17255 65 : case VEC_COND_EXPR:
17256 65 : {
17257 65 : tree _q20 = TREE_OPERAND (_p0, 0);
17258 65 : tree _q21 = TREE_OPERAND (_p0, 1);
17259 65 : tree _q22 = TREE_OPERAND (_p0, 2);
17260 65 : switch (TREE_CODE (_p1))
17261 : {
17262 47 : case VEC_COND_EXPR:
17263 47 : {
17264 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17265 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17266 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17267 47 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17268 : {
17269 0 : {
17270 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
17271 0 : if (VECTOR_TYPE_P (type)
17272 0 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
17273 : || types_match (type, TREE_TYPE (captures[2]))
17274 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
17275 : || (optimize_vectors_before_lowering_p ()
17276 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
17277 : )
17278 : {
17279 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1682;
17280 0 : {
17281 0 : tree res_op0;
17282 0 : res_op0 = captures[1];
17283 0 : tree res_op1;
17284 0 : {
17285 0 : tree _o1[2], _r1;
17286 0 : _o1[0] = captures[2];
17287 0 : _o1[1] = captures[5];
17288 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17289 0 : if (EXPR_P (_r1))
17290 0 : goto next_after_fail1682;
17291 0 : res_op1 = _r1;
17292 : }
17293 0 : tree res_op2;
17294 0 : {
17295 0 : tree _o1[2], _r1;
17296 0 : _o1[0] = captures[3];
17297 0 : _o1[1] = captures[6];
17298 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17299 0 : if (EXPR_P (_r1))
17300 0 : goto next_after_fail1682;
17301 0 : res_op2 = _r1;
17302 : }
17303 0 : tree _r;
17304 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17305 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
17306 0 : return _r;
17307 : }
17308 0 : next_after_fail1682:;
17309 : }
17310 : }
17311 : }
17312 : break;
17313 : }
17314 65 : default:;
17315 : }
17316 65 : if (integer_minus_onep (_q21))
17317 : {
17318 65 : if (integer_zerop (_q22))
17319 : {
17320 65 : switch (TREE_CODE (_p1))
17321 : {
17322 47 : case VEC_COND_EXPR:
17323 47 : {
17324 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17325 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17326 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17327 47 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
17328 : {
17329 47 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
17330 : {
17331 47 : {
17332 47 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17333 47 : const enum tree_code lop = BIT_AND_EXPR;
17334 47 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17335 : )
17336 : {
17337 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1683;
17338 47 : {
17339 47 : tree res_op0;
17340 47 : {
17341 47 : tree _o1[2], _r1;
17342 47 : _o1[0] = captures[0];
17343 47 : _o1[1] = captures[3];
17344 47 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17345 47 : res_op0 = _r1;
17346 : }
17347 47 : tree res_op1;
17348 47 : res_op1 = captures[1];
17349 47 : tree res_op2;
17350 47 : res_op2 = captures[2];
17351 47 : tree _r;
17352 47 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17353 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17354 47 : return _r;
17355 : }
17356 0 : next_after_fail1683:;
17357 : }
17358 : }
17359 0 : {
17360 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17361 0 : const enum tree_code lop = BIT_AND_EXPR;
17362 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17363 : )
17364 : {
17365 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1684;
17366 0 : {
17367 0 : tree res_op0;
17368 0 : {
17369 0 : tree _o1[2], _r1;
17370 0 : _o1[0] = captures[0];
17371 0 : _o1[1] = captures[3];
17372 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17373 0 : res_op0 = _r1;
17374 : }
17375 0 : tree res_op1;
17376 0 : res_op1 = captures[1];
17377 0 : tree res_op2;
17378 0 : res_op2 = captures[2];
17379 0 : tree _r;
17380 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17381 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17382 0 : return _r;
17383 : }
17384 0 : next_after_fail1684:;
17385 : }
17386 : }
17387 0 : {
17388 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17389 0 : const enum tree_code lop = BIT_AND_EXPR;
17390 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17391 : )
17392 : {
17393 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1685;
17394 0 : {
17395 0 : tree res_op0;
17396 0 : {
17397 0 : tree _o1[2], _r1;
17398 0 : _o1[0] = captures[0];
17399 0 : _o1[1] = captures[3];
17400 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17401 0 : res_op0 = _r1;
17402 : }
17403 0 : tree res_op1;
17404 0 : res_op1 = captures[1];
17405 0 : tree res_op2;
17406 0 : res_op2 = captures[2];
17407 0 : tree _r;
17408 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17409 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17410 0 : return _r;
17411 : }
17412 0 : next_after_fail1685:;
17413 : }
17414 : }
17415 0 : {
17416 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17417 0 : const enum tree_code lop = BIT_AND_EXPR;
17418 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17419 : )
17420 : {
17421 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1686;
17422 0 : {
17423 0 : tree res_op0;
17424 0 : {
17425 0 : tree _o1[2], _r1;
17426 0 : _o1[0] = captures[0];
17427 0 : _o1[1] = captures[3];
17428 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17429 0 : res_op0 = _r1;
17430 : }
17431 0 : tree res_op1;
17432 0 : res_op1 = captures[1];
17433 0 : tree res_op2;
17434 0 : res_op2 = captures[2];
17435 0 : tree _r;
17436 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17437 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17438 0 : return _r;
17439 : }
17440 0 : next_after_fail1686:;
17441 : }
17442 : }
17443 0 : {
17444 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17445 0 : const enum tree_code lop = BIT_AND_EXPR;
17446 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17447 : )
17448 : {
17449 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1687;
17450 0 : {
17451 0 : tree res_op0;
17452 0 : {
17453 0 : tree _o1[2], _r1;
17454 0 : _o1[0] = captures[0];
17455 0 : _o1[1] = captures[3];
17456 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17457 0 : res_op0 = _r1;
17458 : }
17459 0 : tree res_op1;
17460 0 : res_op1 = captures[1];
17461 0 : tree res_op2;
17462 0 : res_op2 = captures[2];
17463 0 : tree _r;
17464 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17465 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17466 0 : return _r;
17467 : }
17468 0 : next_after_fail1687:;
17469 : }
17470 : }
17471 0 : {
17472 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17473 0 : const enum tree_code lop = BIT_AND_EXPR;
17474 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17475 : )
17476 : {
17477 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1688;
17478 0 : {
17479 0 : tree res_op0;
17480 0 : {
17481 0 : tree _o1[2], _r1;
17482 0 : _o1[0] = captures[0];
17483 0 : _o1[1] = captures[3];
17484 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17485 0 : res_op0 = _r1;
17486 : }
17487 0 : tree res_op1;
17488 0 : res_op1 = captures[1];
17489 0 : tree res_op2;
17490 0 : res_op2 = captures[2];
17491 0 : tree _r;
17492 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17493 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17494 0 : return _r;
17495 : }
17496 0 : next_after_fail1688:;
17497 : }
17498 : }
17499 0 : {
17500 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17501 0 : const enum tree_code lop = BIT_AND_EXPR;
17502 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17503 : )
17504 : {
17505 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1689;
17506 0 : {
17507 0 : tree res_op0;
17508 0 : {
17509 0 : tree _o1[2], _r1;
17510 0 : _o1[0] = captures[0];
17511 0 : _o1[1] = captures[3];
17512 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17513 0 : res_op0 = _r1;
17514 : }
17515 0 : tree res_op1;
17516 0 : res_op1 = captures[1];
17517 0 : tree res_op2;
17518 0 : res_op2 = captures[2];
17519 0 : tree _r;
17520 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17521 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17522 0 : return _r;
17523 : }
17524 0 : next_after_fail1689:;
17525 : }
17526 : }
17527 0 : {
17528 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17529 0 : const enum tree_code lop = BIT_AND_EXPR;
17530 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17531 : )
17532 : {
17533 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1690;
17534 0 : {
17535 0 : tree res_op0;
17536 0 : {
17537 0 : tree _o1[2], _r1;
17538 0 : _o1[0] = captures[0];
17539 0 : _o1[1] = captures[3];
17540 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17541 0 : res_op0 = _r1;
17542 : }
17543 0 : tree res_op1;
17544 0 : res_op1 = captures[1];
17545 0 : tree res_op2;
17546 0 : res_op2 = captures[2];
17547 0 : tree _r;
17548 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17549 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17550 0 : return _r;
17551 : }
17552 0 : next_after_fail1690:;
17553 : }
17554 : }
17555 0 : {
17556 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17557 0 : const enum tree_code lop = BIT_AND_EXPR;
17558 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17559 : )
17560 : {
17561 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1691;
17562 0 : {
17563 0 : tree res_op0;
17564 0 : {
17565 0 : tree _o1[2], _r1;
17566 0 : _o1[0] = captures[0];
17567 0 : _o1[1] = captures[3];
17568 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17569 0 : res_op0 = _r1;
17570 : }
17571 0 : tree res_op1;
17572 0 : res_op1 = captures[1];
17573 0 : tree res_op2;
17574 0 : res_op2 = captures[2];
17575 0 : tree _r;
17576 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17577 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17578 0 : return _r;
17579 : }
17580 0 : next_after_fail1691:;
17581 : }
17582 : }
17583 0 : {
17584 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17585 0 : const enum tree_code lop = BIT_AND_EXPR;
17586 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17587 : )
17588 : {
17589 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1692;
17590 0 : {
17591 0 : tree res_op0;
17592 0 : {
17593 0 : tree _o1[2], _r1;
17594 0 : _o1[0] = captures[0];
17595 0 : _o1[1] = captures[3];
17596 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17597 0 : res_op0 = _r1;
17598 : }
17599 0 : tree res_op1;
17600 0 : res_op1 = captures[1];
17601 0 : tree res_op2;
17602 0 : res_op2 = captures[2];
17603 0 : tree _r;
17604 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17605 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17606 0 : return _r;
17607 : }
17608 0 : next_after_fail1692:;
17609 : }
17610 : }
17611 0 : {
17612 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17613 0 : const enum tree_code lop = BIT_AND_EXPR;
17614 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17615 : )
17616 : {
17617 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1693;
17618 0 : {
17619 0 : tree res_op0;
17620 0 : {
17621 0 : tree _o1[2], _r1;
17622 0 : _o1[0] = captures[0];
17623 0 : _o1[1] = captures[3];
17624 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17625 0 : res_op0 = _r1;
17626 : }
17627 0 : tree res_op1;
17628 0 : res_op1 = captures[1];
17629 0 : tree res_op2;
17630 0 : res_op2 = captures[2];
17631 0 : tree _r;
17632 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17633 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17634 0 : return _r;
17635 : }
17636 0 : next_after_fail1693:;
17637 : }
17638 : }
17639 0 : {
17640 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17641 0 : const enum tree_code lop = BIT_AND_EXPR;
17642 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17643 : )
17644 : {
17645 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1694;
17646 0 : {
17647 0 : tree res_op0;
17648 0 : {
17649 0 : tree _o1[2], _r1;
17650 0 : _o1[0] = captures[0];
17651 0 : _o1[1] = captures[3];
17652 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17653 0 : res_op0 = _r1;
17654 : }
17655 0 : tree res_op1;
17656 0 : res_op1 = captures[1];
17657 0 : tree res_op2;
17658 0 : res_op2 = captures[2];
17659 0 : tree _r;
17660 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17661 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17662 0 : return _r;
17663 : }
17664 0 : next_after_fail1694:;
17665 : }
17666 : }
17667 0 : {
17668 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17669 0 : const enum tree_code lop = BIT_AND_EXPR;
17670 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17671 : )
17672 : {
17673 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1695;
17674 0 : {
17675 0 : tree res_op0;
17676 0 : {
17677 0 : tree _o1[2], _r1;
17678 0 : _o1[0] = captures[0];
17679 0 : _o1[1] = captures[3];
17680 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17681 0 : res_op0 = _r1;
17682 : }
17683 0 : tree res_op1;
17684 0 : res_op1 = captures[1];
17685 0 : tree res_op2;
17686 0 : res_op2 = captures[2];
17687 0 : tree _r;
17688 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17689 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17690 0 : return _r;
17691 : }
17692 0 : next_after_fail1695:;
17693 : }
17694 : }
17695 0 : {
17696 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17697 0 : const enum tree_code lop = BIT_AND_EXPR;
17698 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17699 : )
17700 : {
17701 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1696;
17702 0 : {
17703 0 : tree res_op0;
17704 0 : {
17705 0 : tree _o1[2], _r1;
17706 0 : _o1[0] = captures[0];
17707 0 : _o1[1] = captures[3];
17708 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17709 0 : res_op0 = _r1;
17710 : }
17711 0 : tree res_op1;
17712 0 : res_op1 = captures[1];
17713 0 : tree res_op2;
17714 0 : res_op2 = captures[2];
17715 0 : tree _r;
17716 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17717 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17718 0 : return _r;
17719 : }
17720 0 : next_after_fail1696:;
17721 : }
17722 : }
17723 0 : {
17724 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17725 0 : const enum tree_code lop = BIT_AND_EXPR;
17726 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17727 : )
17728 : {
17729 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1697;
17730 0 : {
17731 0 : tree res_op0;
17732 0 : {
17733 0 : tree _o1[2], _r1;
17734 0 : _o1[0] = captures[0];
17735 0 : _o1[1] = captures[3];
17736 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17737 0 : res_op0 = _r1;
17738 : }
17739 0 : tree res_op1;
17740 0 : res_op1 = captures[1];
17741 0 : tree res_op2;
17742 0 : res_op2 = captures[2];
17743 0 : tree _r;
17744 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17745 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17746 0 : return _r;
17747 : }
17748 0 : next_after_fail1697:;
17749 : }
17750 : }
17751 0 : {
17752 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17753 0 : const enum tree_code lop = BIT_AND_EXPR;
17754 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17755 : )
17756 : {
17757 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1698;
17758 0 : {
17759 0 : tree res_op0;
17760 0 : {
17761 0 : tree _o1[2], _r1;
17762 0 : _o1[0] = captures[0];
17763 0 : _o1[1] = captures[3];
17764 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17765 0 : res_op0 = _r1;
17766 : }
17767 0 : tree res_op1;
17768 0 : res_op1 = captures[1];
17769 0 : tree res_op2;
17770 0 : res_op2 = captures[2];
17771 0 : tree _r;
17772 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17773 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17774 0 : return _r;
17775 : }
17776 0 : next_after_fail1698:;
17777 : }
17778 : }
17779 0 : {
17780 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17781 0 : const enum tree_code lop = BIT_AND_EXPR;
17782 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17783 : )
17784 : {
17785 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1699;
17786 0 : {
17787 0 : tree res_op0;
17788 0 : {
17789 0 : tree _o1[2], _r1;
17790 0 : _o1[0] = captures[0];
17791 0 : _o1[1] = captures[3];
17792 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17793 0 : res_op0 = _r1;
17794 : }
17795 0 : tree res_op1;
17796 0 : res_op1 = captures[1];
17797 0 : tree res_op2;
17798 0 : res_op2 = captures[2];
17799 0 : tree _r;
17800 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17801 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17802 0 : return _r;
17803 : }
17804 0 : next_after_fail1699:;
17805 : }
17806 : }
17807 0 : {
17808 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17809 0 : const enum tree_code lop = BIT_AND_EXPR;
17810 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17811 : )
17812 : {
17813 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1700;
17814 0 : {
17815 0 : tree res_op0;
17816 0 : {
17817 0 : tree _o1[2], _r1;
17818 0 : _o1[0] = captures[0];
17819 0 : _o1[1] = captures[3];
17820 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17821 0 : res_op0 = _r1;
17822 : }
17823 0 : tree res_op1;
17824 0 : res_op1 = captures[1];
17825 0 : tree res_op2;
17826 0 : res_op2 = captures[2];
17827 0 : tree _r;
17828 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17829 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17830 0 : return _r;
17831 : }
17832 0 : next_after_fail1700:;
17833 : }
17834 : }
17835 0 : {
17836 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17837 0 : const enum tree_code lop = BIT_AND_EXPR;
17838 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17839 : )
17840 : {
17841 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1701;
17842 0 : {
17843 0 : tree res_op0;
17844 0 : {
17845 0 : tree _o1[2], _r1;
17846 0 : _o1[0] = captures[0];
17847 0 : _o1[1] = captures[3];
17848 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17849 0 : res_op0 = _r1;
17850 : }
17851 0 : tree res_op1;
17852 0 : res_op1 = captures[1];
17853 0 : tree res_op2;
17854 0 : res_op2 = captures[2];
17855 0 : tree _r;
17856 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17857 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17858 0 : return _r;
17859 : }
17860 0 : next_after_fail1701:;
17861 : }
17862 : }
17863 0 : {
17864 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17865 0 : const enum tree_code lop = BIT_AND_EXPR;
17866 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17867 : )
17868 : {
17869 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1702;
17870 0 : {
17871 0 : tree res_op0;
17872 0 : {
17873 0 : tree _o1[2], _r1;
17874 0 : _o1[0] = captures[0];
17875 0 : _o1[1] = captures[3];
17876 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17877 0 : res_op0 = _r1;
17878 : }
17879 0 : tree res_op1;
17880 0 : res_op1 = captures[1];
17881 0 : tree res_op2;
17882 0 : res_op2 = captures[2];
17883 0 : tree _r;
17884 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17885 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17886 0 : return _r;
17887 : }
17888 0 : next_after_fail1702:;
17889 : }
17890 : }
17891 0 : {
17892 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17893 0 : const enum tree_code lop = BIT_AND_EXPR;
17894 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17895 : )
17896 : {
17897 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1703;
17898 0 : {
17899 0 : tree res_op0;
17900 0 : {
17901 0 : tree _o1[2], _r1;
17902 0 : _o1[0] = captures[0];
17903 0 : _o1[1] = captures[3];
17904 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17905 0 : res_op0 = _r1;
17906 : }
17907 0 : tree res_op1;
17908 0 : res_op1 = captures[1];
17909 0 : tree res_op2;
17910 0 : res_op2 = captures[2];
17911 0 : tree _r;
17912 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17913 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17914 0 : return _r;
17915 : }
17916 0 : next_after_fail1703:;
17917 : }
17918 : }
17919 0 : {
17920 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17921 0 : const enum tree_code lop = BIT_AND_EXPR;
17922 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17923 : )
17924 : {
17925 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1704;
17926 0 : {
17927 0 : tree res_op0;
17928 0 : {
17929 0 : tree _o1[2], _r1;
17930 0 : _o1[0] = captures[0];
17931 0 : _o1[1] = captures[3];
17932 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17933 0 : res_op0 = _r1;
17934 : }
17935 0 : tree res_op1;
17936 0 : res_op1 = captures[1];
17937 0 : tree res_op2;
17938 0 : res_op2 = captures[2];
17939 0 : tree _r;
17940 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17941 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17942 0 : return _r;
17943 : }
17944 0 : next_after_fail1704:;
17945 : }
17946 : }
17947 0 : {
17948 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17949 0 : const enum tree_code lop = BIT_AND_EXPR;
17950 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17951 : )
17952 : {
17953 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1705;
17954 0 : {
17955 0 : tree res_op0;
17956 0 : {
17957 0 : tree _o1[2], _r1;
17958 0 : _o1[0] = captures[0];
17959 0 : _o1[1] = captures[3];
17960 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17961 0 : res_op0 = _r1;
17962 : }
17963 0 : tree res_op1;
17964 0 : res_op1 = captures[1];
17965 0 : tree res_op2;
17966 0 : res_op2 = captures[2];
17967 0 : tree _r;
17968 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17969 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17970 0 : return _r;
17971 : }
17972 0 : next_after_fail1705:;
17973 : }
17974 : }
17975 0 : {
17976 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17977 0 : const enum tree_code lop = BIT_AND_EXPR;
17978 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17979 : )
17980 : {
17981 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1706;
17982 0 : {
17983 0 : tree res_op0;
17984 0 : {
17985 0 : tree _o1[2], _r1;
17986 0 : _o1[0] = captures[0];
17987 0 : _o1[1] = captures[3];
17988 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17989 0 : res_op0 = _r1;
17990 : }
17991 0 : tree res_op1;
17992 0 : res_op1 = captures[1];
17993 0 : tree res_op2;
17994 0 : res_op2 = captures[2];
17995 0 : tree _r;
17996 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17997 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
17998 0 : return _r;
17999 : }
18000 0 : next_after_fail1706:;
18001 : }
18002 : }
18003 0 : {
18004 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18005 0 : const enum tree_code lop = BIT_AND_EXPR;
18006 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18007 : )
18008 : {
18009 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1707;
18010 0 : {
18011 0 : tree res_op0;
18012 0 : {
18013 0 : tree _o1[2], _r1;
18014 0 : _o1[0] = captures[0];
18015 0 : _o1[1] = captures[3];
18016 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18017 0 : res_op0 = _r1;
18018 : }
18019 0 : tree res_op1;
18020 0 : res_op1 = captures[1];
18021 0 : tree res_op2;
18022 0 : res_op2 = captures[2];
18023 0 : tree _r;
18024 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18025 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18026 0 : return _r;
18027 : }
18028 0 : next_after_fail1707:;
18029 : }
18030 : }
18031 0 : {
18032 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18033 0 : const enum tree_code lop = BIT_AND_EXPR;
18034 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18035 : )
18036 : {
18037 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1708;
18038 0 : {
18039 0 : tree res_op0;
18040 0 : {
18041 0 : tree _o1[2], _r1;
18042 0 : _o1[0] = captures[0];
18043 0 : _o1[1] = captures[3];
18044 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18045 0 : res_op0 = _r1;
18046 : }
18047 0 : tree res_op1;
18048 0 : res_op1 = captures[1];
18049 0 : tree res_op2;
18050 0 : res_op2 = captures[2];
18051 0 : tree _r;
18052 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18053 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18054 0 : return _r;
18055 : }
18056 0 : next_after_fail1708:;
18057 : }
18058 : }
18059 0 : {
18060 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18061 0 : const enum tree_code lop = BIT_AND_EXPR;
18062 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18063 : )
18064 : {
18065 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1709;
18066 0 : {
18067 0 : tree res_op0;
18068 0 : {
18069 0 : tree _o1[2], _r1;
18070 0 : _o1[0] = captures[0];
18071 0 : _o1[1] = captures[3];
18072 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18073 0 : res_op0 = _r1;
18074 : }
18075 0 : tree res_op1;
18076 0 : res_op1 = captures[1];
18077 0 : tree res_op2;
18078 0 : res_op2 = captures[2];
18079 0 : tree _r;
18080 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18081 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18082 0 : return _r;
18083 : }
18084 0 : next_after_fail1709:;
18085 : }
18086 : }
18087 0 : {
18088 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18089 0 : const enum tree_code lop = BIT_AND_EXPR;
18090 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18091 : )
18092 : {
18093 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1710;
18094 0 : {
18095 0 : tree res_op0;
18096 0 : {
18097 0 : tree _o1[2], _r1;
18098 0 : _o1[0] = captures[0];
18099 0 : _o1[1] = captures[3];
18100 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18101 0 : res_op0 = _r1;
18102 : }
18103 0 : tree res_op1;
18104 0 : res_op1 = captures[1];
18105 0 : tree res_op2;
18106 0 : res_op2 = captures[2];
18107 0 : tree _r;
18108 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18109 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18110 0 : return _r;
18111 : }
18112 0 : next_after_fail1710:;
18113 : }
18114 : }
18115 0 : {
18116 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18117 0 : const enum tree_code lop = BIT_AND_EXPR;
18118 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18119 : )
18120 : {
18121 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1711;
18122 0 : {
18123 0 : tree res_op0;
18124 0 : {
18125 0 : tree _o1[2], _r1;
18126 0 : _o1[0] = captures[0];
18127 0 : _o1[1] = captures[3];
18128 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18129 0 : res_op0 = _r1;
18130 : }
18131 0 : tree res_op1;
18132 0 : res_op1 = captures[1];
18133 0 : tree res_op2;
18134 0 : res_op2 = captures[2];
18135 0 : tree _r;
18136 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18137 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18138 0 : return _r;
18139 : }
18140 0 : next_after_fail1711:;
18141 : }
18142 : }
18143 0 : {
18144 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18145 0 : const enum tree_code lop = BIT_AND_EXPR;
18146 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18147 : )
18148 : {
18149 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1712;
18150 0 : {
18151 0 : tree res_op0;
18152 0 : {
18153 0 : tree _o1[2], _r1;
18154 0 : _o1[0] = captures[0];
18155 0 : _o1[1] = captures[3];
18156 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18157 0 : res_op0 = _r1;
18158 : }
18159 0 : tree res_op1;
18160 0 : res_op1 = captures[1];
18161 0 : tree res_op2;
18162 0 : res_op2 = captures[2];
18163 0 : tree _r;
18164 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18165 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18166 0 : return _r;
18167 : }
18168 0 : next_after_fail1712:;
18169 : }
18170 : }
18171 0 : {
18172 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18173 0 : const enum tree_code lop = BIT_AND_EXPR;
18174 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18175 : )
18176 : {
18177 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1713;
18178 0 : {
18179 0 : tree res_op0;
18180 0 : {
18181 0 : tree _o1[2], _r1;
18182 0 : _o1[0] = captures[0];
18183 0 : _o1[1] = captures[3];
18184 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18185 0 : res_op0 = _r1;
18186 : }
18187 0 : tree res_op1;
18188 0 : res_op1 = captures[1];
18189 0 : tree res_op2;
18190 0 : res_op2 = captures[2];
18191 0 : tree _r;
18192 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18193 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18194 0 : return _r;
18195 : }
18196 0 : next_after_fail1713:;
18197 : }
18198 : }
18199 0 : {
18200 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18201 0 : const enum tree_code lop = BIT_AND_EXPR;
18202 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18203 : )
18204 : {
18205 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1714;
18206 0 : {
18207 0 : tree res_op0;
18208 0 : {
18209 0 : tree _o1[2], _r1;
18210 0 : _o1[0] = captures[0];
18211 0 : _o1[1] = captures[3];
18212 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18213 0 : res_op0 = _r1;
18214 : }
18215 0 : tree res_op1;
18216 0 : res_op1 = captures[1];
18217 0 : tree res_op2;
18218 0 : res_op2 = captures[2];
18219 0 : tree _r;
18220 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18221 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18222 0 : return _r;
18223 : }
18224 0 : next_after_fail1714:;
18225 : }
18226 : }
18227 0 : {
18228 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18229 0 : const enum tree_code lop = BIT_AND_EXPR;
18230 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18231 : )
18232 : {
18233 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1715;
18234 0 : {
18235 0 : tree res_op0;
18236 0 : {
18237 0 : tree _o1[2], _r1;
18238 0 : _o1[0] = captures[0];
18239 0 : _o1[1] = captures[3];
18240 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18241 0 : res_op0 = _r1;
18242 : }
18243 0 : tree res_op1;
18244 0 : res_op1 = captures[1];
18245 0 : tree res_op2;
18246 0 : res_op2 = captures[2];
18247 0 : tree _r;
18248 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18249 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18250 0 : return _r;
18251 : }
18252 0 : next_after_fail1715:;
18253 : }
18254 : }
18255 0 : {
18256 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18257 0 : const enum tree_code lop = BIT_AND_EXPR;
18258 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18259 : )
18260 : {
18261 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1716;
18262 0 : {
18263 0 : tree res_op0;
18264 0 : {
18265 0 : tree _o1[2], _r1;
18266 0 : _o1[0] = captures[0];
18267 0 : _o1[1] = captures[3];
18268 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18269 0 : res_op0 = _r1;
18270 : }
18271 0 : tree res_op1;
18272 0 : res_op1 = captures[1];
18273 0 : tree res_op2;
18274 0 : res_op2 = captures[2];
18275 0 : tree _r;
18276 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18277 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
18278 0 : return _r;
18279 : }
18280 0 : next_after_fail1716:;
18281 : }
18282 : }
18283 : }
18284 : }
18285 : break;
18286 : }
18287 : default:;
18288 : }
18289 : }
18290 : }
18291 18 : {
18292 18 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
18293 18 : if (VECTOR_TYPE_P (type)
18294 18 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18295 : || types_match (type, TREE_TYPE (captures[2]))
18296 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
18297 : || (optimize_vectors_before_lowering_p ()
18298 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
18299 : )
18300 : {
18301 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1717;
18302 18 : {
18303 18 : if (! tree_invariant_p (captures[4])) goto next_after_fail1717;
18304 14 : tree res_op0;
18305 14 : res_op0 = captures[1];
18306 14 : tree res_op1;
18307 14 : {
18308 14 : tree _o1[2], _r1;
18309 14 : _o1[0] = captures[2];
18310 14 : _o1[1] = unshare_expr (captures[4]);
18311 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18312 14 : if (EXPR_P (_r1))
18313 0 : goto next_after_fail1717;
18314 14 : res_op1 = _r1;
18315 : }
18316 14 : tree res_op2;
18317 14 : {
18318 14 : tree _o1[2], _r1;
18319 14 : _o1[0] = captures[3];
18320 14 : _o1[1] = captures[4];
18321 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18322 14 : if (EXPR_P (_r1))
18323 0 : goto next_after_fail1717;
18324 14 : res_op2 = _r1;
18325 : }
18326 14 : tree _r;
18327 14 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18328 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
18329 14 : return _r;
18330 : }
18331 4 : next_after_fail1717:;
18332 : }
18333 : }
18334 4 : break;
18335 : }
18336 199797 : case CALL_EXPR:
18337 199797 : switch (get_call_combined_fn (_p0))
18338 : {
18339 0 : case CFN_BUILT_IN_BSWAP128:
18340 0 : if (call_expr_nargs (_p0) == 1)
18341 : {
18342 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18343 0 : switch (TREE_CODE (_p1))
18344 : {
18345 0 : case INTEGER_CST:
18346 0 : {
18347 0 : {
18348 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18349 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
18350 0 : if (res) return res;
18351 : }
18352 0 : break;
18353 : }
18354 : default:;
18355 : }
18356 : }
18357 : break;
18358 0 : case CFN_BUILT_IN_BSWAP16:
18359 0 : if (call_expr_nargs (_p0) == 1)
18360 : {
18361 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18362 0 : switch (TREE_CODE (_p1))
18363 : {
18364 0 : case INTEGER_CST:
18365 0 : {
18366 0 : {
18367 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18368 0 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
18369 0 : if (res) return res;
18370 : }
18371 0 : break;
18372 : }
18373 : default:;
18374 : }
18375 : }
18376 : break;
18377 10 : case CFN_BUILT_IN_BSWAP32:
18378 10 : if (call_expr_nargs (_p0) == 1)
18379 : {
18380 10 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18381 10 : switch (TREE_CODE (_p1))
18382 : {
18383 9 : case INTEGER_CST:
18384 9 : {
18385 9 : {
18386 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18387 9 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
18388 9 : if (res) return res;
18389 : }
18390 1 : break;
18391 : }
18392 : default:;
18393 : }
18394 : }
18395 : break;
18396 8 : case CFN_BUILT_IN_BSWAP64:
18397 8 : if (call_expr_nargs (_p0) == 1)
18398 : {
18399 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18400 8 : switch (TREE_CODE (_p1))
18401 : {
18402 7 : case INTEGER_CST:
18403 7 : {
18404 7 : {
18405 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18406 7 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
18407 7 : if (res) return res;
18408 : }
18409 1 : break;
18410 : }
18411 : default:;
18412 : }
18413 : }
18414 : break;
18415 : default:;
18416 : }
18417 : break;
18418 6355003 : default:;
18419 : }
18420 6355003 : switch (TREE_CODE (_p1))
18421 : {
18422 1 : case VEC_COND_EXPR:
18423 1 : {
18424 1 : tree _q30 = TREE_OPERAND (_p1, 0);
18425 1 : tree _q31 = TREE_OPERAND (_p1, 1);
18426 1 : tree _q32 = TREE_OPERAND (_p1, 2);
18427 1 : {
18428 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
18429 1 : if (VECTOR_TYPE_P (type)
18430 1 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18431 : || types_match (type, TREE_TYPE (captures[3]))
18432 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
18433 : || (optimize_vectors_before_lowering_p ()
18434 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
18435 : )
18436 : {
18437 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1718;
18438 1 : {
18439 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail1718;
18440 0 : tree res_op0;
18441 0 : res_op0 = captures[2];
18442 0 : tree res_op1;
18443 0 : {
18444 0 : tree _o1[2], _r1;
18445 0 : _o1[0] = unshare_expr (captures[0]);
18446 0 : _o1[1] = captures[3];
18447 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18448 0 : if (EXPR_P (_r1))
18449 0 : goto next_after_fail1718;
18450 0 : res_op1 = _r1;
18451 : }
18452 0 : tree res_op2;
18453 0 : {
18454 0 : tree _o1[2], _r1;
18455 0 : _o1[0] = captures[0];
18456 0 : _o1[1] = captures[4];
18457 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18458 0 : if (EXPR_P (_r1))
18459 0 : goto next_after_fail1718;
18460 0 : res_op2 = _r1;
18461 : }
18462 0 : tree _r;
18463 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18464 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
18465 0 : return _r;
18466 : }
18467 1 : next_after_fail1718:;
18468 : }
18469 : }
18470 1 : break;
18471 : }
18472 6355003 : default:;
18473 : }
18474 6355003 : switch (TREE_CODE (_p0))
18475 : {
18476 0 : case ORDERED_EXPR:
18477 0 : {
18478 0 : tree _q20 = TREE_OPERAND (_p0, 0);
18479 0 : tree _q21 = TREE_OPERAND (_p0, 1);
18480 0 : switch (TREE_CODE (_p1))
18481 : {
18482 0 : case NE_EXPR:
18483 0 : {
18484 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18485 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18486 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18487 : {
18488 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18489 : {
18490 0 : {
18491 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18492 0 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures);
18493 0 : if (res) return res;
18494 : }
18495 : }
18496 : }
18497 : break;
18498 : }
18499 0 : default:;
18500 : }
18501 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18502 : {
18503 0 : switch (TREE_CODE (_p1))
18504 : {
18505 0 : case ORDERED_EXPR:
18506 0 : {
18507 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18508 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18509 0 : if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
18510 : {
18511 0 : {
18512 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
18513 0 : if (types_match (captures[0], captures[1])
18514 : )
18515 : {
18516 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1719;
18517 0 : {
18518 0 : tree res_op0;
18519 0 : res_op0 = captures[0];
18520 0 : tree res_op1;
18521 0 : res_op1 = captures[1];
18522 0 : tree _r;
18523 0 : _r = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
18524 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
18525 0 : return _r;
18526 : }
18527 0 : next_after_fail1719:;
18528 : }
18529 : }
18530 : }
18531 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18532 : {
18533 0 : {
18534 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
18535 0 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures);
18536 0 : if (res) return res;
18537 : }
18538 : }
18539 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18540 : {
18541 0 : {
18542 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
18543 0 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures);
18544 0 : if (res) return res;
18545 : }
18546 : }
18547 : break;
18548 : }
18549 : default:;
18550 : }
18551 : }
18552 0 : switch (TREE_CODE (_p1))
18553 : {
18554 0 : case ORDERED_EXPR:
18555 0 : {
18556 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18557 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18558 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18559 : {
18560 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18561 : {
18562 0 : {
18563 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
18564 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures);
18565 0 : if (res) return res;
18566 : }
18567 : }
18568 : }
18569 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18570 : {
18571 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18572 : {
18573 0 : {
18574 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
18575 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures);
18576 0 : if (res) return res;
18577 : }
18578 : }
18579 : }
18580 : break;
18581 : }
18582 : default:;
18583 : }
18584 : break;
18585 : }
18586 136 : case NE_EXPR:
18587 136 : {
18588 136 : tree _q20 = TREE_OPERAND (_p0, 0);
18589 136 : tree _q21 = TREE_OPERAND (_p0, 1);
18590 136 : switch (TREE_CODE (_p1))
18591 : {
18592 0 : case ORDERED_EXPR:
18593 0 : {
18594 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18595 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18596 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18597 : {
18598 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18599 : {
18600 0 : {
18601 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18602 0 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures);
18603 0 : if (res) return res;
18604 : }
18605 : }
18606 : }
18607 : break;
18608 : }
18609 : default:;
18610 : }
18611 : break;
18612 : }
18613 489695 : case MINUS_EXPR:
18614 489695 : {
18615 489695 : tree _q20 = TREE_OPERAND (_p0, 0);
18616 489695 : tree _q21 = TREE_OPERAND (_p0, 1);
18617 489695 : switch (TREE_CODE (_q20))
18618 : {
18619 424738 : CASE_CONVERT:
18620 424738 : {
18621 424738 : tree _q30 = TREE_OPERAND (_q20, 0);
18622 424738 : switch (TREE_CODE (_q21))
18623 : {
18624 420192 : CASE_CONVERT:
18625 420192 : {
18626 420192 : tree _q50 = TREE_OPERAND (_q21, 0);
18627 420192 : switch (TREE_CODE (_p1))
18628 : {
18629 420168 : case INTEGER_CST:
18630 420168 : {
18631 420168 : {
18632 420168 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18633 420168 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, MINUS_EXPR);
18634 420168 : if (res) return res;
18635 : }
18636 420158 : break;
18637 : }
18638 : default:;
18639 : }
18640 : break;
18641 : }
18642 : default:;
18643 : }
18644 : break;
18645 : }
18646 : default:;
18647 : }
18648 : break;
18649 : }
18650 166685 : case PLUS_EXPR:
18651 166685 : {
18652 166685 : tree _q20 = TREE_OPERAND (_p0, 0);
18653 166685 : tree _q21 = TREE_OPERAND (_p0, 1);
18654 166685 : switch (TREE_CODE (_q20))
18655 : {
18656 47562 : CASE_CONVERT:
18657 47562 : {
18658 47562 : tree _q30 = TREE_OPERAND (_q20, 0);
18659 47562 : switch (TREE_CODE (_q21))
18660 : {
18661 119 : CASE_CONVERT:
18662 119 : {
18663 119 : tree _q50 = TREE_OPERAND (_q21, 0);
18664 119 : switch (TREE_CODE (_p1))
18665 : {
18666 60 : case INTEGER_CST:
18667 60 : {
18668 60 : {
18669 60 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18670 60 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, PLUS_EXPR);
18671 60 : if (res) return res;
18672 : }
18673 45 : break;
18674 : }
18675 : default:;
18676 : }
18677 : break;
18678 : }
18679 : default:;
18680 : }
18681 : break;
18682 : }
18683 : default:;
18684 : }
18685 : break;
18686 : }
18687 80 : case LT_EXPR:
18688 80 : {
18689 80 : tree _q20 = TREE_OPERAND (_p0, 0);
18690 80 : tree _q21 = TREE_OPERAND (_p0, 1);
18691 80 : switch (TREE_CODE (_p1))
18692 : {
18693 8 : case LT_EXPR:
18694 8 : {
18695 8 : tree _q50 = TREE_OPERAND (_p1, 0);
18696 8 : tree _q51 = TREE_OPERAND (_p1, 1);
18697 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18698 : {
18699 0 : {
18700 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18701 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18702 0 : if (res) return res;
18703 : }
18704 : }
18705 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18706 : {
18707 0 : {
18708 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18709 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18710 0 : if (res) return res;
18711 : }
18712 : }
18713 : break;
18714 : }
18715 1 : case GT_EXPR:
18716 1 : {
18717 1 : tree _q50 = TREE_OPERAND (_p1, 0);
18718 1 : tree _q51 = TREE_OPERAND (_p1, 1);
18719 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18720 : {
18721 0 : {
18722 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18723 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18724 0 : if (res) return res;
18725 : }
18726 : }
18727 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18728 : {
18729 0 : {
18730 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18731 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18732 0 : if (res) return res;
18733 : }
18734 : }
18735 : break;
18736 : }
18737 : default:;
18738 : }
18739 : break;
18740 : }
18741 32 : case LE_EXPR:
18742 32 : {
18743 32 : tree _q20 = TREE_OPERAND (_p0, 0);
18744 32 : tree _q21 = TREE_OPERAND (_p0, 1);
18745 32 : switch (TREE_CODE (_p1))
18746 : {
18747 5 : case LE_EXPR:
18748 5 : {
18749 5 : tree _q50 = TREE_OPERAND (_p1, 0);
18750 5 : tree _q51 = TREE_OPERAND (_p1, 1);
18751 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18752 : {
18753 0 : {
18754 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18755 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18756 0 : if (res) return res;
18757 : }
18758 : }
18759 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18760 : {
18761 4 : {
18762 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18763 4 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18764 4 : if (res) return res;
18765 : }
18766 : }
18767 : break;
18768 : }
18769 0 : case GE_EXPR:
18770 0 : {
18771 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18772 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18773 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18774 : {
18775 0 : {
18776 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18777 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18778 0 : if (res) return res;
18779 : }
18780 : }
18781 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18782 : {
18783 0 : {
18784 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18785 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18786 0 : if (res) return res;
18787 : }
18788 : }
18789 : break;
18790 : }
18791 : default:;
18792 : }
18793 : break;
18794 : }
18795 348 : case GT_EXPR:
18796 348 : {
18797 348 : tree _q20 = TREE_OPERAND (_p0, 0);
18798 348 : tree _q21 = TREE_OPERAND (_p0, 1);
18799 348 : switch (TREE_CODE (_p1))
18800 : {
18801 85 : case GT_EXPR:
18802 85 : {
18803 85 : tree _q50 = TREE_OPERAND (_p1, 0);
18804 85 : tree _q51 = TREE_OPERAND (_p1, 1);
18805 85 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18806 : {
18807 0 : {
18808 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18809 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18810 0 : if (res) return res;
18811 : }
18812 : }
18813 85 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18814 : {
18815 35 : {
18816 35 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18817 35 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18818 35 : if (res) return res;
18819 : }
18820 : }
18821 : break;
18822 : }
18823 67 : case LT_EXPR:
18824 67 : {
18825 67 : tree _q50 = TREE_OPERAND (_p1, 0);
18826 67 : tree _q51 = TREE_OPERAND (_p1, 1);
18827 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18828 : {
18829 0 : {
18830 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18831 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18832 0 : if (res) return res;
18833 : }
18834 : }
18835 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18836 : {
18837 0 : {
18838 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18839 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18840 0 : if (res) return res;
18841 : }
18842 : }
18843 : break;
18844 : }
18845 : default:;
18846 : }
18847 : break;
18848 : }
18849 73 : case GE_EXPR:
18850 73 : {
18851 73 : tree _q20 = TREE_OPERAND (_p0, 0);
18852 73 : tree _q21 = TREE_OPERAND (_p0, 1);
18853 73 : switch (TREE_CODE (_p1))
18854 : {
18855 11 : case GE_EXPR:
18856 11 : {
18857 11 : tree _q50 = TREE_OPERAND (_p1, 0);
18858 11 : tree _q51 = TREE_OPERAND (_p1, 1);
18859 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18860 : {
18861 7 : {
18862 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18863 7 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18864 7 : if (res) return res;
18865 : }
18866 : }
18867 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18868 : {
18869 0 : {
18870 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18871 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18872 0 : if (res) return res;
18873 : }
18874 : }
18875 : break;
18876 : }
18877 17 : case LE_EXPR:
18878 17 : {
18879 17 : tree _q50 = TREE_OPERAND (_p1, 0);
18880 17 : tree _q51 = TREE_OPERAND (_p1, 1);
18881 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18882 : {
18883 0 : {
18884 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18885 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
18886 0 : if (res) return res;
18887 : }
18888 : }
18889 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18890 : {
18891 0 : {
18892 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18893 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
18894 0 : if (res) return res;
18895 : }
18896 : }
18897 : break;
18898 : }
18899 : default:;
18900 : }
18901 : break;
18902 : }
18903 47149 : case NEGATE_EXPR:
18904 47149 : {
18905 47149 : tree _q20 = TREE_OPERAND (_p0, 0);
18906 47149 : if (integer_onep (_p1))
18907 : {
18908 1439 : {
18909 1439 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
18910 1439 : if (!TYPE_OVERFLOW_SANITIZED (type)
18911 : )
18912 : {
18913 1426 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1720;
18914 1426 : {
18915 1426 : tree res_op0;
18916 1426 : res_op0 = captures[0];
18917 1426 : tree res_op1;
18918 1426 : res_op1 = captures[1];
18919 1426 : tree _r;
18920 1426 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18921 1426 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
18922 1426 : return _r;
18923 : }
18924 0 : next_after_fail1720:;
18925 : }
18926 : }
18927 : }
18928 : break;
18929 : }
18930 1 : case VEC_PERM_EXPR:
18931 1 : {
18932 1 : tree _q20 = TREE_OPERAND (_p0, 0);
18933 1 : tree _q21 = TREE_OPERAND (_p0, 1);
18934 1 : tree _q22 = TREE_OPERAND (_p0, 2);
18935 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18936 : {
18937 0 : switch (TREE_CODE (_p1))
18938 : {
18939 0 : case VEC_PERM_EXPR:
18940 0 : {
18941 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18942 0 : tree _q61 = TREE_OPERAND (_p1, 1);
18943 0 : tree _q62 = TREE_OPERAND (_p1, 2);
18944 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
18945 : {
18946 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
18947 : {
18948 0 : {
18949 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
18950 0 : if (VECTOR_INTEGER_TYPE_P (type)
18951 : )
18952 : {
18953 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1721;
18954 0 : {
18955 0 : tree res_op0;
18956 0 : {
18957 0 : tree _o1[2], _r1;
18958 0 : _o1[0] = captures[0];
18959 0 : _o1[1] = captures[2];
18960 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18961 0 : captures[3] = _r1;
18962 : }
18963 0 : res_op0 = unshare_expr (captures[3]);
18964 0 : tree res_op1;
18965 0 : res_op1 = captures[3];
18966 0 : tree res_op2;
18967 0 : res_op2 = captures[1];
18968 0 : tree _r;
18969 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
18970 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
18971 0 : return _r;
18972 : }
18973 0 : next_after_fail1721:;
18974 : }
18975 : }
18976 : }
18977 : }
18978 : break;
18979 : }
18980 : default:;
18981 : }
18982 : }
18983 : break;
18984 : }
18985 199783 : case CALL_EXPR:
18986 199783 : switch (get_call_combined_fn (_p0))
18987 : {
18988 1 : case CFN_BUILT_IN_POPCOUNT:
18989 1 : if (call_expr_nargs (_p0) == 1)
18990 : {
18991 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18992 1 : if (integer_onep (_p1))
18993 : {
18994 1 : {
18995 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
18996 1 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY);
18997 1 : if (res) return res;
18998 : }
18999 : }
19000 : }
19001 : break;
19002 1 : case CFN_BUILT_IN_POPCOUNTLL:
19003 1 : if (call_expr_nargs (_p0) == 1)
19004 : {
19005 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19006 1 : if (integer_onep (_p1))
19007 : {
19008 1 : {
19009 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19010 1 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL);
19011 1 : if (res) return res;
19012 : }
19013 : }
19014 : }
19015 : break;
19016 0 : case CFN_POPCOUNT:
19017 0 : if (call_expr_nargs (_p0) == 1)
19018 : {
19019 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19020 0 : if (integer_onep (_p1))
19021 : {
19022 0 : {
19023 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19024 0 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, CFN_POPCOUNT, CFN_PARITY);
19025 0 : if (res) return res;
19026 : }
19027 : }
19028 : }
19029 : break;
19030 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
19031 0 : if (call_expr_nargs (_p0) == 1)
19032 : {
19033 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19034 0 : if (integer_onep (_p1))
19035 : {
19036 0 : {
19037 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19038 0 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX);
19039 0 : if (res) return res;
19040 : }
19041 : }
19042 : }
19043 : break;
19044 1 : case CFN_BUILT_IN_POPCOUNTL:
19045 1 : if (call_expr_nargs (_p0) == 1)
19046 : {
19047 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19048 1 : if (integer_onep (_p1))
19049 : {
19050 1 : {
19051 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19052 1 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL);
19053 1 : if (res) return res;
19054 : }
19055 : }
19056 : }
19057 : break;
19058 : default:;
19059 : }
19060 : break;
19061 : default:;
19062 : }
19063 : return NULL_TREE;
19064 : }
19065 : #pragma GCC diagnostic pop
|