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 133759953 : tree_negate_expr_p (tree t)
11 : {
12 133759953 : const tree type = TREE_TYPE (t);
13 133759953 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 133759953 : if (TREE_SIDE_EFFECTS (t)) return false;
15 128596866 : switch (TREE_CODE (t))
16 : {
17 7885109 : case INTEGER_CST:
18 7885109 : {
19 7885109 : {
20 7885109 : if ((INTEGRAL_TYPE_P (type)
21 7885109 : && TYPE_UNSIGNED (type))
22 10128287 : || (!TYPE_OVERFLOW_SANITIZED (type)
23 2240393 : && may_negate_without_overflow_p (t))
24 : )
25 : {
26 7869203 : {
27 7869203 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
28 : return true;
29 : }
30 : }
31 : }
32 : break;
33 : }
34 0 : case FIXED_CST:
35 0 : {
36 0 : {
37 0 : {
38 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 15, __FILE__, __LINE__, false);
39 : return true;
40 : }
41 : }
42 417571 : break;
43 : }
44 417571 : case NEGATE_EXPR:
45 417571 : {
46 417571 : tree _p0 = TREE_OPERAND (t, 0);
47 417571 : {
48 417571 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
49 417571 : if (!TYPE_OVERFLOW_SANITIZED (type)
50 : )
51 : {
52 417551 : {
53 417551 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
54 : return true;
55 : }
56 : }
57 : }
58 : break;
59 : }
60 756757 : case REAL_CST:
61 756757 : {
62 756757 : {
63 756757 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t))
64 : )
65 : {
66 639 : {
67 639 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 17, __FILE__, __LINE__, false);
68 : return true;
69 : }
70 : }
71 : }
72 : break;
73 : }
74 451 : case VECTOR_CST:
75 451 : {
76 451 : {
77 451 : if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)
78 : )
79 : {
80 329 : {
81 329 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 18, __FILE__, __LINE__, false);
82 : return true;
83 : }
84 : }
85 : }
86 : break;
87 : }
88 1252925 : case MINUS_EXPR:
89 1252925 : {
90 1252925 : tree _p0 = TREE_OPERAND (t, 0);
91 1252925 : tree _p1 = TREE_OPERAND (t, 1);
92 1252925 : {
93 1252925 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
94 1252925 : if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
95 2179821 : || (FLOAT_TYPE_P (type)
96 665816 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
97 665816 : && !HONOR_SIGNED_ZEROS (type))
98 : )
99 : {
100 326602 : {
101 326602 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
102 : return true;
103 : }
104 : }
105 : }
106 : break;
107 : }
108 : default:;
109 : }
110 : return false;
111 : }
112 :
113 : bool
114 0 : tree_double_value_p (tree t)
115 : {
116 0 : const tree type = TREE_TYPE (t);
117 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
118 0 : if (TREE_SIDE_EFFECTS (t)) return false;
119 0 : {
120 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
121 0 : if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node
122 : )
123 : {
124 0 : {
125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 44, __FILE__, __LINE__, false);
126 0 : return true;
127 : }
128 : }
129 : }
130 : return false;
131 : }
132 :
133 : tree
134 0 : generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
135 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
136 : {
137 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
138 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail77;
139 0 : {
140 0 : tree res_op0;
141 0 : res_op0 = captures[1];
142 0 : tree res_op1;
143 0 : res_op1 = captures[2];
144 0 : tree _r;
145 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
146 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 54, __FILE__, __LINE__, true);
147 : return _r;
148 : }
149 0 : next_after_fail77:;
150 0 : return NULL_TREE;
151 : }
152 :
153 : tree
154 243804 : generic_simplify_13 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
155 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
156 : const enum tree_code ARG_UNUSED (op))
157 : {
158 243804 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
159 243804 : {
160 243804 : bool wascmp;
161 243804 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
162 243804 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
163 : )
164 : {
165 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail87;
166 47 : {
167 47 : tree res_op0;
168 47 : res_op0 = wascmp
169 47 : ? constant_boolean_node (true, type)
170 40 : : build_all_ones_cst (TREE_TYPE (captures[0]));
171 47 : tree _r;
172 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
173 47 : if (TREE_SIDE_EFFECTS (captures[0]))
174 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
175 47 : if (TREE_SIDE_EFFECTS (captures[1]))
176 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
177 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 62, __FILE__, __LINE__, true);
178 47 : return _r;
179 : }
180 0 : next_after_fail87:;
181 : }
182 : }
183 243757 : return NULL_TREE;
184 : }
185 :
186 : tree
187 57 : generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
188 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
189 : {
190 57 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
191 57 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
192 : )
193 : {
194 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail98;
195 33 : {
196 33 : tree res_op0;
197 33 : {
198 33 : tree _o1[1], _r1;
199 33 : _o1[0] = captures[0];
200 33 : if (TREE_TYPE (_o1[0]) != type)
201 : {
202 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
203 : }
204 : else
205 : _r1 = _o1[0];
206 33 : res_op0 = _r1;
207 : }
208 33 : tree res_op1;
209 33 : {
210 33 : tree _o1[1], _r1;
211 33 : _o1[0] = captures[1];
212 33 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
213 33 : res_op1 = _r1;
214 : }
215 33 : tree _r;
216 33 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
217 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 73, __FILE__, __LINE__, true);
218 : return _r;
219 : }
220 0 : next_after_fail98:;
221 : }
222 : return NULL_TREE;
223 : }
224 :
225 : tree
226 270801 : generic_simplify_31 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
227 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
228 : const enum tree_code ARG_UNUSED (bitop),
229 : const enum tree_code ARG_UNUSED (rbitop),
230 : const enum tree_code ARG_UNUSED (resbitop))
231 : {
232 270801 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
233 270801 : {
234 270801 : bool wascmp;
235 270801 : if (bitwise_inverted_equal_p (captures[2], captures[0], wascmp)
236 270801 : && (!wascmp || element_precision (type) == 1)
237 : )
238 : {
239 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail105;
240 13 : {
241 13 : tree res_op0;
242 13 : res_op0 = captures[2];
243 13 : tree res_op1;
244 13 : res_op1 = captures[1];
245 13 : tree _r;
246 13 : _r = fold_build2_loc (loc, resbitop, type, res_op0, res_op1);
247 13 : if (TREE_SIDE_EFFECTS (captures[0]))
248 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
249 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 79, __FILE__, __LINE__, true);
250 13 : return _r;
251 : }
252 0 : next_after_fail105:;
253 : }
254 : }
255 270788 : return NULL_TREE;
256 : }
257 :
258 : tree
259 0 : generic_simplify_38 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
260 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
261 : const enum tree_code ARG_UNUSED (op))
262 : {
263 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
264 0 : if (INTEGRAL_TYPE_P (type)
265 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
266 : )
267 : {
268 0 : {
269 0 : tree t = type;
270 0 : if (!TYPE_OVERFLOW_WRAPS (t))
271 0 : t = unsigned_type_for (t);
272 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
273 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail114;
274 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail114;
275 0 : {
276 0 : tree res_op0;
277 0 : {
278 0 : tree _o1[2], _r1;
279 0 : {
280 0 : tree _o2[1], _r2;
281 0 : _o2[0] = captures[2];
282 0 : if (TREE_TYPE (_o2[0]) != t)
283 : {
284 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
285 : }
286 : else
287 : _r2 = _o2[0];
288 0 : _o1[0] = _r2;
289 : }
290 0 : _o1[1] = wide_int_to_tree (t, c);
291 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
292 0 : res_op0 = _r1;
293 : }
294 0 : tree _r;
295 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
296 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 87, __FILE__, __LINE__, true);
297 0 : return _r;
298 : }
299 0 : next_after_fail114:;
300 0 : }
301 : }
302 : return NULL_TREE;
303 : }
304 :
305 : tree
306 5 : generic_simplify_48 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
307 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
308 : {
309 5 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
310 10 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
311 5 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
312 10 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
313 : )
314 : {
315 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail126;
316 5 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail126;
317 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail126;
318 5 : {
319 5 : tree res_op0;
320 5 : {
321 5 : tree _o1[2], _r1;
322 5 : _o1[0] = captures[1];
323 5 : _o1[1] = captures[3];
324 5 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
325 5 : res_op0 = _r1;
326 : }
327 5 : tree res_op1;
328 5 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
329 5 : tree _r;
330 5 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
331 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 96, __FILE__, __LINE__, true);
332 : return _r;
333 : }
334 5 : next_after_fail126:;
335 : }
336 : return NULL_TREE;
337 : }
338 :
339 : tree
340 66 : generic_simplify_55 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
341 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
342 : {
343 66 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
344 66 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
345 : )
346 : {
347 66 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail135;
348 66 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail135;
349 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail135;
350 66 : {
351 66 : tree res_op0;
352 66 : res_op0 = captures[0];
353 66 : tree _r;
354 66 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
355 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 104, __FILE__, __LINE__, true);
356 : return _r;
357 : }
358 66 : next_after_fail135:;
359 : }
360 : return NULL_TREE;
361 : }
362 :
363 : tree
364 46225 : generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
365 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
366 : {
367 46225 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
368 46225 : if (!TYPE_SATURATING (type)
369 : )
370 : {
371 46225 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
372 92381 : && !FIXED_POINT_TYPE_P (type)
373 : )
374 : {
375 46156 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail144;
376 46156 : {
377 46156 : tree res_op0;
378 46156 : res_op0 = captures[0];
379 46156 : tree _r;
380 46156 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
381 46156 : if (TREE_SIDE_EFFECTS (captures[1]))
382 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
383 46156 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 112, __FILE__, __LINE__, true);
384 : return _r;
385 : }
386 0 : next_after_fail144:;
387 : }
388 : }
389 : return NULL_TREE;
390 : }
391 :
392 : tree
393 123634 : generic_simplify_73 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
394 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
395 : {
396 123634 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
397 123634 : if (!TYPE_SATURATING (type)
398 : )
399 : {
400 123634 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
401 247268 : && !FIXED_POINT_TYPE_P (type)
402 : )
403 : {
404 123634 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
405 : )
406 : {
407 122779 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail161;
408 122779 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail161;
409 122779 : {
410 122779 : tree res_op0;
411 122779 : {
412 122779 : tree _o1[1], _r1;
413 122779 : _o1[0] = captures[0];
414 122779 : if (TREE_TYPE (_o1[0]) != type)
415 : {
416 119945 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
417 : }
418 : else
419 : _r1 = _o1[0];
420 122779 : res_op0 = _r1;
421 : }
422 122779 : tree _r;
423 122779 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
424 122779 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 129, __FILE__, __LINE__, true);
425 : return _r;
426 : }
427 123634 : next_after_fail161:;
428 : }
429 : }
430 : }
431 : return NULL_TREE;
432 : }
433 :
434 : tree
435 2 : generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
436 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
437 : const enum tree_code ARG_UNUSED (div),
438 : const enum tree_code ARG_UNUSED (mod))
439 : {
440 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
441 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail169;
442 2 : {
443 2 : tree _r;
444 2 : _r = captures[0];
445 2 : if (TREE_SIDE_EFFECTS (captures[1]))
446 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
447 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 137, __FILE__, __LINE__, true);
448 : return _r;
449 : }
450 0 : next_after_fail169:;
451 0 : return NULL_TREE;
452 : }
453 :
454 : tree
455 56 : generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
456 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
457 : const enum tree_code ARG_UNUSED (cmp),
458 : const enum tree_code ARG_UNUSED (icmp),
459 : const enum tree_code ARG_UNUSED (ncmp))
460 : {
461 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
462 56 : if (TYPE_PRECISION (type) > 1
463 56 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
464 : )
465 : {
466 0 : {
467 0 : enum tree_code ic = invert_tree_comparison
468 0 : (cmp, HONOR_NANS (captures[1]));
469 0 : tree cmptype = TREE_TYPE (captures[0]);
470 0 : if (ic == icmp
471 : )
472 : {
473 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail171;
474 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail171;
475 0 : {
476 0 : tree res_op0;
477 0 : {
478 0 : tree _o1[1], _r1;
479 0 : {
480 0 : tree _o2[2], _r2;
481 0 : _o2[0] = captures[1];
482 0 : _o2[1] = captures[2];
483 0 : _r2 = fold_build2_loc (loc, icmp, cmptype, _o2[0], _o2[1]);
484 0 : _o1[0] = _r2;
485 : }
486 0 : if (TREE_TYPE (_o1[0]) != type)
487 : {
488 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
489 : }
490 : else
491 : _r1 = _o1[0];
492 0 : res_op0 = _r1;
493 : }
494 0 : tree _r;
495 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
496 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 139, __FILE__, __LINE__, true);
497 : return _r;
498 : }
499 56 : next_after_fail171:;
500 : }
501 : else
502 : {
503 0 : if (ic == ncmp
504 : )
505 : {
506 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail172;
507 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail172;
508 0 : {
509 0 : tree res_op0;
510 0 : {
511 0 : tree _o1[1], _r1;
512 0 : {
513 0 : tree _o2[2], _r2;
514 0 : _o2[0] = captures[1];
515 0 : _o2[1] = captures[2];
516 0 : _r2 = fold_build2_loc (loc, ncmp, cmptype, _o2[0], _o2[1]);
517 0 : _o1[0] = _r2;
518 : }
519 0 : if (TREE_TYPE (_o1[0]) != type)
520 : {
521 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
522 : }
523 : else
524 : _r1 = _o1[0];
525 0 : res_op0 = _r1;
526 : }
527 0 : tree _r;
528 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
529 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 140, __FILE__, __LINE__, true);
530 : return _r;
531 : }
532 56 : next_after_fail172:;
533 : }
534 : }
535 : }
536 : }
537 : return NULL_TREE;
538 : }
539 :
540 : tree
541 1 : generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
542 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
543 : {
544 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
545 1 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
546 1 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
547 1 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
548 2 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
549 : )
550 : {
551 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail190;
552 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail190;
553 1 : {
554 1 : tree res_op0;
555 1 : {
556 1 : tree _o1[1], _r1;
557 1 : {
558 1 : tree _o2[2], _r2;
559 1 : _o2[0] = captures[1];
560 1 : _o2[1] = captures[2];
561 1 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
562 1 : _o1[0] = _r2;
563 : }
564 1 : if (TREE_TYPE (_o1[0]) != type)
565 : {
566 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
567 : }
568 : else
569 : _r1 = _o1[0];
570 1 : res_op0 = _r1;
571 : }
572 1 : tree _r;
573 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
574 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 158, __FILE__, __LINE__, true);
575 : return _r;
576 : }
577 1 : next_after_fail190:;
578 : }
579 : return NULL_TREE;
580 : }
581 :
582 : tree
583 41 : generic_simplify_110 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
584 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
585 : {
586 41 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
587 41 : if (!TYPE_SATURATING (type)
588 : )
589 : {
590 41 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
591 82 : && !FIXED_POINT_TYPE_P (type)
592 : )
593 : {
594 82 : if (!TYPE_OVERFLOW_TRAPS (type)
595 41 : && TREE_CODE (type) != COMPLEX_TYPE
596 81 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
597 : )
598 : {
599 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail204;
600 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail204;
601 40 : {
602 40 : tree res_op0;
603 40 : {
604 40 : tree _o1[1], _r1;
605 40 : _o1[0] = captures[0];
606 40 : if (TREE_TYPE (_o1[0]) != type)
607 : {
608 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
609 : }
610 : else
611 : _r1 = _o1[0];
612 40 : res_op0 = _r1;
613 : }
614 40 : tree _r;
615 40 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
616 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 171, __FILE__, __LINE__, true);
617 : return _r;
618 : }
619 41 : next_after_fail204:;
620 : }
621 : }
622 : }
623 : return NULL_TREE;
624 : }
625 :
626 : tree
627 4 : generic_simplify_117 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
628 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
629 : const enum tree_code ARG_UNUSED (log1),
630 : const enum tree_code ARG_UNUSED (log2),
631 : const combined_fn ARG_UNUSED (popcount))
632 : {
633 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
634 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail213;
635 4 : {
636 4 : tree res_op0;
637 4 : {
638 4 : tree _o1[2], _r1;
639 4 : _o1[0] = captures[2];
640 4 : _o1[1] = captures[4];
641 4 : _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
642 4 : res_op0 = _r1;
643 : }
644 4 : tree _r;
645 4 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
646 4 : if (!_r)
647 0 : goto next_after_fail213;
648 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 180, __FILE__, __LINE__, true);
649 : return _r;
650 : }
651 4 : next_after_fail213:;
652 : return NULL_TREE;
653 : }
654 :
655 : tree
656 39 : generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
657 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
658 : const enum tree_code ARG_UNUSED (bitop),
659 : const enum tree_code ARG_UNUSED (cmp))
660 : {
661 39 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
662 78 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
663 37 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[4]))
664 76 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[4]))
665 : )
666 : {
667 37 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail219;
668 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail219;
669 37 : {
670 37 : tree res_op0;
671 37 : {
672 37 : tree _o1[2], _r1;
673 37 : _o1[0] = captures[1];
674 37 : {
675 37 : tree _o2[1], _r2;
676 37 : _o2[0] = captures[4];
677 37 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
678 : {
679 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
680 : }
681 : else
682 : _r2 = _o2[0];
683 37 : _o1[1] = _r2;
684 : }
685 37 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
686 37 : res_op0 = _r1;
687 : }
688 37 : tree res_op1;
689 37 : res_op1 = captures[2];
690 37 : tree _r;
691 37 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
692 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
693 : return _r;
694 : }
695 39 : next_after_fail219:;
696 : }
697 : else
698 : {
699 4 : if (VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
700 2 : && VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[4]))
701 2 : && vector_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[4]))
702 2 : && single_use (captures[0]) && single_use (captures[3])
703 : )
704 : {
705 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail220;
706 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail220;
707 2 : {
708 2 : tree res_op0;
709 2 : {
710 2 : tree _o1[2], _r1;
711 2 : _o1[0] = captures[1];
712 2 : {
713 2 : tree _o2[1], _r2;
714 2 : _o2[0] = captures[4];
715 2 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
716 : {
717 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
718 : }
719 : else
720 : _r2 = _o2[0];
721 2 : _o1[1] = _r2;
722 : }
723 2 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
724 2 : res_op0 = _r1;
725 : }
726 2 : tree res_op1;
727 2 : res_op1 = captures[2];
728 2 : tree _r;
729 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
730 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
731 : return _r;
732 : }
733 39 : next_after_fail220:;
734 : }
735 : }
736 : return NULL_TREE;
737 : }
738 :
739 : tree
740 18479 : generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
741 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
742 : {
743 18479 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
744 18479 : {
745 18479 : bool wascmp;
746 18479 : if ((bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
747 18479 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp))
748 18479 : && (!wascmp || element_precision (type) == 1)
749 : )
750 : {
751 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail247;
752 0 : {
753 0 : tree _r;
754 0 : _r = build_all_ones_cst (TREE_TYPE (captures[0]));
755 0 : if (TREE_SIDE_EFFECTS (captures[0]))
756 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
757 0 : if (TREE_SIDE_EFFECTS (captures[1]))
758 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
759 0 : if (TREE_SIDE_EFFECTS (captures[2]))
760 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
761 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 205, __FILE__, __LINE__, true);
762 0 : return _r;
763 : }
764 0 : next_after_fail247:;
765 : }
766 : }
767 18479 : return NULL_TREE;
768 : }
769 :
770 : tree
771 0 : generic_simplify_156 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
772 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
773 : const enum tree_code ARG_UNUSED (bitop),
774 : const enum tree_code ARG_UNUSED (rbitop))
775 : {
776 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
777 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail260;
778 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail260;
779 0 : {
780 0 : tree res_op0;
781 0 : res_op0 = captures[0];
782 0 : tree res_op1;
783 0 : res_op1 = captures[2];
784 0 : tree _r;
785 0 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
786 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 210, __FILE__, __LINE__, true);
787 : return _r;
788 : }
789 0 : next_after_fail260:;
790 : return NULL_TREE;
791 : }
792 :
793 : tree
794 0 : generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
795 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
796 : const enum tree_code ARG_UNUSED (cmp),
797 : const enum tree_code ARG_UNUSED (icmp))
798 : {
799 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
800 0 : if (integer_zerop (captures[5])
801 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
802 : )
803 : {
804 0 : if (integer_onep (captures[4])
805 : )
806 : {
807 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail268;
808 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail268;
809 0 : {
810 0 : tree res_op0;
811 0 : {
812 0 : tree _o1[3], _r1;
813 0 : _o1[0] = captures[1];
814 0 : _o1[1] = captures[6];
815 0 : _o1[2] = captures[9];
816 0 : _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
817 0 : res_op0 = _r1;
818 : }
819 0 : tree res_op1;
820 0 : res_op1 = captures[4];
821 0 : tree _r;
822 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
823 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
824 : return _r;
825 : }
826 0 : next_after_fail268:;
827 : }
828 : else
829 : {
830 0 : if (integer_minus_onep (captures[4])
831 : )
832 : {
833 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail269;
834 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail269;
835 0 : {
836 0 : tree res_op0;
837 0 : res_op0 = captures[1];
838 0 : tree res_op1;
839 0 : res_op1 = captures[6];
840 0 : tree res_op2;
841 0 : res_op2 = captures[9];
842 0 : tree _r;
843 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
844 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
845 : return _r;
846 : }
847 0 : next_after_fail269:;
848 : }
849 : }
850 : }
851 : else
852 : {
853 0 : if (integer_zerop (captures[4])
854 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
855 : )
856 : {
857 0 : if (integer_onep (captures[5])
858 : )
859 : {
860 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail270;
861 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail270;
862 0 : {
863 0 : tree res_op0;
864 0 : {
865 0 : tree _o1[3], _r1;
866 0 : _o1[0] = captures[1];
867 0 : _o1[1] = captures[9];
868 0 : _o1[2] = captures[6];
869 0 : _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
870 0 : res_op0 = _r1;
871 : }
872 0 : tree res_op1;
873 0 : res_op1 = captures[5];
874 0 : tree _r;
875 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
876 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
877 : return _r;
878 : }
879 0 : next_after_fail270:;
880 : }
881 : else
882 : {
883 0 : if (integer_minus_onep (captures[5])
884 : )
885 : {
886 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail271;
887 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail271;
888 0 : {
889 0 : tree res_op0;
890 0 : res_op0 = captures[1];
891 0 : tree res_op1;
892 0 : res_op1 = captures[9];
893 0 : tree res_op2;
894 0 : res_op2 = captures[6];
895 0 : tree _r;
896 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
897 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
898 : return _r;
899 : }
900 0 : next_after_fail271:;
901 : }
902 : }
903 : }
904 : }
905 : return NULL_TREE;
906 : }
907 :
908 : tree
909 4 : generic_simplify_184 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
910 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
911 : {
912 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
913 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail325;
914 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail325;
915 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail325;
916 4 : {
917 4 : tree _r;
918 4 : _r = captures[0];
919 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 244, __FILE__, __LINE__, true);
920 : return _r;
921 : }
922 4 : next_after_fail325:;
923 : return NULL_TREE;
924 : }
925 :
926 : tree
927 0 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
928 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
929 : const enum tree_code ARG_UNUSED (bitop),
930 : const enum tree_code ARG_UNUSED (op))
931 : {
932 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
933 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail329;
934 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail329;
935 0 : {
936 0 : tree _r;
937 0 : _r = captures[1];
938 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
939 : return _r;
940 : }
941 0 : next_after_fail329:;
942 : return NULL_TREE;
943 : }
944 :
945 : tree
946 4 : generic_simplify_193 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
947 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
948 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
949 : {
950 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
951 4 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
952 : )
953 : {
954 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail334;
955 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail334;
956 0 : {
957 0 : tree res_op0;
958 0 : res_op0 = captures[0];
959 0 : tree _r;
960 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
961 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
962 : return _r;
963 : }
964 4 : next_after_fail334:;
965 : }
966 : return NULL_TREE;
967 : }
968 :
969 : tree
970 6649129 : generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
971 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
972 : const enum tree_code ARG_UNUSED (op))
973 : {
974 6649129 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
975 6649129 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail337;
976 6649129 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail337;
977 6649129 : {
978 6649129 : tree res_op0;
979 6649129 : res_op0 = captures[0];
980 6649129 : tree _r;
981 6649129 : _r = non_lvalue_loc (loc, res_op0);
982 6649129 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
983 : return _r;
984 : }
985 6649129 : next_after_fail337:;
986 : return NULL_TREE;
987 : }
988 :
989 : tree
990 6 : generic_simplify_200 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
991 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
992 : {
993 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
994 6 : if (INTEGRAL_TYPE_P (type)
995 6 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
996 12 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
997 : )
998 : {
999 6 : if (TYPE_UNSIGNED (type)
1000 : )
1001 : {
1002 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail341;
1003 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail341;
1004 5 : {
1005 5 : tree res_op0;
1006 5 : res_op0 = captures[0];
1007 5 : tree _r;
1008 5 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
1009 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 256, __FILE__, __LINE__, true);
1010 : return _r;
1011 : }
1012 6 : next_after_fail341:;
1013 : }
1014 : else
1015 : {
1016 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail342;
1017 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail342;
1018 1 : {
1019 1 : tree res_op0;
1020 1 : res_op0 = captures[0];
1021 1 : tree _r;
1022 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1023 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 257, __FILE__, __LINE__, true);
1024 : return _r;
1025 : }
1026 6 : next_after_fail342:;
1027 : }
1028 : }
1029 : return NULL_TREE;
1030 : }
1031 :
1032 : tree
1033 14 : generic_simplify_206 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1034 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1035 : {
1036 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1037 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
1038 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
1039 : )
1040 : {
1041 14 : {
1042 14 : unsigned int shift = tree_to_uhwi (captures[1]);
1043 14 : unsigned int prec = TYPE_PRECISION (type);
1044 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
1045 0 : || tree_int_cst_sgn (captures[2]) >= 0)
1046 14 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
1047 : )
1048 : {
1049 6 : {
1050 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
1051 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail349;
1052 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail349;
1053 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail349;
1054 6 : {
1055 6 : tree res_op0;
1056 6 : {
1057 6 : tree _o1[1], _r1;
1058 6 : _o1[0] = captures[0];
1059 6 : if (TREE_TYPE (_o1[0]) != type)
1060 : {
1061 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1062 : }
1063 : else
1064 : _r1 = _o1[0];
1065 6 : res_op0 = _r1;
1066 : }
1067 6 : tree res_op1;
1068 6 : res_op1 = wide_int_to_tree (type, mask << shift);
1069 6 : tree _r;
1070 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1071 6 : if (TREE_SIDE_EFFECTS (captures[3]))
1072 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1073 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 261, __FILE__, __LINE__, true);
1074 6 : return _r;
1075 : }
1076 0 : next_after_fail349:;
1077 6 : }
1078 : }
1079 : }
1080 : }
1081 : return NULL_TREE;
1082 : }
1083 :
1084 : tree
1085 64 : generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1086 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1087 : const enum tree_code ARG_UNUSED (cmp))
1088 : {
1089 64 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1090 120 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1091 120 : && tree_expr_nonzero_p (captures[0])
1092 : )
1093 : {
1094 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail364;
1095 12 : {
1096 12 : tree _r;
1097 12 : _r = constant_boolean_node (cmp != EQ_EXPR, type);
1098 12 : if (TREE_SIDE_EFFECTS (captures[0]))
1099 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1100 12 : if (TREE_SIDE_EFFECTS (captures[1]))
1101 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1102 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 276, __FILE__, __LINE__, true);
1103 : return _r;
1104 : }
1105 0 : next_after_fail364:;
1106 : }
1107 : return NULL_TREE;
1108 : }
1109 :
1110 : tree
1111 10440 : generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1112 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1113 : const enum tree_code ARG_UNUSED (neeq),
1114 : const enum tree_code ARG_UNUSED (ltge))
1115 : {
1116 10440 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1117 10440 : {
1118 10440 : tree itype = signed_type_for (TREE_TYPE (captures[1]));
1119 20880 : if (wi::to_wide (captures[2]) == element_precision (itype) - 1
1120 10440 : && (!VECTOR_TYPE_P (itype)
1121 15 : || (cfun
1122 15 : && cfun->after_inlining
1123 7 : && VECTOR_BOOLEAN_TYPE_P (type)
1124 4 : && (expand_vec_cmp_expr_p (itype, type, ltge)
1125 4 : || !expand_vec_cmp_expr_p (TREE_TYPE (captures[0]),
1126 : type, neeq))))
1127 : )
1128 : {
1129 213 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail376;
1130 213 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail376;
1131 213 : {
1132 213 : tree res_op0;
1133 213 : {
1134 213 : tree _o1[1], _r1;
1135 213 : _o1[0] = captures[1];
1136 213 : if (TREE_TYPE (_o1[0]) != itype)
1137 : {
1138 161 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
1139 : }
1140 : else
1141 : _r1 = _o1[0];
1142 213 : res_op0 = _r1;
1143 : }
1144 213 : tree res_op1;
1145 213 : res_op1 = build_zero_cst (itype);
1146 213 : tree _r;
1147 213 : _r = fold_build2_loc (loc, ltge, type, res_op0, res_op1);
1148 213 : if (TREE_SIDE_EFFECTS (captures[2]))
1149 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1150 213 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
1151 : return _r;
1152 : }
1153 10440 : next_after_fail376:;
1154 : }
1155 : }
1156 : return NULL_TREE;
1157 : }
1158 :
1159 : tree
1160 715 : generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1161 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1162 : const enum tree_code ARG_UNUSED (cmp),
1163 : const enum tree_code ARG_UNUSED (ocmp))
1164 : {
1165 715 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1166 715 : if (!integer_zerop (captures[1])
1167 347 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
1168 264 : && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE
1169 957 : && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0])))
1170 : )
1171 : {
1172 242 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail401;
1173 242 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail401;
1174 242 : {
1175 242 : tree res_op0;
1176 242 : res_op0 = captures[0];
1177 242 : tree res_op1;
1178 242 : res_op1 = captures[1];
1179 242 : tree _r;
1180 242 : _r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
1181 242 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 311, __FILE__, __LINE__, true);
1182 : return _r;
1183 : }
1184 715 : next_after_fail401:;
1185 : }
1186 : return NULL_TREE;
1187 : }
1188 :
1189 : tree
1190 0 : generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1191 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1192 : const enum tree_code ARG_UNUSED (cmp))
1193 : {
1194 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1195 0 : if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1196 0 : TYPE_SIGN (TREE_TYPE (captures[0])))
1197 : )
1198 : {
1199 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail408;
1200 0 : {
1201 0 : tree _r;
1202 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1203 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1204 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1205 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1206 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1207 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1208 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1209 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 318, __FILE__, __LINE__, true);
1210 : return _r;
1211 : }
1212 0 : next_after_fail408:;
1213 : }
1214 : else
1215 : {
1216 0 : if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1217 0 : TYPE_SIGN (TREE_TYPE (captures[0])))
1218 : )
1219 : {
1220 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail409;
1221 0 : {
1222 0 : tree res_op0;
1223 0 : res_op0 = captures[0];
1224 0 : tree res_op1;
1225 0 : res_op1 = captures[2];
1226 0 : tree _r;
1227 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1228 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1229 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1230 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 319, __FILE__, __LINE__, true);
1231 : return _r;
1232 : }
1233 0 : next_after_fail409:;
1234 : }
1235 : }
1236 : return NULL_TREE;
1237 : }
1238 :
1239 : tree
1240 0 : generic_simplify_257 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1241 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1242 : const enum tree_code ARG_UNUSED (rotate),
1243 : const enum tree_code ARG_UNUSED (invrot),
1244 : const enum tree_code ARG_UNUSED (cmp))
1245 : {
1246 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1247 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
1248 0 : {
1249 0 : tree res_op0;
1250 0 : res_op0 = captures[0];
1251 0 : tree res_op1;
1252 0 : res_op1 = captures[2];
1253 0 : tree _r;
1254 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1255 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1256 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1257 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 341, __FILE__, __LINE__, true);
1258 : return _r;
1259 : }
1260 0 : next_after_fail431:;
1261 0 : return NULL_TREE;
1262 : }
1263 :
1264 : tree
1265 14 : generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1266 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1267 : const enum tree_code ARG_UNUSED (cmp),
1268 : const combined_fn ARG_UNUSED (bswap))
1269 : {
1270 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1271 14 : {
1272 14 : tree ctype = TREE_TYPE (captures[0]);
1273 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail435;
1274 14 : {
1275 14 : tree res_op0;
1276 14 : {
1277 14 : tree _o1[1], _r1;
1278 14 : _o1[0] = captures[1];
1279 14 : if (TREE_TYPE (_o1[0]) != ctype)
1280 : {
1281 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1282 : }
1283 : else
1284 : _r1 = _o1[0];
1285 14 : res_op0 = _r1;
1286 : }
1287 14 : tree res_op1;
1288 14 : {
1289 14 : tree _o1[1], _r1;
1290 14 : _o1[0] = captures[2];
1291 14 : if (TREE_TYPE (_o1[0]) != ctype)
1292 : {
1293 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1294 : }
1295 : else
1296 : _r1 = _o1[0];
1297 14 : res_op1 = _r1;
1298 : }
1299 14 : tree _r;
1300 14 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1301 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 345, __FILE__, __LINE__, true);
1302 : return _r;
1303 : }
1304 0 : next_after_fail435:;
1305 : }
1306 0 : return NULL_TREE;
1307 : }
1308 :
1309 : tree
1310 0 : generic_simplify_271 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1311 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1312 : const enum tree_code ARG_UNUSED (cmp))
1313 : {
1314 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1315 0 : if (single_use (captures[1]) && single_use (captures[3])
1316 : )
1317 : {
1318 0 : {
1319 0 : tree otype = TREE_TYPE (captures[0]);
1320 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail451;
1321 0 : {
1322 0 : tree res_op0;
1323 0 : {
1324 0 : tree _o1[1], _r1;
1325 0 : _o1[0] = captures[4];
1326 0 : if (TREE_TYPE (_o1[0]) != otype)
1327 : {
1328 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1329 : }
1330 : else
1331 : _r1 = _o1[0];
1332 0 : res_op0 = _r1;
1333 : }
1334 0 : tree res_op1;
1335 0 : {
1336 0 : tree _o1[1], _r1;
1337 0 : _o1[0] = captures[2];
1338 0 : if (TREE_TYPE (_o1[0]) != otype)
1339 : {
1340 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1341 : }
1342 : else
1343 : _r1 = _o1[0];
1344 0 : res_op1 = _r1;
1345 : }
1346 0 : tree _r;
1347 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1348 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 360, __FILE__, __LINE__, true);
1349 : return _r;
1350 : }
1351 0 : next_after_fail451:;
1352 : }
1353 : }
1354 0 : return NULL_TREE;
1355 : }
1356 :
1357 : tree
1358 24 : generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1359 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1360 : const combined_fn ARG_UNUSED (sq),
1361 : const enum tree_code ARG_UNUSED (cmp))
1362 : {
1363 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1364 24 : if (flag_unsafe_math_optimizations && ! flag_errno_math
1365 : )
1366 : {
1367 20 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
1368 : )
1369 : {
1370 2 : if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR
1371 : )
1372 : {
1373 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail471;
1374 1 : {
1375 1 : tree _r;
1376 1 : _r = constant_boolean_node (false, type);
1377 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1378 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1379 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1380 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1381 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 379, __FILE__, __LINE__, true);
1382 : return _r;
1383 : }
1384 0 : next_after_fail471:;
1385 0 : }
1386 : else
1387 : {
1388 1 : if (cmp == NE_EXPR || !HONOR_NANS (captures[0])
1389 : )
1390 : {
1391 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail472;
1392 1 : {
1393 1 : tree _r;
1394 1 : _r = constant_boolean_node (true, type);
1395 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1396 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1397 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1398 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1399 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 380, __FILE__, __LINE__, true);
1400 : return _r;
1401 : }
1402 0 : next_after_fail472:;
1403 : }
1404 : else
1405 : {
1406 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail473;
1407 0 : {
1408 0 : tree res_op0;
1409 0 : res_op0 = captures[0];
1410 0 : tree res_op1;
1411 0 : res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
1412 0 : tree _r;
1413 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1414 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1415 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1416 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 381, __FILE__, __LINE__, true);
1417 : return _r;
1418 : }
1419 0 : next_after_fail473:;
1420 : }
1421 : }
1422 : }
1423 : else
1424 : {
1425 18 : if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0)
1426 : )
1427 : {
1428 0 : if (cmp == LT_EXPR
1429 : )
1430 : {
1431 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail474;
1432 0 : {
1433 0 : tree _r;
1434 0 : _r = constant_boolean_node (false, type);
1435 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1436 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1437 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1438 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1439 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 382, __FILE__, __LINE__, true);
1440 : return _r;
1441 : }
1442 0 : next_after_fail474:;
1443 : }
1444 : else
1445 : {
1446 0 : if (cmp == GE_EXPR && !HONOR_NANS (captures[0])
1447 : )
1448 : {
1449 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail475;
1450 0 : {
1451 0 : tree _r;
1452 0 : _r = constant_boolean_node (true, type);
1453 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1454 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1455 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1456 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1457 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 383, __FILE__, __LINE__, true);
1458 : return _r;
1459 : }
1460 0 : next_after_fail475:;
1461 : }
1462 : else
1463 : {
1464 0 : if (cmp == LE_EXPR
1465 : )
1466 : {
1467 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail476;
1468 0 : {
1469 0 : tree res_op0;
1470 0 : res_op0 = captures[0];
1471 0 : tree res_op1;
1472 0 : res_op1 = captures[1];
1473 0 : tree _r;
1474 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1475 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 384, __FILE__, __LINE__, true);
1476 : return _r;
1477 : }
1478 0 : next_after_fail476:;
1479 : }
1480 : else
1481 : {
1482 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail477;
1483 0 : {
1484 0 : tree res_op0;
1485 0 : res_op0 = captures[0];
1486 0 : tree res_op1;
1487 0 : res_op1 = captures[1];
1488 0 : tree _r;
1489 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1490 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 385, __FILE__, __LINE__, true);
1491 : return _r;
1492 : }
1493 0 : next_after_fail477:;
1494 : }
1495 : }
1496 : }
1497 : }
1498 : else
1499 : {
1500 18 : if ((cmp == LT_EXPR
1501 : || cmp == LE_EXPR
1502 : || cmp == GT_EXPR
1503 18 : || cmp == GE_EXPR)
1504 16 : && !REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
1505 34 : && !HONOR_SIGN_DEPENDENT_ROUNDING (TREE_TYPE (captures[0]))
1506 : )
1507 : {
1508 16 : {
1509 16 : REAL_VALUE_TYPE c2;
1510 16 : enum tree_code ncmp = cmp;
1511 16 : const real_format *fmt
1512 16 : = REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0])));
1513 32 : real_arithmetic (&c2, MULT_EXPR,
1514 16 : &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
1515 16 : real_convert (&c2, fmt, &c2);
1516 16 : if (!REAL_VALUE_ISINF (c2))
1517 : {
1518 13 : tree c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]),
1519 13 : build_real (TREE_TYPE (captures[0]), c2));
1520 13 : if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST)
1521 : ncmp = ERROR_MARK;
1522 13 : else if ((cmp == LT_EXPR || cmp == GE_EXPR)
1523 13 : && real_less (&TREE_REAL_CST (c3), &TREE_REAL_CST (captures[1])))
1524 4 : ncmp = cmp == LT_EXPR ? LE_EXPR : GT_EXPR;
1525 9 : else if ((cmp == LE_EXPR || cmp == GT_EXPR)
1526 13 : && real_less (&TREE_REAL_CST (captures[1]), &TREE_REAL_CST (c3)))
1527 1 : ncmp = cmp == LE_EXPR ? LT_EXPR : GE_EXPR;
1528 : else
1529 : {
1530 8 : REAL_VALUE_TYPE c2alt, tow;
1531 8 : if (cmp == LT_EXPR || cmp == GE_EXPR)
1532 5 : tow = dconst0;
1533 : else
1534 3 : tow = dconstinf;
1535 8 : real_nextafter (&c2alt, fmt, &c2, &tow);
1536 8 : real_convert (&c2alt, fmt, &c2alt);
1537 8 : if (REAL_VALUE_ISINF (c2alt))
1538 : ncmp = ERROR_MARK;
1539 : else
1540 : {
1541 8 : c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]),
1542 8 : build_real (TREE_TYPE (captures[0]), c2alt));
1543 8 : if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST)
1544 : ncmp = ERROR_MARK;
1545 8 : else if (real_equal (&TREE_REAL_CST (c3),
1546 8 : &TREE_REAL_CST (captures[1])))
1547 8 : c2 = c2alt;
1548 : }
1549 : }
1550 : }
1551 12 : if (cmp == GT_EXPR || cmp == GE_EXPR
1552 : )
1553 : {
1554 5 : if (REAL_VALUE_ISINF (c2)
1555 : )
1556 : {
1557 1 : if (HONOR_INFINITIES (captures[0])
1558 : )
1559 : {
1560 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail478;
1561 0 : {
1562 0 : tree res_op0;
1563 0 : res_op0 = captures[0];
1564 0 : tree res_op1;
1565 0 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1566 0 : tree _r;
1567 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1568 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1569 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1570 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 386, __FILE__, __LINE__, true);
1571 14 : return _r;
1572 : }
1573 0 : next_after_fail478:;
1574 : }
1575 : else
1576 : {
1577 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
1578 1 : {
1579 1 : tree _r;
1580 1 : _r = constant_boolean_node (false, type);
1581 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1582 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1583 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1584 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1585 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 387, __FILE__, __LINE__, true);
1586 : return _r;
1587 : }
1588 0 : next_after_fail479:;
1589 : }
1590 : }
1591 : else
1592 : {
1593 4 : if (ncmp != ERROR_MARK
1594 : )
1595 : {
1596 4 : if (ncmp == GE_EXPR
1597 : )
1598 : {
1599 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail480;
1600 1 : {
1601 1 : tree res_op0;
1602 1 : res_op0 = captures[0];
1603 1 : tree res_op1;
1604 1 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1605 1 : tree _r;
1606 1 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1607 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1608 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1609 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 388, __FILE__, __LINE__, true);
1610 : return _r;
1611 : }
1612 0 : next_after_fail480:;
1613 : }
1614 : else
1615 : {
1616 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail481;
1617 3 : {
1618 3 : tree res_op0;
1619 3 : res_op0 = captures[0];
1620 3 : tree res_op1;
1621 3 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1622 3 : tree _r;
1623 3 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1624 3 : if (TREE_SIDE_EFFECTS (captures[1]))
1625 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1626 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 389, __FILE__, __LINE__, true);
1627 : return _r;
1628 : }
1629 0 : next_after_fail481:;
1630 : }
1631 : }
1632 : }
1633 : }
1634 : else
1635 : {
1636 11 : if (REAL_VALUE_ISINF (c2)
1637 : )
1638 : {
1639 2 : if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0])
1640 : )
1641 : {
1642 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail482;
1643 1 : {
1644 1 : tree _r;
1645 1 : _r = constant_boolean_node (true, type);
1646 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1647 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1648 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1649 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1650 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
1651 : return _r;
1652 : }
1653 0 : next_after_fail482:;
1654 : }
1655 : else
1656 : {
1657 1 : if (! HONOR_NANS (captures[0])
1658 : )
1659 : {
1660 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail483;
1661 0 : {
1662 0 : tree res_op0;
1663 0 : res_op0 = captures[0];
1664 0 : tree res_op1;
1665 0 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1666 0 : tree _r;
1667 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1668 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1669 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1670 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 391, __FILE__, __LINE__, true);
1671 : return _r;
1672 : }
1673 0 : next_after_fail483:;
1674 : }
1675 : else
1676 : {
1677 1 : if (! HONOR_INFINITIES (captures[0])
1678 : )
1679 : {
1680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail484;
1681 0 : {
1682 0 : tree res_op0;
1683 0 : res_op0 = captures[0];
1684 0 : tree res_op1;
1685 0 : res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
1686 0 : tree _r;
1687 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1688 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1689 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1690 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
1691 : return _r;
1692 : }
1693 0 : next_after_fail484:;
1694 : }
1695 : else
1696 : {
1697 1 : if (1
1698 : )
1699 : {
1700 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail485;
1701 1 : {
1702 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail485;
1703 0 : tree res_op0;
1704 0 : {
1705 0 : tree _o1[2], _r1;
1706 0 : _o1[0] = unshare_expr (captures[0]);
1707 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1708 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1709 0 : res_op0 = _r1;
1710 : }
1711 0 : tree res_op1;
1712 0 : {
1713 0 : tree _o1[2], _r1;
1714 0 : _o1[0] = captures[0];
1715 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1716 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
1717 0 : res_op1 = _r1;
1718 : }
1719 0 : tree _r;
1720 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1721 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1722 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1723 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
1724 : return _r;
1725 : }
1726 2 : next_after_fail485:;
1727 : }
1728 : }
1729 : }
1730 : }
1731 : }
1732 : else
1733 : {
1734 9 : if (ncmp != ERROR_MARK && ! HONOR_NANS (captures[0])
1735 : )
1736 : {
1737 8 : if (ncmp == LT_EXPR
1738 : )
1739 : {
1740 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail486;
1741 4 : {
1742 4 : tree res_op0;
1743 4 : res_op0 = captures[0];
1744 4 : tree res_op1;
1745 4 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1746 4 : tree _r;
1747 4 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1748 4 : if (TREE_SIDE_EFFECTS (captures[1]))
1749 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1750 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
1751 : return _r;
1752 : }
1753 0 : next_after_fail486:;
1754 : }
1755 : else
1756 : {
1757 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail487;
1758 4 : {
1759 4 : tree res_op0;
1760 4 : res_op0 = captures[0];
1761 4 : tree res_op1;
1762 4 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1763 4 : tree _r;
1764 4 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1765 4 : if (TREE_SIDE_EFFECTS (captures[1]))
1766 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1767 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
1768 : return _r;
1769 : }
1770 0 : next_after_fail487:;
1771 : }
1772 : }
1773 : else
1774 : {
1775 1 : if (ncmp != ERROR_MARK &&
1776 : 1
1777 : )
1778 : {
1779 1 : if (ncmp == LT_EXPR
1780 : )
1781 : {
1782 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail488;
1783 1 : {
1784 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail488;
1785 0 : tree res_op0;
1786 0 : {
1787 0 : tree _o1[2], _r1;
1788 0 : _o1[0] = unshare_expr (captures[0]);
1789 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1790 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1791 0 : res_op0 = _r1;
1792 : }
1793 0 : tree res_op1;
1794 0 : {
1795 0 : tree _o1[2], _r1;
1796 0 : _o1[0] = captures[0];
1797 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1798 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
1799 0 : res_op1 = _r1;
1800 : }
1801 0 : tree _r;
1802 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1803 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1804 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1805 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 396, __FILE__, __LINE__, true);
1806 : return _r;
1807 : }
1808 2 : next_after_fail488:;
1809 : }
1810 : else
1811 : {
1812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail489;
1813 0 : {
1814 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail489;
1815 0 : tree res_op0;
1816 0 : {
1817 0 : tree _o1[2], _r1;
1818 0 : _o1[0] = unshare_expr (captures[0]);
1819 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1820 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1821 0 : res_op0 = _r1;
1822 : }
1823 0 : tree res_op1;
1824 0 : {
1825 0 : tree _o1[2], _r1;
1826 0 : _o1[0] = captures[0];
1827 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1828 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
1829 0 : res_op1 = _r1;
1830 : }
1831 0 : tree _r;
1832 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1833 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1834 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1835 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 397, __FILE__, __LINE__, true);
1836 : return _r;
1837 : }
1838 2 : next_after_fail489:;
1839 : }
1840 : }
1841 : }
1842 : }
1843 : }
1844 : }
1845 : }
1846 : }
1847 : }
1848 : }
1849 : return NULL_TREE;
1850 : }
1851 :
1852 : tree
1853 7219 : generic_simplify_348 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1854 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1855 : const enum tree_code ARG_UNUSED (mod))
1856 : {
1857 7219 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1858 0 : if (ANY_INTEGRAL_TYPE_P (type)
1859 7219 : && TYPE_OVERFLOW_UNDEFINED (type)
1860 14438 : && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1861 195 : TYPE_SIGN (type))
1862 : )
1863 : {
1864 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail623;
1865 0 : {
1866 0 : tree _r;
1867 0 : _r = build_zero_cst (type);
1868 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1869 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1870 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1871 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1872 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1873 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1874 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 511, __FILE__, __LINE__, true);
1875 : return _r;
1876 : }
1877 0 : next_after_fail623:;
1878 : }
1879 : return NULL_TREE;
1880 : }
1881 :
1882 : tree
1883 4 : generic_simplify_360 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1884 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1885 : const combined_fn ARG_UNUSED (POW))
1886 : {
1887 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1888 4 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1889 : )
1890 : {
1891 4 : if (!TREE_OVERFLOW (captures[2])
1892 : )
1893 : {
1894 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
1895 4 : {
1896 4 : tree res_op0;
1897 4 : res_op0 = captures[1];
1898 4 : tree res_op1;
1899 4 : {
1900 4 : tree _o1[2], _r1;
1901 4 : _o1[0] = captures[2];
1902 4 : _o1[1] = build_one_cst (type);
1903 4 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1904 4 : res_op1 = _r1;
1905 : }
1906 4 : tree _r;
1907 4 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1908 4 : if (!_r)
1909 0 : goto next_after_fail637;
1910 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 525, __FILE__, __LINE__, true);
1911 : return _r;
1912 : }
1913 4 : next_after_fail637:;
1914 : }
1915 : }
1916 : return NULL_TREE;
1917 : }
1918 :
1919 : tree
1920 0 : generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1921 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1922 : const enum tree_code ARG_UNUSED (cmp))
1923 : {
1924 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1925 0 : if (INTEGRAL_TYPE_P (type)
1926 : )
1927 : {
1928 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail652;
1929 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail652;
1930 0 : {
1931 0 : tree _r;
1932 0 : _r = captures[2];
1933 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1934 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1935 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 540, __FILE__, __LINE__, true);
1936 : return _r;
1937 : }
1938 0 : next_after_fail652:;
1939 : }
1940 : return NULL_TREE;
1941 : }
1942 :
1943 : tree
1944 21 : generic_simplify_373 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1945 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1946 : {
1947 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1948 21 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail656;
1949 21 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail656;
1950 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail656;
1951 21 : {
1952 21 : tree _r;
1953 21 : _r = captures[2];
1954 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
1955 : return _r;
1956 : }
1957 21 : next_after_fail656:;
1958 : return NULL_TREE;
1959 : }
1960 :
1961 : tree
1962 0 : generic_simplify_377 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1963 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1964 : const enum tree_code ARG_UNUSED (neeq))
1965 : {
1966 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1967 0 : if (neeq == EQ_EXPR
1968 : )
1969 : {
1970 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail660;
1971 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail660;
1972 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail660;
1973 0 : {
1974 0 : tree _r;
1975 0 : _r = captures[3];
1976 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 548, __FILE__, __LINE__, true);
1977 : return _r;
1978 : }
1979 0 : next_after_fail660:;
1980 : }
1981 : else
1982 : {
1983 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail661;
1984 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail661;
1985 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail661;
1986 0 : {
1987 0 : tree _r;
1988 0 : _r = captures[0];
1989 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 549, __FILE__, __LINE__, true);
1990 : return _r;
1991 : }
1992 0 : next_after_fail661:;
1993 : }
1994 : return NULL_TREE;
1995 : }
1996 :
1997 : tree
1998 0 : generic_simplify_386 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1999 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2000 : const enum tree_code ARG_UNUSED (op))
2001 : {
2002 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2003 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail673;
2004 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail673;
2005 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
2006 0 : {
2007 0 : tree _r;
2008 0 : _r = captures[2];
2009 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
2010 : return _r;
2011 : }
2012 0 : next_after_fail673:;
2013 : return NULL_TREE;
2014 : }
2015 :
2016 : tree
2017 3 : generic_simplify_393 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2018 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2019 : const combined_fn ARG_UNUSED (func))
2020 : {
2021 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2022 3 : if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
2023 : )
2024 : {
2025 3 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail681;
2026 3 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail681;
2027 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail681;
2028 3 : {
2029 3 : tree _r;
2030 3 : _r = captures[2];
2031 3 : if (TREE_SIDE_EFFECTS (captures[1]))
2032 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2033 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2034 : return _r;
2035 : }
2036 3 : next_after_fail681:;
2037 : }
2038 : return NULL_TREE;
2039 : }
2040 :
2041 : tree
2042 163546 : generic_simplify_401 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2043 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2044 : const enum tree_code ARG_UNUSED (op))
2045 : {
2046 163546 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2047 327092 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2048 327092 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
2049 : )
2050 : {
2051 69258 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
2052 69258 : {
2053 69258 : tree res_op0;
2054 69258 : res_op0 = captures[0];
2055 69258 : tree res_op1;
2056 69258 : res_op1 = captures[2];
2057 69258 : tree _r;
2058 69258 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2059 69258 : if (TREE_SIDE_EFFECTS (captures[1]))
2060 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2061 69258 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
2062 : return _r;
2063 : }
2064 0 : next_after_fail693:;
2065 : }
2066 : return NULL_TREE;
2067 : }
2068 :
2069 : tree
2070 0 : generic_simplify_407 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2071 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2072 : const enum tree_code ARG_UNUSED (legt))
2073 : {
2074 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2075 0 : if (!HONOR_NANS (captures[0])
2076 : )
2077 : {
2078 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail700;
2079 0 : {
2080 0 : tree _r;
2081 0 : _r = constant_boolean_node (legt == LE_EXPR, type);
2082 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2083 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2084 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 586, __FILE__, __LINE__, true);
2087 : return _r;
2088 : }
2089 0 : next_after_fail700:;
2090 : }
2091 : return NULL_TREE;
2092 : }
2093 :
2094 : tree
2095 0 : generic_simplify_414 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2096 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2097 : const enum tree_code ARG_UNUSED (cmp1),
2098 : const enum tree_code ARG_UNUSED (cmp2),
2099 : const enum tree_code ARG_UNUSED (rel))
2100 : {
2101 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2102 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2103 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2104 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > 1
2105 : )
2106 : {
2107 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail707;
2108 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail707;
2109 0 : {
2110 0 : tree res_op0;
2111 0 : res_op0 = captures[1];
2112 0 : tree res_op1;
2113 0 : res_op1 = captures[2];
2114 0 : tree _r;
2115 0 : _r = fold_build2_loc (loc, rel, type, res_op0, res_op1);
2116 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 593, __FILE__, __LINE__, true);
2117 : return _r;
2118 : }
2119 0 : next_after_fail707:;
2120 : }
2121 : return NULL_TREE;
2122 : }
2123 :
2124 : tree
2125 0 : generic_simplify_424 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2126 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2127 : const enum tree_code ARG_UNUSED (cmp),
2128 : const enum tree_code ARG_UNUSED (out))
2129 : {
2130 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2131 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2132 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2133 : )
2134 : {
2135 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail749;
2136 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail749;
2137 0 : {
2138 0 : tree res_op0;
2139 0 : {
2140 0 : tree _o1[1], _r1;
2141 0 : _o1[0] = captures[0];
2142 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2143 0 : res_op0 = _r1;
2144 : }
2145 0 : tree res_op1;
2146 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2147 0 : tree _r;
2148 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2149 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 618, __FILE__, __LINE__, true);
2150 : return _r;
2151 : }
2152 0 : next_after_fail749:;
2153 : }
2154 : return NULL_TREE;
2155 : }
2156 :
2157 : tree
2158 738570 : generic_simplify_430 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2159 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2160 : const enum tree_code ARG_UNUSED (cmp),
2161 : const enum tree_code ARG_UNUSED (icmp))
2162 : {
2163 738570 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2164 1473818 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2165 738570 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2166 339386 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > 1
2167 1477140 : && (wi::to_wide (captures[2])
2168 1417342 : == wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[0])), SIGNED) - 1)
2169 : )
2170 : {
2171 4615 : {
2172 4615 : tree stype = signed_type_for (TREE_TYPE (captures[0]));
2173 4615 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail762;
2174 4615 : {
2175 4615 : tree res_op0;
2176 4615 : {
2177 4615 : tree _o1[1], _r1;
2178 4615 : _o1[0] = captures[0];
2179 4615 : if (TREE_TYPE (_o1[0]) != stype)
2180 : {
2181 4615 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
2182 : }
2183 : else
2184 : _r1 = _o1[0];
2185 4615 : res_op0 = _r1;
2186 : }
2187 4615 : tree res_op1;
2188 4615 : res_op1 = build_int_cst (stype, 0);
2189 4615 : tree _r;
2190 4615 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
2191 4615 : if (TREE_SIDE_EFFECTS (captures[1]))
2192 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2193 4615 : if (TREE_SIDE_EFFECTS (captures[2]))
2194 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2195 4615 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 631, __FILE__, __LINE__, true);
2196 : return _r;
2197 : }
2198 0 : next_after_fail762:;
2199 : }
2200 : }
2201 : return NULL_TREE;
2202 : }
2203 :
2204 : tree
2205 0 : generic_simplify_436 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2206 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2207 : const enum tree_code ARG_UNUSED (cmp),
2208 : const enum tree_code ARG_UNUSED (out))
2209 : {
2210 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2211 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2212 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2213 : )
2214 : {
2215 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail768;
2216 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail768;
2217 0 : {
2218 0 : tree res_op0;
2219 0 : {
2220 0 : tree _o1[1], _r1;
2221 0 : _o1[0] = captures[0];
2222 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2223 0 : res_op0 = _r1;
2224 : }
2225 0 : tree res_op1;
2226 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2227 0 : tree _r;
2228 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2229 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 618, __FILE__, __LINE__, true);
2230 : return _r;
2231 : }
2232 0 : next_after_fail768:;
2233 : }
2234 : return NULL_TREE;
2235 : }
2236 :
2237 : tree
2238 94 : generic_simplify_442 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2239 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2240 : {
2241 94 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2242 188 : if (INTEGRAL_TYPE_P (type)
2243 93 : && !TYPE_UNSIGNED (type)
2244 93 : && !TYPE_OVERFLOW_TRAPS (type)
2245 93 : && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
2246 281 : && (expr_not_equal_to (captures[0], wi::to_wide (TYPE_MIN_VALUE (type)))
2247 187 : || expr_not_equal_to (captures[2], wi::minus_one (TYPE_PRECISION
2248 : (TREE_TYPE (captures[2]))),
2249 : gimple_match_ctx (captures[1])))
2250 : )
2251 : {
2252 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail778;
2253 0 : {
2254 0 : tree res_op0;
2255 0 : res_op0 = captures[0];
2256 0 : tree res_op1;
2257 0 : {
2258 0 : tree _o1[1], _r1;
2259 0 : _o1[0] = captures[2];
2260 0 : if (TREE_TYPE (_o1[0]) != type)
2261 : {
2262 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2263 : }
2264 : else
2265 : _r1 = _o1[0];
2266 0 : res_op1 = _r1;
2267 : }
2268 0 : tree _r;
2269 0 : _r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
2270 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 643, __FILE__, __LINE__, true);
2271 : return _r;
2272 : }
2273 0 : next_after_fail778:;
2274 : }
2275 : return NULL_TREE;
2276 : }
2277 :
2278 : tree
2279 0 : generic_simplify_448 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2280 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2281 : const enum tree_code ARG_UNUSED (shiftrotate))
2282 : {
2283 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2284 0 : {
2285 0 : tree tem = uniform_vector_p (captures[1]);
2286 0 : if (tem
2287 : )
2288 : {
2289 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail784;
2290 0 : {
2291 0 : tree res_op0;
2292 0 : res_op0 = captures[0];
2293 0 : tree res_op1;
2294 0 : res_op1 = tem;
2295 0 : tree _r;
2296 0 : _r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
2297 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2298 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2299 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 649, __FILE__, __LINE__, true);
2300 : return _r;
2301 : }
2302 0 : next_after_fail784:;
2303 : }
2304 : }
2305 : return NULL_TREE;
2306 : }
2307 :
2308 : tree
2309 75 : generic_simplify_455 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2310 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2311 : {
2312 75 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2313 75 : if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
2314 : )
2315 : {
2316 75 : if (TYPE_UNSIGNED (type)
2317 : )
2318 : {
2319 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail795;
2320 2 : {
2321 2 : tree res_op0;
2322 2 : {
2323 2 : tree _o1[1], _r1;
2324 2 : _o1[0] = captures[0];
2325 2 : if (TREE_TYPE (_o1[0]) != type)
2326 : {
2327 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2328 : }
2329 : else
2330 : _r1 = _o1[0];
2331 2 : res_op0 = _r1;
2332 : }
2333 2 : tree res_op1;
2334 2 : {
2335 2 : tree _o1[2], _r1;
2336 2 : _o1[0] = build_minus_one_cst (type);
2337 2 : _o1[1] = captures[1];
2338 2 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2339 2 : res_op1 = _r1;
2340 : }
2341 2 : tree _r;
2342 2 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2343 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
2344 : return _r;
2345 : }
2346 0 : next_after_fail795:;
2347 : }
2348 : else
2349 : {
2350 73 : if (INTEGRAL_TYPE_P (type)
2351 : )
2352 : {
2353 73 : {
2354 73 : int width = element_precision (type) - tree_to_uhwi (captures[1]);
2355 73 : tree stype = NULL_TREE;
2356 146 : if (width <= MAX_FIXED_MODE_SIZE)
2357 73 : stype = build_nonstandard_integer_type (width, 0);
2358 73 : if (stype && (width == 1 || type_has_mode_precision_p (stype))
2359 : )
2360 : {
2361 25 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail796;
2362 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail796;
2363 25 : {
2364 25 : tree res_op0;
2365 25 : {
2366 25 : tree _o1[1], _r1;
2367 25 : _o1[0] = captures[0];
2368 25 : if (TREE_TYPE (_o1[0]) != stype)
2369 : {
2370 25 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
2371 : }
2372 : else
2373 : _r1 = _o1[0];
2374 25 : res_op0 = _r1;
2375 : }
2376 25 : tree _r;
2377 25 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2378 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 659, __FILE__, __LINE__, true);
2379 : return _r;
2380 : }
2381 75 : next_after_fail796:;
2382 : }
2383 : }
2384 : }
2385 : }
2386 : }
2387 : return NULL_TREE;
2388 : }
2389 :
2390 : tree
2391 9223980 : generic_simplify_462 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2392 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2393 : const enum tree_code ARG_UNUSED (op))
2394 : {
2395 9223980 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2396 9223980 : if (INTEGRAL_TYPE_P (type)
2397 8343890 : && op != MULT_EXPR
2398 8343890 : && op != RDIV_EXPR
2399 4191580 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2400 3772619 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2401 3772619 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2402 3718221 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2403 3718213 : && type_has_mode_precision_p (type)
2404 3709143 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2405 1205454 : && types_match (captures[2], type)
2406 9237198 : && (types_match (captures[2], captures[4])
2407 13218 : || poly_int_tree_p (captures[3]))
2408 : )
2409 : {
2410 10471 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2411 : )
2412 : {
2413 5980 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail811;
2414 5980 : {
2415 5980 : tree res_op0;
2416 5980 : res_op0 = captures[2];
2417 5980 : tree res_op1;
2418 5980 : {
2419 5980 : tree _o1[1], _r1;
2420 5980 : _o1[0] = captures[4];
2421 5980 : if (TREE_TYPE (_o1[0]) != type)
2422 : {
2423 5980 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2424 : }
2425 : else
2426 : _r1 = _o1[0];
2427 5980 : res_op1 = _r1;
2428 : }
2429 5980 : tree _r;
2430 5980 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2431 5980 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
2432 : return _r;
2433 : }
2434 0 : next_after_fail811:;
2435 : }
2436 : else
2437 : {
2438 4491 : {
2439 4491 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2440 4491 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail812;
2441 4491 : {
2442 4491 : tree res_op0;
2443 4491 : {
2444 4491 : tree _o1[2], _r1;
2445 4491 : {
2446 4491 : tree _o2[1], _r2;
2447 4491 : _o2[0] = captures[2];
2448 4491 : if (TREE_TYPE (_o2[0]) != utype)
2449 : {
2450 4491 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2451 : }
2452 : else
2453 : _r2 = _o2[0];
2454 4491 : _o1[0] = _r2;
2455 : }
2456 4491 : {
2457 4491 : tree _o2[1], _r2;
2458 4491 : _o2[0] = captures[4];
2459 4491 : if (TREE_TYPE (_o2[0]) != utype)
2460 : {
2461 4491 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2462 : }
2463 : else
2464 : _r2 = _o2[0];
2465 4491 : _o1[1] = _r2;
2466 : }
2467 4491 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2468 4491 : res_op0 = _r1;
2469 : }
2470 4491 : tree _r;
2471 4491 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2472 4491 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2473 : return _r;
2474 : }
2475 0 : next_after_fail812:;
2476 : }
2477 : }
2478 : }
2479 : else
2480 : {
2481 9178552 : if (FLOAT_TYPE_P (type)
2482 9248466 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2483 34957 : == DECIMAL_FLOAT_TYPE_P (type)
2484 : )
2485 : {
2486 34931 : {
2487 34931 : tree arg0 = strip_float_extensions (captures[2]);
2488 34931 : tree arg1 = strip_float_extensions (captures[4]);
2489 34931 : tree itype = TREE_TYPE (captures[0]);
2490 34931 : tree ty1 = TREE_TYPE (arg0);
2491 34931 : tree ty2 = TREE_TYPE (arg1);
2492 34931 : enum tree_code code = TREE_CODE (itype);
2493 0 : if (FLOAT_TYPE_P (ty1)
2494 34931 : && FLOAT_TYPE_P (ty2)
2495 : )
2496 : {
2497 34931 : {
2498 34931 : tree newtype = type;
2499 34931 : if (TYPE_MODE (ty1) == SDmode
2500 34669 : || TYPE_MODE (ty2) == SDmode
2501 69600 : || TYPE_MODE (type) == SDmode)
2502 262 : newtype = dfloat32_type_node;
2503 34931 : if (TYPE_MODE (ty1) == DDmode
2504 34799 : || TYPE_MODE (ty2) == DDmode
2505 69603 : || TYPE_MODE (type) == DDmode)
2506 259 : newtype = dfloat64_type_node;
2507 34931 : if (TYPE_MODE (ty1) == TDmode
2508 34931 : || TYPE_MODE (ty2) == TDmode
2509 69610 : || TYPE_MODE (type) == TDmode)
2510 267 : newtype = dfloat128_type_node;
2511 34931 : if ((newtype == dfloat32_type_node
2512 34931 : || newtype == dfloat64_type_node
2513 34804 : || newtype == dfloat128_type_node)
2514 394 : && newtype == type
2515 34937 : && types_match (newtype, type)
2516 : )
2517 : {
2518 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail813;
2519 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail813;
2520 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail813;
2521 0 : {
2522 0 : tree res_op0;
2523 0 : {
2524 0 : tree _o1[1], _r1;
2525 0 : _o1[0] = captures[2];
2526 0 : if (TREE_TYPE (_o1[0]) != newtype)
2527 : {
2528 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2529 : }
2530 : else
2531 : _r1 = _o1[0];
2532 0 : res_op0 = _r1;
2533 : }
2534 0 : tree res_op1;
2535 0 : {
2536 0 : tree _o1[1], _r1;
2537 0 : _o1[0] = captures[4];
2538 0 : if (TREE_TYPE (_o1[0]) != newtype)
2539 : {
2540 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2541 : }
2542 : else
2543 : _r1 = _o1[0];
2544 0 : res_op1 = _r1;
2545 : }
2546 0 : tree _r;
2547 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2548 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2549 : return _r;
2550 : }
2551 9223980 : next_after_fail813:;
2552 : }
2553 : else
2554 : {
2555 34925 : {
2556 34925 : if (element_precision (ty1) > element_precision (newtype))
2557 15 : newtype = ty1;
2558 34925 : if (element_precision (ty2) > element_precision (newtype))
2559 4664 : newtype = ty2;
2560 34925 : if (element_precision (newtype) < element_precision (itype)
2561 17471 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2562 0 : || target_supports_op_p (newtype, op, optab_default))
2563 17471 : && (flag_unsafe_math_optimizations
2564 17446 : || (element_precision (newtype) == element_precision (type)
2565 17422 : && real_can_shorten_arithmetic (element_mode (itype),
2566 : element_mode (type))
2567 7727 : && !excess_precision_type (newtype)))
2568 38202 : && !types_match (itype, newtype)
2569 : )
2570 : {
2571 3277 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail814;
2572 3276 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail814;
2573 3268 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail814;
2574 3268 : {
2575 3268 : tree res_op0;
2576 3268 : {
2577 3268 : tree _o1[2], _r1;
2578 3268 : {
2579 3268 : tree _o2[1], _r2;
2580 3268 : _o2[0] = captures[2];
2581 3268 : if (TREE_TYPE (_o2[0]) != newtype)
2582 : {
2583 3 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2584 : }
2585 : else
2586 : _r2 = _o2[0];
2587 3268 : _o1[0] = _r2;
2588 : }
2589 3268 : {
2590 3268 : tree _o2[1], _r2;
2591 3268 : _o2[0] = captures[4];
2592 3268 : if (TREE_TYPE (_o2[0]) != newtype)
2593 : {
2594 3268 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2595 : }
2596 : else
2597 : _r2 = _o2[0];
2598 3268 : _o1[1] = _r2;
2599 : }
2600 3268 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2601 3268 : res_op0 = _r1;
2602 : }
2603 3268 : tree _r;
2604 3268 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2605 3268 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2606 : return _r;
2607 : }
2608 9223980 : next_after_fail814:;
2609 : }
2610 : }
2611 : }
2612 : }
2613 : }
2614 : }
2615 : }
2616 : }
2617 : return NULL_TREE;
2618 : }
2619 :
2620 : tree
2621 2 : generic_simplify_493 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2622 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2623 : {
2624 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2625 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail851;
2626 2 : {
2627 2 : tree res_op0;
2628 2 : {
2629 2 : tree _o1[2], _r1;
2630 2 : _o1[0] = captures[1];
2631 2 : _o1[1] = captures[2];
2632 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2633 2 : res_op0 = _r1;
2634 : }
2635 2 : tree _r;
2636 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2637 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 701, __FILE__, __LINE__, true);
2638 : return _r;
2639 : }
2640 0 : next_after_fail851:;
2641 0 : return NULL_TREE;
2642 : }
2643 :
2644 : tree
2645 0 : generic_simplify_501 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2646 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2647 : const enum tree_code ARG_UNUSED (code2),
2648 : const enum tree_code ARG_UNUSED (code1))
2649 : {
2650 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2651 0 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2652 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2653 0 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2654 0 : || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))
2655 0 : || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[2])))
2656 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2657 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2658 0 : && bitwise_equal_p (captures[2], captures[5]))
2659 : )
2660 : {
2661 0 : {
2662 0 : bool one_before = false;
2663 0 : bool one_after = false;
2664 0 : int cmp = 0;
2665 0 : bool allbits = true;
2666 0 : if (TREE_CODE (captures[2]) == INTEGER_CST
2667 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2668 : {
2669 0 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2670 0 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2671 0 : auto t2 = wi::to_wide (captures[5]);
2672 0 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2673 0 : if (cmp < 0
2674 0 : && t1 == t2 - 1)
2675 : one_before = true;
2676 0 : if (cmp > 0
2677 0 : && t1 == t2 + 1)
2678 : one_after = true;
2679 : }
2680 0 : bool val;
2681 0 : switch (code2)
2682 : {
2683 0 : case EQ_EXPR: val = (cmp == 0); break;
2684 0 : case NE_EXPR: val = (cmp != 0); break;
2685 0 : case LT_EXPR: val = (cmp < 0); break;
2686 0 : case GT_EXPR: val = (cmp > 0); break;
2687 0 : case LE_EXPR: val = (cmp <= 0); break;
2688 0 : case GE_EXPR: val = (cmp >= 0); break;
2689 0 : default: gcc_unreachable ();
2690 : }
2691 0 : if (code1 == EQ_EXPR && val
2692 : )
2693 : {
2694 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail861;
2695 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail861;
2696 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail861;
2697 0 : {
2698 0 : tree _r;
2699 0 : _r = captures[0];
2700 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
2701 : return _r;
2702 : }
2703 0 : next_after_fail861:;
2704 : }
2705 : else
2706 : {
2707 0 : if (code1 == EQ_EXPR && !val
2708 : )
2709 : {
2710 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail862;
2711 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail862;
2712 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail862;
2713 0 : {
2714 0 : tree _r;
2715 0 : _r = constant_boolean_node (false, type);
2716 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2717 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2718 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
2719 : return _r;
2720 : }
2721 0 : next_after_fail862:;
2722 : }
2723 : else
2724 : {
2725 0 : if (code1 == NE_EXPR && !val && allbits
2726 : )
2727 : {
2728 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail863;
2729 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail863;
2730 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail863;
2731 0 : {
2732 0 : tree _r;
2733 0 : _r = captures[3];
2734 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
2735 : return _r;
2736 : }
2737 0 : next_after_fail863:;
2738 : }
2739 : else
2740 : {
2741 0 : if ((code1 == NE_EXPR
2742 0 : && code2 == GE_EXPR
2743 0 : && cmp == 0
2744 0 : && allbits)
2745 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2746 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2747 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2748 : )
2749 : {
2750 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail864;
2751 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail864;
2752 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail864;
2753 0 : {
2754 0 : tree res_op0;
2755 0 : res_op0 = captures[4];
2756 0 : tree res_op1;
2757 0 : {
2758 0 : tree _o1[1], _r1;
2759 0 : _o1[0] = captures[2];
2760 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2761 : {
2762 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2763 : }
2764 : else
2765 : _r1 = _o1[0];
2766 0 : res_op1 = _r1;
2767 : }
2768 0 : tree _r;
2769 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 713, __FILE__, __LINE__, true);
2771 : return _r;
2772 : }
2773 0 : next_after_fail864:;
2774 : }
2775 : else
2776 : {
2777 0 : if ((code1 == NE_EXPR
2778 0 : && code2 == LE_EXPR
2779 0 : && cmp == 0
2780 0 : && allbits)
2781 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2782 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2783 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2784 : )
2785 : {
2786 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail865;
2787 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail865;
2788 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail865;
2789 0 : {
2790 0 : tree res_op0;
2791 0 : res_op0 = captures[4];
2792 0 : tree res_op1;
2793 0 : {
2794 0 : tree _o1[1], _r1;
2795 0 : _o1[0] = captures[2];
2796 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2797 : {
2798 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2799 : }
2800 : else
2801 : _r1 = _o1[0];
2802 0 : res_op1 = _r1;
2803 : }
2804 0 : tree _r;
2805 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2806 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 714, __FILE__, __LINE__, true);
2807 : return _r;
2808 : }
2809 0 : next_after_fail865:;
2810 : }
2811 : else
2812 : {
2813 0 : if ((code1 == NE_EXPR
2814 0 : && code2 == GT_EXPR
2815 : && one_after
2816 0 : && allbits)
2817 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2818 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2819 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2820 : )
2821 : {
2822 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail866;
2823 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail866;
2824 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail866;
2825 0 : {
2826 0 : tree res_op0;
2827 0 : res_op0 = captures[4];
2828 0 : tree res_op1;
2829 0 : {
2830 0 : tree _o1[1], _r1;
2831 0 : _o1[0] = captures[2];
2832 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2833 : {
2834 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2835 : }
2836 : else
2837 : _r1 = _o1[0];
2838 0 : res_op1 = _r1;
2839 : }
2840 0 : tree _r;
2841 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2842 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 715, __FILE__, __LINE__, true);
2843 : return _r;
2844 : }
2845 0 : next_after_fail866:;
2846 : }
2847 : else
2848 : {
2849 0 : if ((code1 == NE_EXPR
2850 0 : && code2 == LT_EXPR
2851 : && one_before
2852 0 : && allbits)
2853 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2854 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2855 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2856 : )
2857 : {
2858 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail867;
2859 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail867;
2860 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail867;
2861 0 : {
2862 0 : tree res_op0;
2863 0 : res_op0 = captures[4];
2864 0 : tree res_op1;
2865 0 : {
2866 0 : tree _o1[1], _r1;
2867 0 : _o1[0] = captures[2];
2868 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2869 : {
2870 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2871 : }
2872 : else
2873 : _r1 = _o1[0];
2874 0 : res_op1 = _r1;
2875 : }
2876 0 : tree _r;
2877 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2878 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
2879 : return _r;
2880 : }
2881 0 : next_after_fail867:;
2882 : }
2883 : }
2884 : }
2885 : }
2886 : }
2887 : }
2888 : }
2889 : }
2890 : }
2891 : return NULL_TREE;
2892 : }
2893 :
2894 : tree
2895 31 : generic_simplify_529 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2896 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2897 : {
2898 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2899 31 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2900 54 : && (element_precision (TREE_TYPE (captures[2]))
2901 23 : <= element_precision (TREE_TYPE (captures[3]))
2902 1 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2903 : )
2904 : {
2905 22 : {
2906 22 : tree shift_type = TREE_TYPE (captures[2]);
2907 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail931;
2908 22 : {
2909 22 : tree res_op0;
2910 22 : {
2911 22 : tree _o1[2], _r1;
2912 22 : {
2913 22 : tree _o2[1], _r2;
2914 22 : _o2[0] = captures[3];
2915 22 : if (TREE_TYPE (_o2[0]) != shift_type)
2916 : {
2917 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
2918 : }
2919 : else
2920 : _r2 = _o2[0];
2921 22 : _o1[0] = _r2;
2922 : }
2923 22 : _o1[1] = captures[4];
2924 22 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2925 22 : res_op0 = _r1;
2926 : }
2927 22 : tree _r;
2928 22 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2929 22 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
2930 : return _r;
2931 : }
2932 0 : next_after_fail931:;
2933 : }
2934 : }
2935 : return NULL_TREE;
2936 : }
2937 :
2938 : tree
2939 147 : generic_simplify_540 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2940 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2941 : {
2942 147 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2943 147 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail943;
2944 147 : {
2945 147 : tree res_op0;
2946 147 : {
2947 147 : tree _o1[1], _r1;
2948 147 : _o1[0] = captures[0];
2949 147 : if (TREE_TYPE (_o1[0]) != type)
2950 : {
2951 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
2952 : }
2953 : else
2954 : _r1 = _o1[0];
2955 147 : res_op0 = _r1;
2956 : }
2957 147 : tree res_op1;
2958 147 : res_op1 = build_each_one_cst (type);
2959 147 : tree _r;
2960 147 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
2961 147 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 753, __FILE__, __LINE__, true);
2962 : return _r;
2963 : }
2964 0 : next_after_fail943:;
2965 0 : return NULL_TREE;
2966 : }
2967 :
2968 : tree
2969 0 : generic_simplify_548 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2970 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2971 : const enum tree_code ARG_UNUSED (minmax),
2972 : const enum tree_code ARG_UNUSED (maxmin))
2973 : {
2974 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2975 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail952;
2976 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail952;
2977 0 : {
2978 0 : tree _r;
2979 0 : _r = captures[0];
2980 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 761, __FILE__, __LINE__, true);
2981 : return _r;
2982 : }
2983 0 : next_after_fail952:;
2984 : return NULL_TREE;
2985 : }
2986 :
2987 : tree
2988 47 : generic_simplify_557 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2989 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2990 : const enum tree_code ARG_UNUSED (minmax),
2991 : const enum tree_code ARG_UNUSED (cmp))
2992 : {
2993 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2994 47 : {
2995 47 : poly_int64 off0, off1;
2996 47 : tree base0, base1;
2997 47 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2998 : off0, off1,
2999 : 1
3000 : );
3001 47 : if (equal == 1
3002 : )
3003 : {
3004 0 : if (minmax == MIN_EXPR
3005 : )
3006 : {
3007 0 : if (known_le (off0, off1)
3008 : )
3009 : {
3010 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail963;
3011 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail963;
3012 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail963;
3013 0 : {
3014 0 : tree _r;
3015 0 : _r = captures[0];
3016 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3017 0 : return _r;
3018 : }
3019 47 : next_after_fail963:;
3020 : }
3021 : else
3022 : {
3023 0 : if (known_gt (off0, off1)
3024 : )
3025 : {
3026 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail964;
3027 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail964;
3028 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail964;
3029 0 : {
3030 0 : tree _r;
3031 0 : _r = captures[2];
3032 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 773, __FILE__, __LINE__, true);
3033 : return _r;
3034 : }
3035 47 : next_after_fail964:;
3036 : }
3037 : }
3038 : }
3039 : else
3040 : {
3041 0 : if (known_ge (off0, off1)
3042 : )
3043 : {
3044 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail965;
3045 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail965;
3046 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail965;
3047 0 : {
3048 0 : tree _r;
3049 0 : _r = captures[0];
3050 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 774, __FILE__, __LINE__, true);
3051 : return _r;
3052 : }
3053 47 : next_after_fail965:;
3054 : }
3055 : else
3056 : {
3057 0 : if (known_lt (off0, off1)
3058 : )
3059 : {
3060 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail966;
3061 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail966;
3062 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail966;
3063 0 : {
3064 0 : tree _r;
3065 0 : _r = captures[2];
3066 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 775, __FILE__, __LINE__, true);
3067 : return _r;
3068 : }
3069 47 : next_after_fail966:;
3070 : }
3071 : }
3072 : }
3073 : }
3074 : }
3075 47 : return NULL_TREE;
3076 : }
3077 :
3078 : tree
3079 0 : generic_simplify_574 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3080 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3081 : const combined_fn ARG_UNUSED (cond_op))
3082 : {
3083 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3084 0 : {
3085 0 : tree op_type = TREE_TYPE (captures[3]);
3086 0 : if (element_precision (type) == element_precision (op_type)
3087 : )
3088 : {
3089 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail992;
3090 0 : {
3091 0 : tree res_op0;
3092 0 : {
3093 0 : tree _o1[4], _r1;
3094 0 : _o1[0] = captures[0];
3095 0 : _o1[1] = captures[1];
3096 0 : _o1[2] = captures[2];
3097 0 : {
3098 0 : tree _o2[1], _r2;
3099 0 : _o2[0] = captures[4];
3100 0 : if (TREE_TYPE (_o2[0]) != op_type)
3101 : {
3102 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
3103 : }
3104 : else
3105 : _r2 = _o2[0];
3106 0 : _o1[3] = _r2;
3107 : }
3108 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
3109 0 : if (!_r1)
3110 0 : goto next_after_fail992;
3111 0 : res_op0 = _r1;
3112 : }
3113 0 : tree _r;
3114 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3115 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3116 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 785, __FILE__, __LINE__, true);
3118 : return _r;
3119 : }
3120 0 : next_after_fail992:;
3121 : }
3122 : }
3123 : return NULL_TREE;
3124 : }
3125 :
3126 : tree
3127 0 : generic_simplify_584 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3128 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3129 : const enum tree_code ARG_UNUSED (rotate))
3130 : {
3131 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3132 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1002;
3133 0 : {
3134 0 : tree _r;
3135 0 : _r = captures[0];
3136 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3137 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3138 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
3139 : return _r;
3140 : }
3141 0 : next_after_fail1002:;
3142 0 : return NULL_TREE;
3143 : }
3144 :
3145 : tree
3146 60 : generic_simplify_593 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3147 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3148 : const enum tree_code ARG_UNUSED (cmp))
3149 : {
3150 60 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3151 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1014;
3152 60 : {
3153 60 : tree _r;
3154 60 : _r = constant_boolean_node (true, type);
3155 60 : if (TREE_SIDE_EFFECTS (captures[0]))
3156 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3157 60 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
3158 : return _r;
3159 : }
3160 0 : next_after_fail1014:;
3161 0 : return NULL_TREE;
3162 : }
3163 :
3164 : tree
3165 0 : generic_simplify_600 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3166 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3167 : const combined_fn ARG_UNUSED (sins),
3168 : const combined_fn ARG_UNUSED (atans),
3169 : const combined_fn ARG_UNUSED (sqrts),
3170 : const combined_fn ARG_UNUSED (copysigns))
3171 : {
3172 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3173 0 : {
3174 0 : REAL_VALUE_TYPE r_cst;
3175 0 : build_sinatan_real (&r_cst, type);
3176 0 : tree t_cst = build_real (type, r_cst);
3177 0 : tree t_one = build_one_cst (type);
3178 0 : if (SCALAR_FLOAT_TYPE_P (type)
3179 : )
3180 : {
3181 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1021;
3182 0 : {
3183 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail1021;
3184 0 : tree res_op0;
3185 0 : {
3186 0 : tree _o1[2], _r1;
3187 0 : {
3188 0 : tree _o2[1], _r2;
3189 0 : _o2[0] = unshare_expr (captures[1]);
3190 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3191 0 : _o1[0] = _r2;
3192 : }
3193 0 : _o1[1] = t_cst;
3194 0 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3195 0 : res_op0 = _r1;
3196 : }
3197 0 : tree res_op1;
3198 0 : {
3199 0 : tree _o1[2], _r1;
3200 0 : _o1[0] = unshare_expr (captures[1]);
3201 0 : {
3202 0 : tree _o2[1], _r2;
3203 0 : {
3204 0 : tree _o3[2], _r3;
3205 0 : {
3206 0 : tree _o4[2], _r4;
3207 0 : _o4[0] = unshare_expr (captures[1]);
3208 0 : _o4[1] = unshare_expr (captures[1]);
3209 0 : _r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
3210 0 : _o3[0] = _r4;
3211 : }
3212 0 : _o3[1] = t_one;
3213 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3214 0 : _o2[0] = _r3;
3215 : }
3216 0 : _r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
3217 0 : if (!_r2)
3218 0 : goto next_after_fail1021;
3219 0 : _o1[1] = _r2;
3220 : }
3221 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3222 0 : res_op1 = _r1;
3223 : }
3224 0 : tree res_op2;
3225 0 : {
3226 0 : tree _o1[2], _r1;
3227 0 : _o1[0] = t_one;
3228 0 : _o1[1] = captures[1];
3229 0 : _r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
3230 0 : if (!_r1)
3231 0 : goto next_after_fail1021;
3232 0 : res_op2 = _r1;
3233 : }
3234 0 : tree _r;
3235 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
3236 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 814, __FILE__, __LINE__, true);
3237 0 : return _r;
3238 : }
3239 0 : next_after_fail1021:;
3240 : }
3241 : }
3242 0 : return NULL_TREE;
3243 : }
3244 :
3245 : tree
3246 0 : generic_simplify_623 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3247 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3248 : {
3249 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3250 0 : if (canonicalize_math_after_vectorization_p ()
3251 : )
3252 : {
3253 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1044;
3254 : {
3255 : tree res_op0;
3256 : res_op0 = captures[0];
3257 : tree res_op1;
3258 : res_op1 = captures[1];
3259 : tree res_op2;
3260 : res_op2 = captures[2];
3261 : tree _r;
3262 : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3263 : if (!_r)
3264 : goto next_after_fail1044;
3265 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
3266 : return _r;
3267 : }
3268 0 : next_after_fail1044:;
3269 : }
3270 0 : return NULL_TREE;
3271 : }
3272 :
3273 : tree
3274 0 : generic_simplify_632 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3275 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3276 : {
3277 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3278 0 : if (canonicalize_math_after_vectorization_p ()
3279 : )
3280 : {
3281 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1053;
3282 : {
3283 : tree res_op0;
3284 : res_op0 = captures[0];
3285 : tree res_op1;
3286 : res_op1 = captures[1];
3287 : tree res_op2;
3288 : res_op2 = captures[2];
3289 : tree res_op3;
3290 : res_op3 = captures[3];
3291 : tree res_op4;
3292 : res_op4 = captures[4];
3293 : tree _r;
3294 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3295 : if (!_r)
3296 : goto next_after_fail1053;
3297 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
3298 : return _r;
3299 : }
3300 0 : next_after_fail1053:;
3301 : }
3302 0 : return NULL_TREE;
3303 : }
3304 :
3305 : tree
3306 0 : generic_simplify_641 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3307 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3308 : const enum tree_code ARG_UNUSED (rot),
3309 : const combined_fn ARG_UNUSED (popcount))
3310 : {
3311 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3312 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3313 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3314 0 : && (
3315 :
3316 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3317 : )
3318 : {
3319 0 : {
3320 0 : tree type0 = TREE_TYPE (captures[0]);
3321 0 : tree type1 = TREE_TYPE (captures[1]);
3322 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3323 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3324 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3325 : )
3326 : {
3327 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1062;
3328 0 : {
3329 0 : tree res_op0;
3330 0 : {
3331 0 : tree _o1[1], _r1;
3332 0 : _o1[0] = captures[2];
3333 0 : if (TREE_TYPE (_o1[0]) != type0)
3334 : {
3335 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3336 : }
3337 : else
3338 : _r1 = _o1[0];
3339 0 : res_op0 = _r1;
3340 : }
3341 0 : tree _r;
3342 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3343 0 : if (!_r)
3344 0 : goto next_after_fail1062;
3345 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3346 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3347 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 852, __FILE__, __LINE__, true);
3348 : return _r;
3349 : }
3350 0 : next_after_fail1062:;
3351 : }
3352 : }
3353 : }
3354 : return NULL_TREE;
3355 : }
3356 :
3357 : tree
3358 0 : generic_simplify_653 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3359 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3360 : const enum tree_code ARG_UNUSED (plusminus),
3361 : const enum tree_code ARG_UNUSED (minusplus))
3362 : {
3363 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3364 0 : if (!VECTOR_INTEGER_TYPE_P (type)
3365 : && !FLOAT_WORDS_BIG_ENDIAN
3366 0 : && (operand_equal_p (captures[0], captures[2], 0)
3367 0 : ? operand_equal_p (captures[1], captures[3], 0)
3368 0 : : operand_equal_p (captures[0], captures[3], 0) && operand_equal_p (captures[1], captures[2], 0))
3369 : )
3370 : {
3371 0 : {
3372 0 : vec_perm_builder builder;
3373 0 : if (tree_to_vec_perm_builder (&builder, captures[4])
3374 : )
3375 : {
3376 0 : {
3377 0 : poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
3378 0 : vec_perm_indices sel (builder, 2, nelts);
3379 0 : machine_mode vec_mode = TYPE_MODE (type);
3380 0 : machine_mode wide_mode;
3381 0 : scalar_mode wide_elt_mode;
3382 0 : poly_uint64 wide_nunits;
3383 0 : scalar_mode inner_mode = GET_MODE_INNER (vec_mode);
3384 0 : if (VECTOR_MODE_P (vec_mode)
3385 0 : && sel.series_p (0, 2, 0, 2)
3386 0 : && sel.series_p (1, 2, nelts + 1, 2)
3387 0 : && GET_MODE_2XWIDER_MODE (inner_mode).exists (&wide_elt_mode)
3388 0 : && multiple_p (GET_MODE_NUNITS (vec_mode), 2, &wide_nunits)
3389 0 : && related_vector_mode (vec_mode, wide_elt_mode,
3390 0 : wide_nunits).exists (&wide_mode)
3391 : )
3392 : {
3393 0 : {
3394 0 : tree stype
3395 0 : = lang_hooks.types.type_for_mode (GET_MODE_INNER (wide_mode),
3396 0 : TYPE_UNSIGNED (type));
3397 0 : tree ntype = build_vector_type_for_mode (stype, wide_mode);
3398 0 : const struct real_format *fmt_old = FLOAT_MODE_FORMAT (vec_mode);
3399 0 : const struct real_format *fmt_new = FLOAT_MODE_FORMAT (wide_mode);
3400 0 : if (TYPE_MODE (stype) != BLKmode
3401 0 : && VECTOR_TYPE_P (ntype)
3402 0 : && fmt_old != NULL
3403 0 : && fmt_new != NULL
3404 : )
3405 : {
3406 0 : {
3407 0 : if (known_eq (GET_MODE_NUNITS (wide_mode), 1)
3408 0 : && !target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
3409 : ntype = stype;
3410 0 : if (fmt_new->signbit_rw
3411 0 : == fmt_old->signbit_rw + GET_MODE_UNIT_BITSIZE (vec_mode)
3412 0 : && fmt_new->signbit_rw == fmt_new->signbit_ro
3413 0 : && targetm.can_change_mode_class (TYPE_MODE (ntype),
3414 0 : TYPE_MODE (type), ALL_REGS)
3415 0 : && ((optimize_vectors_before_lowering_p ()
3416 0 : && VECTOR_TYPE_P (ntype))
3417 0 : || target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
3418 : )
3419 : {
3420 0 : if (plusminus == PLUS_EXPR
3421 : )
3422 : {
3423 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1076;
3424 0 : {
3425 0 : tree res_op0;
3426 0 : {
3427 0 : tree _o1[1], _r1;
3428 0 : {
3429 0 : tree _o2[1], _r2;
3430 0 : {
3431 0 : tree _o3[1], _r3;
3432 0 : _o3[0] = captures[3];
3433 0 : if (TREE_TYPE (_o3[0]) != ntype)
3434 : {
3435 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
3436 : }
3437 : else
3438 : _r3 = _o3[0];
3439 0 : _o2[0] = _r3;
3440 : }
3441 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3442 0 : _o1[0] = _r2;
3443 : }
3444 0 : if (TREE_TYPE (_o1[0]) != type)
3445 : {
3446 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3447 : }
3448 : else
3449 : _r1 = _o1[0];
3450 0 : res_op0 = _r1;
3451 : }
3452 0 : tree res_op1;
3453 0 : res_op1 = captures[2];
3454 0 : tree _r;
3455 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3456 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3457 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3458 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3459 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3460 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3461 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3462 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3463 : return _r;
3464 : }
3465 0 : next_after_fail1076:;
3466 : }
3467 : else
3468 : {
3469 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1077;
3470 0 : {
3471 0 : tree res_op0;
3472 0 : res_op0 = captures[0];
3473 0 : tree res_op1;
3474 0 : {
3475 0 : tree _o1[1], _r1;
3476 0 : {
3477 0 : tree _o2[1], _r2;
3478 0 : {
3479 0 : tree _o3[1], _r3;
3480 0 : _o3[0] = captures[1];
3481 0 : if (TREE_TYPE (_o3[0]) != ntype)
3482 : {
3483 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
3484 : }
3485 : else
3486 : _r3 = _o3[0];
3487 0 : _o2[0] = _r3;
3488 : }
3489 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3490 0 : _o1[0] = _r2;
3491 : }
3492 0 : if (TREE_TYPE (_o1[0]) != type)
3493 : {
3494 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3495 : }
3496 : else
3497 : _r1 = _o1[0];
3498 0 : res_op1 = _r1;
3499 : }
3500 0 : tree _r;
3501 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3502 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3503 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3504 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3505 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3506 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3507 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3508 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3509 : return _r;
3510 : }
3511 0 : next_after_fail1077:;
3512 : }
3513 : }
3514 : }
3515 : }
3516 : }
3517 : }
3518 0 : }
3519 : }
3520 0 : }
3521 : }
3522 : return NULL_TREE;
3523 : }
3524 :
3525 : tree
3526 1330 : generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3527 : {
3528 1330 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3529 1330 : switch (TREE_CODE (_p0))
3530 : {
3531 0 : CASE_CONVERT:
3532 0 : {
3533 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3534 0 : switch (TREE_CODE (_q20))
3535 : {
3536 0 : case CONJ_EXPR:
3537 0 : {
3538 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3539 0 : {
3540 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3541 0 : tree res = generic_simplify_587 (loc, type, _p0, captures);
3542 0 : if (res) return res;
3543 : }
3544 0 : break;
3545 : }
3546 0 : case COMPLEX_EXPR:
3547 0 : {
3548 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3549 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3550 0 : {
3551 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3552 0 : {
3553 0 : tree itype = TREE_TYPE (type);
3554 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
3555 0 : {
3556 0 : tree res_op0;
3557 0 : {
3558 0 : tree _o1[1], _r1;
3559 0 : _o1[0] = captures[2];
3560 0 : if (TREE_TYPE (_o1[0]) != itype)
3561 : {
3562 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
3563 : }
3564 : else
3565 : _r1 = _o1[0];
3566 0 : res_op0 = _r1;
3567 : }
3568 0 : tree res_op1;
3569 0 : {
3570 0 : tree _o1[1], _r1;
3571 0 : {
3572 0 : tree _o2[1], _r2;
3573 0 : _o2[0] = captures[3];
3574 0 : if (TREE_TYPE (_o2[0]) != itype)
3575 : {
3576 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
3577 : }
3578 : else
3579 : _r2 = _o2[0];
3580 0 : _o1[0] = _r2;
3581 : }
3582 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3583 0 : res_op1 = _r1;
3584 : }
3585 0 : tree _r;
3586 0 : _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
3587 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
3588 : return _r;
3589 : }
3590 0 : next_after_fail1200:;
3591 : }
3592 : }
3593 0 : break;
3594 : }
3595 : default:;
3596 : }
3597 : break;
3598 : }
3599 1 : case CONJ_EXPR:
3600 1 : {
3601 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3602 1 : {
3603 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3604 1 : tree res = generic_simplify_587 (loc, type, _p0, captures);
3605 1 : if (res) return res;
3606 : }
3607 0 : break;
3608 : }
3609 12 : case COMPLEX_EXPR:
3610 12 : {
3611 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3612 12 : tree _q21 = TREE_OPERAND (_p0, 1);
3613 12 : {
3614 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3615 12 : {
3616 12 : tree itype = TREE_TYPE (type);
3617 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
3618 12 : {
3619 12 : tree res_op0;
3620 12 : {
3621 12 : tree _o1[1], _r1;
3622 12 : _o1[0] = captures[2];
3623 12 : if (TREE_TYPE (_o1[0]) != itype)
3624 : {
3625 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
3626 : }
3627 : else
3628 : _r1 = _o1[0];
3629 12 : res_op0 = _r1;
3630 : }
3631 12 : tree res_op1;
3632 12 : {
3633 12 : tree _o1[1], _r1;
3634 12 : {
3635 12 : tree _o2[1], _r2;
3636 12 : _o2[0] = captures[3];
3637 12 : if (TREE_TYPE (_o2[0]) != itype)
3638 : {
3639 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
3640 : }
3641 : else
3642 : _r2 = _o2[0];
3643 12 : _o1[0] = _r2;
3644 : }
3645 12 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3646 12 : res_op1 = _r1;
3647 : }
3648 12 : tree _r;
3649 12 : _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
3650 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
3651 : return _r;
3652 : }
3653 0 : next_after_fail1201:;
3654 : }
3655 : }
3656 0 : break;
3657 : }
3658 : default:;
3659 : }
3660 : return NULL_TREE;
3661 : }
3662 :
3663 : tree
3664 99376822 : generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3665 : {
3666 99376822 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3667 99376822 : switch (TREE_CODE (_p0))
3668 : {
3669 1541 : case BIT_XOR_EXPR:
3670 1541 : {
3671 1541 : tree _q20 = TREE_OPERAND (_p0, 0);
3672 1541 : tree _q21 = TREE_OPERAND (_p0, 1);
3673 1541 : switch (TREE_CODE (_q21))
3674 : {
3675 8 : case NEGATE_EXPR:
3676 8 : {
3677 8 : tree _q40 = TREE_OPERAND (_q21, 0);
3678 8 : switch (TREE_CODE (_q40))
3679 : {
3680 0 : CASE_CONVERT:
3681 0 : {
3682 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3683 0 : switch (TREE_CODE (_q50))
3684 : {
3685 0 : case LT_EXPR:
3686 0 : {
3687 0 : tree _q60 = TREE_OPERAND (_q50, 0);
3688 0 : tree _q61 = TREE_OPERAND (_q50, 1);
3689 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3690 : {
3691 0 : if (integer_zerop (_q61))
3692 : {
3693 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
3694 : {
3695 0 : {
3696 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
3697 0 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
3698 0 : if (res) return res;
3699 : }
3700 : }
3701 : }
3702 : }
3703 : break;
3704 : }
3705 : default:;
3706 : }
3707 : break;
3708 : }
3709 : default:;
3710 : }
3711 : break;
3712 : }
3713 1541 : default:;
3714 : }
3715 1541 : switch (TREE_CODE (_q20))
3716 : {
3717 10 : case NEGATE_EXPR:
3718 10 : {
3719 10 : tree _q30 = TREE_OPERAND (_q20, 0);
3720 10 : switch (TREE_CODE (_q30))
3721 : {
3722 0 : CASE_CONVERT:
3723 0 : {
3724 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3725 0 : switch (TREE_CODE (_q40))
3726 : {
3727 0 : case LT_EXPR:
3728 0 : {
3729 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3730 0 : tree _q51 = TREE_OPERAND (_q40, 1);
3731 0 : if (integer_zerop (_q51))
3732 : {
3733 0 : if ((_q21 == _q50 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q50, 0) && types_match (_q21, _q50)))
3734 : {
3735 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
3736 : {
3737 0 : {
3738 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
3739 0 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
3740 0 : if (res) return res;
3741 : }
3742 : }
3743 : }
3744 : }
3745 : break;
3746 : }
3747 : default:;
3748 : }
3749 : break;
3750 : }
3751 : default:;
3752 : }
3753 : break;
3754 : }
3755 : default:;
3756 : }
3757 : break;
3758 : }
3759 99376822 : default:;
3760 : }
3761 99376822 : switch (TREE_CODE (_p1))
3762 : {
3763 165 : case BIT_XOR_EXPR:
3764 165 : {
3765 165 : tree _q30 = TREE_OPERAND (_p1, 0);
3766 165 : tree _q31 = TREE_OPERAND (_p1, 1);
3767 165 : switch (TREE_CODE (_q31))
3768 : {
3769 0 : case NEGATE_EXPR:
3770 0 : {
3771 0 : tree _q50 = TREE_OPERAND (_q31, 0);
3772 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
3773 : {
3774 0 : switch (TREE_CODE (_q50))
3775 : {
3776 0 : CASE_CONVERT:
3777 0 : {
3778 0 : tree _q70 = TREE_OPERAND (_q50, 0);
3779 0 : switch (TREE_CODE (_q70))
3780 : {
3781 0 : case LT_EXPR:
3782 0 : {
3783 0 : tree _q80 = TREE_OPERAND (_q70, 0);
3784 0 : tree _q81 = TREE_OPERAND (_q70, 1);
3785 0 : if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
3786 : {
3787 0 : if (integer_zerop (_q81))
3788 : {
3789 0 : {
3790 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
3791 0 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
3792 0 : if (res) return res;
3793 : }
3794 : }
3795 : }
3796 : break;
3797 : }
3798 : default:;
3799 : }
3800 : break;
3801 : }
3802 : default:;
3803 : }
3804 : }
3805 : break;
3806 : }
3807 165 : default:;
3808 : }
3809 165 : switch (TREE_CODE (_q30))
3810 : {
3811 0 : case NEGATE_EXPR:
3812 0 : {
3813 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3814 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
3815 : {
3816 0 : switch (TREE_CODE (_q40))
3817 : {
3818 0 : CASE_CONVERT:
3819 0 : {
3820 0 : tree _q60 = TREE_OPERAND (_q40, 0);
3821 0 : switch (TREE_CODE (_q60))
3822 : {
3823 0 : case LT_EXPR:
3824 0 : {
3825 0 : tree _q70 = TREE_OPERAND (_q60, 0);
3826 0 : tree _q71 = TREE_OPERAND (_q60, 1);
3827 0 : if (integer_zerop (_q71))
3828 : {
3829 0 : if ((_q31 == _q70 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q70, 0) && types_match (_q31, _q70)))
3830 : {
3831 0 : {
3832 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q70, _p0 };
3833 0 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
3834 0 : if (res) return res;
3835 : }
3836 : }
3837 : }
3838 : break;
3839 : }
3840 : default:;
3841 : }
3842 : break;
3843 : }
3844 : default:;
3845 : }
3846 : }
3847 : break;
3848 : }
3849 : default:;
3850 : }
3851 : break;
3852 : }
3853 99376822 : default:;
3854 : }
3855 99376822 : if (integer_zerop (_p1))
3856 : {
3857 27930868 : {
3858 27930868 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3859 27930868 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1295;
3860 27930868 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1295;
3861 27930868 : {
3862 27930868 : tree res_op0;
3863 27930868 : res_op0 = captures[0];
3864 27930868 : tree _r;
3865 27930868 : _r = non_lvalue_loc (loc, res_op0);
3866 27930868 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
3867 99376822 : return _r;
3868 : }
3869 71445954 : next_after_fail1295:;
3870 : }
3871 : }
3872 71445954 : if (real_zerop (_p1))
3873 : {
3874 5353 : {
3875 5353 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
3876 5353 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
3877 5353 : if (res) return res;
3878 : }
3879 : }
3880 71445859 : switch (TREE_CODE (_p0))
3881 : {
3882 6564417 : case PLUS_EXPR:
3883 6564417 : {
3884 6564417 : tree _q20 = TREE_OPERAND (_p0, 0);
3885 6564417 : tree _q21 = TREE_OPERAND (_p0, 1);
3886 6564417 : switch (TREE_CODE (_q21))
3887 : {
3888 120167 : case REAL_CST:
3889 120167 : {
3890 120167 : switch (TREE_CODE (_p1))
3891 : {
3892 71 : case REAL_CST:
3893 71 : {
3894 71 : {
3895 71 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3896 71 : tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
3897 71 : if (res) return res;
3898 : }
3899 68 : break;
3900 : }
3901 : default:;
3902 : }
3903 : break;
3904 : }
3905 : default:;
3906 : }
3907 : break;
3908 : }
3909 2079025 : case MINUS_EXPR:
3910 2079025 : {
3911 2079025 : tree _q20 = TREE_OPERAND (_p0, 0);
3912 2079025 : tree _q21 = TREE_OPERAND (_p0, 1);
3913 2079025 : switch (TREE_CODE (_q21))
3914 : {
3915 22628 : case REAL_CST:
3916 22628 : {
3917 22628 : switch (TREE_CODE (_p1))
3918 : {
3919 190 : case REAL_CST:
3920 190 : {
3921 190 : {
3922 190 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3923 190 : tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
3924 190 : if (res) return res;
3925 : }
3926 188 : break;
3927 : }
3928 : default:;
3929 : }
3930 : break;
3931 : }
3932 : default:;
3933 : }
3934 : break;
3935 : }
3936 12286 : case MAX_EXPR:
3937 12286 : {
3938 12286 : tree _q20 = TREE_OPERAND (_p0, 0);
3939 12286 : tree _q21 = TREE_OPERAND (_p0, 1);
3940 12286 : if (integer_zerop (_q21))
3941 : {
3942 4642 : switch (TREE_CODE (_p1))
3943 : {
3944 114 : case MAX_EXPR:
3945 114 : {
3946 114 : tree _q50 = TREE_OPERAND (_p1, 0);
3947 114 : tree _q51 = TREE_OPERAND (_p1, 1);
3948 114 : switch (TREE_CODE (_q50))
3949 : {
3950 48 : case NEGATE_EXPR:
3951 48 : {
3952 48 : tree _q60 = TREE_OPERAND (_q50, 0);
3953 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3954 : {
3955 48 : if (integer_zerop (_q51))
3956 : {
3957 48 : {
3958 48 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3959 48 : tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
3960 48 : if (res) return res;
3961 : }
3962 : }
3963 : }
3964 : break;
3965 : }
3966 : default:;
3967 : }
3968 : break;
3969 : }
3970 : default:;
3971 : }
3972 : }
3973 12238 : switch (TREE_CODE (_q20))
3974 : {
3975 18 : case NEGATE_EXPR:
3976 18 : {
3977 18 : tree _q30 = TREE_OPERAND (_q20, 0);
3978 18 : if (integer_zerop (_q21))
3979 : {
3980 18 : switch (TREE_CODE (_p1))
3981 : {
3982 18 : case MAX_EXPR:
3983 18 : {
3984 18 : tree _q60 = TREE_OPERAND (_p1, 0);
3985 18 : tree _q61 = TREE_OPERAND (_p1, 1);
3986 18 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
3987 : {
3988 18 : if (integer_zerop (_q61))
3989 : {
3990 18 : {
3991 18 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3992 18 : tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
3993 18 : if (res) return res;
3994 : }
3995 : }
3996 : }
3997 : break;
3998 : }
3999 : default:;
4000 : }
4001 : }
4002 : break;
4003 : }
4004 : default:;
4005 : }
4006 : break;
4007 : }
4008 13466037 : case MULT_EXPR:
4009 13466037 : {
4010 13466037 : tree _q20 = TREE_OPERAND (_p0, 0);
4011 13466037 : tree _q21 = TREE_OPERAND (_p0, 1);
4012 13466037 : switch (TREE_CODE (_q20))
4013 : {
4014 1942017 : case PLUS_EXPR:
4015 1942017 : {
4016 1942017 : tree _q30 = TREE_OPERAND (_q20, 0);
4017 1942017 : tree _q31 = TREE_OPERAND (_q20, 1);
4018 1942017 : switch (TREE_CODE (_q31))
4019 : {
4020 525678 : case INTEGER_CST:
4021 525678 : {
4022 525678 : switch (TREE_CODE (_q21))
4023 : {
4024 192683 : case INTEGER_CST:
4025 192683 : {
4026 192683 : switch (TREE_CODE (_p1))
4027 : {
4028 127344 : case INTEGER_CST:
4029 127344 : {
4030 127344 : {
4031 127344 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
4032 127344 : {
4033 127344 : bool overflowed = true;
4034 127344 : wi::overflow_type ovf1;
4035 127344 : wi::overflow_type ovf2;
4036 127344 : wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[4]),
4037 254688 : TYPE_SIGN (type), &ovf1);
4038 382032 : wide_int add = wi::add (mul, wi::to_wide (captures[5]),
4039 127344 : TYPE_SIGN (type), &ovf2);
4040 127344 : if (TYPE_OVERFLOW_UNDEFINED (type))
4041 : {
4042 : }
4043 : else
4044 66425 : overflowed = false;
4045 66425 : if (!overflowed
4046 : )
4047 : {
4048 66425 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1296;
4049 66425 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1296;
4050 66425 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1296;
4051 66425 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1296;
4052 66425 : {
4053 66425 : tree res_op0;
4054 66425 : {
4055 66425 : tree _o1[2], _r1;
4056 66425 : _o1[0] = captures[2];
4057 66425 : _o1[1] = captures[4];
4058 66425 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4059 66425 : res_op0 = _r1;
4060 : }
4061 66425 : tree res_op1;
4062 66425 : res_op1 = wide_int_to_tree (type, add);
4063 66425 : tree _r;
4064 66425 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4065 66425 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
4066 66425 : return _r;
4067 : }
4068 60919 : next_after_fail1296:;
4069 : }
4070 127344 : }
4071 : }
4072 60919 : break;
4073 : }
4074 : default:;
4075 : }
4076 : break;
4077 : }
4078 : default:;
4079 : }
4080 : break;
4081 : }
4082 : default:;
4083 : }
4084 : break;
4085 : }
4086 : default:;
4087 : }
4088 : break;
4089 : }
4090 26326 : case LSHIFT_EXPR:
4091 26326 : {
4092 26326 : tree _q20 = TREE_OPERAND (_p0, 0);
4093 26326 : tree _q21 = TREE_OPERAND (_p0, 1);
4094 26326 : switch (TREE_CODE (_p1))
4095 : {
4096 688 : case LSHIFT_EXPR:
4097 688 : {
4098 688 : tree _q50 = TREE_OPERAND (_p1, 0);
4099 688 : tree _q51 = TREE_OPERAND (_p1, 1);
4100 688 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4101 : {
4102 7 : {
4103 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
4104 7 : tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4105 7 : if (res) return res;
4106 : }
4107 : }
4108 : break;
4109 : }
4110 : default:;
4111 : }
4112 : break;
4113 : }
4114 218322 : case BIT_AND_EXPR:
4115 218322 : {
4116 218322 : tree _q20 = TREE_OPERAND (_p0, 0);
4117 218322 : tree _q21 = TREE_OPERAND (_p0, 1);
4118 218322 : switch (TREE_CODE (_p1))
4119 : {
4120 302 : case BIT_AND_EXPR:
4121 302 : {
4122 302 : tree _q50 = TREE_OPERAND (_p1, 0);
4123 302 : tree _q51 = TREE_OPERAND (_p1, 1);
4124 302 : {
4125 302 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
4126 302 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4127 302 : if (res) return res;
4128 : }
4129 302 : {
4130 302 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
4131 302 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4132 302 : if (res) return res;
4133 : }
4134 302 : {
4135 302 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
4136 302 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4137 302 : if (res) return res;
4138 : }
4139 302 : {
4140 302 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
4141 302 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4142 302 : if (res) return res;
4143 : }
4144 302 : break;
4145 : }
4146 218322 : default:;
4147 : }
4148 218322 : if (integer_onep (_q21))
4149 : {
4150 130759 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4151 : {
4152 29 : {
4153 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
4154 29 : tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
4155 29 : if (res) return res;
4156 : }
4157 : }
4158 : }
4159 : break;
4160 : }
4161 71379327 : default:;
4162 : }
4163 71379327 : if (real_zerop (_p0))
4164 : {
4165 0 : {
4166 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
4167 0 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
4168 0 : if (res) return res;
4169 : }
4170 : }
4171 71379327 : switch (TREE_CODE (_p1))
4172 : {
4173 5561 : case BIT_AND_EXPR:
4174 5561 : {
4175 5561 : tree _q30 = TREE_OPERAND (_p1, 0);
4176 5561 : tree _q31 = TREE_OPERAND (_p1, 1);
4177 5561 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4178 : {
4179 16 : if (integer_onep (_q31))
4180 : {
4181 16 : {
4182 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
4183 16 : tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
4184 16 : if (res) return res;
4185 : }
4186 : }
4187 : }
4188 : break;
4189 : }
4190 71379311 : default:;
4191 : }
4192 71379311 : switch (TREE_CODE (_p0))
4193 : {
4194 218293 : case BIT_AND_EXPR:
4195 218293 : {
4196 218293 : tree _q20 = TREE_OPERAND (_p0, 0);
4197 218293 : tree _q21 = TREE_OPERAND (_p0, 1);
4198 218293 : switch (TREE_CODE (_p1))
4199 : {
4200 9 : case BIT_XOR_EXPR:
4201 9 : {
4202 9 : tree _q50 = TREE_OPERAND (_p1, 0);
4203 9 : tree _q51 = TREE_OPERAND (_p1, 1);
4204 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4205 : {
4206 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4207 : {
4208 0 : {
4209 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4210 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4211 0 : if (res) return res;
4212 : }
4213 : }
4214 : }
4215 : break;
4216 : }
4217 218293 : default:;
4218 : }
4219 218293 : switch (TREE_CODE (_q20))
4220 : {
4221 1 : case BIT_AND_EXPR:
4222 1 : {
4223 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4224 1 : tree _q31 = TREE_OPERAND (_q20, 1);
4225 1 : if (integer_onep (_q21))
4226 : {
4227 1 : switch (TREE_CODE (_p1))
4228 : {
4229 1 : case PLUS_EXPR:
4230 1 : {
4231 1 : tree _q70 = TREE_OPERAND (_p1, 0);
4232 1 : tree _q71 = TREE_OPERAND (_p1, 1);
4233 1 : switch (TREE_CODE (_q70))
4234 : {
4235 1 : case RSHIFT_EXPR:
4236 1 : {
4237 1 : tree _q80 = TREE_OPERAND (_q70, 0);
4238 1 : tree _q81 = TREE_OPERAND (_q70, 1);
4239 1 : if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
4240 : {
4241 1 : if (integer_onep (_q81))
4242 : {
4243 1 : switch (TREE_CODE (_q71))
4244 : {
4245 1 : case RSHIFT_EXPR:
4246 1 : {
4247 1 : tree _q110 = TREE_OPERAND (_q71, 0);
4248 1 : tree _q111 = TREE_OPERAND (_q71, 1);
4249 1 : if ((_q110 == _q31 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q31, 0) && types_match (_q110, _q31)))
4250 : {
4251 1 : if ((_q111 == _q81 && ! TREE_SIDE_EFFECTS (_q111)) || (operand_equal_p (_q111, _q81, 0) && types_match (_q111, _q81)))
4252 : {
4253 1 : {
4254 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q81, _q31, _q20 };
4255 1 : tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
4256 1 : if (res) return res;
4257 : }
4258 : }
4259 : }
4260 : break;
4261 : }
4262 : default:;
4263 : }
4264 : }
4265 : }
4266 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
4267 : {
4268 0 : if (integer_onep (_q81))
4269 : {
4270 0 : switch (TREE_CODE (_q71))
4271 : {
4272 0 : case RSHIFT_EXPR:
4273 0 : {
4274 0 : tree _q110 = TREE_OPERAND (_q71, 0);
4275 0 : tree _q111 = TREE_OPERAND (_q71, 1);
4276 0 : if ((_q110 == _q30 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q30, 0) && types_match (_q110, _q30)))
4277 : {
4278 0 : if ((_q111 == _q81 && ! TREE_SIDE_EFFECTS (_q111)) || (operand_equal_p (_q111, _q81, 0) && types_match (_q111, _q81)))
4279 : {
4280 0 : {
4281 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q81, _q30, _q20 };
4282 0 : tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
4283 0 : if (res) return res;
4284 : }
4285 : }
4286 : }
4287 : break;
4288 : }
4289 : default:;
4290 : }
4291 : }
4292 : }
4293 : break;
4294 : }
4295 : default:;
4296 : }
4297 : break;
4298 : }
4299 : default:;
4300 : }
4301 : }
4302 : break;
4303 : }
4304 218292 : default:;
4305 : }
4306 218292 : switch (TREE_CODE (_p1))
4307 : {
4308 1 : case BIT_IOR_EXPR:
4309 1 : {
4310 1 : tree _q50 = TREE_OPERAND (_p1, 0);
4311 1 : tree _q51 = TREE_OPERAND (_p1, 1);
4312 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4313 : {
4314 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4315 : {
4316 0 : {
4317 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4318 0 : tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
4319 0 : if (res) return res;
4320 : }
4321 : }
4322 : }
4323 : break;
4324 : }
4325 : default:;
4326 : }
4327 : break;
4328 : }
4329 1541 : case BIT_XOR_EXPR:
4330 1541 : {
4331 1541 : tree _q20 = TREE_OPERAND (_p0, 0);
4332 1541 : tree _q21 = TREE_OPERAND (_p0, 1);
4333 1541 : switch (TREE_CODE (_p1))
4334 : {
4335 0 : case BIT_AND_EXPR:
4336 0 : {
4337 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4338 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4339 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4340 : {
4341 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4342 : {
4343 0 : {
4344 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4345 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4346 0 : if (res) return res;
4347 : }
4348 : }
4349 : }
4350 : break;
4351 : }
4352 : default:;
4353 : }
4354 : break;
4355 : }
4356 6564414 : case PLUS_EXPR:
4357 6564414 : {
4358 6564414 : tree _q20 = TREE_OPERAND (_p0, 0);
4359 6564414 : tree _q21 = TREE_OPERAND (_p0, 1);
4360 6564414 : switch (TREE_CODE (_q20))
4361 : {
4362 990 : case RSHIFT_EXPR:
4363 990 : {
4364 990 : tree _q30 = TREE_OPERAND (_q20, 0);
4365 990 : tree _q31 = TREE_OPERAND (_q20, 1);
4366 990 : if (integer_onep (_q31))
4367 : {
4368 36 : switch (TREE_CODE (_q21))
4369 : {
4370 24 : case RSHIFT_EXPR:
4371 24 : {
4372 24 : tree _q60 = TREE_OPERAND (_q21, 0);
4373 24 : tree _q61 = TREE_OPERAND (_q21, 1);
4374 24 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
4375 : {
4376 8 : switch (TREE_CODE (_p1))
4377 : {
4378 8 : case BIT_AND_EXPR:
4379 8 : {
4380 8 : tree _q90 = TREE_OPERAND (_p1, 0);
4381 8 : tree _q91 = TREE_OPERAND (_p1, 1);
4382 8 : switch (TREE_CODE (_q90))
4383 : {
4384 2 : case BIT_AND_EXPR:
4385 2 : {
4386 2 : tree _q100 = TREE_OPERAND (_q90, 0);
4387 2 : tree _q101 = TREE_OPERAND (_q90, 1);
4388 2 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
4389 : {
4390 1 : if ((_q101 == _q60 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q60, 0) && types_match (_q101, _q60)))
4391 : {
4392 1 : if (integer_onep (_q91))
4393 : {
4394 1 : {
4395 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q90 };
4396 1 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
4397 1 : if (res) return res;
4398 : }
4399 : }
4400 : }
4401 : }
4402 1 : if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
4403 : {
4404 1 : if ((_q101 == _q30 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q30, 0) && types_match (_q101, _q30)))
4405 : {
4406 0 : if (integer_onep (_q91))
4407 : {
4408 0 : {
4409 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q90 };
4410 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
4411 0 : if (res) return res;
4412 : }
4413 : }
4414 : }
4415 : }
4416 : break;
4417 : }
4418 : default:;
4419 : }
4420 : break;
4421 : }
4422 : default:;
4423 : }
4424 : }
4425 : break;
4426 : }
4427 : default:;
4428 : }
4429 : }
4430 : break;
4431 : }
4432 : default:;
4433 : }
4434 : break;
4435 : }
4436 537 : case BIT_IOR_EXPR:
4437 537 : {
4438 537 : tree _q20 = TREE_OPERAND (_p0, 0);
4439 537 : tree _q21 = TREE_OPERAND (_p0, 1);
4440 537 : switch (TREE_CODE (_p1))
4441 : {
4442 0 : case BIT_AND_EXPR:
4443 0 : {
4444 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4445 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4446 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4447 : {
4448 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4449 : {
4450 0 : {
4451 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4452 0 : tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
4453 0 : if (res) return res;
4454 : }
4455 : }
4456 : }
4457 : break;
4458 : }
4459 537 : default:;
4460 : }
4461 537 : switch (TREE_CODE (_q21))
4462 : {
4463 28 : case NEGATE_EXPR:
4464 28 : {
4465 28 : tree _q40 = TREE_OPERAND (_q21, 0);
4466 28 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4467 : {
4468 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4469 : {
4470 0 : {
4471 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p0 };
4472 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4473 0 : if (res) return res;
4474 : }
4475 : }
4476 : }
4477 : break;
4478 : }
4479 537 : default:;
4480 : }
4481 537 : switch (TREE_CODE (_q20))
4482 : {
4483 11 : case NEGATE_EXPR:
4484 11 : {
4485 11 : tree _q30 = TREE_OPERAND (_q20, 0);
4486 11 : if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
4487 : {
4488 3 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4489 : {
4490 3 : {
4491 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4492 3 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4493 3 : if (res) return res;
4494 : }
4495 : }
4496 : }
4497 : break;
4498 : }
4499 : default:;
4500 : }
4501 : break;
4502 : }
4503 71379307 : default:;
4504 : }
4505 71379307 : switch (TREE_CODE (_p1))
4506 : {
4507 140 : case BIT_IOR_EXPR:
4508 140 : {
4509 140 : tree _q30 = TREE_OPERAND (_p1, 0);
4510 140 : tree _q31 = TREE_OPERAND (_p1, 1);
4511 140 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4512 : {
4513 0 : switch (TREE_CODE (_q31))
4514 : {
4515 0 : case NEGATE_EXPR:
4516 0 : {
4517 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4518 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
4519 : {
4520 0 : {
4521 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4522 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4523 0 : if (res) return res;
4524 : }
4525 : }
4526 : break;
4527 : }
4528 : default:;
4529 : }
4530 : }
4531 140 : switch (TREE_CODE (_q30))
4532 : {
4533 0 : case NEGATE_EXPR:
4534 0 : {
4535 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4536 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
4537 : {
4538 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4539 : {
4540 0 : {
4541 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4542 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4543 0 : if (res) return res;
4544 : }
4545 : }
4546 : }
4547 : break;
4548 : }
4549 : default:;
4550 : }
4551 : break;
4552 : }
4553 5544 : case BIT_AND_EXPR:
4554 5544 : {
4555 5544 : tree _q30 = TREE_OPERAND (_p1, 0);
4556 5544 : tree _q31 = TREE_OPERAND (_p1, 1);
4557 5544 : switch (TREE_CODE (_q30))
4558 : {
4559 8 : case NEGATE_EXPR:
4560 8 : {
4561 8 : tree _q40 = TREE_OPERAND (_q30, 0);
4562 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
4563 : {
4564 6 : if (uniform_integer_cst_p (_q31))
4565 : {
4566 0 : {
4567 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
4568 0 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
4569 0 : if (res) return res;
4570 : }
4571 : }
4572 : }
4573 : break;
4574 : }
4575 5544 : default:;
4576 : }
4577 5544 : if (uniform_integer_cst_p (_q30))
4578 : {
4579 0 : switch (TREE_CODE (_q31))
4580 : {
4581 0 : case NEGATE_EXPR:
4582 0 : {
4583 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4584 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
4585 : {
4586 0 : {
4587 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
4588 0 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
4589 0 : if (res) return res;
4590 : }
4591 : }
4592 : break;
4593 : }
4594 : default:;
4595 : }
4596 : }
4597 : break;
4598 : }
4599 71379307 : default:;
4600 : }
4601 71379307 : switch (TREE_CODE (_p0))
4602 : {
4603 218292 : case BIT_AND_EXPR:
4604 218292 : {
4605 218292 : tree _q20 = TREE_OPERAND (_p0, 0);
4606 218292 : tree _q21 = TREE_OPERAND (_p0, 1);
4607 218292 : switch (TREE_CODE (_q20))
4608 : {
4609 254 : case NEGATE_EXPR:
4610 254 : {
4611 254 : tree _q30 = TREE_OPERAND (_q20, 0);
4612 254 : if (uniform_integer_cst_p (_q21))
4613 : {
4614 236 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4615 : {
4616 53 : {
4617 53 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q21 };
4618 53 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
4619 53 : if (res) return res;
4620 : }
4621 : }
4622 : }
4623 : break;
4624 : }
4625 218272 : default:;
4626 : }
4627 218272 : if (uniform_integer_cst_p (_q20))
4628 : {
4629 0 : switch (TREE_CODE (_q21))
4630 : {
4631 0 : case NEGATE_EXPR:
4632 0 : {
4633 0 : tree _q40 = TREE_OPERAND (_q21, 0);
4634 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4635 : {
4636 0 : {
4637 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _p0, _q20 };
4638 0 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
4639 0 : if (res) return res;
4640 : }
4641 : }
4642 : break;
4643 : }
4644 : default:;
4645 : }
4646 : }
4647 218272 : switch (TREE_CODE (_q21))
4648 : {
4649 217964 : case INTEGER_CST:
4650 217964 : {
4651 217964 : switch (TREE_CODE (_p1))
4652 : {
4653 14733 : CASE_CONVERT:
4654 14733 : {
4655 14733 : tree _q50 = TREE_OPERAND (_p1, 0);
4656 14733 : switch (TREE_CODE (_q50))
4657 : {
4658 0 : case BIT_AND_EXPR:
4659 0 : {
4660 0 : tree _q60 = TREE_OPERAND (_q50, 0);
4661 0 : tree _q61 = TREE_OPERAND (_q50, 1);
4662 0 : switch (TREE_CODE (_q61))
4663 : {
4664 0 : case INTEGER_CST:
4665 0 : {
4666 0 : {
4667 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
4668 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4669 0 : if (res) return res;
4670 : }
4671 0 : break;
4672 : }
4673 : default:;
4674 : }
4675 : break;
4676 : }
4677 : default:;
4678 : }
4679 : break;
4680 : }
4681 300 : case BIT_AND_EXPR:
4682 300 : {
4683 300 : tree _q50 = TREE_OPERAND (_p1, 0);
4684 300 : tree _q51 = TREE_OPERAND (_p1, 1);
4685 300 : switch (TREE_CODE (_q51))
4686 : {
4687 300 : case INTEGER_CST:
4688 300 : {
4689 300 : {
4690 300 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
4691 300 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4692 300 : if (res) return res;
4693 : }
4694 200 : break;
4695 : }
4696 : default:;
4697 : }
4698 : break;
4699 : }
4700 : default:;
4701 : }
4702 : break;
4703 : }
4704 : default:;
4705 : }
4706 : break;
4707 : }
4708 535 : case BIT_IOR_EXPR:
4709 535 : {
4710 535 : tree _q20 = TREE_OPERAND (_p0, 0);
4711 535 : tree _q21 = TREE_OPERAND (_p0, 1);
4712 535 : switch (TREE_CODE (_q20))
4713 : {
4714 65 : case PLUS_EXPR:
4715 65 : {
4716 65 : tree _q30 = TREE_OPERAND (_q20, 0);
4717 65 : tree _q31 = TREE_OPERAND (_q20, 1);
4718 65 : if (integer_minus_onep (_q31))
4719 : {
4720 63 : if (uniform_integer_cst_p (_q21))
4721 : {
4722 52 : if (integer_onep (_p1))
4723 : {
4724 52 : {
4725 52 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
4726 52 : {
4727 52 : tree cst = uniform_integer_cst_p (captures[2]);
4728 52 : tree etype = TREE_TYPE (cst);
4729 52 : wide_int c = wi::to_wide (cst);
4730 52 : if (TYPE_OVERFLOW_WRAPS (type)
4731 45 : && c != 0
4732 97 : && wi::popcount (c + 1) == 1
4733 : )
4734 : {
4735 44 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1297;
4736 44 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1297;
4737 44 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1297;
4738 44 : {
4739 44 : tree res_op0;
4740 44 : {
4741 44 : tree _o1[2], _r1;
4742 44 : _o1[0] = captures[1];
4743 44 : _o1[1] = captures[2];
4744 44 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4745 44 : res_op0 = _r1;
4746 : }
4747 44 : tree res_op1;
4748 44 : res_op1 = build_uniform_cst
4749 44 : (type, wide_int_to_tree (etype, wi::bit_not (c)));
4750 44 : tree _r;
4751 44 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
4752 44 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
4753 44 : return _r;
4754 : }
4755 8 : next_after_fail1297:;
4756 : }
4757 52 : }
4758 : }
4759 : }
4760 : }
4761 : }
4762 : break;
4763 : }
4764 : default:;
4765 : }
4766 : break;
4767 : }
4768 2079023 : case MINUS_EXPR:
4769 2079023 : {
4770 2079023 : tree _q20 = TREE_OPERAND (_p0, 0);
4771 2079023 : tree _q21 = TREE_OPERAND (_p0, 1);
4772 2079023 : switch (TREE_CODE (_q20))
4773 : {
4774 2 : case BIT_AND_EXPR:
4775 2 : {
4776 2 : tree _q30 = TREE_OPERAND (_q20, 0);
4777 2 : tree _q31 = TREE_OPERAND (_q20, 1);
4778 2 : switch (TREE_CODE (_q21))
4779 : {
4780 1 : case BIT_IOR_EXPR:
4781 1 : {
4782 1 : tree _q60 = TREE_OPERAND (_q21, 0);
4783 1 : tree _q61 = TREE_OPERAND (_q21, 1);
4784 1 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4785 : {
4786 1 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
4787 : {
4788 1 : if (integer_all_onesp (_p1))
4789 : {
4790 1 : {
4791 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
4792 1 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
4793 1 : if (res) return res;
4794 : }
4795 : }
4796 : }
4797 : }
4798 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4799 : {
4800 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4801 : {
4802 0 : if (integer_all_onesp (_p1))
4803 : {
4804 0 : {
4805 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
4806 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
4807 0 : if (res) return res;
4808 : }
4809 : }
4810 : }
4811 : }
4812 : break;
4813 : }
4814 : default:;
4815 : }
4816 : break;
4817 : }
4818 2079022 : default:;
4819 : }
4820 2079022 : {
4821 2079022 : tree _q20_pops[1];
4822 2079022 : if (tree_nop_convert (_q20, _q20_pops))
4823 : {
4824 923428 : tree _q30 = _q20_pops[0];
4825 923428 : switch (TREE_CODE (_q30))
4826 : {
4827 0 : case BIT_AND_EXPR:
4828 0 : {
4829 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4830 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4831 0 : {
4832 0 : tree _q21_pops[1];
4833 0 : if (tree_nop_convert (_q21, _q21_pops))
4834 : {
4835 0 : tree _q70 = _q21_pops[0];
4836 0 : switch (TREE_CODE (_q70))
4837 : {
4838 0 : case BIT_IOR_EXPR:
4839 0 : {
4840 0 : tree _q80 = TREE_OPERAND (_q70, 0);
4841 0 : tree _q81 = TREE_OPERAND (_q70, 1);
4842 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
4843 : {
4844 0 : if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
4845 : {
4846 0 : if (integer_all_onesp (_p1))
4847 : {
4848 0 : {
4849 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
4850 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
4851 0 : if (res) return res;
4852 : }
4853 : }
4854 : }
4855 : }
4856 0 : if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
4857 : {
4858 0 : if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
4859 : {
4860 0 : if (integer_all_onesp (_p1))
4861 : {
4862 0 : {
4863 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
4864 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
4865 0 : if (res) return res;
4866 : }
4867 : }
4868 : }
4869 : }
4870 : break;
4871 : }
4872 : default:;
4873 : }
4874 : }
4875 : }
4876 0 : break;
4877 : }
4878 : default:;
4879 : }
4880 : }
4881 : }
4882 2079022 : {
4883 2079022 : tree _q21_pops[1];
4884 2079022 : if (tree_nop_convert (_q21, _q21_pops))
4885 : {
4886 1161628 : tree _q40 = _q21_pops[0];
4887 1161628 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4888 : {
4889 34 : {
4890 34 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4891 34 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
4892 34 : if (res) return res;
4893 : }
4894 : }
4895 : }
4896 : }
4897 2078992 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4898 : {
4899 45845 : {
4900 45845 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4901 45845 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
4902 45845 : if (res) return res;
4903 : }
4904 : }
4905 : break;
4906 : }
4907 19274753 : CASE_CONVERT:
4908 19274753 : {
4909 19274753 : tree _q20 = TREE_OPERAND (_p0, 0);
4910 19274753 : switch (TREE_CODE (_q20))
4911 : {
4912 72 : case BIT_AND_EXPR:
4913 72 : {
4914 72 : tree _q30 = TREE_OPERAND (_q20, 0);
4915 72 : tree _q31 = TREE_OPERAND (_q20, 1);
4916 72 : switch (TREE_CODE (_q31))
4917 : {
4918 8 : case INTEGER_CST:
4919 8 : {
4920 8 : switch (TREE_CODE (_p1))
4921 : {
4922 0 : CASE_CONVERT:
4923 0 : {
4924 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4925 0 : switch (TREE_CODE (_q60))
4926 : {
4927 0 : case BIT_AND_EXPR:
4928 0 : {
4929 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4930 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4931 0 : switch (TREE_CODE (_q71))
4932 : {
4933 0 : case INTEGER_CST:
4934 0 : {
4935 0 : {
4936 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
4937 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4938 0 : if (res) return res;
4939 : }
4940 0 : break;
4941 : }
4942 : default:;
4943 : }
4944 : break;
4945 : }
4946 : default:;
4947 : }
4948 : break;
4949 : }
4950 0 : case BIT_AND_EXPR:
4951 0 : {
4952 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4953 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4954 0 : switch (TREE_CODE (_q61))
4955 : {
4956 0 : case INTEGER_CST:
4957 0 : {
4958 0 : {
4959 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
4960 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4961 0 : if (res) return res;
4962 : }
4963 0 : break;
4964 : }
4965 : default:;
4966 : }
4967 : break;
4968 : }
4969 : default:;
4970 : }
4971 : break;
4972 : }
4973 : default:;
4974 : }
4975 : break;
4976 : }
4977 4523 : case NEGATE_EXPR:
4978 4523 : {
4979 4523 : tree _q30 = TREE_OPERAND (_q20, 0);
4980 4523 : {
4981 4523 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
4982 4523 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
4983 4523 : if (res) return res;
4984 : }
4985 1824 : break;
4986 : }
4987 : default:;
4988 : }
4989 : break;
4990 : }
4991 134571 : case COND_EXPR:
4992 134571 : {
4993 134571 : tree _q20 = TREE_OPERAND (_p0, 0);
4994 134571 : tree _q21 = TREE_OPERAND (_p0, 1);
4995 134571 : tree _q22 = TREE_OPERAND (_p0, 2);
4996 134571 : if (integer_zerop (_q22))
4997 : {
4998 123522 : switch (TREE_CODE (_p1))
4999 : {
5000 44 : case COND_EXPR:
5001 44 : {
5002 44 : tree _q60 = TREE_OPERAND (_p1, 0);
5003 44 : tree _q61 = TREE_OPERAND (_p1, 1);
5004 44 : tree _q62 = TREE_OPERAND (_p1, 2);
5005 44 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5006 : {
5007 6 : if (integer_zerop (_q61))
5008 : {
5009 0 : {
5010 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
5011 0 : const enum tree_code op = PLUS_EXPR;
5012 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1298;
5013 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1298;
5014 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1298;
5015 0 : {
5016 0 : tree res_op0;
5017 0 : res_op0 = captures[1];
5018 0 : tree res_op1;
5019 0 : res_op1 = captures[2];
5020 0 : tree res_op2;
5021 0 : res_op2 = captures[4];
5022 0 : tree _r;
5023 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
5024 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
5025 : return _r;
5026 : }
5027 134571 : next_after_fail1298:;
5028 : }
5029 : }
5030 : }
5031 : break;
5032 : }
5033 : default:;
5034 : }
5035 : }
5036 134571 : if (integer_zerop (_q21))
5037 : {
5038 1050 : switch (TREE_CODE (_p1))
5039 : {
5040 0 : case COND_EXPR:
5041 0 : {
5042 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5043 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5044 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5045 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5046 : {
5047 0 : if (integer_zerop (_q62))
5048 : {
5049 0 : {
5050 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
5051 0 : const enum tree_code op = PLUS_EXPR;
5052 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1299;
5053 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1299;
5054 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1299;
5055 0 : {
5056 0 : tree res_op0;
5057 0 : res_op0 = captures[1];
5058 0 : tree res_op1;
5059 0 : res_op1 = captures[2];
5060 0 : tree res_op2;
5061 0 : res_op2 = captures[4];
5062 0 : tree _r;
5063 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
5064 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
5065 : return _r;
5066 : }
5067 134571 : next_after_fail1299:;
5068 : }
5069 : }
5070 : }
5071 : break;
5072 : }
5073 : default:;
5074 : }
5075 : }
5076 134571 : switch (TREE_CODE (_q20))
5077 : {
5078 29880 : case LT_EXPR:
5079 29880 : {
5080 29880 : tree _q30 = TREE_OPERAND (_q20, 0);
5081 29880 : tree _q31 = TREE_OPERAND (_q20, 1);
5082 29880 : if (zerop (_q22))
5083 : {
5084 29814 : switch (TREE_CODE (_p1))
5085 : {
5086 0 : case COND_EXPR:
5087 0 : {
5088 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5089 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5090 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5091 0 : switch (TREE_CODE (_q80))
5092 : {
5093 0 : case GE_EXPR:
5094 0 : {
5095 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5096 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5097 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5098 : {
5099 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5100 : {
5101 0 : if (zerop (_q82))
5102 : {
5103 0 : {
5104 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5105 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
5106 0 : if (res) return res;
5107 : }
5108 : }
5109 : }
5110 : }
5111 : break;
5112 : }
5113 : default:;
5114 : }
5115 : break;
5116 : }
5117 : default:;
5118 : }
5119 : }
5120 : break;
5121 : }
5122 33989 : case LE_EXPR:
5123 33989 : {
5124 33989 : tree _q30 = TREE_OPERAND (_q20, 0);
5125 33989 : tree _q31 = TREE_OPERAND (_q20, 1);
5126 33989 : if (zerop (_q22))
5127 : {
5128 33849 : switch (TREE_CODE (_p1))
5129 : {
5130 5 : case COND_EXPR:
5131 5 : {
5132 5 : tree _q80 = TREE_OPERAND (_p1, 0);
5133 5 : tree _q81 = TREE_OPERAND (_p1, 1);
5134 5 : tree _q82 = TREE_OPERAND (_p1, 2);
5135 5 : switch (TREE_CODE (_q80))
5136 : {
5137 0 : case GT_EXPR:
5138 0 : {
5139 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5140 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5141 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5142 : {
5143 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5144 : {
5145 0 : if (zerop (_q82))
5146 : {
5147 0 : {
5148 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5149 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
5150 0 : if (res) return res;
5151 : }
5152 : }
5153 : }
5154 : }
5155 : break;
5156 : }
5157 : default:;
5158 : }
5159 : break;
5160 : }
5161 : default:;
5162 : }
5163 : }
5164 : break;
5165 : }
5166 1051 : case EQ_EXPR:
5167 1051 : {
5168 1051 : tree _q30 = TREE_OPERAND (_q20, 0);
5169 1051 : tree _q31 = TREE_OPERAND (_q20, 1);
5170 1051 : if (zerop (_q22))
5171 : {
5172 570 : switch (TREE_CODE (_p1))
5173 : {
5174 32 : case COND_EXPR:
5175 32 : {
5176 32 : tree _q80 = TREE_OPERAND (_p1, 0);
5177 32 : tree _q81 = TREE_OPERAND (_p1, 1);
5178 32 : tree _q82 = TREE_OPERAND (_p1, 2);
5179 32 : switch (TREE_CODE (_q80))
5180 : {
5181 0 : case NE_EXPR:
5182 0 : {
5183 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5184 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5185 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5186 : {
5187 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5188 : {
5189 0 : if (zerop (_q82))
5190 : {
5191 0 : {
5192 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5193 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
5194 0 : if (res) return res;
5195 : }
5196 : }
5197 : }
5198 : }
5199 : break;
5200 : }
5201 : default:;
5202 : }
5203 : break;
5204 : }
5205 : default:;
5206 : }
5207 : }
5208 : break;
5209 : }
5210 8071 : case NE_EXPR:
5211 8071 : {
5212 8071 : tree _q30 = TREE_OPERAND (_q20, 0);
5213 8071 : tree _q31 = TREE_OPERAND (_q20, 1);
5214 8071 : if (zerop (_q22))
5215 : {
5216 5466 : switch (TREE_CODE (_p1))
5217 : {
5218 7 : case COND_EXPR:
5219 7 : {
5220 7 : tree _q80 = TREE_OPERAND (_p1, 0);
5221 7 : tree _q81 = TREE_OPERAND (_p1, 1);
5222 7 : tree _q82 = TREE_OPERAND (_p1, 2);
5223 7 : switch (TREE_CODE (_q80))
5224 : {
5225 0 : case EQ_EXPR:
5226 0 : {
5227 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5228 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5229 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5230 : {
5231 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5232 : {
5233 0 : if (zerop (_q82))
5234 : {
5235 0 : {
5236 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5237 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
5238 0 : if (res) return res;
5239 : }
5240 : }
5241 : }
5242 : }
5243 : break;
5244 : }
5245 : default:;
5246 : }
5247 : break;
5248 : }
5249 : default:;
5250 : }
5251 : }
5252 : break;
5253 : }
5254 20051 : case GE_EXPR:
5255 20051 : {
5256 20051 : tree _q30 = TREE_OPERAND (_q20, 0);
5257 20051 : tree _q31 = TREE_OPERAND (_q20, 1);
5258 20051 : if (zerop (_q22))
5259 : {
5260 18703 : switch (TREE_CODE (_p1))
5261 : {
5262 0 : case COND_EXPR:
5263 0 : {
5264 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5265 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5266 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5267 0 : switch (TREE_CODE (_q80))
5268 : {
5269 0 : case LT_EXPR:
5270 0 : {
5271 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5272 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5273 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5274 : {
5275 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5276 : {
5277 0 : if (zerop (_q82))
5278 : {
5279 0 : {
5280 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5281 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
5282 0 : if (res) return res;
5283 : }
5284 : }
5285 : }
5286 : }
5287 : break;
5288 : }
5289 : default:;
5290 : }
5291 : break;
5292 : }
5293 : default:;
5294 : }
5295 : }
5296 : break;
5297 : }
5298 34659 : case GT_EXPR:
5299 34659 : {
5300 34659 : tree _q30 = TREE_OPERAND (_q20, 0);
5301 34659 : tree _q31 = TREE_OPERAND (_q20, 1);
5302 34659 : if (zerop (_q22))
5303 : {
5304 32342 : switch (TREE_CODE (_p1))
5305 : {
5306 0 : case COND_EXPR:
5307 0 : {
5308 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5309 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5310 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5311 0 : switch (TREE_CODE (_q80))
5312 : {
5313 0 : case LE_EXPR:
5314 0 : {
5315 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5316 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5317 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5318 : {
5319 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5320 : {
5321 0 : if (zerop (_q82))
5322 : {
5323 0 : {
5324 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5325 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
5326 0 : if (res) return res;
5327 : }
5328 : }
5329 : }
5330 : }
5331 : break;
5332 : }
5333 : default:;
5334 : }
5335 : break;
5336 : }
5337 : default:;
5338 : }
5339 : }
5340 : break;
5341 : }
5342 0 : case UNORDERED_EXPR:
5343 0 : {
5344 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5345 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5346 0 : if (zerop (_q22))
5347 : {
5348 0 : switch (TREE_CODE (_p1))
5349 : {
5350 0 : case COND_EXPR:
5351 0 : {
5352 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5353 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5354 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5355 0 : switch (TREE_CODE (_q80))
5356 : {
5357 0 : case ORDERED_EXPR:
5358 0 : {
5359 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5360 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5361 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5362 : {
5363 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5364 : {
5365 0 : if (zerop (_q82))
5366 : {
5367 0 : {
5368 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5369 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
5370 0 : if (res) return res;
5371 : }
5372 : }
5373 : }
5374 : }
5375 : break;
5376 : }
5377 : default:;
5378 : }
5379 : break;
5380 : }
5381 : default:;
5382 : }
5383 : }
5384 : break;
5385 : }
5386 0 : case ORDERED_EXPR:
5387 0 : {
5388 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5389 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5390 0 : if (zerop (_q22))
5391 : {
5392 0 : switch (TREE_CODE (_p1))
5393 : {
5394 0 : case COND_EXPR:
5395 0 : {
5396 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5397 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5398 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5399 0 : switch (TREE_CODE (_q80))
5400 : {
5401 0 : case UNORDERED_EXPR:
5402 0 : {
5403 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5404 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5405 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5406 : {
5407 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5408 : {
5409 0 : if (zerop (_q82))
5410 : {
5411 0 : {
5412 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5413 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
5414 0 : if (res) return res;
5415 : }
5416 : }
5417 : }
5418 : }
5419 : break;
5420 : }
5421 : default:;
5422 : }
5423 : break;
5424 : }
5425 : default:;
5426 : }
5427 : }
5428 : break;
5429 : }
5430 0 : case UNLT_EXPR:
5431 0 : {
5432 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5433 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5434 0 : if (zerop (_q22))
5435 : {
5436 0 : switch (TREE_CODE (_p1))
5437 : {
5438 0 : case COND_EXPR:
5439 0 : {
5440 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5441 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5442 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5443 0 : switch (TREE_CODE (_q80))
5444 : {
5445 0 : case GE_EXPR:
5446 0 : {
5447 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5448 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5449 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5450 : {
5451 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5452 : {
5453 0 : if (zerop (_q82))
5454 : {
5455 0 : {
5456 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5457 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
5458 0 : if (res) return res;
5459 : }
5460 : }
5461 : }
5462 : }
5463 : break;
5464 : }
5465 : default:;
5466 : }
5467 : break;
5468 : }
5469 : default:;
5470 : }
5471 : }
5472 : break;
5473 : }
5474 0 : case UNLE_EXPR:
5475 0 : {
5476 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5477 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5478 0 : if (zerop (_q22))
5479 : {
5480 0 : switch (TREE_CODE (_p1))
5481 : {
5482 0 : case COND_EXPR:
5483 0 : {
5484 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5485 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5486 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5487 0 : switch (TREE_CODE (_q80))
5488 : {
5489 0 : case GT_EXPR:
5490 0 : {
5491 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5492 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5493 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5494 : {
5495 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5496 : {
5497 0 : if (zerop (_q82))
5498 : {
5499 0 : {
5500 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5501 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
5502 0 : if (res) return res;
5503 : }
5504 : }
5505 : }
5506 : }
5507 : break;
5508 : }
5509 : default:;
5510 : }
5511 : break;
5512 : }
5513 : default:;
5514 : }
5515 : }
5516 : break;
5517 : }
5518 0 : case UNGT_EXPR:
5519 0 : {
5520 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5521 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5522 0 : if (zerop (_q22))
5523 : {
5524 0 : switch (TREE_CODE (_p1))
5525 : {
5526 0 : case COND_EXPR:
5527 0 : {
5528 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5529 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5530 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5531 0 : switch (TREE_CODE (_q80))
5532 : {
5533 0 : case LE_EXPR:
5534 0 : {
5535 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5536 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5537 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5538 : {
5539 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5540 : {
5541 0 : if (zerop (_q82))
5542 : {
5543 0 : {
5544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5545 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
5546 0 : if (res) return res;
5547 : }
5548 : }
5549 : }
5550 : }
5551 : break;
5552 : }
5553 : default:;
5554 : }
5555 : break;
5556 : }
5557 : default:;
5558 : }
5559 : }
5560 : break;
5561 : }
5562 0 : case UNGE_EXPR:
5563 0 : {
5564 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5565 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5566 0 : if (zerop (_q22))
5567 : {
5568 0 : switch (TREE_CODE (_p1))
5569 : {
5570 0 : case COND_EXPR:
5571 0 : {
5572 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5573 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5574 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5575 0 : switch (TREE_CODE (_q80))
5576 : {
5577 0 : case LT_EXPR:
5578 0 : {
5579 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5580 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5581 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5582 : {
5583 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5584 : {
5585 0 : if (zerop (_q82))
5586 : {
5587 0 : {
5588 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5589 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
5590 0 : if (res) return res;
5591 : }
5592 : }
5593 : }
5594 : }
5595 : break;
5596 : }
5597 : default:;
5598 : }
5599 : break;
5600 : }
5601 : default:;
5602 : }
5603 : }
5604 : break;
5605 : }
5606 0 : case UNEQ_EXPR:
5607 0 : {
5608 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5609 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5610 0 : if (zerop (_q22))
5611 : {
5612 0 : switch (TREE_CODE (_p1))
5613 : {
5614 0 : case COND_EXPR:
5615 0 : {
5616 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5617 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5618 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5619 0 : switch (TREE_CODE (_q80))
5620 : {
5621 0 : case LTGT_EXPR:
5622 0 : {
5623 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5624 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5625 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5626 : {
5627 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5628 : {
5629 0 : if (zerop (_q82))
5630 : {
5631 0 : {
5632 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5633 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
5634 0 : if (res) return res;
5635 : }
5636 : }
5637 : }
5638 : }
5639 : break;
5640 : }
5641 : default:;
5642 : }
5643 : break;
5644 : }
5645 : default:;
5646 : }
5647 : }
5648 : break;
5649 : }
5650 0 : case LTGT_EXPR:
5651 0 : {
5652 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5653 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5654 0 : if (zerop (_q22))
5655 : {
5656 0 : switch (TREE_CODE (_p1))
5657 : {
5658 0 : case COND_EXPR:
5659 0 : {
5660 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5661 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5662 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5663 0 : switch (TREE_CODE (_q80))
5664 : {
5665 0 : case UNEQ_EXPR:
5666 0 : {
5667 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5668 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5669 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5670 : {
5671 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5672 : {
5673 0 : if (zerop (_q82))
5674 : {
5675 0 : {
5676 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
5677 0 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
5678 0 : if (res) return res;
5679 : }
5680 : }
5681 : }
5682 : }
5683 : break;
5684 : }
5685 : default:;
5686 : }
5687 : break;
5688 : }
5689 : default:;
5690 : }
5691 : }
5692 : break;
5693 : }
5694 : default:;
5695 : }
5696 : break;
5697 : }
5698 168 : case VEC_COND_EXPR:
5699 168 : {
5700 168 : tree _q20 = TREE_OPERAND (_p0, 0);
5701 168 : tree _q21 = TREE_OPERAND (_p0, 1);
5702 168 : tree _q22 = TREE_OPERAND (_p0, 2);
5703 168 : if (integer_zerop (_q22))
5704 : {
5705 106 : switch (TREE_CODE (_p1))
5706 : {
5707 24 : case VEC_COND_EXPR:
5708 24 : {
5709 24 : tree _q60 = TREE_OPERAND (_p1, 0);
5710 24 : tree _q61 = TREE_OPERAND (_p1, 1);
5711 24 : tree _q62 = TREE_OPERAND (_p1, 2);
5712 24 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5713 : {
5714 0 : if (integer_zerop (_q61))
5715 : {
5716 0 : {
5717 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
5718 0 : const enum tree_code op = PLUS_EXPR;
5719 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1300;
5720 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1300;
5721 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1300;
5722 0 : {
5723 0 : tree res_op0;
5724 0 : res_op0 = captures[1];
5725 0 : tree res_op1;
5726 0 : res_op1 = captures[2];
5727 0 : tree res_op2;
5728 0 : res_op2 = captures[4];
5729 0 : tree _r;
5730 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5731 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
5732 : return _r;
5733 : }
5734 168 : next_after_fail1300:;
5735 : }
5736 : }
5737 : }
5738 : break;
5739 : }
5740 : default:;
5741 : }
5742 : }
5743 168 : if (integer_zerop (_q21))
5744 : {
5745 0 : switch (TREE_CODE (_p1))
5746 : {
5747 0 : case VEC_COND_EXPR:
5748 0 : {
5749 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5750 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5751 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5752 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5753 : {
5754 0 : if (integer_zerop (_q62))
5755 : {
5756 0 : {
5757 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
5758 0 : const enum tree_code op = PLUS_EXPR;
5759 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1301;
5760 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1301;
5761 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1301;
5762 0 : {
5763 0 : tree res_op0;
5764 0 : res_op0 = captures[1];
5765 0 : tree res_op1;
5766 0 : res_op1 = captures[2];
5767 0 : tree res_op2;
5768 0 : res_op2 = captures[4];
5769 0 : tree _r;
5770 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5771 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
5772 : return _r;
5773 : }
5774 168 : next_after_fail1301:;
5775 : }
5776 : }
5777 : }
5778 : break;
5779 : }
5780 : default:;
5781 : }
5782 : }
5783 168 : switch (TREE_CODE (_q20))
5784 : {
5785 8 : case LT_EXPR:
5786 8 : {
5787 8 : tree _q30 = TREE_OPERAND (_q20, 0);
5788 8 : tree _q31 = TREE_OPERAND (_q20, 1);
5789 8 : if (integer_zerop (_q22))
5790 : {
5791 8 : switch (TREE_CODE (_p1))
5792 : {
5793 0 : case VEC_COND_EXPR:
5794 0 : {
5795 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5796 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5797 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5798 0 : switch (TREE_CODE (_q80))
5799 : {
5800 0 : case GE_EXPR:
5801 0 : {
5802 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5803 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5804 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5805 : {
5806 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5807 : {
5808 0 : if (integer_zerop (_q82))
5809 : {
5810 0 : {
5811 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5812 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
5813 0 : if (res) return res;
5814 : }
5815 : }
5816 : }
5817 : }
5818 : break;
5819 : }
5820 : default:;
5821 : }
5822 : break;
5823 : }
5824 : default:;
5825 : }
5826 : }
5827 : break;
5828 : }
5829 8 : case LE_EXPR:
5830 8 : {
5831 8 : tree _q30 = TREE_OPERAND (_q20, 0);
5832 8 : tree _q31 = TREE_OPERAND (_q20, 1);
5833 8 : if (integer_zerop (_q22))
5834 : {
5835 8 : switch (TREE_CODE (_p1))
5836 : {
5837 0 : case VEC_COND_EXPR:
5838 0 : {
5839 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5840 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5841 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5842 0 : switch (TREE_CODE (_q80))
5843 : {
5844 0 : case GT_EXPR:
5845 0 : {
5846 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5847 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5848 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5849 : {
5850 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5851 : {
5852 0 : if (integer_zerop (_q82))
5853 : {
5854 0 : {
5855 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5856 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
5857 0 : if (res) return res;
5858 : }
5859 : }
5860 : }
5861 : }
5862 : break;
5863 : }
5864 : default:;
5865 : }
5866 : break;
5867 : }
5868 : default:;
5869 : }
5870 : }
5871 : break;
5872 : }
5873 34 : case EQ_EXPR:
5874 34 : {
5875 34 : tree _q30 = TREE_OPERAND (_q20, 0);
5876 34 : tree _q31 = TREE_OPERAND (_q20, 1);
5877 34 : if (integer_zerop (_q22))
5878 : {
5879 34 : switch (TREE_CODE (_p1))
5880 : {
5881 24 : case VEC_COND_EXPR:
5882 24 : {
5883 24 : tree _q80 = TREE_OPERAND (_p1, 0);
5884 24 : tree _q81 = TREE_OPERAND (_p1, 1);
5885 24 : tree _q82 = TREE_OPERAND (_p1, 2);
5886 24 : switch (TREE_CODE (_q80))
5887 : {
5888 24 : case NE_EXPR:
5889 24 : {
5890 24 : tree _q90 = TREE_OPERAND (_q80, 0);
5891 24 : tree _q91 = TREE_OPERAND (_q80, 1);
5892 24 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5893 : {
5894 24 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5895 : {
5896 24 : if (integer_zerop (_q82))
5897 : {
5898 24 : {
5899 24 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5900 24 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
5901 24 : if (res) return res;
5902 : }
5903 : }
5904 : }
5905 : }
5906 : break;
5907 : }
5908 : default:;
5909 : }
5910 : break;
5911 : }
5912 : default:;
5913 : }
5914 : }
5915 : break;
5916 : }
5917 22 : case NE_EXPR:
5918 22 : {
5919 22 : tree _q30 = TREE_OPERAND (_q20, 0);
5920 22 : tree _q31 = TREE_OPERAND (_q20, 1);
5921 22 : if (integer_zerop (_q22))
5922 : {
5923 8 : switch (TREE_CODE (_p1))
5924 : {
5925 0 : case VEC_COND_EXPR:
5926 0 : {
5927 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5928 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5929 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5930 0 : switch (TREE_CODE (_q80))
5931 : {
5932 0 : case EQ_EXPR:
5933 0 : {
5934 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5935 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5936 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5937 : {
5938 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5939 : {
5940 0 : if (integer_zerop (_q82))
5941 : {
5942 0 : {
5943 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5944 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
5945 0 : if (res) return res;
5946 : }
5947 : }
5948 : }
5949 : }
5950 : break;
5951 : }
5952 : default:;
5953 : }
5954 : break;
5955 : }
5956 : default:;
5957 : }
5958 : }
5959 : break;
5960 : }
5961 15 : case GE_EXPR:
5962 15 : {
5963 15 : tree _q30 = TREE_OPERAND (_q20, 0);
5964 15 : tree _q31 = TREE_OPERAND (_q20, 1);
5965 15 : if (integer_zerop (_q22))
5966 : {
5967 15 : switch (TREE_CODE (_p1))
5968 : {
5969 0 : case VEC_COND_EXPR:
5970 0 : {
5971 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5972 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5973 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5974 0 : switch (TREE_CODE (_q80))
5975 : {
5976 0 : case LT_EXPR:
5977 0 : {
5978 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5979 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5980 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5981 : {
5982 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5983 : {
5984 0 : if (integer_zerop (_q82))
5985 : {
5986 0 : {
5987 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5988 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
5989 0 : if (res) return res;
5990 : }
5991 : }
5992 : }
5993 : }
5994 : break;
5995 : }
5996 : default:;
5997 : }
5998 : break;
5999 : }
6000 : default:;
6001 : }
6002 : }
6003 : break;
6004 : }
6005 81 : case GT_EXPR:
6006 81 : {
6007 81 : tree _q30 = TREE_OPERAND (_q20, 0);
6008 81 : tree _q31 = TREE_OPERAND (_q20, 1);
6009 81 : if (integer_zerop (_q22))
6010 : {
6011 33 : switch (TREE_CODE (_p1))
6012 : {
6013 0 : case VEC_COND_EXPR:
6014 0 : {
6015 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6016 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6017 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6018 0 : switch (TREE_CODE (_q80))
6019 : {
6020 0 : case LE_EXPR:
6021 0 : {
6022 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6023 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6024 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6025 : {
6026 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6027 : {
6028 0 : if (integer_zerop (_q82))
6029 : {
6030 0 : {
6031 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6032 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
6033 0 : if (res) return res;
6034 : }
6035 : }
6036 : }
6037 : }
6038 : break;
6039 : }
6040 : default:;
6041 : }
6042 : break;
6043 : }
6044 : default:;
6045 : }
6046 : }
6047 : break;
6048 : }
6049 0 : case UNORDERED_EXPR:
6050 0 : {
6051 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6052 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6053 0 : if (integer_zerop (_q22))
6054 : {
6055 0 : switch (TREE_CODE (_p1))
6056 : {
6057 0 : case VEC_COND_EXPR:
6058 0 : {
6059 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6060 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6061 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6062 0 : switch (TREE_CODE (_q80))
6063 : {
6064 0 : case ORDERED_EXPR:
6065 0 : {
6066 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6067 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6068 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6069 : {
6070 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6071 : {
6072 0 : if (integer_zerop (_q82))
6073 : {
6074 0 : {
6075 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6076 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
6077 0 : if (res) return res;
6078 : }
6079 : }
6080 : }
6081 : }
6082 : break;
6083 : }
6084 : default:;
6085 : }
6086 : break;
6087 : }
6088 : default:;
6089 : }
6090 : }
6091 : break;
6092 : }
6093 0 : case ORDERED_EXPR:
6094 0 : {
6095 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6096 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6097 0 : if (integer_zerop (_q22))
6098 : {
6099 0 : switch (TREE_CODE (_p1))
6100 : {
6101 0 : case VEC_COND_EXPR:
6102 0 : {
6103 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6104 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6105 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6106 0 : switch (TREE_CODE (_q80))
6107 : {
6108 0 : case UNORDERED_EXPR:
6109 0 : {
6110 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6111 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6112 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6113 : {
6114 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6115 : {
6116 0 : if (integer_zerop (_q82))
6117 : {
6118 0 : {
6119 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6120 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
6121 0 : if (res) return res;
6122 : }
6123 : }
6124 : }
6125 : }
6126 : break;
6127 : }
6128 : default:;
6129 : }
6130 : break;
6131 : }
6132 : default:;
6133 : }
6134 : }
6135 : break;
6136 : }
6137 0 : case UNLT_EXPR:
6138 0 : {
6139 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6140 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6141 0 : if (integer_zerop (_q22))
6142 : {
6143 0 : switch (TREE_CODE (_p1))
6144 : {
6145 0 : case VEC_COND_EXPR:
6146 0 : {
6147 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6148 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6149 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6150 0 : switch (TREE_CODE (_q80))
6151 : {
6152 0 : case GE_EXPR:
6153 0 : {
6154 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6155 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6156 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6157 : {
6158 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6159 : {
6160 0 : if (integer_zerop (_q82))
6161 : {
6162 0 : {
6163 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6164 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
6165 0 : if (res) return res;
6166 : }
6167 : }
6168 : }
6169 : }
6170 : break;
6171 : }
6172 : default:;
6173 : }
6174 : break;
6175 : }
6176 : default:;
6177 : }
6178 : }
6179 : break;
6180 : }
6181 0 : case UNLE_EXPR:
6182 0 : {
6183 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6184 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6185 0 : if (integer_zerop (_q22))
6186 : {
6187 0 : switch (TREE_CODE (_p1))
6188 : {
6189 0 : case VEC_COND_EXPR:
6190 0 : {
6191 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6192 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6193 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6194 0 : switch (TREE_CODE (_q80))
6195 : {
6196 0 : case GT_EXPR:
6197 0 : {
6198 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6199 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6200 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6201 : {
6202 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6203 : {
6204 0 : if (integer_zerop (_q82))
6205 : {
6206 0 : {
6207 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6208 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
6209 0 : if (res) return res;
6210 : }
6211 : }
6212 : }
6213 : }
6214 : break;
6215 : }
6216 : default:;
6217 : }
6218 : break;
6219 : }
6220 : default:;
6221 : }
6222 : }
6223 : break;
6224 : }
6225 0 : case UNGT_EXPR:
6226 0 : {
6227 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6228 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6229 0 : if (integer_zerop (_q22))
6230 : {
6231 0 : switch (TREE_CODE (_p1))
6232 : {
6233 0 : case VEC_COND_EXPR:
6234 0 : {
6235 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6236 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6237 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6238 0 : switch (TREE_CODE (_q80))
6239 : {
6240 0 : case LE_EXPR:
6241 0 : {
6242 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6243 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6244 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6245 : {
6246 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6247 : {
6248 0 : if (integer_zerop (_q82))
6249 : {
6250 0 : {
6251 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6252 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
6253 0 : if (res) return res;
6254 : }
6255 : }
6256 : }
6257 : }
6258 : break;
6259 : }
6260 : default:;
6261 : }
6262 : break;
6263 : }
6264 : default:;
6265 : }
6266 : }
6267 : break;
6268 : }
6269 0 : case UNGE_EXPR:
6270 0 : {
6271 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6272 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6273 0 : if (integer_zerop (_q22))
6274 : {
6275 0 : switch (TREE_CODE (_p1))
6276 : {
6277 0 : case VEC_COND_EXPR:
6278 0 : {
6279 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6280 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6281 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6282 0 : switch (TREE_CODE (_q80))
6283 : {
6284 0 : case LT_EXPR:
6285 0 : {
6286 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6287 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6288 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6289 : {
6290 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6291 : {
6292 0 : if (integer_zerop (_q82))
6293 : {
6294 0 : {
6295 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6296 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
6297 0 : if (res) return res;
6298 : }
6299 : }
6300 : }
6301 : }
6302 : break;
6303 : }
6304 : default:;
6305 : }
6306 : break;
6307 : }
6308 : default:;
6309 : }
6310 : }
6311 : break;
6312 : }
6313 0 : case UNEQ_EXPR:
6314 0 : {
6315 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6316 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6317 0 : if (integer_zerop (_q22))
6318 : {
6319 0 : switch (TREE_CODE (_p1))
6320 : {
6321 0 : case VEC_COND_EXPR:
6322 0 : {
6323 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6324 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6325 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6326 0 : switch (TREE_CODE (_q80))
6327 : {
6328 0 : case LTGT_EXPR:
6329 0 : {
6330 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6331 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6332 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6333 : {
6334 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6335 : {
6336 0 : if (integer_zerop (_q82))
6337 : {
6338 0 : {
6339 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6340 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
6341 0 : if (res) return res;
6342 : }
6343 : }
6344 : }
6345 : }
6346 : break;
6347 : }
6348 : default:;
6349 : }
6350 : break;
6351 : }
6352 : default:;
6353 : }
6354 : }
6355 : break;
6356 : }
6357 0 : case LTGT_EXPR:
6358 0 : {
6359 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6360 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6361 0 : if (integer_zerop (_q22))
6362 : {
6363 0 : switch (TREE_CODE (_p1))
6364 : {
6365 0 : case VEC_COND_EXPR:
6366 0 : {
6367 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6368 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6369 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6370 0 : switch (TREE_CODE (_q80))
6371 : {
6372 0 : case UNEQ_EXPR:
6373 0 : {
6374 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6375 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6376 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6377 : {
6378 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6379 : {
6380 0 : if (integer_zerop (_q82))
6381 : {
6382 0 : {
6383 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6384 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
6385 0 : if (res) return res;
6386 : }
6387 : }
6388 : }
6389 : }
6390 : break;
6391 : }
6392 : default:;
6393 : }
6394 : break;
6395 : }
6396 : default:;
6397 : }
6398 : }
6399 : break;
6400 : }
6401 : default:;
6402 : }
6403 : break;
6404 : }
6405 71330609 : default:;
6406 : }
6407 71330609 : {
6408 71330609 : tree _p0_pops[1];
6409 71330609 : if (tree_nop_convert (_p0, _p0_pops))
6410 : {
6411 14243349 : tree _q20 = _p0_pops[0];
6412 14243349 : switch (TREE_CODE (_q20))
6413 : {
6414 100445 : case MINUS_EXPR:
6415 100445 : {
6416 100445 : tree _q30 = TREE_OPERAND (_q20, 0);
6417 100445 : tree _q31 = TREE_OPERAND (_q20, 1);
6418 100445 : switch (TREE_CODE (_q30))
6419 : {
6420 2 : case BIT_AND_EXPR:
6421 2 : {
6422 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6423 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6424 2 : switch (TREE_CODE (_q31))
6425 : {
6426 1 : case BIT_IOR_EXPR:
6427 1 : {
6428 1 : tree _q70 = TREE_OPERAND (_q31, 0);
6429 1 : tree _q71 = TREE_OPERAND (_q31, 1);
6430 1 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6431 : {
6432 1 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
6433 : {
6434 1 : if (integer_all_onesp (_p1))
6435 : {
6436 1 : {
6437 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
6438 1 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
6439 1 : if (res) return res;
6440 : }
6441 : }
6442 : }
6443 : }
6444 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
6445 : {
6446 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
6447 : {
6448 0 : if (integer_all_onesp (_p1))
6449 : {
6450 0 : {
6451 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
6452 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
6453 0 : if (res) return res;
6454 : }
6455 : }
6456 : }
6457 : }
6458 : break;
6459 : }
6460 : default:;
6461 : }
6462 : break;
6463 : }
6464 100444 : default:;
6465 : }
6466 100444 : {
6467 100444 : tree _q30_pops[1];
6468 100444 : if (tree_nop_convert (_q30, _q30_pops))
6469 : {
6470 51161 : tree _q40 = _q30_pops[0];
6471 51161 : switch (TREE_CODE (_q40))
6472 : {
6473 0 : case BIT_AND_EXPR:
6474 0 : {
6475 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6476 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6477 0 : {
6478 0 : tree _q31_pops[1];
6479 0 : if (tree_nop_convert (_q31, _q31_pops))
6480 : {
6481 0 : tree _q80 = _q31_pops[0];
6482 0 : switch (TREE_CODE (_q80))
6483 : {
6484 0 : case BIT_IOR_EXPR:
6485 0 : {
6486 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6487 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6488 0 : if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
6489 : {
6490 0 : if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
6491 : {
6492 0 : if (integer_all_onesp (_p1))
6493 : {
6494 0 : {
6495 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
6496 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
6497 0 : if (res) return res;
6498 : }
6499 : }
6500 : }
6501 : }
6502 0 : if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
6503 : {
6504 0 : if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
6505 : {
6506 0 : if (integer_all_onesp (_p1))
6507 : {
6508 0 : {
6509 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
6510 0 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
6511 0 : if (res) return res;
6512 : }
6513 : }
6514 : }
6515 : }
6516 : break;
6517 : }
6518 : default:;
6519 : }
6520 : }
6521 : }
6522 0 : break;
6523 : }
6524 : default:;
6525 : }
6526 : }
6527 : }
6528 100444 : break;
6529 : }
6530 : default:;
6531 : }
6532 : }
6533 : }
6534 71330608 : switch (TREE_CODE (_p1))
6535 : {
6536 8384186 : CASE_CONVERT:
6537 8384186 : {
6538 8384186 : tree _q30 = TREE_OPERAND (_p1, 0);
6539 8384186 : switch (TREE_CODE (_q30))
6540 : {
6541 340 : case NEGATE_EXPR:
6542 340 : {
6543 340 : tree _q40 = TREE_OPERAND (_q30, 0);
6544 340 : {
6545 340 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6546 340 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
6547 340 : if (res) return res;
6548 : }
6549 295 : break;
6550 : }
6551 : default:;
6552 : }
6553 : break;
6554 : }
6555 8302 : case NEGATE_EXPR:
6556 8302 : {
6557 8302 : tree _q30 = TREE_OPERAND (_p1, 0);
6558 8302 : {
6559 8302 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6560 8302 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
6561 8302 : if (res) return res;
6562 : }
6563 0 : break;
6564 : }
6565 71322261 : default:;
6566 : }
6567 71322261 : switch (TREE_CODE (_p0))
6568 : {
6569 239236 : case NEGATE_EXPR:
6570 239236 : {
6571 239236 : tree _q20 = TREE_OPERAND (_p0, 0);
6572 239236 : {
6573 239236 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
6574 239236 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
6575 239236 : if (res) return res;
6576 : }
6577 134 : break;
6578 : }
6579 71083159 : default:;
6580 : }
6581 71083159 : {
6582 71083159 : tree _p0_pops[1];
6583 71083159 : if (tree_nop_convert (_p0, _p0_pops))
6584 : {
6585 14238720 : tree _q20 = _p0_pops[0];
6586 14238720 : switch (TREE_CODE (_q20))
6587 : {
6588 100424 : case MINUS_EXPR:
6589 100424 : {
6590 100424 : tree _q30 = TREE_OPERAND (_q20, 0);
6591 100424 : tree _q31 = TREE_OPERAND (_q20, 1);
6592 100424 : {
6593 100424 : tree _q31_pops[1];
6594 100424 : if (tree_nop_convert (_q31, _q31_pops))
6595 : {
6596 63791 : tree _q50 = _q31_pops[0];
6597 63791 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
6598 : {
6599 28 : {
6600 28 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
6601 28 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6602 28 : if (res) return res;
6603 : }
6604 : }
6605 : }
6606 : }
6607 100396 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6608 : {
6609 6 : {
6610 6 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6611 6 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6612 6 : if (res) return res;
6613 : }
6614 : }
6615 100390 : if (CONSTANT_CLASS_P (_q31))
6616 : {
6617 17163 : if (CONSTANT_CLASS_P (_p1))
6618 : {
6619 17041 : {
6620 17041 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6621 17041 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
6622 17041 : if (res) return res;
6623 : }
6624 : }
6625 : }
6626 83349 : if (CONSTANT_CLASS_P (_q30))
6627 : {
6628 16636 : if (CONSTANT_CLASS_P (_p1))
6629 : {
6630 5884 : {
6631 5884 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6632 5884 : tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6633 5884 : if (res) return res;
6634 : }
6635 : }
6636 : }
6637 : break;
6638 : }
6639 1324002 : case PLUS_EXPR:
6640 1324002 : {
6641 1324002 : tree _q30 = TREE_OPERAND (_q20, 0);
6642 1324002 : tree _q31 = TREE_OPERAND (_q20, 1);
6643 1324002 : if (CONSTANT_CLASS_P (_q31))
6644 : {
6645 1111878 : if (CONSTANT_CLASS_P (_p1))
6646 : {
6647 1021538 : {
6648 1021538 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6649 1021538 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
6650 1021538 : if (res) return res;
6651 : }
6652 : }
6653 : }
6654 : break;
6655 : }
6656 : default:;
6657 : }
6658 : }
6659 : }
6660 70039626 : switch (TREE_CODE (_p1))
6661 : {
6662 176124 : case MINUS_EXPR:
6663 176124 : {
6664 176124 : tree _q30 = TREE_OPERAND (_p1, 0);
6665 176124 : tree _q31 = TREE_OPERAND (_p1, 1);
6666 176124 : {
6667 176124 : tree _q31_pops[1];
6668 176124 : if (tree_nop_convert (_q31, _q31_pops))
6669 : {
6670 61563 : tree _q50 = _q31_pops[0];
6671 61563 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6672 : {
6673 0 : {
6674 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
6675 0 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6676 0 : if (res) return res;
6677 : }
6678 : }
6679 : }
6680 : }
6681 176124 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6682 : {
6683 312 : {
6684 312 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
6685 312 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6686 312 : if (res) return res;
6687 : }
6688 : }
6689 : break;
6690 : }
6691 70039314 : default:;
6692 : }
6693 70039314 : {
6694 70039314 : tree _p1_pops[1];
6695 70039314 : if (tree_nop_convert (_p1, _p1_pops))
6696 : {
6697 8072639 : tree _q30 = _p1_pops[0];
6698 8072639 : switch (TREE_CODE (_q30))
6699 : {
6700 3648 : case MINUS_EXPR:
6701 3648 : {
6702 3648 : tree _q40 = TREE_OPERAND (_q30, 0);
6703 3648 : tree _q41 = TREE_OPERAND (_q30, 1);
6704 3648 : {
6705 3648 : tree _q41_pops[1];
6706 3648 : if (tree_nop_convert (_q41, _q41_pops))
6707 : {
6708 608 : tree _q60 = _q41_pops[0];
6709 608 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6710 : {
6711 0 : {
6712 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
6713 0 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6714 0 : if (res) return res;
6715 : }
6716 : }
6717 : }
6718 : }
6719 3648 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6720 : {
6721 0 : {
6722 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
6723 0 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
6724 0 : if (res) return res;
6725 : }
6726 : }
6727 : break;
6728 : }
6729 : default:;
6730 : }
6731 : }
6732 : }
6733 70039314 : switch (TREE_CODE (_p0))
6734 : {
6735 6563752 : case PLUS_EXPR:
6736 6563752 : {
6737 6563752 : tree _q20 = TREE_OPERAND (_p0, 0);
6738 6563752 : tree _q21 = TREE_OPERAND (_p0, 1);
6739 6563752 : switch (TREE_CODE (_p1))
6740 : {
6741 45808 : case MINUS_EXPR:
6742 45808 : {
6743 45808 : tree _q50 = TREE_OPERAND (_p1, 0);
6744 45808 : tree _q51 = TREE_OPERAND (_p1, 1);
6745 45808 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6746 : {
6747 151 : {
6748 151 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6749 151 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
6750 151 : if (res) return res;
6751 : }
6752 : }
6753 45657 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6754 : {
6755 320 : {
6756 320 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6757 320 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
6758 320 : if (res) return res;
6759 : }
6760 : }
6761 : break;
6762 : }
6763 6563281 : default:;
6764 : }
6765 6563281 : if (CONSTANT_CLASS_P (_q21))
6766 : {
6767 2595856 : if (CONSTANT_CLASS_P (_p1))
6768 : {
6769 1910142 : {
6770 1910142 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6771 1910142 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
6772 1910142 : if (res) return res;
6773 : }
6774 : }
6775 : }
6776 : break;
6777 : }
6778 2032071 : case MINUS_EXPR:
6779 2032071 : {
6780 2032071 : tree _q20 = TREE_OPERAND (_p0, 0);
6781 2032071 : tree _q21 = TREE_OPERAND (_p0, 1);
6782 2032071 : switch (TREE_CODE (_p1))
6783 : {
6784 4933 : case PLUS_EXPR:
6785 4933 : {
6786 4933 : tree _q50 = TREE_OPERAND (_p1, 0);
6787 4933 : tree _q51 = TREE_OPERAND (_p1, 1);
6788 4933 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6789 : {
6790 409 : {
6791 409 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6792 409 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
6793 409 : if (res) return res;
6794 : }
6795 : }
6796 4524 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6797 : {
6798 3705 : {
6799 3705 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
6800 3705 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
6801 3705 : if (res) return res;
6802 : }
6803 : }
6804 : break;
6805 : }
6806 734 : case MINUS_EXPR:
6807 734 : {
6808 734 : tree _q50 = TREE_OPERAND (_p1, 0);
6809 734 : tree _q51 = TREE_OPERAND (_p1, 1);
6810 734 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6811 : {
6812 30 : {
6813 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6814 30 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6815 30 : if (res) return res;
6816 : }
6817 : }
6818 704 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6819 : {
6820 153 : {
6821 153 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6822 153 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6823 153 : if (res) return res;
6824 : }
6825 : }
6826 : break;
6827 : }
6828 2027774 : default:;
6829 : }
6830 2027774 : if (CONSTANT_CLASS_P (_q21))
6831 : {
6832 126388 : if (CONSTANT_CLASS_P (_p1))
6833 : {
6834 86590 : {
6835 86590 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6836 86590 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
6837 86590 : if (res) return res;
6838 : }
6839 : }
6840 : }
6841 1941376 : if (CONSTANT_CLASS_P (_q20))
6842 : {
6843 410733 : if (CONSTANT_CLASS_P (_p1))
6844 : {
6845 241199 : {
6846 241199 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6847 241199 : tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6848 241199 : if (res) return res;
6849 : }
6850 : }
6851 : }
6852 : break;
6853 : }
6854 478 : case POINTER_DIFF_EXPR:
6855 478 : {
6856 478 : tree _q20 = TREE_OPERAND (_p0, 0);
6857 478 : tree _q21 = TREE_OPERAND (_p0, 1);
6858 478 : switch (TREE_CODE (_p1))
6859 : {
6860 7 : case POINTER_DIFF_EXPR:
6861 7 : {
6862 7 : tree _q50 = TREE_OPERAND (_p1, 0);
6863 7 : tree _q51 = TREE_OPERAND (_p1, 1);
6864 7 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6865 : {
6866 7 : {
6867 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6868 7 : tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
6869 7 : if (res) return res;
6870 : }
6871 : }
6872 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6873 : {
6874 0 : {
6875 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6876 0 : tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
6877 0 : if (res) return res;
6878 : }
6879 : }
6880 : break;
6881 : }
6882 : default:;
6883 : }
6884 : break;
6885 : }
6886 18223255 : CASE_CONVERT:
6887 18223255 : {
6888 18223255 : tree _q20 = TREE_OPERAND (_p0, 0);
6889 18223255 : switch (TREE_CODE (_p1))
6890 : {
6891 2949536 : CASE_CONVERT:
6892 2949536 : {
6893 2949536 : tree _q40 = TREE_OPERAND (_p1, 0);
6894 2949536 : {
6895 2949536 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6896 2949536 : tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6897 2949536 : if (res) return res;
6898 : }
6899 2949415 : break;
6900 : }
6901 18223134 : default:;
6902 : }
6903 18223134 : switch (TREE_CODE (_q20))
6904 : {
6905 125430 : case BIT_NOT_EXPR:
6906 125430 : {
6907 125430 : tree _q30 = TREE_OPERAND (_q20, 0);
6908 125430 : switch (TREE_CODE (_p1))
6909 : {
6910 212 : CASE_CONVERT:
6911 212 : {
6912 212 : tree _q50 = TREE_OPERAND (_p1, 0);
6913 212 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
6914 : {
6915 0 : {
6916 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
6917 0 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
6918 0 : if (res) return res;
6919 : }
6920 : }
6921 : break;
6922 : }
6923 : default:;
6924 : }
6925 : break;
6926 : }
6927 18223134 : default:;
6928 : }
6929 18223134 : switch (TREE_CODE (_p1))
6930 : {
6931 2949415 : CASE_CONVERT:
6932 2949415 : {
6933 2949415 : tree _q40 = TREE_OPERAND (_p1, 0);
6934 2949415 : switch (TREE_CODE (_q40))
6935 : {
6936 497 : case BIT_NOT_EXPR:
6937 497 : {
6938 497 : tree _q50 = TREE_OPERAND (_q40, 0);
6939 497 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6940 : {
6941 0 : {
6942 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6943 0 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
6944 0 : if (res) return res;
6945 : }
6946 : }
6947 : break;
6948 : }
6949 : default:;
6950 : }
6951 : break;
6952 : }
6953 : default:;
6954 : }
6955 : break;
6956 : }
6957 351120 : case BIT_NOT_EXPR:
6958 351120 : {
6959 351120 : tree _q20 = TREE_OPERAND (_p0, 0);
6960 351120 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6961 : {
6962 764 : {
6963 764 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6964 764 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
6965 764 : if (res) return res;
6966 : }
6967 : }
6968 350356 : if (integer_each_onep (_p1))
6969 : {
6970 2834 : {
6971 2834 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6972 2834 : tree res = generic_simplify_73 (loc, type, _p0, _p1, captures);
6973 2834 : if (res) return res;
6974 : }
6975 : }
6976 : break;
6977 : }
6978 67793437 : default:;
6979 : }
6980 67793437 : switch (TREE_CODE (_p1))
6981 : {
6982 41451 : case BIT_NOT_EXPR:
6983 41451 : {
6984 41451 : tree _q30 = TREE_OPERAND (_p1, 0);
6985 41451 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6986 : {
6987 0 : {
6988 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6989 0 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
6990 0 : if (res) return res;
6991 : }
6992 : }
6993 : break;
6994 : }
6995 67793437 : default:;
6996 : }
6997 67793437 : switch (TREE_CODE (_p0))
6998 : {
6999 18223134 : CASE_CONVERT:
7000 18223134 : {
7001 18223134 : tree _q20 = TREE_OPERAND (_p0, 0);
7002 18223134 : switch (TREE_CODE (_q20))
7003 : {
7004 125430 : case BIT_NOT_EXPR:
7005 125430 : {
7006 125430 : tree _q30 = TREE_OPERAND (_q20, 0);
7007 125430 : if (integer_each_onep (_p1))
7008 : {
7009 120800 : {
7010 120800 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
7011 120800 : tree res = generic_simplify_73 (loc, type, _p0, _p1, captures);
7012 120800 : if (res) return res;
7013 : }
7014 : }
7015 : break;
7016 : }
7017 : default:;
7018 : }
7019 : break;
7020 : }
7021 13399142 : case MULT_EXPR:
7022 13399142 : {
7023 13399142 : tree _q20 = TREE_OPERAND (_p0, 0);
7024 13399142 : tree _q21 = TREE_OPERAND (_p0, 1);
7025 13399142 : switch (TREE_CODE (_p1))
7026 : {
7027 3355338 : case MULT_EXPR:
7028 3355338 : {
7029 3355338 : tree _q50 = TREE_OPERAND (_p1, 0);
7030 3355338 : tree _q51 = TREE_OPERAND (_p1, 1);
7031 3355338 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7032 : {
7033 791728 : {
7034 791728 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
7035 791728 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7036 791728 : if (res) return res;
7037 : }
7038 : }
7039 3350942 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7040 : {
7041 22 : {
7042 22 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
7043 22 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7044 22 : if (res) return res;
7045 : }
7046 : }
7047 3350936 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7048 : {
7049 242 : {
7050 242 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
7051 242 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7052 242 : if (res) return res;
7053 : }
7054 : }
7055 3350764 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7056 : {
7057 1270797 : {
7058 1270797 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
7059 1270797 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7060 1270797 : if (res) return res;
7061 : }
7062 : }
7063 : break;
7064 : }
7065 : default:;
7066 : }
7067 : break;
7068 : }
7069 66398363 : default:;
7070 : }
7071 66398363 : switch (TREE_CODE (_p1))
7072 : {
7073 3504945 : case MULT_EXPR:
7074 3504945 : {
7075 3504945 : tree _q30 = TREE_OPERAND (_p1, 0);
7076 3504945 : tree _q31 = TREE_OPERAND (_p1, 1);
7077 3504945 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7078 : {
7079 3905 : {
7080 3905 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7081 3905 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7082 3905 : if (res) return res;
7083 : }
7084 : }
7085 3501087 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7086 : {
7087 0 : {
7088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
7089 0 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7090 0 : if (res) return res;
7091 : }
7092 : }
7093 : break;
7094 : }
7095 66394505 : default:;
7096 : }
7097 66394505 : switch (TREE_CODE (_p0))
7098 : {
7099 12124013 : case MULT_EXPR:
7100 12124013 : {
7101 12124013 : tree _q20 = TREE_OPERAND (_p0, 0);
7102 12124013 : tree _q21 = TREE_OPERAND (_p0, 1);
7103 12124013 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7104 : {
7105 33293 : {
7106 33293 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7107 33293 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7108 33293 : if (res) return res;
7109 : }
7110 : }
7111 12091373 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7112 : {
7113 325319 : {
7114 325319 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7115 325319 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7116 325319 : if (res) return res;
7117 : }
7118 : }
7119 11766672 : if (integer_nonzerop (_q20))
7120 : {
7121 102 : switch (TREE_CODE (_p1))
7122 : {
7123 50 : case INTEGER_CST:
7124 50 : {
7125 50 : {
7126 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7127 50 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7128 50 : if (res) return res;
7129 : }
7130 50 : break;
7131 : }
7132 : default:;
7133 : }
7134 : }
7135 11766672 : if (integer_nonzerop (_q21))
7136 : {
7137 7823241 : switch (TREE_CODE (_p1))
7138 : {
7139 3844705 : case INTEGER_CST:
7140 3844705 : {
7141 3844705 : {
7142 3844705 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
7143 3844705 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7144 3844705 : if (res) return res;
7145 : }
7146 3381983 : break;
7147 : }
7148 : default:;
7149 : }
7150 : }
7151 11303950 : switch (TREE_CODE (_q20))
7152 : {
7153 210204 : case MINUS_EXPR:
7154 210204 : {
7155 210204 : tree _q30 = TREE_OPERAND (_q20, 0);
7156 210204 : tree _q31 = TREE_OPERAND (_q20, 1);
7157 210204 : if (tree_zero_one_valued_p (_q21))
7158 : {
7159 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
7160 : {
7161 0 : {
7162 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
7163 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures);
7164 0 : if (res) return res;
7165 : }
7166 : }
7167 : }
7168 : break;
7169 : }
7170 11303950 : default:;
7171 : }
7172 11303950 : if (tree_zero_one_valued_p (_q20))
7173 : {
7174 41231 : switch (TREE_CODE (_q21))
7175 : {
7176 9 : case MINUS_EXPR:
7177 9 : {
7178 9 : tree _q40 = TREE_OPERAND (_q21, 0);
7179 9 : tree _q41 = TREE_OPERAND (_q21, 1);
7180 9 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
7181 : {
7182 9 : {
7183 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
7184 9 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures);
7185 9 : if (res) return res;
7186 : }
7187 : }
7188 : break;
7189 : }
7190 : default:;
7191 : }
7192 : }
7193 : break;
7194 : }
7195 3104 : case MIN_EXPR:
7196 3104 : {
7197 3104 : tree _q20 = TREE_OPERAND (_p0, 0);
7198 3104 : tree _q21 = TREE_OPERAND (_p0, 1);
7199 3104 : switch (TREE_CODE (_p1))
7200 : {
7201 0 : case MAX_EXPR:
7202 0 : {
7203 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7204 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7205 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7206 : {
7207 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7208 : {
7209 0 : {
7210 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7211 0 : if (!HONOR_NANS (captures[0])
7212 : )
7213 : {
7214 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1302;
7215 0 : {
7216 0 : tree res_op0;
7217 0 : res_op0 = captures[0];
7218 0 : tree res_op1;
7219 0 : res_op1 = captures[1];
7220 0 : tree _r;
7221 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
7222 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7223 : return _r;
7224 : }
7225 0 : next_after_fail1302:;
7226 : }
7227 : }
7228 : }
7229 : }
7230 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7231 : {
7232 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7233 : {
7234 0 : {
7235 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7236 0 : if (!HONOR_NANS (captures[0])
7237 : )
7238 : {
7239 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1303;
7240 0 : {
7241 0 : tree res_op0;
7242 0 : res_op0 = captures[0];
7243 0 : tree res_op1;
7244 0 : res_op1 = captures[1];
7245 0 : tree _r;
7246 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
7247 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7248 : return _r;
7249 : }
7250 0 : next_after_fail1303:;
7251 : }
7252 : }
7253 : }
7254 : }
7255 : break;
7256 : }
7257 : default:;
7258 : }
7259 : break;
7260 : }
7261 12220 : case MAX_EXPR:
7262 12220 : {
7263 12220 : tree _q20 = TREE_OPERAND (_p0, 0);
7264 12220 : tree _q21 = TREE_OPERAND (_p0, 1);
7265 12220 : switch (TREE_CODE (_p1))
7266 : {
7267 0 : case MIN_EXPR:
7268 0 : {
7269 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7270 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7271 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7272 : {
7273 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7274 : {
7275 0 : {
7276 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7277 0 : if (!HONOR_NANS (captures[0])
7278 : )
7279 : {
7280 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1304;
7281 0 : {
7282 0 : tree res_op0;
7283 0 : res_op0 = captures[0];
7284 0 : tree res_op1;
7285 0 : res_op1 = captures[1];
7286 0 : tree _r;
7287 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
7288 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7289 : return _r;
7290 : }
7291 0 : next_after_fail1304:;
7292 : }
7293 : }
7294 : }
7295 : }
7296 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7297 : {
7298 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7299 : {
7300 0 : {
7301 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7302 0 : if (!HONOR_NANS (captures[0])
7303 : )
7304 : {
7305 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1305;
7306 0 : {
7307 0 : tree res_op0;
7308 0 : res_op0 = captures[0];
7309 0 : tree res_op1;
7310 0 : res_op1 = captures[1];
7311 0 : tree _r;
7312 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
7313 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7314 : return _r;
7315 : }
7316 0 : next_after_fail1305:;
7317 : }
7318 : }
7319 : }
7320 : }
7321 : break;
7322 : }
7323 : default:;
7324 : }
7325 : break;
7326 : }
7327 65574440 : default:;
7328 : }
7329 65574440 : switch (TREE_CODE (_p1))
7330 : {
7331 3501023 : case MULT_EXPR:
7332 3501023 : {
7333 3501023 : tree _q30 = TREE_OPERAND (_p1, 0);
7334 3501023 : tree _q31 = TREE_OPERAND (_p1, 1);
7335 3501023 : switch (TREE_CODE (_q30))
7336 : {
7337 152379 : case MINUS_EXPR:
7338 152379 : {
7339 152379 : tree _q40 = TREE_OPERAND (_q30, 0);
7340 152379 : tree _q41 = TREE_OPERAND (_q30, 1);
7341 152379 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
7342 : {
7343 16 : if (tree_zero_one_valued_p (_q31))
7344 : {
7345 0 : {
7346 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
7347 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures);
7348 0 : if (res) return res;
7349 : }
7350 : }
7351 : }
7352 : break;
7353 : }
7354 3501023 : default:;
7355 : }
7356 3501023 : if (tree_zero_one_valued_p (_q30))
7357 : {
7358 13733 : switch (TREE_CODE (_q31))
7359 : {
7360 0 : case MINUS_EXPR:
7361 0 : {
7362 0 : tree _q50 = TREE_OPERAND (_q31, 0);
7363 0 : tree _q51 = TREE_OPERAND (_q31, 1);
7364 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
7365 : {
7366 0 : {
7367 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
7368 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures);
7369 0 : if (res) return res;
7370 : }
7371 : }
7372 : break;
7373 : }
7374 : default:;
7375 : }
7376 : }
7377 : break;
7378 : }
7379 65574440 : default:;
7380 : }
7381 65574440 : switch (TREE_CODE (_p0))
7382 : {
7383 1541 : case BIT_XOR_EXPR:
7384 1541 : {
7385 1541 : tree _q20 = TREE_OPERAND (_p0, 0);
7386 1541 : tree _q21 = TREE_OPERAND (_p0, 1);
7387 1541 : switch (TREE_CODE (_q21))
7388 : {
7389 8 : case NEGATE_EXPR:
7390 8 : {
7391 8 : tree _q40 = TREE_OPERAND (_q21, 0);
7392 8 : if (tree_zero_one_valued_p (_q40))
7393 : {
7394 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7395 : {
7396 0 : {
7397 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
7398 0 : tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
7399 0 : if (res) return res;
7400 : }
7401 : }
7402 : }
7403 : break;
7404 : }
7405 1541 : default:;
7406 : }
7407 1541 : switch (TREE_CODE (_q20))
7408 : {
7409 10 : case NEGATE_EXPR:
7410 10 : {
7411 10 : tree _q30 = TREE_OPERAND (_q20, 0);
7412 10 : if (tree_zero_one_valued_p (_q30))
7413 : {
7414 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7415 : {
7416 0 : {
7417 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
7418 0 : tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
7419 0 : if (res) return res;
7420 : }
7421 : }
7422 : }
7423 : break;
7424 : }
7425 : default:;
7426 : }
7427 : break;
7428 : }
7429 65574440 : default:;
7430 : }
7431 65574440 : switch (TREE_CODE (_p1))
7432 : {
7433 165 : case BIT_XOR_EXPR:
7434 165 : {
7435 165 : tree _q30 = TREE_OPERAND (_p1, 0);
7436 165 : tree _q31 = TREE_OPERAND (_p1, 1);
7437 165 : switch (TREE_CODE (_q31))
7438 : {
7439 0 : case NEGATE_EXPR:
7440 0 : {
7441 0 : tree _q50 = TREE_OPERAND (_q31, 0);
7442 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7443 : {
7444 0 : if (tree_zero_one_valued_p (_q50))
7445 : {
7446 0 : {
7447 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
7448 0 : tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
7449 0 : if (res) return res;
7450 : }
7451 : }
7452 : }
7453 : break;
7454 : }
7455 165 : default:;
7456 : }
7457 165 : switch (TREE_CODE (_q30))
7458 : {
7459 0 : case NEGATE_EXPR:
7460 0 : {
7461 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7462 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7463 : {
7464 0 : if (tree_zero_one_valued_p (_q40))
7465 : {
7466 0 : {
7467 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
7468 0 : tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
7469 0 : if (res) return res;
7470 : }
7471 : }
7472 : }
7473 : break;
7474 : }
7475 : default:;
7476 : }
7477 : break;
7478 : }
7479 65574440 : default:;
7480 : }
7481 65574440 : switch (TREE_CODE (_p0))
7482 : {
7483 11303948 : case MULT_EXPR:
7484 11303948 : {
7485 11303948 : tree _q20 = TREE_OPERAND (_p0, 0);
7486 11303948 : tree _q21 = TREE_OPERAND (_p0, 1);
7487 11303948 : switch (TREE_CODE (_q20))
7488 : {
7489 16447 : case TRUNC_DIV_EXPR:
7490 16447 : {
7491 16447 : tree _q30 = TREE_OPERAND (_q20, 0);
7492 16447 : tree _q31 = TREE_OPERAND (_q20, 1);
7493 16447 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7494 : {
7495 2506 : switch (TREE_CODE (_p1))
7496 : {
7497 2 : case TRUNC_MOD_EXPR:
7498 2 : {
7499 2 : tree _q70 = TREE_OPERAND (_p1, 0);
7500 2 : tree _q71 = TREE_OPERAND (_p1, 1);
7501 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
7502 : {
7503 2 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7504 : {
7505 2 : {
7506 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
7507 2 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
7508 2 : if (res) return res;
7509 : }
7510 : }
7511 : }
7512 : break;
7513 : }
7514 : default:;
7515 : }
7516 : }
7517 : break;
7518 : }
7519 0 : case CEIL_DIV_EXPR:
7520 0 : {
7521 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7522 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7523 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7524 : {
7525 0 : switch (TREE_CODE (_p1))
7526 : {
7527 0 : case CEIL_MOD_EXPR:
7528 0 : {
7529 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7530 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7531 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
7532 : {
7533 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7534 : {
7535 0 : {
7536 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
7537 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
7538 0 : if (res) return res;
7539 : }
7540 : }
7541 : }
7542 : break;
7543 : }
7544 : default:;
7545 : }
7546 : }
7547 : break;
7548 : }
7549 0 : case FLOOR_DIV_EXPR:
7550 0 : {
7551 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7552 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7553 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7554 : {
7555 0 : switch (TREE_CODE (_p1))
7556 : {
7557 0 : case FLOOR_MOD_EXPR:
7558 0 : {
7559 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7560 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7561 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
7562 : {
7563 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7564 : {
7565 0 : {
7566 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
7567 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
7568 0 : if (res) return res;
7569 : }
7570 : }
7571 : }
7572 : break;
7573 : }
7574 : default:;
7575 : }
7576 : }
7577 : break;
7578 : }
7579 0 : case ROUND_DIV_EXPR:
7580 0 : {
7581 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7582 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7583 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7584 : {
7585 0 : switch (TREE_CODE (_p1))
7586 : {
7587 0 : case ROUND_MOD_EXPR:
7588 0 : {
7589 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7590 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7591 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
7592 : {
7593 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7594 : {
7595 0 : {
7596 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
7597 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7598 0 : if (res) return res;
7599 : }
7600 : }
7601 : }
7602 : break;
7603 : }
7604 : default:;
7605 : }
7606 : }
7607 : break;
7608 : }
7609 11303946 : default:;
7610 : }
7611 11303946 : switch (TREE_CODE (_q21))
7612 : {
7613 6 : case TRUNC_DIV_EXPR:
7614 6 : {
7615 6 : tree _q40 = TREE_OPERAND (_q21, 0);
7616 6 : tree _q41 = TREE_OPERAND (_q21, 1);
7617 6 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7618 : {
7619 0 : switch (TREE_CODE (_p1))
7620 : {
7621 0 : case TRUNC_MOD_EXPR:
7622 0 : {
7623 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7624 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7625 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7626 : {
7627 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
7628 : {
7629 0 : {
7630 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
7631 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
7632 0 : if (res) return res;
7633 : }
7634 : }
7635 : }
7636 : break;
7637 : }
7638 : default:;
7639 : }
7640 : }
7641 : break;
7642 : }
7643 4 : case CEIL_DIV_EXPR:
7644 4 : {
7645 4 : tree _q40 = TREE_OPERAND (_q21, 0);
7646 4 : tree _q41 = TREE_OPERAND (_q21, 1);
7647 4 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7648 : {
7649 0 : switch (TREE_CODE (_p1))
7650 : {
7651 0 : case CEIL_MOD_EXPR:
7652 0 : {
7653 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7654 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7655 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7656 : {
7657 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
7658 : {
7659 0 : {
7660 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
7661 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
7662 0 : if (res) return res;
7663 : }
7664 : }
7665 : }
7666 : break;
7667 : }
7668 : default:;
7669 : }
7670 : }
7671 : break;
7672 : }
7673 0 : case FLOOR_DIV_EXPR:
7674 0 : {
7675 0 : tree _q40 = TREE_OPERAND (_q21, 0);
7676 0 : tree _q41 = TREE_OPERAND (_q21, 1);
7677 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7678 : {
7679 0 : switch (TREE_CODE (_p1))
7680 : {
7681 0 : case FLOOR_MOD_EXPR:
7682 0 : {
7683 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7684 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7685 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7686 : {
7687 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
7688 : {
7689 0 : {
7690 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
7691 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
7692 0 : if (res) return res;
7693 : }
7694 : }
7695 : }
7696 : break;
7697 : }
7698 : default:;
7699 : }
7700 : }
7701 : break;
7702 : }
7703 0 : case ROUND_DIV_EXPR:
7704 0 : {
7705 0 : tree _q40 = TREE_OPERAND (_q21, 0);
7706 0 : tree _q41 = TREE_OPERAND (_q21, 1);
7707 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7708 : {
7709 0 : switch (TREE_CODE (_p1))
7710 : {
7711 0 : case ROUND_MOD_EXPR:
7712 0 : {
7713 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7714 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7715 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7716 : {
7717 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
7718 : {
7719 0 : {
7720 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
7721 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7722 0 : if (res) return res;
7723 : }
7724 : }
7725 : }
7726 : break;
7727 : }
7728 : default:;
7729 : }
7730 : }
7731 : break;
7732 : }
7733 : default:;
7734 : }
7735 : break;
7736 : }
7737 31260 : case TRUNC_MOD_EXPR:
7738 31260 : {
7739 31260 : tree _q20 = TREE_OPERAND (_p0, 0);
7740 31260 : tree _q21 = TREE_OPERAND (_p0, 1);
7741 31260 : switch (TREE_CODE (_p1))
7742 : {
7743 119 : case MULT_EXPR:
7744 119 : {
7745 119 : tree _q50 = TREE_OPERAND (_p1, 0);
7746 119 : tree _q51 = TREE_OPERAND (_p1, 1);
7747 119 : switch (TREE_CODE (_q50))
7748 : {
7749 106 : case TRUNC_DIV_EXPR:
7750 106 : {
7751 106 : tree _q60 = TREE_OPERAND (_q50, 0);
7752 106 : tree _q61 = TREE_OPERAND (_q50, 1);
7753 106 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7754 : {
7755 106 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7756 : {
7757 94 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7758 : {
7759 0 : {
7760 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7761 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
7762 0 : if (res) return res;
7763 : }
7764 : }
7765 : }
7766 : }
7767 : break;
7768 : }
7769 119 : default:;
7770 : }
7771 119 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7772 : {
7773 0 : switch (TREE_CODE (_q51))
7774 : {
7775 0 : case TRUNC_DIV_EXPR:
7776 0 : {
7777 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7778 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7779 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7780 : {
7781 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7782 : {
7783 0 : {
7784 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7785 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
7786 0 : if (res) return res;
7787 : }
7788 : }
7789 : }
7790 : break;
7791 : }
7792 : default:;
7793 : }
7794 : }
7795 : break;
7796 : }
7797 : default:;
7798 : }
7799 : break;
7800 : }
7801 0 : case CEIL_MOD_EXPR:
7802 0 : {
7803 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7804 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7805 0 : switch (TREE_CODE (_p1))
7806 : {
7807 0 : case MULT_EXPR:
7808 0 : {
7809 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7810 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7811 0 : switch (TREE_CODE (_q50))
7812 : {
7813 0 : case CEIL_DIV_EXPR:
7814 0 : {
7815 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7816 0 : tree _q61 = TREE_OPERAND (_q50, 1);
7817 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7818 : {
7819 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7820 : {
7821 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7822 : {
7823 0 : {
7824 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7825 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
7826 0 : if (res) return res;
7827 : }
7828 : }
7829 : }
7830 : }
7831 : break;
7832 : }
7833 0 : default:;
7834 : }
7835 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7836 : {
7837 0 : switch (TREE_CODE (_q51))
7838 : {
7839 0 : case CEIL_DIV_EXPR:
7840 0 : {
7841 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7842 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7843 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7844 : {
7845 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7846 : {
7847 0 : {
7848 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7849 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
7850 0 : if (res) return res;
7851 : }
7852 : }
7853 : }
7854 : break;
7855 : }
7856 : default:;
7857 : }
7858 : }
7859 : break;
7860 : }
7861 : default:;
7862 : }
7863 : break;
7864 : }
7865 126 : case FLOOR_MOD_EXPR:
7866 126 : {
7867 126 : tree _q20 = TREE_OPERAND (_p0, 0);
7868 126 : tree _q21 = TREE_OPERAND (_p0, 1);
7869 126 : switch (TREE_CODE (_p1))
7870 : {
7871 0 : case MULT_EXPR:
7872 0 : {
7873 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7874 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7875 0 : switch (TREE_CODE (_q50))
7876 : {
7877 0 : case FLOOR_DIV_EXPR:
7878 0 : {
7879 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7880 0 : tree _q61 = TREE_OPERAND (_q50, 1);
7881 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7882 : {
7883 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7884 : {
7885 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7886 : {
7887 0 : {
7888 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7889 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
7890 0 : if (res) return res;
7891 : }
7892 : }
7893 : }
7894 : }
7895 : break;
7896 : }
7897 0 : default:;
7898 : }
7899 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7900 : {
7901 0 : switch (TREE_CODE (_q51))
7902 : {
7903 0 : case FLOOR_DIV_EXPR:
7904 0 : {
7905 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7906 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7907 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7908 : {
7909 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7910 : {
7911 0 : {
7912 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7913 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
7914 0 : if (res) return res;
7915 : }
7916 : }
7917 : }
7918 : break;
7919 : }
7920 : default:;
7921 : }
7922 : }
7923 : break;
7924 : }
7925 : default:;
7926 : }
7927 : break;
7928 : }
7929 0 : case ROUND_MOD_EXPR:
7930 0 : {
7931 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7932 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7933 0 : switch (TREE_CODE (_p1))
7934 : {
7935 0 : case MULT_EXPR:
7936 0 : {
7937 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7938 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7939 0 : switch (TREE_CODE (_q50))
7940 : {
7941 0 : case ROUND_DIV_EXPR:
7942 0 : {
7943 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7944 0 : tree _q61 = TREE_OPERAND (_q50, 1);
7945 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7946 : {
7947 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7948 : {
7949 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7950 : {
7951 0 : {
7952 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7953 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7954 0 : if (res) return res;
7955 : }
7956 : }
7957 : }
7958 : }
7959 : break;
7960 : }
7961 0 : default:;
7962 : }
7963 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7964 : {
7965 0 : switch (TREE_CODE (_q51))
7966 : {
7967 0 : case ROUND_DIV_EXPR:
7968 0 : {
7969 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7970 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7971 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7972 : {
7973 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7974 : {
7975 0 : {
7976 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7977 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7978 0 : if (res) return res;
7979 : }
7980 : }
7981 : }
7982 : break;
7983 : }
7984 : default:;
7985 : }
7986 : }
7987 : break;
7988 : }
7989 : default:;
7990 : }
7991 : break;
7992 : }
7993 65574438 : default:;
7994 : }
7995 65574438 : switch (TREE_CODE (_p1))
7996 : {
7997 3195837 : case REAL_CST:
7998 3195837 : {
7999 3195837 : {
8000 3195837 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8001 3195837 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
8002 : )
8003 : {
8004 118433 : {
8005 118433 : tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
8006 118433 : if (!TREE_OVERFLOW (tem) || !flag_trapping_math
8007 : )
8008 : {
8009 118433 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1306;
8010 118433 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1306;
8011 118433 : {
8012 118433 : tree res_op0;
8013 118433 : res_op0 = captures[0];
8014 118433 : tree res_op1;
8015 118433 : res_op1 = tem;
8016 118433 : tree _r;
8017 118433 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
8018 118433 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 945, __FILE__, __LINE__, true);
8019 : return _r;
8020 : }
8021 65456005 : next_after_fail1306:;
8022 : }
8023 : }
8024 : }
8025 : }
8026 : break;
8027 : }
8028 65456005 : default:;
8029 : }
8030 65456005 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8031 : {
8032 1585814 : {
8033 1585814 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8034 1585814 : if (SCALAR_FLOAT_TYPE_P (type)
8035 : )
8036 : {
8037 731 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1307;
8038 731 : {
8039 731 : tree res_op0;
8040 731 : res_op0 = captures[0];
8041 731 : tree res_op1;
8042 731 : res_op1 = build_real (type, dconst2);
8043 731 : tree _r;
8044 731 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
8045 731 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
8046 99376822 : return _r;
8047 : }
8048 0 : next_after_fail1307:;
8049 : }
8050 : else
8051 : {
8052 1585083 : if (INTEGRAL_TYPE_P (type)
8053 1585083 : && TYPE_PRECISION (type) > (2 - TYPE_UNSIGNED (type))
8054 : )
8055 : {
8056 1584958 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1308;
8057 1584958 : {
8058 1584958 : tree res_op0;
8059 1584958 : res_op0 = captures[0];
8060 1584958 : tree res_op1;
8061 1584958 : res_op1 = build_int_cst (type, 2);
8062 1584958 : tree _r;
8063 1584958 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
8064 1584958 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
8065 : return _r;
8066 : }
8067 0 : next_after_fail1308:;
8068 : }
8069 : }
8070 : }
8071 : }
8072 63870316 : switch (TREE_CODE (_p0))
8073 : {
8074 144 : case VEC_COND_EXPR:
8075 144 : {
8076 144 : tree _q20 = TREE_OPERAND (_p0, 0);
8077 144 : tree _q21 = TREE_OPERAND (_p0, 1);
8078 144 : tree _q22 = TREE_OPERAND (_p0, 2);
8079 144 : switch (TREE_CODE (_p1))
8080 : {
8081 48 : case VEC_COND_EXPR:
8082 48 : {
8083 48 : tree _q60 = TREE_OPERAND (_p1, 0);
8084 48 : tree _q61 = TREE_OPERAND (_p1, 1);
8085 48 : tree _q62 = TREE_OPERAND (_p1, 2);
8086 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8087 : {
8088 24 : {
8089 24 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8090 24 : if (VECTOR_TYPE_P (type)
8091 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
8092 : || types_match (type, TREE_TYPE (captures[2]))
8093 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8094 : || (optimize_vectors_before_lowering_p ()
8095 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8096 : )
8097 : {
8098 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1309;
8099 24 : {
8100 24 : tree res_op0;
8101 24 : res_op0 = captures[1];
8102 24 : tree res_op1;
8103 24 : {
8104 24 : tree _o1[2], _r1;
8105 24 : _o1[0] = captures[2];
8106 24 : _o1[1] = captures[5];
8107 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8108 24 : if (EXPR_P (_r1))
8109 0 : goto next_after_fail1309;
8110 24 : res_op1 = _r1;
8111 : }
8112 24 : tree res_op2;
8113 24 : {
8114 24 : tree _o1[2], _r1;
8115 24 : _o1[0] = captures[3];
8116 24 : _o1[1] = captures[6];
8117 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8118 24 : if (EXPR_P (_r1))
8119 0 : goto next_after_fail1309;
8120 24 : res_op2 = _r1;
8121 : }
8122 24 : tree _r;
8123 24 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8124 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
8125 : return _r;
8126 : }
8127 120 : next_after_fail1309:;
8128 : }
8129 : }
8130 : }
8131 : break;
8132 : }
8133 120 : default:;
8134 : }
8135 120 : {
8136 120 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8137 120 : if (VECTOR_TYPE_P (type)
8138 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
8139 : || types_match (type, TREE_TYPE (captures[2]))
8140 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8141 : || (optimize_vectors_before_lowering_p ()
8142 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8143 : )
8144 : {
8145 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1310;
8146 120 : {
8147 120 : if (! tree_invariant_p (captures[4])) goto next_after_fail1310;
8148 26 : tree res_op0;
8149 26 : res_op0 = captures[1];
8150 26 : tree res_op1;
8151 26 : {
8152 26 : tree _o1[2], _r1;
8153 26 : _o1[0] = captures[2];
8154 26 : _o1[1] = unshare_expr (captures[4]);
8155 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8156 26 : if (EXPR_P (_r1))
8157 0 : goto next_after_fail1310;
8158 26 : res_op1 = _r1;
8159 : }
8160 26 : tree res_op2;
8161 26 : {
8162 26 : tree _o1[2], _r1;
8163 26 : _o1[0] = captures[3];
8164 26 : _o1[1] = captures[4];
8165 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8166 26 : if (EXPR_P (_r1))
8167 0 : goto next_after_fail1310;
8168 26 : res_op2 = _r1;
8169 : }
8170 26 : tree _r;
8171 26 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8172 26 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
8173 : return _r;
8174 : }
8175 94 : next_after_fail1310:;
8176 : }
8177 : }
8178 94 : if (integer_each_onep (_q21))
8179 : {
8180 0 : if (integer_zerop (_q22))
8181 : {
8182 0 : {
8183 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
8184 0 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
8185 0 : if (res) return res;
8186 : }
8187 : }
8188 : }
8189 : break;
8190 : }
8191 63870266 : default:;
8192 : }
8193 63870266 : switch (TREE_CODE (_p1))
8194 : {
8195 40 : case VEC_COND_EXPR:
8196 40 : {
8197 40 : tree _q30 = TREE_OPERAND (_p1, 0);
8198 40 : tree _q31 = TREE_OPERAND (_p1, 1);
8199 40 : tree _q32 = TREE_OPERAND (_p1, 2);
8200 40 : {
8201 40 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8202 40 : if (VECTOR_TYPE_P (type)
8203 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
8204 : || types_match (type, TREE_TYPE (captures[3]))
8205 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8206 : || (optimize_vectors_before_lowering_p ()
8207 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8208 : )
8209 : {
8210 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1311;
8211 40 : {
8212 40 : if (! tree_invariant_p (captures[0])) goto next_after_fail1311;
8213 0 : tree res_op0;
8214 0 : res_op0 = captures[2];
8215 0 : tree res_op1;
8216 0 : {
8217 0 : tree _o1[2], _r1;
8218 0 : _o1[0] = unshare_expr (captures[0]);
8219 0 : _o1[1] = captures[3];
8220 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8221 0 : if (EXPR_P (_r1))
8222 0 : goto next_after_fail1311;
8223 0 : res_op1 = _r1;
8224 : }
8225 0 : tree res_op2;
8226 0 : {
8227 0 : tree _o1[2], _r1;
8228 0 : _o1[0] = captures[0];
8229 0 : _o1[1] = captures[4];
8230 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
8231 0 : if (EXPR_P (_r1))
8232 0 : goto next_after_fail1311;
8233 0 : res_op2 = _r1;
8234 : }
8235 0 : tree _r;
8236 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8237 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
8238 : return _r;
8239 : }
8240 63870266 : next_after_fail1311:;
8241 : }
8242 : }
8243 : break;
8244 : }
8245 333835 : case VIEW_CONVERT_EXPR:
8246 333835 : {
8247 333835 : tree _q30 = TREE_OPERAND (_p1, 0);
8248 333835 : switch (TREE_CODE (_q30))
8249 : {
8250 0 : case VEC_COND_EXPR:
8251 0 : {
8252 0 : tree _q40 = TREE_OPERAND (_q30, 0);
8253 0 : tree _q41 = TREE_OPERAND (_q30, 1);
8254 0 : tree _q42 = TREE_OPERAND (_q30, 2);
8255 0 : if (integer_each_onep (_q41))
8256 : {
8257 0 : if (integer_zerop (_q42))
8258 : {
8259 0 : {
8260 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
8261 0 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
8262 0 : if (res) return res;
8263 : }
8264 : }
8265 : }
8266 : break;
8267 : }
8268 : default:;
8269 : }
8270 : break;
8271 : }
8272 63870266 : default:;
8273 : }
8274 63870266 : switch (TREE_CODE (_p0))
8275 : {
8276 322361 : case VIEW_CONVERT_EXPR:
8277 322361 : {
8278 322361 : tree _q20 = TREE_OPERAND (_p0, 0);
8279 322361 : switch (TREE_CODE (_q20))
8280 : {
8281 0 : case VEC_COND_EXPR:
8282 0 : {
8283 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8284 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8285 0 : tree _q32 = TREE_OPERAND (_q20, 2);
8286 0 : if (integer_each_onep (_q31))
8287 : {
8288 0 : if (integer_zerop (_q32))
8289 : {
8290 0 : {
8291 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
8292 0 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
8293 0 : if (res) return res;
8294 : }
8295 : }
8296 : }
8297 : break;
8298 : }
8299 : default:;
8300 : }
8301 : break;
8302 : }
8303 63870266 : default:;
8304 : }
8305 63870266 : switch (TREE_CODE (_p1))
8306 : {
8307 40 : case VEC_COND_EXPR:
8308 40 : {
8309 40 : tree _q30 = TREE_OPERAND (_p1, 0);
8310 40 : tree _q31 = TREE_OPERAND (_p1, 1);
8311 40 : tree _q32 = TREE_OPERAND (_p1, 2);
8312 40 : if (integer_each_onep (_q31))
8313 : {
8314 0 : if (integer_zerop (_q32))
8315 : {
8316 0 : {
8317 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8318 0 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
8319 0 : if (res) return res;
8320 : }
8321 : }
8322 : }
8323 : break;
8324 : }
8325 63870266 : default:;
8326 : }
8327 63870266 : switch (TREE_CODE (_p0))
8328 : {
8329 18096493 : CASE_CONVERT:
8330 18096493 : {
8331 18096493 : tree _q20 = TREE_OPERAND (_p0, 0);
8332 18096493 : switch (TREE_CODE (_q20))
8333 : {
8334 0 : case LT_EXPR:
8335 0 : {
8336 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8337 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8338 0 : if (integer_minus_onep (_p1))
8339 : {
8340 0 : {
8341 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8342 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8343 0 : if (res) return res;
8344 : }
8345 : }
8346 : break;
8347 : }
8348 0 : case LE_EXPR:
8349 0 : {
8350 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8351 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8352 0 : if (integer_minus_onep (_p1))
8353 : {
8354 0 : {
8355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8356 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8357 0 : if (res) return res;
8358 : }
8359 : }
8360 : break;
8361 : }
8362 79 : case EQ_EXPR:
8363 79 : {
8364 79 : tree _q30 = TREE_OPERAND (_q20, 0);
8365 79 : tree _q31 = TREE_OPERAND (_q20, 1);
8366 79 : if (integer_minus_onep (_p1))
8367 : {
8368 0 : {
8369 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8370 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8371 0 : if (res) return res;
8372 : }
8373 : }
8374 : break;
8375 : }
8376 224 : case NE_EXPR:
8377 224 : {
8378 224 : tree _q30 = TREE_OPERAND (_q20, 0);
8379 224 : tree _q31 = TREE_OPERAND (_q20, 1);
8380 224 : if (integer_minus_onep (_p1))
8381 : {
8382 0 : {
8383 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8384 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8385 0 : if (res) return res;
8386 : }
8387 : }
8388 : break;
8389 : }
8390 12 : case GE_EXPR:
8391 12 : {
8392 12 : tree _q30 = TREE_OPERAND (_q20, 0);
8393 12 : tree _q31 = TREE_OPERAND (_q20, 1);
8394 12 : if (integer_minus_onep (_p1))
8395 : {
8396 0 : {
8397 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8398 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8399 0 : if (res) return res;
8400 : }
8401 : }
8402 : break;
8403 : }
8404 1 : case GT_EXPR:
8405 1 : {
8406 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8407 1 : tree _q31 = TREE_OPERAND (_q20, 1);
8408 1 : if (integer_minus_onep (_p1))
8409 : {
8410 0 : {
8411 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8412 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8413 0 : if (res) return res;
8414 : }
8415 : }
8416 : break;
8417 : }
8418 0 : case UNORDERED_EXPR:
8419 0 : {
8420 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8421 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8422 0 : if (integer_minus_onep (_p1))
8423 : {
8424 0 : {
8425 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8426 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8427 0 : if (res) return res;
8428 : }
8429 : }
8430 : break;
8431 : }
8432 0 : case ORDERED_EXPR:
8433 0 : {
8434 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8435 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8436 0 : if (integer_minus_onep (_p1))
8437 : {
8438 0 : {
8439 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8440 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8441 0 : if (res) return res;
8442 : }
8443 : }
8444 : break;
8445 : }
8446 0 : case UNLT_EXPR:
8447 0 : {
8448 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8449 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8450 0 : if (integer_minus_onep (_p1))
8451 : {
8452 0 : {
8453 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8454 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8455 0 : if (res) return res;
8456 : }
8457 : }
8458 : break;
8459 : }
8460 0 : case UNLE_EXPR:
8461 0 : {
8462 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8463 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8464 0 : if (integer_minus_onep (_p1))
8465 : {
8466 0 : {
8467 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8468 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8469 0 : if (res) return res;
8470 : }
8471 : }
8472 : break;
8473 : }
8474 0 : case UNGT_EXPR:
8475 0 : {
8476 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8477 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8478 0 : if (integer_minus_onep (_p1))
8479 : {
8480 0 : {
8481 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8482 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8483 0 : if (res) return res;
8484 : }
8485 : }
8486 : break;
8487 : }
8488 0 : case UNGE_EXPR:
8489 0 : {
8490 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8491 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8492 0 : if (integer_minus_onep (_p1))
8493 : {
8494 0 : {
8495 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8496 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8497 0 : if (res) return res;
8498 : }
8499 : }
8500 : break;
8501 : }
8502 0 : case UNEQ_EXPR:
8503 0 : {
8504 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8505 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8506 0 : if (integer_minus_onep (_p1))
8507 : {
8508 0 : {
8509 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8510 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8511 0 : if (res) return res;
8512 : }
8513 : }
8514 : break;
8515 : }
8516 0 : case LTGT_EXPR:
8517 0 : {
8518 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8519 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8520 0 : if (integer_minus_onep (_p1))
8521 : {
8522 0 : {
8523 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8524 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8525 0 : if (res) return res;
8526 : }
8527 : }
8528 : break;
8529 : }
8530 : default:;
8531 : }
8532 : break;
8533 : }
8534 155 : case LT_EXPR:
8535 155 : {
8536 155 : tree _q20 = TREE_OPERAND (_p0, 0);
8537 155 : tree _q21 = TREE_OPERAND (_p0, 1);
8538 155 : if (integer_minus_onep (_p1))
8539 : {
8540 0 : {
8541 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8542 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8543 0 : if (res) return res;
8544 : }
8545 : }
8546 : break;
8547 : }
8548 64 : case LE_EXPR:
8549 64 : {
8550 64 : tree _q20 = TREE_OPERAND (_p0, 0);
8551 64 : tree _q21 = TREE_OPERAND (_p0, 1);
8552 64 : if (integer_minus_onep (_p1))
8553 : {
8554 0 : {
8555 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8556 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8557 0 : if (res) return res;
8558 : }
8559 : }
8560 : break;
8561 : }
8562 28917 : case EQ_EXPR:
8563 28917 : {
8564 28917 : tree _q20 = TREE_OPERAND (_p0, 0);
8565 28917 : tree _q21 = TREE_OPERAND (_p0, 1);
8566 28917 : if (integer_minus_onep (_p1))
8567 : {
8568 23 : {
8569 23 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8570 23 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8571 23 : if (res) return res;
8572 : }
8573 : }
8574 : break;
8575 : }
8576 1683 : case NE_EXPR:
8577 1683 : {
8578 1683 : tree _q20 = TREE_OPERAND (_p0, 0);
8579 1683 : tree _q21 = TREE_OPERAND (_p0, 1);
8580 1683 : if (integer_minus_onep (_p1))
8581 : {
8582 33 : {
8583 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8584 33 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8585 33 : if (res) return res;
8586 : }
8587 : }
8588 : break;
8589 : }
8590 35 : case GE_EXPR:
8591 35 : {
8592 35 : tree _q20 = TREE_OPERAND (_p0, 0);
8593 35 : tree _q21 = TREE_OPERAND (_p0, 1);
8594 35 : if (integer_minus_onep (_p1))
8595 : {
8596 0 : {
8597 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8598 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8599 0 : if (res) return res;
8600 : }
8601 : }
8602 : break;
8603 : }
8604 103 : case GT_EXPR:
8605 103 : {
8606 103 : tree _q20 = TREE_OPERAND (_p0, 0);
8607 103 : tree _q21 = TREE_OPERAND (_p0, 1);
8608 103 : if (integer_minus_onep (_p1))
8609 : {
8610 0 : {
8611 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8612 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8613 0 : if (res) return res;
8614 : }
8615 : }
8616 : break;
8617 : }
8618 0 : case UNORDERED_EXPR:
8619 0 : {
8620 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8621 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8622 0 : if (integer_minus_onep (_p1))
8623 : {
8624 0 : {
8625 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8626 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8627 0 : if (res) return res;
8628 : }
8629 : }
8630 : break;
8631 : }
8632 0 : case ORDERED_EXPR:
8633 0 : {
8634 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8635 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8636 0 : if (integer_minus_onep (_p1))
8637 : {
8638 0 : {
8639 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8640 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8641 0 : if (res) return res;
8642 : }
8643 : }
8644 : break;
8645 : }
8646 0 : case UNLT_EXPR:
8647 0 : {
8648 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8649 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8650 0 : if (integer_minus_onep (_p1))
8651 : {
8652 0 : {
8653 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8654 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8655 0 : if (res) return res;
8656 : }
8657 : }
8658 : break;
8659 : }
8660 0 : case UNLE_EXPR:
8661 0 : {
8662 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8663 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8664 0 : if (integer_minus_onep (_p1))
8665 : {
8666 0 : {
8667 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8668 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8669 0 : if (res) return res;
8670 : }
8671 : }
8672 : break;
8673 : }
8674 0 : case UNGT_EXPR:
8675 0 : {
8676 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8677 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8678 0 : if (integer_minus_onep (_p1))
8679 : {
8680 0 : {
8681 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8682 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8683 0 : if (res) return res;
8684 : }
8685 : }
8686 : break;
8687 : }
8688 0 : case UNGE_EXPR:
8689 0 : {
8690 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8691 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8692 0 : if (integer_minus_onep (_p1))
8693 : {
8694 0 : {
8695 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8696 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8697 0 : if (res) return res;
8698 : }
8699 : }
8700 : break;
8701 : }
8702 0 : case UNEQ_EXPR:
8703 0 : {
8704 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8705 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8706 0 : if (integer_minus_onep (_p1))
8707 : {
8708 0 : {
8709 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8710 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8711 0 : if (res) return res;
8712 : }
8713 : }
8714 : break;
8715 : }
8716 0 : case LTGT_EXPR:
8717 0 : {
8718 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8719 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8720 0 : if (integer_minus_onep (_p1))
8721 : {
8722 0 : {
8723 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8724 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8725 0 : if (res) return res;
8726 : }
8727 : }
8728 : break;
8729 : }
8730 543469 : case RDIV_EXPR:
8731 543469 : {
8732 543469 : tree _q20 = TREE_OPERAND (_p0, 0);
8733 543469 : tree _q21 = TREE_OPERAND (_p0, 1);
8734 543469 : switch (TREE_CODE (_p1))
8735 : {
8736 115800 : case RDIV_EXPR:
8737 115800 : {
8738 115800 : tree _q50 = TREE_OPERAND (_p1, 0);
8739 115800 : tree _q51 = TREE_OPERAND (_p1, 1);
8740 115800 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8741 : {
8742 127 : {
8743 127 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
8744 127 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, PLUS_EXPR);
8745 127 : if (res) return res;
8746 : }
8747 : }
8748 : break;
8749 : }
8750 : default:;
8751 : }
8752 : break;
8753 : }
8754 1700155 : case MINUS_EXPR:
8755 1700155 : {
8756 1700155 : tree _q20 = TREE_OPERAND (_p0, 0);
8757 1700155 : tree _q21 = TREE_OPERAND (_p0, 1);
8758 1700155 : switch (TREE_CODE (_q20))
8759 : {
8760 41 : case CALL_EXPR:
8761 41 : switch (get_call_combined_fn (_q20))
8762 : {
8763 4 : case CFN_BUILT_IN_POPCOUNT:
8764 4 : if (call_expr_nargs (_q20) == 1)
8765 : {
8766 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8767 4 : switch (TREE_CODE (_q21))
8768 : {
8769 4 : case CALL_EXPR:
8770 4 : switch (get_call_combined_fn (_q21))
8771 : {
8772 4 : case CFN_BUILT_IN_POPCOUNT:
8773 4 : if (call_expr_nargs (_q21) == 1)
8774 : {
8775 4 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8776 4 : switch (TREE_CODE (_q50))
8777 : {
8778 2 : case BIT_AND_EXPR:
8779 2 : {
8780 2 : tree _q60 = TREE_OPERAND (_q50, 0);
8781 2 : tree _q61 = TREE_OPERAND (_q50, 1);
8782 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8783 : {
8784 1 : switch (TREE_CODE (_p1))
8785 : {
8786 1 : case CALL_EXPR:
8787 1 : switch (get_call_combined_fn (_p1))
8788 : {
8789 1 : case CFN_BUILT_IN_POPCOUNT:
8790 1 : if (call_expr_nargs (_p1) == 1)
8791 : {
8792 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8793 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8794 : {
8795 1 : {
8796 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8797 1 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8798 1 : if (res) return res;
8799 : }
8800 : }
8801 : }
8802 : break;
8803 : default:;
8804 : }
8805 : break;
8806 : default:;
8807 : }
8808 : }
8809 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8810 : {
8811 1 : switch (TREE_CODE (_p1))
8812 : {
8813 1 : case CALL_EXPR:
8814 1 : switch (get_call_combined_fn (_p1))
8815 : {
8816 1 : case CFN_BUILT_IN_POPCOUNT:
8817 1 : if (call_expr_nargs (_p1) == 1)
8818 : {
8819 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8820 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8821 : {
8822 1 : {
8823 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8824 1 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8825 1 : if (res) return res;
8826 : }
8827 : }
8828 : }
8829 : break;
8830 : default:;
8831 : }
8832 : break;
8833 : default:;
8834 : }
8835 : }
8836 : break;
8837 : }
8838 2 : case BIT_IOR_EXPR:
8839 2 : {
8840 2 : tree _q60 = TREE_OPERAND (_q50, 0);
8841 2 : tree _q61 = TREE_OPERAND (_q50, 1);
8842 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8843 : {
8844 1 : switch (TREE_CODE (_p1))
8845 : {
8846 1 : case CALL_EXPR:
8847 1 : switch (get_call_combined_fn (_p1))
8848 : {
8849 1 : case CFN_BUILT_IN_POPCOUNT:
8850 1 : if (call_expr_nargs (_p1) == 1)
8851 : {
8852 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8853 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8854 : {
8855 1 : {
8856 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8857 1 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8858 1 : if (res) return res;
8859 : }
8860 : }
8861 : }
8862 : break;
8863 : default:;
8864 : }
8865 : break;
8866 : default:;
8867 : }
8868 : }
8869 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8870 : {
8871 1 : switch (TREE_CODE (_p1))
8872 : {
8873 1 : case CALL_EXPR:
8874 1 : switch (get_call_combined_fn (_p1))
8875 : {
8876 1 : case CFN_BUILT_IN_POPCOUNT:
8877 1 : if (call_expr_nargs (_p1) == 1)
8878 : {
8879 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8880 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8881 : {
8882 1 : {
8883 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8884 1 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8885 1 : if (res) return res;
8886 : }
8887 : }
8888 : }
8889 : break;
8890 : default:;
8891 : }
8892 : break;
8893 : default:;
8894 : }
8895 : }
8896 : break;
8897 : }
8898 : default:;
8899 : }
8900 : }
8901 : break;
8902 : default:;
8903 : }
8904 : break;
8905 : default:;
8906 : }
8907 : }
8908 : break;
8909 0 : case CFN_BUILT_IN_POPCOUNTLL:
8910 0 : if (call_expr_nargs (_q20) == 1)
8911 : {
8912 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8913 0 : switch (TREE_CODE (_q21))
8914 : {
8915 0 : case CALL_EXPR:
8916 0 : switch (get_call_combined_fn (_q21))
8917 : {
8918 0 : case CFN_BUILT_IN_POPCOUNTLL:
8919 0 : if (call_expr_nargs (_q21) == 1)
8920 : {
8921 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8922 0 : switch (TREE_CODE (_q50))
8923 : {
8924 0 : case BIT_AND_EXPR:
8925 0 : {
8926 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8927 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8928 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8929 : {
8930 0 : switch (TREE_CODE (_p1))
8931 : {
8932 0 : case CALL_EXPR:
8933 0 : switch (get_call_combined_fn (_p1))
8934 : {
8935 0 : case CFN_BUILT_IN_POPCOUNTLL:
8936 0 : if (call_expr_nargs (_p1) == 1)
8937 : {
8938 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8939 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8940 : {
8941 0 : {
8942 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8943 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8944 0 : if (res) return res;
8945 : }
8946 : }
8947 : }
8948 : break;
8949 : default:;
8950 : }
8951 : break;
8952 : default:;
8953 : }
8954 : }
8955 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8956 : {
8957 0 : switch (TREE_CODE (_p1))
8958 : {
8959 0 : case CALL_EXPR:
8960 0 : switch (get_call_combined_fn (_p1))
8961 : {
8962 0 : case CFN_BUILT_IN_POPCOUNTLL:
8963 0 : if (call_expr_nargs (_p1) == 1)
8964 : {
8965 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8966 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8967 : {
8968 0 : {
8969 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8970 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8971 0 : if (res) return res;
8972 : }
8973 : }
8974 : }
8975 : break;
8976 : default:;
8977 : }
8978 : break;
8979 : default:;
8980 : }
8981 : }
8982 : break;
8983 : }
8984 0 : case BIT_IOR_EXPR:
8985 0 : {
8986 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8987 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8988 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8989 : {
8990 0 : switch (TREE_CODE (_p1))
8991 : {
8992 0 : case CALL_EXPR:
8993 0 : switch (get_call_combined_fn (_p1))
8994 : {
8995 0 : case CFN_BUILT_IN_POPCOUNTLL:
8996 0 : if (call_expr_nargs (_p1) == 1)
8997 : {
8998 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8999 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9000 : {
9001 0 : {
9002 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9003 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9004 0 : if (res) return res;
9005 : }
9006 : }
9007 : }
9008 : break;
9009 : default:;
9010 : }
9011 : break;
9012 : default:;
9013 : }
9014 : }
9015 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9016 : {
9017 0 : switch (TREE_CODE (_p1))
9018 : {
9019 0 : case CALL_EXPR:
9020 0 : switch (get_call_combined_fn (_p1))
9021 : {
9022 0 : case CFN_BUILT_IN_POPCOUNTLL:
9023 0 : if (call_expr_nargs (_p1) == 1)
9024 : {
9025 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9026 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9027 : {
9028 0 : {
9029 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9030 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9031 0 : if (res) return res;
9032 : }
9033 : }
9034 : }
9035 : break;
9036 : default:;
9037 : }
9038 : break;
9039 : default:;
9040 : }
9041 : }
9042 : break;
9043 : }
9044 : default:;
9045 : }
9046 : }
9047 : break;
9048 : default:;
9049 : }
9050 : break;
9051 : default:;
9052 : }
9053 : }
9054 : break;
9055 0 : case CFN_POPCOUNT:
9056 0 : if (call_expr_nargs (_q20) == 1)
9057 : {
9058 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9059 0 : switch (TREE_CODE (_q21))
9060 : {
9061 0 : case CALL_EXPR:
9062 0 : switch (get_call_combined_fn (_q21))
9063 : {
9064 0 : case CFN_POPCOUNT:
9065 0 : if (call_expr_nargs (_q21) == 1)
9066 : {
9067 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
9068 0 : switch (TREE_CODE (_q50))
9069 : {
9070 0 : case BIT_AND_EXPR:
9071 0 : {
9072 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9073 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9074 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9075 : {
9076 0 : switch (TREE_CODE (_p1))
9077 : {
9078 0 : case CALL_EXPR:
9079 0 : switch (get_call_combined_fn (_p1))
9080 : {
9081 0 : case CFN_POPCOUNT:
9082 0 : if (call_expr_nargs (_p1) == 1)
9083 : {
9084 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9085 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9086 : {
9087 0 : {
9088 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9089 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9090 0 : if (res) return res;
9091 : }
9092 : }
9093 : }
9094 : break;
9095 : default:;
9096 : }
9097 : break;
9098 : default:;
9099 : }
9100 : }
9101 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9102 : {
9103 0 : switch (TREE_CODE (_p1))
9104 : {
9105 0 : case CALL_EXPR:
9106 0 : switch (get_call_combined_fn (_p1))
9107 : {
9108 0 : case CFN_POPCOUNT:
9109 0 : if (call_expr_nargs (_p1) == 1)
9110 : {
9111 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9112 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9113 : {
9114 0 : {
9115 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9116 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9117 0 : if (res) return res;
9118 : }
9119 : }
9120 : }
9121 : break;
9122 : default:;
9123 : }
9124 : break;
9125 : default:;
9126 : }
9127 : }
9128 : break;
9129 : }
9130 0 : case BIT_IOR_EXPR:
9131 0 : {
9132 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9133 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9134 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9135 : {
9136 0 : switch (TREE_CODE (_p1))
9137 : {
9138 0 : case CALL_EXPR:
9139 0 : switch (get_call_combined_fn (_p1))
9140 : {
9141 0 : case CFN_POPCOUNT:
9142 0 : if (call_expr_nargs (_p1) == 1)
9143 : {
9144 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9145 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9146 : {
9147 0 : {
9148 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9149 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9150 0 : if (res) return res;
9151 : }
9152 : }
9153 : }
9154 : break;
9155 : default:;
9156 : }
9157 : break;
9158 : default:;
9159 : }
9160 : }
9161 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9162 : {
9163 0 : switch (TREE_CODE (_p1))
9164 : {
9165 0 : case CALL_EXPR:
9166 0 : switch (get_call_combined_fn (_p1))
9167 : {
9168 0 : case CFN_POPCOUNT:
9169 0 : if (call_expr_nargs (_p1) == 1)
9170 : {
9171 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9172 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9173 : {
9174 0 : {
9175 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9176 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9177 0 : if (res) return res;
9178 : }
9179 : }
9180 : }
9181 : break;
9182 : default:;
9183 : }
9184 : break;
9185 : default:;
9186 : }
9187 : }
9188 : break;
9189 : }
9190 : default:;
9191 : }
9192 : }
9193 : break;
9194 : default:;
9195 : }
9196 : break;
9197 : default:;
9198 : }
9199 : }
9200 : break;
9201 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9202 0 : if (call_expr_nargs (_q20) == 1)
9203 : {
9204 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9205 0 : switch (TREE_CODE (_q21))
9206 : {
9207 0 : case CALL_EXPR:
9208 0 : switch (get_call_combined_fn (_q21))
9209 : {
9210 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9211 0 : if (call_expr_nargs (_q21) == 1)
9212 : {
9213 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
9214 0 : switch (TREE_CODE (_q50))
9215 : {
9216 0 : case BIT_AND_EXPR:
9217 0 : {
9218 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9219 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9220 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9221 : {
9222 0 : switch (TREE_CODE (_p1))
9223 : {
9224 0 : case CALL_EXPR:
9225 0 : switch (get_call_combined_fn (_p1))
9226 : {
9227 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9228 0 : if (call_expr_nargs (_p1) == 1)
9229 : {
9230 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9231 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9232 : {
9233 0 : {
9234 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9235 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9236 0 : if (res) return res;
9237 : }
9238 : }
9239 : }
9240 : break;
9241 : default:;
9242 : }
9243 : break;
9244 : default:;
9245 : }
9246 : }
9247 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9248 : {
9249 0 : switch (TREE_CODE (_p1))
9250 : {
9251 0 : case CALL_EXPR:
9252 0 : switch (get_call_combined_fn (_p1))
9253 : {
9254 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9255 0 : if (call_expr_nargs (_p1) == 1)
9256 : {
9257 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9258 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9259 : {
9260 0 : {
9261 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9262 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9263 0 : if (res) return res;
9264 : }
9265 : }
9266 : }
9267 : break;
9268 : default:;
9269 : }
9270 : break;
9271 : default:;
9272 : }
9273 : }
9274 : break;
9275 : }
9276 0 : case BIT_IOR_EXPR:
9277 0 : {
9278 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9279 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9280 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9281 : {
9282 0 : switch (TREE_CODE (_p1))
9283 : {
9284 0 : case CALL_EXPR:
9285 0 : switch (get_call_combined_fn (_p1))
9286 : {
9287 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9288 0 : if (call_expr_nargs (_p1) == 1)
9289 : {
9290 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9291 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9292 : {
9293 0 : {
9294 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9295 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9296 0 : if (res) return res;
9297 : }
9298 : }
9299 : }
9300 : break;
9301 : default:;
9302 : }
9303 : break;
9304 : default:;
9305 : }
9306 : }
9307 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9308 : {
9309 0 : switch (TREE_CODE (_p1))
9310 : {
9311 0 : case CALL_EXPR:
9312 0 : switch (get_call_combined_fn (_p1))
9313 : {
9314 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9315 0 : if (call_expr_nargs (_p1) == 1)
9316 : {
9317 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9318 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9319 : {
9320 0 : {
9321 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9322 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9323 0 : if (res) return res;
9324 : }
9325 : }
9326 : }
9327 : break;
9328 : default:;
9329 : }
9330 : break;
9331 : default:;
9332 : }
9333 : }
9334 : break;
9335 : }
9336 : default:;
9337 : }
9338 : }
9339 : break;
9340 : default:;
9341 : }
9342 : break;
9343 : default:;
9344 : }
9345 : }
9346 : break;
9347 0 : case CFN_BUILT_IN_POPCOUNTL:
9348 0 : if (call_expr_nargs (_q20) == 1)
9349 : {
9350 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9351 0 : switch (TREE_CODE (_q21))
9352 : {
9353 0 : case CALL_EXPR:
9354 0 : switch (get_call_combined_fn (_q21))
9355 : {
9356 0 : case CFN_BUILT_IN_POPCOUNTL:
9357 0 : if (call_expr_nargs (_q21) == 1)
9358 : {
9359 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
9360 0 : switch (TREE_CODE (_q50))
9361 : {
9362 0 : case BIT_AND_EXPR:
9363 0 : {
9364 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9365 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9366 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9367 : {
9368 0 : switch (TREE_CODE (_p1))
9369 : {
9370 0 : case CALL_EXPR:
9371 0 : switch (get_call_combined_fn (_p1))
9372 : {
9373 0 : case CFN_BUILT_IN_POPCOUNTL:
9374 0 : if (call_expr_nargs (_p1) == 1)
9375 : {
9376 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9377 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9378 : {
9379 0 : {
9380 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9381 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
9382 0 : if (res) return res;
9383 : }
9384 : }
9385 : }
9386 : break;
9387 : default:;
9388 : }
9389 : break;
9390 : default:;
9391 : }
9392 : }
9393 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9394 : {
9395 0 : switch (TREE_CODE (_p1))
9396 : {
9397 0 : case CALL_EXPR:
9398 0 : switch (get_call_combined_fn (_p1))
9399 : {
9400 0 : case CFN_BUILT_IN_POPCOUNTL:
9401 0 : if (call_expr_nargs (_p1) == 1)
9402 : {
9403 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9404 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9405 : {
9406 0 : {
9407 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9408 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
9409 0 : if (res) return res;
9410 : }
9411 : }
9412 : }
9413 : break;
9414 : default:;
9415 : }
9416 : break;
9417 : default:;
9418 : }
9419 : }
9420 : break;
9421 : }
9422 0 : case BIT_IOR_EXPR:
9423 0 : {
9424 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9425 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9426 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9427 : {
9428 0 : switch (TREE_CODE (_p1))
9429 : {
9430 0 : case CALL_EXPR:
9431 0 : switch (get_call_combined_fn (_p1))
9432 : {
9433 0 : case CFN_BUILT_IN_POPCOUNTL:
9434 0 : if (call_expr_nargs (_p1) == 1)
9435 : {
9436 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9437 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
9438 : {
9439 0 : {
9440 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
9441 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
9442 0 : if (res) return res;
9443 : }
9444 : }
9445 : }
9446 : break;
9447 : default:;
9448 : }
9449 : break;
9450 : default:;
9451 : }
9452 : }
9453 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9454 : {
9455 0 : switch (TREE_CODE (_p1))
9456 : {
9457 0 : case CALL_EXPR:
9458 0 : switch (get_call_combined_fn (_p1))
9459 : {
9460 0 : case CFN_BUILT_IN_POPCOUNTL:
9461 0 : if (call_expr_nargs (_p1) == 1)
9462 : {
9463 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
9464 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
9465 : {
9466 0 : {
9467 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
9468 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
9469 0 : if (res) return res;
9470 : }
9471 : }
9472 : }
9473 : break;
9474 : default:;
9475 : }
9476 : break;
9477 : default:;
9478 : }
9479 : }
9480 : break;
9481 : }
9482 : default:;
9483 : }
9484 : }
9485 : break;
9486 : default:;
9487 : }
9488 : break;
9489 : default:;
9490 : }
9491 : }
9492 : break;
9493 : default:;
9494 : }
9495 : break;
9496 : default:;
9497 : }
9498 : break;
9499 : }
9500 1 : case VEC_PERM_EXPR:
9501 1 : {
9502 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9503 1 : tree _q21 = TREE_OPERAND (_p0, 1);
9504 1 : tree _q22 = TREE_OPERAND (_p0, 2);
9505 1 : switch (TREE_CODE (_q20))
9506 : {
9507 0 : case MULT_EXPR:
9508 0 : {
9509 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9510 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9511 0 : if (tree_vec_same_elem_p (_q31))
9512 : {
9513 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
9514 : {
9515 0 : {
9516 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
9517 0 : tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
9518 0 : if (res) return res;
9519 : }
9520 : }
9521 : }
9522 0 : if (tree_vec_same_elem_p (_q30))
9523 : {
9524 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
9525 : {
9526 0 : {
9527 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
9528 0 : tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
9529 0 : if (res) return res;
9530 : }
9531 : }
9532 : }
9533 : break;
9534 : }
9535 1 : default:;
9536 : }
9537 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
9538 : {
9539 0 : switch (TREE_CODE (_p1))
9540 : {
9541 0 : case VEC_PERM_EXPR:
9542 0 : {
9543 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9544 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9545 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9546 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
9547 : {
9548 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9549 : {
9550 0 : {
9551 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
9552 0 : if (VECTOR_INTEGER_TYPE_P (type)
9553 : )
9554 : {
9555 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1312;
9556 0 : {
9557 0 : tree res_op0;
9558 0 : {
9559 0 : tree _o1[2], _r1;
9560 0 : _o1[0] = captures[0];
9561 0 : _o1[1] = captures[2];
9562 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9563 0 : captures[3] = _r1;
9564 : }
9565 0 : res_op0 = unshare_expr (captures[3]);
9566 0 : tree res_op1;
9567 0 : res_op1 = captures[3];
9568 0 : tree res_op2;
9569 0 : res_op2 = captures[1];
9570 0 : tree _r;
9571 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
9572 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 942, __FILE__, __LINE__, true);
9573 99376822 : return _r;
9574 : }
9575 0 : next_after_fail1312:;
9576 : }
9577 : }
9578 : }
9579 : }
9580 : break;
9581 : }
9582 0 : default:;
9583 : }
9584 0 : switch (TREE_CODE (_q22))
9585 : {
9586 0 : case VECTOR_CST:
9587 0 : {
9588 0 : switch (TREE_CODE (_p1))
9589 : {
9590 0 : case VEC_PERM_EXPR:
9591 0 : {
9592 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9593 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9594 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9595 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
9596 : {
9597 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9598 : {
9599 0 : switch (TREE_CODE (_q62))
9600 : {
9601 0 : case VECTOR_CST:
9602 0 : {
9603 0 : {
9604 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
9605 0 : tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, PLUS_EXPR);
9606 0 : if (res) return res;
9607 : }
9608 0 : break;
9609 : }
9610 : default:;
9611 : }
9612 : }
9613 : }
9614 : break;
9615 : }
9616 : default:;
9617 : }
9618 : break;
9619 : }
9620 : default:;
9621 : }
9622 : }
9623 : break;
9624 : }
9625 1472317 : case CALL_EXPR:
9626 1472317 : switch (get_call_combined_fn (_p0))
9627 : {
9628 9 : case CFN_BUILT_IN_LOG:
9629 9 : if (call_expr_nargs (_p0) == 1)
9630 : {
9631 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9632 9 : switch (TREE_CODE (_p1))
9633 : {
9634 0 : case CALL_EXPR:
9635 0 : switch (get_call_combined_fn (_p1))
9636 : {
9637 0 : case CFN_BUILT_IN_LOG:
9638 0 : if (call_expr_nargs (_p1) == 1)
9639 : {
9640 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9641 0 : {
9642 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9643 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
9644 0 : if (res) return res;
9645 : }
9646 : }
9647 : break;
9648 : default:;
9649 : }
9650 : break;
9651 : default:;
9652 : }
9653 : }
9654 : break;
9655 2540 : case CFN_BUILT_IN_POPCOUNT:
9656 2540 : if (call_expr_nargs (_p0) == 1)
9657 : {
9658 2540 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9659 2540 : switch (TREE_CODE (_p1))
9660 : {
9661 22 : case CALL_EXPR:
9662 22 : switch (get_call_combined_fn (_p1))
9663 : {
9664 22 : case CFN_BUILT_IN_POPCOUNT:
9665 22 : if (call_expr_nargs (_p1) == 1)
9666 : {
9667 22 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9668 22 : {
9669 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9670 22 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
9671 22 : if (res) return res;
9672 : }
9673 : }
9674 : break;
9675 : default:;
9676 : }
9677 : break;
9678 2539 : default:;
9679 : }
9680 2539 : switch (TREE_CODE (_q20))
9681 : {
9682 9 : case BIT_AND_EXPR:
9683 9 : {
9684 9 : tree _q30 = TREE_OPERAND (_q20, 0);
9685 9 : tree _q31 = TREE_OPERAND (_q20, 1);
9686 9 : switch (TREE_CODE (_p1))
9687 : {
9688 9 : case CALL_EXPR:
9689 9 : switch (get_call_combined_fn (_p1))
9690 : {
9691 9 : case CFN_BUILT_IN_POPCOUNT:
9692 9 : if (call_expr_nargs (_p1) == 1)
9693 : {
9694 9 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9695 9 : switch (TREE_CODE (_q60))
9696 : {
9697 9 : case BIT_IOR_EXPR:
9698 9 : {
9699 9 : tree _q70 = TREE_OPERAND (_q60, 0);
9700 9 : tree _q71 = TREE_OPERAND (_q60, 1);
9701 9 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9702 : {
9703 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9704 : {
9705 1 : {
9706 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9707 1 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
9708 1 : if (res) return res;
9709 : }
9710 : }
9711 : }
9712 8 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9713 : {
9714 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9715 : {
9716 1 : {
9717 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9718 1 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
9719 1 : if (res) return res;
9720 : }
9721 : }
9722 : }
9723 : break;
9724 : }
9725 : default:;
9726 : }
9727 : }
9728 : break;
9729 : default:;
9730 : }
9731 : break;
9732 : default:;
9733 : }
9734 : break;
9735 : }
9736 2 : case BIT_IOR_EXPR:
9737 2 : {
9738 2 : tree _q30 = TREE_OPERAND (_q20, 0);
9739 2 : tree _q31 = TREE_OPERAND (_q20, 1);
9740 2 : switch (TREE_CODE (_p1))
9741 : {
9742 2 : case CALL_EXPR:
9743 2 : switch (get_call_combined_fn (_p1))
9744 : {
9745 2 : case CFN_BUILT_IN_POPCOUNT:
9746 2 : if (call_expr_nargs (_p1) == 1)
9747 : {
9748 2 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9749 2 : switch (TREE_CODE (_q60))
9750 : {
9751 2 : case BIT_AND_EXPR:
9752 2 : {
9753 2 : tree _q70 = TREE_OPERAND (_q60, 0);
9754 2 : tree _q71 = TREE_OPERAND (_q60, 1);
9755 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9756 : {
9757 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9758 : {
9759 1 : {
9760 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9761 1 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
9762 1 : if (res) return res;
9763 : }
9764 : }
9765 : }
9766 1 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9767 : {
9768 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9769 : {
9770 1 : {
9771 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9772 1 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
9773 1 : if (res) return res;
9774 : }
9775 : }
9776 : }
9777 : break;
9778 : }
9779 : default:;
9780 : }
9781 : }
9782 : break;
9783 : default:;
9784 : }
9785 : break;
9786 : default:;
9787 : }
9788 : break;
9789 : }
9790 2535 : default:;
9791 : }
9792 2535 : switch (TREE_CODE (_p1))
9793 : {
9794 0 : case MINUS_EXPR:
9795 0 : {
9796 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9797 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9798 0 : switch (TREE_CODE (_q40))
9799 : {
9800 0 : case CALL_EXPR:
9801 0 : switch (get_call_combined_fn (_q40))
9802 : {
9803 0 : case CFN_BUILT_IN_POPCOUNT:
9804 0 : if (call_expr_nargs (_q40) == 1)
9805 : {
9806 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9807 0 : switch (TREE_CODE (_q41))
9808 : {
9809 0 : case CALL_EXPR:
9810 0 : switch (get_call_combined_fn (_q41))
9811 : {
9812 0 : case CFN_BUILT_IN_POPCOUNT:
9813 0 : if (call_expr_nargs (_q41) == 1)
9814 : {
9815 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9816 0 : switch (TREE_CODE (_q70))
9817 : {
9818 0 : case BIT_AND_EXPR:
9819 0 : {
9820 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9821 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9822 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9823 : {
9824 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9825 : {
9826 0 : {
9827 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9828 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
9829 0 : if (res) return res;
9830 : }
9831 : }
9832 : }
9833 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9834 : {
9835 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9836 : {
9837 0 : {
9838 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9839 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
9840 0 : if (res) return res;
9841 : }
9842 : }
9843 : }
9844 : break;
9845 : }
9846 0 : case BIT_IOR_EXPR:
9847 0 : {
9848 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9849 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9850 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9851 : {
9852 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9853 : {
9854 0 : {
9855 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9856 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
9857 0 : if (res) return res;
9858 : }
9859 : }
9860 : }
9861 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9862 : {
9863 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9864 : {
9865 0 : {
9866 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9867 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
9868 0 : if (res) return res;
9869 : }
9870 : }
9871 : }
9872 : break;
9873 : }
9874 : default:;
9875 : }
9876 : }
9877 : break;
9878 : default:;
9879 : }
9880 : break;
9881 : default:;
9882 : }
9883 : }
9884 : break;
9885 : default:;
9886 : }
9887 : break;
9888 : default:;
9889 : }
9890 : break;
9891 : }
9892 : default:;
9893 : }
9894 : }
9895 : break;
9896 1 : case CFN_BUILT_IN_LOG2:
9897 1 : if (call_expr_nargs (_p0) == 1)
9898 : {
9899 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9900 1 : switch (TREE_CODE (_p1))
9901 : {
9902 1 : case CALL_EXPR:
9903 1 : switch (get_call_combined_fn (_p1))
9904 : {
9905 1 : case CFN_BUILT_IN_LOG2:
9906 1 : if (call_expr_nargs (_p1) == 1)
9907 : {
9908 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9909 1 : {
9910 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9911 1 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
9912 1 : if (res) return res;
9913 : }
9914 : }
9915 : break;
9916 : default:;
9917 : }
9918 : break;
9919 : default:;
9920 : }
9921 : }
9922 : break;
9923 0 : case CFN_BUILT_IN_LOGF:
9924 0 : if (call_expr_nargs (_p0) == 1)
9925 : {
9926 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9927 0 : switch (TREE_CODE (_p1))
9928 : {
9929 0 : case CALL_EXPR:
9930 0 : switch (get_call_combined_fn (_p1))
9931 : {
9932 0 : case CFN_BUILT_IN_LOGF:
9933 0 : if (call_expr_nargs (_p1) == 1)
9934 : {
9935 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9936 0 : {
9937 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9938 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
9939 0 : if (res) return res;
9940 : }
9941 : }
9942 : break;
9943 : default:;
9944 : }
9945 : break;
9946 : default:;
9947 : }
9948 : }
9949 : break;
9950 0 : case CFN_BUILT_IN_LOGL:
9951 0 : if (call_expr_nargs (_p0) == 1)
9952 : {
9953 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9954 0 : switch (TREE_CODE (_p1))
9955 : {
9956 0 : case CALL_EXPR:
9957 0 : switch (get_call_combined_fn (_p1))
9958 : {
9959 0 : case CFN_BUILT_IN_LOGL:
9960 0 : if (call_expr_nargs (_p1) == 1)
9961 : {
9962 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9963 0 : {
9964 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9965 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
9966 0 : if (res) return res;
9967 : }
9968 : }
9969 : break;
9970 : default:;
9971 : }
9972 : break;
9973 : default:;
9974 : }
9975 : }
9976 : break;
9977 27 : case CFN_BUILT_IN_POPCOUNTLL:
9978 27 : if (call_expr_nargs (_p0) == 1)
9979 : {
9980 27 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9981 27 : switch (TREE_CODE (_p1))
9982 : {
9983 25 : case CALL_EXPR:
9984 25 : switch (get_call_combined_fn (_p1))
9985 : {
9986 25 : case CFN_BUILT_IN_POPCOUNTLL:
9987 25 : if (call_expr_nargs (_p1) == 1)
9988 : {
9989 25 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9990 25 : {
9991 25 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9992 25 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9993 25 : if (res) return res;
9994 : }
9995 : }
9996 : break;
9997 : default:;
9998 : }
9999 : break;
10000 27 : default:;
10001 : }
10002 27 : switch (TREE_CODE (_q20))
10003 : {
10004 0 : case BIT_AND_EXPR:
10005 0 : {
10006 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10007 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10008 0 : switch (TREE_CODE (_p1))
10009 : {
10010 0 : case CALL_EXPR:
10011 0 : switch (get_call_combined_fn (_p1))
10012 : {
10013 0 : case CFN_BUILT_IN_POPCOUNTLL:
10014 0 : if (call_expr_nargs (_p1) == 1)
10015 : {
10016 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10017 0 : switch (TREE_CODE (_q60))
10018 : {
10019 0 : case BIT_IOR_EXPR:
10020 0 : {
10021 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10022 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10023 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10024 : {
10025 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10026 : {
10027 0 : {
10028 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10029 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
10030 0 : if (res) return res;
10031 : }
10032 : }
10033 : }
10034 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10035 : {
10036 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10037 : {
10038 0 : {
10039 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10040 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
10041 0 : if (res) return res;
10042 : }
10043 : }
10044 : }
10045 : break;
10046 : }
10047 : default:;
10048 : }
10049 : }
10050 : break;
10051 : default:;
10052 : }
10053 : break;
10054 : default:;
10055 : }
10056 : break;
10057 : }
10058 0 : case BIT_IOR_EXPR:
10059 0 : {
10060 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10061 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10062 0 : switch (TREE_CODE (_p1))
10063 : {
10064 0 : case CALL_EXPR:
10065 0 : switch (get_call_combined_fn (_p1))
10066 : {
10067 0 : case CFN_BUILT_IN_POPCOUNTLL:
10068 0 : if (call_expr_nargs (_p1) == 1)
10069 : {
10070 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10071 0 : switch (TREE_CODE (_q60))
10072 : {
10073 0 : case BIT_AND_EXPR:
10074 0 : {
10075 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10076 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10077 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10078 : {
10079 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10080 : {
10081 0 : {
10082 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
10083 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
10084 0 : if (res) return res;
10085 : }
10086 : }
10087 : }
10088 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10089 : {
10090 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10091 : {
10092 0 : {
10093 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
10094 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
10095 0 : if (res) return res;
10096 : }
10097 : }
10098 : }
10099 : break;
10100 : }
10101 : default:;
10102 : }
10103 : }
10104 : break;
10105 : default:;
10106 : }
10107 : break;
10108 : default:;
10109 : }
10110 : break;
10111 : }
10112 27 : default:;
10113 : }
10114 27 : switch (TREE_CODE (_p1))
10115 : {
10116 0 : case MINUS_EXPR:
10117 0 : {
10118 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10119 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10120 0 : switch (TREE_CODE (_q40))
10121 : {
10122 0 : case CALL_EXPR:
10123 0 : switch (get_call_combined_fn (_q40))
10124 : {
10125 0 : case CFN_BUILT_IN_POPCOUNTLL:
10126 0 : if (call_expr_nargs (_q40) == 1)
10127 : {
10128 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
10129 0 : switch (TREE_CODE (_q41))
10130 : {
10131 0 : case CALL_EXPR:
10132 0 : switch (get_call_combined_fn (_q41))
10133 : {
10134 0 : case CFN_BUILT_IN_POPCOUNTLL:
10135 0 : if (call_expr_nargs (_q41) == 1)
10136 : {
10137 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10138 0 : switch (TREE_CODE (_q70))
10139 : {
10140 0 : case BIT_AND_EXPR:
10141 0 : {
10142 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10143 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10144 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10145 : {
10146 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10147 : {
10148 0 : {
10149 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10150 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10151 0 : if (res) return res;
10152 : }
10153 : }
10154 : }
10155 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10156 : {
10157 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10158 : {
10159 0 : {
10160 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10161 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10162 0 : if (res) return res;
10163 : }
10164 : }
10165 : }
10166 : break;
10167 : }
10168 0 : case BIT_IOR_EXPR:
10169 0 : {
10170 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10171 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10172 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10173 : {
10174 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10175 : {
10176 0 : {
10177 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10178 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10179 0 : if (res) return res;
10180 : }
10181 : }
10182 : }
10183 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10184 : {
10185 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10186 : {
10187 0 : {
10188 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10189 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10190 0 : if (res) return res;
10191 : }
10192 : }
10193 : }
10194 : break;
10195 : }
10196 : default:;
10197 : }
10198 : }
10199 : break;
10200 : default:;
10201 : }
10202 : break;
10203 : default:;
10204 : }
10205 : }
10206 : break;
10207 : default:;
10208 : }
10209 : break;
10210 : default:;
10211 : }
10212 : break;
10213 : }
10214 : default:;
10215 : }
10216 : }
10217 : break;
10218 0 : case CFN_BUILT_IN_LOG10F:
10219 0 : if (call_expr_nargs (_p0) == 1)
10220 : {
10221 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10222 0 : switch (TREE_CODE (_p1))
10223 : {
10224 0 : case CALL_EXPR:
10225 0 : switch (get_call_combined_fn (_p1))
10226 : {
10227 0 : case CFN_BUILT_IN_LOG10F:
10228 0 : if (call_expr_nargs (_p1) == 1)
10229 : {
10230 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10231 0 : {
10232 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10233 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
10234 0 : if (res) return res;
10235 : }
10236 : }
10237 : break;
10238 : default:;
10239 : }
10240 : break;
10241 : default:;
10242 : }
10243 : }
10244 : break;
10245 0 : case CFN_BUILT_IN_LOG10L:
10246 0 : if (call_expr_nargs (_p0) == 1)
10247 : {
10248 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10249 0 : switch (TREE_CODE (_p1))
10250 : {
10251 0 : case CALL_EXPR:
10252 0 : switch (get_call_combined_fn (_p1))
10253 : {
10254 0 : case CFN_BUILT_IN_LOG10L:
10255 0 : if (call_expr_nargs (_p1) == 1)
10256 : {
10257 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10258 0 : {
10259 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10260 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
10261 0 : if (res) return res;
10262 : }
10263 : }
10264 : break;
10265 : default:;
10266 : }
10267 : break;
10268 : default:;
10269 : }
10270 : }
10271 : break;
10272 7 : case CFN_POPCOUNT:
10273 7 : if (call_expr_nargs (_p0) == 1)
10274 : {
10275 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10276 7 : switch (TREE_CODE (_p1))
10277 : {
10278 1 : case CALL_EXPR:
10279 1 : switch (get_call_combined_fn (_p1))
10280 : {
10281 1 : case CFN_POPCOUNT:
10282 1 : if (call_expr_nargs (_p1) == 1)
10283 : {
10284 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10285 1 : {
10286 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10287 1 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
10288 1 : if (res) return res;
10289 : }
10290 : }
10291 : break;
10292 : default:;
10293 : }
10294 : break;
10295 7 : default:;
10296 : }
10297 7 : switch (TREE_CODE (_q20))
10298 : {
10299 0 : case BIT_AND_EXPR:
10300 0 : {
10301 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10302 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10303 0 : switch (TREE_CODE (_p1))
10304 : {
10305 0 : case CALL_EXPR:
10306 0 : switch (get_call_combined_fn (_p1))
10307 : {
10308 0 : case CFN_POPCOUNT:
10309 0 : if (call_expr_nargs (_p1) == 1)
10310 : {
10311 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10312 0 : switch (TREE_CODE (_q60))
10313 : {
10314 0 : case BIT_IOR_EXPR:
10315 0 : {
10316 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10317 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10318 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10319 : {
10320 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10321 : {
10322 0 : {
10323 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10324 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
10325 0 : if (res) return res;
10326 : }
10327 : }
10328 : }
10329 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10330 : {
10331 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10332 : {
10333 0 : {
10334 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10335 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
10336 0 : if (res) return res;
10337 : }
10338 : }
10339 : }
10340 : break;
10341 : }
10342 : default:;
10343 : }
10344 : }
10345 : break;
10346 : default:;
10347 : }
10348 : break;
10349 : default:;
10350 : }
10351 : break;
10352 : }
10353 0 : case BIT_IOR_EXPR:
10354 0 : {
10355 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10356 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10357 0 : switch (TREE_CODE (_p1))
10358 : {
10359 0 : case CALL_EXPR:
10360 0 : switch (get_call_combined_fn (_p1))
10361 : {
10362 0 : case CFN_POPCOUNT:
10363 0 : if (call_expr_nargs (_p1) == 1)
10364 : {
10365 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10366 0 : switch (TREE_CODE (_q60))
10367 : {
10368 0 : case BIT_AND_EXPR:
10369 0 : {
10370 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10371 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10372 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10373 : {
10374 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10375 : {
10376 0 : {
10377 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
10378 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
10379 0 : if (res) return res;
10380 : }
10381 : }
10382 : }
10383 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10384 : {
10385 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10386 : {
10387 0 : {
10388 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
10389 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
10390 0 : if (res) return res;
10391 : }
10392 : }
10393 : }
10394 : break;
10395 : }
10396 : default:;
10397 : }
10398 : }
10399 : break;
10400 : default:;
10401 : }
10402 : break;
10403 : default:;
10404 : }
10405 : break;
10406 : }
10407 7 : default:;
10408 : }
10409 7 : switch (TREE_CODE (_p1))
10410 : {
10411 0 : case MINUS_EXPR:
10412 0 : {
10413 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10414 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10415 0 : switch (TREE_CODE (_q40))
10416 : {
10417 0 : case CALL_EXPR:
10418 0 : switch (get_call_combined_fn (_q40))
10419 : {
10420 0 : case CFN_POPCOUNT:
10421 0 : if (call_expr_nargs (_q40) == 1)
10422 : {
10423 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
10424 0 : switch (TREE_CODE (_q41))
10425 : {
10426 0 : case CALL_EXPR:
10427 0 : switch (get_call_combined_fn (_q41))
10428 : {
10429 0 : case CFN_POPCOUNT:
10430 0 : if (call_expr_nargs (_q41) == 1)
10431 : {
10432 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10433 0 : switch (TREE_CODE (_q70))
10434 : {
10435 0 : case BIT_AND_EXPR:
10436 0 : {
10437 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10438 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10439 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10440 : {
10441 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10442 : {
10443 0 : {
10444 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10445 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
10446 0 : if (res) return res;
10447 : }
10448 : }
10449 : }
10450 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10451 : {
10452 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10453 : {
10454 0 : {
10455 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10456 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
10457 0 : if (res) return res;
10458 : }
10459 : }
10460 : }
10461 : break;
10462 : }
10463 0 : case BIT_IOR_EXPR:
10464 0 : {
10465 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10466 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10467 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10468 : {
10469 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10470 : {
10471 0 : {
10472 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10473 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
10474 0 : if (res) return res;
10475 : }
10476 : }
10477 : }
10478 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10479 : {
10480 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10481 : {
10482 0 : {
10483 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10484 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
10485 0 : if (res) return res;
10486 : }
10487 : }
10488 : }
10489 : break;
10490 : }
10491 : default:;
10492 : }
10493 : }
10494 : break;
10495 : default:;
10496 : }
10497 : break;
10498 : default:;
10499 : }
10500 : }
10501 : break;
10502 : default:;
10503 : }
10504 : break;
10505 : default:;
10506 : }
10507 : break;
10508 : }
10509 : default:;
10510 : }
10511 : }
10512 : break;
10513 0 : case CFN_LOG:
10514 0 : if (call_expr_nargs (_p0) == 1)
10515 : {
10516 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10517 0 : switch (TREE_CODE (_p1))
10518 : {
10519 0 : case CALL_EXPR:
10520 0 : switch (get_call_combined_fn (_p1))
10521 : {
10522 0 : case CFN_LOG:
10523 0 : if (call_expr_nargs (_p1) == 1)
10524 : {
10525 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10526 0 : {
10527 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10528 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_LOG);
10529 0 : if (res) return res;
10530 : }
10531 : }
10532 : break;
10533 : default:;
10534 : }
10535 : break;
10536 : default:;
10537 : }
10538 : }
10539 : break;
10540 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10541 0 : if (call_expr_nargs (_p0) == 1)
10542 : {
10543 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10544 0 : switch (TREE_CODE (_p1))
10545 : {
10546 0 : case CALL_EXPR:
10547 0 : switch (get_call_combined_fn (_p1))
10548 : {
10549 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10550 0 : if (call_expr_nargs (_p1) == 1)
10551 : {
10552 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10553 0 : {
10554 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10555 0 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
10556 0 : if (res) return res;
10557 : }
10558 : }
10559 : break;
10560 : default:;
10561 : }
10562 : break;
10563 0 : default:;
10564 : }
10565 0 : switch (TREE_CODE (_q20))
10566 : {
10567 0 : case BIT_AND_EXPR:
10568 0 : {
10569 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10570 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10571 0 : switch (TREE_CODE (_p1))
10572 : {
10573 0 : case CALL_EXPR:
10574 0 : switch (get_call_combined_fn (_p1))
10575 : {
10576 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10577 0 : if (call_expr_nargs (_p1) == 1)
10578 : {
10579 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10580 0 : switch (TREE_CODE (_q60))
10581 : {
10582 0 : case BIT_IOR_EXPR:
10583 0 : {
10584 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10585 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10586 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10587 : {
10588 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10589 : {
10590 0 : {
10591 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10592 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
10593 0 : if (res) return res;
10594 : }
10595 : }
10596 : }
10597 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10598 : {
10599 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10600 : {
10601 0 : {
10602 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10603 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
10604 0 : if (res) return res;
10605 : }
10606 : }
10607 : }
10608 : break;
10609 : }
10610 : default:;
10611 : }
10612 : }
10613 : break;
10614 : default:;
10615 : }
10616 : break;
10617 : default:;
10618 : }
10619 : break;
10620 : }
10621 0 : case BIT_IOR_EXPR:
10622 0 : {
10623 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10624 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10625 0 : switch (TREE_CODE (_p1))
10626 : {
10627 0 : case CALL_EXPR:
10628 0 : switch (get_call_combined_fn (_p1))
10629 : {
10630 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10631 0 : if (call_expr_nargs (_p1) == 1)
10632 : {
10633 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10634 0 : switch (TREE_CODE (_q60))
10635 : {
10636 0 : case BIT_AND_EXPR:
10637 0 : {
10638 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10639 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10640 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10641 : {
10642 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10643 : {
10644 0 : {
10645 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
10646 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
10647 0 : if (res) return res;
10648 : }
10649 : }
10650 : }
10651 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10652 : {
10653 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10654 : {
10655 0 : {
10656 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
10657 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
10658 0 : if (res) return res;
10659 : }
10660 : }
10661 : }
10662 : break;
10663 : }
10664 : default:;
10665 : }
10666 : }
10667 : break;
10668 : default:;
10669 : }
10670 : break;
10671 : default:;
10672 : }
10673 : break;
10674 : }
10675 0 : default:;
10676 : }
10677 0 : switch (TREE_CODE (_p1))
10678 : {
10679 0 : case MINUS_EXPR:
10680 0 : {
10681 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10682 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10683 0 : switch (TREE_CODE (_q40))
10684 : {
10685 0 : case CALL_EXPR:
10686 0 : switch (get_call_combined_fn (_q40))
10687 : {
10688 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10689 0 : if (call_expr_nargs (_q40) == 1)
10690 : {
10691 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
10692 0 : switch (TREE_CODE (_q41))
10693 : {
10694 0 : case CALL_EXPR:
10695 0 : switch (get_call_combined_fn (_q41))
10696 : {
10697 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10698 0 : if (call_expr_nargs (_q41) == 1)
10699 : {
10700 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10701 0 : switch (TREE_CODE (_q70))
10702 : {
10703 0 : case BIT_AND_EXPR:
10704 0 : {
10705 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10706 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10707 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10708 : {
10709 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10710 : {
10711 0 : {
10712 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10713 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10714 0 : if (res) return res;
10715 : }
10716 : }
10717 : }
10718 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10719 : {
10720 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10721 : {
10722 0 : {
10723 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10724 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10725 0 : if (res) return res;
10726 : }
10727 : }
10728 : }
10729 : break;
10730 : }
10731 0 : case BIT_IOR_EXPR:
10732 0 : {
10733 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10734 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10735 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10736 : {
10737 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10738 : {
10739 0 : {
10740 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10741 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10742 0 : if (res) return res;
10743 : }
10744 : }
10745 : }
10746 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10747 : {
10748 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10749 : {
10750 0 : {
10751 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10752 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10753 0 : if (res) return res;
10754 : }
10755 : }
10756 : }
10757 : break;
10758 : }
10759 : default:;
10760 : }
10761 : }
10762 : break;
10763 : default:;
10764 : }
10765 : break;
10766 : default:;
10767 : }
10768 : }
10769 : break;
10770 : default:;
10771 : }
10772 : break;
10773 : default:;
10774 : }
10775 : break;
10776 : }
10777 : default:;
10778 : }
10779 : }
10780 : break;
10781 0 : case CFN_REDUC_PLUS:
10782 0 : if (call_expr_nargs (_p0) == 1)
10783 : {
10784 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10785 0 : switch (TREE_CODE (_p1))
10786 : {
10787 0 : case CALL_EXPR:
10788 0 : switch (get_call_combined_fn (_p1))
10789 : {
10790 0 : case CFN_REDUC_PLUS:
10791 0 : if (call_expr_nargs (_p1) == 1)
10792 : {
10793 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10794 0 : {
10795 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10796 0 : tree res = generic_simplify_88 (loc, type, _p0, _p1, captures, PLUS_EXPR);
10797 0 : if (res) return res;
10798 : }
10799 : }
10800 : break;
10801 : default:;
10802 : }
10803 : break;
10804 : default:;
10805 : }
10806 : }
10807 : break;
10808 0 : case CFN_LOG2:
10809 0 : if (call_expr_nargs (_p0) == 1)
10810 : {
10811 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10812 0 : switch (TREE_CODE (_p1))
10813 : {
10814 0 : case CALL_EXPR:
10815 0 : switch (get_call_combined_fn (_p1))
10816 : {
10817 0 : case CFN_LOG2:
10818 0 : if (call_expr_nargs (_p1) == 1)
10819 : {
10820 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10821 0 : {
10822 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10823 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_LOG2);
10824 0 : if (res) return res;
10825 : }
10826 : }
10827 : break;
10828 : default:;
10829 : }
10830 : break;
10831 : default:;
10832 : }
10833 : }
10834 : break;
10835 141 : case CFN_BUILT_IN_POPCOUNTL:
10836 141 : if (call_expr_nargs (_p0) == 1)
10837 : {
10838 141 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10839 141 : switch (TREE_CODE (_p1))
10840 : {
10841 69 : case CALL_EXPR:
10842 69 : switch (get_call_combined_fn (_p1))
10843 : {
10844 69 : case CFN_BUILT_IN_POPCOUNTL:
10845 69 : if (call_expr_nargs (_p1) == 1)
10846 : {
10847 69 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10848 69 : {
10849 69 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10850 69 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10851 69 : if (res) return res;
10852 : }
10853 : }
10854 : break;
10855 : default:;
10856 : }
10857 : break;
10858 141 : default:;
10859 : }
10860 141 : switch (TREE_CODE (_q20))
10861 : {
10862 0 : case BIT_AND_EXPR:
10863 0 : {
10864 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10865 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10866 0 : switch (TREE_CODE (_p1))
10867 : {
10868 0 : case CALL_EXPR:
10869 0 : switch (get_call_combined_fn (_p1))
10870 : {
10871 0 : case CFN_BUILT_IN_POPCOUNTL:
10872 0 : if (call_expr_nargs (_p1) == 1)
10873 : {
10874 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10875 0 : switch (TREE_CODE (_q60))
10876 : {
10877 0 : case BIT_IOR_EXPR:
10878 0 : {
10879 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10880 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10881 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10882 : {
10883 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10884 : {
10885 0 : {
10886 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10887 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10888 0 : if (res) return res;
10889 : }
10890 : }
10891 : }
10892 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10893 : {
10894 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10895 : {
10896 0 : {
10897 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
10898 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10899 0 : if (res) return res;
10900 : }
10901 : }
10902 : }
10903 : break;
10904 : }
10905 : default:;
10906 : }
10907 : }
10908 : break;
10909 : default:;
10910 : }
10911 : break;
10912 : default:;
10913 : }
10914 : break;
10915 : }
10916 0 : case BIT_IOR_EXPR:
10917 0 : {
10918 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10919 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10920 0 : switch (TREE_CODE (_p1))
10921 : {
10922 0 : case CALL_EXPR:
10923 0 : switch (get_call_combined_fn (_p1))
10924 : {
10925 0 : case CFN_BUILT_IN_POPCOUNTL:
10926 0 : if (call_expr_nargs (_p1) == 1)
10927 : {
10928 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
10929 0 : switch (TREE_CODE (_q60))
10930 : {
10931 0 : case BIT_AND_EXPR:
10932 0 : {
10933 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10934 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10935 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10936 : {
10937 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10938 : {
10939 0 : {
10940 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
10941 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10942 0 : if (res) return res;
10943 : }
10944 : }
10945 : }
10946 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10947 : {
10948 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10949 : {
10950 0 : {
10951 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
10952 0 : tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10953 0 : if (res) return res;
10954 : }
10955 : }
10956 : }
10957 : break;
10958 : }
10959 : default:;
10960 : }
10961 : }
10962 : break;
10963 : default:;
10964 : }
10965 : break;
10966 : default:;
10967 : }
10968 : break;
10969 : }
10970 141 : default:;
10971 : }
10972 141 : switch (TREE_CODE (_p1))
10973 : {
10974 0 : case MINUS_EXPR:
10975 0 : {
10976 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10977 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10978 0 : switch (TREE_CODE (_q40))
10979 : {
10980 0 : case CALL_EXPR:
10981 0 : switch (get_call_combined_fn (_q40))
10982 : {
10983 0 : case CFN_BUILT_IN_POPCOUNTL:
10984 0 : if (call_expr_nargs (_q40) == 1)
10985 : {
10986 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
10987 0 : switch (TREE_CODE (_q41))
10988 : {
10989 0 : case CALL_EXPR:
10990 0 : switch (get_call_combined_fn (_q41))
10991 : {
10992 0 : case CFN_BUILT_IN_POPCOUNTL:
10993 0 : if (call_expr_nargs (_q41) == 1)
10994 : {
10995 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10996 0 : switch (TREE_CODE (_q70))
10997 : {
10998 0 : case BIT_AND_EXPR:
10999 0 : {
11000 0 : tree _q80 = TREE_OPERAND (_q70, 0);
11001 0 : tree _q81 = TREE_OPERAND (_q70, 1);
11002 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11003 : {
11004 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11005 : {
11006 0 : {
11007 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
11008 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
11009 0 : if (res) return res;
11010 : }
11011 : }
11012 : }
11013 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11014 : {
11015 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11016 : {
11017 0 : {
11018 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
11019 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
11020 0 : if (res) return res;
11021 : }
11022 : }
11023 : }
11024 : break;
11025 : }
11026 0 : case BIT_IOR_EXPR:
11027 0 : {
11028 0 : tree _q80 = TREE_OPERAND (_q70, 0);
11029 0 : tree _q81 = TREE_OPERAND (_q70, 1);
11030 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11031 : {
11032 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11033 : {
11034 0 : {
11035 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
11036 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
11037 0 : if (res) return res;
11038 : }
11039 : }
11040 : }
11041 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11042 : {
11043 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11044 : {
11045 0 : {
11046 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
11047 0 : tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
11048 0 : if (res) return res;
11049 : }
11050 : }
11051 : }
11052 : break;
11053 : }
11054 : default:;
11055 : }
11056 : }
11057 : break;
11058 : default:;
11059 : }
11060 : break;
11061 : default:;
11062 : }
11063 : }
11064 : break;
11065 : default:;
11066 : }
11067 : break;
11068 : default:;
11069 : }
11070 : break;
11071 : }
11072 : default:;
11073 : }
11074 : }
11075 : break;
11076 0 : case CFN_LOG10:
11077 0 : if (call_expr_nargs (_p0) == 1)
11078 : {
11079 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11080 0 : switch (TREE_CODE (_p1))
11081 : {
11082 0 : case CALL_EXPR:
11083 0 : switch (get_call_combined_fn (_p1))
11084 : {
11085 0 : case CFN_LOG10:
11086 0 : if (call_expr_nargs (_p1) == 1)
11087 : {
11088 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11089 0 : {
11090 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11091 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_LOG10);
11092 0 : if (res) return res;
11093 : }
11094 : }
11095 : break;
11096 : default:;
11097 : }
11098 : break;
11099 : default:;
11100 : }
11101 : }
11102 : break;
11103 0 : case CFN_BUILT_IN_LOG10:
11104 0 : if (call_expr_nargs (_p0) == 1)
11105 : {
11106 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11107 0 : switch (TREE_CODE (_p1))
11108 : {
11109 0 : case CALL_EXPR:
11110 0 : switch (get_call_combined_fn (_p1))
11111 : {
11112 0 : case CFN_BUILT_IN_LOG10:
11113 0 : if (call_expr_nargs (_p1) == 1)
11114 : {
11115 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11116 0 : {
11117 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11118 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
11119 0 : if (res) return res;
11120 : }
11121 : }
11122 : break;
11123 : default:;
11124 : }
11125 : break;
11126 : default:;
11127 : }
11128 : }
11129 : break;
11130 0 : case CFN_BUILT_IN_LOG2F:
11131 0 : if (call_expr_nargs (_p0) == 1)
11132 : {
11133 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11134 0 : switch (TREE_CODE (_p1))
11135 : {
11136 0 : case CALL_EXPR:
11137 0 : switch (get_call_combined_fn (_p1))
11138 : {
11139 0 : case CFN_BUILT_IN_LOG2F:
11140 0 : if (call_expr_nargs (_p1) == 1)
11141 : {
11142 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11143 0 : {
11144 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11145 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
11146 0 : if (res) return res;
11147 : }
11148 : }
11149 : break;
11150 : default:;
11151 : }
11152 : break;
11153 : default:;
11154 : }
11155 : }
11156 : break;
11157 0 : case CFN_BUILT_IN_LOG2L:
11158 0 : if (call_expr_nargs (_p0) == 1)
11159 : {
11160 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11161 0 : switch (TREE_CODE (_p1))
11162 : {
11163 0 : case CALL_EXPR:
11164 0 : switch (get_call_combined_fn (_p1))
11165 : {
11166 0 : case CFN_BUILT_IN_LOG2L:
11167 0 : if (call_expr_nargs (_p1) == 1)
11168 : {
11169 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11170 0 : {
11171 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11172 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
11173 0 : if (res) return res;
11174 : }
11175 : }
11176 : break;
11177 : default:;
11178 : }
11179 : break;
11180 : default:;
11181 : }
11182 : }
11183 : break;
11184 : default:;
11185 : }
11186 : break;
11187 63870130 : default:;
11188 : }
11189 63870130 : switch (TREE_CODE (_p1))
11190 : {
11191 0 : case VEC_PERM_EXPR:
11192 0 : {
11193 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11194 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11195 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11196 0 : switch (TREE_CODE (_q30))
11197 : {
11198 0 : case MULT_EXPR:
11199 0 : {
11200 0 : tree _q40 = TREE_OPERAND (_q30, 0);
11201 0 : tree _q41 = TREE_OPERAND (_q30, 1);
11202 0 : if (tree_vec_same_elem_p (_q41))
11203 : {
11204 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
11205 : {
11206 0 : {
11207 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
11208 0 : tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
11209 0 : if (res) return res;
11210 : }
11211 : }
11212 : }
11213 0 : if (tree_vec_same_elem_p (_q40))
11214 : {
11215 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
11216 : {
11217 0 : {
11218 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
11219 0 : tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
11220 0 : if (res) return res;
11221 : }
11222 : }
11223 : }
11224 : break;
11225 : }
11226 : default:;
11227 : }
11228 : break;
11229 : }
11230 : default:;
11231 : }
11232 : return NULL_TREE;
11233 : }
11234 :
11235 : tree
11236 1940 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11237 : {
11238 1940 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11239 1940 : if (integer_all_onesp (_p0))
11240 : {
11241 0 : {
11242 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11243 0 : tree res = generic_simplify_584 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11244 0 : if (res) return res;
11245 : }
11246 : }
11247 1940 : if (integer_zerop (_p1))
11248 : {
11249 0 : {
11250 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11251 0 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11252 0 : if (res) return res;
11253 : }
11254 : }
11255 1940 : if (integer_zerop (_p0))
11256 : {
11257 0 : {
11258 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11259 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11260 0 : if (res) return res;
11261 : }
11262 : }
11263 1940 : switch (TREE_CODE (_p1))
11264 : {
11265 0 : case VECTOR_CST:
11266 0 : {
11267 0 : {
11268 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11269 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11270 0 : if (res) return res;
11271 : }
11272 0 : break;
11273 : }
11274 0 : case CONSTRUCTOR:
11275 0 : {
11276 0 : {
11277 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11278 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11279 0 : if (res) return res;
11280 : }
11281 0 : break;
11282 : }
11283 1289 : case INTEGER_CST:
11284 1289 : {
11285 1289 : {
11286 1289 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11287 1289 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1864;
11288 1289 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1864;
11289 1289 : {
11290 1289 : tree res_op0;
11291 1289 : res_op0 = captures[0];
11292 1289 : tree res_op1;
11293 1289 : res_op1 = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
11294 1289 : build_int_cst (TREE_TYPE (captures[1]),
11295 1289 : element_precision (type)), captures[1]);
11296 1289 : tree _r;
11297 1289 : _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
11298 1289 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
11299 : return _r;
11300 : }
11301 651 : next_after_fail1864:;
11302 : }
11303 : break;
11304 : }
11305 0 : case MINUS_EXPR:
11306 0 : {
11307 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11308 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11309 0 : switch (TREE_CODE (_q30))
11310 : {
11311 0 : case INTEGER_CST:
11312 0 : {
11313 0 : {
11314 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
11315 0 : tree res = generic_simplify_585 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
11316 0 : if (res) return res;
11317 : }
11318 0 : break;
11319 : }
11320 : default:;
11321 : }
11322 : break;
11323 : }
11324 651 : default:;
11325 : }
11326 651 : switch (TREE_CODE (_p0))
11327 : {
11328 0 : case LROTATE_EXPR:
11329 0 : {
11330 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11331 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11332 0 : switch (TREE_CODE (_q21))
11333 : {
11334 0 : case INTEGER_CST:
11335 0 : {
11336 0 : switch (TREE_CODE (_p1))
11337 : {
11338 0 : case INTEGER_CST:
11339 0 : {
11340 0 : {
11341 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11342 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
11343 0 : if (res) return res;
11344 : }
11345 0 : break;
11346 : }
11347 : default:;
11348 : }
11349 : break;
11350 : }
11351 : default:;
11352 : }
11353 : break;
11354 : }
11355 : default:;
11356 : }
11357 : return NULL_TREE;
11358 : }
11359 :
11360 : tree
11361 2791 : generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11362 : {
11363 2791 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11364 2791 : if (integer_all_onesp (_p0))
11365 : {
11366 0 : {
11367 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11368 0 : tree res = generic_simplify_584 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11369 0 : if (res) return res;
11370 : }
11371 : }
11372 2791 : if (integer_zerop (_p1))
11373 : {
11374 1 : {
11375 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11376 1 : tree res = generic_simplify_446 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11377 1 : if (res) return res;
11378 : }
11379 : }
11380 2790 : if (integer_zerop (_p0))
11381 : {
11382 0 : {
11383 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11384 0 : tree res = generic_simplify_447 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11385 0 : if (res) return res;
11386 : }
11387 : }
11388 2790 : switch (TREE_CODE (_p1))
11389 : {
11390 0 : case VECTOR_CST:
11391 0 : {
11392 0 : {
11393 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11394 0 : tree res = generic_simplify_448 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11395 0 : if (res) return res;
11396 : }
11397 0 : break;
11398 : }
11399 0 : case CONSTRUCTOR:
11400 0 : {
11401 0 : {
11402 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11403 0 : tree res = generic_simplify_449 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11404 0 : if (res) return res;
11405 : }
11406 0 : break;
11407 : }
11408 0 : case MINUS_EXPR:
11409 0 : {
11410 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11411 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11412 0 : switch (TREE_CODE (_q30))
11413 : {
11414 0 : case INTEGER_CST:
11415 0 : {
11416 0 : {
11417 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
11418 0 : tree res = generic_simplify_585 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
11419 0 : if (res) return res;
11420 : }
11421 0 : break;
11422 : }
11423 : default:;
11424 : }
11425 : break;
11426 : }
11427 2790 : default:;
11428 : }
11429 2790 : switch (TREE_CODE (_p0))
11430 : {
11431 0 : case RROTATE_EXPR:
11432 0 : {
11433 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11434 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11435 0 : switch (TREE_CODE (_q21))
11436 : {
11437 0 : case INTEGER_CST:
11438 0 : {
11439 0 : switch (TREE_CODE (_p1))
11440 : {
11441 0 : case INTEGER_CST:
11442 0 : {
11443 0 : {
11444 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11445 0 : tree res = generic_simplify_450 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11446 0 : if (res) return res;
11447 : }
11448 0 : break;
11449 : }
11450 : default:;
11451 : }
11452 : break;
11453 : }
11454 : default:;
11455 : }
11456 : break;
11457 : }
11458 : default:;
11459 : }
11460 : return NULL_TREE;
11461 : }
11462 :
11463 : tree
11464 670047 : generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11465 : {
11466 670047 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11467 670047 : switch (TREE_CODE (_p0))
11468 : {
11469 40 : case REALPART_EXPR:
11470 40 : {
11471 40 : tree _q20 = TREE_OPERAND (_p0, 0);
11472 40 : switch (TREE_CODE (_p1))
11473 : {
11474 30 : case IMAGPART_EXPR:
11475 30 : {
11476 30 : tree _q40 = TREE_OPERAND (_p1, 0);
11477 30 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
11478 : {
11479 30 : {
11480 30 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11481 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1865;
11482 30 : {
11483 30 : tree _r;
11484 30 : _r = captures[0];
11485 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
11486 670047 : return _r;
11487 : }
11488 0 : next_after_fail1865:;
11489 : }
11490 : }
11491 : break;
11492 : }
11493 : default:;
11494 : }
11495 : break;
11496 : }
11497 : default:;
11498 : }
11499 : return NULL_TREE;
11500 : }
11501 :
11502 : tree
11503 793770 : generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11504 : {
11505 793770 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11506 793770 : switch (TREE_CODE (_p0))
11507 : {
11508 0 : case VEC_COND_EXPR:
11509 0 : {
11510 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11511 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11512 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11513 0 : switch (TREE_CODE (_p1))
11514 : {
11515 0 : case VEC_COND_EXPR:
11516 0 : {
11517 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11518 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11519 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11520 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11521 : {
11522 0 : {
11523 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11524 0 : if (VECTOR_TYPE_P (type)
11525 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
11526 0 : || types_match (type, TREE_TYPE (captures[2]))
11527 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11528 : || (optimize_vectors_before_lowering_p ()
11529 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11530 : )
11531 : {
11532 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1866;
11533 0 : {
11534 0 : tree res_op0;
11535 0 : res_op0 = captures[1];
11536 0 : tree res_op1;
11537 0 : {
11538 0 : tree _o1[2], _r1;
11539 0 : _o1[0] = captures[2];
11540 0 : _o1[1] = captures[5];
11541 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11542 0 : if (EXPR_P (_r1))
11543 0 : goto next_after_fail1866;
11544 0 : res_op1 = _r1;
11545 : }
11546 0 : tree res_op2;
11547 0 : {
11548 0 : tree _o1[2], _r1;
11549 0 : _o1[0] = captures[3];
11550 0 : _o1[1] = captures[6];
11551 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11552 0 : if (EXPR_P (_r1))
11553 0 : goto next_after_fail1866;
11554 0 : res_op2 = _r1;
11555 : }
11556 0 : tree _r;
11557 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11558 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
11559 : return _r;
11560 : }
11561 0 : next_after_fail1866:;
11562 : }
11563 : }
11564 : }
11565 : break;
11566 : }
11567 0 : default:;
11568 : }
11569 0 : {
11570 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11571 0 : if (VECTOR_TYPE_P (type)
11572 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
11573 0 : || types_match (type, TREE_TYPE (captures[2]))
11574 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11575 : || (optimize_vectors_before_lowering_p ()
11576 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11577 : )
11578 : {
11579 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1867;
11580 0 : {
11581 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1867;
11582 0 : tree res_op0;
11583 0 : res_op0 = captures[1];
11584 0 : tree res_op1;
11585 0 : {
11586 0 : tree _o1[2], _r1;
11587 0 : _o1[0] = captures[2];
11588 0 : _o1[1] = unshare_expr (captures[4]);
11589 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11590 0 : if (EXPR_P (_r1))
11591 0 : goto next_after_fail1867;
11592 0 : res_op1 = _r1;
11593 : }
11594 0 : tree res_op2;
11595 0 : {
11596 0 : tree _o1[2], _r1;
11597 0 : _o1[0] = captures[3];
11598 0 : _o1[1] = captures[4];
11599 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11600 0 : if (EXPR_P (_r1))
11601 0 : goto next_after_fail1867;
11602 0 : res_op2 = _r1;
11603 : }
11604 0 : tree _r;
11605 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11606 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
11607 : return _r;
11608 : }
11609 793770 : next_after_fail1867:;
11610 : }
11611 : }
11612 : break;
11613 : }
11614 793770 : default:;
11615 : }
11616 793770 : switch (TREE_CODE (_p1))
11617 : {
11618 0 : case VEC_COND_EXPR:
11619 0 : {
11620 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11621 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11622 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11623 0 : {
11624 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11625 0 : if (VECTOR_TYPE_P (type)
11626 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
11627 0 : || types_match (type, TREE_TYPE (captures[3]))
11628 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11629 : || (optimize_vectors_before_lowering_p ()
11630 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11631 : )
11632 : {
11633 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1868;
11634 0 : {
11635 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1868;
11636 0 : tree res_op0;
11637 0 : res_op0 = captures[2];
11638 0 : tree res_op1;
11639 0 : {
11640 0 : tree _o1[2], _r1;
11641 0 : _o1[0] = unshare_expr (captures[0]);
11642 0 : _o1[1] = captures[3];
11643 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11644 0 : if (EXPR_P (_r1))
11645 0 : goto next_after_fail1868;
11646 0 : res_op1 = _r1;
11647 : }
11648 0 : tree res_op2;
11649 0 : {
11650 0 : tree _o1[2], _r1;
11651 0 : _o1[0] = captures[0];
11652 0 : _o1[1] = captures[4];
11653 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
11654 0 : if (EXPR_P (_r1))
11655 0 : goto next_after_fail1868;
11656 0 : res_op2 = _r1;
11657 : }
11658 0 : tree _r;
11659 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11660 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
11661 : return _r;
11662 : }
11663 793770 : next_after_fail1868:;
11664 : }
11665 : }
11666 : break;
11667 : }
11668 793770 : default:;
11669 : }
11670 793770 : switch (TREE_CODE (_p0))
11671 : {
11672 0 : case FLOAT_EXPR:
11673 0 : {
11674 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11675 0 : switch (TREE_CODE (_p1))
11676 : {
11677 0 : case FLOAT_EXPR:
11678 0 : {
11679 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11680 0 : {
11681 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11682 0 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
11683 0 : if (res) return res;
11684 : }
11685 0 : break;
11686 : }
11687 : default:;
11688 : }
11689 : break;
11690 : }
11691 18 : case NEGATE_EXPR:
11692 18 : {
11693 18 : tree _q20 = TREE_OPERAND (_p0, 0);
11694 18 : switch (TREE_CODE (_p1))
11695 : {
11696 18 : case NEGATE_EXPR:
11697 18 : {
11698 18 : tree _q40 = TREE_OPERAND (_p1, 0);
11699 18 : {
11700 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11701 18 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
11702 18 : if (res) return res;
11703 : }
11704 0 : break;
11705 : }
11706 0 : default:;
11707 : }
11708 0 : if (CONSTANT_CLASS_P (_p1))
11709 : {
11710 0 : {
11711 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11712 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
11713 0 : if (res) return res;
11714 : }
11715 : }
11716 : break;
11717 : }
11718 793752 : default:;
11719 : }
11720 793752 : switch (TREE_CODE (_p1))
11721 : {
11722 519 : case REAL_CST:
11723 519 : {
11724 519 : {
11725 519 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11726 519 : tree res = generic_simplify_591 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
11727 519 : if (res) return res;
11728 : }
11729 519 : break;
11730 : }
11731 793752 : default:;
11732 : }
11733 793752 : {
11734 793752 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11735 793752 : if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
11736 : )
11737 : {
11738 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1869;
11739 0 : {
11740 0 : tree _r;
11741 0 : _r = constant_boolean_node (true, type);
11742 0 : if (TREE_SIDE_EFFECTS (captures[0]))
11743 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11744 0 : if (TREE_SIDE_EFFECTS (captures[1]))
11745 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11746 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
11747 : return _r;
11748 : }
11749 0 : next_after_fail1869:;
11750 : }
11751 : else
11752 : {
11753 793752 : if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
11754 : )
11755 : {
11756 35 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1870;
11757 35 : {
11758 35 : tree _r;
11759 35 : _r = constant_boolean_node (false, type);
11760 35 : if (TREE_SIDE_EFFECTS (captures[0]))
11761 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11762 35 : if (TREE_SIDE_EFFECTS (captures[1]))
11763 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11764 35 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
11765 : return _r;
11766 : }
11767 0 : next_after_fail1870:;
11768 : }
11769 : }
11770 : }
11771 : return NULL_TREE;
11772 : }
11773 :
11774 : tree
11775 1774730 : generic_simplify_UNGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11776 : {
11777 1774730 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11778 1774730 : switch (TREE_CODE (_p0))
11779 : {
11780 0 : case VEC_COND_EXPR:
11781 0 : {
11782 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11783 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11784 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11785 0 : switch (TREE_CODE (_p1))
11786 : {
11787 0 : case VEC_COND_EXPR:
11788 0 : {
11789 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11790 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11791 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11792 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11793 : {
11794 0 : {
11795 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11796 0 : if (VECTOR_TYPE_P (type)
11797 0 : && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
11798 0 : || types_match (type, TREE_TYPE (captures[2]))
11799 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11800 : || (optimize_vectors_before_lowering_p ()
11801 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11802 : )
11803 : {
11804 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1882;
11805 0 : {
11806 0 : tree res_op0;
11807 0 : res_op0 = captures[1];
11808 0 : tree res_op1;
11809 0 : {
11810 0 : tree _o1[2], _r1;
11811 0 : _o1[0] = captures[2];
11812 0 : _o1[1] = captures[5];
11813 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11814 0 : if (EXPR_P (_r1))
11815 0 : goto next_after_fail1882;
11816 0 : res_op1 = _r1;
11817 : }
11818 0 : tree res_op2;
11819 0 : {
11820 0 : tree _o1[2], _r1;
11821 0 : _o1[0] = captures[3];
11822 0 : _o1[1] = captures[6];
11823 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11824 0 : if (EXPR_P (_r1))
11825 0 : goto next_after_fail1882;
11826 0 : res_op2 = _r1;
11827 : }
11828 0 : tree _r;
11829 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11830 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
11831 : return _r;
11832 : }
11833 0 : next_after_fail1882:;
11834 : }
11835 : }
11836 : }
11837 : break;
11838 : }
11839 0 : default:;
11840 : }
11841 0 : {
11842 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11843 0 : if (VECTOR_TYPE_P (type)
11844 0 : && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
11845 0 : || types_match (type, TREE_TYPE (captures[2]))
11846 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11847 : || (optimize_vectors_before_lowering_p ()
11848 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11849 : )
11850 : {
11851 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1883;
11852 0 : {
11853 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1883;
11854 0 : tree res_op0;
11855 0 : res_op0 = captures[1];
11856 0 : tree res_op1;
11857 0 : {
11858 0 : tree _o1[2], _r1;
11859 0 : _o1[0] = captures[2];
11860 0 : _o1[1] = unshare_expr (captures[4]);
11861 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11862 0 : if (EXPR_P (_r1))
11863 0 : goto next_after_fail1883;
11864 0 : res_op1 = _r1;
11865 : }
11866 0 : tree res_op2;
11867 0 : {
11868 0 : tree _o1[2], _r1;
11869 0 : _o1[0] = captures[3];
11870 0 : _o1[1] = captures[4];
11871 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11872 0 : if (EXPR_P (_r1))
11873 0 : goto next_after_fail1883;
11874 0 : res_op2 = _r1;
11875 : }
11876 0 : tree _r;
11877 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11878 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
11879 : return _r;
11880 : }
11881 1774730 : next_after_fail1883:;
11882 : }
11883 : }
11884 : break;
11885 : }
11886 1774730 : default:;
11887 : }
11888 1774730 : switch (TREE_CODE (_p1))
11889 : {
11890 0 : case VEC_COND_EXPR:
11891 0 : {
11892 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11893 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11894 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11895 0 : {
11896 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11897 0 : if (VECTOR_TYPE_P (type)
11898 0 : && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
11899 0 : || types_match (type, TREE_TYPE (captures[3]))
11900 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11901 : || (optimize_vectors_before_lowering_p ()
11902 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11903 : )
11904 : {
11905 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1884;
11906 0 : {
11907 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1884;
11908 0 : tree res_op0;
11909 0 : res_op0 = captures[2];
11910 0 : tree res_op1;
11911 0 : {
11912 0 : tree _o1[2], _r1;
11913 0 : _o1[0] = unshare_expr (captures[0]);
11914 0 : _o1[1] = captures[3];
11915 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11916 0 : if (EXPR_P (_r1))
11917 0 : goto next_after_fail1884;
11918 0 : res_op1 = _r1;
11919 : }
11920 0 : tree res_op2;
11921 0 : {
11922 0 : tree _o1[2], _r1;
11923 0 : _o1[0] = captures[0];
11924 0 : _o1[1] = captures[4];
11925 0 : _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
11926 0 : if (EXPR_P (_r1))
11927 0 : goto next_after_fail1884;
11928 0 : res_op2 = _r1;
11929 : }
11930 0 : tree _r;
11931 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11932 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
11933 : return _r;
11934 : }
11935 1774730 : next_after_fail1884:;
11936 : }
11937 : }
11938 : break;
11939 : }
11940 1774730 : default:;
11941 : }
11942 1774730 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11943 : {
11944 0 : {
11945 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11946 0 : tree res = generic_simplify_592 (loc, type, _p0, _p1, captures, UNGT_EXPR);
11947 0 : if (res) return res;
11948 : }
11949 : }
11950 1774730 : switch (TREE_CODE (_p0))
11951 : {
11952 339 : case FLOAT_EXPR:
11953 339 : {
11954 339 : tree _q20 = TREE_OPERAND (_p0, 0);
11955 339 : switch (TREE_CODE (_p1))
11956 : {
11957 0 : case FLOAT_EXPR:
11958 0 : {
11959 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11960 0 : {
11961 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11962 0 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, UNGT_EXPR, GT_EXPR);
11963 0 : if (res) return res;
11964 : }
11965 0 : break;
11966 : }
11967 : default:;
11968 : }
11969 : break;
11970 : }
11971 0 : case NEGATE_EXPR:
11972 0 : {
11973 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11974 0 : switch (TREE_CODE (_p1))
11975 : {
11976 0 : case NEGATE_EXPR:
11977 0 : {
11978 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11979 0 : {
11980 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11981 0 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
11982 0 : if (res) return res;
11983 : }
11984 0 : break;
11985 : }
11986 0 : default:;
11987 : }
11988 0 : if (CONSTANT_CLASS_P (_p1))
11989 : {
11990 0 : {
11991 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11992 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
11993 0 : if (res) return res;
11994 : }
11995 : }
11996 : break;
11997 : }
11998 1774730 : default:;
11999 : }
12000 1774730 : switch (TREE_CODE (_p1))
12001 : {
12002 1397063 : case REAL_CST:
12003 1397063 : {
12004 1397063 : {
12005 1397063 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12006 1397063 : tree res = generic_simplify_591 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12007 1397063 : if (res) return res;
12008 : }
12009 1397061 : break;
12010 : }
12011 : default:;
12012 : }
12013 : return NULL_TREE;
12014 : }
12015 :
12016 : tree
12017 13157089 : generic_simplify_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
12018 : {
12019 13157089 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
12020 13157089 : switch (TREE_CODE (_p0))
12021 : {
12022 1833470 : case LT_EXPR:
12023 1833470 : {
12024 1833470 : tree _q20 = TREE_OPERAND (_p0, 0);
12025 1833470 : tree _q21 = TREE_OPERAND (_p0, 1);
12026 1833470 : switch (TREE_CODE (_q20))
12027 : {
12028 11378 : case MINUS_EXPR:
12029 11378 : {
12030 11378 : tree _q30 = TREE_OPERAND (_q20, 0);
12031 11378 : tree _q31 = TREE_OPERAND (_q20, 1);
12032 11378 : switch (TREE_CODE (_q30))
12033 : {
12034 600 : case SSA_NAME:
12035 600 : {
12036 600 : switch (TREE_CODE (_q31))
12037 : {
12038 0 : case CALL_EXPR:
12039 0 : switch (get_call_combined_fn (_q31))
12040 : {
12041 0 : case CFN_BUILT_IN_FLOORF:
12042 0 : if (call_expr_nargs (_q31) == 1)
12043 : {
12044 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12045 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12046 : {
12047 0 : switch (TREE_CODE (_q50))
12048 : {
12049 0 : case SSA_NAME:
12050 0 : {
12051 0 : switch (TREE_CODE (_q21))
12052 : {
12053 0 : case MINUS_EXPR:
12054 0 : {
12055 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12056 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12057 0 : switch (TREE_CODE (_q80))
12058 : {
12059 0 : case CALL_EXPR:
12060 0 : switch (get_call_combined_fn (_q80))
12061 : {
12062 0 : case CFN_BUILT_IN_CEILF:
12063 0 : if (call_expr_nargs (_q80) == 1)
12064 : {
12065 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12066 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12067 : {
12068 0 : switch (TREE_CODE (_q90))
12069 : {
12070 0 : case SSA_NAME:
12071 0 : {
12072 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12073 : {
12074 0 : switch (TREE_CODE (_q81))
12075 : {
12076 0 : case SSA_NAME:
12077 0 : {
12078 0 : switch (TREE_CODE (_p1))
12079 : {
12080 0 : case CALL_EXPR:
12081 0 : switch (get_call_combined_fn (_p1))
12082 : {
12083 0 : case CFN_BUILT_IN_FLOORF:
12084 0 : if (call_expr_nargs (_p1) == 1)
12085 : {
12086 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12087 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12088 : {
12089 0 : switch (TREE_CODE (_q140))
12090 : {
12091 0 : case SSA_NAME:
12092 0 : {
12093 0 : switch (TREE_CODE (_p2))
12094 : {
12095 0 : case CALL_EXPR:
12096 0 : switch (get_call_combined_fn (_p2))
12097 : {
12098 0 : case CFN_BUILT_IN_CEILF:
12099 0 : if (call_expr_nargs (_p2) == 1)
12100 : {
12101 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12102 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12103 : {
12104 0 : switch (TREE_CODE (_q170))
12105 : {
12106 0 : case SSA_NAME:
12107 0 : {
12108 0 : {
12109 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12110 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
12111 0 : if (res) return res;
12112 : }
12113 0 : break;
12114 : }
12115 : default:;
12116 : }
12117 : }
12118 : }
12119 : break;
12120 : default:;
12121 : }
12122 : break;
12123 : default:;
12124 : }
12125 : break;
12126 : }
12127 : default:;
12128 : }
12129 : }
12130 : }
12131 : break;
12132 : default:;
12133 : }
12134 : break;
12135 : default:;
12136 : }
12137 : break;
12138 : }
12139 : default:;
12140 : }
12141 : }
12142 : break;
12143 : }
12144 : default:;
12145 : }
12146 : }
12147 : }
12148 : break;
12149 : default:;
12150 : }
12151 : break;
12152 : default:;
12153 : }
12154 : break;
12155 : }
12156 : default:;
12157 : }
12158 : break;
12159 : }
12160 : default:;
12161 : }
12162 : }
12163 : }
12164 : break;
12165 0 : case CFN_BUILT_IN_FLOORL:
12166 0 : if (call_expr_nargs (_q31) == 1)
12167 : {
12168 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12169 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12170 : {
12171 0 : switch (TREE_CODE (_q50))
12172 : {
12173 0 : case SSA_NAME:
12174 0 : {
12175 0 : switch (TREE_CODE (_q21))
12176 : {
12177 0 : case MINUS_EXPR:
12178 0 : {
12179 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12180 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12181 0 : switch (TREE_CODE (_q80))
12182 : {
12183 0 : case CALL_EXPR:
12184 0 : switch (get_call_combined_fn (_q80))
12185 : {
12186 0 : case CFN_BUILT_IN_CEILL:
12187 0 : if (call_expr_nargs (_q80) == 1)
12188 : {
12189 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12190 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12191 : {
12192 0 : switch (TREE_CODE (_q90))
12193 : {
12194 0 : case SSA_NAME:
12195 0 : {
12196 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12197 : {
12198 0 : switch (TREE_CODE (_q81))
12199 : {
12200 0 : case SSA_NAME:
12201 0 : {
12202 0 : switch (TREE_CODE (_p1))
12203 : {
12204 0 : case CALL_EXPR:
12205 0 : switch (get_call_combined_fn (_p1))
12206 : {
12207 0 : case CFN_BUILT_IN_FLOORL:
12208 0 : if (call_expr_nargs (_p1) == 1)
12209 : {
12210 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12211 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12212 : {
12213 0 : switch (TREE_CODE (_q140))
12214 : {
12215 0 : case SSA_NAME:
12216 0 : {
12217 0 : switch (TREE_CODE (_p2))
12218 : {
12219 0 : case CALL_EXPR:
12220 0 : switch (get_call_combined_fn (_p2))
12221 : {
12222 0 : case CFN_BUILT_IN_CEILL:
12223 0 : if (call_expr_nargs (_p2) == 1)
12224 : {
12225 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12226 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12227 : {
12228 0 : switch (TREE_CODE (_q170))
12229 : {
12230 0 : case SSA_NAME:
12231 0 : {
12232 0 : {
12233 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12234 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
12235 0 : if (res) return res;
12236 : }
12237 0 : break;
12238 : }
12239 : default:;
12240 : }
12241 : }
12242 : }
12243 : break;
12244 : default:;
12245 : }
12246 : break;
12247 : default:;
12248 : }
12249 : break;
12250 : }
12251 : default:;
12252 : }
12253 : }
12254 : }
12255 : break;
12256 : default:;
12257 : }
12258 : break;
12259 : default:;
12260 : }
12261 : break;
12262 : }
12263 : default:;
12264 : }
12265 : }
12266 : break;
12267 : }
12268 : default:;
12269 : }
12270 : }
12271 : }
12272 : break;
12273 : default:;
12274 : }
12275 : break;
12276 : default:;
12277 : }
12278 : break;
12279 : }
12280 : default:;
12281 : }
12282 : break;
12283 : }
12284 : default:;
12285 : }
12286 : }
12287 : }
12288 : break;
12289 0 : case CFN_FLOOR:
12290 0 : if (call_expr_nargs (_q31) == 1)
12291 : {
12292 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12293 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12294 : {
12295 0 : switch (TREE_CODE (_q50))
12296 : {
12297 0 : case SSA_NAME:
12298 0 : {
12299 0 : switch (TREE_CODE (_q21))
12300 : {
12301 0 : case MINUS_EXPR:
12302 0 : {
12303 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12304 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12305 0 : switch (TREE_CODE (_q80))
12306 : {
12307 0 : case CALL_EXPR:
12308 0 : switch (get_call_combined_fn (_q80))
12309 : {
12310 0 : case CFN_CEIL:
12311 0 : if (call_expr_nargs (_q80) == 1)
12312 : {
12313 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12314 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12315 : {
12316 0 : switch (TREE_CODE (_q90))
12317 : {
12318 0 : case SSA_NAME:
12319 0 : {
12320 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12321 : {
12322 0 : switch (TREE_CODE (_q81))
12323 : {
12324 0 : case SSA_NAME:
12325 0 : {
12326 0 : switch (TREE_CODE (_p1))
12327 : {
12328 0 : case CALL_EXPR:
12329 0 : switch (get_call_combined_fn (_p1))
12330 : {
12331 0 : case CFN_FLOOR:
12332 0 : if (call_expr_nargs (_p1) == 1)
12333 : {
12334 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12335 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12336 : {
12337 0 : switch (TREE_CODE (_q140))
12338 : {
12339 0 : case SSA_NAME:
12340 0 : {
12341 0 : switch (TREE_CODE (_p2))
12342 : {
12343 0 : case CALL_EXPR:
12344 0 : switch (get_call_combined_fn (_p2))
12345 : {
12346 0 : case CFN_CEIL:
12347 0 : if (call_expr_nargs (_p2) == 1)
12348 : {
12349 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12350 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12351 : {
12352 0 : switch (TREE_CODE (_q170))
12353 : {
12354 0 : case SSA_NAME:
12355 0 : {
12356 0 : {
12357 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12358 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
12359 0 : if (res) return res;
12360 : }
12361 0 : break;
12362 : }
12363 : default:;
12364 : }
12365 : }
12366 : }
12367 : break;
12368 : default:;
12369 : }
12370 : break;
12371 : default:;
12372 : }
12373 : break;
12374 : }
12375 : default:;
12376 : }
12377 : }
12378 : }
12379 : break;
12380 : default:;
12381 : }
12382 : break;
12383 : default:;
12384 : }
12385 : break;
12386 : }
12387 : default:;
12388 : }
12389 : }
12390 : break;
12391 : }
12392 : default:;
12393 : }
12394 : }
12395 : }
12396 : break;
12397 : default:;
12398 : }
12399 : break;
12400 : default:;
12401 : }
12402 : break;
12403 : }
12404 : default:;
12405 : }
12406 : break;
12407 : }
12408 : default:;
12409 : }
12410 : }
12411 : }
12412 : break;
12413 0 : case CFN_BUILT_IN_FLOOR:
12414 0 : if (call_expr_nargs (_q31) == 1)
12415 : {
12416 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12417 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12418 : {
12419 0 : switch (TREE_CODE (_q50))
12420 : {
12421 0 : case SSA_NAME:
12422 0 : {
12423 0 : switch (TREE_CODE (_q21))
12424 : {
12425 0 : case MINUS_EXPR:
12426 0 : {
12427 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12428 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12429 0 : switch (TREE_CODE (_q80))
12430 : {
12431 0 : case CALL_EXPR:
12432 0 : switch (get_call_combined_fn (_q80))
12433 : {
12434 0 : case CFN_BUILT_IN_CEIL:
12435 0 : if (call_expr_nargs (_q80) == 1)
12436 : {
12437 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12438 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12439 : {
12440 0 : switch (TREE_CODE (_q90))
12441 : {
12442 0 : case SSA_NAME:
12443 0 : {
12444 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12445 : {
12446 0 : switch (TREE_CODE (_q81))
12447 : {
12448 0 : case SSA_NAME:
12449 0 : {
12450 0 : switch (TREE_CODE (_p1))
12451 : {
12452 0 : case CALL_EXPR:
12453 0 : switch (get_call_combined_fn (_p1))
12454 : {
12455 0 : case CFN_BUILT_IN_FLOOR:
12456 0 : if (call_expr_nargs (_p1) == 1)
12457 : {
12458 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12459 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12460 : {
12461 0 : switch (TREE_CODE (_q140))
12462 : {
12463 0 : case SSA_NAME:
12464 0 : {
12465 0 : switch (TREE_CODE (_p2))
12466 : {
12467 0 : case CALL_EXPR:
12468 0 : switch (get_call_combined_fn (_p2))
12469 : {
12470 0 : case CFN_BUILT_IN_CEIL:
12471 0 : if (call_expr_nargs (_p2) == 1)
12472 : {
12473 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12474 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12475 : {
12476 0 : switch (TREE_CODE (_q170))
12477 : {
12478 0 : case SSA_NAME:
12479 0 : {
12480 0 : {
12481 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12482 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
12483 0 : if (res) return res;
12484 : }
12485 0 : break;
12486 : }
12487 : default:;
12488 : }
12489 : }
12490 : }
12491 : break;
12492 : default:;
12493 : }
12494 : break;
12495 : default:;
12496 : }
12497 : break;
12498 : }
12499 : default:;
12500 : }
12501 : }
12502 : }
12503 : break;
12504 : default:;
12505 : }
12506 : break;
12507 : default:;
12508 : }
12509 : break;
12510 : }
12511 : default:;
12512 : }
12513 : }
12514 : break;
12515 : }
12516 : default:;
12517 : }
12518 : }
12519 : }
12520 : break;
12521 : default:;
12522 : }
12523 : break;
12524 : default:;
12525 : }
12526 : break;
12527 : }
12528 : default:;
12529 : }
12530 : break;
12531 : }
12532 : default:;
12533 : }
12534 : }
12535 : }
12536 : break;
12537 : default:;
12538 : }
12539 : break;
12540 : default:;
12541 : }
12542 : break;
12543 : }
12544 : default:;
12545 : }
12546 : break;
12547 : }
12548 102771 : CASE_CONVERT:
12549 102771 : {
12550 102771 : tree _q30 = TREE_OPERAND (_q20, 0);
12551 102771 : switch (TREE_CODE (_q21))
12552 : {
12553 21540 : case INTEGER_CST:
12554 21540 : {
12555 21540 : switch (TREE_CODE (_p1))
12556 : {
12557 31 : CASE_CONVERT:
12558 31 : {
12559 31 : tree _q60 = TREE_OPERAND (_p1, 0);
12560 31 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12561 : {
12562 16 : switch (TREE_CODE (_p2))
12563 : {
12564 16 : case INTEGER_CST:
12565 16 : {
12566 16 : {
12567 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12568 16 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
12569 16 : if (res) return res;
12570 : }
12571 16 : break;
12572 : }
12573 : default:;
12574 : }
12575 : }
12576 : break;
12577 : }
12578 21540 : default:;
12579 : }
12580 21540 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12581 : {
12582 6 : switch (TREE_CODE (_p2))
12583 : {
12584 6 : case INTEGER_CST:
12585 6 : {
12586 6 : {
12587 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12588 6 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
12589 6 : if (res) return res;
12590 : }
12591 6 : break;
12592 : }
12593 : default:;
12594 : }
12595 : }
12596 21540 : switch (TREE_CODE (_p1))
12597 : {
12598 25 : case PLUS_EXPR:
12599 25 : {
12600 25 : tree _q60 = TREE_OPERAND (_p1, 0);
12601 25 : tree _q61 = TREE_OPERAND (_p1, 1);
12602 25 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12603 : {
12604 7 : switch (TREE_CODE (_q61))
12605 : {
12606 7 : case INTEGER_CST:
12607 7 : {
12608 7 : switch (TREE_CODE (_p2))
12609 : {
12610 7 : case INTEGER_CST:
12611 7 : {
12612 7 : {
12613 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12614 7 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
12615 7 : if (res) return res;
12616 : }
12617 0 : break;
12618 : }
12619 : default:;
12620 : }
12621 : break;
12622 : }
12623 : default:;
12624 : }
12625 : }
12626 : break;
12627 : }
12628 0 : case MINUS_EXPR:
12629 0 : {
12630 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12631 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12632 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12633 : {
12634 0 : switch (TREE_CODE (_q61))
12635 : {
12636 0 : case INTEGER_CST:
12637 0 : {
12638 0 : switch (TREE_CODE (_p2))
12639 : {
12640 0 : case INTEGER_CST:
12641 0 : {
12642 0 : {
12643 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12644 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
12645 0 : if (res) return res;
12646 : }
12647 0 : break;
12648 : }
12649 : default:;
12650 : }
12651 : break;
12652 : }
12653 : default:;
12654 : }
12655 : }
12656 : break;
12657 : }
12658 : default:;
12659 : }
12660 : break;
12661 : }
12662 : default:;
12663 : }
12664 : break;
12665 : }
12666 1833463 : default:;
12667 : }
12668 1833463 : switch (TREE_CODE (_q21))
12669 : {
12670 378016 : case INTEGER_CST:
12671 378016 : {
12672 378016 : switch (TREE_CODE (_p1))
12673 : {
12674 1131 : CASE_CONVERT:
12675 1131 : {
12676 1131 : tree _q50 = TREE_OPERAND (_p1, 0);
12677 1131 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12678 : {
12679 36 : switch (TREE_CODE (_p2))
12680 : {
12681 5 : case INTEGER_CST:
12682 5 : {
12683 5 : {
12684 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12685 5 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
12686 5 : if (res) return res;
12687 : }
12688 5 : break;
12689 : }
12690 : default:;
12691 : }
12692 : }
12693 : break;
12694 : }
12695 378016 : default:;
12696 : }
12697 378016 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12698 : {
12699 81 : switch (TREE_CODE (_p2))
12700 : {
12701 8 : case INTEGER_CST:
12702 8 : {
12703 8 : {
12704 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12705 8 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
12706 8 : if (res) return res;
12707 : }
12708 0 : break;
12709 : }
12710 : default:;
12711 : }
12712 : }
12713 378008 : switch (TREE_CODE (_p1))
12714 : {
12715 9450 : case PLUS_EXPR:
12716 9450 : {
12717 9450 : tree _q50 = TREE_OPERAND (_p1, 0);
12718 9450 : tree _q51 = TREE_OPERAND (_p1, 1);
12719 9450 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12720 : {
12721 9415 : switch (TREE_CODE (_q51))
12722 : {
12723 9415 : case INTEGER_CST:
12724 9415 : {
12725 9415 : switch (TREE_CODE (_p2))
12726 : {
12727 24 : case INTEGER_CST:
12728 24 : {
12729 24 : {
12730 24 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12731 24 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
12732 24 : if (res) return res;
12733 : }
12734 24 : break;
12735 : }
12736 : default:;
12737 : }
12738 : break;
12739 : }
12740 : default:;
12741 : }
12742 : }
12743 : break;
12744 : }
12745 62 : case MINUS_EXPR:
12746 62 : {
12747 62 : tree _q50 = TREE_OPERAND (_p1, 0);
12748 62 : tree _q51 = TREE_OPERAND (_p1, 1);
12749 62 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12750 : {
12751 0 : switch (TREE_CODE (_q51))
12752 : {
12753 0 : case INTEGER_CST:
12754 0 : {
12755 0 : switch (TREE_CODE (_p2))
12756 : {
12757 0 : case INTEGER_CST:
12758 0 : {
12759 0 : {
12760 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12761 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
12762 0 : if (res) return res;
12763 : }
12764 0 : break;
12765 : }
12766 : default:;
12767 : }
12768 : break;
12769 : }
12770 : default:;
12771 : }
12772 : }
12773 : break;
12774 : }
12775 : default:;
12776 : }
12777 : break;
12778 : }
12779 1833455 : default:;
12780 : }
12781 1833455 : switch (TREE_CODE (_p1))
12782 : {
12783 0 : case MIN_EXPR:
12784 0 : {
12785 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12786 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12787 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12788 : {
12789 0 : switch (TREE_CODE (_p2))
12790 : {
12791 0 : case MIN_EXPR:
12792 0 : {
12793 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12794 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12795 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12796 : {
12797 0 : {
12798 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12799 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12800 0 : if (res) return res;
12801 : }
12802 : }
12803 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12804 : {
12805 0 : {
12806 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12807 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12808 0 : if (res) return res;
12809 : }
12810 : }
12811 : break;
12812 : }
12813 : default:;
12814 : }
12815 : }
12816 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12817 : {
12818 0 : switch (TREE_CODE (_p2))
12819 : {
12820 0 : case MIN_EXPR:
12821 0 : {
12822 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12823 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12824 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12825 : {
12826 0 : {
12827 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12828 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12829 0 : if (res) return res;
12830 : }
12831 : }
12832 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12833 : {
12834 0 : {
12835 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12836 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
12837 0 : if (res) return res;
12838 : }
12839 : }
12840 : break;
12841 : }
12842 : default:;
12843 : }
12844 : }
12845 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12846 : {
12847 0 : switch (TREE_CODE (_p2))
12848 : {
12849 0 : case MIN_EXPR:
12850 0 : {
12851 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12852 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12853 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12854 : {
12855 0 : {
12856 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12857 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12858 0 : if (res) return res;
12859 : }
12860 : }
12861 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12862 : {
12863 0 : {
12864 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12865 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12866 0 : if (res) return res;
12867 : }
12868 : }
12869 : break;
12870 : }
12871 0 : default:;
12872 : }
12873 0 : {
12874 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
12875 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12876 0 : if (res) return res;
12877 : }
12878 : }
12879 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12880 : {
12881 0 : switch (TREE_CODE (_p2))
12882 : {
12883 0 : case MIN_EXPR:
12884 0 : {
12885 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12886 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12887 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12888 : {
12889 0 : {
12890 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12891 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12892 0 : if (res) return res;
12893 : }
12894 : }
12895 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12896 : {
12897 0 : {
12898 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12899 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12900 0 : if (res) return res;
12901 : }
12902 : }
12903 : break;
12904 : }
12905 0 : default:;
12906 : }
12907 0 : {
12908 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
12909 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
12910 0 : if (res) return res;
12911 : }
12912 : }
12913 : break;
12914 : }
12915 21 : case MAX_EXPR:
12916 21 : {
12917 21 : tree _q50 = TREE_OPERAND (_p1, 0);
12918 21 : tree _q51 = TREE_OPERAND (_p1, 1);
12919 21 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12920 : {
12921 1 : switch (TREE_CODE (_p2))
12922 : {
12923 0 : case MAX_EXPR:
12924 0 : {
12925 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12926 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12927 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12928 : {
12929 0 : {
12930 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12931 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12932 0 : if (res) return res;
12933 : }
12934 : }
12935 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12936 : {
12937 0 : {
12938 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12939 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12940 0 : if (res) return res;
12941 : }
12942 : }
12943 : break;
12944 : }
12945 1 : default:;
12946 : }
12947 1 : {
12948 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
12949 1 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12950 1 : if (res) return res;
12951 : }
12952 : }
12953 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12954 : {
12955 4 : switch (TREE_CODE (_p2))
12956 : {
12957 0 : case MAX_EXPR:
12958 0 : {
12959 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12960 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12961 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12962 : {
12963 0 : {
12964 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12965 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12966 0 : if (res) return res;
12967 : }
12968 : }
12969 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12970 : {
12971 0 : {
12972 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12973 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
12974 0 : if (res) return res;
12975 : }
12976 : }
12977 : break;
12978 : }
12979 : default:;
12980 : }
12981 : }
12982 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12983 : {
12984 8 : switch (TREE_CODE (_p2))
12985 : {
12986 0 : case MAX_EXPR:
12987 0 : {
12988 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12989 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12990 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12991 : {
12992 0 : {
12993 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12994 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
12995 0 : if (res) return res;
12996 : }
12997 : }
12998 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12999 : {
13000 0 : {
13001 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13002 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13003 0 : if (res) return res;
13004 : }
13005 : }
13006 : break;
13007 : }
13008 : default:;
13009 : }
13010 : }
13011 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13012 : {
13013 1 : switch (TREE_CODE (_p2))
13014 : {
13015 1 : case MAX_EXPR:
13016 1 : {
13017 1 : tree _q80 = TREE_OPERAND (_p2, 0);
13018 1 : tree _q81 = TREE_OPERAND (_p2, 1);
13019 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13020 : {
13021 0 : {
13022 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13023 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13024 0 : if (res) return res;
13025 : }
13026 : }
13027 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13028 : {
13029 1 : {
13030 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13031 1 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
13032 1 : if (res) return res;
13033 : }
13034 : }
13035 : break;
13036 : }
13037 : default:;
13038 : }
13039 : }
13040 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13041 : {
13042 4 : {
13043 4 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
13044 4 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
13045 4 : if (res) return res;
13046 : }
13047 : }
13048 : break;
13049 : }
13050 1833453 : default:;
13051 : }
13052 1833453 : {
13053 1833453 : tree _q20_pops[1];
13054 1833453 : if (tree_nop_convert (_q20, _q20_pops))
13055 : {
13056 55330 : tree _q30 = _q20_pops[0];
13057 55330 : if (integer_zerop (_q21))
13058 : {
13059 11829 : switch (TREE_CODE (_p1))
13060 : {
13061 0 : case MIN_EXPR:
13062 0 : {
13063 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13064 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13065 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13066 : {
13067 0 : switch (TREE_CODE (_q61))
13068 : {
13069 0 : case INTEGER_CST:
13070 0 : {
13071 0 : switch (TREE_CODE (_p2))
13072 : {
13073 0 : case INTEGER_CST:
13074 0 : {
13075 0 : {
13076 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
13077 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13078 0 : if (res) return res;
13079 : }
13080 0 : break;
13081 : }
13082 : default:;
13083 : }
13084 : break;
13085 : }
13086 : default:;
13087 : }
13088 : }
13089 : break;
13090 : }
13091 : default:;
13092 : }
13093 : }
13094 : }
13095 : }
13096 1833453 : if (integer_zerop (_q21))
13097 : {
13098 331095 : if (tree_expr_nonnegative_p (_p1))
13099 : {
13100 297943 : switch (TREE_CODE (_p2))
13101 : {
13102 17 : case MIN_EXPR:
13103 17 : {
13104 17 : tree _q60 = TREE_OPERAND (_p2, 0);
13105 17 : tree _q61 = TREE_OPERAND (_p2, 1);
13106 17 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13107 : {
13108 16 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
13109 : {
13110 9 : {
13111 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13112 9 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures);
13113 9 : if (res) return res;
13114 : }
13115 : }
13116 : }
13117 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13118 : {
13119 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
13120 : {
13121 0 : {
13122 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13123 0 : tree res = generic_simplify_368 (loc, type, _p0, _p1, _p2, captures);
13124 0 : if (res) return res;
13125 : }
13126 : }
13127 : }
13128 : break;
13129 : }
13130 : default:;
13131 : }
13132 : }
13133 : }
13134 1833444 : if (tree_expr_nonnegative_p (_q20))
13135 : {
13136 534190 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
13137 : {
13138 167 : switch (TREE_CODE (_p2))
13139 : {
13140 5 : case ABS_EXPR:
13141 5 : {
13142 5 : tree _q60 = TREE_OPERAND (_p2, 0);
13143 5 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13144 : {
13145 0 : {
13146 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
13147 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13148 0 : if (res) return res;
13149 : }
13150 : }
13151 : break;
13152 : }
13153 : default:;
13154 : }
13155 : }
13156 534190 : switch (TREE_CODE (_p1))
13157 : {
13158 0 : case ABS_EXPR:
13159 0 : {
13160 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13161 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13162 : {
13163 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
13164 : {
13165 0 : {
13166 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
13167 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13168 0 : if (res) return res;
13169 : }
13170 : }
13171 : }
13172 : break;
13173 : }
13174 : default:;
13175 : }
13176 : }
13177 : break;
13178 : }
13179 574679 : case GE_EXPR:
13180 574679 : {
13181 574679 : tree _q20 = TREE_OPERAND (_p0, 0);
13182 574679 : tree _q21 = TREE_OPERAND (_p0, 1);
13183 574679 : switch (TREE_CODE (_q20))
13184 : {
13185 38302 : case MINUS_EXPR:
13186 38302 : {
13187 38302 : tree _q30 = TREE_OPERAND (_q20, 0);
13188 38302 : tree _q31 = TREE_OPERAND (_q20, 1);
13189 38302 : switch (TREE_CODE (_q30))
13190 : {
13191 532 : case SSA_NAME:
13192 532 : {
13193 532 : switch (TREE_CODE (_q31))
13194 : {
13195 0 : case CALL_EXPR:
13196 0 : switch (get_call_combined_fn (_q31))
13197 : {
13198 0 : case CFN_BUILT_IN_FLOORF:
13199 0 : if (call_expr_nargs (_q31) == 1)
13200 : {
13201 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
13202 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
13203 : {
13204 0 : switch (TREE_CODE (_q50))
13205 : {
13206 0 : case SSA_NAME:
13207 0 : {
13208 0 : switch (TREE_CODE (_q21))
13209 : {
13210 0 : case MINUS_EXPR:
13211 0 : {
13212 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13213 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13214 0 : switch (TREE_CODE (_q80))
13215 : {
13216 0 : case CALL_EXPR:
13217 0 : switch (get_call_combined_fn (_q80))
13218 : {
13219 0 : case CFN_BUILT_IN_CEILF:
13220 0 : if (call_expr_nargs (_q80) == 1)
13221 : {
13222 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
13223 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
13224 : {
13225 0 : switch (TREE_CODE (_q90))
13226 : {
13227 0 : case SSA_NAME:
13228 0 : {
13229 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13230 : {
13231 0 : switch (TREE_CODE (_q81))
13232 : {
13233 0 : case SSA_NAME:
13234 0 : {
13235 0 : switch (TREE_CODE (_p1))
13236 : {
13237 0 : case CALL_EXPR:
13238 0 : switch (get_call_combined_fn (_p1))
13239 : {
13240 0 : case CFN_BUILT_IN_CEILF:
13241 0 : if (call_expr_nargs (_p1) == 1)
13242 : {
13243 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13244 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
13245 : {
13246 0 : switch (TREE_CODE (_q140))
13247 : {
13248 0 : case SSA_NAME:
13249 0 : {
13250 0 : switch (TREE_CODE (_p2))
13251 : {
13252 0 : case CALL_EXPR:
13253 0 : switch (get_call_combined_fn (_p2))
13254 : {
13255 0 : case CFN_BUILT_IN_FLOORF:
13256 0 : if (call_expr_nargs (_p2) == 1)
13257 : {
13258 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13259 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
13260 : {
13261 0 : switch (TREE_CODE (_q170))
13262 : {
13263 0 : case SSA_NAME:
13264 0 : {
13265 0 : {
13266 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
13267 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
13268 0 : if (res) return res;
13269 : }
13270 0 : break;
13271 : }
13272 : default:;
13273 : }
13274 : }
13275 : }
13276 : break;
13277 : default:;
13278 : }
13279 : break;
13280 : default:;
13281 : }
13282 : break;
13283 : }
13284 : default:;
13285 : }
13286 : }
13287 : }
13288 : break;
13289 : default:;
13290 : }
13291 : break;
13292 : default:;
13293 : }
13294 : break;
13295 : }
13296 : default:;
13297 : }
13298 : }
13299 : break;
13300 : }
13301 : default:;
13302 : }
13303 : }
13304 : }
13305 : break;
13306 : default:;
13307 : }
13308 : break;
13309 : default:;
13310 : }
13311 : break;
13312 : }
13313 : default:;
13314 : }
13315 : break;
13316 : }
13317 : default:;
13318 : }
13319 : }
13320 : }
13321 : break;
13322 0 : case CFN_BUILT_IN_FLOORL:
13323 0 : if (call_expr_nargs (_q31) == 1)
13324 : {
13325 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
13326 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
13327 : {
13328 0 : switch (TREE_CODE (_q50))
13329 : {
13330 0 : case SSA_NAME:
13331 0 : {
13332 0 : switch (TREE_CODE (_q21))
13333 : {
13334 0 : case MINUS_EXPR:
13335 0 : {
13336 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13337 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13338 0 : switch (TREE_CODE (_q80))
13339 : {
13340 0 : case CALL_EXPR:
13341 0 : switch (get_call_combined_fn (_q80))
13342 : {
13343 0 : case CFN_BUILT_IN_CEILL:
13344 0 : if (call_expr_nargs (_q80) == 1)
13345 : {
13346 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
13347 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
13348 : {
13349 0 : switch (TREE_CODE (_q90))
13350 : {
13351 0 : case SSA_NAME:
13352 0 : {
13353 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13354 : {
13355 0 : switch (TREE_CODE (_q81))
13356 : {
13357 0 : case SSA_NAME:
13358 0 : {
13359 0 : switch (TREE_CODE (_p1))
13360 : {
13361 0 : case CALL_EXPR:
13362 0 : switch (get_call_combined_fn (_p1))
13363 : {
13364 0 : case CFN_BUILT_IN_CEILL:
13365 0 : if (call_expr_nargs (_p1) == 1)
13366 : {
13367 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13368 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
13369 : {
13370 0 : switch (TREE_CODE (_q140))
13371 : {
13372 0 : case SSA_NAME:
13373 0 : {
13374 0 : switch (TREE_CODE (_p2))
13375 : {
13376 0 : case CALL_EXPR:
13377 0 : switch (get_call_combined_fn (_p2))
13378 : {
13379 0 : case CFN_BUILT_IN_FLOORL:
13380 0 : if (call_expr_nargs (_p2) == 1)
13381 : {
13382 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13383 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
13384 : {
13385 0 : switch (TREE_CODE (_q170))
13386 : {
13387 0 : case SSA_NAME:
13388 0 : {
13389 0 : {
13390 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
13391 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
13392 0 : if (res) return res;
13393 : }
13394 0 : break;
13395 : }
13396 : default:;
13397 : }
13398 : }
13399 : }
13400 : break;
13401 : default:;
13402 : }
13403 : break;
13404 : default:;
13405 : }
13406 : break;
13407 : }
13408 : default:;
13409 : }
13410 : }
13411 : }
13412 : break;
13413 : default:;
13414 : }
13415 : break;
13416 : default:;
13417 : }
13418 : break;
13419 : }
13420 : default:;
13421 : }
13422 : }
13423 : break;
13424 : }
13425 : default:;
13426 : }
13427 : }
13428 : }
13429 : break;
13430 : default:;
13431 : }
13432 : break;
13433 : default:;
13434 : }
13435 : break;
13436 : }
13437 : default:;
13438 : }
13439 : break;
13440 : }
13441 : default:;
13442 : }
13443 : }
13444 : }
13445 : break;
13446 0 : case CFN_FLOOR:
13447 0 : if (call_expr_nargs (_q31) == 1)
13448 : {
13449 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
13450 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
13451 : {
13452 0 : switch (TREE_CODE (_q50))
13453 : {
13454 0 : case SSA_NAME:
13455 0 : {
13456 0 : switch (TREE_CODE (_q21))
13457 : {
13458 0 : case MINUS_EXPR:
13459 0 : {
13460 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13461 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13462 0 : switch (TREE_CODE (_q80))
13463 : {
13464 0 : case CALL_EXPR:
13465 0 : switch (get_call_combined_fn (_q80))
13466 : {
13467 0 : case CFN_CEIL:
13468 0 : if (call_expr_nargs (_q80) == 1)
13469 : {
13470 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
13471 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
13472 : {
13473 0 : switch (TREE_CODE (_q90))
13474 : {
13475 0 : case SSA_NAME:
13476 0 : {
13477 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13478 : {
13479 0 : switch (TREE_CODE (_q81))
13480 : {
13481 0 : case SSA_NAME:
13482 0 : {
13483 0 : switch (TREE_CODE (_p1))
13484 : {
13485 0 : case CALL_EXPR:
13486 0 : switch (get_call_combined_fn (_p1))
13487 : {
13488 0 : case CFN_CEIL:
13489 0 : if (call_expr_nargs (_p1) == 1)
13490 : {
13491 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13492 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
13493 : {
13494 0 : switch (TREE_CODE (_q140))
13495 : {
13496 0 : case SSA_NAME:
13497 0 : {
13498 0 : switch (TREE_CODE (_p2))
13499 : {
13500 0 : case CALL_EXPR:
13501 0 : switch (get_call_combined_fn (_p2))
13502 : {
13503 0 : case CFN_FLOOR:
13504 0 : if (call_expr_nargs (_p2) == 1)
13505 : {
13506 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13507 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
13508 : {
13509 0 : switch (TREE_CODE (_q170))
13510 : {
13511 0 : case SSA_NAME:
13512 0 : {
13513 0 : {
13514 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
13515 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
13516 0 : if (res) return res;
13517 : }
13518 0 : break;
13519 : }
13520 : default:;
13521 : }
13522 : }
13523 : }
13524 : break;
13525 : default:;
13526 : }
13527 : break;
13528 : default:;
13529 : }
13530 : break;
13531 : }
13532 : default:;
13533 : }
13534 : }
13535 : }
13536 : break;
13537 : default:;
13538 : }
13539 : break;
13540 : default:;
13541 : }
13542 : break;
13543 : }
13544 : default:;
13545 : }
13546 : }
13547 : break;
13548 : }
13549 : default:;
13550 : }
13551 : }
13552 : }
13553 : break;
13554 : default:;
13555 : }
13556 : break;
13557 : default:;
13558 : }
13559 : break;
13560 : }
13561 : default:;
13562 : }
13563 : break;
13564 : }
13565 : default:;
13566 : }
13567 : }
13568 : }
13569 : break;
13570 0 : case CFN_BUILT_IN_FLOOR:
13571 0 : if (call_expr_nargs (_q31) == 1)
13572 : {
13573 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
13574 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
13575 : {
13576 0 : switch (TREE_CODE (_q50))
13577 : {
13578 0 : case SSA_NAME:
13579 0 : {
13580 0 : switch (TREE_CODE (_q21))
13581 : {
13582 0 : case MINUS_EXPR:
13583 0 : {
13584 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13585 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13586 0 : switch (TREE_CODE (_q80))
13587 : {
13588 0 : case CALL_EXPR:
13589 0 : switch (get_call_combined_fn (_q80))
13590 : {
13591 0 : case CFN_BUILT_IN_CEIL:
13592 0 : if (call_expr_nargs (_q80) == 1)
13593 : {
13594 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
13595 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
13596 : {
13597 0 : switch (TREE_CODE (_q90))
13598 : {
13599 0 : case SSA_NAME:
13600 0 : {
13601 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13602 : {
13603 0 : switch (TREE_CODE (_q81))
13604 : {
13605 0 : case SSA_NAME:
13606 0 : {
13607 0 : switch (TREE_CODE (_p1))
13608 : {
13609 0 : case CALL_EXPR:
13610 0 : switch (get_call_combined_fn (_p1))
13611 : {
13612 0 : case CFN_BUILT_IN_CEIL:
13613 0 : if (call_expr_nargs (_p1) == 1)
13614 : {
13615 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13616 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
13617 : {
13618 0 : switch (TREE_CODE (_q140))
13619 : {
13620 0 : case SSA_NAME:
13621 0 : {
13622 0 : switch (TREE_CODE (_p2))
13623 : {
13624 0 : case CALL_EXPR:
13625 0 : switch (get_call_combined_fn (_p2))
13626 : {
13627 0 : case CFN_BUILT_IN_FLOOR:
13628 0 : if (call_expr_nargs (_p2) == 1)
13629 : {
13630 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13631 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
13632 : {
13633 0 : switch (TREE_CODE (_q170))
13634 : {
13635 0 : case SSA_NAME:
13636 0 : {
13637 0 : {
13638 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
13639 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
13640 0 : if (res) return res;
13641 : }
13642 0 : break;
13643 : }
13644 : default:;
13645 : }
13646 : }
13647 : }
13648 : break;
13649 : default:;
13650 : }
13651 : break;
13652 : default:;
13653 : }
13654 : break;
13655 : }
13656 : default:;
13657 : }
13658 : }
13659 : }
13660 : break;
13661 : default:;
13662 : }
13663 : break;
13664 : default:;
13665 : }
13666 : break;
13667 : }
13668 : default:;
13669 : }
13670 : }
13671 : break;
13672 : }
13673 : default:;
13674 : }
13675 : }
13676 : }
13677 : break;
13678 : default:;
13679 : }
13680 : break;
13681 : default:;
13682 : }
13683 : break;
13684 : }
13685 : default:;
13686 : }
13687 : break;
13688 : }
13689 : default:;
13690 : }
13691 : }
13692 : }
13693 : break;
13694 : default:;
13695 : }
13696 : break;
13697 : default:;
13698 : }
13699 : break;
13700 : }
13701 : default:;
13702 : }
13703 : break;
13704 : }
13705 62327 : CASE_CONVERT:
13706 62327 : {
13707 62327 : tree _q30 = TREE_OPERAND (_q20, 0);
13708 62327 : switch (TREE_CODE (_q21))
13709 : {
13710 32789 : case INTEGER_CST:
13711 32789 : {
13712 32789 : switch (TREE_CODE (_p1))
13713 : {
13714 12215 : CASE_CONVERT:
13715 12215 : {
13716 12215 : tree _q60 = TREE_OPERAND (_p1, 0);
13717 12215 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13718 : {
13719 6631 : switch (TREE_CODE (_p2))
13720 : {
13721 6623 : case INTEGER_CST:
13722 6623 : {
13723 6623 : {
13724 6623 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13725 6623 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13726 6623 : if (res) return res;
13727 : }
13728 6623 : break;
13729 : }
13730 : default:;
13731 : }
13732 : }
13733 : break;
13734 : }
13735 32789 : default:;
13736 : }
13737 32789 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
13738 : {
13739 312 : switch (TREE_CODE (_p2))
13740 : {
13741 299 : case INTEGER_CST:
13742 299 : {
13743 299 : {
13744 299 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13745 299 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13746 299 : if (res) return res;
13747 : }
13748 294 : break;
13749 : }
13750 : default:;
13751 : }
13752 : }
13753 32784 : switch (TREE_CODE (_p1))
13754 : {
13755 398 : case PLUS_EXPR:
13756 398 : {
13757 398 : tree _q60 = TREE_OPERAND (_p1, 0);
13758 398 : tree _q61 = TREE_OPERAND (_p1, 1);
13759 398 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13760 : {
13761 0 : switch (TREE_CODE (_q61))
13762 : {
13763 0 : case INTEGER_CST:
13764 0 : {
13765 0 : switch (TREE_CODE (_p2))
13766 : {
13767 0 : case INTEGER_CST:
13768 0 : {
13769 0 : {
13770 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13771 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
13772 0 : if (res) return res;
13773 : }
13774 0 : break;
13775 : }
13776 : default:;
13777 : }
13778 : break;
13779 : }
13780 : default:;
13781 : }
13782 : }
13783 : break;
13784 : }
13785 73 : case MINUS_EXPR:
13786 73 : {
13787 73 : tree _q60 = TREE_OPERAND (_p1, 0);
13788 73 : tree _q61 = TREE_OPERAND (_p1, 1);
13789 73 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13790 : {
13791 0 : switch (TREE_CODE (_q61))
13792 : {
13793 0 : case INTEGER_CST:
13794 0 : {
13795 0 : switch (TREE_CODE (_p2))
13796 : {
13797 0 : case INTEGER_CST:
13798 0 : {
13799 0 : {
13800 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13801 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
13802 0 : if (res) return res;
13803 : }
13804 0 : break;
13805 : }
13806 : default:;
13807 : }
13808 : break;
13809 : }
13810 : default:;
13811 : }
13812 : }
13813 : break;
13814 : }
13815 : default:;
13816 : }
13817 : break;
13818 : }
13819 : default:;
13820 : }
13821 : break;
13822 : }
13823 574674 : default:;
13824 : }
13825 574674 : switch (TREE_CODE (_q21))
13826 : {
13827 216511 : case INTEGER_CST:
13828 216511 : {
13829 216511 : switch (TREE_CODE (_p1))
13830 : {
13831 57350 : CASE_CONVERT:
13832 57350 : {
13833 57350 : tree _q50 = TREE_OPERAND (_p1, 0);
13834 57350 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13835 : {
13836 150 : switch (TREE_CODE (_p2))
13837 : {
13838 45 : case INTEGER_CST:
13839 45 : {
13840 45 : {
13841 45 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13842 45 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13843 45 : if (res) return res;
13844 : }
13845 45 : break;
13846 : }
13847 : default:;
13848 : }
13849 : }
13850 : break;
13851 : }
13852 216511 : default:;
13853 : }
13854 216511 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13855 : {
13856 43295 : switch (TREE_CODE (_p2))
13857 : {
13858 10957 : case INTEGER_CST:
13859 10957 : {
13860 10957 : {
13861 10957 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13862 10957 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13863 10957 : if (res) return res;
13864 : }
13865 19 : break;
13866 : }
13867 : default:;
13868 : }
13869 : }
13870 205573 : switch (TREE_CODE (_p1))
13871 : {
13872 17356 : case PLUS_EXPR:
13873 17356 : {
13874 17356 : tree _q50 = TREE_OPERAND (_p1, 0);
13875 17356 : tree _q51 = TREE_OPERAND (_p1, 1);
13876 17356 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13877 : {
13878 6576 : switch (TREE_CODE (_q51))
13879 : {
13880 6576 : case INTEGER_CST:
13881 6576 : {
13882 6576 : switch (TREE_CODE (_p2))
13883 : {
13884 6576 : case INTEGER_CST:
13885 6576 : {
13886 6576 : {
13887 6576 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13888 6576 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
13889 6576 : if (res) return res;
13890 : }
13891 0 : break;
13892 : }
13893 : default:;
13894 : }
13895 : break;
13896 : }
13897 : default:;
13898 : }
13899 : }
13900 : break;
13901 : }
13902 223 : case MINUS_EXPR:
13903 223 : {
13904 223 : tree _q50 = TREE_OPERAND (_p1, 0);
13905 223 : tree _q51 = TREE_OPERAND (_p1, 1);
13906 223 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13907 : {
13908 0 : switch (TREE_CODE (_q51))
13909 : {
13910 0 : case INTEGER_CST:
13911 0 : {
13912 0 : switch (TREE_CODE (_p2))
13913 : {
13914 0 : case INTEGER_CST:
13915 0 : {
13916 0 : {
13917 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13918 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
13919 0 : if (res) return res;
13920 : }
13921 0 : break;
13922 : }
13923 : default:;
13924 : }
13925 : break;
13926 : }
13927 : default:;
13928 : }
13929 : }
13930 : break;
13931 : }
13932 : default:;
13933 : }
13934 : break;
13935 : }
13936 557160 : default:;
13937 : }
13938 557160 : switch (TREE_CODE (_p1))
13939 : {
13940 16 : case MIN_EXPR:
13941 16 : {
13942 16 : tree _q50 = TREE_OPERAND (_p1, 0);
13943 16 : tree _q51 = TREE_OPERAND (_p1, 1);
13944 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13945 : {
13946 15 : switch (TREE_CODE (_p2))
13947 : {
13948 0 : case MIN_EXPR:
13949 0 : {
13950 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13951 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13952 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13953 : {
13954 0 : {
13955 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13956 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13957 0 : if (res) return res;
13958 : }
13959 : }
13960 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13961 : {
13962 0 : {
13963 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13964 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13965 0 : if (res) return res;
13966 : }
13967 : }
13968 : break;
13969 : }
13970 15 : default:;
13971 : }
13972 15 : {
13973 15 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
13974 15 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13975 15 : if (res) return res;
13976 : }
13977 : }
13978 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13979 : {
13980 0 : switch (TREE_CODE (_p2))
13981 : {
13982 0 : case MIN_EXPR:
13983 0 : {
13984 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13985 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13986 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13987 : {
13988 0 : {
13989 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13990 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13991 0 : if (res) return res;
13992 : }
13993 : }
13994 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13995 : {
13996 0 : {
13997 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13998 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
13999 0 : if (res) return res;
14000 : }
14001 : }
14002 : break;
14003 : }
14004 : default:;
14005 : }
14006 : }
14007 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14008 : {
14009 0 : switch (TREE_CODE (_p2))
14010 : {
14011 0 : case MIN_EXPR:
14012 0 : {
14013 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14014 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14015 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14016 : {
14017 0 : {
14018 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14019 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14020 0 : if (res) return res;
14021 : }
14022 : }
14023 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14024 : {
14025 0 : {
14026 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14027 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14028 0 : if (res) return res;
14029 : }
14030 : }
14031 : break;
14032 : }
14033 : default:;
14034 : }
14035 : }
14036 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14037 : {
14038 0 : switch (TREE_CODE (_p2))
14039 : {
14040 0 : case MIN_EXPR:
14041 0 : {
14042 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14043 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14044 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14045 : {
14046 0 : {
14047 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14048 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14049 0 : if (res) return res;
14050 : }
14051 : }
14052 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14053 : {
14054 0 : {
14055 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14056 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
14057 0 : if (res) return res;
14058 : }
14059 : }
14060 : break;
14061 : }
14062 : default:;
14063 : }
14064 : }
14065 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14066 : {
14067 0 : {
14068 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
14069 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
14070 0 : if (res) return res;
14071 : }
14072 : }
14073 : break;
14074 : }
14075 9 : case MAX_EXPR:
14076 9 : {
14077 9 : tree _q50 = TREE_OPERAND (_p1, 0);
14078 9 : tree _q51 = TREE_OPERAND (_p1, 1);
14079 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14080 : {
14081 1 : switch (TREE_CODE (_p2))
14082 : {
14083 0 : case MAX_EXPR:
14084 0 : {
14085 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14086 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14087 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14088 : {
14089 0 : {
14090 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14091 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14092 0 : if (res) return res;
14093 : }
14094 : }
14095 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14096 : {
14097 0 : {
14098 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14099 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14100 0 : if (res) return res;
14101 : }
14102 : }
14103 : break;
14104 : }
14105 : default:;
14106 : }
14107 : }
14108 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14109 : {
14110 1 : switch (TREE_CODE (_p2))
14111 : {
14112 0 : case MAX_EXPR:
14113 0 : {
14114 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14115 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14116 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14117 : {
14118 0 : {
14119 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14120 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14121 0 : if (res) return res;
14122 : }
14123 : }
14124 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14125 : {
14126 0 : {
14127 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14128 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14129 0 : if (res) return res;
14130 : }
14131 : }
14132 : break;
14133 : }
14134 : default:;
14135 : }
14136 : }
14137 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14138 : {
14139 1 : switch (TREE_CODE (_p2))
14140 : {
14141 0 : case MAX_EXPR:
14142 0 : {
14143 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14144 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14145 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14146 : {
14147 0 : {
14148 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14149 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14150 0 : if (res) return res;
14151 : }
14152 : }
14153 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14154 : {
14155 0 : {
14156 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14157 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14158 0 : if (res) return res;
14159 : }
14160 : }
14161 : break;
14162 : }
14163 1 : default:;
14164 : }
14165 1 : {
14166 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
14167 1 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14168 1 : if (res) return res;
14169 : }
14170 : }
14171 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14172 : {
14173 8 : switch (TREE_CODE (_p2))
14174 : {
14175 0 : case MAX_EXPR:
14176 0 : {
14177 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14178 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14179 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14180 : {
14181 0 : {
14182 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14183 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14184 0 : if (res) return res;
14185 : }
14186 : }
14187 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14188 : {
14189 0 : {
14190 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14191 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14192 0 : if (res) return res;
14193 : }
14194 : }
14195 : break;
14196 : }
14197 8 : default:;
14198 : }
14199 8 : {
14200 8 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
14201 8 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
14202 8 : if (res) return res;
14203 : }
14204 : }
14205 : break;
14206 : }
14207 557150 : default:;
14208 : }
14209 557150 : {
14210 557150 : tree _q20_pops[1];
14211 557150 : if (tree_nop_convert (_q20, _q20_pops))
14212 : {
14213 27522 : tree _q30 = _q20_pops[0];
14214 27522 : if (integer_zerop (_q21))
14215 : {
14216 24272 : switch (TREE_CODE (_p1))
14217 : {
14218 0 : case MAX_EXPR:
14219 0 : {
14220 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14221 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14222 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14223 : {
14224 0 : switch (TREE_CODE (_q61))
14225 : {
14226 0 : case INTEGER_CST:
14227 0 : {
14228 0 : switch (TREE_CODE (_p2))
14229 : {
14230 0 : case INTEGER_CST:
14231 0 : {
14232 0 : {
14233 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
14234 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
14235 0 : if (res) return res;
14236 : }
14237 0 : break;
14238 : }
14239 : default:;
14240 : }
14241 : break;
14242 : }
14243 : default:;
14244 : }
14245 : }
14246 : break;
14247 : }
14248 : default:;
14249 : }
14250 : }
14251 : }
14252 : }
14253 557150 : if (tree_expr_nonnegative_p (_q21))
14254 : {
14255 422310 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14256 : {
14257 32415 : switch (TREE_CODE (_p2))
14258 : {
14259 0 : case ABS_EXPR:
14260 0 : {
14261 0 : tree _q60 = TREE_OPERAND (_p2, 0);
14262 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14263 : {
14264 0 : {
14265 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14266 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
14267 0 : if (res) return res;
14268 : }
14269 : }
14270 : break;
14271 : }
14272 : default:;
14273 : }
14274 : }
14275 422310 : switch (TREE_CODE (_p1))
14276 : {
14277 12 : case ABS_EXPR:
14278 12 : {
14279 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14280 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14281 : {
14282 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
14283 : {
14284 0 : {
14285 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
14286 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
14287 0 : if (res) return res;
14288 : }
14289 : }
14290 : }
14291 : break;
14292 : }
14293 : default:;
14294 : }
14295 : }
14296 : break;
14297 : }
14298 939277 : case GT_EXPR:
14299 939277 : {
14300 939277 : tree _q20 = TREE_OPERAND (_p0, 0);
14301 939277 : tree _q21 = TREE_OPERAND (_p0, 1);
14302 939277 : switch (TREE_CODE (_q20))
14303 : {
14304 1090 : case MINUS_EXPR:
14305 1090 : {
14306 1090 : tree _q30 = TREE_OPERAND (_q20, 0);
14307 1090 : tree _q31 = TREE_OPERAND (_q20, 1);
14308 1090 : switch (TREE_CODE (_q30))
14309 : {
14310 0 : case CALL_EXPR:
14311 0 : switch (get_call_combined_fn (_q30))
14312 : {
14313 0 : case CFN_BUILT_IN_CEIL:
14314 0 : if (call_expr_nargs (_q30) == 1)
14315 : {
14316 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14317 0 : switch (TREE_CODE (_q40))
14318 : {
14319 0 : case SSA_NAME:
14320 0 : {
14321 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14322 : {
14323 0 : switch (TREE_CODE (_q31))
14324 : {
14325 0 : case SSA_NAME:
14326 0 : {
14327 0 : switch (TREE_CODE (_q21))
14328 : {
14329 0 : case MINUS_EXPR:
14330 0 : {
14331 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14332 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14333 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14334 : {
14335 0 : switch (TREE_CODE (_q80))
14336 : {
14337 0 : case SSA_NAME:
14338 0 : {
14339 0 : switch (TREE_CODE (_q81))
14340 : {
14341 0 : case CALL_EXPR:
14342 0 : switch (get_call_combined_fn (_q81))
14343 : {
14344 0 : case CFN_BUILT_IN_FLOOR:
14345 0 : if (call_expr_nargs (_q81) == 1)
14346 : {
14347 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14348 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14349 : {
14350 0 : switch (TREE_CODE (_q110))
14351 : {
14352 0 : case SSA_NAME:
14353 0 : {
14354 0 : switch (TREE_CODE (_p1))
14355 : {
14356 0 : case CALL_EXPR:
14357 0 : switch (get_call_combined_fn (_p1))
14358 : {
14359 0 : case CFN_BUILT_IN_FLOOR:
14360 0 : if (call_expr_nargs (_p1) == 1)
14361 : {
14362 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14363 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14364 : {
14365 0 : switch (TREE_CODE (_q140))
14366 : {
14367 0 : case SSA_NAME:
14368 0 : {
14369 0 : switch (TREE_CODE (_p2))
14370 : {
14371 0 : case CALL_EXPR:
14372 0 : switch (get_call_combined_fn (_p2))
14373 : {
14374 0 : case CFN_BUILT_IN_CEIL:
14375 0 : if (call_expr_nargs (_p2) == 1)
14376 : {
14377 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14378 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14379 : {
14380 0 : switch (TREE_CODE (_q170))
14381 : {
14382 0 : case SSA_NAME:
14383 0 : {
14384 0 : {
14385 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14386 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
14387 0 : if (res) return res;
14388 : }
14389 0 : break;
14390 : }
14391 : default:;
14392 : }
14393 : }
14394 : }
14395 : break;
14396 : default:;
14397 : }
14398 : break;
14399 : default:;
14400 : }
14401 : break;
14402 : }
14403 : default:;
14404 : }
14405 : }
14406 : }
14407 : break;
14408 : default:;
14409 : }
14410 : break;
14411 : default:;
14412 : }
14413 : break;
14414 : }
14415 : default:;
14416 : }
14417 : }
14418 : }
14419 : break;
14420 : default:;
14421 : }
14422 : break;
14423 : default:;
14424 : }
14425 : break;
14426 : }
14427 : default:;
14428 : }
14429 : }
14430 : break;
14431 : }
14432 : default:;
14433 : }
14434 : break;
14435 : }
14436 : default:;
14437 : }
14438 : }
14439 : break;
14440 : }
14441 : default:;
14442 : }
14443 : }
14444 : break;
14445 0 : case CFN_CEIL:
14446 0 : if (call_expr_nargs (_q30) == 1)
14447 : {
14448 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14449 0 : switch (TREE_CODE (_q40))
14450 : {
14451 0 : case SSA_NAME:
14452 0 : {
14453 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14454 : {
14455 0 : switch (TREE_CODE (_q31))
14456 : {
14457 0 : case SSA_NAME:
14458 0 : {
14459 0 : switch (TREE_CODE (_q21))
14460 : {
14461 0 : case MINUS_EXPR:
14462 0 : {
14463 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14464 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14465 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14466 : {
14467 0 : switch (TREE_CODE (_q80))
14468 : {
14469 0 : case SSA_NAME:
14470 0 : {
14471 0 : switch (TREE_CODE (_q81))
14472 : {
14473 0 : case CALL_EXPR:
14474 0 : switch (get_call_combined_fn (_q81))
14475 : {
14476 0 : case CFN_FLOOR:
14477 0 : if (call_expr_nargs (_q81) == 1)
14478 : {
14479 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14480 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14481 : {
14482 0 : switch (TREE_CODE (_q110))
14483 : {
14484 0 : case SSA_NAME:
14485 0 : {
14486 0 : switch (TREE_CODE (_p1))
14487 : {
14488 0 : case CALL_EXPR:
14489 0 : switch (get_call_combined_fn (_p1))
14490 : {
14491 0 : case CFN_FLOOR:
14492 0 : if (call_expr_nargs (_p1) == 1)
14493 : {
14494 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14495 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14496 : {
14497 0 : switch (TREE_CODE (_q140))
14498 : {
14499 0 : case SSA_NAME:
14500 0 : {
14501 0 : switch (TREE_CODE (_p2))
14502 : {
14503 0 : case CALL_EXPR:
14504 0 : switch (get_call_combined_fn (_p2))
14505 : {
14506 0 : case CFN_CEIL:
14507 0 : if (call_expr_nargs (_p2) == 1)
14508 : {
14509 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14510 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14511 : {
14512 0 : switch (TREE_CODE (_q170))
14513 : {
14514 0 : case SSA_NAME:
14515 0 : {
14516 0 : {
14517 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14518 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
14519 0 : if (res) return res;
14520 : }
14521 0 : break;
14522 : }
14523 : default:;
14524 : }
14525 : }
14526 : }
14527 : break;
14528 : default:;
14529 : }
14530 : break;
14531 : default:;
14532 : }
14533 : break;
14534 : }
14535 : default:;
14536 : }
14537 : }
14538 : }
14539 : break;
14540 : default:;
14541 : }
14542 : break;
14543 : default:;
14544 : }
14545 : break;
14546 : }
14547 : default:;
14548 : }
14549 : }
14550 : }
14551 : break;
14552 : default:;
14553 : }
14554 : break;
14555 : default:;
14556 : }
14557 : break;
14558 : }
14559 : default:;
14560 : }
14561 : }
14562 : break;
14563 : }
14564 : default:;
14565 : }
14566 : break;
14567 : }
14568 : default:;
14569 : }
14570 : }
14571 : break;
14572 : }
14573 : default:;
14574 : }
14575 : }
14576 : break;
14577 0 : case CFN_BUILT_IN_CEILF:
14578 0 : if (call_expr_nargs (_q30) == 1)
14579 : {
14580 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14581 0 : switch (TREE_CODE (_q40))
14582 : {
14583 0 : case SSA_NAME:
14584 0 : {
14585 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14586 : {
14587 0 : switch (TREE_CODE (_q31))
14588 : {
14589 0 : case SSA_NAME:
14590 0 : {
14591 0 : switch (TREE_CODE (_q21))
14592 : {
14593 0 : case MINUS_EXPR:
14594 0 : {
14595 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14596 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14597 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14598 : {
14599 0 : switch (TREE_CODE (_q80))
14600 : {
14601 0 : case SSA_NAME:
14602 0 : {
14603 0 : switch (TREE_CODE (_q81))
14604 : {
14605 0 : case CALL_EXPR:
14606 0 : switch (get_call_combined_fn (_q81))
14607 : {
14608 0 : case CFN_BUILT_IN_FLOORF:
14609 0 : if (call_expr_nargs (_q81) == 1)
14610 : {
14611 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14612 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14613 : {
14614 0 : switch (TREE_CODE (_q110))
14615 : {
14616 0 : case SSA_NAME:
14617 0 : {
14618 0 : switch (TREE_CODE (_p1))
14619 : {
14620 0 : case CALL_EXPR:
14621 0 : switch (get_call_combined_fn (_p1))
14622 : {
14623 0 : case CFN_BUILT_IN_FLOORF:
14624 0 : if (call_expr_nargs (_p1) == 1)
14625 : {
14626 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14627 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14628 : {
14629 0 : switch (TREE_CODE (_q140))
14630 : {
14631 0 : case SSA_NAME:
14632 0 : {
14633 0 : switch (TREE_CODE (_p2))
14634 : {
14635 0 : case CALL_EXPR:
14636 0 : switch (get_call_combined_fn (_p2))
14637 : {
14638 0 : case CFN_BUILT_IN_CEILF:
14639 0 : if (call_expr_nargs (_p2) == 1)
14640 : {
14641 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14642 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14643 : {
14644 0 : switch (TREE_CODE (_q170))
14645 : {
14646 0 : case SSA_NAME:
14647 0 : {
14648 0 : {
14649 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14650 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
14651 0 : if (res) return res;
14652 : }
14653 0 : break;
14654 : }
14655 : default:;
14656 : }
14657 : }
14658 : }
14659 : break;
14660 : default:;
14661 : }
14662 : break;
14663 : default:;
14664 : }
14665 : break;
14666 : }
14667 : default:;
14668 : }
14669 : }
14670 : }
14671 : break;
14672 : default:;
14673 : }
14674 : break;
14675 : default:;
14676 : }
14677 : break;
14678 : }
14679 : default:;
14680 : }
14681 : }
14682 : }
14683 : break;
14684 : default:;
14685 : }
14686 : break;
14687 : default:;
14688 : }
14689 : break;
14690 : }
14691 : default:;
14692 : }
14693 : }
14694 : break;
14695 : }
14696 : default:;
14697 : }
14698 : break;
14699 : }
14700 : default:;
14701 : }
14702 : }
14703 : break;
14704 : }
14705 : default:;
14706 : }
14707 : }
14708 : break;
14709 0 : case CFN_BUILT_IN_CEILL:
14710 0 : if (call_expr_nargs (_q30) == 1)
14711 : {
14712 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14713 0 : switch (TREE_CODE (_q40))
14714 : {
14715 0 : case SSA_NAME:
14716 0 : {
14717 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14718 : {
14719 0 : switch (TREE_CODE (_q31))
14720 : {
14721 0 : case SSA_NAME:
14722 0 : {
14723 0 : switch (TREE_CODE (_q21))
14724 : {
14725 0 : case MINUS_EXPR:
14726 0 : {
14727 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14728 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14729 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14730 : {
14731 0 : switch (TREE_CODE (_q80))
14732 : {
14733 0 : case SSA_NAME:
14734 0 : {
14735 0 : switch (TREE_CODE (_q81))
14736 : {
14737 0 : case CALL_EXPR:
14738 0 : switch (get_call_combined_fn (_q81))
14739 : {
14740 0 : case CFN_BUILT_IN_FLOORL:
14741 0 : if (call_expr_nargs (_q81) == 1)
14742 : {
14743 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14744 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14745 : {
14746 0 : switch (TREE_CODE (_q110))
14747 : {
14748 0 : case SSA_NAME:
14749 0 : {
14750 0 : switch (TREE_CODE (_p1))
14751 : {
14752 0 : case CALL_EXPR:
14753 0 : switch (get_call_combined_fn (_p1))
14754 : {
14755 0 : case CFN_BUILT_IN_FLOORL:
14756 0 : if (call_expr_nargs (_p1) == 1)
14757 : {
14758 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14759 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14760 : {
14761 0 : switch (TREE_CODE (_q140))
14762 : {
14763 0 : case SSA_NAME:
14764 0 : {
14765 0 : switch (TREE_CODE (_p2))
14766 : {
14767 0 : case CALL_EXPR:
14768 0 : switch (get_call_combined_fn (_p2))
14769 : {
14770 0 : case CFN_BUILT_IN_CEILL:
14771 0 : if (call_expr_nargs (_p2) == 1)
14772 : {
14773 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14774 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14775 : {
14776 0 : switch (TREE_CODE (_q170))
14777 : {
14778 0 : case SSA_NAME:
14779 0 : {
14780 0 : {
14781 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14782 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
14783 0 : if (res) return res;
14784 : }
14785 0 : break;
14786 : }
14787 : default:;
14788 : }
14789 : }
14790 : }
14791 : break;
14792 : default:;
14793 : }
14794 : break;
14795 : default:;
14796 : }
14797 : break;
14798 : }
14799 : default:;
14800 : }
14801 : }
14802 : }
14803 : break;
14804 : default:;
14805 : }
14806 : break;
14807 : default:;
14808 : }
14809 : break;
14810 : }
14811 : default:;
14812 : }
14813 : }
14814 : }
14815 : break;
14816 : default:;
14817 : }
14818 : break;
14819 : default:;
14820 : }
14821 : break;
14822 : }
14823 : default:;
14824 : }
14825 : }
14826 : break;
14827 : }
14828 : default:;
14829 : }
14830 : break;
14831 : }
14832 : default:;
14833 : }
14834 : }
14835 : break;
14836 : }
14837 : default:;
14838 : }
14839 : }
14840 : break;
14841 : default:;
14842 : }
14843 : break;
14844 : default:;
14845 : }
14846 : break;
14847 : }
14848 89712 : CASE_CONVERT:
14849 89712 : {
14850 89712 : tree _q30 = TREE_OPERAND (_q20, 0);
14851 89712 : switch (TREE_CODE (_q21))
14852 : {
14853 4987 : case INTEGER_CST:
14854 4987 : {
14855 4987 : switch (TREE_CODE (_p1))
14856 : {
14857 295 : CASE_CONVERT:
14858 295 : {
14859 295 : tree _q60 = TREE_OPERAND (_p1, 0);
14860 295 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14861 : {
14862 123 : switch (TREE_CODE (_p2))
14863 : {
14864 122 : case INTEGER_CST:
14865 122 : {
14866 122 : {
14867 122 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14868 122 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14869 122 : if (res) return res;
14870 : }
14871 122 : break;
14872 : }
14873 : default:;
14874 : }
14875 : }
14876 : break;
14877 : }
14878 4987 : default:;
14879 : }
14880 4987 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
14881 : {
14882 5 : switch (TREE_CODE (_p2))
14883 : {
14884 3 : case INTEGER_CST:
14885 3 : {
14886 3 : {
14887 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14888 3 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14889 3 : if (res) return res;
14890 : }
14891 3 : break;
14892 : }
14893 : default:;
14894 : }
14895 : }
14896 4987 : switch (TREE_CODE (_p1))
14897 : {
14898 1452 : case PLUS_EXPR:
14899 1452 : {
14900 1452 : tree _q60 = TREE_OPERAND (_p1, 0);
14901 1452 : tree _q61 = TREE_OPERAND (_p1, 1);
14902 1452 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14903 : {
14904 22 : switch (TREE_CODE (_q61))
14905 : {
14906 22 : case INTEGER_CST:
14907 22 : {
14908 22 : switch (TREE_CODE (_p2))
14909 : {
14910 22 : case INTEGER_CST:
14911 22 : {
14912 22 : {
14913 22 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14914 22 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
14915 22 : if (res) return res;
14916 : }
14917 22 : break;
14918 : }
14919 : default:;
14920 : }
14921 : break;
14922 : }
14923 : default:;
14924 : }
14925 : }
14926 : break;
14927 : }
14928 72 : case MINUS_EXPR:
14929 72 : {
14930 72 : tree _q60 = TREE_OPERAND (_p1, 0);
14931 72 : tree _q61 = TREE_OPERAND (_p1, 1);
14932 72 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14933 : {
14934 0 : switch (TREE_CODE (_q61))
14935 : {
14936 0 : case INTEGER_CST:
14937 0 : {
14938 0 : switch (TREE_CODE (_p2))
14939 : {
14940 0 : case INTEGER_CST:
14941 0 : {
14942 0 : {
14943 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14944 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
14945 0 : if (res) return res;
14946 : }
14947 0 : break;
14948 : }
14949 : default:;
14950 : }
14951 : break;
14952 : }
14953 : default:;
14954 : }
14955 : }
14956 : break;
14957 : }
14958 : default:;
14959 : }
14960 : break;
14961 : }
14962 : default:;
14963 : }
14964 : break;
14965 : }
14966 939277 : default:;
14967 : }
14968 939277 : switch (TREE_CODE (_q21))
14969 : {
14970 491528 : case INTEGER_CST:
14971 491528 : {
14972 491528 : switch (TREE_CODE (_p1))
14973 : {
14974 58232 : CASE_CONVERT:
14975 58232 : {
14976 58232 : tree _q50 = TREE_OPERAND (_p1, 0);
14977 58232 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14978 : {
14979 13324 : switch (TREE_CODE (_p2))
14980 : {
14981 13288 : case INTEGER_CST:
14982 13288 : {
14983 13288 : {
14984 13288 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14985 13288 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14986 13288 : if (res) return res;
14987 : }
14988 12979 : break;
14989 : }
14990 : default:;
14991 : }
14992 : }
14993 : break;
14994 : }
14995 491219 : default:;
14996 : }
14997 491219 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14998 : {
14999 9227 : switch (TREE_CODE (_p2))
15000 : {
15001 9053 : case INTEGER_CST:
15002 9053 : {
15003 9053 : {
15004 9053 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15005 9053 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
15006 9053 : if (res) return res;
15007 : }
15008 31 : break;
15009 : }
15010 : default:;
15011 : }
15012 : }
15013 482197 : switch (TREE_CODE (_p1))
15014 : {
15015 48431 : case PLUS_EXPR:
15016 48431 : {
15017 48431 : tree _q50 = TREE_OPERAND (_p1, 0);
15018 48431 : tree _q51 = TREE_OPERAND (_p1, 1);
15019 48431 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15020 : {
15021 737 : switch (TREE_CODE (_q51))
15022 : {
15023 737 : case INTEGER_CST:
15024 737 : {
15025 737 : switch (TREE_CODE (_p2))
15026 : {
15027 729 : case INTEGER_CST:
15028 729 : {
15029 729 : {
15030 729 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15031 729 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
15032 729 : if (res) return res;
15033 : }
15034 17 : break;
15035 : }
15036 : default:;
15037 : }
15038 : break;
15039 : }
15040 : default:;
15041 : }
15042 : }
15043 : break;
15044 : }
15045 310 : case MINUS_EXPR:
15046 310 : {
15047 310 : tree _q50 = TREE_OPERAND (_p1, 0);
15048 310 : tree _q51 = TREE_OPERAND (_p1, 1);
15049 310 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15050 : {
15051 4 : switch (TREE_CODE (_q51))
15052 : {
15053 0 : case INTEGER_CST:
15054 0 : {
15055 0 : switch (TREE_CODE (_p2))
15056 : {
15057 0 : case INTEGER_CST:
15058 0 : {
15059 0 : {
15060 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15061 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
15062 0 : if (res) return res;
15063 : }
15064 0 : break;
15065 : }
15066 : default:;
15067 : }
15068 : break;
15069 : }
15070 : default:;
15071 : }
15072 : }
15073 : break;
15074 : }
15075 : default:;
15076 : }
15077 : break;
15078 : }
15079 929234 : default:;
15080 : }
15081 929234 : switch (TREE_CODE (_p1))
15082 : {
15083 18 : case MIN_EXPR:
15084 18 : {
15085 18 : tree _q50 = TREE_OPERAND (_p1, 0);
15086 18 : tree _q51 = TREE_OPERAND (_p1, 1);
15087 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15088 : {
15089 7 : switch (TREE_CODE (_p2))
15090 : {
15091 0 : case MIN_EXPR:
15092 0 : {
15093 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15094 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15095 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15096 : {
15097 0 : {
15098 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15099 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15100 0 : if (res) return res;
15101 : }
15102 : }
15103 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15104 : {
15105 0 : {
15106 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15107 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15108 0 : if (res) return res;
15109 : }
15110 : }
15111 : break;
15112 : }
15113 7 : default:;
15114 : }
15115 7 : {
15116 7 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
15117 7 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15118 7 : if (res) return res;
15119 : }
15120 : }
15121 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15122 : {
15123 0 : switch (TREE_CODE (_p2))
15124 : {
15125 0 : case MIN_EXPR:
15126 0 : {
15127 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15128 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15129 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15130 : {
15131 0 : {
15132 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15133 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15134 0 : if (res) return res;
15135 : }
15136 : }
15137 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15138 : {
15139 0 : {
15140 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15141 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15142 0 : if (res) return res;
15143 : }
15144 : }
15145 : break;
15146 : }
15147 : default:;
15148 : }
15149 : }
15150 18 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15151 : {
15152 8 : switch (TREE_CODE (_p2))
15153 : {
15154 0 : case MIN_EXPR:
15155 0 : {
15156 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15157 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15158 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15159 : {
15160 0 : {
15161 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15162 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
15163 0 : if (res) return res;
15164 : }
15165 : }
15166 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15167 : {
15168 0 : {
15169 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15170 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
15171 0 : if (res) return res;
15172 : }
15173 : }
15174 : break;
15175 : }
15176 : default:;
15177 : }
15178 : }
15179 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15180 : {
15181 7 : switch (TREE_CODE (_p2))
15182 : {
15183 0 : case MIN_EXPR:
15184 0 : {
15185 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15186 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15187 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15188 : {
15189 0 : {
15190 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15191 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
15192 0 : if (res) return res;
15193 : }
15194 : }
15195 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15196 : {
15197 0 : {
15198 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15199 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
15200 0 : if (res) return res;
15201 : }
15202 : }
15203 : break;
15204 : }
15205 : default:;
15206 : }
15207 : }
15208 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15209 : {
15210 0 : {
15211 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
15212 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
15213 0 : if (res) return res;
15214 : }
15215 : }
15216 : break;
15217 : }
15218 109 : case MAX_EXPR:
15219 109 : {
15220 109 : tree _q50 = TREE_OPERAND (_p1, 0);
15221 109 : tree _q51 = TREE_OPERAND (_p1, 1);
15222 109 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15223 : {
15224 0 : switch (TREE_CODE (_p2))
15225 : {
15226 0 : case MAX_EXPR:
15227 0 : {
15228 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15229 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15230 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15231 : {
15232 0 : {
15233 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15234 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
15235 0 : if (res) return res;
15236 : }
15237 : }
15238 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15239 : {
15240 0 : {
15241 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15242 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
15243 0 : if (res) return res;
15244 : }
15245 : }
15246 : break;
15247 : }
15248 : default:;
15249 : }
15250 : }
15251 109 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15252 : {
15253 11 : switch (TREE_CODE (_p2))
15254 : {
15255 10 : case MAX_EXPR:
15256 10 : {
15257 10 : tree _q80 = TREE_OPERAND (_p2, 0);
15258 10 : tree _q81 = TREE_OPERAND (_p2, 1);
15259 10 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15260 : {
15261 0 : {
15262 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15263 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
15264 0 : if (res) return res;
15265 : }
15266 : }
15267 10 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15268 : {
15269 10 : {
15270 10 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15271 10 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
15272 10 : if (res) return res;
15273 : }
15274 : }
15275 : break;
15276 : }
15277 : default:;
15278 : }
15279 : }
15280 107 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15281 : {
15282 1 : switch (TREE_CODE (_p2))
15283 : {
15284 0 : case MAX_EXPR:
15285 0 : {
15286 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15287 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15288 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15289 : {
15290 0 : {
15291 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15292 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15293 0 : if (res) return res;
15294 : }
15295 : }
15296 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15297 : {
15298 0 : {
15299 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15300 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15301 0 : if (res) return res;
15302 : }
15303 : }
15304 : break;
15305 : }
15306 1 : default:;
15307 : }
15308 1 : {
15309 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
15310 1 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15311 1 : if (res) return res;
15312 : }
15313 : }
15314 106 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15315 : {
15316 0 : switch (TREE_CODE (_p2))
15317 : {
15318 0 : case MAX_EXPR:
15319 0 : {
15320 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15321 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15322 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15323 : {
15324 0 : {
15325 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15326 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15327 0 : if (res) return res;
15328 : }
15329 : }
15330 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15331 : {
15332 0 : {
15333 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15334 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15335 0 : if (res) return res;
15336 : }
15337 : }
15338 : break;
15339 : }
15340 0 : default:;
15341 : }
15342 0 : {
15343 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
15344 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
15345 0 : if (res) return res;
15346 : }
15347 : }
15348 : break;
15349 : }
15350 929231 : default:;
15351 : }
15352 929231 : if (integer_zerop (_q20))
15353 : {
15354 0 : {
15355 0 : tree _q21_pops[1];
15356 0 : if (tree_nop_convert (_q21, _q21_pops))
15357 : {
15358 0 : tree _q40 = _q21_pops[0];
15359 0 : switch (TREE_CODE (_p1))
15360 : {
15361 0 : case MIN_EXPR:
15362 0 : {
15363 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15364 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15365 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15366 : {
15367 0 : switch (TREE_CODE (_q61))
15368 : {
15369 0 : case INTEGER_CST:
15370 0 : {
15371 0 : switch (TREE_CODE (_p2))
15372 : {
15373 0 : case INTEGER_CST:
15374 0 : {
15375 0 : {
15376 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
15377 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
15378 0 : if (res) return res;
15379 : }
15380 0 : break;
15381 : }
15382 : default:;
15383 : }
15384 : break;
15385 : }
15386 : default:;
15387 : }
15388 : }
15389 : break;
15390 : }
15391 : default:;
15392 : }
15393 : }
15394 : }
15395 : }
15396 929231 : if (tree_expr_nonnegative_p (_q21))
15397 : {
15398 607740 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
15399 : {
15400 612 : switch (TREE_CODE (_p2))
15401 : {
15402 0 : case ABS_EXPR:
15403 0 : {
15404 0 : tree _q60 = TREE_OPERAND (_p2, 0);
15405 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15406 : {
15407 0 : {
15408 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15409 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
15410 0 : if (res) return res;
15411 : }
15412 : }
15413 : break;
15414 : }
15415 : default:;
15416 : }
15417 : }
15418 607740 : switch (TREE_CODE (_p1))
15419 : {
15420 1 : case ABS_EXPR:
15421 1 : {
15422 1 : tree _q50 = TREE_OPERAND (_p1, 0);
15423 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15424 : {
15425 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
15426 : {
15427 0 : {
15428 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
15429 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
15430 0 : if (res) return res;
15431 : }
15432 : }
15433 : }
15434 : break;
15435 : }
15436 : default:;
15437 : }
15438 : }
15439 929231 : switch (TREE_CODE (_q20))
15440 : {
15441 57955 : case PLUS_EXPR:
15442 57955 : {
15443 57955 : tree _q30 = TREE_OPERAND (_q20, 0);
15444 57955 : tree _q31 = TREE_OPERAND (_q20, 1);
15445 57955 : if (integer_onep (_q31))
15446 : {
15447 28616 : switch (TREE_CODE (_p1))
15448 : {
15449 4 : case NEGATE_EXPR:
15450 4 : {
15451 4 : tree _q70 = TREE_OPERAND (_p1, 0);
15452 4 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
15453 : {
15454 4 : if (integer_onep (_p2))
15455 : {
15456 4 : {
15457 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15458 4 : if (TYPE_UNSIGNED (type)
15459 : )
15460 : {
15461 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1911;
15462 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1911;
15463 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
15464 4 : {
15465 4 : tree res_op0;
15466 4 : {
15467 4 : tree _o1[2], _r1;
15468 4 : _o1[0] = unshare_expr (captures[0]);
15469 4 : _o1[1] = captures[1];
15470 4 : _r1 = fold_build2_loc (loc, GE_EXPR, boolean_type_node, _o1[0], _o1[1]);
15471 4 : res_op0 = _r1;
15472 : }
15473 4 : tree res_op1;
15474 4 : {
15475 4 : tree _o1[1], _r1;
15476 4 : _o1[0] = captures[0];
15477 4 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
15478 4 : res_op1 = _r1;
15479 : }
15480 4 : tree res_op2;
15481 4 : res_op2 = captures[2];
15482 4 : tree _r;
15483 4 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
15484 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
15485 : return _r;
15486 : }
15487 12266433 : next_after_fail1911:;
15488 : }
15489 : }
15490 : }
15491 : }
15492 : break;
15493 : }
15494 : default:;
15495 : }
15496 : }
15497 : break;
15498 : }
15499 : default:;
15500 : }
15501 : break;
15502 : }
15503 1411478 : case LE_EXPR:
15504 1411478 : {
15505 1411478 : tree _q20 = TREE_OPERAND (_p0, 0);
15506 1411478 : tree _q21 = TREE_OPERAND (_p0, 1);
15507 1411478 : switch (TREE_CODE (_q20))
15508 : {
15509 198 : case MINUS_EXPR:
15510 198 : {
15511 198 : tree _q30 = TREE_OPERAND (_q20, 0);
15512 198 : tree _q31 = TREE_OPERAND (_q20, 1);
15513 198 : switch (TREE_CODE (_q30))
15514 : {
15515 0 : case CALL_EXPR:
15516 0 : switch (get_call_combined_fn (_q30))
15517 : {
15518 0 : case CFN_BUILT_IN_CEIL:
15519 0 : if (call_expr_nargs (_q30) == 1)
15520 : {
15521 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15522 0 : switch (TREE_CODE (_q40))
15523 : {
15524 0 : case SSA_NAME:
15525 0 : {
15526 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15527 : {
15528 0 : switch (TREE_CODE (_q31))
15529 : {
15530 0 : case SSA_NAME:
15531 0 : {
15532 0 : switch (TREE_CODE (_q21))
15533 : {
15534 0 : case MINUS_EXPR:
15535 0 : {
15536 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15537 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15538 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15539 : {
15540 0 : switch (TREE_CODE (_q80))
15541 : {
15542 0 : case SSA_NAME:
15543 0 : {
15544 0 : switch (TREE_CODE (_q81))
15545 : {
15546 0 : case CALL_EXPR:
15547 0 : switch (get_call_combined_fn (_q81))
15548 : {
15549 0 : case CFN_BUILT_IN_FLOOR:
15550 0 : if (call_expr_nargs (_q81) == 1)
15551 : {
15552 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15553 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15554 : {
15555 0 : switch (TREE_CODE (_q110))
15556 : {
15557 0 : case SSA_NAME:
15558 0 : {
15559 0 : switch (TREE_CODE (_p1))
15560 : {
15561 0 : case CALL_EXPR:
15562 0 : switch (get_call_combined_fn (_p1))
15563 : {
15564 0 : case CFN_BUILT_IN_CEIL:
15565 0 : if (call_expr_nargs (_p1) == 1)
15566 : {
15567 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15568 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15569 : {
15570 0 : switch (TREE_CODE (_q140))
15571 : {
15572 0 : case SSA_NAME:
15573 0 : {
15574 0 : switch (TREE_CODE (_p2))
15575 : {
15576 0 : case CALL_EXPR:
15577 0 : switch (get_call_combined_fn (_p2))
15578 : {
15579 0 : case CFN_BUILT_IN_FLOOR:
15580 0 : if (call_expr_nargs (_p2) == 1)
15581 : {
15582 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15583 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15584 : {
15585 0 : switch (TREE_CODE (_q170))
15586 : {
15587 0 : case SSA_NAME:
15588 0 : {
15589 0 : {
15590 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15591 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
15592 0 : if (res) return res;
15593 : }
15594 0 : break;
15595 : }
15596 : default:;
15597 : }
15598 : }
15599 : }
15600 : break;
15601 : default:;
15602 : }
15603 : break;
15604 : default:;
15605 : }
15606 : break;
15607 : }
15608 : default:;
15609 : }
15610 : }
15611 : }
15612 : break;
15613 : default:;
15614 : }
15615 : break;
15616 : default:;
15617 : }
15618 : break;
15619 : }
15620 : default:;
15621 : }
15622 : }
15623 : }
15624 : break;
15625 : default:;
15626 : }
15627 : break;
15628 : default:;
15629 : }
15630 : break;
15631 : }
15632 : default:;
15633 : }
15634 : }
15635 : break;
15636 : }
15637 : default:;
15638 : }
15639 : break;
15640 : }
15641 : default:;
15642 : }
15643 : }
15644 : break;
15645 : }
15646 : default:;
15647 : }
15648 : }
15649 : break;
15650 0 : case CFN_CEIL:
15651 0 : if (call_expr_nargs (_q30) == 1)
15652 : {
15653 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15654 0 : switch (TREE_CODE (_q40))
15655 : {
15656 0 : case SSA_NAME:
15657 0 : {
15658 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15659 : {
15660 0 : switch (TREE_CODE (_q31))
15661 : {
15662 0 : case SSA_NAME:
15663 0 : {
15664 0 : switch (TREE_CODE (_q21))
15665 : {
15666 0 : case MINUS_EXPR:
15667 0 : {
15668 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15669 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15670 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15671 : {
15672 0 : switch (TREE_CODE (_q80))
15673 : {
15674 0 : case SSA_NAME:
15675 0 : {
15676 0 : switch (TREE_CODE (_q81))
15677 : {
15678 0 : case CALL_EXPR:
15679 0 : switch (get_call_combined_fn (_q81))
15680 : {
15681 0 : case CFN_FLOOR:
15682 0 : if (call_expr_nargs (_q81) == 1)
15683 : {
15684 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15685 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15686 : {
15687 0 : switch (TREE_CODE (_q110))
15688 : {
15689 0 : case SSA_NAME:
15690 0 : {
15691 0 : switch (TREE_CODE (_p1))
15692 : {
15693 0 : case CALL_EXPR:
15694 0 : switch (get_call_combined_fn (_p1))
15695 : {
15696 0 : case CFN_CEIL:
15697 0 : if (call_expr_nargs (_p1) == 1)
15698 : {
15699 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15700 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15701 : {
15702 0 : switch (TREE_CODE (_q140))
15703 : {
15704 0 : case SSA_NAME:
15705 0 : {
15706 0 : switch (TREE_CODE (_p2))
15707 : {
15708 0 : case CALL_EXPR:
15709 0 : switch (get_call_combined_fn (_p2))
15710 : {
15711 0 : case CFN_FLOOR:
15712 0 : if (call_expr_nargs (_p2) == 1)
15713 : {
15714 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15715 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15716 : {
15717 0 : switch (TREE_CODE (_q170))
15718 : {
15719 0 : case SSA_NAME:
15720 0 : {
15721 0 : {
15722 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15723 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
15724 0 : if (res) return res;
15725 : }
15726 0 : break;
15727 : }
15728 : default:;
15729 : }
15730 : }
15731 : }
15732 : break;
15733 : default:;
15734 : }
15735 : break;
15736 : default:;
15737 : }
15738 : break;
15739 : }
15740 : default:;
15741 : }
15742 : }
15743 : }
15744 : break;
15745 : default:;
15746 : }
15747 : break;
15748 : default:;
15749 : }
15750 : break;
15751 : }
15752 : default:;
15753 : }
15754 : }
15755 : }
15756 : break;
15757 : default:;
15758 : }
15759 : break;
15760 : default:;
15761 : }
15762 : break;
15763 : }
15764 : default:;
15765 : }
15766 : }
15767 : break;
15768 : }
15769 : default:;
15770 : }
15771 : break;
15772 : }
15773 : default:;
15774 : }
15775 : }
15776 : break;
15777 : }
15778 : default:;
15779 : }
15780 : }
15781 : break;
15782 0 : case CFN_BUILT_IN_CEILF:
15783 0 : if (call_expr_nargs (_q30) == 1)
15784 : {
15785 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15786 0 : switch (TREE_CODE (_q40))
15787 : {
15788 0 : case SSA_NAME:
15789 0 : {
15790 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15791 : {
15792 0 : switch (TREE_CODE (_q31))
15793 : {
15794 0 : case SSA_NAME:
15795 0 : {
15796 0 : switch (TREE_CODE (_q21))
15797 : {
15798 0 : case MINUS_EXPR:
15799 0 : {
15800 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15801 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15802 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15803 : {
15804 0 : switch (TREE_CODE (_q80))
15805 : {
15806 0 : case SSA_NAME:
15807 0 : {
15808 0 : switch (TREE_CODE (_q81))
15809 : {
15810 0 : case CALL_EXPR:
15811 0 : switch (get_call_combined_fn (_q81))
15812 : {
15813 0 : case CFN_BUILT_IN_FLOORF:
15814 0 : if (call_expr_nargs (_q81) == 1)
15815 : {
15816 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15817 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15818 : {
15819 0 : switch (TREE_CODE (_q110))
15820 : {
15821 0 : case SSA_NAME:
15822 0 : {
15823 0 : switch (TREE_CODE (_p1))
15824 : {
15825 0 : case CALL_EXPR:
15826 0 : switch (get_call_combined_fn (_p1))
15827 : {
15828 0 : case CFN_BUILT_IN_CEILF:
15829 0 : if (call_expr_nargs (_p1) == 1)
15830 : {
15831 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15832 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15833 : {
15834 0 : switch (TREE_CODE (_q140))
15835 : {
15836 0 : case SSA_NAME:
15837 0 : {
15838 0 : switch (TREE_CODE (_p2))
15839 : {
15840 0 : case CALL_EXPR:
15841 0 : switch (get_call_combined_fn (_p2))
15842 : {
15843 0 : case CFN_BUILT_IN_FLOORF:
15844 0 : if (call_expr_nargs (_p2) == 1)
15845 : {
15846 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15847 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15848 : {
15849 0 : switch (TREE_CODE (_q170))
15850 : {
15851 0 : case SSA_NAME:
15852 0 : {
15853 0 : {
15854 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15855 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
15856 0 : if (res) return res;
15857 : }
15858 0 : break;
15859 : }
15860 : default:;
15861 : }
15862 : }
15863 : }
15864 : break;
15865 : default:;
15866 : }
15867 : break;
15868 : default:;
15869 : }
15870 : break;
15871 : }
15872 : default:;
15873 : }
15874 : }
15875 : }
15876 : break;
15877 : default:;
15878 : }
15879 : break;
15880 : default:;
15881 : }
15882 : break;
15883 : }
15884 : default:;
15885 : }
15886 : }
15887 : }
15888 : break;
15889 : default:;
15890 : }
15891 : break;
15892 : default:;
15893 : }
15894 : break;
15895 : }
15896 : default:;
15897 : }
15898 : }
15899 : break;
15900 : }
15901 : default:;
15902 : }
15903 : break;
15904 : }
15905 : default:;
15906 : }
15907 : }
15908 : break;
15909 : }
15910 : default:;
15911 : }
15912 : }
15913 : break;
15914 0 : case CFN_BUILT_IN_CEILL:
15915 0 : if (call_expr_nargs (_q30) == 1)
15916 : {
15917 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15918 0 : switch (TREE_CODE (_q40))
15919 : {
15920 0 : case SSA_NAME:
15921 0 : {
15922 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
15923 : {
15924 0 : switch (TREE_CODE (_q31))
15925 : {
15926 0 : case SSA_NAME:
15927 0 : {
15928 0 : switch (TREE_CODE (_q21))
15929 : {
15930 0 : case MINUS_EXPR:
15931 0 : {
15932 0 : tree _q80 = TREE_OPERAND (_q21, 0);
15933 0 : tree _q81 = TREE_OPERAND (_q21, 1);
15934 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
15935 : {
15936 0 : switch (TREE_CODE (_q80))
15937 : {
15938 0 : case SSA_NAME:
15939 0 : {
15940 0 : switch (TREE_CODE (_q81))
15941 : {
15942 0 : case CALL_EXPR:
15943 0 : switch (get_call_combined_fn (_q81))
15944 : {
15945 0 : case CFN_BUILT_IN_FLOORL:
15946 0 : if (call_expr_nargs (_q81) == 1)
15947 : {
15948 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
15949 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
15950 : {
15951 0 : switch (TREE_CODE (_q110))
15952 : {
15953 0 : case SSA_NAME:
15954 0 : {
15955 0 : switch (TREE_CODE (_p1))
15956 : {
15957 0 : case CALL_EXPR:
15958 0 : switch (get_call_combined_fn (_p1))
15959 : {
15960 0 : case CFN_BUILT_IN_CEILL:
15961 0 : if (call_expr_nargs (_p1) == 1)
15962 : {
15963 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
15964 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
15965 : {
15966 0 : switch (TREE_CODE (_q140))
15967 : {
15968 0 : case SSA_NAME:
15969 0 : {
15970 0 : switch (TREE_CODE (_p2))
15971 : {
15972 0 : case CALL_EXPR:
15973 0 : switch (get_call_combined_fn (_p2))
15974 : {
15975 0 : case CFN_BUILT_IN_FLOORL:
15976 0 : if (call_expr_nargs (_p2) == 1)
15977 : {
15978 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
15979 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
15980 : {
15981 0 : switch (TREE_CODE (_q170))
15982 : {
15983 0 : case SSA_NAME:
15984 0 : {
15985 0 : {
15986 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
15987 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
15988 0 : if (res) return res;
15989 : }
15990 0 : break;
15991 : }
15992 : default:;
15993 : }
15994 : }
15995 : }
15996 : break;
15997 : default:;
15998 : }
15999 : break;
16000 : default:;
16001 : }
16002 : break;
16003 : }
16004 : default:;
16005 : }
16006 : }
16007 : }
16008 : break;
16009 : default:;
16010 : }
16011 : break;
16012 : default:;
16013 : }
16014 : break;
16015 : }
16016 : default:;
16017 : }
16018 : }
16019 : }
16020 : break;
16021 : default:;
16022 : }
16023 : break;
16024 : default:;
16025 : }
16026 : break;
16027 : }
16028 : default:;
16029 : }
16030 : }
16031 : break;
16032 : }
16033 : default:;
16034 : }
16035 : break;
16036 : }
16037 : default:;
16038 : }
16039 : }
16040 : break;
16041 : }
16042 : default:;
16043 : }
16044 : }
16045 : break;
16046 : default:;
16047 : }
16048 : break;
16049 : default:;
16050 : }
16051 : break;
16052 : }
16053 1411478 : default:;
16054 : }
16055 1411478 : if (integer_zerop (_q21))
16056 : {
16057 125013 : switch (TREE_CODE (_p1))
16058 : {
16059 228 : case NEGATE_EXPR:
16060 228 : {
16061 228 : tree _q50 = TREE_OPERAND (_p1, 0);
16062 228 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16063 : {
16064 70 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16065 : {
16066 70 : if (integer_zerop (_p2))
16067 : {
16068 70 : {
16069 70 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16070 70 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
16071 : )
16072 : {
16073 68 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1912;
16074 68 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1912;
16075 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
16076 68 : {
16077 68 : tree res_op0;
16078 68 : res_op0 = captures[2];
16079 68 : tree res_op1;
16080 68 : res_op1 = captures[1];
16081 68 : tree _r;
16082 68 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
16083 68 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
16084 : return _r;
16085 : }
16086 1411410 : next_after_fail1912:;
16087 : }
16088 : }
16089 : }
16090 : }
16091 : }
16092 : break;
16093 : }
16094 : default:;
16095 : }
16096 : }
16097 1411410 : switch (TREE_CODE (_q20))
16098 : {
16099 142380 : CASE_CONVERT:
16100 142380 : {
16101 142380 : tree _q30 = TREE_OPERAND (_q20, 0);
16102 142380 : switch (TREE_CODE (_q21))
16103 : {
16104 107146 : case INTEGER_CST:
16105 107146 : {
16106 107146 : switch (TREE_CODE (_p1))
16107 : {
16108 1328 : CASE_CONVERT:
16109 1328 : {
16110 1328 : tree _q60 = TREE_OPERAND (_p1, 0);
16111 1328 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
16112 : {
16113 8 : switch (TREE_CODE (_p2))
16114 : {
16115 8 : case INTEGER_CST:
16116 8 : {
16117 8 : {
16118 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16119 8 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
16120 8 : if (res) return res;
16121 : }
16122 8 : break;
16123 : }
16124 : default:;
16125 : }
16126 : }
16127 : break;
16128 : }
16129 107146 : default:;
16130 : }
16131 107146 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
16132 : {
16133 21 : switch (TREE_CODE (_p2))
16134 : {
16135 21 : case INTEGER_CST:
16136 21 : {
16137 21 : {
16138 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
16139 21 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
16140 21 : if (res) return res;
16141 : }
16142 21 : break;
16143 : }
16144 : default:;
16145 : }
16146 : }
16147 107146 : switch (TREE_CODE (_p1))
16148 : {
16149 365 : case PLUS_EXPR:
16150 365 : {
16151 365 : tree _q60 = TREE_OPERAND (_p1, 0);
16152 365 : tree _q61 = TREE_OPERAND (_p1, 1);
16153 365 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
16154 : {
16155 0 : switch (TREE_CODE (_q61))
16156 : {
16157 0 : case INTEGER_CST:
16158 0 : {
16159 0 : switch (TREE_CODE (_p2))
16160 : {
16161 0 : case INTEGER_CST:
16162 0 : {
16163 0 : {
16164 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
16165 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
16166 0 : if (res) return res;
16167 : }
16168 0 : break;
16169 : }
16170 : default:;
16171 : }
16172 : break;
16173 : }
16174 : default:;
16175 : }
16176 : }
16177 : break;
16178 : }
16179 950 : case MINUS_EXPR:
16180 950 : {
16181 950 : tree _q60 = TREE_OPERAND (_p1, 0);
16182 950 : tree _q61 = TREE_OPERAND (_p1, 1);
16183 950 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
16184 : {
16185 0 : switch (TREE_CODE (_q61))
16186 : {
16187 0 : case INTEGER_CST:
16188 0 : {
16189 0 : switch (TREE_CODE (_p2))
16190 : {
16191 0 : case INTEGER_CST:
16192 0 : {
16193 0 : {
16194 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
16195 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
16196 0 : if (res) return res;
16197 : }
16198 0 : break;
16199 : }
16200 : default:;
16201 : }
16202 : break;
16203 : }
16204 : default:;
16205 : }
16206 : }
16207 : break;
16208 : }
16209 : default:;
16210 : }
16211 : break;
16212 : }
16213 : default:;
16214 : }
16215 : break;
16216 : }
16217 1411410 : default:;
16218 : }
16219 1411410 : switch (TREE_CODE (_q21))
16220 : {
16221 1013315 : case INTEGER_CST:
16222 1013315 : {
16223 1013315 : switch (TREE_CODE (_p1))
16224 : {
16225 25863 : CASE_CONVERT:
16226 25863 : {
16227 25863 : tree _q50 = TREE_OPERAND (_p1, 0);
16228 25863 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16229 : {
16230 228 : switch (TREE_CODE (_p2))
16231 : {
16232 210 : case INTEGER_CST:
16233 210 : {
16234 210 : {
16235 210 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16236 210 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
16237 210 : if (res) return res;
16238 : }
16239 110 : break;
16240 : }
16241 : default:;
16242 : }
16243 : }
16244 : break;
16245 : }
16246 1013215 : default:;
16247 : }
16248 1013215 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
16249 : {
16250 291 : switch (TREE_CODE (_p2))
16251 : {
16252 254 : case INTEGER_CST:
16253 254 : {
16254 254 : {
16255 254 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
16256 254 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
16257 254 : if (res) return res;
16258 : }
16259 107 : break;
16260 : }
16261 : default:;
16262 : }
16263 : }
16264 1013068 : switch (TREE_CODE (_p1))
16265 : {
16266 3211 : case PLUS_EXPR:
16267 3211 : {
16268 3211 : tree _q50 = TREE_OPERAND (_p1, 0);
16269 3211 : tree _q51 = TREE_OPERAND (_p1, 1);
16270 3211 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16271 : {
16272 203 : switch (TREE_CODE (_q51))
16273 : {
16274 203 : case INTEGER_CST:
16275 203 : {
16276 203 : switch (TREE_CODE (_p2))
16277 : {
16278 184 : case INTEGER_CST:
16279 184 : {
16280 184 : {
16281 184 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
16282 184 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
16283 184 : if (res) return res;
16284 : }
16285 182 : break;
16286 : }
16287 : default:;
16288 : }
16289 : break;
16290 : }
16291 : default:;
16292 : }
16293 : }
16294 : break;
16295 : }
16296 7579 : case MINUS_EXPR:
16297 7579 : {
16298 7579 : tree _q50 = TREE_OPERAND (_p1, 0);
16299 7579 : tree _q51 = TREE_OPERAND (_p1, 1);
16300 7579 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16301 : {
16302 0 : switch (TREE_CODE (_q51))
16303 : {
16304 0 : case INTEGER_CST:
16305 0 : {
16306 0 : switch (TREE_CODE (_p2))
16307 : {
16308 0 : case INTEGER_CST:
16309 0 : {
16310 0 : {
16311 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
16312 0 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
16313 0 : if (res) return res;
16314 : }
16315 0 : break;
16316 : }
16317 : default:;
16318 : }
16319 : break;
16320 : }
16321 : default:;
16322 : }
16323 : }
16324 : break;
16325 : }
16326 : default:;
16327 : }
16328 : break;
16329 : }
16330 1411161 : default:;
16331 : }
16332 1411161 : switch (TREE_CODE (_p1))
16333 : {
16334 46 : case MIN_EXPR:
16335 46 : {
16336 46 : tree _q50 = TREE_OPERAND (_p1, 0);
16337 46 : tree _q51 = TREE_OPERAND (_p1, 1);
16338 46 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16339 : {
16340 1 : switch (TREE_CODE (_p2))
16341 : {
16342 0 : case MIN_EXPR:
16343 0 : {
16344 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16345 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16346 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16347 : {
16348 0 : {
16349 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
16350 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
16351 0 : if (res) return res;
16352 : }
16353 : }
16354 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16355 : {
16356 0 : {
16357 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
16358 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
16359 0 : if (res) return res;
16360 : }
16361 : }
16362 : break;
16363 : }
16364 : default:;
16365 : }
16366 : }
16367 46 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16368 : {
16369 10 : switch (TREE_CODE (_p2))
16370 : {
16371 9 : case MIN_EXPR:
16372 9 : {
16373 9 : tree _q80 = TREE_OPERAND (_p2, 0);
16374 9 : tree _q81 = TREE_OPERAND (_p2, 1);
16375 9 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16376 : {
16377 0 : {
16378 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
16379 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
16380 0 : if (res) return res;
16381 : }
16382 : }
16383 9 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16384 : {
16385 9 : {
16386 9 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
16387 9 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
16388 9 : if (res) return res;
16389 : }
16390 : }
16391 : break;
16392 : }
16393 : default:;
16394 : }
16395 : }
16396 45 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16397 : {
16398 1 : switch (TREE_CODE (_p2))
16399 : {
16400 0 : case MIN_EXPR:
16401 0 : {
16402 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16403 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16404 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16405 : {
16406 0 : {
16407 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
16408 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16409 0 : if (res) return res;
16410 : }
16411 : }
16412 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16413 : {
16414 0 : {
16415 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
16416 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16417 0 : if (res) return res;
16418 : }
16419 : }
16420 : break;
16421 : }
16422 1 : default:;
16423 : }
16424 1 : {
16425 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
16426 1 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16427 1 : if (res) return res;
16428 : }
16429 : }
16430 44 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16431 : {
16432 1 : switch (TREE_CODE (_p2))
16433 : {
16434 0 : case MIN_EXPR:
16435 0 : {
16436 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16437 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16438 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16439 : {
16440 0 : {
16441 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
16442 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16443 0 : if (res) return res;
16444 : }
16445 : }
16446 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16447 : {
16448 0 : {
16449 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16450 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16451 0 : if (res) return res;
16452 : }
16453 : }
16454 : break;
16455 : }
16456 1 : default:;
16457 : }
16458 1 : {
16459 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
16460 1 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
16461 1 : if (res) return res;
16462 : }
16463 : }
16464 : break;
16465 : }
16466 12 : case MAX_EXPR:
16467 12 : {
16468 12 : tree _q50 = TREE_OPERAND (_p1, 0);
16469 12 : tree _q51 = TREE_OPERAND (_p1, 1);
16470 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16471 : {
16472 0 : switch (TREE_CODE (_p2))
16473 : {
16474 0 : case MAX_EXPR:
16475 0 : {
16476 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16477 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16478 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16479 : {
16480 0 : {
16481 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
16482 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16483 0 : if (res) return res;
16484 : }
16485 : }
16486 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16487 : {
16488 0 : {
16489 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
16490 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16491 0 : if (res) return res;
16492 : }
16493 : }
16494 : break;
16495 : }
16496 0 : default:;
16497 : }
16498 0 : {
16499 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
16500 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16501 0 : if (res) return res;
16502 : }
16503 : }
16504 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16505 : {
16506 0 : switch (TREE_CODE (_p2))
16507 : {
16508 0 : case MAX_EXPR:
16509 0 : {
16510 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16511 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16512 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16513 : {
16514 0 : {
16515 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
16516 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16517 0 : if (res) return res;
16518 : }
16519 : }
16520 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16521 : {
16522 0 : {
16523 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
16524 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16525 0 : if (res) return res;
16526 : }
16527 : }
16528 : break;
16529 : }
16530 : default:;
16531 : }
16532 : }
16533 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16534 : {
16535 0 : switch (TREE_CODE (_p2))
16536 : {
16537 0 : case MAX_EXPR:
16538 0 : {
16539 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16540 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16541 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16542 : {
16543 0 : {
16544 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
16545 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16546 0 : if (res) return res;
16547 : }
16548 : }
16549 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16550 : {
16551 0 : {
16552 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
16553 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16554 0 : if (res) return res;
16555 : }
16556 : }
16557 : break;
16558 : }
16559 : default:;
16560 : }
16561 : }
16562 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16563 : {
16564 0 : switch (TREE_CODE (_p2))
16565 : {
16566 0 : case MAX_EXPR:
16567 0 : {
16568 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16569 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16570 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16571 : {
16572 0 : {
16573 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
16574 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16575 0 : if (res) return res;
16576 : }
16577 : }
16578 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16579 : {
16580 0 : {
16581 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16582 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16583 0 : if (res) return res;
16584 : }
16585 : }
16586 : break;
16587 : }
16588 : default:;
16589 : }
16590 : }
16591 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16592 : {
16593 0 : {
16594 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
16595 0 : tree res = generic_simplify_366 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
16596 0 : if (res) return res;
16597 : }
16598 : }
16599 : break;
16600 : }
16601 1411158 : default:;
16602 : }
16603 1411158 : if (integer_zerop (_q20))
16604 : {
16605 2 : {
16606 2 : tree _q21_pops[1];
16607 2 : if (tree_nop_convert (_q21, _q21_pops))
16608 : {
16609 0 : tree _q40 = _q21_pops[0];
16610 0 : switch (TREE_CODE (_p1))
16611 : {
16612 0 : case MAX_EXPR:
16613 0 : {
16614 0 : tree _q60 = TREE_OPERAND (_p1, 0);
16615 0 : tree _q61 = TREE_OPERAND (_p1, 1);
16616 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
16617 : {
16618 0 : switch (TREE_CODE (_q61))
16619 : {
16620 0 : case INTEGER_CST:
16621 0 : {
16622 0 : switch (TREE_CODE (_p2))
16623 : {
16624 0 : case INTEGER_CST:
16625 0 : {
16626 0 : {
16627 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
16628 0 : tree res = generic_simplify_367 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
16629 0 : if (res) return res;
16630 : }
16631 0 : break;
16632 : }
16633 : default:;
16634 : }
16635 : break;
16636 : }
16637 : default:;
16638 : }
16639 : }
16640 : break;
16641 : }
16642 : default:;
16643 : }
16644 : }
16645 : }
16646 : }
16647 1411158 : if (tree_expr_nonnegative_p (_q20))
16648 : {
16649 921175 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
16650 : {
16651 12 : switch (TREE_CODE (_p2))
16652 : {
16653 0 : case ABS_EXPR:
16654 0 : {
16655 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16656 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
16657 : {
16658 0 : {
16659 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
16660 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
16661 0 : if (res) return res;
16662 : }
16663 : }
16664 : break;
16665 : }
16666 : default:;
16667 : }
16668 : }
16669 921175 : switch (TREE_CODE (_p1))
16670 : {
16671 0 : case ABS_EXPR:
16672 0 : {
16673 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16674 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16675 : {
16676 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16677 : {
16678 0 : {
16679 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16680 0 : tree res = generic_simplify_370 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
16681 0 : if (res) return res;
16682 : }
16683 : }
16684 : }
16685 : break;
16686 : }
16687 : default:;
16688 : }
16689 : }
16690 : break;
16691 : }
16692 1798380 : case EQ_EXPR:
16693 1798380 : {
16694 1798380 : tree _q20 = TREE_OPERAND (_p0, 0);
16695 1798380 : tree _q21 = TREE_OPERAND (_p0, 1);
16696 1798380 : if (tree_zero_one_valued_p (_q20))
16697 : {
16698 171086 : if (integer_zerop (_q21))
16699 : {
16700 1216 : switch (TREE_CODE (_p2))
16701 : {
16702 1 : case BIT_XOR_EXPR:
16703 1 : {
16704 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16705 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16706 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16707 : {
16708 1 : {
16709 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16710 1 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16711 1 : if (res) return res;
16712 : }
16713 : }
16714 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16715 : {
16716 0 : {
16717 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16718 0 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16719 0 : if (res) return res;
16720 : }
16721 : }
16722 : break;
16723 : }
16724 2 : case BIT_IOR_EXPR:
16725 2 : {
16726 2 : tree _q60 = TREE_OPERAND (_p2, 0);
16727 2 : tree _q61 = TREE_OPERAND (_p2, 1);
16728 2 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16729 : {
16730 1 : {
16731 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16732 1 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16733 1 : if (res) return res;
16734 : }
16735 : }
16736 1 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16737 : {
16738 1 : {
16739 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16740 1 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16741 1 : if (res) return res;
16742 : }
16743 : }
16744 : break;
16745 : }
16746 1 : case PLUS_EXPR:
16747 1 : {
16748 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16749 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16750 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16751 : {
16752 1 : {
16753 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16754 1 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16755 1 : if (res) return res;
16756 : }
16757 : }
16758 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16759 : {
16760 0 : {
16761 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16762 0 : tree res = generic_simplify_371 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16763 0 : if (res) return res;
16764 : }
16765 : }
16766 : break;
16767 : }
16768 : default:;
16769 : }
16770 : }
16771 : }
16772 1798376 : if (integer_zerop (_q21))
16773 : {
16774 588801 : switch (TREE_CODE (_p2))
16775 : {
16776 24747 : case PLUS_EXPR:
16777 24747 : {
16778 24747 : tree _q60 = TREE_OPERAND (_p2, 0);
16779 24747 : tree _q61 = TREE_OPERAND (_p2, 1);
16780 24747 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16781 : {
16782 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16783 : {
16784 0 : {
16785 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16786 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16787 0 : if (res) return res;
16788 : }
16789 : }
16790 : }
16791 24747 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16792 : {
16793 2010 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16794 : {
16795 0 : {
16796 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16797 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16798 0 : if (res) return res;
16799 : }
16800 : }
16801 : }
16802 : break;
16803 : }
16804 109 : case BIT_IOR_EXPR:
16805 109 : {
16806 109 : tree _q60 = TREE_OPERAND (_p2, 0);
16807 109 : tree _q61 = TREE_OPERAND (_p2, 1);
16808 109 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16809 : {
16810 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16811 : {
16812 0 : {
16813 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16814 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16815 0 : if (res) return res;
16816 : }
16817 : }
16818 : }
16819 109 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16820 : {
16821 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16822 : {
16823 0 : {
16824 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16825 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16826 0 : if (res) return res;
16827 : }
16828 : }
16829 : }
16830 : break;
16831 : }
16832 0 : case BIT_XOR_EXPR:
16833 0 : {
16834 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16835 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16836 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16837 : {
16838 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16839 : {
16840 0 : {
16841 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16842 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16843 0 : if (res) return res;
16844 : }
16845 : }
16846 : }
16847 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
16848 : {
16849 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16850 : {
16851 0 : {
16852 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16853 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16854 0 : if (res) return res;
16855 : }
16856 : }
16857 : }
16858 : break;
16859 : }
16860 1 : case LROTATE_EXPR:
16861 1 : {
16862 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16863 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16864 1 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16865 : {
16866 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16867 : {
16868 1 : {
16869 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16870 1 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16871 1 : if (res) return res;
16872 : }
16873 : }
16874 : }
16875 : break;
16876 : }
16877 0 : case RROTATE_EXPR:
16878 0 : {
16879 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16880 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16881 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16882 : {
16883 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16884 : {
16885 0 : {
16886 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16887 0 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16888 0 : if (res) return res;
16889 : }
16890 : }
16891 : }
16892 : break;
16893 : }
16894 8454 : case LSHIFT_EXPR:
16895 8454 : {
16896 8454 : tree _q60 = TREE_OPERAND (_p2, 0);
16897 8454 : tree _q61 = TREE_OPERAND (_p2, 1);
16898 8454 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16899 : {
16900 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16901 : {
16902 0 : {
16903 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16904 0 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16905 0 : if (res) return res;
16906 : }
16907 : }
16908 : }
16909 : break;
16910 : }
16911 46 : case RSHIFT_EXPR:
16912 46 : {
16913 46 : tree _q60 = TREE_OPERAND (_p2, 0);
16914 46 : tree _q61 = TREE_OPERAND (_p2, 1);
16915 46 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16916 : {
16917 20 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16918 : {
16919 20 : {
16920 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16921 20 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16922 20 : if (res) return res;
16923 : }
16924 : }
16925 : }
16926 : break;
16927 : }
16928 198 : case MINUS_EXPR:
16929 198 : {
16930 198 : tree _q60 = TREE_OPERAND (_p2, 0);
16931 198 : tree _q61 = TREE_OPERAND (_p2, 1);
16932 198 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16933 : {
16934 7 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16935 : {
16936 0 : {
16937 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16938 0 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16939 0 : if (res) return res;
16940 : }
16941 : }
16942 : }
16943 : break;
16944 : }
16945 158621 : case POINTER_PLUS_EXPR:
16946 158621 : {
16947 158621 : tree _q60 = TREE_OPERAND (_p2, 0);
16948 158621 : tree _q61 = TREE_OPERAND (_p2, 1);
16949 158621 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16950 : {
16951 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16952 : {
16953 0 : {
16954 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16955 0 : tree res = generic_simplify_373 (loc, type, _p0, _p1, _p2, captures);
16956 0 : if (res) return res;
16957 : }
16958 : }
16959 : }
16960 : break;
16961 : }
16962 : default:;
16963 : }
16964 : }
16965 1798355 : if (integer_onep (_q21))
16966 : {
16967 49521 : switch (TREE_CODE (_p2))
16968 : {
16969 107 : case TRUNC_DIV_EXPR:
16970 107 : {
16971 107 : tree _q60 = TREE_OPERAND (_p2, 0);
16972 107 : tree _q61 = TREE_OPERAND (_p2, 1);
16973 107 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16974 : {
16975 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16976 : {
16977 0 : {
16978 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16979 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
16980 0 : if (res) return res;
16981 : }
16982 : }
16983 : }
16984 : break;
16985 : }
16986 0 : case CEIL_DIV_EXPR:
16987 0 : {
16988 0 : tree _q60 = TREE_OPERAND (_p2, 0);
16989 0 : tree _q61 = TREE_OPERAND (_p2, 1);
16990 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16991 : {
16992 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16993 : {
16994 0 : {
16995 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
16996 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
16997 0 : if (res) return res;
16998 : }
16999 : }
17000 : }
17001 : break;
17002 : }
17003 0 : case FLOOR_DIV_EXPR:
17004 0 : {
17005 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17006 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17007 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17008 : {
17009 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17010 : {
17011 0 : {
17012 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17013 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
17014 0 : if (res) return res;
17015 : }
17016 : }
17017 : }
17018 : break;
17019 : }
17020 0 : case ROUND_DIV_EXPR:
17021 0 : {
17022 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17023 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17024 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17025 : {
17026 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17027 : {
17028 0 : {
17029 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17030 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
17031 0 : if (res) return res;
17032 : }
17033 : }
17034 : }
17035 : break;
17036 : }
17037 0 : case EXACT_DIV_EXPR:
17038 0 : {
17039 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17040 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17041 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17042 : {
17043 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17044 : {
17045 0 : {
17046 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17047 0 : tree res = generic_simplify_374 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
17048 0 : if (res) return res;
17049 : }
17050 : }
17051 : }
17052 : break;
17053 : }
17054 0 : case MULT_EXPR:
17055 0 : {
17056 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17057 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17058 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17059 : {
17060 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17061 : {
17062 0 : {
17063 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17064 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17065 0 : if (res) return res;
17066 : }
17067 : }
17068 : }
17069 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17070 : {
17071 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17072 : {
17073 0 : {
17074 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17075 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17076 0 : if (res) return res;
17077 : }
17078 : }
17079 : }
17080 : break;
17081 : }
17082 : default:;
17083 : }
17084 : }
17085 1798355 : if (integer_all_onesp (_q21))
17086 : {
17087 51094 : switch (TREE_CODE (_p2))
17088 : {
17089 0 : case BIT_AND_EXPR:
17090 0 : {
17091 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17092 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17093 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17094 : {
17095 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17096 : {
17097 0 : {
17098 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17099 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17100 0 : if (res) return res;
17101 : }
17102 : }
17103 : }
17104 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17105 : {
17106 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17107 : {
17108 0 : {
17109 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17110 0 : tree res = generic_simplify_376 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17111 0 : if (res) return res;
17112 : }
17113 : }
17114 : }
17115 : break;
17116 : }
17117 : default:;
17118 : }
17119 : }
17120 1798355 : switch (TREE_CODE (_q20))
17121 : {
17122 115317 : case BIT_AND_EXPR:
17123 115317 : {
17124 115317 : tree _q30 = TREE_OPERAND (_q20, 0);
17125 115317 : tree _q31 = TREE_OPERAND (_q20, 1);
17126 115317 : switch (TREE_CODE (_q31))
17127 : {
17128 115055 : case INTEGER_CST:
17129 115055 : {
17130 115055 : if (integer_zerop (_q21))
17131 : {
17132 1794 : switch (TREE_CODE (_p1))
17133 : {
17134 0 : case BIT_IOR_EXPR:
17135 0 : {
17136 0 : tree _q70 = TREE_OPERAND (_p1, 0);
17137 0 : tree _q71 = TREE_OPERAND (_p1, 1);
17138 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
17139 : {
17140 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
17141 : {
17142 0 : switch (TREE_CODE (_q71))
17143 : {
17144 0 : case INTEGER_CST:
17145 0 : {
17146 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17147 : {
17148 0 : {
17149 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
17150 0 : if (wi::popcount (wi::to_wide (captures[1])) == 1
17151 : )
17152 : {
17153 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
17154 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1913;
17155 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
17156 0 : {
17157 0 : tree _r;
17158 0 : _r = captures[2];
17159 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
17160 : return _r;
17161 : }
17162 115317 : next_after_fail1913:;
17163 : }
17164 : }
17165 : }
17166 : break;
17167 : }
17168 : default:;
17169 : }
17170 : }
17171 : }
17172 : break;
17173 : }
17174 : default:;
17175 : }
17176 : }
17177 : break;
17178 : }
17179 0 : case LSHIFT_EXPR:
17180 0 : {
17181 0 : tree _q50 = TREE_OPERAND (_q31, 0);
17182 0 : tree _q51 = TREE_OPERAND (_q31, 1);
17183 0 : if (integer_onep (_q50))
17184 : {
17185 0 : if (integer_zerop (_q21))
17186 : {
17187 0 : switch (TREE_CODE (_p1))
17188 : {
17189 0 : case BIT_IOR_EXPR:
17190 0 : {
17191 0 : tree _q90 = TREE_OPERAND (_p1, 0);
17192 0 : tree _q91 = TREE_OPERAND (_p1, 1);
17193 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
17194 : {
17195 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
17196 : {
17197 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17198 : {
17199 0 : {
17200 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p1 };
17201 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17202 0 : if (res) return res;
17203 : }
17204 : }
17205 : }
17206 : }
17207 0 : if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
17208 : {
17209 0 : if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
17210 : {
17211 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17212 : {
17213 0 : {
17214 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p1 };
17215 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17216 0 : if (res) return res;
17217 : }
17218 : }
17219 : }
17220 : }
17221 : break;
17222 : }
17223 : default:;
17224 : }
17225 : }
17226 : }
17227 : break;
17228 : }
17229 115317 : default:;
17230 : }
17231 115317 : switch (TREE_CODE (_q30))
17232 : {
17233 0 : case LSHIFT_EXPR:
17234 0 : {
17235 0 : tree _q40 = TREE_OPERAND (_q30, 0);
17236 0 : tree _q41 = TREE_OPERAND (_q30, 1);
17237 0 : if (integer_onep (_q40))
17238 : {
17239 0 : if (integer_zerop (_q21))
17240 : {
17241 0 : switch (TREE_CODE (_p1))
17242 : {
17243 0 : case BIT_IOR_EXPR:
17244 0 : {
17245 0 : tree _q90 = TREE_OPERAND (_p1, 0);
17246 0 : tree _q91 = TREE_OPERAND (_p1, 1);
17247 0 : if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
17248 : {
17249 0 : if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
17250 : {
17251 0 : if ((_p2 == _q31 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q31, 0) && types_match (_p2, _q31)))
17252 : {
17253 0 : {
17254 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p1 };
17255 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17256 0 : if (res) return res;
17257 : }
17258 : }
17259 : }
17260 : }
17261 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
17262 : {
17263 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
17264 : {
17265 0 : if ((_p2 == _q31 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q31, 0) && types_match (_p2, _q31)))
17266 : {
17267 0 : {
17268 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p1 };
17269 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17270 0 : if (res) return res;
17271 : }
17272 : }
17273 : }
17274 : }
17275 : break;
17276 : }
17277 0 : default:;
17278 : }
17279 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
17280 : {
17281 0 : switch (TREE_CODE (_p2))
17282 : {
17283 0 : case BIT_IOR_EXPR:
17284 0 : {
17285 0 : tree _q100 = TREE_OPERAND (_p2, 0);
17286 0 : tree _q101 = TREE_OPERAND (_p2, 1);
17287 0 : if ((_q100 == _q31 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q31, 0) && types_match (_q100, _q31)))
17288 : {
17289 0 : if ((_q101 == _q30 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q30, 0) && types_match (_q101, _q30)))
17290 : {
17291 0 : {
17292 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p2 };
17293 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17294 0 : if (res) return res;
17295 : }
17296 : }
17297 : }
17298 0 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
17299 : {
17300 0 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
17301 : {
17302 0 : {
17303 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p2 };
17304 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17305 0 : if (res) return res;
17306 : }
17307 : }
17308 : }
17309 : break;
17310 : }
17311 : default:;
17312 : }
17313 : }
17314 : }
17315 : }
17316 : break;
17317 : }
17318 115317 : default:;
17319 : }
17320 115317 : switch (TREE_CODE (_q31))
17321 : {
17322 0 : case LSHIFT_EXPR:
17323 0 : {
17324 0 : tree _q50 = TREE_OPERAND (_q31, 0);
17325 0 : tree _q51 = TREE_OPERAND (_q31, 1);
17326 0 : if (integer_onep (_q50))
17327 : {
17328 0 : if (integer_zerop (_q21))
17329 : {
17330 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
17331 : {
17332 0 : switch (TREE_CODE (_p2))
17333 : {
17334 0 : case BIT_IOR_EXPR:
17335 0 : {
17336 0 : tree _q100 = TREE_OPERAND (_p2, 0);
17337 0 : tree _q101 = TREE_OPERAND (_p2, 1);
17338 0 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
17339 : {
17340 0 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
17341 : {
17342 0 : {
17343 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p2 };
17344 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17345 0 : if (res) return res;
17346 : }
17347 : }
17348 : }
17349 0 : if ((_q100 == _q31 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q31, 0) && types_match (_q100, _q31)))
17350 : {
17351 0 : if ((_q101 == _q30 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q30, 0) && types_match (_q101, _q30)))
17352 : {
17353 0 : {
17354 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p2 };
17355 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17356 0 : if (res) return res;
17357 : }
17358 : }
17359 : }
17360 : break;
17361 : }
17362 : default:;
17363 : }
17364 : }
17365 : }
17366 : }
17367 : break;
17368 : }
17369 115317 : default:;
17370 : }
17371 115317 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
17372 : {
17373 59 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
17374 : {
17375 2 : switch (TREE_CODE (_p2))
17376 : {
17377 2 : case BIT_IOR_EXPR:
17378 2 : {
17379 2 : tree _q80 = TREE_OPERAND (_p2, 0);
17380 2 : tree _q81 = TREE_OPERAND (_p2, 1);
17381 2 : if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
17382 : {
17383 2 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
17384 : {
17385 2 : {
17386 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p2 };
17387 2 : tree res = generic_simplify_379 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17388 2 : if (res) return res;
17389 : }
17390 : }
17391 : }
17392 : break;
17393 : }
17394 : default:;
17395 : }
17396 : }
17397 : }
17398 : break;
17399 : }
17400 1798353 : default:;
17401 : }
17402 1798353 : switch (TREE_CODE (_q21))
17403 : {
17404 0 : case BIT_AND_EXPR:
17405 0 : {
17406 0 : tree _q40 = TREE_OPERAND (_q21, 0);
17407 0 : tree _q41 = TREE_OPERAND (_q21, 1);
17408 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
17409 : {
17410 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
17411 : {
17412 0 : switch (TREE_CODE (_p2))
17413 : {
17414 0 : case BIT_IOR_EXPR:
17415 0 : {
17416 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17417 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17418 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
17419 : {
17420 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
17421 : {
17422 0 : {
17423 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p2 };
17424 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17425 0 : if (res) return res;
17426 : }
17427 : }
17428 : }
17429 : break;
17430 : }
17431 : default:;
17432 : }
17433 : }
17434 : }
17435 : break;
17436 : }
17437 1798353 : default:;
17438 : }
17439 1798353 : switch (TREE_CODE (_q20))
17440 : {
17441 115315 : case BIT_AND_EXPR:
17442 115315 : {
17443 115315 : tree _q30 = TREE_OPERAND (_q20, 0);
17444 115315 : tree _q31 = TREE_OPERAND (_q20, 1);
17445 115315 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
17446 : {
17447 57 : switch (TREE_CODE (_p1))
17448 : {
17449 1 : case BIT_IOR_EXPR:
17450 1 : {
17451 1 : tree _q70 = TREE_OPERAND (_p1, 0);
17452 1 : tree _q71 = TREE_OPERAND (_p1, 1);
17453 1 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
17454 : {
17455 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
17456 : {
17457 1 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17458 : {
17459 1 : {
17460 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
17461 1 : tree res = generic_simplify_380 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17462 1 : if (res) return res;
17463 : }
17464 : }
17465 : }
17466 : }
17467 : break;
17468 : }
17469 : default:;
17470 : }
17471 : }
17472 : break;
17473 : }
17474 1798352 : default:;
17475 : }
17476 1798352 : switch (TREE_CODE (_q21))
17477 : {
17478 0 : case BIT_AND_EXPR:
17479 0 : {
17480 0 : tree _q40 = TREE_OPERAND (_q21, 0);
17481 0 : tree _q41 = TREE_OPERAND (_q21, 1);
17482 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
17483 : {
17484 0 : switch (TREE_CODE (_p1))
17485 : {
17486 0 : case BIT_IOR_EXPR:
17487 0 : {
17488 0 : tree _q70 = TREE_OPERAND (_p1, 0);
17489 0 : tree _q71 = TREE_OPERAND (_p1, 1);
17490 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
17491 : {
17492 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
17493 : {
17494 0 : if ((_p2 == _q40 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q40, 0) && types_match (_p2, _q40)))
17495 : {
17496 0 : {
17497 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
17498 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17499 0 : if (res) return res;
17500 : }
17501 : }
17502 : }
17503 : }
17504 : break;
17505 : }
17506 : default:;
17507 : }
17508 : }
17509 : break;
17510 : }
17511 1798352 : default:;
17512 : }
17513 1798352 : switch (TREE_CODE (_q20))
17514 : {
17515 69308 : CASE_CONVERT:
17516 69308 : {
17517 69308 : tree _q30 = TREE_OPERAND (_q20, 0);
17518 69308 : switch (TREE_CODE (_q21))
17519 : {
17520 26897 : case INTEGER_CST:
17521 26897 : {
17522 26897 : switch (TREE_CODE (_p1))
17523 : {
17524 12871 : CASE_CONVERT:
17525 12871 : {
17526 12871 : tree _q60 = TREE_OPERAND (_p1, 0);
17527 12871 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17528 : {
17529 57 : switch (TREE_CODE (_p2))
17530 : {
17531 56 : case INTEGER_CST:
17532 56 : {
17533 56 : {
17534 56 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17535 56 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17536 56 : if (res) return res;
17537 : }
17538 56 : break;
17539 : }
17540 : default:;
17541 : }
17542 : }
17543 : break;
17544 : }
17545 26897 : default:;
17546 : }
17547 26897 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
17548 : {
17549 118 : switch (TREE_CODE (_p2))
17550 : {
17551 112 : case INTEGER_CST:
17552 112 : {
17553 112 : {
17554 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17555 112 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17556 112 : if (res) return res;
17557 : }
17558 112 : break;
17559 : }
17560 : default:;
17561 : }
17562 : }
17563 : break;
17564 : }
17565 : default:;
17566 : }
17567 : break;
17568 : }
17569 1798352 : default:;
17570 : }
17571 1798352 : switch (TREE_CODE (_q21))
17572 : {
17573 945082 : case INTEGER_CST:
17574 945082 : {
17575 945082 : switch (TREE_CODE (_p1))
17576 : {
17577 216899 : CASE_CONVERT:
17578 216899 : {
17579 216899 : tree _q50 = TREE_OPERAND (_p1, 0);
17580 216899 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17581 : {
17582 324 : switch (TREE_CODE (_p2))
17583 : {
17584 7 : case INTEGER_CST:
17585 7 : {
17586 7 : {
17587 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17588 7 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17589 7 : if (res) return res;
17590 : }
17591 0 : break;
17592 : }
17593 : default:;
17594 : }
17595 : }
17596 : break;
17597 : }
17598 945075 : default:;
17599 : }
17600 945075 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17601 : {
17602 61 : switch (TREE_CODE (_p2))
17603 : {
17604 5 : case INTEGER_CST:
17605 5 : {
17606 5 : {
17607 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17608 5 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17609 5 : if (res) return res;
17610 : }
17611 0 : break;
17612 : }
17613 : default:;
17614 : }
17615 : }
17616 : break;
17617 : }
17618 1798340 : default:;
17619 : }
17620 1798340 : if (tree_expr_nonnegative_p (_q21))
17621 : {
17622 1635929 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17623 : {
17624 83 : switch (TREE_CODE (_p2))
17625 : {
17626 0 : case ABS_EXPR:
17627 0 : {
17628 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17629 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17630 : {
17631 0 : {
17632 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17633 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17634 0 : if (res) return res;
17635 : }
17636 : }
17637 : break;
17638 : }
17639 : default:;
17640 : }
17641 : }
17642 : }
17643 1798340 : if (tree_expr_nonnegative_p (_q20))
17644 : {
17645 1089316 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17646 : {
17647 28546 : switch (TREE_CODE (_p2))
17648 : {
17649 0 : case ABS_EXPR:
17650 0 : {
17651 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17652 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17653 : {
17654 0 : {
17655 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17656 0 : tree res = generic_simplify_369 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17657 0 : if (res) return res;
17658 : }
17659 : }
17660 : break;
17661 : }
17662 : default:;
17663 : }
17664 : }
17665 1089316 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17666 : {
17667 25 : switch (TREE_CODE (_p2))
17668 : {
17669 0 : case ABS_EXPR:
17670 0 : {
17671 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17672 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17673 : {
17674 0 : {
17675 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17676 0 : tree res = generic_simplify_381 (loc, type, _p0, _p1, _p2, captures);
17677 0 : if (res) return res;
17678 : }
17679 : }
17680 : break;
17681 : }
17682 : default:;
17683 : }
17684 : }
17685 : }
17686 1798340 : if (tree_expr_nonnegative_p (_q21))
17687 : {
17688 1635929 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17689 : {
17690 28918 : switch (TREE_CODE (_p2))
17691 : {
17692 0 : case ABS_EXPR:
17693 0 : {
17694 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17695 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17696 : {
17697 0 : {
17698 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17699 0 : tree res = generic_simplify_381 (loc, type, _p0, _p1, _p2, captures);
17700 0 : if (res) return res;
17701 : }
17702 : }
17703 : break;
17704 : }
17705 : default:;
17706 : }
17707 : }
17708 : }
17709 : break;
17710 : }
17711 2997100 : case NE_EXPR:
17712 2997100 : {
17713 2997100 : tree _q20 = TREE_OPERAND (_p0, 0);
17714 2997100 : tree _q21 = TREE_OPERAND (_p0, 1);
17715 2997100 : if (tree_zero_one_valued_p (_q20))
17716 : {
17717 165409 : if (integer_zerop (_q21))
17718 : {
17719 163633 : switch (TREE_CODE (_p1))
17720 : {
17721 5 : case BIT_XOR_EXPR:
17722 5 : {
17723 5 : tree _q50 = TREE_OPERAND (_p1, 0);
17724 5 : tree _q51 = TREE_OPERAND (_p1, 1);
17725 5 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
17726 : {
17727 1 : {
17728 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
17729 1 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
17730 1 : if (res) return res;
17731 : }
17732 : }
17733 4 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
17734 : {
17735 4 : {
17736 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
17737 4 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
17738 4 : if (res) return res;
17739 : }
17740 : }
17741 : break;
17742 : }
17743 2 : case BIT_IOR_EXPR:
17744 2 : {
17745 2 : tree _q50 = TREE_OPERAND (_p1, 0);
17746 2 : tree _q51 = TREE_OPERAND (_p1, 1);
17747 2 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
17748 : {
17749 1 : {
17750 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
17751 1 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17752 1 : if (res) return res;
17753 : }
17754 : }
17755 1 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
17756 : {
17757 1 : {
17758 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
17759 1 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17760 1 : if (res) return res;
17761 : }
17762 : }
17763 : break;
17764 : }
17765 110 : case PLUS_EXPR:
17766 110 : {
17767 110 : tree _q50 = TREE_OPERAND (_p1, 0);
17768 110 : tree _q51 = TREE_OPERAND (_p1, 1);
17769 110 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
17770 : {
17771 8 : {
17772 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
17773 8 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
17774 8 : if (res) return res;
17775 : }
17776 : }
17777 109 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
17778 : {
17779 1 : {
17780 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
17781 1 : tree res = generic_simplify_382 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
17782 1 : if (res) return res;
17783 : }
17784 : }
17785 : break;
17786 : }
17787 : default:;
17788 : }
17789 : }
17790 : }
17791 2997091 : if (integer_zerop (_q21))
17792 : {
17793 1985693 : switch (TREE_CODE (_p1))
17794 : {
17795 96 : case TRUNC_DIV_EXPR:
17796 96 : {
17797 96 : tree _q50 = TREE_OPERAND (_p1, 0);
17798 96 : tree _q51 = TREE_OPERAND (_p1, 1);
17799 96 : if (integer_zerop (_p2))
17800 : {
17801 58 : {
17802 58 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17803 58 : tree res = generic_simplify_383 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
17804 58 : if (res) return res;
17805 : }
17806 : }
17807 : break;
17808 : }
17809 0 : case CEIL_DIV_EXPR:
17810 0 : {
17811 0 : tree _q50 = TREE_OPERAND (_p1, 0);
17812 0 : tree _q51 = TREE_OPERAND (_p1, 1);
17813 0 : if (integer_zerop (_p2))
17814 : {
17815 0 : {
17816 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17817 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
17818 0 : if (res) return res;
17819 : }
17820 : }
17821 : break;
17822 : }
17823 0 : case FLOOR_DIV_EXPR:
17824 0 : {
17825 0 : tree _q50 = TREE_OPERAND (_p1, 0);
17826 0 : tree _q51 = TREE_OPERAND (_p1, 1);
17827 0 : if (integer_zerop (_p2))
17828 : {
17829 0 : {
17830 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17831 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
17832 0 : if (res) return res;
17833 : }
17834 : }
17835 : break;
17836 : }
17837 0 : case ROUND_DIV_EXPR:
17838 0 : {
17839 0 : tree _q50 = TREE_OPERAND (_p1, 0);
17840 0 : tree _q51 = TREE_OPERAND (_p1, 1);
17841 0 : if (integer_zerop (_p2))
17842 : {
17843 0 : {
17844 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17845 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
17846 0 : if (res) return res;
17847 : }
17848 : }
17849 : break;
17850 : }
17851 31 : case EXACT_DIV_EXPR:
17852 31 : {
17853 31 : tree _q50 = TREE_OPERAND (_p1, 0);
17854 31 : tree _q51 = TREE_OPERAND (_p1, 1);
17855 31 : if (integer_zerop (_p2))
17856 : {
17857 0 : {
17858 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17859 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
17860 0 : if (res) return res;
17861 : }
17862 : }
17863 : break;
17864 : }
17865 618 : case MULT_EXPR:
17866 618 : {
17867 618 : tree _q50 = TREE_OPERAND (_p1, 0);
17868 618 : tree _q51 = TREE_OPERAND (_p1, 1);
17869 618 : if (integer_zerop (_p2))
17870 : {
17871 40 : {
17872 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17873 40 : tree res = generic_simplify_384 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17874 40 : if (res) return res;
17875 : }
17876 40 : {
17877 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
17878 40 : tree res = generic_simplify_384 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17879 40 : if (res) return res;
17880 : }
17881 : }
17882 : break;
17883 : }
17884 288 : case BIT_AND_EXPR:
17885 288 : {
17886 288 : tree _q50 = TREE_OPERAND (_p1, 0);
17887 288 : tree _q51 = TREE_OPERAND (_p1, 1);
17888 288 : if (integer_zerop (_p2))
17889 : {
17890 62 : {
17891 62 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
17892 62 : tree res = generic_simplify_384 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17893 62 : if (res) return res;
17894 : }
17895 62 : {
17896 62 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
17897 62 : tree res = generic_simplify_384 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17898 62 : if (res) return res;
17899 : }
17900 : }
17901 : break;
17902 : }
17903 : default:;
17904 : }
17905 : }
17906 2997089 : if (uniform_integer_cst_p (_q21))
17907 : {
17908 2303895 : switch (TREE_CODE (_p1))
17909 : {
17910 132928 : case PLUS_EXPR:
17911 132928 : {
17912 132928 : tree _q50 = TREE_OPERAND (_p1, 0);
17913 132928 : tree _q51 = TREE_OPERAND (_p1, 1);
17914 132928 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17915 : {
17916 2628 : if (uniform_integer_cst_p (_q51))
17917 : {
17918 2628 : if (uniform_integer_cst_p (_p2))
17919 : {
17920 2624 : {
17921 2624 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
17922 2624 : {
17923 2624 : tree cst1 = uniform_integer_cst_p (captures[1]);
17924 2624 : tree cst2 = uniform_integer_cst_p (captures[3]);
17925 2624 : tree cst3 = uniform_integer_cst_p (captures[4]);
17926 2624 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
17927 : )
17928 : {
17929 10 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1914;
17930 10 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1914;
17931 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
17932 10 : {
17933 10 : tree _r;
17934 10 : _r = captures[2];
17935 10 : if (TREE_SIDE_EFFECTS (captures[1]))
17936 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
17937 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
17938 : return _r;
17939 : }
17940 2997079 : next_after_fail1914:;
17941 : }
17942 : }
17943 : }
17944 : }
17945 : }
17946 : }
17947 : break;
17948 : }
17949 : default:;
17950 : }
17951 : }
17952 2997079 : switch (TREE_CODE (_q20))
17953 : {
17954 284815 : case BIT_AND_EXPR:
17955 284815 : {
17956 284815 : tree _q30 = TREE_OPERAND (_q20, 0);
17957 284815 : tree _q31 = TREE_OPERAND (_q20, 1);
17958 284815 : switch (TREE_CODE (_q31))
17959 : {
17960 214276 : case INTEGER_CST:
17961 214276 : {
17962 214276 : if (integer_zerop (_q21))
17963 : {
17964 214263 : switch (TREE_CODE (_p1))
17965 : {
17966 54 : case BIT_AND_EXPR:
17967 54 : {
17968 54 : tree _q70 = TREE_OPERAND (_p1, 0);
17969 54 : tree _q71 = TREE_OPERAND (_p1, 1);
17970 54 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
17971 : {
17972 18 : switch (TREE_CODE (_q71))
17973 : {
17974 18 : case INTEGER_CST:
17975 18 : {
17976 18 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17977 : {
17978 0 : {
17979 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _p1, _q71 };
17980 0 : if (wi::to_wide (captures[3]) == ~wi::to_wide (captures[1])
17981 : )
17982 : {
17983 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
17984 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1915;
17985 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
17986 0 : {
17987 0 : tree _r;
17988 0 : _r = captures[2];
17989 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
17990 : return _r;
17991 : }
17992 284815 : next_after_fail1915:;
17993 : }
17994 : }
17995 : }
17996 : break;
17997 : }
17998 : default:;
17999 : }
18000 : }
18001 : break;
18002 : }
18003 : default:;
18004 : }
18005 : }
18006 : break;
18007 : }
18008 0 : case LSHIFT_EXPR:
18009 0 : {
18010 0 : tree _q50 = TREE_OPERAND (_q31, 0);
18011 0 : tree _q51 = TREE_OPERAND (_q31, 1);
18012 0 : if (integer_onep (_q50))
18013 : {
18014 0 : if (integer_zerop (_q21))
18015 : {
18016 0 : switch (TREE_CODE (_p1))
18017 : {
18018 0 : case BIT_IOR_EXPR:
18019 0 : {
18020 0 : tree _q90 = TREE_OPERAND (_p1, 0);
18021 0 : tree _q91 = TREE_OPERAND (_p1, 1);
18022 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
18023 : {
18024 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
18025 : {
18026 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18027 : {
18028 0 : {
18029 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p1 };
18030 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18031 0 : if (res) return res;
18032 : }
18033 : }
18034 : }
18035 : }
18036 0 : if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
18037 : {
18038 0 : if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
18039 : {
18040 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18041 : {
18042 0 : {
18043 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p1 };
18044 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18045 0 : if (res) return res;
18046 : }
18047 : }
18048 : }
18049 : }
18050 : break;
18051 : }
18052 : default:;
18053 : }
18054 : }
18055 : }
18056 : break;
18057 : }
18058 284815 : default:;
18059 : }
18060 284815 : switch (TREE_CODE (_q30))
18061 : {
18062 2 : case LSHIFT_EXPR:
18063 2 : {
18064 2 : tree _q40 = TREE_OPERAND (_q30, 0);
18065 2 : tree _q41 = TREE_OPERAND (_q30, 1);
18066 2 : if (integer_onep (_q40))
18067 : {
18068 0 : if (integer_zerop (_q21))
18069 : {
18070 0 : switch (TREE_CODE (_p1))
18071 : {
18072 0 : case BIT_IOR_EXPR:
18073 0 : {
18074 0 : tree _q90 = TREE_OPERAND (_p1, 0);
18075 0 : tree _q91 = TREE_OPERAND (_p1, 1);
18076 0 : if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
18077 : {
18078 0 : if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
18079 : {
18080 0 : if ((_p2 == _q31 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q31, 0) && types_match (_p2, _q31)))
18081 : {
18082 0 : {
18083 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p1 };
18084 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18085 0 : if (res) return res;
18086 : }
18087 : }
18088 : }
18089 : }
18090 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
18091 : {
18092 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
18093 : {
18094 0 : if ((_p2 == _q31 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q31, 0) && types_match (_p2, _q31)))
18095 : {
18096 0 : {
18097 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p1 };
18098 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18099 0 : if (res) return res;
18100 : }
18101 : }
18102 : }
18103 : }
18104 : break;
18105 : }
18106 0 : default:;
18107 : }
18108 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
18109 : {
18110 0 : switch (TREE_CODE (_p2))
18111 : {
18112 0 : case BIT_IOR_EXPR:
18113 0 : {
18114 0 : tree _q100 = TREE_OPERAND (_p2, 0);
18115 0 : tree _q101 = TREE_OPERAND (_p2, 1);
18116 0 : if ((_q100 == _q31 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q31, 0) && types_match (_q100, _q31)))
18117 : {
18118 0 : if ((_q101 == _q30 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q30, 0) && types_match (_q101, _q30)))
18119 : {
18120 0 : {
18121 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p2 };
18122 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18123 0 : if (res) return res;
18124 : }
18125 : }
18126 : }
18127 0 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
18128 : {
18129 0 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
18130 : {
18131 0 : {
18132 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q41, _p2 };
18133 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18134 0 : if (res) return res;
18135 : }
18136 : }
18137 : }
18138 : break;
18139 : }
18140 : default:;
18141 : }
18142 : }
18143 : }
18144 : }
18145 : break;
18146 : }
18147 284815 : default:;
18148 : }
18149 284815 : switch (TREE_CODE (_q31))
18150 : {
18151 0 : case LSHIFT_EXPR:
18152 0 : {
18153 0 : tree _q50 = TREE_OPERAND (_q31, 0);
18154 0 : tree _q51 = TREE_OPERAND (_q31, 1);
18155 0 : if (integer_onep (_q50))
18156 : {
18157 0 : if (integer_zerop (_q21))
18158 : {
18159 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
18160 : {
18161 0 : switch (TREE_CODE (_p2))
18162 : {
18163 0 : case BIT_IOR_EXPR:
18164 0 : {
18165 0 : tree _q100 = TREE_OPERAND (_p2, 0);
18166 0 : tree _q101 = TREE_OPERAND (_p2, 1);
18167 0 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
18168 : {
18169 0 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
18170 : {
18171 0 : {
18172 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p2 };
18173 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18174 0 : if (res) return res;
18175 : }
18176 : }
18177 : }
18178 0 : if ((_q100 == _q31 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q31, 0) && types_match (_q100, _q31)))
18179 : {
18180 0 : if ((_q101 == _q30 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q30, 0) && types_match (_q101, _q30)))
18181 : {
18182 0 : {
18183 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q51, _p2 };
18184 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18185 0 : if (res) return res;
18186 : }
18187 : }
18188 : }
18189 : break;
18190 : }
18191 : default:;
18192 : }
18193 : }
18194 : }
18195 : }
18196 : break;
18197 : }
18198 284815 : default:;
18199 : }
18200 284815 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
18201 : {
18202 7 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
18203 : {
18204 1 : switch (TREE_CODE (_p2))
18205 : {
18206 1 : case BIT_IOR_EXPR:
18207 1 : {
18208 1 : tree _q80 = TREE_OPERAND (_p2, 0);
18209 1 : tree _q81 = TREE_OPERAND (_p2, 1);
18210 1 : if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
18211 : {
18212 1 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
18213 : {
18214 1 : {
18215 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p2 };
18216 1 : tree res = generic_simplify_379 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18217 1 : if (res) return res;
18218 : }
18219 : }
18220 : }
18221 : break;
18222 : }
18223 : default:;
18224 : }
18225 : }
18226 : }
18227 : break;
18228 : }
18229 2997078 : default:;
18230 : }
18231 2997078 : switch (TREE_CODE (_q21))
18232 : {
18233 8 : case BIT_AND_EXPR:
18234 8 : {
18235 8 : tree _q40 = TREE_OPERAND (_q21, 0);
18236 8 : tree _q41 = TREE_OPERAND (_q21, 1);
18237 8 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
18238 : {
18239 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
18240 : {
18241 0 : switch (TREE_CODE (_p2))
18242 : {
18243 0 : case BIT_IOR_EXPR:
18244 0 : {
18245 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18246 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18247 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
18248 : {
18249 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
18250 : {
18251 0 : {
18252 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p2 };
18253 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18254 0 : if (res) return res;
18255 : }
18256 : }
18257 : }
18258 : break;
18259 : }
18260 : default:;
18261 : }
18262 : }
18263 : }
18264 : break;
18265 : }
18266 2997078 : default:;
18267 : }
18268 2997078 : switch (TREE_CODE (_q20))
18269 : {
18270 284814 : case BIT_AND_EXPR:
18271 284814 : {
18272 284814 : tree _q30 = TREE_OPERAND (_q20, 0);
18273 284814 : tree _q31 = TREE_OPERAND (_q20, 1);
18274 284814 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
18275 : {
18276 6 : switch (TREE_CODE (_p1))
18277 : {
18278 0 : case BIT_IOR_EXPR:
18279 0 : {
18280 0 : tree _q70 = TREE_OPERAND (_p1, 0);
18281 0 : tree _q71 = TREE_OPERAND (_p1, 1);
18282 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
18283 : {
18284 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
18285 : {
18286 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18287 : {
18288 0 : {
18289 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
18290 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18291 0 : if (res) return res;
18292 : }
18293 : }
18294 : }
18295 : }
18296 : break;
18297 : }
18298 : default:;
18299 : }
18300 : }
18301 284814 : switch (TREE_CODE (_q31))
18302 : {
18303 214276 : case INTEGER_CST:
18304 214276 : {
18305 214276 : if (integer_zerop (_q21))
18306 : {
18307 214263 : switch (TREE_CODE (_p1))
18308 : {
18309 139 : case PLUS_EXPR:
18310 139 : {
18311 139 : tree _q70 = TREE_OPERAND (_p1, 0);
18312 139 : tree _q71 = TREE_OPERAND (_p1, 1);
18313 139 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
18314 : {
18315 18 : switch (TREE_CODE (_q71))
18316 : {
18317 18 : case INTEGER_CST:
18318 18 : {
18319 18 : switch (TREE_CODE (_p2))
18320 : {
18321 18 : case BIT_IOR_EXPR:
18322 18 : {
18323 18 : tree _q100 = TREE_OPERAND (_p2, 0);
18324 18 : tree _q101 = TREE_OPERAND (_p2, 1);
18325 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
18326 : {
18327 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
18328 : {
18329 18 : {
18330 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
18331 18 : tree res = generic_simplify_385 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
18332 18 : if (res) return res;
18333 : }
18334 : }
18335 : }
18336 : break;
18337 : }
18338 : default:;
18339 : }
18340 : break;
18341 : }
18342 : default:;
18343 : }
18344 : }
18345 : break;
18346 : }
18347 54 : case BIT_AND_EXPR:
18348 54 : {
18349 54 : tree _q70 = TREE_OPERAND (_p1, 0);
18350 54 : tree _q71 = TREE_OPERAND (_p1, 1);
18351 54 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
18352 : {
18353 18 : switch (TREE_CODE (_q71))
18354 : {
18355 18 : case INTEGER_CST:
18356 18 : {
18357 18 : switch (TREE_CODE (_p2))
18358 : {
18359 18 : case BIT_IOR_EXPR:
18360 18 : {
18361 18 : tree _q100 = TREE_OPERAND (_p2, 0);
18362 18 : tree _q101 = TREE_OPERAND (_p2, 1);
18363 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
18364 : {
18365 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
18366 : {
18367 18 : {
18368 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
18369 18 : tree res = generic_simplify_385 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
18370 18 : if (res) return res;
18371 : }
18372 : }
18373 : }
18374 : break;
18375 : }
18376 : default:;
18377 : }
18378 : break;
18379 : }
18380 : default:;
18381 : }
18382 : }
18383 : break;
18384 : }
18385 : default:;
18386 : }
18387 : }
18388 : break;
18389 : }
18390 : default:;
18391 : }
18392 : break;
18393 : }
18394 2997054 : default:;
18395 : }
18396 2997054 : switch (TREE_CODE (_q21))
18397 : {
18398 8 : case BIT_AND_EXPR:
18399 8 : {
18400 8 : tree _q40 = TREE_OPERAND (_q21, 0);
18401 8 : tree _q41 = TREE_OPERAND (_q21, 1);
18402 8 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
18403 : {
18404 0 : switch (TREE_CODE (_p1))
18405 : {
18406 0 : case BIT_IOR_EXPR:
18407 0 : {
18408 0 : tree _q70 = TREE_OPERAND (_p1, 0);
18409 0 : tree _q71 = TREE_OPERAND (_p1, 1);
18410 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
18411 : {
18412 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
18413 : {
18414 0 : if ((_p2 == _q40 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q40, 0) && types_match (_p2, _q40)))
18415 : {
18416 0 : {
18417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
18418 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18419 0 : if (res) return res;
18420 : }
18421 : }
18422 : }
18423 : }
18424 : break;
18425 : }
18426 : default:;
18427 : }
18428 : }
18429 : break;
18430 : }
18431 2997054 : default:;
18432 : }
18433 2997054 : switch (TREE_CODE (_q20))
18434 : {
18435 367910 : CASE_CONVERT:
18436 367910 : {
18437 367910 : tree _q30 = TREE_OPERAND (_q20, 0);
18438 367910 : switch (TREE_CODE (_q21))
18439 : {
18440 319038 : case INTEGER_CST:
18441 319038 : {
18442 319038 : switch (TREE_CODE (_p1))
18443 : {
18444 103958 : CASE_CONVERT:
18445 103958 : {
18446 103958 : tree _q60 = TREE_OPERAND (_p1, 0);
18447 103958 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18448 : {
18449 57 : switch (TREE_CODE (_p2))
18450 : {
18451 9 : case INTEGER_CST:
18452 9 : {
18453 9 : {
18454 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
18455 9 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18456 9 : if (res) return res;
18457 : }
18458 9 : break;
18459 : }
18460 : default:;
18461 : }
18462 : }
18463 : break;
18464 : }
18465 319038 : default:;
18466 : }
18467 319038 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
18468 : {
18469 48 : switch (TREE_CODE (_p2))
18470 : {
18471 0 : case INTEGER_CST:
18472 0 : {
18473 0 : {
18474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
18475 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18476 0 : if (res) return res;
18477 : }
18478 0 : break;
18479 : }
18480 : default:;
18481 : }
18482 : }
18483 : break;
18484 : }
18485 : default:;
18486 : }
18487 : break;
18488 : }
18489 2997054 : default:;
18490 : }
18491 2997054 : switch (TREE_CODE (_q21))
18492 : {
18493 2303861 : case INTEGER_CST:
18494 2303861 : {
18495 2303861 : switch (TREE_CODE (_p1))
18496 : {
18497 393260 : CASE_CONVERT:
18498 393260 : {
18499 393260 : tree _q50 = TREE_OPERAND (_p1, 0);
18500 393260 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18501 : {
18502 77473 : switch (TREE_CODE (_p2))
18503 : {
18504 76222 : case INTEGER_CST:
18505 76222 : {
18506 76222 : {
18507 76222 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
18508 76222 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18509 76222 : if (res) return res;
18510 : }
18511 76216 : break;
18512 : }
18513 : default:;
18514 : }
18515 : }
18516 : break;
18517 : }
18518 2303855 : default:;
18519 : }
18520 2303855 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18521 : {
18522 55568 : switch (TREE_CODE (_p2))
18523 : {
18524 52985 : case INTEGER_CST:
18525 52985 : {
18526 52985 : {
18527 52985 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
18528 52985 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18529 52985 : if (res) return res;
18530 : }
18531 52985 : break;
18532 : }
18533 : default:;
18534 : }
18535 : }
18536 : break;
18537 : }
18538 2997048 : default:;
18539 : }
18540 2997048 : switch (TREE_CODE (_p1))
18541 : {
18542 12655 : case MINUS_EXPR:
18543 12655 : {
18544 12655 : tree _q50 = TREE_OPERAND (_p1, 0);
18545 12655 : tree _q51 = TREE_OPERAND (_p1, 1);
18546 12655 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18547 : {
18548 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18549 : {
18550 0 : if (integer_zerop (_p2))
18551 : {
18552 0 : {
18553 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18554 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, _p2, captures, MINUS_EXPR);
18555 0 : if (res) return res;
18556 : }
18557 : }
18558 : }
18559 : }
18560 12655 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18561 : {
18562 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18563 : {
18564 19 : if (integer_zerop (_p2))
18565 : {
18566 0 : {
18567 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18568 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, _p2, captures, MINUS_EXPR);
18569 0 : if (res) return res;
18570 : }
18571 : }
18572 : }
18573 : }
18574 : break;
18575 : }
18576 14 : case BIT_XOR_EXPR:
18577 14 : {
18578 14 : tree _q50 = TREE_OPERAND (_p1, 0);
18579 14 : tree _q51 = TREE_OPERAND (_p1, 1);
18580 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18581 : {
18582 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18583 : {
18584 7 : if (integer_zerop (_p2))
18585 : {
18586 0 : {
18587 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18588 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
18589 0 : if (res) return res;
18590 : }
18591 : }
18592 : }
18593 : }
18594 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18595 : {
18596 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18597 : {
18598 0 : if (integer_zerop (_p2))
18599 : {
18600 0 : {
18601 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18602 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
18603 0 : if (res) return res;
18604 : }
18605 : }
18606 : }
18607 : }
18608 : break;
18609 : }
18610 275 : case BIT_AND_EXPR:
18611 275 : {
18612 275 : tree _q50 = TREE_OPERAND (_p1, 0);
18613 275 : tree _q51 = TREE_OPERAND (_p1, 1);
18614 275 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18615 : {
18616 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18617 : {
18618 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18619 : {
18620 0 : {
18621 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18622 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
18623 0 : if (res) return res;
18624 : }
18625 : }
18626 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18627 : {
18628 0 : {
18629 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18630 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
18631 0 : if (res) return res;
18632 : }
18633 : }
18634 : }
18635 : }
18636 275 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18637 : {
18638 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18639 : {
18640 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18641 : {
18642 0 : {
18643 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18644 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
18645 0 : if (res) return res;
18646 : }
18647 : }
18648 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18649 : {
18650 0 : {
18651 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18652 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
18653 0 : if (res) return res;
18654 : }
18655 : }
18656 : }
18657 : }
18658 : break;
18659 : }
18660 9652 : case BIT_IOR_EXPR:
18661 9652 : {
18662 9652 : tree _q50 = TREE_OPERAND (_p1, 0);
18663 9652 : tree _q51 = TREE_OPERAND (_p1, 1);
18664 9652 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18665 : {
18666 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18667 : {
18668 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18669 : {
18670 0 : {
18671 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18672 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
18673 0 : if (res) return res;
18674 : }
18675 : }
18676 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18677 : {
18678 0 : {
18679 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18680 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
18681 0 : if (res) return res;
18682 : }
18683 : }
18684 : }
18685 : }
18686 9652 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18687 : {
18688 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18689 : {
18690 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18691 : {
18692 0 : {
18693 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18694 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
18695 0 : if (res) return res;
18696 : }
18697 : }
18698 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18699 : {
18700 0 : {
18701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18702 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
18703 0 : if (res) return res;
18704 : }
18705 : }
18706 : }
18707 : }
18708 : break;
18709 : }
18710 0 : case MIN_EXPR:
18711 0 : {
18712 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18713 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18714 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18715 : {
18716 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18717 : {
18718 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18719 : {
18720 0 : {
18721 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18722 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
18723 0 : if (res) return res;
18724 : }
18725 : }
18726 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18727 : {
18728 0 : {
18729 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18730 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
18731 0 : if (res) return res;
18732 : }
18733 : }
18734 : }
18735 0 : switch (TREE_CODE (_p2))
18736 : {
18737 0 : case MIN_EXPR:
18738 0 : {
18739 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18740 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18741 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
18742 : {
18743 0 : {
18744 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
18745 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18746 0 : if (res) return res;
18747 : }
18748 : }
18749 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
18750 : {
18751 0 : {
18752 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
18753 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18754 0 : if (res) return res;
18755 : }
18756 : }
18757 : break;
18758 : }
18759 : default:;
18760 : }
18761 : }
18762 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18763 : {
18764 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18765 : {
18766 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18767 : {
18768 0 : {
18769 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18770 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
18771 0 : if (res) return res;
18772 : }
18773 : }
18774 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18775 : {
18776 0 : {
18777 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18778 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
18779 0 : if (res) return res;
18780 : }
18781 : }
18782 : }
18783 0 : switch (TREE_CODE (_p2))
18784 : {
18785 0 : case MIN_EXPR:
18786 0 : {
18787 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18788 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18789 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
18790 : {
18791 0 : {
18792 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
18793 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18794 0 : if (res) return res;
18795 : }
18796 : }
18797 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
18798 : {
18799 0 : {
18800 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
18801 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18802 0 : if (res) return res;
18803 : }
18804 : }
18805 : break;
18806 : }
18807 : default:;
18808 : }
18809 : }
18810 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18811 : {
18812 0 : switch (TREE_CODE (_p2))
18813 : {
18814 0 : case MIN_EXPR:
18815 0 : {
18816 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18817 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18818 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
18819 : {
18820 0 : {
18821 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
18822 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18823 0 : if (res) return res;
18824 : }
18825 : }
18826 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
18827 : {
18828 0 : {
18829 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
18830 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18831 0 : if (res) return res;
18832 : }
18833 : }
18834 : break;
18835 : }
18836 : default:;
18837 : }
18838 : }
18839 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18840 : {
18841 0 : switch (TREE_CODE (_p2))
18842 : {
18843 0 : case MIN_EXPR:
18844 0 : {
18845 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18846 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18847 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
18848 : {
18849 0 : {
18850 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
18851 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18852 0 : if (res) return res;
18853 : }
18854 : }
18855 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
18856 : {
18857 0 : {
18858 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
18859 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
18860 0 : if (res) return res;
18861 : }
18862 : }
18863 : break;
18864 : }
18865 : default:;
18866 : }
18867 : }
18868 : break;
18869 : }
18870 0 : case MAX_EXPR:
18871 0 : {
18872 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18873 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18874 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18875 : {
18876 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18877 : {
18878 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18879 : {
18880 0 : {
18881 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18882 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
18883 0 : if (res) return res;
18884 : }
18885 : }
18886 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18887 : {
18888 0 : {
18889 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18890 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
18891 0 : if (res) return res;
18892 : }
18893 : }
18894 : }
18895 0 : switch (TREE_CODE (_p2))
18896 : {
18897 0 : case MAX_EXPR:
18898 0 : {
18899 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18900 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18901 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
18902 : {
18903 0 : {
18904 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
18905 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18906 0 : if (res) return res;
18907 : }
18908 : }
18909 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
18910 : {
18911 0 : {
18912 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
18913 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18914 0 : if (res) return res;
18915 : }
18916 : }
18917 : break;
18918 : }
18919 : default:;
18920 : }
18921 : }
18922 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18923 : {
18924 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18925 : {
18926 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
18927 : {
18928 0 : {
18929 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
18930 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
18931 0 : if (res) return res;
18932 : }
18933 : }
18934 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
18935 : {
18936 0 : {
18937 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
18938 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
18939 0 : if (res) return res;
18940 : }
18941 : }
18942 : }
18943 0 : switch (TREE_CODE (_p2))
18944 : {
18945 0 : case MAX_EXPR:
18946 0 : {
18947 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18948 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18949 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
18950 : {
18951 0 : {
18952 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
18953 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18954 0 : if (res) return res;
18955 : }
18956 : }
18957 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
18958 : {
18959 0 : {
18960 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
18961 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18962 0 : if (res) return res;
18963 : }
18964 : }
18965 : break;
18966 : }
18967 : default:;
18968 : }
18969 : }
18970 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18971 : {
18972 0 : switch (TREE_CODE (_p2))
18973 : {
18974 0 : case MAX_EXPR:
18975 0 : {
18976 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18977 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18978 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
18979 : {
18980 0 : {
18981 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
18982 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18983 0 : if (res) return res;
18984 : }
18985 : }
18986 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
18987 : {
18988 0 : {
18989 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
18990 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
18991 0 : if (res) return res;
18992 : }
18993 : }
18994 : break;
18995 : }
18996 : default:;
18997 : }
18998 : }
18999 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19000 : {
19001 0 : switch (TREE_CODE (_p2))
19002 : {
19003 0 : case MAX_EXPR:
19004 0 : {
19005 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19006 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19007 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
19008 : {
19009 0 : {
19010 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
19011 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
19012 0 : if (res) return res;
19013 : }
19014 : }
19015 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
19016 : {
19017 0 : {
19018 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
19019 0 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
19020 0 : if (res) return res;
19021 : }
19022 : }
19023 : break;
19024 : }
19025 : default:;
19026 : }
19027 : }
19028 : break;
19029 : }
19030 25752 : case MULT_EXPR:
19031 25752 : {
19032 25752 : tree _q50 = TREE_OPERAND (_p1, 0);
19033 25752 : tree _q51 = TREE_OPERAND (_p1, 1);
19034 25752 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19035 : {
19036 21043 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19037 : {
19038 0 : switch (TREE_CODE (_p2))
19039 : {
19040 0 : case MULT_EXPR:
19041 0 : {
19042 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19043 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19044 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
19045 : {
19046 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
19047 : {
19048 0 : {
19049 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
19050 0 : const enum tree_code op = MULT_EXPR;
19051 0 : if (ANY_INTEGRAL_TYPE_P (type)
19052 : )
19053 : {
19054 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1916;
19055 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
19056 0 : {
19057 0 : tree _r;
19058 0 : _r = captures[2];
19059 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
19060 : return _r;
19061 : }
19062 25752 : next_after_fail1916:;
19063 : }
19064 : }
19065 : }
19066 : }
19067 : break;
19068 : }
19069 : default:;
19070 : }
19071 : }
19072 : }
19073 25752 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
19074 : {
19075 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
19076 : {
19077 0 : switch (TREE_CODE (_p2))
19078 : {
19079 0 : case MULT_EXPR:
19080 0 : {
19081 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19082 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19083 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
19084 : {
19085 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
19086 : {
19087 0 : {
19088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
19089 0 : const enum tree_code op = MULT_EXPR;
19090 0 : if (ANY_INTEGRAL_TYPE_P (type)
19091 : )
19092 : {
19093 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1917;
19094 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
19095 0 : {
19096 0 : tree _r;
19097 0 : _r = captures[2];
19098 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
19099 : return _r;
19100 : }
19101 2997048 : next_after_fail1917:;
19102 : }
19103 : }
19104 : }
19105 : }
19106 : break;
19107 : }
19108 : default:;
19109 : }
19110 : }
19111 : }
19112 : break;
19113 : }
19114 132978 : case PLUS_EXPR:
19115 132978 : {
19116 132978 : tree _q50 = TREE_OPERAND (_p1, 0);
19117 132978 : tree _q51 = TREE_OPERAND (_p1, 1);
19118 132978 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19119 : {
19120 2626 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19121 : {
19122 0 : switch (TREE_CODE (_p2))
19123 : {
19124 0 : case PLUS_EXPR:
19125 0 : {
19126 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19127 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19128 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
19129 : {
19130 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
19131 : {
19132 0 : {
19133 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
19134 0 : const enum tree_code op = PLUS_EXPR;
19135 0 : if (ANY_INTEGRAL_TYPE_P (type)
19136 : )
19137 : {
19138 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1918;
19139 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
19140 0 : {
19141 0 : tree _r;
19142 0 : _r = captures[2];
19143 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
19144 : return _r;
19145 : }
19146 132978 : next_after_fail1918:;
19147 : }
19148 : }
19149 : }
19150 : }
19151 : break;
19152 : }
19153 0 : case MULT_EXPR:
19154 0 : {
19155 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19156 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19157 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
19158 : {
19159 0 : if (uniform_integer_cst_p (_q81))
19160 : {
19161 0 : {
19162 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
19163 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
19164 : )
19165 : {
19166 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1919;
19167 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1919;
19168 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
19169 0 : {
19170 0 : tree _r;
19171 0 : _r = captures[2];
19172 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
19173 : return _r;
19174 : }
19175 0 : next_after_fail1919:;
19176 : }
19177 : }
19178 : }
19179 : }
19180 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
19181 : {
19182 0 : if (uniform_integer_cst_p (_q81))
19183 : {
19184 0 : {
19185 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
19186 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
19187 : )
19188 : {
19189 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1920;
19190 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1920;
19191 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
19192 0 : {
19193 0 : tree _r;
19194 0 : _r = captures[2];
19195 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
19196 : return _r;
19197 : }
19198 132978 : next_after_fail1920:;
19199 : }
19200 : }
19201 : }
19202 : }
19203 : break;
19204 : }
19205 : default:;
19206 : }
19207 : }
19208 : }
19209 132978 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
19210 : {
19211 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
19212 : {
19213 0 : switch (TREE_CODE (_p2))
19214 : {
19215 0 : case PLUS_EXPR:
19216 0 : {
19217 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19218 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19219 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
19220 : {
19221 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
19222 : {
19223 0 : {
19224 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
19225 0 : const enum tree_code op = PLUS_EXPR;
19226 0 : if (ANY_INTEGRAL_TYPE_P (type)
19227 : )
19228 : {
19229 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1921;
19230 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
19231 0 : {
19232 0 : tree _r;
19233 0 : _r = captures[2];
19234 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
19235 : return _r;
19236 : }
19237 2997048 : next_after_fail1921:;
19238 : }
19239 : }
19240 : }
19241 : }
19242 : break;
19243 : }
19244 0 : case MULT_EXPR:
19245 0 : {
19246 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19247 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19248 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
19249 : {
19250 0 : if (uniform_integer_cst_p (_q81))
19251 : {
19252 0 : {
19253 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
19254 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
19255 : )
19256 : {
19257 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1922;
19258 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1922;
19259 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
19260 0 : {
19261 0 : tree _r;
19262 0 : _r = captures[2];
19263 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
19264 : return _r;
19265 : }
19266 0 : next_after_fail1922:;
19267 : }
19268 : }
19269 : }
19270 : }
19271 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
19272 : {
19273 0 : if (uniform_integer_cst_p (_q81))
19274 : {
19275 0 : {
19276 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
19277 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
19278 : )
19279 : {
19280 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1923;
19281 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1923;
19282 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
19283 0 : {
19284 0 : tree _r;
19285 0 : _r = captures[2];
19286 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
19287 : return _r;
19288 : }
19289 2997048 : next_after_fail1923:;
19290 : }
19291 : }
19292 : }
19293 : }
19294 : break;
19295 : }
19296 : default:;
19297 : }
19298 : }
19299 : }
19300 : break;
19301 : }
19302 2997048 : default:;
19303 : }
19304 2997048 : switch (TREE_CODE (_q21))
19305 : {
19306 2303855 : case INTEGER_CST:
19307 2303855 : {
19308 2303855 : switch (TREE_CODE (_p1))
19309 : {
19310 230 : case NEGATE_EXPR:
19311 230 : {
19312 230 : tree _q50 = TREE_OPERAND (_p1, 0);
19313 230 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19314 : {
19315 44 : switch (TREE_CODE (_p2))
19316 : {
19317 16 : case INTEGER_CST:
19318 16 : {
19319 16 : {
19320 16 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19321 16 : if (!TYPE_SATURATING (type)
19322 32 : && wi::eq_p (wi::neg (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
19323 : )
19324 : {
19325 12 : if (TYPE_OVERFLOW_WRAPS (type)
19326 12 : || !wi::only_sign_bit_p (wi::to_wide (captures[1]))
19327 : )
19328 : {
19329 11 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1924;
19330 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1924;
19331 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
19332 11 : {
19333 11 : tree _r;
19334 11 : _r = captures[2];
19335 11 : if (TREE_SIDE_EFFECTS (captures[1]))
19336 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19337 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1089, __FILE__, __LINE__, true);
19338 : return _r;
19339 : }
19340 12266433 : next_after_fail1924:;
19341 : }
19342 : else
19343 : {
19344 1 : {
19345 1 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
19346 1 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1925;
19347 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1925;
19348 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1925;
19349 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
19350 1 : {
19351 1 : tree res_op0;
19352 1 : {
19353 1 : tree _o1[1], _r1;
19354 1 : {
19355 1 : tree _o2[1], _r2;
19356 1 : _o2[0] = captures[0];
19357 1 : if (TREE_TYPE (_o2[0]) != utype)
19358 : {
19359 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
19360 : }
19361 : else
19362 : _r2 = _o2[0];
19363 1 : _o1[0] = _r2;
19364 : }
19365 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
19366 1 : res_op0 = _r1;
19367 : }
19368 1 : tree _r;
19369 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19370 1 : if (TREE_SIDE_EFFECTS (captures[1]))
19371 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19372 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1090, __FILE__, __LINE__, true);
19373 : return _r;
19374 : }
19375 12266433 : next_after_fail1925:;
19376 : }
19377 : }
19378 : }
19379 : }
19380 : break;
19381 : }
19382 : default:;
19383 : }
19384 : }
19385 : break;
19386 : }
19387 99 : case BIT_NOT_EXPR:
19388 99 : {
19389 99 : tree _q50 = TREE_OPERAND (_p1, 0);
19390 99 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19391 : {
19392 22 : switch (TREE_CODE (_p2))
19393 : {
19394 22 : case INTEGER_CST:
19395 22 : {
19396 22 : {
19397 22 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19398 22 : if (wi::eq_p (wi::bit_not (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
19399 : )
19400 : {
19401 22 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1926;
19402 22 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1926;
19403 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
19404 22 : {
19405 22 : tree _r;
19406 22 : _r = captures[2];
19407 22 : if (TREE_SIDE_EFFECTS (captures[1]))
19408 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19409 22 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1091, __FILE__, __LINE__, true);
19410 : return _r;
19411 : }
19412 12266433 : next_after_fail1926:;
19413 : }
19414 : }
19415 : break;
19416 : }
19417 : default:;
19418 : }
19419 : }
19420 : break;
19421 : }
19422 5 : case ABS_EXPR:
19423 5 : {
19424 5 : tree _q50 = TREE_OPERAND (_p1, 0);
19425 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19426 : {
19427 1 : switch (TREE_CODE (_p2))
19428 : {
19429 1 : case INTEGER_CST:
19430 1 : {
19431 1 : {
19432 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19433 1 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
19434 : )
19435 : {
19436 0 : if (ABS_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
19437 : )
19438 : {
19439 0 : {
19440 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
19441 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1927;
19442 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1927;
19443 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1927;
19444 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
19445 0 : {
19446 0 : tree res_op0;
19447 0 : {
19448 0 : tree _o1[1], _r1;
19449 0 : _o1[0] = captures[0];
19450 0 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
19451 0 : res_op0 = _r1;
19452 : }
19453 0 : tree _r;
19454 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19455 0 : if (TREE_SIDE_EFFECTS (captures[1]))
19456 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19457 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
19458 : return _r;
19459 : }
19460 12266433 : next_after_fail1927:;
19461 : }
19462 : }
19463 : else
19464 : {
19465 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1928;
19466 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1928;
19467 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
19468 0 : {
19469 0 : tree _r;
19470 0 : _r = captures[2];
19471 0 : if (TREE_SIDE_EFFECTS (captures[1]))
19472 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19473 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
19474 : return _r;
19475 : }
19476 12266433 : next_after_fail1928:;
19477 : }
19478 : }
19479 : }
19480 : break;
19481 : }
19482 : default:;
19483 : }
19484 : }
19485 : break;
19486 : }
19487 0 : case ABSU_EXPR:
19488 0 : {
19489 0 : tree _q50 = TREE_OPERAND (_p1, 0);
19490 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19491 : {
19492 0 : switch (TREE_CODE (_p2))
19493 : {
19494 0 : case INTEGER_CST:
19495 0 : {
19496 0 : {
19497 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19498 0 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
19499 : )
19500 : {
19501 0 : if (ABSU_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
19502 : )
19503 : {
19504 : {
19505 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
19506 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1929;
19507 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1929;
19508 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1929;
19509 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
19510 : {
19511 : tree res_op0;
19512 : {
19513 : tree _o1[1], _r1;
19514 : _o1[0] = captures[0];
19515 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
19516 : res_op0 = _r1;
19517 : }
19518 : tree _r;
19519 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19520 : if (TREE_SIDE_EFFECTS (captures[1]))
19521 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19522 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
19523 : return _r;
19524 : }
19525 : next_after_fail1929:;
19526 : }
19527 : }
19528 : else
19529 : {
19530 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1930;
19531 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1930;
19532 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
19533 0 : {
19534 0 : tree _r;
19535 0 : _r = captures[2];
19536 0 : if (TREE_SIDE_EFFECTS (captures[1]))
19537 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
19538 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
19539 : return _r;
19540 : }
19541 12266433 : next_after_fail1930:;
19542 : }
19543 : }
19544 : }
19545 : break;
19546 : }
19547 : default:;
19548 : }
19549 : }
19550 : break;
19551 : }
19552 : default:;
19553 : }
19554 : break;
19555 : }
19556 : default:;
19557 : }
19558 : break;
19559 : }
19560 1299134 : case INTEGER_CST:
19561 1299134 : {
19562 1299134 : {
19563 1299134 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
19564 1299134 : if (integer_zerop (captures[0])
19565 : )
19566 : {
19567 678509 : if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)
19568 : )
19569 : {
19570 670295 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1931;
19571 490461 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1931;
19572 473815 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
19573 473815 : {
19574 473815 : tree _r;
19575 473815 : _r = captures[2];
19576 473815 : if (TREE_SIDE_EFFECTS (captures[0]))
19577 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
19578 473815 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1094, __FILE__, __LINE__, true);
19579 : return _r;
19580 : }
19581 12266433 : next_after_fail1931:;
19582 : }
19583 : }
19584 : else
19585 : {
19586 620625 : if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)
19587 : )
19588 : {
19589 619633 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1932;
19590 491322 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1932;
19591 388790 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
19592 388790 : {
19593 388790 : tree _r;
19594 388790 : _r = captures[1];
19595 388790 : if (TREE_SIDE_EFFECTS (captures[0]))
19596 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
19597 388790 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1095, __FILE__, __LINE__, true);
19598 : return _r;
19599 : }
19600 12266433 : next_after_fail1932:;
19601 : }
19602 : }
19603 : }
19604 : break;
19605 : }
19606 12266433 : default:;
19607 : }
19608 12266433 : switch (TREE_CODE (_p1))
19609 : {
19610 855331 : case COND_EXPR:
19611 855331 : {
19612 855331 : tree _q30 = TREE_OPERAND (_p1, 0);
19613 855331 : tree _q31 = TREE_OPERAND (_p1, 1);
19614 855331 : tree _q32 = TREE_OPERAND (_p1, 2);
19615 855331 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
19616 : {
19617 609 : {
19618 609 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
19619 609 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1933;
19620 609 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1933;
19621 55 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1933;
19622 54 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1933;
19623 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
19624 10 : {
19625 10 : tree res_op0;
19626 10 : res_op0 = captures[0];
19627 10 : tree res_op1;
19628 10 : res_op1 = captures[1];
19629 10 : tree res_op2;
19630 10 : res_op2 = captures[3];
19631 10 : tree _r;
19632 10 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
19633 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1096, __FILE__, __LINE__, true);
19634 : return _r;
19635 : }
19636 12266423 : next_after_fail1933:;
19637 : }
19638 : }
19639 : break;
19640 : }
19641 12266423 : default:;
19642 : }
19643 12266423 : switch (TREE_CODE (_p2))
19644 : {
19645 902940 : case COND_EXPR:
19646 902940 : {
19647 902940 : tree _q40 = TREE_OPERAND (_p2, 0);
19648 902940 : tree _q41 = TREE_OPERAND (_p2, 1);
19649 902940 : tree _q42 = TREE_OPERAND (_p2, 2);
19650 902940 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
19651 : {
19652 3762 : {
19653 3762 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
19654 3762 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1934;
19655 3762 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1934;
19656 3762 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1934;
19657 184 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1934;
19658 184 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
19659 184 : {
19660 184 : tree res_op0;
19661 184 : res_op0 = captures[0];
19662 184 : tree res_op1;
19663 184 : res_op1 = captures[1];
19664 184 : tree res_op2;
19665 184 : res_op2 = captures[3];
19666 184 : tree _r;
19667 184 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
19668 184 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1097, __FILE__, __LINE__, true);
19669 : return _r;
19670 : }
19671 902756 : next_after_fail1934:;
19672 : }
19673 : }
19674 902756 : {
19675 902756 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
19676 902756 : if (inverse_conditions_p (captures[0], captures[2])
19677 : )
19678 : {
19679 1162 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1935;
19680 1162 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1935;
19681 1162 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1935;
19682 1162 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1935;
19683 1162 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
19684 1162 : {
19685 1162 : tree res_op0;
19686 1162 : res_op0 = captures[0];
19687 1162 : tree res_op1;
19688 1162 : res_op1 = captures[1];
19689 1162 : tree res_op2;
19690 1162 : res_op2 = captures[3];
19691 1162 : tree _r;
19692 1162 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
19693 1162 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1098, __FILE__, __LINE__, true);
19694 : return _r;
19695 : }
19696 12265077 : next_after_fail1935:;
19697 : }
19698 : }
19699 : break;
19700 : }
19701 12265077 : default:;
19702 : }
19703 12265077 : switch (TREE_CODE (_p1))
19704 : {
19705 855321 : case COND_EXPR:
19706 855321 : {
19707 855321 : tree _q30 = TREE_OPERAND (_p1, 0);
19708 855321 : tree _q31 = TREE_OPERAND (_p1, 1);
19709 855321 : tree _q32 = TREE_OPERAND (_p1, 2);
19710 855321 : {
19711 855321 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
19712 855321 : if (inverse_conditions_p (captures[0], captures[1])
19713 : )
19714 : {
19715 157 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1936;
19716 157 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1936;
19717 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1936;
19718 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1936;
19719 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
19720 2 : {
19721 2 : tree res_op0;
19722 2 : res_op0 = captures[0];
19723 2 : tree res_op1;
19724 2 : res_op1 = captures[3];
19725 2 : tree res_op2;
19726 2 : res_op2 = captures[4];
19727 2 : tree _r;
19728 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
19729 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1099, __FILE__, __LINE__, true);
19730 : return _r;
19731 : }
19732 12265075 : next_after_fail1936:;
19733 : }
19734 : }
19735 : break;
19736 : }
19737 12265075 : default:;
19738 : }
19739 12265075 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
19740 : {
19741 51057 : {
19742 51057 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
19743 51057 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1937;
19744 51057 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
19745 51057 : {
19746 51057 : tree _r;
19747 51057 : _r = captures[1];
19748 51057 : if (TREE_SIDE_EFFECTS (captures[0]))
19749 358 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
19750 51057 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1100, __FILE__, __LINE__, true);
19751 : return _r;
19752 : }
19753 12214018 : next_after_fail1937:;
19754 : }
19755 : }
19756 12214018 : switch (TREE_CODE (_p0))
19757 : {
19758 1768424 : case EQ_EXPR:
19759 1768424 : {
19760 1768424 : tree _q20 = TREE_OPERAND (_p0, 0);
19761 1768424 : tree _q21 = TREE_OPERAND (_p0, 1);
19762 1768424 : if (CONSTANT_CLASS_P (_q21))
19763 : {
19764 1254543 : {
19765 1254543 : tree _p1_pops[1];
19766 1254543 : if (tree_nop_convert (_p1, _p1_pops))
19767 : {
19768 194508 : tree _q50 = _p1_pops[0];
19769 194508 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19770 : {
19771 282 : if (CONSTANT_CLASS_P (_p2))
19772 : {
19773 0 : {
19774 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
19775 0 : if (ANY_INTEGRAL_TYPE_P (type)
19776 0 : && operand_equal_p (captures[1], captures[2])
19777 : )
19778 : {
19779 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1938;
19780 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1938;
19781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
19782 0 : {
19783 0 : tree res_op0;
19784 0 : res_op0 = captures[1];
19785 0 : tree _r;
19786 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19787 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1101, __FILE__, __LINE__, true);
19788 0 : return _r;
19789 : }
19790 1254543 : next_after_fail1938:;
19791 : }
19792 : }
19793 : }
19794 : }
19795 : }
19796 : }
19797 1254543 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19798 : {
19799 93 : if (CONSTANT_CLASS_P (_p2))
19800 : {
19801 7 : {
19802 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
19803 7 : if (ANY_INTEGRAL_TYPE_P (type)
19804 7 : && operand_equal_p (captures[1], captures[2])
19805 : )
19806 : {
19807 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1939;
19808 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1939;
19809 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
19810 0 : {
19811 0 : tree res_op0;
19812 0 : res_op0 = captures[1];
19813 0 : tree _r;
19814 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
19815 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1101, __FILE__, __LINE__, true);
19816 : return _r;
19817 : }
19818 1768424 : next_after_fail1939:;
19819 : }
19820 : }
19821 : }
19822 : }
19823 : }
19824 1768424 : if (zerop (_q21))
19825 : {
19826 793555 : switch (TREE_CODE (_p2))
19827 : {
19828 36 : case NEGATE_EXPR:
19829 36 : {
19830 36 : tree _q60 = TREE_OPERAND (_p2, 0);
19831 36 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19832 : {
19833 16 : {
19834 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
19835 16 : const enum tree_code cmp = EQ_EXPR;
19836 16 : if (!HONOR_SIGNED_ZEROS (type)
19837 16 : && bitwise_equal_p (captures[0], captures[1])
19838 : )
19839 : {
19840 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1940;
19841 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1940;
19842 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
19843 0 : {
19844 0 : tree _r;
19845 0 : _r = captures[2];
19846 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1102, __FILE__, __LINE__, true);
19847 : return _r;
19848 : }
19849 793555 : next_after_fail1940:;
19850 : }
19851 : }
19852 : }
19853 : break;
19854 : }
19855 793555 : default:;
19856 : }
19857 793555 : if (zerop (_p1))
19858 : {
19859 61619 : switch (TREE_CODE (_p2))
19860 : {
19861 14 : case NEGATE_EXPR:
19862 14 : {
19863 14 : tree _q60 = TREE_OPERAND (_p2, 0);
19864 14 : {
19865 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
19866 14 : const enum tree_code cmp = EQ_EXPR;
19867 14 : if (!HONOR_SIGNED_ZEROS (type)
19868 14 : && bitwise_equal_p (captures[0], captures[2])
19869 : )
19870 : {
19871 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1941;
19872 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1941;
19873 7 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1941;
19874 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
19875 7 : {
19876 7 : tree _r;
19877 7 : _r = captures[1];
19878 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1103, __FILE__, __LINE__, true);
19879 : return _r;
19880 : }
19881 1768417 : next_after_fail1941:;
19882 : }
19883 : }
19884 : break;
19885 : }
19886 : default:;
19887 : }
19888 : }
19889 : }
19890 1768417 : switch (TREE_CODE (_q20))
19891 : {
19892 0 : case MINUS_EXPR:
19893 0 : {
19894 0 : tree _q30 = TREE_OPERAND (_q20, 0);
19895 0 : tree _q31 = TREE_OPERAND (_q20, 1);
19896 0 : if (zerop (_q21))
19897 : {
19898 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19899 : {
19900 0 : switch (TREE_CODE (_p2))
19901 : {
19902 0 : case MINUS_EXPR:
19903 0 : {
19904 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19905 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19906 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19907 : {
19908 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19909 : {
19910 0 : {
19911 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
19912 0 : const enum tree_code cmp = EQ_EXPR;
19913 0 : if (!HONOR_SIGNED_ZEROS (type)
19914 : )
19915 : {
19916 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1942;
19917 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1942;
19918 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
19919 0 : {
19920 0 : tree _r;
19921 0 : _r = captures[3];
19922 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1104, __FILE__, __LINE__, true);
19923 : return _r;
19924 : }
19925 0 : next_after_fail1942:;
19926 : }
19927 : }
19928 : }
19929 : }
19930 : break;
19931 : }
19932 : default:;
19933 : }
19934 : }
19935 : }
19936 0 : if (integer_zerop (_q21))
19937 : {
19938 0 : if (integer_zerop (_p1))
19939 : {
19940 0 : switch (TREE_CODE (_p2))
19941 : {
19942 0 : case MINUS_EXPR:
19943 0 : {
19944 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19945 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19946 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19947 : {
19948 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19949 : {
19950 0 : {
19951 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
19952 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
19953 0 : if (res) return res;
19954 : }
19955 : }
19956 : }
19957 : break;
19958 : }
19959 : default:;
19960 : }
19961 : }
19962 : }
19963 : break;
19964 : }
19965 61484 : case CALL_EXPR:
19966 61484 : switch (get_call_combined_fn (_q20))
19967 : {
19968 0 : case CFN_BUILT_IN_SIGNBITF:
19969 0 : if (call_expr_nargs (_q20) == 1)
19970 : {
19971 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
19972 0 : if (integer_zerop (_q21))
19973 : {
19974 0 : switch (TREE_CODE (_p1))
19975 : {
19976 0 : case NEGATE_EXPR:
19977 0 : {
19978 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19979 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
19980 : {
19981 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
19982 : {
19983 0 : {
19984 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
19985 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITF);
19986 0 : if (res) return res;
19987 : }
19988 : }
19989 : }
19990 : break;
19991 : }
19992 : default:;
19993 : }
19994 : }
19995 : }
19996 : break;
19997 0 : case CFN_BUILT_IN_SIGNBITL:
19998 0 : if (call_expr_nargs (_q20) == 1)
19999 : {
20000 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20001 0 : if (integer_zerop (_q21))
20002 : {
20003 0 : switch (TREE_CODE (_p1))
20004 : {
20005 0 : case NEGATE_EXPR:
20006 0 : {
20007 0 : tree _q60 = TREE_OPERAND (_p1, 0);
20008 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20009 : {
20010 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20011 : {
20012 0 : {
20013 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20014 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITL);
20015 0 : if (res) return res;
20016 : }
20017 : }
20018 : }
20019 : break;
20020 : }
20021 : default:;
20022 : }
20023 : }
20024 : }
20025 : break;
20026 0 : case CFN_SIGNBIT:
20027 0 : if (call_expr_nargs (_q20) == 1)
20028 : {
20029 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20030 0 : if (integer_zerop (_q21))
20031 : {
20032 0 : switch (TREE_CODE (_p1))
20033 : {
20034 0 : case NEGATE_EXPR:
20035 0 : {
20036 0 : tree _q60 = TREE_OPERAND (_p1, 0);
20037 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20038 : {
20039 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20040 : {
20041 0 : {
20042 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20043 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_SIGNBIT);
20044 0 : if (res) return res;
20045 : }
20046 : }
20047 : }
20048 : break;
20049 : }
20050 : default:;
20051 : }
20052 : }
20053 : }
20054 : break;
20055 411 : case CFN_BUILT_IN_SIGNBIT:
20056 411 : if (call_expr_nargs (_q20) == 1)
20057 : {
20058 411 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20059 411 : if (integer_zerop (_q21))
20060 : {
20061 411 : switch (TREE_CODE (_p1))
20062 : {
20063 3 : case NEGATE_EXPR:
20064 3 : {
20065 3 : tree _q60 = TREE_OPERAND (_p1, 0);
20066 3 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20067 : {
20068 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20069 : {
20070 3 : {
20071 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20072 3 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBIT);
20073 3 : if (res) return res;
20074 : }
20075 : }
20076 : }
20077 : break;
20078 : }
20079 : default:;
20080 : }
20081 : }
20082 : }
20083 : break;
20084 : default:;
20085 : }
20086 : break;
20087 : default:;
20088 : }
20089 : break;
20090 : }
20091 2994907 : case NE_EXPR:
20092 2994907 : {
20093 2994907 : tree _q20 = TREE_OPERAND (_p0, 0);
20094 2994907 : tree _q21 = TREE_OPERAND (_p0, 1);
20095 2994907 : if (CONSTANT_CLASS_P (_q21))
20096 : {
20097 2487033 : if (CONSTANT_CLASS_P (_p1))
20098 : {
20099 260781 : {
20100 260781 : tree _p2_pops[1];
20101 260781 : if (tree_nop_convert (_p2, _p2_pops))
20102 : {
20103 47003 : tree _q60 = _p2_pops[0];
20104 47003 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20105 : {
20106 0 : {
20107 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
20108 0 : if (ANY_INTEGRAL_TYPE_P (type)
20109 0 : && operand_equal_p (captures[1], captures[2])
20110 : )
20111 : {
20112 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1943;
20113 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1943;
20114 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
20115 0 : {
20116 0 : tree res_op0;
20117 0 : res_op0 = captures[1];
20118 0 : tree _r;
20119 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1105, __FILE__, __LINE__, true);
20121 0 : return _r;
20122 : }
20123 260781 : next_after_fail1943:;
20124 : }
20125 : }
20126 : }
20127 : }
20128 : }
20129 260781 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
20130 : {
20131 2 : {
20132 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
20133 0 : if (ANY_INTEGRAL_TYPE_P (type)
20134 2 : && operand_equal_p (captures[1], captures[2])
20135 : )
20136 : {
20137 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1944;
20138 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1944;
20139 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
20140 0 : {
20141 0 : tree res_op0;
20142 0 : res_op0 = captures[1];
20143 0 : tree _r;
20144 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20145 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1105, __FILE__, __LINE__, true);
20146 : return _r;
20147 : }
20148 2994907 : next_after_fail1944:;
20149 : }
20150 : }
20151 : }
20152 : }
20153 : }
20154 2994907 : if (zerop (_q21))
20155 : {
20156 2058432 : switch (TREE_CODE (_p2))
20157 : {
20158 50 : case NEGATE_EXPR:
20159 50 : {
20160 50 : tree _q60 = TREE_OPERAND (_p2, 0);
20161 50 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20162 : {
20163 10 : {
20164 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20165 10 : const enum tree_code cmp = NE_EXPR;
20166 10 : if (!HONOR_SIGNED_ZEROS (type)
20167 10 : && bitwise_equal_p (captures[0], captures[1])
20168 : )
20169 : {
20170 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1945;
20171 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1945;
20172 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
20173 0 : {
20174 0 : tree _r;
20175 0 : _r = captures[1];
20176 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1106, __FILE__, __LINE__, true);
20177 : return _r;
20178 : }
20179 2058432 : next_after_fail1945:;
20180 : }
20181 : }
20182 : }
20183 : break;
20184 : }
20185 2058432 : default:;
20186 : }
20187 2058432 : if (integer_zerop (_p2))
20188 : {
20189 358907 : {
20190 358907 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20191 358907 : const enum tree_code cmp = NE_EXPR;
20192 358907 : if (!HONOR_SIGNED_ZEROS (type)
20193 358907 : && bitwise_equal_p (captures[0], captures[1])
20194 : )
20195 : {
20196 2699 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1946;
20197 2665 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1946;
20198 2665 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1946;
20199 2665 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
20200 2665 : {
20201 2665 : tree _r;
20202 2665 : _r = captures[1];
20203 2665 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1107, __FILE__, __LINE__, true);
20204 : return _r;
20205 : }
20206 2992242 : next_after_fail1946:;
20207 : }
20208 : }
20209 : }
20210 : }
20211 2992242 : switch (TREE_CODE (_q20))
20212 : {
20213 579 : case MINUS_EXPR:
20214 579 : {
20215 579 : tree _q30 = TREE_OPERAND (_q20, 0);
20216 579 : tree _q31 = TREE_OPERAND (_q20, 1);
20217 579 : if (zerop (_q21))
20218 : {
20219 80 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20220 : {
20221 0 : switch (TREE_CODE (_p2))
20222 : {
20223 0 : case MINUS_EXPR:
20224 0 : {
20225 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20226 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20227 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20228 : {
20229 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20230 : {
20231 0 : {
20232 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20233 0 : const enum tree_code cmp = NE_EXPR;
20234 0 : if (!HONOR_SIGNED_ZEROS (type)
20235 : )
20236 : {
20237 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1947;
20238 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1947;
20239 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
20240 0 : {
20241 0 : tree _r;
20242 0 : _r = captures[0];
20243 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1108, __FILE__, __LINE__, true);
20244 : return _r;
20245 : }
20246 579 : next_after_fail1947:;
20247 : }
20248 : }
20249 : }
20250 : }
20251 : break;
20252 : }
20253 : default:;
20254 : }
20255 : }
20256 : }
20257 579 : if (integer_zerop (_q21))
20258 : {
20259 29 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20260 : {
20261 0 : if (integer_zerop (_p2))
20262 : {
20263 0 : {
20264 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20265 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
20266 0 : if (res) return res;
20267 : }
20268 : }
20269 : }
20270 : }
20271 : break;
20272 : }
20273 284790 : case BIT_AND_EXPR:
20274 284790 : {
20275 284790 : tree _q30 = TREE_OPERAND (_q20, 0);
20276 284790 : tree _q31 = TREE_OPERAND (_q20, 1);
20277 284790 : if (integer_pow2p (_q31))
20278 : {
20279 212462 : if (integer_zerop (_q21))
20280 : {
20281 212462 : switch (TREE_CODE (_p1))
20282 : {
20283 2355 : case INTEGER_CST:
20284 2355 : {
20285 2355 : if (integer_zerop (_p2))
20286 : {
20287 1439 : {
20288 1439 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
20289 1439 : if (!POINTER_TYPE_P (type) && integer_pow2p (captures[2])
20290 : )
20291 : {
20292 662 : {
20293 662 : int shift = (wi::exact_log2 (wi::to_wide (captures[2]))
20294 662 : - wi::exact_log2 (wi::to_wide (captures[1])));
20295 662 : if (shift > 0
20296 : )
20297 : {
20298 387 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1948;
20299 387 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1948;
20300 387 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1948;
20301 387 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
20302 387 : {
20303 387 : tree res_op0;
20304 387 : {
20305 387 : tree _o1[2], _r1;
20306 387 : {
20307 387 : tree _o2[1], _r2;
20308 387 : _o2[0] = captures[0];
20309 387 : if (TREE_TYPE (_o2[0]) != type)
20310 : {
20311 384 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
20312 : }
20313 : else
20314 : _r2 = _o2[0];
20315 387 : _o1[0] = _r2;
20316 : }
20317 387 : _o1[1] = build_int_cst (integer_type_node, shift);
20318 387 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
20319 387 : res_op0 = _r1;
20320 : }
20321 387 : tree res_op1;
20322 387 : res_op1 = captures[2];
20323 387 : tree _r;
20324 387 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20325 387 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1109, __FILE__, __LINE__, true);
20326 13157089 : return _r;
20327 : }
20328 2991577 : next_after_fail1948:;
20329 : }
20330 : else
20331 : {
20332 275 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1949;
20333 275 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1949;
20334 275 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1949;
20335 275 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
20336 275 : {
20337 275 : tree res_op0;
20338 275 : {
20339 275 : tree _o1[1], _r1;
20340 275 : {
20341 275 : tree _o2[2], _r2;
20342 275 : _o2[0] = captures[0];
20343 275 : _o2[1] = build_int_cst (integer_type_node, -shift);
20344 275 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
20345 275 : _o1[0] = _r2;
20346 : }
20347 275 : if (TREE_TYPE (_o1[0]) != type)
20348 : {
20349 139 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
20350 : }
20351 : else
20352 : _r1 = _o1[0];
20353 275 : res_op0 = _r1;
20354 : }
20355 275 : tree res_op1;
20356 275 : res_op1 = captures[2];
20357 275 : tree _r;
20358 275 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20359 275 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1110, __FILE__, __LINE__, true);
20360 : return _r;
20361 : }
20362 2991577 : next_after_fail1949:;
20363 : }
20364 : }
20365 : }
20366 : }
20367 : }
20368 : break;
20369 : }
20370 : default:;
20371 : }
20372 : }
20373 : }
20374 : break;
20375 : }
20376 335633 : case CALL_EXPR:
20377 335633 : switch (get_call_combined_fn (_q20))
20378 : {
20379 30 : case CFN_BUILT_IN_SIGNBITF:
20380 30 : if (call_expr_nargs (_q20) == 1)
20381 : {
20382 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20383 30 : if (integer_zerop (_q21))
20384 : {
20385 30 : switch (TREE_CODE (_p1))
20386 : {
20387 0 : case NEGATE_EXPR:
20388 0 : {
20389 0 : tree _q60 = TREE_OPERAND (_p1, 0);
20390 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20391 : {
20392 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20393 : {
20394 0 : {
20395 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20396 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITF);
20397 0 : if (res) return res;
20398 : }
20399 : }
20400 : }
20401 : break;
20402 : }
20403 : default:;
20404 : }
20405 : }
20406 : }
20407 : break;
20408 30 : case CFN_BUILT_IN_SIGNBITL:
20409 30 : if (call_expr_nargs (_q20) == 1)
20410 : {
20411 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20412 30 : if (integer_zerop (_q21))
20413 : {
20414 30 : switch (TREE_CODE (_p1))
20415 : {
20416 0 : case NEGATE_EXPR:
20417 0 : {
20418 0 : tree _q60 = TREE_OPERAND (_p1, 0);
20419 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20420 : {
20421 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20422 : {
20423 0 : {
20424 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20425 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITL);
20426 0 : if (res) return res;
20427 : }
20428 : }
20429 : }
20430 : break;
20431 : }
20432 : default:;
20433 : }
20434 : }
20435 : }
20436 : break;
20437 0 : case CFN_SIGNBIT:
20438 0 : if (call_expr_nargs (_q20) == 1)
20439 : {
20440 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20441 0 : if (integer_zerop (_q21))
20442 : {
20443 0 : switch (TREE_CODE (_p1))
20444 : {
20445 0 : case NEGATE_EXPR:
20446 0 : {
20447 0 : tree _q60 = TREE_OPERAND (_p1, 0);
20448 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20449 : {
20450 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20451 : {
20452 0 : {
20453 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20454 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_SIGNBIT);
20455 0 : if (res) return res;
20456 : }
20457 : }
20458 : }
20459 : break;
20460 : }
20461 : default:;
20462 : }
20463 : }
20464 : }
20465 : break;
20466 2896 : case CFN_BUILT_IN_SIGNBIT:
20467 2896 : if (call_expr_nargs (_q20) == 1)
20468 : {
20469 2896 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
20470 2896 : if (integer_zerop (_q21))
20471 : {
20472 2896 : switch (TREE_CODE (_p1))
20473 : {
20474 4 : case NEGATE_EXPR:
20475 4 : {
20476 4 : tree _q60 = TREE_OPERAND (_p1, 0);
20477 4 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
20478 : {
20479 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
20480 : {
20481 3 : {
20482 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
20483 3 : tree res = generic_simplify_389 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBIT);
20484 3 : if (res) return res;
20485 : }
20486 : }
20487 : }
20488 : break;
20489 : }
20490 : default:;
20491 : }
20492 : }
20493 : }
20494 : break;
20495 : default:;
20496 : }
20497 : break;
20498 2991577 : default:;
20499 : }
20500 2991577 : if (integer_zerop (_q21))
20501 : {
20502 1980336 : switch (TREE_CODE (_p1))
20503 : {
20504 111466 : case PLUS_EXPR:
20505 111466 : {
20506 111466 : tree _q50 = TREE_OPERAND (_p1, 0);
20507 111466 : tree _q51 = TREE_OPERAND (_p1, 1);
20508 111466 : {
20509 111466 : tree _q50_pops[1];
20510 111466 : if (tree_nop_convert (_q50, _q50_pops))
20511 : {
20512 11942 : tree _q60 = _q50_pops[0];
20513 11942 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20514 : {
20515 1670 : if (integer_all_onesp (_q51))
20516 : {
20517 1670 : if (integer_zerop (_p2))
20518 : {
20519 1662 : {
20520 1662 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
20521 1662 : tree res = generic_simplify_394 (loc, type, _p0, _p1, _p2, captures);
20522 1662 : if (res) return res;
20523 : }
20524 : }
20525 : }
20526 : }
20527 : }
20528 : }
20529 109804 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20530 : {
20531 2072 : if (integer_all_onesp (_q51))
20532 : {
20533 2037 : if (integer_zerop (_p2))
20534 : {
20535 2027 : {
20536 2027 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
20537 2027 : tree res = generic_simplify_395 (loc, type, _p0, _p1, _p2, captures);
20538 2027 : if (res) return res;
20539 : }
20540 : }
20541 : }
20542 : }
20543 : break;
20544 : }
20545 599210 : case CALL_EXPR:
20546 599210 : switch (get_call_combined_fn (_p1))
20547 : {
20548 0 : case CFN_PARITY:
20549 0 : if (call_expr_nargs (_p1) == 1)
20550 : {
20551 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20552 0 : switch (TREE_CODE (_q50))
20553 : {
20554 0 : CASE_CONVERT:
20555 0 : {
20556 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20557 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20558 : {
20559 0 : if (integer_zerop (_p2))
20560 : {
20561 0 : {
20562 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20563 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
20564 0 : if (res) return res;
20565 : }
20566 : }
20567 : }
20568 : break;
20569 : }
20570 0 : default:;
20571 : }
20572 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20573 : {
20574 0 : if (integer_zerop (_p2))
20575 : {
20576 0 : {
20577 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20578 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
20579 0 : if (res) return res;
20580 : }
20581 : }
20582 : }
20583 : }
20584 : break;
20585 7 : case CFN_BUILT_IN_FFS:
20586 7 : if (call_expr_nargs (_p1) == 1)
20587 : {
20588 7 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20589 7 : switch (TREE_CODE (_q50))
20590 : {
20591 0 : CASE_CONVERT:
20592 0 : {
20593 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20594 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20595 : {
20596 0 : if (integer_zerop (_p2))
20597 : {
20598 0 : {
20599 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20600 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
20601 0 : if (res) return res;
20602 : }
20603 : }
20604 : }
20605 : break;
20606 : }
20607 7 : default:;
20608 : }
20609 7 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20610 : {
20611 0 : if (integer_zerop (_p2))
20612 : {
20613 0 : {
20614 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20615 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
20616 0 : if (res) return res;
20617 : }
20618 : }
20619 : }
20620 : }
20621 : break;
20622 0 : case CFN_BUILT_IN_FFSIMAX:
20623 0 : if (call_expr_nargs (_p1) == 1)
20624 : {
20625 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20626 0 : switch (TREE_CODE (_q50))
20627 : {
20628 0 : CASE_CONVERT:
20629 0 : {
20630 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20631 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20632 : {
20633 0 : if (integer_zerop (_p2))
20634 : {
20635 0 : {
20636 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20637 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
20638 0 : if (res) return res;
20639 : }
20640 : }
20641 : }
20642 : break;
20643 : }
20644 0 : default:;
20645 : }
20646 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20647 : {
20648 0 : if (integer_zerop (_p2))
20649 : {
20650 0 : {
20651 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20652 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
20653 0 : if (res) return res;
20654 : }
20655 : }
20656 : }
20657 : }
20658 : break;
20659 2 : case CFN_BUILT_IN_POPCOUNT:
20660 2 : if (call_expr_nargs (_p1) == 1)
20661 : {
20662 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20663 2 : switch (TREE_CODE (_q50))
20664 : {
20665 1 : CASE_CONVERT:
20666 1 : {
20667 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20668 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20669 : {
20670 1 : if (integer_zerop (_p2))
20671 : {
20672 1 : {
20673 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20674 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
20675 1 : if (res) return res;
20676 : }
20677 : }
20678 : }
20679 : break;
20680 : }
20681 1 : default:;
20682 : }
20683 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20684 : {
20685 0 : if (integer_zerop (_p2))
20686 : {
20687 0 : {
20688 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20689 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
20690 0 : if (res) return res;
20691 : }
20692 : }
20693 : }
20694 : }
20695 : break;
20696 2 : case CFN_BUILT_IN_PARITYL:
20697 2 : if (call_expr_nargs (_p1) == 1)
20698 : {
20699 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20700 2 : switch (TREE_CODE (_q50))
20701 : {
20702 1 : CASE_CONVERT:
20703 1 : {
20704 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20705 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20706 : {
20707 1 : if (integer_zerop (_p2))
20708 : {
20709 1 : {
20710 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20711 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
20712 1 : if (res) return res;
20713 : }
20714 : }
20715 : }
20716 : break;
20717 : }
20718 1 : default:;
20719 : }
20720 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20721 : {
20722 0 : if (integer_zerop (_p2))
20723 : {
20724 0 : {
20725 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20726 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
20727 0 : if (res) return res;
20728 : }
20729 : }
20730 : }
20731 : }
20732 : break;
20733 16 : case CFN_BUILT_IN_FFSL:
20734 16 : if (call_expr_nargs (_p1) == 1)
20735 : {
20736 16 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20737 16 : switch (TREE_CODE (_q50))
20738 : {
20739 16 : CASE_CONVERT:
20740 16 : {
20741 16 : tree _q60 = TREE_OPERAND (_q50, 0);
20742 16 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20743 : {
20744 0 : if (integer_zerop (_p2))
20745 : {
20746 0 : {
20747 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20748 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
20749 0 : if (res) return res;
20750 : }
20751 : }
20752 : }
20753 : break;
20754 : }
20755 16 : default:;
20756 : }
20757 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20758 : {
20759 0 : if (integer_zerop (_p2))
20760 : {
20761 0 : {
20762 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20763 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
20764 0 : if (res) return res;
20765 : }
20766 : }
20767 : }
20768 : }
20769 : break;
20770 2 : case CFN_BUILT_IN_POPCOUNTLL:
20771 2 : if (call_expr_nargs (_p1) == 1)
20772 : {
20773 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20774 2 : switch (TREE_CODE (_q50))
20775 : {
20776 1 : CASE_CONVERT:
20777 1 : {
20778 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20779 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20780 : {
20781 1 : if (integer_zerop (_p2))
20782 : {
20783 1 : {
20784 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20785 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
20786 1 : if (res) return res;
20787 : }
20788 : }
20789 : }
20790 : break;
20791 : }
20792 1 : default:;
20793 : }
20794 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20795 : {
20796 0 : if (integer_zerop (_p2))
20797 : {
20798 0 : {
20799 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20800 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
20801 0 : if (res) return res;
20802 : }
20803 : }
20804 : }
20805 : }
20806 : break;
20807 0 : case CFN_POPCOUNT:
20808 0 : if (call_expr_nargs (_p1) == 1)
20809 : {
20810 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20811 0 : switch (TREE_CODE (_q50))
20812 : {
20813 0 : CASE_CONVERT:
20814 0 : {
20815 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20816 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20817 : {
20818 0 : if (integer_zerop (_p2))
20819 : {
20820 0 : {
20821 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20822 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
20823 0 : if (res) return res;
20824 : }
20825 : }
20826 : }
20827 : break;
20828 : }
20829 0 : default:;
20830 : }
20831 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20832 : {
20833 0 : if (integer_zerop (_p2))
20834 : {
20835 0 : {
20836 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20837 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
20838 0 : if (res) return res;
20839 : }
20840 : }
20841 : }
20842 : }
20843 : break;
20844 0 : case CFN_BUILT_IN_PARITYIMAX:
20845 0 : if (call_expr_nargs (_p1) == 1)
20846 : {
20847 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20848 0 : switch (TREE_CODE (_q50))
20849 : {
20850 0 : CASE_CONVERT:
20851 0 : {
20852 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20853 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20854 : {
20855 0 : if (integer_zerop (_p2))
20856 : {
20857 0 : {
20858 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20859 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
20860 0 : if (res) return res;
20861 : }
20862 : }
20863 : }
20864 : break;
20865 : }
20866 0 : default:;
20867 : }
20868 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20869 : {
20870 0 : if (integer_zerop (_p2))
20871 : {
20872 0 : {
20873 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20874 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
20875 0 : if (res) return res;
20876 : }
20877 : }
20878 : }
20879 : }
20880 : break;
20881 2 : case CFN_BUILT_IN_CLRSBL:
20882 2 : if (call_expr_nargs (_p1) == 1)
20883 : {
20884 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20885 2 : switch (TREE_CODE (_q50))
20886 : {
20887 0 : CASE_CONVERT:
20888 0 : {
20889 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20890 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20891 : {
20892 0 : switch (TREE_CODE (_p2))
20893 : {
20894 0 : case INTEGER_CST:
20895 0 : {
20896 0 : {
20897 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20898 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
20899 0 : if (res) return res;
20900 : }
20901 0 : break;
20902 : }
20903 : default:;
20904 : }
20905 : }
20906 : break;
20907 : }
20908 2 : default:;
20909 : }
20910 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20911 : {
20912 1 : switch (TREE_CODE (_p2))
20913 : {
20914 1 : case INTEGER_CST:
20915 1 : {
20916 1 : {
20917 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
20918 1 : tree res = generic_simplify_393 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
20919 1 : if (res) return res;
20920 : }
20921 0 : break;
20922 : }
20923 : default:;
20924 : }
20925 : }
20926 : }
20927 : break;
20928 0 : case CFN_FFS:
20929 0 : if (call_expr_nargs (_p1) == 1)
20930 : {
20931 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20932 0 : switch (TREE_CODE (_q50))
20933 : {
20934 0 : CASE_CONVERT:
20935 0 : {
20936 0 : tree _q60 = TREE_OPERAND (_q50, 0);
20937 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20938 : {
20939 0 : if (integer_zerop (_p2))
20940 : {
20941 0 : {
20942 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20943 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
20944 0 : if (res) return res;
20945 : }
20946 : }
20947 : }
20948 : break;
20949 : }
20950 0 : default:;
20951 : }
20952 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20953 : {
20954 0 : if (integer_zerop (_p2))
20955 : {
20956 0 : {
20957 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20958 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
20959 0 : if (res) return res;
20960 : }
20961 : }
20962 : }
20963 : }
20964 : break;
20965 2 : case CFN_BUILT_IN_PARITY:
20966 2 : if (call_expr_nargs (_p1) == 1)
20967 : {
20968 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
20969 2 : switch (TREE_CODE (_q50))
20970 : {
20971 1 : CASE_CONVERT:
20972 1 : {
20973 1 : tree _q60 = TREE_OPERAND (_q50, 0);
20974 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
20975 : {
20976 1 : if (integer_zerop (_p2))
20977 : {
20978 1 : {
20979 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20980 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
20981 1 : if (res) return res;
20982 : }
20983 : }
20984 : }
20985 : break;
20986 : }
20987 1 : default:;
20988 : }
20989 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
20990 : {
20991 0 : if (integer_zerop (_p2))
20992 : {
20993 0 : {
20994 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
20995 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
20996 0 : if (res) return res;
20997 : }
20998 : }
20999 : }
21000 : }
21001 : break;
21002 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
21003 0 : if (call_expr_nargs (_p1) == 1)
21004 : {
21005 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21006 0 : switch (TREE_CODE (_q50))
21007 : {
21008 0 : CASE_CONVERT:
21009 0 : {
21010 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21011 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21012 : {
21013 0 : if (integer_zerop (_p2))
21014 : {
21015 0 : {
21016 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21017 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
21018 0 : if (res) return res;
21019 : }
21020 : }
21021 : }
21022 : break;
21023 : }
21024 0 : default:;
21025 : }
21026 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21027 : {
21028 0 : if (integer_zerop (_p2))
21029 : {
21030 0 : {
21031 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21032 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
21033 0 : if (res) return res;
21034 : }
21035 : }
21036 : }
21037 : }
21038 : break;
21039 0 : case CFN_BUILT_IN_CLRSBIMAX:
21040 0 : if (call_expr_nargs (_p1) == 1)
21041 : {
21042 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21043 0 : switch (TREE_CODE (_q50))
21044 : {
21045 0 : CASE_CONVERT:
21046 0 : {
21047 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21048 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21049 : {
21050 0 : switch (TREE_CODE (_p2))
21051 : {
21052 0 : case INTEGER_CST:
21053 0 : {
21054 0 : {
21055 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21056 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
21057 0 : if (res) return res;
21058 : }
21059 0 : break;
21060 : }
21061 : default:;
21062 : }
21063 : }
21064 : break;
21065 : }
21066 0 : default:;
21067 : }
21068 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21069 : {
21070 0 : switch (TREE_CODE (_p2))
21071 : {
21072 0 : case INTEGER_CST:
21073 0 : {
21074 0 : {
21075 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21076 0 : tree res = generic_simplify_393 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
21077 0 : if (res) return res;
21078 : }
21079 0 : break;
21080 : }
21081 : default:;
21082 : }
21083 : }
21084 : }
21085 : break;
21086 2 : case CFN_BUILT_IN_CLRSBLL:
21087 2 : if (call_expr_nargs (_p1) == 1)
21088 : {
21089 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21090 2 : switch (TREE_CODE (_q50))
21091 : {
21092 0 : CASE_CONVERT:
21093 0 : {
21094 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21095 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21096 : {
21097 0 : switch (TREE_CODE (_p2))
21098 : {
21099 0 : case INTEGER_CST:
21100 0 : {
21101 0 : {
21102 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21103 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
21104 0 : if (res) return res;
21105 : }
21106 0 : break;
21107 : }
21108 : default:;
21109 : }
21110 : }
21111 : break;
21112 : }
21113 2 : default:;
21114 : }
21115 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21116 : {
21117 1 : switch (TREE_CODE (_p2))
21118 : {
21119 1 : case INTEGER_CST:
21120 1 : {
21121 1 : {
21122 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21123 1 : tree res = generic_simplify_393 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
21124 1 : if (res) return res;
21125 : }
21126 0 : break;
21127 : }
21128 : default:;
21129 : }
21130 : }
21131 : }
21132 : break;
21133 0 : case CFN_BSWAP:
21134 0 : if (call_expr_nargs (_p1) == 1)
21135 : {
21136 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21137 0 : switch (TREE_CODE (_q50))
21138 : {
21139 0 : CASE_CONVERT:
21140 0 : {
21141 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21142 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21143 : {
21144 0 : if (integer_zerop (_p2))
21145 : {
21146 0 : {
21147 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21148 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BSWAP);
21149 0 : if (res) return res;
21150 : }
21151 : }
21152 : }
21153 : break;
21154 : }
21155 0 : default:;
21156 : }
21157 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21158 : {
21159 0 : if (integer_zerop (_p2))
21160 : {
21161 0 : {
21162 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21163 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BSWAP);
21164 0 : if (res) return res;
21165 : }
21166 : }
21167 : }
21168 : }
21169 : break;
21170 0 : case CFN_CLRSB:
21171 0 : if (call_expr_nargs (_p1) == 1)
21172 : {
21173 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21174 0 : switch (TREE_CODE (_q50))
21175 : {
21176 0 : CASE_CONVERT:
21177 0 : {
21178 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21179 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21180 : {
21181 0 : switch (TREE_CODE (_p2))
21182 : {
21183 0 : case INTEGER_CST:
21184 0 : {
21185 0 : {
21186 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21187 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
21188 0 : if (res) return res;
21189 : }
21190 0 : break;
21191 : }
21192 : default:;
21193 : }
21194 : }
21195 : break;
21196 : }
21197 0 : default:;
21198 : }
21199 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21200 : {
21201 0 : switch (TREE_CODE (_p2))
21202 : {
21203 0 : case INTEGER_CST:
21204 0 : {
21205 0 : {
21206 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21207 0 : tree res = generic_simplify_393 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
21208 0 : if (res) return res;
21209 : }
21210 0 : break;
21211 : }
21212 : default:;
21213 : }
21214 : }
21215 : }
21216 : break;
21217 0 : case CFN_BUILT_IN_BSWAP128:
21218 0 : if (call_expr_nargs (_p1) == 1)
21219 : {
21220 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21221 0 : switch (TREE_CODE (_q50))
21222 : {
21223 0 : CASE_CONVERT:
21224 0 : {
21225 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21226 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21227 : {
21228 0 : if (integer_zerop (_p2))
21229 : {
21230 0 : {
21231 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21232 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
21233 0 : if (res) return res;
21234 : }
21235 : }
21236 : }
21237 : break;
21238 : }
21239 0 : default:;
21240 : }
21241 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21242 : {
21243 0 : if (integer_zerop (_p2))
21244 : {
21245 0 : {
21246 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21247 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
21248 0 : if (res) return res;
21249 : }
21250 : }
21251 : }
21252 : }
21253 : break;
21254 2 : case CFN_BUILT_IN_POPCOUNTL:
21255 2 : if (call_expr_nargs (_p1) == 1)
21256 : {
21257 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21258 2 : switch (TREE_CODE (_q50))
21259 : {
21260 1 : CASE_CONVERT:
21261 1 : {
21262 1 : tree _q60 = TREE_OPERAND (_q50, 0);
21263 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21264 : {
21265 1 : if (integer_zerop (_p2))
21266 : {
21267 1 : {
21268 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21269 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
21270 1 : if (res) return res;
21271 : }
21272 : }
21273 : }
21274 : break;
21275 : }
21276 1 : default:;
21277 : }
21278 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21279 : {
21280 0 : if (integer_zerop (_p2))
21281 : {
21282 0 : {
21283 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21284 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
21285 0 : if (res) return res;
21286 : }
21287 : }
21288 : }
21289 : }
21290 : break;
21291 2 : case CFN_BUILT_IN_CLRSB:
21292 2 : if (call_expr_nargs (_p1) == 1)
21293 : {
21294 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21295 2 : switch (TREE_CODE (_q50))
21296 : {
21297 0 : CASE_CONVERT:
21298 0 : {
21299 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21300 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21301 : {
21302 0 : switch (TREE_CODE (_p2))
21303 : {
21304 0 : case INTEGER_CST:
21305 0 : {
21306 0 : {
21307 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21308 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
21309 0 : if (res) return res;
21310 : }
21311 0 : break;
21312 : }
21313 : default:;
21314 : }
21315 : }
21316 : break;
21317 : }
21318 2 : default:;
21319 : }
21320 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21321 : {
21322 1 : switch (TREE_CODE (_p2))
21323 : {
21324 1 : case INTEGER_CST:
21325 1 : {
21326 1 : {
21327 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
21328 1 : tree res = generic_simplify_393 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
21329 1 : if (res) return res;
21330 : }
21331 0 : break;
21332 : }
21333 : default:;
21334 : }
21335 : }
21336 : }
21337 : break;
21338 0 : case CFN_BUILT_IN_FFSLL:
21339 0 : if (call_expr_nargs (_p1) == 1)
21340 : {
21341 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21342 0 : switch (TREE_CODE (_q50))
21343 : {
21344 0 : CASE_CONVERT:
21345 0 : {
21346 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21347 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21348 : {
21349 0 : if (integer_zerop (_p2))
21350 : {
21351 0 : {
21352 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21353 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
21354 0 : if (res) return res;
21355 : }
21356 : }
21357 : }
21358 : break;
21359 : }
21360 0 : default:;
21361 : }
21362 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21363 : {
21364 0 : if (integer_zerop (_p2))
21365 : {
21366 0 : {
21367 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21368 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
21369 0 : if (res) return res;
21370 : }
21371 : }
21372 : }
21373 : }
21374 : break;
21375 2 : case CFN_BUILT_IN_PARITYLL:
21376 2 : if (call_expr_nargs (_p1) == 1)
21377 : {
21378 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21379 2 : switch (TREE_CODE (_q50))
21380 : {
21381 1 : CASE_CONVERT:
21382 1 : {
21383 1 : tree _q60 = TREE_OPERAND (_q50, 0);
21384 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21385 : {
21386 1 : if (integer_zerop (_p2))
21387 : {
21388 1 : {
21389 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21390 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
21391 1 : if (res) return res;
21392 : }
21393 : }
21394 : }
21395 : break;
21396 : }
21397 1 : default:;
21398 : }
21399 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21400 : {
21401 0 : if (integer_zerop (_p2))
21402 : {
21403 0 : {
21404 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21405 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
21406 0 : if (res) return res;
21407 : }
21408 : }
21409 : }
21410 : }
21411 : break;
21412 3 : case CFN_BUILT_IN_BSWAP16:
21413 3 : if (call_expr_nargs (_p1) == 1)
21414 : {
21415 3 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21416 3 : switch (TREE_CODE (_q50))
21417 : {
21418 0 : CASE_CONVERT:
21419 0 : {
21420 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21421 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21422 : {
21423 0 : if (integer_zerop (_p2))
21424 : {
21425 0 : {
21426 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21427 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
21428 0 : if (res) return res;
21429 : }
21430 : }
21431 : }
21432 : break;
21433 : }
21434 3 : default:;
21435 : }
21436 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21437 : {
21438 1 : if (integer_zerop (_p2))
21439 : {
21440 1 : {
21441 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21442 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
21443 1 : if (res) return res;
21444 : }
21445 : }
21446 : }
21447 : }
21448 : break;
21449 2 : case CFN_BUILT_IN_BSWAP32:
21450 2 : if (call_expr_nargs (_p1) == 1)
21451 : {
21452 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21453 2 : switch (TREE_CODE (_q50))
21454 : {
21455 0 : CASE_CONVERT:
21456 0 : {
21457 0 : tree _q60 = TREE_OPERAND (_q50, 0);
21458 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21459 : {
21460 0 : if (integer_zerop (_p2))
21461 : {
21462 0 : {
21463 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21464 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
21465 0 : if (res) return res;
21466 : }
21467 : }
21468 : }
21469 : break;
21470 : }
21471 2 : default:;
21472 : }
21473 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21474 : {
21475 1 : if (integer_zerop (_p2))
21476 : {
21477 1 : {
21478 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21479 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
21480 1 : if (res) return res;
21481 : }
21482 : }
21483 : }
21484 : }
21485 : break;
21486 2 : case CFN_BUILT_IN_BSWAP64:
21487 2 : if (call_expr_nargs (_p1) == 1)
21488 : {
21489 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
21490 2 : switch (TREE_CODE (_q50))
21491 : {
21492 1 : CASE_CONVERT:
21493 1 : {
21494 1 : tree _q60 = TREE_OPERAND (_q50, 0);
21495 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21496 : {
21497 1 : if (integer_zerop (_p2))
21498 : {
21499 1 : {
21500 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21501 1 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
21502 1 : if (res) return res;
21503 : }
21504 : }
21505 : }
21506 : break;
21507 : }
21508 1 : default:;
21509 : }
21510 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
21511 : {
21512 0 : if (integer_zerop (_p2))
21513 : {
21514 0 : {
21515 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
21516 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
21517 0 : if (res) return res;
21518 : }
21519 : }
21520 : }
21521 : }
21522 : break;
21523 : default:;
21524 : }
21525 : break;
21526 1976635 : default:;
21527 : }
21528 1976635 : {
21529 1976635 : tree _p1_pops[1];
21530 1976635 : if (tree_nop_convert (_p1, _p1_pops))
21531 : {
21532 165388 : tree _q50 = _p1_pops[0];
21533 165388 : switch (TREE_CODE (_q50))
21534 : {
21535 339 : case PLUS_EXPR:
21536 339 : {
21537 339 : tree _q60 = TREE_OPERAND (_q50, 0);
21538 339 : tree _q61 = TREE_OPERAND (_q50, 1);
21539 339 : {
21540 339 : tree _q60_pops[1];
21541 339 : if (tree_nop_convert (_q60, _q60_pops))
21542 : {
21543 52 : tree _q70 = _q60_pops[0];
21544 52 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
21545 : {
21546 2 : if (integer_all_onesp (_q61))
21547 : {
21548 2 : if (integer_zerop (_p2))
21549 : {
21550 2 : {
21551 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
21552 2 : tree res = generic_simplify_394 (loc, type, _p0, _p1, _p2, captures);
21553 2 : if (res) return res;
21554 : }
21555 : }
21556 : }
21557 : }
21558 : }
21559 : }
21560 337 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
21561 : {
21562 14 : if (integer_all_onesp (_q61))
21563 : {
21564 0 : if (integer_zerop (_p2))
21565 : {
21566 0 : {
21567 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
21568 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, _p2, captures);
21569 0 : if (res) return res;
21570 : }
21571 : }
21572 : }
21573 : }
21574 : break;
21575 : }
21576 : default:;
21577 : }
21578 : }
21579 : }
21580 : }
21581 : break;
21582 : }
21583 164 : case UNEQ_EXPR:
21584 164 : {
21585 164 : tree _q20 = TREE_OPERAND (_p0, 0);
21586 164 : tree _q21 = TREE_OPERAND (_p0, 1);
21587 164 : if (zerop (_q21))
21588 : {
21589 1 : switch (TREE_CODE (_p2))
21590 : {
21591 0 : case NEGATE_EXPR:
21592 0 : {
21593 0 : tree _q60 = TREE_OPERAND (_p2, 0);
21594 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21595 : {
21596 0 : {
21597 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
21598 0 : const enum tree_code cmp = UNEQ_EXPR;
21599 0 : if (!HONOR_SIGNED_ZEROS (type)
21600 0 : && bitwise_equal_p (captures[0], captures[1])
21601 : )
21602 : {
21603 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1950;
21604 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1950;
21605 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
21606 0 : {
21607 0 : tree _r;
21608 0 : _r = captures[2];
21609 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1102, __FILE__, __LINE__, true);
21610 : return _r;
21611 : }
21612 1 : next_after_fail1950:;
21613 : }
21614 : }
21615 : }
21616 : break;
21617 : }
21618 1 : default:;
21619 : }
21620 1 : if (zerop (_p1))
21621 : {
21622 0 : switch (TREE_CODE (_p2))
21623 : {
21624 0 : case NEGATE_EXPR:
21625 0 : {
21626 0 : tree _q60 = TREE_OPERAND (_p2, 0);
21627 0 : {
21628 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
21629 0 : const enum tree_code cmp = UNEQ_EXPR;
21630 0 : if (!HONOR_SIGNED_ZEROS (type)
21631 0 : && bitwise_equal_p (captures[0], captures[2])
21632 : )
21633 : {
21634 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1951;
21635 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1951;
21636 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1951;
21637 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
21638 0 : {
21639 0 : tree _r;
21640 0 : _r = captures[1];
21641 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1103, __FILE__, __LINE__, true);
21642 : return _r;
21643 : }
21644 164 : next_after_fail1951:;
21645 : }
21646 : }
21647 : break;
21648 : }
21649 : default:;
21650 : }
21651 : }
21652 : }
21653 164 : switch (TREE_CODE (_q20))
21654 : {
21655 0 : case MINUS_EXPR:
21656 0 : {
21657 0 : tree _q30 = TREE_OPERAND (_q20, 0);
21658 0 : tree _q31 = TREE_OPERAND (_q20, 1);
21659 0 : if (zerop (_q21))
21660 : {
21661 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21662 : {
21663 0 : switch (TREE_CODE (_p2))
21664 : {
21665 0 : case MINUS_EXPR:
21666 0 : {
21667 0 : tree _q80 = TREE_OPERAND (_p2, 0);
21668 0 : tree _q81 = TREE_OPERAND (_p2, 1);
21669 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21670 : {
21671 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21672 : {
21673 0 : {
21674 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
21675 0 : const enum tree_code cmp = UNEQ_EXPR;
21676 0 : if (!HONOR_SIGNED_ZEROS (type)
21677 : )
21678 : {
21679 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1952;
21680 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1952;
21681 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
21682 0 : {
21683 0 : tree _r;
21684 0 : _r = captures[3];
21685 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1104, __FILE__, __LINE__, true);
21686 : return _r;
21687 : }
21688 0 : next_after_fail1952:;
21689 : }
21690 : }
21691 : }
21692 : }
21693 : break;
21694 : }
21695 : default:;
21696 : }
21697 : }
21698 : }
21699 0 : if (integer_zerop (_q21))
21700 : {
21701 0 : if (integer_zerop (_p1))
21702 : {
21703 0 : switch (TREE_CODE (_p2))
21704 : {
21705 0 : case MINUS_EXPR:
21706 0 : {
21707 0 : tree _q80 = TREE_OPERAND (_p2, 0);
21708 0 : tree _q81 = TREE_OPERAND (_p2, 1);
21709 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21710 : {
21711 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21712 : {
21713 0 : {
21714 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
21715 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
21716 0 : if (res) return res;
21717 : }
21718 : }
21719 : }
21720 : break;
21721 : }
21722 : default:;
21723 : }
21724 : }
21725 : }
21726 : break;
21727 : }
21728 : default:;
21729 : }
21730 : break;
21731 : }
21732 7 : case LTGT_EXPR:
21733 7 : {
21734 7 : tree _q20 = TREE_OPERAND (_p0, 0);
21735 7 : tree _q21 = TREE_OPERAND (_p0, 1);
21736 7 : if (zerop (_q21))
21737 : {
21738 0 : switch (TREE_CODE (_p2))
21739 : {
21740 0 : case NEGATE_EXPR:
21741 0 : {
21742 0 : tree _q60 = TREE_OPERAND (_p2, 0);
21743 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21744 : {
21745 0 : {
21746 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
21747 0 : const enum tree_code cmp = LTGT_EXPR;
21748 0 : if (!HONOR_SIGNED_ZEROS (type)
21749 0 : && bitwise_equal_p (captures[0], captures[1])
21750 : )
21751 : {
21752 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1953;
21753 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1953;
21754 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
21755 0 : {
21756 0 : tree _r;
21757 0 : _r = captures[1];
21758 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1106, __FILE__, __LINE__, true);
21759 : return _r;
21760 : }
21761 0 : next_after_fail1953:;
21762 : }
21763 : }
21764 : }
21765 : break;
21766 : }
21767 0 : default:;
21768 : }
21769 0 : if (integer_zerop (_p2))
21770 : {
21771 0 : {
21772 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
21773 0 : const enum tree_code cmp = LTGT_EXPR;
21774 0 : if (!HONOR_SIGNED_ZEROS (type)
21775 0 : && bitwise_equal_p (captures[0], captures[1])
21776 : )
21777 : {
21778 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1954;
21779 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1954;
21780 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1954;
21781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
21782 0 : {
21783 0 : tree _r;
21784 0 : _r = captures[1];
21785 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1107, __FILE__, __LINE__, true);
21786 : return _r;
21787 : }
21788 7 : next_after_fail1954:;
21789 : }
21790 : }
21791 : }
21792 : }
21793 7 : switch (TREE_CODE (_q20))
21794 : {
21795 0 : case MINUS_EXPR:
21796 0 : {
21797 0 : tree _q30 = TREE_OPERAND (_q20, 0);
21798 0 : tree _q31 = TREE_OPERAND (_q20, 1);
21799 0 : if (zerop (_q21))
21800 : {
21801 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21802 : {
21803 0 : switch (TREE_CODE (_p2))
21804 : {
21805 0 : case MINUS_EXPR:
21806 0 : {
21807 0 : tree _q80 = TREE_OPERAND (_p2, 0);
21808 0 : tree _q81 = TREE_OPERAND (_p2, 1);
21809 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
21810 : {
21811 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
21812 : {
21813 0 : {
21814 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
21815 0 : const enum tree_code cmp = LTGT_EXPR;
21816 0 : if (!HONOR_SIGNED_ZEROS (type)
21817 : )
21818 : {
21819 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1955;
21820 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1955;
21821 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
21822 0 : {
21823 0 : tree _r;
21824 0 : _r = captures[0];
21825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1108, __FILE__, __LINE__, true);
21826 : return _r;
21827 : }
21828 0 : next_after_fail1955:;
21829 : }
21830 : }
21831 : }
21832 : }
21833 : break;
21834 : }
21835 : default:;
21836 : }
21837 : }
21838 : }
21839 0 : if (integer_zerop (_q21))
21840 : {
21841 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
21842 : {
21843 0 : if (integer_zerop (_p2))
21844 : {
21845 0 : {
21846 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
21847 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
21848 0 : if (res) return res;
21849 : }
21850 : }
21851 : }
21852 : }
21853 : break;
21854 : }
21855 : default:;
21856 : }
21857 : break;
21858 : }
21859 557126 : case GE_EXPR:
21860 557126 : {
21861 557126 : tree _q20 = TREE_OPERAND (_p0, 0);
21862 557126 : tree _q21 = TREE_OPERAND (_p0, 1);
21863 557126 : switch (TREE_CODE (_q20))
21864 : {
21865 62264 : CASE_CONVERT:
21866 62264 : {
21867 62264 : tree _q30 = TREE_OPERAND (_q20, 0);
21868 62264 : if (zerop (_q21))
21869 : {
21870 31066 : switch (TREE_CODE (_p2))
21871 : {
21872 13 : case NEGATE_EXPR:
21873 13 : {
21874 13 : tree _q70 = TREE_OPERAND (_p2, 0);
21875 13 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
21876 : {
21877 13 : {
21878 13 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
21879 13 : const enum tree_code cmp = GE_EXPR;
21880 13 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21881 13 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21882 0 : && element_precision (captures[1])
21883 0 : <= element_precision (captures[0])
21884 0 : && bitwise_equal_p (captures[1], captures[2])
21885 13 : && (!VECTOR_TYPE_P (type)
21886 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
21887 : )
21888 : {
21889 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21890 : )
21891 : {
21892 0 : {
21893 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21894 0 : if (types_match (captures[0], stype)
21895 : )
21896 : {
21897 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1956;
21898 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1956;
21899 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1956;
21900 0 : {
21901 0 : tree res_op0;
21902 0 : res_op0 = captures[0];
21903 0 : tree _r;
21904 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
21905 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1111, __FILE__, __LINE__, true);
21906 : return _r;
21907 : }
21908 557126 : next_after_fail1956:;
21909 : }
21910 : else
21911 : {
21912 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1957;
21913 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1957;
21914 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1957;
21915 0 : {
21916 0 : tree res_op0;
21917 0 : {
21918 0 : tree _o1[1], _r1;
21919 0 : _o1[0] = captures[2];
21920 0 : if (TREE_TYPE (_o1[0]) != stype)
21921 : {
21922 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
21923 : }
21924 : else
21925 : _r1 = _o1[0];
21926 0 : res_op0 = _r1;
21927 : }
21928 0 : tree _r;
21929 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
21930 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1112, __FILE__, __LINE__, true);
21931 : return _r;
21932 : }
21933 557126 : next_after_fail1957:;
21934 : }
21935 : }
21936 : }
21937 : else
21938 : {
21939 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1958;
21940 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1958;
21941 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1958;
21942 0 : {
21943 0 : tree res_op0;
21944 0 : res_op0 = captures[2];
21945 0 : tree _r;
21946 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
21947 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1113, __FILE__, __LINE__, true);
21948 : return _r;
21949 : }
21950 557126 : next_after_fail1958:;
21951 : }
21952 : }
21953 : }
21954 : }
21955 : break;
21956 : }
21957 : default:;
21958 : }
21959 : }
21960 : break;
21961 : }
21962 557126 : default:;
21963 : }
21964 557126 : if (zerop (_q21))
21965 : {
21966 152585 : switch (TREE_CODE (_p2))
21967 : {
21968 32475 : case NEGATE_EXPR:
21969 32475 : {
21970 32475 : tree _q60 = TREE_OPERAND (_p2, 0);
21971 32475 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
21972 : {
21973 32469 : {
21974 32469 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
21975 32469 : const enum tree_code cmp = GE_EXPR;
21976 32469 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
21977 32461 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
21978 64922 : && element_precision (captures[1])
21979 32461 : <= element_precision (captures[0])
21980 32461 : && bitwise_equal_p (captures[1], captures[2])
21981 64832 : && (!VECTOR_TYPE_P (type)
21982 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
21983 : )
21984 : {
21985 32363 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
21986 : )
21987 : {
21988 46 : {
21989 46 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
21990 46 : if (types_match (captures[0], stype)
21991 : )
21992 : {
21993 13 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1959;
21994 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1959;
21995 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1959;
21996 13 : {
21997 13 : tree res_op0;
21998 13 : res_op0 = captures[0];
21999 13 : tree _r;
22000 13 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22001 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1111, __FILE__, __LINE__, true);
22002 : return _r;
22003 : }
22004 524763 : next_after_fail1959:;
22005 : }
22006 : else
22007 : {
22008 33 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1960;
22009 33 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1960;
22010 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1960;
22011 33 : {
22012 33 : tree res_op0;
22013 33 : {
22014 33 : tree _o1[1], _r1;
22015 33 : _o1[0] = captures[2];
22016 33 : if (TREE_TYPE (_o1[0]) != stype)
22017 : {
22018 33 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
22019 : }
22020 : else
22021 : _r1 = _o1[0];
22022 33 : res_op0 = _r1;
22023 : }
22024 33 : tree _r;
22025 33 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22026 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1112, __FILE__, __LINE__, true);
22027 : return _r;
22028 : }
22029 524763 : next_after_fail1960:;
22030 : }
22031 : }
22032 : }
22033 : else
22034 : {
22035 32317 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1961;
22036 32317 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1961;
22037 32317 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1961;
22038 32317 : {
22039 32317 : tree res_op0;
22040 32317 : res_op0 = captures[2];
22041 32317 : tree _r;
22042 32317 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
22043 32317 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1113, __FILE__, __LINE__, true);
22044 : return _r;
22045 : }
22046 524763 : next_after_fail1961:;
22047 : }
22048 : }
22049 : }
22050 : }
22051 : break;
22052 : }
22053 : default:;
22054 : }
22055 : }
22056 524763 : switch (TREE_CODE (_q20))
22057 : {
22058 31981 : case MINUS_EXPR:
22059 31981 : {
22060 31981 : tree _q30 = TREE_OPERAND (_q20, 0);
22061 31981 : tree _q31 = TREE_OPERAND (_q20, 1);
22062 31981 : if (zerop (_q21))
22063 : {
22064 31187 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
22065 : {
22066 1 : switch (TREE_CODE (_p2))
22067 : {
22068 1 : case MINUS_EXPR:
22069 1 : {
22070 1 : tree _q80 = TREE_OPERAND (_p2, 0);
22071 1 : tree _q81 = TREE_OPERAND (_p2, 1);
22072 1 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
22073 : {
22074 1 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
22075 : {
22076 1 : {
22077 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
22078 1 : const enum tree_code cmp = GE_EXPR;
22079 1 : if (!HONOR_SIGNED_ZEROS (type)
22080 1 : && !TYPE_UNSIGNED (type)
22081 2 : && (!VECTOR_TYPE_P (type)
22082 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
22083 : )
22084 : {
22085 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1962;
22086 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1962;
22087 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1962;
22088 1 : {
22089 1 : tree res_op0;
22090 1 : res_op0 = captures[0];
22091 1 : tree _r;
22092 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
22093 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1114, __FILE__, __LINE__, true);
22094 : return _r;
22095 : }
22096 524762 : next_after_fail1962:;
22097 : }
22098 : }
22099 : }
22100 : }
22101 : break;
22102 : }
22103 : default:;
22104 : }
22105 : }
22106 : }
22107 : break;
22108 : }
22109 524762 : default:;
22110 : }
22111 524762 : if (integer_zerop (_q21))
22112 : {
22113 119670 : switch (TREE_CODE (_p1))
22114 : {
22115 65 : case BIT_NOT_EXPR:
22116 65 : {
22117 65 : tree _q50 = TREE_OPERAND (_p1, 0);
22118 65 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
22119 : {
22120 9 : {
22121 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
22122 9 : tree res = generic_simplify_396 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
22123 9 : if (res) return res;
22124 : }
22125 : }
22126 : break;
22127 : }
22128 119661 : default:;
22129 : }
22130 119661 : switch (TREE_CODE (_p2))
22131 : {
22132 35 : case BIT_NOT_EXPR:
22133 35 : {
22134 35 : tree _q60 = TREE_OPERAND (_p2, 0);
22135 35 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
22136 : {
22137 9 : {
22138 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
22139 9 : tree res = generic_simplify_397 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
22140 9 : if (res) return res;
22141 : }
22142 : }
22143 : break;
22144 : }
22145 : default:;
22146 : }
22147 : }
22148 : break;
22149 : }
22150 929159 : case GT_EXPR:
22151 929159 : {
22152 929159 : tree _q20 = TREE_OPERAND (_p0, 0);
22153 929159 : tree _q21 = TREE_OPERAND (_p0, 1);
22154 929159 : switch (TREE_CODE (_q20))
22155 : {
22156 89673 : CASE_CONVERT:
22157 89673 : {
22158 89673 : tree _q30 = TREE_OPERAND (_q20, 0);
22159 89673 : if (zerop (_q21))
22160 : {
22161 1864 : switch (TREE_CODE (_p2))
22162 : {
22163 4 : case NEGATE_EXPR:
22164 4 : {
22165 4 : tree _q70 = TREE_OPERAND (_p2, 0);
22166 4 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
22167 : {
22168 0 : {
22169 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
22170 0 : const enum tree_code cmp = GT_EXPR;
22171 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22172 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22173 0 : && element_precision (captures[1])
22174 0 : <= element_precision (captures[0])
22175 0 : && bitwise_equal_p (captures[1], captures[2])
22176 0 : && (!VECTOR_TYPE_P (type)
22177 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
22178 : )
22179 : {
22180 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22181 : )
22182 : {
22183 0 : {
22184 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22185 0 : if (types_match (captures[0], stype)
22186 : )
22187 : {
22188 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1963;
22189 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1963;
22190 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1963;
22191 0 : {
22192 0 : tree res_op0;
22193 0 : res_op0 = captures[0];
22194 0 : tree _r;
22195 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22196 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1111, __FILE__, __LINE__, true);
22197 : return _r;
22198 : }
22199 929159 : next_after_fail1963:;
22200 : }
22201 : else
22202 : {
22203 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1964;
22204 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1964;
22205 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1964;
22206 0 : {
22207 0 : tree res_op0;
22208 0 : {
22209 0 : tree _o1[1], _r1;
22210 0 : _o1[0] = captures[2];
22211 0 : if (TREE_TYPE (_o1[0]) != stype)
22212 : {
22213 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
22214 : }
22215 : else
22216 : _r1 = _o1[0];
22217 0 : res_op0 = _r1;
22218 : }
22219 0 : tree _r;
22220 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22221 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1112, __FILE__, __LINE__, true);
22222 : return _r;
22223 : }
22224 929159 : next_after_fail1964:;
22225 : }
22226 : }
22227 : }
22228 : else
22229 : {
22230 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1965;
22231 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1965;
22232 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1965;
22233 0 : {
22234 0 : tree res_op0;
22235 0 : res_op0 = captures[2];
22236 0 : tree _r;
22237 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
22238 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1113, __FILE__, __LINE__, true);
22239 : return _r;
22240 : }
22241 929159 : next_after_fail1965:;
22242 : }
22243 : }
22244 : }
22245 : }
22246 : break;
22247 : }
22248 : default:;
22249 : }
22250 : }
22251 : break;
22252 : }
22253 929159 : default:;
22254 : }
22255 929159 : if (zerop (_q21))
22256 : {
22257 210316 : switch (TREE_CODE (_p2))
22258 : {
22259 305 : case NEGATE_EXPR:
22260 305 : {
22261 305 : tree _q60 = TREE_OPERAND (_p2, 0);
22262 305 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
22263 : {
22264 147 : {
22265 147 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
22266 147 : const enum tree_code cmp = GT_EXPR;
22267 147 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22268 115 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22269 230 : && element_precision (captures[1])
22270 115 : <= element_precision (captures[0])
22271 115 : && bitwise_equal_p (captures[1], captures[2])
22272 257 : && (!VECTOR_TYPE_P (type)
22273 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
22274 : )
22275 : {
22276 110 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22277 : )
22278 : {
22279 0 : {
22280 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22281 0 : if (types_match (captures[0], stype)
22282 : )
22283 : {
22284 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1966;
22285 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1966;
22286 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1966;
22287 0 : {
22288 0 : tree res_op0;
22289 0 : res_op0 = captures[0];
22290 0 : tree _r;
22291 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22292 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1111, __FILE__, __LINE__, true);
22293 : return _r;
22294 : }
22295 929049 : next_after_fail1966:;
22296 : }
22297 : else
22298 : {
22299 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1967;
22300 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1967;
22301 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1967;
22302 0 : {
22303 0 : tree res_op0;
22304 0 : {
22305 0 : tree _o1[1], _r1;
22306 0 : _o1[0] = captures[2];
22307 0 : if (TREE_TYPE (_o1[0]) != stype)
22308 : {
22309 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
22310 : }
22311 : else
22312 : _r1 = _o1[0];
22313 0 : res_op0 = _r1;
22314 : }
22315 0 : tree _r;
22316 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
22317 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1112, __FILE__, __LINE__, true);
22318 : return _r;
22319 : }
22320 929049 : next_after_fail1967:;
22321 : }
22322 : }
22323 : }
22324 : else
22325 : {
22326 110 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1968;
22327 110 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1968;
22328 110 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1968;
22329 110 : {
22330 110 : tree res_op0;
22331 110 : res_op0 = captures[2];
22332 110 : tree _r;
22333 110 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
22334 110 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1113, __FILE__, __LINE__, true);
22335 : return _r;
22336 : }
22337 929049 : next_after_fail1968:;
22338 : }
22339 : }
22340 : }
22341 : }
22342 : break;
22343 : }
22344 : default:;
22345 : }
22346 : }
22347 929049 : switch (TREE_CODE (_q20))
22348 : {
22349 1072 : case MINUS_EXPR:
22350 1072 : {
22351 1072 : tree _q30 = TREE_OPERAND (_q20, 0);
22352 1072 : tree _q31 = TREE_OPERAND (_q20, 1);
22353 1072 : if (zerop (_q21))
22354 : {
22355 160 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
22356 : {
22357 15 : switch (TREE_CODE (_p2))
22358 : {
22359 9 : case MINUS_EXPR:
22360 9 : {
22361 9 : tree _q80 = TREE_OPERAND (_p2, 0);
22362 9 : tree _q81 = TREE_OPERAND (_p2, 1);
22363 9 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
22364 : {
22365 9 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
22366 : {
22367 9 : {
22368 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
22369 9 : const enum tree_code cmp = GT_EXPR;
22370 9 : if (!HONOR_SIGNED_ZEROS (type)
22371 9 : && !TYPE_UNSIGNED (type)
22372 18 : && (!VECTOR_TYPE_P (type)
22373 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
22374 : )
22375 : {
22376 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1969;
22377 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1969;
22378 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1969;
22379 9 : {
22380 9 : tree res_op0;
22381 9 : res_op0 = captures[0];
22382 9 : tree _r;
22383 9 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
22384 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1114, __FILE__, __LINE__, true);
22385 : return _r;
22386 : }
22387 12165407 : next_after_fail1969:;
22388 : }
22389 : }
22390 : }
22391 : }
22392 : break;
22393 : }
22394 : default:;
22395 : }
22396 : }
22397 : }
22398 : break;
22399 : }
22400 : default:;
22401 : }
22402 : break;
22403 : }
22404 1411114 : case LE_EXPR:
22405 1411114 : {
22406 1411114 : tree _q20 = TREE_OPERAND (_p0, 0);
22407 1411114 : tree _q21 = TREE_OPERAND (_p0, 1);
22408 1411114 : switch (TREE_CODE (_q20))
22409 : {
22410 142380 : CASE_CONVERT:
22411 142380 : {
22412 142380 : tree _q30 = TREE_OPERAND (_q20, 0);
22413 142380 : if (zerop (_q21))
22414 : {
22415 1500 : switch (TREE_CODE (_p2))
22416 : {
22417 0 : case NEGATE_EXPR:
22418 0 : {
22419 0 : tree _q70 = TREE_OPERAND (_p2, 0);
22420 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
22421 : {
22422 0 : {
22423 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
22424 0 : const enum tree_code cmp = LE_EXPR;
22425 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22426 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22427 0 : && element_precision (captures[1])
22428 0 : <= element_precision (captures[0])
22429 0 : && bitwise_equal_p (captures[1], captures[2])
22430 0 : && (!VECTOR_TYPE_P (type)
22431 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
22432 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
22433 : )
22434 : {
22435 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
22436 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
22437 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22438 : )
22439 : {
22440 0 : {
22441 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22442 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
22443 0 : if (types_match (captures[0], stype)
22444 : )
22445 : {
22446 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1970;
22447 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1970;
22448 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1970;
22449 0 : {
22450 0 : tree res_op0;
22451 0 : {
22452 0 : tree _o1[1], _r1;
22453 0 : {
22454 0 : tree _o2[1], _r2;
22455 0 : _o2[0] = captures[0];
22456 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22457 0 : _o1[0] = _r2;
22458 : }
22459 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22460 0 : res_op0 = _r1;
22461 : }
22462 0 : tree _r;
22463 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22464 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1115, __FILE__, __LINE__, true);
22465 : return _r;
22466 : }
22467 1411114 : next_after_fail1970:;
22468 : }
22469 : else
22470 : {
22471 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1971;
22472 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1971;
22473 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1971;
22474 0 : {
22475 0 : tree res_op0;
22476 0 : {
22477 0 : tree _o1[1], _r1;
22478 0 : {
22479 0 : tree _o2[1], _r2;
22480 0 : {
22481 0 : tree _o3[1], _r3;
22482 0 : _o3[0] = captures[2];
22483 0 : if (TREE_TYPE (_o3[0]) != stype)
22484 : {
22485 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
22486 : }
22487 : else
22488 : _r3 = _o3[0];
22489 0 : _o2[0] = _r3;
22490 : }
22491 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22492 0 : _o1[0] = _r2;
22493 : }
22494 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22495 0 : res_op0 = _r1;
22496 : }
22497 0 : tree _r;
22498 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22499 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1116, __FILE__, __LINE__, true);
22500 : return _r;
22501 : }
22502 1411114 : next_after_fail1971:;
22503 : }
22504 : }
22505 : }
22506 : else
22507 : {
22508 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1972;
22509 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1972;
22510 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1972;
22511 0 : {
22512 0 : tree res_op0;
22513 0 : {
22514 0 : tree _o1[1], _r1;
22515 0 : {
22516 0 : tree _o2[1], _r2;
22517 0 : _o2[0] = captures[2];
22518 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
22519 0 : _o1[0] = _r2;
22520 : }
22521 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22522 0 : res_op0 = _r1;
22523 : }
22524 0 : tree _r;
22525 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22526 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1117, __FILE__, __LINE__, true);
22527 : return _r;
22528 : }
22529 1411114 : next_after_fail1972:;
22530 : }
22531 : }
22532 : }
22533 : }
22534 : break;
22535 : }
22536 : default:;
22537 : }
22538 : }
22539 : break;
22540 : }
22541 1411114 : default:;
22542 : }
22543 1411114 : if (zerop (_q21))
22544 : {
22545 125439 : switch (TREE_CODE (_p2))
22546 : {
22547 7 : case NEGATE_EXPR:
22548 7 : {
22549 7 : tree _q60 = TREE_OPERAND (_p2, 0);
22550 7 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
22551 : {
22552 7 : {
22553 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
22554 7 : const enum tree_code cmp = LE_EXPR;
22555 7 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22556 7 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22557 14 : && element_precision (captures[1])
22558 7 : <= element_precision (captures[0])
22559 7 : && bitwise_equal_p (captures[1], captures[2])
22560 14 : && (!VECTOR_TYPE_P (type)
22561 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
22562 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
22563 : )
22564 : {
22565 14 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
22566 7 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
22567 7 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22568 : )
22569 : {
22570 7 : {
22571 7 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22572 7 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
22573 7 : if (types_match (captures[0], stype)
22574 : )
22575 : {
22576 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1973;
22577 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1973;
22578 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1973;
22579 7 : {
22580 7 : tree res_op0;
22581 7 : {
22582 7 : tree _o1[1], _r1;
22583 7 : {
22584 7 : tree _o2[1], _r2;
22585 7 : _o2[0] = captures[0];
22586 7 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22587 7 : _o1[0] = _r2;
22588 : }
22589 7 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22590 7 : res_op0 = _r1;
22591 : }
22592 7 : tree _r;
22593 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22594 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1115, __FILE__, __LINE__, true);
22595 : return _r;
22596 : }
22597 1411107 : next_after_fail1973:;
22598 : }
22599 : else
22600 : {
22601 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1974;
22602 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1974;
22603 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1974;
22604 0 : {
22605 0 : tree res_op0;
22606 0 : {
22607 0 : tree _o1[1], _r1;
22608 0 : {
22609 0 : tree _o2[1], _r2;
22610 0 : {
22611 0 : tree _o3[1], _r3;
22612 0 : _o3[0] = captures[2];
22613 0 : if (TREE_TYPE (_o3[0]) != stype)
22614 : {
22615 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
22616 : }
22617 : else
22618 : _r3 = _o3[0];
22619 0 : _o2[0] = _r3;
22620 : }
22621 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22622 0 : _o1[0] = _r2;
22623 : }
22624 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22625 0 : res_op0 = _r1;
22626 : }
22627 0 : tree _r;
22628 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22629 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1116, __FILE__, __LINE__, true);
22630 : return _r;
22631 : }
22632 1411107 : next_after_fail1974:;
22633 : }
22634 : }
22635 : }
22636 : else
22637 : {
22638 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1975;
22639 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1975;
22640 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1975;
22641 0 : {
22642 0 : tree res_op0;
22643 0 : {
22644 0 : tree _o1[1], _r1;
22645 0 : {
22646 0 : tree _o2[1], _r2;
22647 0 : _o2[0] = captures[2];
22648 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
22649 0 : _o1[0] = _r2;
22650 : }
22651 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22652 0 : res_op0 = _r1;
22653 : }
22654 0 : tree _r;
22655 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22656 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1117, __FILE__, __LINE__, true);
22657 : return _r;
22658 : }
22659 1411107 : next_after_fail1975:;
22660 : }
22661 : }
22662 : }
22663 : }
22664 : break;
22665 : }
22666 : default:;
22667 : }
22668 : }
22669 1411107 : switch (TREE_CODE (_q20))
22670 : {
22671 190 : case MINUS_EXPR:
22672 190 : {
22673 190 : tree _q30 = TREE_OPERAND (_q20, 0);
22674 190 : tree _q31 = TREE_OPERAND (_q20, 1);
22675 190 : if (zerop (_q21))
22676 : {
22677 148 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
22678 : {
22679 0 : switch (TREE_CODE (_p2))
22680 : {
22681 0 : case MINUS_EXPR:
22682 0 : {
22683 0 : tree _q80 = TREE_OPERAND (_p2, 0);
22684 0 : tree _q81 = TREE_OPERAND (_p2, 1);
22685 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
22686 : {
22687 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
22688 : {
22689 0 : {
22690 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
22691 0 : const enum tree_code cmp = LE_EXPR;
22692 0 : if (!HONOR_SIGNED_ZEROS (type)
22693 0 : && !TYPE_UNSIGNED (type)
22694 : )
22695 : {
22696 0 : if (ANY_INTEGRAL_TYPE_P (type)
22697 0 : && !TYPE_OVERFLOW_WRAPS (type)
22698 0 : && (!VECTOR_TYPE_P (type)
22699 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
22700 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
22701 : )
22702 : {
22703 0 : {
22704 0 : tree utype = unsigned_type_for (type);
22705 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1976;
22706 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1976;
22707 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1976;
22708 0 : {
22709 0 : tree res_op0;
22710 0 : {
22711 0 : tree _o1[1], _r1;
22712 0 : {
22713 0 : tree _o2[1], _r2;
22714 0 : _o2[0] = captures[0];
22715 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22716 0 : _o1[0] = _r2;
22717 : }
22718 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22719 0 : res_op0 = _r1;
22720 : }
22721 0 : tree _r;
22722 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22723 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1118, __FILE__, __LINE__, true);
22724 : return _r;
22725 : }
22726 12165407 : next_after_fail1976:;
22727 : }
22728 : }
22729 : else
22730 : {
22731 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1977;
22732 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1977;
22733 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1977;
22734 0 : {
22735 0 : tree res_op0;
22736 0 : {
22737 0 : tree _o1[1], _r1;
22738 0 : _o1[0] = captures[0];
22739 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22740 0 : res_op0 = _r1;
22741 : }
22742 0 : tree _r;
22743 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
22744 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1119, __FILE__, __LINE__, true);
22745 : return _r;
22746 : }
22747 12165407 : next_after_fail1977:;
22748 : }
22749 : }
22750 : }
22751 : }
22752 : }
22753 : break;
22754 : }
22755 : default:;
22756 : }
22757 : }
22758 : }
22759 : break;
22760 : }
22761 : default:;
22762 : }
22763 : break;
22764 : }
22765 1833413 : case LT_EXPR:
22766 1833413 : {
22767 1833413 : tree _q20 = TREE_OPERAND (_p0, 0);
22768 1833413 : tree _q21 = TREE_OPERAND (_p0, 1);
22769 1833413 : switch (TREE_CODE (_q20))
22770 : {
22771 102763 : CASE_CONVERT:
22772 102763 : {
22773 102763 : tree _q30 = TREE_OPERAND (_q20, 0);
22774 102763 : if (zerop (_q21))
22775 : {
22776 20205 : switch (TREE_CODE (_p2))
22777 : {
22778 8 : case NEGATE_EXPR:
22779 8 : {
22780 8 : tree _q70 = TREE_OPERAND (_p2, 0);
22781 8 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
22782 : {
22783 0 : {
22784 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
22785 0 : const enum tree_code cmp = LT_EXPR;
22786 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22787 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22788 0 : && element_precision (captures[1])
22789 0 : <= element_precision (captures[0])
22790 0 : && bitwise_equal_p (captures[1], captures[2])
22791 0 : && (!VECTOR_TYPE_P (type)
22792 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
22793 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
22794 : )
22795 : {
22796 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
22797 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
22798 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22799 : )
22800 : {
22801 0 : {
22802 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22803 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
22804 0 : if (types_match (captures[0], stype)
22805 : )
22806 : {
22807 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1978;
22808 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1978;
22809 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1978;
22810 0 : {
22811 0 : tree res_op0;
22812 0 : {
22813 0 : tree _o1[1], _r1;
22814 0 : {
22815 0 : tree _o2[1], _r2;
22816 0 : _o2[0] = captures[0];
22817 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22818 0 : _o1[0] = _r2;
22819 : }
22820 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22821 0 : res_op0 = _r1;
22822 : }
22823 0 : tree _r;
22824 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1115, __FILE__, __LINE__, true);
22826 : return _r;
22827 : }
22828 1833413 : next_after_fail1978:;
22829 : }
22830 : else
22831 : {
22832 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1979;
22833 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1979;
22834 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1979;
22835 0 : {
22836 0 : tree res_op0;
22837 0 : {
22838 0 : tree _o1[1], _r1;
22839 0 : {
22840 0 : tree _o2[1], _r2;
22841 0 : {
22842 0 : tree _o3[1], _r3;
22843 0 : _o3[0] = captures[2];
22844 0 : if (TREE_TYPE (_o3[0]) != stype)
22845 : {
22846 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
22847 : }
22848 : else
22849 : _r3 = _o3[0];
22850 0 : _o2[0] = _r3;
22851 : }
22852 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22853 0 : _o1[0] = _r2;
22854 : }
22855 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22856 0 : res_op0 = _r1;
22857 : }
22858 0 : tree _r;
22859 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22860 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1116, __FILE__, __LINE__, true);
22861 : return _r;
22862 : }
22863 1833413 : next_after_fail1979:;
22864 : }
22865 : }
22866 : }
22867 : else
22868 : {
22869 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1980;
22870 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1980;
22871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1980;
22872 0 : {
22873 0 : tree res_op0;
22874 0 : {
22875 0 : tree _o1[1], _r1;
22876 0 : {
22877 0 : tree _o2[1], _r2;
22878 0 : _o2[0] = captures[2];
22879 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
22880 0 : _o1[0] = _r2;
22881 : }
22882 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22883 0 : res_op0 = _r1;
22884 : }
22885 0 : tree _r;
22886 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22887 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1117, __FILE__, __LINE__, true);
22888 : return _r;
22889 : }
22890 1833413 : next_after_fail1980:;
22891 : }
22892 : }
22893 : }
22894 : }
22895 : break;
22896 : }
22897 : default:;
22898 : }
22899 : }
22900 : break;
22901 : }
22902 1833413 : default:;
22903 : }
22904 1833413 : if (zerop (_q21))
22905 : {
22906 388611 : switch (TREE_CODE (_p2))
22907 : {
22908 33 : case NEGATE_EXPR:
22909 33 : {
22910 33 : tree _q60 = TREE_OPERAND (_p2, 0);
22911 33 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
22912 : {
22913 25 : {
22914 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
22915 25 : const enum tree_code cmp = LT_EXPR;
22916 25 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
22917 25 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
22918 50 : && element_precision (captures[1])
22919 25 : <= element_precision (captures[0])
22920 25 : && bitwise_equal_p (captures[1], captures[2])
22921 50 : && (!VECTOR_TYPE_P (type)
22922 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
22923 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
22924 : )
22925 : {
22926 50 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
22927 25 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
22928 26 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
22929 : )
22930 : {
22931 24 : {
22932 24 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
22933 24 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
22934 24 : if (types_match (captures[0], stype)
22935 : )
22936 : {
22937 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1981;
22938 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1981;
22939 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1981;
22940 24 : {
22941 24 : tree res_op0;
22942 24 : {
22943 24 : tree _o1[1], _r1;
22944 24 : {
22945 24 : tree _o2[1], _r2;
22946 24 : _o2[0] = captures[0];
22947 24 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22948 24 : _o1[0] = _r2;
22949 : }
22950 24 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22951 24 : res_op0 = _r1;
22952 : }
22953 24 : tree _r;
22954 24 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22955 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1115, __FILE__, __LINE__, true);
22956 : return _r;
22957 : }
22958 1833388 : next_after_fail1981:;
22959 : }
22960 : else
22961 : {
22962 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1982;
22963 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1982;
22964 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1982;
22965 0 : {
22966 0 : tree res_op0;
22967 0 : {
22968 0 : tree _o1[1], _r1;
22969 0 : {
22970 0 : tree _o2[1], _r2;
22971 0 : {
22972 0 : tree _o3[1], _r3;
22973 0 : _o3[0] = captures[2];
22974 0 : if (TREE_TYPE (_o3[0]) != stype)
22975 : {
22976 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
22977 : }
22978 : else
22979 : _r3 = _o3[0];
22980 0 : _o2[0] = _r3;
22981 : }
22982 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
22983 0 : _o1[0] = _r2;
22984 : }
22985 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
22986 0 : res_op0 = _r1;
22987 : }
22988 0 : tree _r;
22989 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
22990 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1116, __FILE__, __LINE__, true);
22991 : return _r;
22992 : }
22993 1833388 : next_after_fail1982:;
22994 : }
22995 : }
22996 : }
22997 : else
22998 : {
22999 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1983;
23000 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1983;
23001 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1983;
23002 1 : {
23003 1 : tree res_op0;
23004 1 : {
23005 1 : tree _o1[1], _r1;
23006 1 : {
23007 1 : tree _o2[1], _r2;
23008 1 : _o2[0] = captures[2];
23009 1 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
23010 1 : _o1[0] = _r2;
23011 : }
23012 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
23013 1 : res_op0 = _r1;
23014 : }
23015 1 : tree _r;
23016 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
23017 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1117, __FILE__, __LINE__, true);
23018 : return _r;
23019 : }
23020 1833388 : next_after_fail1983:;
23021 : }
23022 : }
23023 : }
23024 : }
23025 : break;
23026 : }
23027 : default:;
23028 : }
23029 : }
23030 1833388 : switch (TREE_CODE (_q20))
23031 : {
23032 11378 : case MINUS_EXPR:
23033 11378 : {
23034 11378 : tree _q30 = TREE_OPERAND (_q20, 0);
23035 11378 : tree _q31 = TREE_OPERAND (_q20, 1);
23036 11378 : if (zerop (_q21))
23037 : {
23038 7438 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
23039 : {
23040 0 : switch (TREE_CODE (_p2))
23041 : {
23042 0 : case MINUS_EXPR:
23043 0 : {
23044 0 : tree _q80 = TREE_OPERAND (_p2, 0);
23045 0 : tree _q81 = TREE_OPERAND (_p2, 1);
23046 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
23047 : {
23048 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
23049 : {
23050 0 : {
23051 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
23052 0 : const enum tree_code cmp = LT_EXPR;
23053 0 : if (!HONOR_SIGNED_ZEROS (type)
23054 0 : && !TYPE_UNSIGNED (type)
23055 : )
23056 : {
23057 0 : if (ANY_INTEGRAL_TYPE_P (type)
23058 0 : && !TYPE_OVERFLOW_WRAPS (type)
23059 0 : && (!VECTOR_TYPE_P (type)
23060 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
23061 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
23062 : )
23063 : {
23064 0 : {
23065 0 : tree utype = unsigned_type_for (type);
23066 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1984;
23067 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1984;
23068 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1984;
23069 0 : {
23070 0 : tree res_op0;
23071 0 : {
23072 0 : tree _o1[1], _r1;
23073 0 : {
23074 0 : tree _o2[1], _r2;
23075 0 : _o2[0] = captures[0];
23076 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
23077 0 : _o1[0] = _r2;
23078 : }
23079 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
23080 0 : res_op0 = _r1;
23081 : }
23082 0 : tree _r;
23083 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
23084 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1118, __FILE__, __LINE__, true);
23085 : return _r;
23086 : }
23087 1833388 : next_after_fail1984:;
23088 : }
23089 : }
23090 : else
23091 : {
23092 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1985;
23093 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1985;
23094 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1985;
23095 0 : {
23096 0 : tree res_op0;
23097 0 : {
23098 0 : tree _o1[1], _r1;
23099 0 : _o1[0] = captures[0];
23100 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
23101 0 : res_op0 = _r1;
23102 : }
23103 0 : tree _r;
23104 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
23105 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1119, __FILE__, __LINE__, true);
23106 : return _r;
23107 : }
23108 1833388 : next_after_fail1985:;
23109 : }
23110 : }
23111 : }
23112 : }
23113 : }
23114 : break;
23115 : }
23116 : default:;
23117 : }
23118 : }
23119 : }
23120 : break;
23121 : }
23122 1833388 : default:;
23123 : }
23124 1833388 : if (integer_zerop (_q21))
23125 : {
23126 331034 : switch (TREE_CODE (_p1))
23127 : {
23128 26 : case BIT_NOT_EXPR:
23129 26 : {
23130 26 : tree _q50 = TREE_OPERAND (_p1, 0);
23131 26 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
23132 : {
23133 13 : {
23134 13 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
23135 13 : tree res = generic_simplify_396 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
23136 13 : if (res) return res;
23137 : }
23138 : }
23139 : break;
23140 : }
23141 331021 : default:;
23142 : }
23143 331021 : switch (TREE_CODE (_p2))
23144 : {
23145 8 : case BIT_NOT_EXPR:
23146 8 : {
23147 8 : tree _q60 = TREE_OPERAND (_p2, 0);
23148 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
23149 : {
23150 8 : {
23151 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
23152 8 : tree res = generic_simplify_397 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
23153 8 : if (res) return res;
23154 : }
23155 : }
23156 : break;
23157 : }
23158 331013 : default:;
23159 : }
23160 331013 : switch (TREE_CODE (_p1))
23161 : {
23162 293687 : case INTEGER_CST:
23163 293687 : {
23164 293687 : if (integer_zerop (_p2))
23165 : {
23166 9279 : {
23167 9279 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
23168 9279 : if (integer_pow2p (captures[1])
23169 9279 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
23170 : )
23171 : {
23172 9014 : {
23173 9014 : int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
23174 9014 : if (shift >= 0
23175 : )
23176 : {
23177 8999 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1986;
23178 8999 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1986;
23179 8999 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1986;
23180 8999 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1986;
23181 8999 : {
23182 8999 : tree res_op0;
23183 8999 : {
23184 8999 : tree _o1[1], _r1;
23185 8999 : {
23186 8999 : tree _o2[2], _r2;
23187 8999 : _o2[0] = captures[0];
23188 8999 : _o2[1] = build_int_cst (integer_type_node, shift);
23189 8999 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
23190 8999 : _o1[0] = _r2;
23191 : }
23192 8999 : if (TREE_TYPE (_o1[0]) != type)
23193 : {
23194 8982 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
23195 : }
23196 : else
23197 : _r1 = _o1[0];
23198 8999 : res_op0 = _r1;
23199 : }
23200 8999 : tree res_op1;
23201 8999 : res_op1 = captures[1];
23202 8999 : tree _r;
23203 8999 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
23204 8999 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1120, __FILE__, __LINE__, true);
23205 13157089 : return _r;
23206 : }
23207 12165407 : next_after_fail1986:;
23208 : }
23209 : else
23210 : {
23211 15 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1987;
23212 15 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1987;
23213 15 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1987;
23214 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1987;
23215 15 : {
23216 15 : tree res_op0;
23217 15 : {
23218 15 : tree _o1[1], _r1;
23219 15 : _o1[0] = captures[0];
23220 15 : if (TREE_TYPE (_o1[0]) != type)
23221 : {
23222 15 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
23223 : }
23224 : else
23225 : _r1 = _o1[0];
23226 15 : res_op0 = _r1;
23227 : }
23228 15 : tree res_op1;
23229 15 : res_op1 = captures[1];
23230 15 : tree _r;
23231 15 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
23232 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1121, __FILE__, __LINE__, true);
23233 : return _r;
23234 : }
23235 12165407 : next_after_fail1987:;
23236 : }
23237 : }
23238 : }
23239 : }
23240 : }
23241 : break;
23242 : }
23243 : default:;
23244 : }
23245 : }
23246 : break;
23247 : }
23248 12165407 : default:;
23249 : }
23250 12165407 : {
23251 12165407 : tree _p0_pops[1];
23252 12165407 : if (tree_logical_inverted_value (_p0, _p0_pops))
23253 : {
23254 487550 : tree _q20 = _p0_pops[0];
23255 487550 : if (tree_truth_valued_p (_q20))
23256 : {
23257 4479 : {
23258 4479 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
23259 8958 : if (COND_EXPR == VEC_COND_EXPR
23260 4479 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
23261 : )
23262 : {
23263 3165 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1988;
23264 46 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1988;
23265 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1988;
23266 37 : {
23267 37 : tree res_op0;
23268 37 : res_op0 = captures[0];
23269 37 : tree res_op1;
23270 37 : res_op1 = captures[2];
23271 37 : tree res_op2;
23272 37 : res_op2 = captures[1];
23273 37 : tree _r;
23274 37 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
23275 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1122, __FILE__, __LINE__, true);
23276 37 : return _r;
23277 : }
23278 12165370 : next_after_fail1988:;
23279 : }
23280 : }
23281 : }
23282 : }
23283 : }
23284 12165370 : return NULL_TREE;
23285 : }
23286 : #pragma GCC diagnostic pop
|