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 1894354 : tree_power_of_two_cand (tree t, tree *res_ops)
11 : {
12 1894354 : const tree type = TREE_TYPE (t);
13 1894354 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 1894354 : if (TREE_SIDE_EFFECTS (t)) return false;
15 1893589 : switch (TREE_CODE (t))
16 : {
17 1568286 : case INTEGER_CST:
18 1568286 : {
19 1568286 : {
20 1568286 : tree captures[1] ATTRIBUTE_UNUSED = { t };
21 1568286 : {
22 1568286 : res_ops[0] = captures[0];
23 1568286 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 12, __FILE__, __LINE__, false);
24 : return true;
25 : }
26 : }
27 16 : break;
28 : }
29 16 : case LSHIFT_EXPR:
30 16 : {
31 16 : tree _p0 = TREE_OPERAND (t, 0);
32 16 : tree _p1 = TREE_OPERAND (t, 1);
33 16 : switch (TREE_CODE (_p0))
34 : {
35 16 : case INTEGER_CST:
36 16 : {
37 16 : {
38 16 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
39 16 : {
40 16 : res_ops[0] = captures[0];
41 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 13, __FILE__, __LINE__, false);
42 16 : return true;
43 : }
44 : }
45 : break;
46 : }
47 : default:;
48 : }
49 : break;
50 : }
51 : default:;
52 : }
53 : return false;
54 : }
55 :
56 : bool
57 79727733 : tree_with_possible_nonzero_bits (tree t)
58 : {
59 79727733 : const tree type = TREE_TYPE (t);
60 79727733 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
61 79727733 : if (TREE_SIDE_EFFECTS (t)) return false;
62 74731327 : switch (TREE_CODE (t))
63 : {
64 1987791 : case BIT_AND_EXPR:
65 1987791 : {
66 1987791 : tree _p0 = TREE_OPERAND (t, 0);
67 1987791 : tree _p1 = TREE_OPERAND (t, 1);
68 1987791 : if (tree_with_possible_nonzero_bits_1 (_p0))
69 : {
70 860959 : {
71 860959 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
72 860959 : {
73 860959 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
74 860959 : return true;
75 : }
76 : }
77 : }
78 1126832 : if (tree_with_possible_nonzero_bits_1 (_p1))
79 : {
80 951890 : {
81 951890 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
82 951890 : {
83 951890 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
84 951890 : return true;
85 : }
86 : }
87 : }
88 : break;
89 : }
90 72918478 : default:;
91 : }
92 72918478 : if (tree_with_possible_nonzero_bits_1 (t))
93 : {
94 40531837 : {
95 40531837 : tree captures[1] ATTRIBUTE_UNUSED = { t };
96 40531837 : {
97 40531837 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 36, __FILE__, __LINE__, false);
98 40531837 : return true;
99 : }
100 : }
101 : }
102 : return false;
103 : }
104 :
105 : bool
106 747137 : tree_vec_same_elem_p (tree t)
107 : {
108 747137 : const tree type = TREE_TYPE (t);
109 747137 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
110 747137 : if (TREE_SIDE_EFFECTS (t)) return false;
111 747137 : switch (TREE_CODE (t))
112 : {
113 0 : case VEC_DUPLICATE_EXPR:
114 0 : {
115 0 : tree _p0 = TREE_OPERAND (t, 0);
116 0 : {
117 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
118 0 : {
119 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 46, __FILE__, __LINE__, false);
120 0 : return true;
121 : }
122 : }
123 : break;
124 : }
125 : case CONSTRUCTOR:
126 : {
127 : {
128 : tree captures[1] ATTRIBUTE_UNUSED = { t };
129 : if (TREE_CODE (captures[0]) == SSA_NAME
130 : && uniform_vector_p (gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])))
131 : )
132 : {
133 : {
134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 47, __FILE__, __LINE__, false);
135 : return true;
136 : }
137 : }
138 : }
139 : break;
140 : }
141 747137 : default:;
142 : }
143 747137 : {
144 747137 : tree captures[1] ATTRIBUTE_UNUSED = { t };
145 747137 : if (uniform_vector_p (captures[0])
146 : )
147 : {
148 13913 : {
149 13913 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 48, __FILE__, __LINE__, false);
150 13913 : return true;
151 : }
152 : }
153 : }
154 : return false;
155 : }
156 :
157 : tree
158 221715 : generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
159 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
160 : const enum tree_code ARG_UNUSED (op))
161 : {
162 221715 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
163 221715 : {
164 221715 : bool wascmp;
165 221715 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
166 221715 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
167 : )
168 : {
169 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail89;
170 47 : {
171 47 : tree res_op0;
172 47 : res_op0 = wascmp
173 47 : ? constant_boolean_node (true, type)
174 40 : : build_all_ones_cst (TREE_TYPE (captures[0]));
175 47 : tree _r;
176 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
177 47 : if (TREE_SIDE_EFFECTS (captures[0]))
178 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
179 47 : if (TREE_SIDE_EFFECTS (captures[1]))
180 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
181 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 62, __FILE__, __LINE__, true);
182 47 : return _r;
183 : }
184 0 : next_after_fail89:;
185 : }
186 : }
187 221668 : return NULL_TREE;
188 : }
189 :
190 : tree
191 510 : generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
192 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
193 : const enum tree_code ARG_UNUSED (op))
194 : {
195 510 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
196 510 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
197 510 : && tree_nop_conversion_p (type, TREE_TYPE (captures[4]))
198 1020 : && (wi::to_wide (captures[2]) & wi::to_wide (captures[5])) == 0
199 : )
200 : {
201 101 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail99;
202 101 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail99;
203 101 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail99;
204 101 : {
205 101 : tree res_op0;
206 101 : {
207 101 : tree _o1[1], _r1;
208 101 : _o1[0] = captures[0];
209 101 : if (TREE_TYPE (_o1[0]) != type)
210 : {
211 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
212 : }
213 : else
214 : _r1 = _o1[0];
215 101 : res_op0 = _r1;
216 : }
217 101 : tree res_op1;
218 101 : {
219 101 : tree _o1[1], _r1;
220 101 : _o1[0] = captures[3];
221 101 : if (TREE_TYPE (_o1[0]) != type)
222 : {
223 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
224 : }
225 : else
226 : _r1 = _o1[0];
227 101 : res_op1 = _r1;
228 : }
229 101 : tree _r;
230 101 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
231 101 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
232 101 : return _r;
233 : }
234 : next_after_fail99:;
235 : }
236 : return NULL_TREE;
237 : }
238 :
239 : tree
240 24 : generic_simplify_37 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
241 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
242 : {
243 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
244 24 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
245 : )
246 : {
247 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail114;
248 24 : {
249 24 : tree res_op0;
250 24 : {
251 24 : tree _o1[2], _r1;
252 24 : {
253 24 : tree _o2[1], _r2;
254 24 : _o2[0] = captures[2];
255 24 : if (TREE_TYPE (_o2[0]) != type)
256 : {
257 24 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
258 : }
259 : else
260 : _r2 = _o2[0];
261 24 : _o1[0] = _r2;
262 : }
263 24 : _o1[1] = captures[3];
264 24 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
265 24 : res_op0 = _r1;
266 : }
267 24 : tree _r;
268 24 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
269 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
270 24 : return _r;
271 : }
272 0 : next_after_fail114:;
273 : }
274 : return NULL_TREE;
275 : }
276 :
277 : tree
278 18 : generic_simplify_44 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
279 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
280 : const enum tree_code ARG_UNUSED (op))
281 : {
282 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
283 36 : if (INTEGRAL_TYPE_P (type)
284 54 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
285 : )
286 : {
287 0 : {
288 0 : tree t = type;
289 0 : if (!TYPE_OVERFLOW_WRAPS (t))
290 0 : t = unsigned_type_for (t);
291 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
292 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail122;
293 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail122;
294 0 : {
295 0 : tree res_op0;
296 0 : {
297 0 : tree _o1[2], _r1;
298 0 : {
299 0 : tree _o2[1], _r2;
300 0 : _o2[0] = captures[2];
301 0 : if (TREE_TYPE (_o2[0]) != t)
302 : {
303 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
304 : }
305 : else
306 : _r2 = _o2[0];
307 0 : _o1[0] = _r2;
308 : }
309 0 : _o1[1] = wide_int_to_tree (t, c);
310 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
311 0 : res_op0 = _r1;
312 : }
313 0 : tree _r;
314 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
315 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
316 0 : return _r;
317 : }
318 0 : next_after_fail122:;
319 0 : }
320 : }
321 : return NULL_TREE;
322 : }
323 :
324 : tree
325 5301 : generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
326 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
327 : {
328 5301 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
329 5301 : if (fold_real_zero_addition_p (type, captures[0], captures[1], 0)
330 : )
331 : {
332 95 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail132;
333 95 : {
334 95 : tree res_op0;
335 95 : res_op0 = captures[0];
336 95 : tree _r;
337 95 : _r = non_lvalue_loc (loc, res_op0);
338 95 : if (TREE_SIDE_EFFECTS (captures[1]))
339 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
340 95 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
341 95 : return _r;
342 : }
343 0 : next_after_fail132:;
344 : }
345 : return NULL_TREE;
346 : }
347 :
348 : tree
349 0 : generic_simplify_57 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
350 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
351 : {
352 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
353 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail138;
354 0 : {
355 0 : tree res_op0;
356 0 : res_op0 = captures[0];
357 0 : tree res_op1;
358 0 : res_op1 = captures[1];
359 0 : tree _r;
360 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
361 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 106, __FILE__, __LINE__, true);
362 : return _r;
363 : }
364 0 : next_after_fail138:;
365 0 : return NULL_TREE;
366 : }
367 :
368 : tree
369 832 : generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
370 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
371 : {
372 832 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
373 832 : if (!TYPE_SATURATING (type)
374 : )
375 : {
376 832 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
377 1664 : && !FIXED_POINT_TYPE_P (type)
378 : )
379 : {
380 832 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail152;
381 832 : {
382 832 : tree res_op0;
383 832 : res_op0 = captures[2];
384 832 : tree res_op1;
385 832 : res_op1 = captures[1];
386 832 : tree _r;
387 832 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
388 832 : if (TREE_SIDE_EFFECTS (captures[0]))
389 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
390 832 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 120, __FILE__, __LINE__, true);
391 832 : return _r;
392 : }
393 0 : next_after_fail152:;
394 : }
395 : }
396 : return NULL_TREE;
397 : }
398 :
399 : tree
400 9075 : generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
401 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
402 : const enum tree_code ARG_UNUSED (plusminus))
403 : {
404 9075 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
405 9075 : if (!TYPE_SATURATING (type)
406 9075 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
407 : )
408 : {
409 8909 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
410 : )
411 : {
412 4 : if ((!ANY_INTEGRAL_TYPE_P (type)
413 8905 : || TYPE_OVERFLOW_WRAPS (type)
414 3283 : || (INTEGRAL_TYPE_P (type)
415 3283 : && ((tree_expr_nonzero_p (captures[0])
416 136 : && expr_not_equal_to (captures[0],
417 9045 : wi::minus_one (TYPE_PRECISION (type)),
418 : gimple_match_ctx (captures[1])))
419 : || (plusminus == PLUS_EXPR
420 3147 : ? expr_not_equal_to (captures[2],
421 8927 : wi::max_value (TYPE_PRECISION (type), SIGNED),
422 : gimple_match_ctx (captures[1]))
423 3129 : : (expr_not_equal_to (captures[2],
424 12038 : wi::min_value (TYPE_PRECISION (type), SIGNED),
425 : gimple_match_ctx (captures[1]))
426 3105 : && expr_not_equal_to (captures[2],
427 6210 : wi::min_value (TYPE_PRECISION (type), SIGNED)
428 18224 : + 1, gimple_match_ctx (captures[1])))))))
429 12056 : && single_use (captures[1])
430 : )
431 : {
432 8885 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail160;
433 8885 : {
434 8885 : tree res_op0;
435 8885 : {
436 8885 : tree _o1[2], _r1;
437 8885 : _o1[0] = build_one_cst (type);
438 8885 : _o1[1] = captures[2];
439 8885 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
440 8885 : res_op0 = _r1;
441 : }
442 8885 : tree res_op1;
443 8885 : res_op1 = captures[0];
444 8885 : tree _r;
445 8885 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
446 8885 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 128, __FILE__, __LINE__, true);
447 8885 : return _r;
448 : }
449 0 : next_after_fail160:;
450 : }
451 : }
452 : }
453 : return NULL_TREE;
454 : }
455 :
456 : tree
457 4 : generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
458 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
459 : const enum tree_code ARG_UNUSED (log1),
460 : const enum tree_code ARG_UNUSED (log2),
461 : const combined_fn ARG_UNUSED (popcount))
462 : {
463 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
464 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail172;
465 4 : {
466 4 : tree res_op0;
467 4 : {
468 4 : tree _o1[2], _r1;
469 4 : _o1[0] = captures[2];
470 4 : _o1[1] = captures[5];
471 4 : _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
472 4 : res_op0 = _r1;
473 : }
474 4 : tree _r;
475 4 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
476 4 : if (!_r)
477 0 : goto next_after_fail172;
478 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 140, __FILE__, __LINE__, true);
479 : return _r;
480 : }
481 : next_after_fail172:;
482 : return NULL_TREE;
483 : }
484 :
485 : tree
486 0 : generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
487 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
488 : {
489 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail178;
491 0 : {
492 0 : tree res_op0;
493 0 : res_op0 = unshare_expr (captures[2]);
494 0 : tree res_op1;
495 0 : {
496 0 : tree _o1[2], _r1;
497 0 : _o1[0] = captures[1];
498 0 : _o1[1] = captures[2];
499 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
500 0 : res_op1 = _r1;
501 : }
502 0 : tree _r;
503 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
504 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 146, __FILE__, __LINE__, true);
505 : return _r;
506 : }
507 0 : next_after_fail178:;
508 0 : return NULL_TREE;
509 : }
510 :
511 : tree
512 178 : generic_simplify_95 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
513 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
514 : {
515 178 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
516 178 : if (!TYPE_SATURATING (type)
517 : )
518 : {
519 178 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
520 356 : && !FIXED_POINT_TYPE_P (type)
521 : )
522 : {
523 0 : if (!ANY_INTEGRAL_TYPE_P (type)
524 178 : || TYPE_OVERFLOW_WRAPS (type)
525 : )
526 : {
527 102 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail186;
528 102 : {
529 102 : tree res_op0;
530 102 : {
531 102 : tree _o1[1], _r1;
532 102 : _o1[0] = captures[1];
533 102 : if (TREE_TYPE (_o1[0]) != type)
534 : {
535 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
536 : }
537 : else
538 : _r1 = _o1[0];
539 102 : res_op0 = _r1;
540 : }
541 102 : tree _r;
542 102 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
543 102 : if (TREE_SIDE_EFFECTS (captures[0]))
544 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
545 102 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 153, __FILE__, __LINE__, true);
546 102 : return _r;
547 : }
548 0 : next_after_fail186:;
549 : }
550 : else
551 : {
552 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail187;
553 76 : {
554 76 : tree res_op0;
555 76 : {
556 76 : tree _o1[1], _r1;
557 76 : _o1[0] = captures[1];
558 76 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
559 76 : res_op0 = _r1;
560 : }
561 76 : tree _r;
562 76 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
563 76 : if (TREE_SIDE_EFFECTS (captures[0]))
564 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
565 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 154, __FILE__, __LINE__, true);
566 76 : return _r;
567 : }
568 0 : next_after_fail187:;
569 : }
570 : }
571 : }
572 : return NULL_TREE;
573 : }
574 :
575 : tree
576 2 : generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
577 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
578 : const combined_fn ARG_UNUSED (logs))
579 : {
580 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
581 2 : if (flag_unsafe_math_optimizations
582 : )
583 : {
584 2 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
585 2 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
586 2 : && ! flag_trapping_math
587 4 : && ! flag_errno_math
588 : )
589 : {
590 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail203;
591 2 : {
592 2 : tree res_op0;
593 2 : {
594 2 : tree _o1[2], _r1;
595 2 : _o1[0] = captures[1];
596 2 : _o1[1] = captures[3];
597 2 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
598 2 : res_op0 = _r1;
599 : }
600 2 : tree _r;
601 2 : _r = maybe_build_call_expr_loc (loc, logs, type, 1, res_op0);
602 2 : if (!_r)
603 0 : goto next_after_fail203;
604 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 170, __FILE__, __LINE__, true);
605 2 : return _r;
606 : }
607 : next_after_fail203:;
608 : }
609 : }
610 : return NULL_TREE;
611 : }
612 :
613 : tree
614 19725 : generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
615 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
616 : {
617 19725 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
618 19725 : {
619 19725 : bool wascmp;
620 19725 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
621 19725 : && (!wascmp || element_precision (type) == 1)
622 : )
623 : {
624 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail210;
625 1 : {
626 1 : tree res_op0;
627 1 : res_op0 = captures[0];
628 1 : tree res_op1;
629 1 : {
630 1 : tree _o1[1], _r1;
631 1 : _o1[0] = captures[3];
632 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
633 1 : res_op1 = _r1;
634 : }
635 1 : tree _r;
636 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
637 1 : if (TREE_SIDE_EFFECTS (captures[2]))
638 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
639 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 177, __FILE__, __LINE__, true);
640 1 : return _r;
641 : }
642 0 : next_after_fail210:;
643 : }
644 : }
645 19724 : return NULL_TREE;
646 : }
647 :
648 : tree
649 2 : generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
650 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
651 : {
652 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
653 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail219;
654 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail219;
655 2 : {
656 2 : tree res_op0;
657 2 : res_op0 = captures[0];
658 2 : tree res_op1;
659 2 : res_op1 = captures[3];
660 2 : tree _r;
661 2 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
662 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
663 : return _r;
664 : }
665 : next_after_fail219:;
666 : return NULL_TREE;
667 : }
668 :
669 : tree
670 0 : generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
671 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
672 : const enum tree_code ARG_UNUSED (op))
673 : {
674 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
675 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail230;
676 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail230;
677 0 : {
678 0 : tree _r;
679 0 : _r = captures[0];
680 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 181, __FILE__, __LINE__, true);
681 : return _r;
682 : }
683 : next_after_fail230:;
684 : return NULL_TREE;
685 : }
686 :
687 : tree
688 2 : generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
689 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
690 : const enum tree_code ARG_UNUSED (bitop),
691 : const enum tree_code ARG_UNUSED (rbitop))
692 : {
693 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
694 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail243;
695 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail243;
696 2 : {
697 2 : tree res_op0;
698 2 : res_op0 = captures[0];
699 2 : tree res_op1;
700 2 : res_op1 = captures[2];
701 2 : tree _r;
702 2 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
703 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
704 : return _r;
705 : }
706 : next_after_fail243:;
707 : return NULL_TREE;
708 : }
709 :
710 : tree
711 2 : generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
712 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
713 : const enum tree_code ARG_UNUSED (bitop),
714 : const enum tree_code ARG_UNUSED (rbitop))
715 : {
716 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
717 2 : if (bitop == BIT_AND_EXPR
718 : )
719 : {
720 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail248;
721 1 : {
722 1 : tree _r;
723 1 : _r = build_zero_cst (type);
724 1 : if (TREE_SIDE_EFFECTS (captures[0]))
725 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
726 1 : if (TREE_SIDE_EFFECTS (captures[1]))
727 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
728 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 199, __FILE__, __LINE__, true);
729 1 : return _r;
730 : }
731 0 : next_after_fail248:;
732 : }
733 : else
734 : {
735 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail249;
736 1 : {
737 1 : tree _r;
738 1 : _r = build_minus_one_cst (type);
739 1 : if (TREE_SIDE_EFFECTS (captures[0]))
740 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
741 1 : if (TREE_SIDE_EFFECTS (captures[1]))
742 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
743 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 200, __FILE__, __LINE__, true);
744 1 : return _r;
745 : }
746 0 : next_after_fail249:;
747 : }
748 : return NULL_TREE;
749 : }
750 :
751 : tree
752 31 : generic_simplify_158 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
753 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
754 : const enum tree_code ARG_UNUSED (code2),
755 : const enum tree_code ARG_UNUSED (code1))
756 : {
757 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
758 31 : if ((TREE_CODE (captures[2]) == INTEGER_CST
759 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
760 31 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
761 24 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
762 0 : && operand_equal_p (captures[2], captures[4]))
763 : )
764 : {
765 7 : {
766 7 : int cmp = 0;
767 7 : if (TREE_CODE (captures[2]) == INTEGER_CST
768 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
769 7 : cmp = tree_int_cst_compare (captures[2], captures[4]);
770 7 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
771 7 : && (code2 == LT_EXPR || code2 == LE_EXPR)
772 : )
773 : {
774 7 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
775 : )
776 : {
777 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail275;
778 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail275;
779 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail275;
780 7 : {
781 7 : tree _r;
782 7 : _r = captures[3];
783 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
784 7 : return _r;
785 : }
786 : next_after_fail275:;
787 : }
788 : else
789 : {
790 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail276;
791 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail276;
792 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail276;
793 0 : {
794 0 : tree _r;
795 0 : _r = captures[0];
796 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
797 0 : return _r;
798 : }
799 : next_after_fail276:;
800 : }
801 : }
802 : else
803 : {
804 0 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
805 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
806 : )
807 : {
808 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
809 : )
810 : {
811 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail277;
812 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail277;
813 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail277;
814 0 : {
815 0 : tree _r;
816 0 : _r = captures[3];
817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 219, __FILE__, __LINE__, true);
818 0 : return _r;
819 : }
820 : next_after_fail277:;
821 : }
822 : else
823 : {
824 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail278;
825 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail278;
826 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail278;
827 0 : {
828 0 : tree _r;
829 0 : _r = captures[0];
830 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 220, __FILE__, __LINE__, true);
831 0 : return _r;
832 : }
833 : next_after_fail278:;
834 : }
835 : }
836 : else
837 : {
838 0 : if (cmp == 0
839 0 : && ((code1 == LT_EXPR && code2 == GT_EXPR)
840 0 : || (code1 == GT_EXPR && code2 == LT_EXPR))
841 : )
842 : {
843 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail279;
844 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail279;
845 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail279;
846 0 : {
847 0 : tree res_op0;
848 0 : res_op0 = captures[1];
849 0 : tree res_op1;
850 0 : res_op1 = captures[4];
851 0 : tree _r;
852 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
853 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 221, __FILE__, __LINE__, true);
854 0 : return _r;
855 : }
856 : next_after_fail279:;
857 : }
858 : else
859 : {
860 0 : if (cmp >= 0
861 0 : && (code1 == LT_EXPR || code1 == LE_EXPR)
862 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
863 : )
864 : {
865 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail280;
866 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail280;
867 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
868 0 : {
869 0 : tree _r;
870 0 : _r = constant_boolean_node (true, type);
871 0 : if (TREE_SIDE_EFFECTS (captures[1]))
872 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
873 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 222, __FILE__, __LINE__, true);
874 0 : return _r;
875 : }
876 : next_after_fail280:;
877 : }
878 : else
879 : {
880 0 : if (cmp <= 0
881 0 : && (code1 == GT_EXPR || code1 == GE_EXPR)
882 0 : && (code2 == LT_EXPR || code2 == LE_EXPR)
883 : )
884 : {
885 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail281;
886 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail281;
887 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail281;
888 0 : {
889 0 : tree _r;
890 0 : _r = constant_boolean_node (true, type);
891 0 : if (TREE_SIDE_EFFECTS (captures[1]))
892 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
893 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
894 0 : return _r;
895 : }
896 : next_after_fail281:;
897 : }
898 : }
899 : }
900 : }
901 : }
902 : }
903 : }
904 : return NULL_TREE;
905 : }
906 :
907 : tree
908 1206 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
909 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
910 : const enum tree_code ARG_UNUSED (cmp))
911 : {
912 1206 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
913 1206 : if (fold_before_rtl_expansion_p ()
914 : )
915 : {
916 0 : if (INTEGRAL_TYPE_P (type)
917 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
918 : )
919 : {
920 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail327;
921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail327;
922 0 : {
923 0 : tree res_op0;
924 0 : res_op0 = captures[0];
925 0 : tree res_op1;
926 0 : res_op1 = captures[3];
927 0 : tree res_op2;
928 0 : res_op2 = build_zero_cst (type);
929 0 : tree _r;
930 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
931 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 243, __FILE__, __LINE__, true);
932 0 : return _r;
933 : }
934 : next_after_fail327:;
935 : }
936 : }
937 : return NULL_TREE;
938 : }
939 :
940 : tree
941 169389 : generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
942 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
943 : {
944 169389 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
945 169389 : {
946 169389 : poly_widest_int factor;
947 169389 : if (multiple_p (wi::to_poly_widest (captures[2]), wi::to_widest (captures[1]), &factor)
948 : )
949 : {
950 51783 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail331;
951 51783 : {
952 51783 : tree res_op0;
953 51783 : {
954 51783 : tree _o1[1], _r1;
955 51783 : _o1[0] = captures[0];
956 51783 : if (TREE_TYPE (_o1[0]) != type)
957 : {
958 9754 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
959 : }
960 : else
961 : _r1 = _o1[0];
962 51783 : res_op0 = _r1;
963 : }
964 51783 : tree res_op1;
965 51783 : res_op1 = wide_int_to_tree (type, factor);
966 51783 : tree _r;
967 51783 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
968 51783 : if (TREE_SIDE_EFFECTS (captures[1]))
969 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
970 51783 : if (TREE_SIDE_EFFECTS (captures[2]))
971 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
972 51783 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
973 51783 : return _r;
974 : }
975 0 : next_after_fail331:;
976 : }
977 169389 : }
978 117606 : return NULL_TREE;
979 : }
980 :
981 : tree
982 171 : generic_simplify_202 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
983 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
984 : const enum tree_code ARG_UNUSED (cmp))
985 : {
986 171 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
987 342 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
988 338 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
989 : )
990 : {
991 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail342;
992 3 : {
993 3 : tree res_op0;
994 3 : res_op0 = captures[0];
995 3 : tree res_op1;
996 3 : res_op1 = build_zero_cst (TREE_TYPE(captures[0]));
997 3 : tree _r;
998 3 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
999 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 257, __FILE__, __LINE__, true);
1000 3 : return _r;
1001 : }
1002 0 : next_after_fail342:;
1003 : }
1004 : return NULL_TREE;
1005 : }
1006 :
1007 : tree
1008 4 : generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1009 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1010 : {
1011 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1012 8 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1013 8 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
1014 : )
1015 : {
1016 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail352;
1017 0 : {
1018 0 : tree res_op0;
1019 0 : {
1020 0 : tree _o1[2], _r1;
1021 0 : _o1[0] = captures[1];
1022 0 : _o1[1] = captures[2];
1023 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1024 0 : res_op0 = _r1;
1025 : }
1026 0 : tree _r;
1027 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1028 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 266, __FILE__, __LINE__, true);
1029 0 : return _r;
1030 : }
1031 0 : next_after_fail352:;
1032 : }
1033 : return NULL_TREE;
1034 : }
1035 :
1036 : tree
1037 1516 : generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1038 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1039 : const enum tree_code ARG_UNUSED (cmp))
1040 : {
1041 1516 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1042 3032 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1043 1516 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
1044 3032 : && (TREE_INT_CST_LOW (captures[1]) & 1) != 0
1045 : )
1046 : {
1047 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail357;
1048 10 : {
1049 10 : tree res_op0;
1050 10 : res_op0 = captures[0];
1051 10 : tree res_op1;
1052 10 : res_op1 = captures[2];
1053 10 : tree _r;
1054 10 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1055 10 : if (TREE_SIDE_EFFECTS (captures[1]))
1056 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1057 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 271, __FILE__, __LINE__, true);
1058 10 : return _r;
1059 : }
1060 0 : next_after_fail357:;
1061 : }
1062 : return NULL_TREE;
1063 : }
1064 :
1065 : tree
1066 0 : generic_simplify_221 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1067 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1068 : const enum tree_code ARG_UNUSED (op))
1069 : {
1070 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1071 0 : if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1072 0 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1073 0 : && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
1074 : )
1075 : {
1076 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail377;
1077 0 : {
1078 0 : tree res_op0;
1079 0 : res_op0 = captures[3];
1080 0 : tree res_op1;
1081 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
1082 0 : tree _r;
1083 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1084 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
1087 0 : return _r;
1088 : }
1089 0 : next_after_fail377:;
1090 : }
1091 : return NULL_TREE;
1092 : }
1093 :
1094 : tree
1095 0 : generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1096 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1097 : const enum tree_code ARG_UNUSED (cmp))
1098 : {
1099 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1100 0 : if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1101 0 : TYPE_SIGN (TREE_TYPE (captures[0])))
1102 : )
1103 : {
1104 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail385;
1105 0 : {
1106 0 : tree _r;
1107 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1108 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1109 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1110 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1111 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1112 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1113 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1114 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 298, __FILE__, __LINE__, true);
1115 0 : return _r;
1116 : }
1117 0 : next_after_fail385:;
1118 : }
1119 : else
1120 : {
1121 0 : if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1122 0 : TYPE_SIGN (TREE_TYPE (captures[0])))
1123 : )
1124 : {
1125 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail386;
1126 0 : {
1127 0 : tree res_op0;
1128 0 : res_op0 = captures[0];
1129 0 : tree res_op1;
1130 0 : res_op1 = captures[2];
1131 0 : tree _r;
1132 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1133 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1134 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1135 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 299, __FILE__, __LINE__, true);
1136 0 : return _r;
1137 : }
1138 0 : next_after_fail386:;
1139 : }
1140 : }
1141 : return NULL_TREE;
1142 : }
1143 :
1144 : tree
1145 391 : generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1146 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1147 : const enum tree_code ARG_UNUSED (rotate),
1148 : const enum tree_code ARG_UNUSED (invrot),
1149 : const enum tree_code ARG_UNUSED (cmp))
1150 : {
1151 391 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1152 391 : if (integer_zerop (captures[2]) || integer_all_onesp (captures[2])
1153 : )
1154 : {
1155 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail408;
1156 0 : {
1157 0 : tree res_op0;
1158 0 : res_op0 = captures[0];
1159 0 : tree res_op1;
1160 0 : res_op1 = captures[2];
1161 0 : tree _r;
1162 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1163 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1164 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1165 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 321, __FILE__, __LINE__, true);
1166 0 : return _r;
1167 : }
1168 0 : next_after_fail408:;
1169 : }
1170 : return NULL_TREE;
1171 : }
1172 :
1173 : tree
1174 16190 : generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1175 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1176 : const enum tree_code ARG_UNUSED (cmp))
1177 : {
1178 16190 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1179 16190 : if (single_use (captures[0])
1180 : )
1181 : {
1182 16190 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail416;
1183 16190 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail416;
1184 16190 : {
1185 16190 : tree res_op0;
1186 16190 : res_op0 = captures[1];
1187 16190 : tree res_op1;
1188 16190 : res_op1 = captures[2];
1189 16190 : tree _r;
1190 16190 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1191 16190 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 328, __FILE__, __LINE__, true);
1192 16190 : return _r;
1193 : }
1194 : next_after_fail416:;
1195 : }
1196 : return NULL_TREE;
1197 : }
1198 :
1199 : tree
1200 30 : generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1201 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1202 : const enum tree_code ARG_UNUSED (cmp))
1203 : {
1204 30 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1205 30 : if (single_use (captures[1]) && single_use (captures[3])
1206 : )
1207 : {
1208 30 : {
1209 30 : tree otype = TREE_TYPE (captures[0]);
1210 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail428;
1211 30 : {
1212 30 : tree res_op0;
1213 30 : {
1214 30 : tree _o1[1], _r1;
1215 30 : _o1[0] = captures[4];
1216 30 : if (TREE_TYPE (_o1[0]) != otype)
1217 : {
1218 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1219 : }
1220 : else
1221 : _r1 = _o1[0];
1222 30 : res_op0 = _r1;
1223 : }
1224 30 : tree res_op1;
1225 30 : {
1226 30 : tree _o1[1], _r1;
1227 30 : _o1[0] = captures[2];
1228 30 : if (TREE_TYPE (_o1[0]) != otype)
1229 : {
1230 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1231 : }
1232 : else
1233 : _r1 = _o1[0];
1234 30 : res_op1 = _r1;
1235 : }
1236 30 : tree _r;
1237 30 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1238 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 338, __FILE__, __LINE__, true);
1239 30 : return _r;
1240 : }
1241 0 : next_after_fail428:;
1242 : }
1243 : }
1244 0 : return NULL_TREE;
1245 : }
1246 :
1247 : tree
1248 6 : generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1249 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1250 : const combined_fn ARG_UNUSED (sq),
1251 : const enum tree_code ARG_UNUSED (cmp))
1252 : {
1253 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1254 6 : if (flag_unsafe_math_optimizations && ! flag_errno_math
1255 : )
1256 : {
1257 0 : if (! HONOR_NANS (captures[0])
1258 : )
1259 : {
1260 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
1261 0 : {
1262 0 : tree res_op0;
1263 0 : res_op0 = captures[0];
1264 0 : tree res_op1;
1265 0 : res_op1 = captures[1];
1266 0 : tree _r;
1267 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1268 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 376, __FILE__, __LINE__, true);
1269 0 : return _r;
1270 : }
1271 0 : next_after_fail465:;
1272 : }
1273 : }
1274 : return NULL_TREE;
1275 : }
1276 :
1277 : tree
1278 2733 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1279 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1280 : const enum tree_code ARG_UNUSED (cmp),
1281 : const enum tree_code ARG_UNUSED (scmp))
1282 : {
1283 2733 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1284 5096 : if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1285 5096 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1286 2363 : && (cmp == EQ_EXPR
1287 2363 : || cmp == NE_EXPR
1288 1588 : || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
1289 : )
1290 : {
1291 1579 : {
1292 1579 : tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
1293 1579 : if (tem && !TREE_OVERFLOW (tem)
1294 : )
1295 : {
1296 1551 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail479;
1297 1551 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
1298 1551 : {
1299 1551 : tree res_op0;
1300 1551 : res_op0 = captures[0];
1301 1551 : tree res_op1;
1302 1551 : res_op1 = tem;
1303 1551 : tree _r;
1304 1551 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1305 1551 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
1306 1551 : return _r;
1307 : }
1308 : next_after_fail479:;
1309 : }
1310 : }
1311 : }
1312 : return NULL_TREE;
1313 : }
1314 :
1315 : tree
1316 697 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1317 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1318 : const enum tree_code ARG_UNUSED (cmp))
1319 : {
1320 697 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1321 697 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1322 1394 : && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0
1323 : )
1324 : {
1325 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail494;
1326 0 : {
1327 0 : tree _r;
1328 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1329 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1330 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1331 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1332 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1333 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1334 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1335 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 398, __FILE__, __LINE__, true);
1336 0 : return _r;
1337 : }
1338 0 : next_after_fail494:;
1339 : }
1340 : return NULL_TREE;
1341 : }
1342 :
1343 : tree
1344 62 : generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1345 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1346 : const enum tree_code ARG_UNUSED (cmp))
1347 : {
1348 62 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1349 62 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail500;
1350 62 : {
1351 62 : tree res_op0;
1352 62 : res_op0 = captures[1];
1353 62 : tree res_op1;
1354 62 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1355 62 : tree _r;
1356 62 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1357 62 : if (TREE_SIDE_EFFECTS (captures[0]))
1358 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1359 62 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 404, __FILE__, __LINE__, true);
1360 : return _r;
1361 : }
1362 0 : next_after_fail500:;
1363 0 : return NULL_TREE;
1364 : }
1365 :
1366 : tree
1367 26 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1368 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1369 : const enum tree_code ARG_UNUSED (cmp))
1370 : {
1371 26 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1372 26 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1373 : )
1374 : {
1375 26 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail504;
1376 26 : {
1377 26 : tree res_op0;
1378 26 : res_op0 = captures[1];
1379 26 : tree res_op1;
1380 26 : {
1381 26 : tree _o1[2], _r1;
1382 26 : _o1[0] = captures[2];
1383 26 : {
1384 26 : tree _o2[1], _r2;
1385 26 : _o2[0] = captures[3];
1386 26 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
1387 : {
1388 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
1389 : }
1390 : else
1391 : _r2 = _o2[0];
1392 26 : _o1[1] = _r2;
1393 : }
1394 26 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1395 26 : res_op1 = _r1;
1396 : }
1397 26 : tree _r;
1398 26 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1399 26 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 408, __FILE__, __LINE__, true);
1400 26 : return _r;
1401 : }
1402 0 : next_after_fail504:;
1403 : }
1404 : return NULL_TREE;
1405 : }
1406 :
1407 : tree
1408 104897 : generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1409 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1410 : const enum tree_code ARG_UNUSED (cmp),
1411 : const enum tree_code ARG_UNUSED (ncmp))
1412 : {
1413 104897 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1414 209375 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1415 58543 : && type_has_mode_precision_p (TREE_TYPE (captures[1]))
1416 57644 : && element_precision (captures[0]) >= element_precision (captures[1])
1417 209794 : && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1]))
1418 : )
1419 : {
1420 4865 : {
1421 4865 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1422 4865 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail508;
1423 4865 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail508;
1424 4865 : {
1425 4865 : tree res_op0;
1426 4865 : {
1427 4865 : tree _o1[1], _r1;
1428 4865 : _o1[0] = captures[1];
1429 4865 : if (TREE_TYPE (_o1[0]) != stype)
1430 : {
1431 4213 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1432 : }
1433 : else
1434 : _r1 = _o1[0];
1435 4865 : res_op0 = _r1;
1436 : }
1437 4865 : tree res_op1;
1438 4865 : res_op1 = build_zero_cst (stype);
1439 4865 : tree _r;
1440 4865 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1441 4865 : if (TREE_SIDE_EFFECTS (captures[2]))
1442 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1443 4865 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 412, __FILE__, __LINE__, true);
1444 4865 : return _r;
1445 : }
1446 : next_after_fail508:;
1447 : }
1448 : }
1449 : return NULL_TREE;
1450 : }
1451 :
1452 : tree
1453 3005146 : generic_simplify_284 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1454 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1455 : const enum tree_code ARG_UNUSED (cmp))
1456 : {
1457 3005146 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1458 3005146 : {
1459 3005146 : poly_int64 off0, off1;
1460 3005146 : tree base0, base1;
1461 3005146 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
1462 : off0, off1,
1463 : 1
1464 : );
1465 3005146 : if (equal == 1
1466 : )
1467 : {
1468 2970460 : if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
1469 : )
1470 : {
1471 193361 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail514;
1472 193361 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail514;
1473 193361 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail514;
1474 193361 : {
1475 193361 : tree _r;
1476 193361 : _r = constant_boolean_node (known_eq (off0, off1), type);
1477 193361 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 416, __FILE__, __LINE__, true);
1478 2988364 : return _r;
1479 : }
1480 16782 : next_after_fail514:;
1481 : }
1482 : else
1483 : {
1484 2719575 : if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
1485 : )
1486 : {
1487 2719575 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail515;
1488 2719575 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail515;
1489 2719575 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail515;
1490 2719575 : {
1491 2719575 : tree _r;
1492 2719575 : _r = constant_boolean_node (known_ne (off0, off1), type);
1493 2719575 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 417, __FILE__, __LINE__, true);
1494 2719575 : return _r;
1495 : }
1496 16782 : next_after_fail515:;
1497 : }
1498 : else
1499 : {
1500 50506 : if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
1501 : )
1502 : {
1503 50506 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail516;
1504 50506 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail516;
1505 50506 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail516;
1506 50506 : {
1507 50506 : tree _r;
1508 50506 : _r = constant_boolean_node (known_lt (off0, off1), type);
1509 50506 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
1510 50506 : return _r;
1511 : }
1512 16782 : next_after_fail516:;
1513 : }
1514 : else
1515 : {
1516 5325 : if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
1517 : )
1518 : {
1519 5325 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail517;
1520 5325 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail517;
1521 5325 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail517;
1522 5325 : {
1523 5325 : tree _r;
1524 5325 : _r = constant_boolean_node (known_le (off0, off1), type);
1525 5325 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
1526 5325 : return _r;
1527 : }
1528 16782 : next_after_fail517:;
1529 : }
1530 : else
1531 : {
1532 1200 : if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
1533 : )
1534 : {
1535 1200 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail518;
1536 1200 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail518;
1537 1200 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail518;
1538 1200 : {
1539 1200 : tree _r;
1540 1200 : _r = constant_boolean_node (known_ge (off0, off1), type);
1541 1200 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 420, __FILE__, __LINE__, true);
1542 1200 : return _r;
1543 : }
1544 16782 : next_after_fail518:;
1545 : }
1546 : else
1547 : {
1548 493 : if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
1549 : )
1550 : {
1551 493 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail519;
1552 493 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail519;
1553 493 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail519;
1554 493 : {
1555 493 : tree _r;
1556 493 : _r = constant_boolean_node (known_gt (off0, off1), type);
1557 493 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
1558 493 : return _r;
1559 : }
1560 16782 : next_after_fail519:;
1561 : }
1562 : }
1563 : }
1564 : }
1565 : }
1566 : }
1567 : }
1568 : else
1569 : {
1570 34686 : if (equal == 0
1571 : )
1572 : {
1573 17904 : if (cmp == EQ_EXPR
1574 : )
1575 : {
1576 11875 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail520;
1577 11875 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail520;
1578 11875 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail520;
1579 11875 : {
1580 11875 : tree _r;
1581 11875 : _r = constant_boolean_node (false, type);
1582 11875 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
1583 11875 : return _r;
1584 : }
1585 16782 : next_after_fail520:;
1586 : }
1587 : else
1588 : {
1589 6029 : if (cmp == NE_EXPR
1590 : )
1591 : {
1592 6029 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail521;
1593 6029 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail521;
1594 6029 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail521;
1595 6029 : {
1596 6029 : tree _r;
1597 6029 : _r = constant_boolean_node (true, type);
1598 6029 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
1599 6029 : return _r;
1600 : }
1601 16782 : next_after_fail521:;
1602 : }
1603 : }
1604 : }
1605 : }
1606 : }
1607 16782 : return NULL_TREE;
1608 : }
1609 :
1610 : tree
1611 283507 : generic_simplify_299 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1612 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1613 : const enum tree_code ARG_UNUSED (cmp),
1614 : const enum tree_code ARG_UNUSED (icmp),
1615 : const enum tree_code ARG_UNUSED (ncmp))
1616 : {
1617 283507 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1618 283507 : if (types_match (type, TREE_TYPE (captures[0]))
1619 : )
1620 : {
1621 46563 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail562;
1622 46563 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail562;
1623 46563 : {
1624 46563 : tree res_op0;
1625 46563 : res_op0 = captures[1];
1626 46563 : tree res_op1;
1627 46563 : res_op1 = captures[2];
1628 46563 : tree _r;
1629 46563 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1630 46563 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 456, __FILE__, __LINE__, true);
1631 46563 : return _r;
1632 : }
1633 : next_after_fail562:;
1634 : }
1635 : return NULL_TREE;
1636 : }
1637 :
1638 : tree
1639 0 : generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1640 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1641 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1642 : {
1643 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1644 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail569;
1645 0 : {
1646 0 : tree _r;
1647 0 : _r = captures[0];
1648 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
1649 : return _r;
1650 : }
1651 0 : next_after_fail569:;
1652 0 : return NULL_TREE;
1653 : }
1654 :
1655 : tree
1656 2362 : generic_simplify_310 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1657 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1658 : const enum tree_code ARG_UNUSED (div))
1659 : {
1660 2362 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1661 2362 : if (!integer_zerop (captures[1])
1662 : )
1663 : {
1664 1737 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail576;
1665 1737 : {
1666 1737 : tree _r;
1667 1737 : _r = captures[0];
1668 1737 : if (TREE_SIDE_EFFECTS (captures[1]))
1669 59 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1670 1737 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 468, __FILE__, __LINE__, true);
1671 1737 : return _r;
1672 : }
1673 0 : next_after_fail576:;
1674 : }
1675 : return NULL_TREE;
1676 : }
1677 :
1678 : tree
1679 9067 : generic_simplify_316 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1680 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1681 : const enum tree_code ARG_UNUSED (div))
1682 : {
1683 9067 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1684 9067 : {
1685 9067 : wi::overflow_type overflow;
1686 9067 : wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
1687 18134 : TYPE_SIGN (type), &overflow);
1688 9067 : if (div == EXACT_DIV_EXPR
1689 9067 : || optimize_successive_divisions_p (captures[3], captures[0])
1690 : )
1691 : {
1692 0 : if (!overflow
1693 : )
1694 : {
1695 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail582;
1696 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail582;
1697 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail582;
1698 0 : {
1699 0 : tree res_op0;
1700 0 : res_op0 = captures[1];
1701 0 : tree res_op1;
1702 0 : res_op1 = wide_int_to_tree (type, mul);
1703 0 : tree _r;
1704 0 : _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
1705 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 474, __FILE__, __LINE__, true);
1706 0 : return _r;
1707 : }
1708 9067 : next_after_fail582:;
1709 : }
1710 : else
1711 : {
1712 0 : if (TYPE_UNSIGNED (type)
1713 0 : || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
1714 : )
1715 : {
1716 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail583;
1717 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail583;
1718 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail583;
1719 0 : {
1720 0 : tree _r;
1721 0 : _r = build_zero_cst (type);
1722 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1723 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1724 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 475, __FILE__, __LINE__, true);
1725 0 : return _r;
1726 : }
1727 9067 : next_after_fail583:;
1728 : }
1729 : }
1730 : }
1731 0 : }
1732 9067 : return NULL_TREE;
1733 : }
1734 :
1735 : tree
1736 2 : generic_simplify_329 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1737 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1738 : {
1739 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1740 0 : if (FLOAT_TYPE_P (type)
1741 2 : && ! HONOR_NANS (type)
1742 2 : && ! HONOR_INFINITIES (type)
1743 : )
1744 : {
1745 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail596;
1746 0 : {
1747 0 : tree _r;
1748 0 : _r = build_minus_one_cst (type);
1749 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1750 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1751 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
1752 0 : return _r;
1753 : }
1754 0 : next_after_fail596:;
1755 : }
1756 : return NULL_TREE;
1757 : }
1758 :
1759 : tree
1760 6 : generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1761 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1762 : const combined_fn ARG_UNUSED (TAN),
1763 : const combined_fn ARG_UNUSED (SIN),
1764 : const combined_fn ARG_UNUSED (COS))
1765 : {
1766 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1767 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1768 : )
1769 : {
1770 6 : if (! HONOR_NANS (captures[1])
1771 6 : && ! HONOR_INFINITIES (captures[1])
1772 : )
1773 : {
1774 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail606;
1775 6 : {
1776 6 : tree res_op0;
1777 6 : res_op0 = build_one_cst (type);
1778 6 : tree res_op1;
1779 6 : {
1780 6 : tree _o1[1], _r1;
1781 6 : _o1[0] = captures[1];
1782 6 : _r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
1783 6 : if (!_r1)
1784 0 : goto next_after_fail606;
1785 6 : res_op1 = _r1;
1786 : }
1787 6 : tree _r;
1788 6 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1789 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 498, __FILE__, __LINE__, true);
1790 6 : return _r;
1791 : }
1792 : next_after_fail606:;
1793 : }
1794 : }
1795 : return NULL_TREE;
1796 : }
1797 :
1798 : tree
1799 0 : generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1800 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1801 : const enum tree_code ARG_UNUSED (cmp),
1802 : const enum tree_code ARG_UNUSED (minmax))
1803 : {
1804 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1805 0 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1806 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1807 : )
1808 : {
1809 0 : {
1810 0 : tree_code code;
1811 0 : widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
1812 0 : tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
1813 0 : code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[4]));
1814 0 : if (ncmp == LE_EXPR
1815 0 : && code == MIN_EXPR
1816 0 : && wi::le_p (wi::to_wide (captures[3]),
1817 0 : wi::to_wide (captures[4]),
1818 0 : TYPE_SIGN (type))
1819 : )
1820 : {
1821 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail620;
1822 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail620;
1823 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail620;
1824 0 : {
1825 0 : tree res_op0;
1826 0 : res_op0 = captures[2];
1827 0 : tree res_op1;
1828 0 : res_op1 = captures[4];
1829 0 : tree _r;
1830 0 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
1831 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1832 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1833 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 512, __FILE__, __LINE__, true);
1834 0 : return _r;
1835 : }
1836 0 : next_after_fail620:;
1837 : }
1838 : else
1839 : {
1840 0 : if (ncmp == GT_EXPR
1841 0 : && code == MAX_EXPR
1842 0 : && wi::ge_p (wi::to_wide (captures[3]),
1843 0 : wi::to_wide (captures[4]),
1844 0 : TYPE_SIGN (type))
1845 : )
1846 : {
1847 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail621;
1848 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail621;
1849 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
1850 0 : {
1851 0 : tree res_op0;
1852 0 : res_op0 = captures[2];
1853 0 : tree res_op1;
1854 0 : res_op1 = captures[4];
1855 0 : tree _r;
1856 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1857 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1858 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
1860 0 : return _r;
1861 : }
1862 0 : next_after_fail621:;
1863 : }
1864 : }
1865 0 : }
1866 : }
1867 : return NULL_TREE;
1868 : }
1869 :
1870 : tree
1871 0 : generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1872 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1873 : const enum tree_code ARG_UNUSED (op))
1874 : {
1875 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1876 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail638;
1877 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail638;
1878 0 : {
1879 0 : tree _r;
1880 0 : _r = captures[2];
1881 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 530, __FILE__, __LINE__, true);
1882 : return _r;
1883 : }
1884 : next_after_fail638:;
1885 : return NULL_TREE;
1886 : }
1887 :
1888 : tree
1889 0 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1890 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1891 : const combined_fn ARG_UNUSED (func))
1892 : {
1893 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1894 0 : if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
1895 : )
1896 : {
1897 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail644;
1898 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail644;
1899 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail644;
1900 0 : {
1901 0 : tree _r;
1902 0 : _r = captures[2];
1903 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1904 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1905 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 536, __FILE__, __LINE__, true);
1906 0 : return _r;
1907 : }
1908 : next_after_fail644:;
1909 : }
1910 : return NULL_TREE;
1911 : }
1912 :
1913 : tree
1914 19737 : generic_simplify_376 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1915 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1916 : const enum tree_code ARG_UNUSED (cmp))
1917 : {
1918 19737 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1919 39474 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1920 39413 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1921 : )
1922 : {
1923 16258 : if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
1924 : )
1925 : {
1926 12742 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail655;
1927 12742 : {
1928 12742 : tree res_op0;
1929 12742 : res_op0 = captures[0];
1930 12742 : tree res_op1;
1931 12742 : res_op1 = captures[2];
1932 12742 : tree _r;
1933 12742 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1934 12742 : if (TREE_SIDE_EFFECTS (captures[1]))
1935 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1936 12742 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 545, __FILE__, __LINE__, true);
1937 12742 : return _r;
1938 : }
1939 0 : next_after_fail655:;
1940 : }
1941 : else
1942 : {
1943 3516 : if (TREE_CODE (captures[1]) == INTEGER_CST
1944 3516 : && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])))
1945 : )
1946 : {
1947 1076 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail656;
1948 1076 : {
1949 1076 : tree res_op0;
1950 1076 : res_op0 = captures[2];
1951 1076 : tree res_op1;
1952 1076 : res_op1 = captures[0];
1953 1076 : tree _r;
1954 1076 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1955 1076 : if (TREE_SIDE_EFFECTS (captures[1]))
1956 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1957 1076 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 546, __FILE__, __LINE__, true);
1958 1076 : return _r;
1959 : }
1960 0 : next_after_fail656:;
1961 : }
1962 : }
1963 : }
1964 : return NULL_TREE;
1965 : }
1966 :
1967 : tree
1968 37358 : generic_simplify_389 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1969 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1970 : const enum tree_code ARG_UNUSED (cmp),
1971 : const enum tree_code ARG_UNUSED (out))
1972 : {
1973 37358 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1974 37358 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1975 37342 : && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
1976 37342 : && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
1977 37358 : && wi::to_wide (captures[4]) != 0
1978 0 : && single_use (captures[1])
1979 : )
1980 : {
1981 37342 : {
1982 37342 : unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
1983 37342 : signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
1984 37342 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail670;
1985 37342 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail670;
1986 37342 : {
1987 37342 : tree res_op0;
1988 37342 : res_op0 = captures[3];
1989 37342 : tree res_op1;
1990 37342 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
1991 37342 : wi::max_value (prec, sign)
1992 112026 : - wi::to_wide (captures[4]));
1993 37342 : tree _r;
1994 37342 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1995 37342 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
1996 37342 : return _r;
1997 : }
1998 : next_after_fail670:;
1999 : }
2000 : }
2001 : return NULL_TREE;
2002 : }
2003 :
2004 : tree
2005 1089 : generic_simplify_399 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2006 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2007 : const enum tree_code ARG_UNUSED (cmp),
2008 : const enum tree_code ARG_UNUSED (out))
2009 : {
2010 1089 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2011 1089 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2012 : )
2013 : {
2014 1071 : {
2015 1071 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2016 1071 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail712;
2017 1059 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail712;
2018 1059 : {
2019 1059 : tree res_op0;
2020 1059 : {
2021 1059 : tree _o1[1], _r1;
2022 1059 : {
2023 1059 : tree _o2[2], _r2;
2024 1059 : _o2[0] = captures[2];
2025 1059 : _o2[1] = captures[1];
2026 1059 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2027 1059 : if (!_r2)
2028 0 : goto next_after_fail712;
2029 1059 : _o1[0] = _r2;
2030 : }
2031 1059 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2032 1059 : res_op0 = _r1;
2033 : }
2034 1059 : tree res_op1;
2035 1059 : res_op1 = build_zero_cst (t);
2036 1059 : tree _r;
2037 1059 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2038 1059 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
2039 1059 : return _r;
2040 : }
2041 : next_after_fail712:;
2042 : }
2043 : }
2044 : return NULL_TREE;
2045 : }
2046 :
2047 : tree
2048 11977 : generic_simplify_406 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2049 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2050 : const enum tree_code ARG_UNUSED (cmp),
2051 : const enum tree_code ARG_UNUSED (eqcmp))
2052 : {
2053 11977 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2054 11977 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2055 : )
2056 : {
2057 11977 : {
2058 11977 : tree ty = TREE_TYPE (captures[0]);
2059 11977 : unsigned prec = TYPE_PRECISION (ty);
2060 11977 : wide_int mask = wi::to_wide (captures[2], prec);
2061 11977 : wide_int rhs = wi::to_wide (captures[3], prec);
2062 11977 : signop sgn = TYPE_SIGN (ty);
2063 33715 : if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn)
2064 43312 : && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn)
2065 : )
2066 : {
2067 560 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail726;
2068 560 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail726;
2069 560 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail726;
2070 560 : {
2071 560 : tree res_op0;
2072 560 : {
2073 560 : tree _o1[2], _r1;
2074 560 : _o1[0] = captures[1];
2075 560 : _o1[1] = wide_int_to_tree (ty, mask - rhs);
2076 560 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2077 560 : res_op0 = _r1;
2078 : }
2079 560 : tree res_op1;
2080 560 : res_op1 = build_zero_cst (ty);
2081 560 : tree _r;
2082 560 : _r = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
2083 560 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 599, __FILE__, __LINE__, true);
2084 560 : return _r;
2085 : }
2086 11417 : next_after_fail726:;
2087 : }
2088 11977 : }
2089 : }
2090 : return NULL_TREE;
2091 : }
2092 :
2093 : tree
2094 1 : generic_simplify_412 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2095 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2096 : const combined_fn ARG_UNUSED (logs),
2097 : const combined_fn ARG_UNUSED (exps),
2098 : const enum tree_code ARG_UNUSED (cmp))
2099 : {
2100 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2101 1 : if (flag_unsafe_math_optimizations
2102 : )
2103 : {
2104 1 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2105 1 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
2106 1 : && ! flag_trapping_math
2107 2 : && ! flag_errno_math
2108 : )
2109 : {
2110 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail732;
2111 1 : {
2112 1 : tree res_op0;
2113 1 : res_op0 = captures[1];
2114 1 : tree res_op1;
2115 1 : {
2116 1 : tree _o1[1], _r1;
2117 1 : _o1[0] = captures[2];
2118 1 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
2119 1 : if (!_r1)
2120 0 : goto next_after_fail732;
2121 1 : if (EXPR_P (_r1))
2122 1 : goto next_after_fail732;
2123 0 : res_op1 = _r1;
2124 : }
2125 0 : tree _r;
2126 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2127 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
2128 0 : return _r;
2129 : }
2130 : next_after_fail732:;
2131 : }
2132 : }
2133 : return NULL_TREE;
2134 : }
2135 :
2136 : tree
2137 0 : generic_simplify_420 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2138 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2139 : const enum tree_code ARG_UNUSED (shiftrotate))
2140 : {
2141 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2142 0 : {
2143 0 : tree tem = uniform_vector_p (captures[1]);
2144 0 : if (tem
2145 : )
2146 : {
2147 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
2148 0 : {
2149 0 : tree res_op0;
2150 0 : res_op0 = captures[0];
2151 0 : tree res_op1;
2152 0 : res_op1 = tem;
2153 0 : tree _r;
2154 0 : _r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
2155 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2156 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2157 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 613, __FILE__, __LINE__, true);
2158 0 : return _r;
2159 : }
2160 0 : next_after_fail744:;
2161 : }
2162 : }
2163 : return NULL_TREE;
2164 : }
2165 :
2166 : tree
2167 3380424 : generic_simplify_427 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2168 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2169 : const enum tree_code ARG_UNUSED (bitop))
2170 : {
2171 3380424 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2172 3380424 : if (0
2173 : && TREE_CODE (captures[3]) != INTEGER_CST
2174 : && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2175 : && types_match (type, captures[2])
2176 : && !POINTER_TYPE_P (TREE_TYPE (captures[2]))
2177 : && TREE_CODE (TREE_TYPE (captures[2])) != OFFSET_TYPE
2178 : )
2179 : {
2180 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail758;
2181 : {
2182 : tree res_op0;
2183 : res_op0 = captures[2];
2184 : tree res_op1;
2185 : {
2186 : tree _o1[1], _r1;
2187 : _o1[0] = captures[3];
2188 : if (TREE_TYPE (_o1[0]) != type)
2189 : {
2190 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2191 : }
2192 : else
2193 : _r1 = _o1[0];
2194 : res_op1 = _r1;
2195 : }
2196 : tree _r;
2197 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
2198 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 625, __FILE__, __LINE__, true);
2199 : return _r;
2200 : }
2201 : next_after_fail758:;
2202 : }
2203 3380424 : return NULL_TREE;
2204 : }
2205 :
2206 : tree
2207 861718 : generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2208 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2209 : const enum tree_code ARG_UNUSED (op))
2210 : {
2211 861718 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2212 861718 : if (INTEGRAL_TYPE_P (type)
2213 762914 : && op != MULT_EXPR
2214 762914 : && op != RDIV_EXPR
2215 449877 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2216 388876 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2217 388876 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2218 344180 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2219 343897 : && type_has_mode_precision_p (type)
2220 343875 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2221 24248 : && types_match (captures[2], type)
2222 864318 : && (types_match (captures[2], captures[4])
2223 2531 : || poly_int_tree_p (captures[3]))
2224 : )
2225 : {
2226 69 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2227 : )
2228 : {
2229 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail764;
2230 15 : {
2231 15 : tree res_op0;
2232 15 : res_op0 = captures[2];
2233 15 : tree res_op1;
2234 15 : {
2235 15 : tree _o1[1], _r1;
2236 15 : _o1[0] = captures[4];
2237 15 : if (TREE_TYPE (_o1[0]) != type)
2238 : {
2239 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2240 : }
2241 : else
2242 : _r1 = _o1[0];
2243 15 : res_op1 = _r1;
2244 : }
2245 15 : tree _r;
2246 15 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2247 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 631, __FILE__, __LINE__, true);
2248 15 : return _r;
2249 : }
2250 0 : next_after_fail764:;
2251 : }
2252 : else
2253 : {
2254 54 : {
2255 54 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2256 54 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail765;
2257 54 : {
2258 54 : tree res_op0;
2259 54 : {
2260 54 : tree _o1[2], _r1;
2261 54 : {
2262 54 : tree _o2[1], _r2;
2263 54 : _o2[0] = captures[2];
2264 54 : if (TREE_TYPE (_o2[0]) != utype)
2265 : {
2266 54 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2267 : }
2268 : else
2269 : _r2 = _o2[0];
2270 54 : _o1[0] = _r2;
2271 : }
2272 54 : {
2273 54 : tree _o2[1], _r2;
2274 54 : _o2[0] = captures[4];
2275 54 : if (TREE_TYPE (_o2[0]) != utype)
2276 : {
2277 54 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2278 : }
2279 : else
2280 : _r2 = _o2[0];
2281 54 : _o1[1] = _r2;
2282 : }
2283 54 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2284 54 : res_op0 = _r1;
2285 : }
2286 54 : tree _r;
2287 54 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2288 54 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2289 54 : return _r;
2290 : }
2291 0 : next_after_fail765:;
2292 : }
2293 : }
2294 : }
2295 : else
2296 : {
2297 851246 : if (FLOAT_TYPE_P (type)
2298 872052 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2299 10403 : == DECIMAL_FLOAT_TYPE_P (type)
2300 : )
2301 : {
2302 10380 : {
2303 10380 : tree arg0 = strip_float_extensions (captures[2]);
2304 10380 : tree arg1 = strip_float_extensions (captures[4]);
2305 10380 : tree itype = TREE_TYPE (captures[0]);
2306 10380 : tree ty1 = TREE_TYPE (arg0);
2307 10380 : tree ty2 = TREE_TYPE (arg1);
2308 10380 : enum tree_code code = TREE_CODE (itype);
2309 0 : if (FLOAT_TYPE_P (ty1)
2310 10380 : && FLOAT_TYPE_P (ty2)
2311 : )
2312 : {
2313 10380 : {
2314 10380 : tree newtype = type;
2315 10380 : if (TYPE_MODE (ty1) == SDmode
2316 10371 : || TYPE_MODE (ty2) == SDmode
2317 20751 : || TYPE_MODE (type) == SDmode)
2318 9 : newtype = dfloat32_type_node;
2319 10380 : if (TYPE_MODE (ty1) == DDmode
2320 10374 : || TYPE_MODE (ty2) == DDmode
2321 20754 : || TYPE_MODE (type) == DDmode)
2322 6 : newtype = dfloat64_type_node;
2323 10380 : if (TYPE_MODE (ty1) == TDmode
2324 10380 : || TYPE_MODE (ty2) == TDmode
2325 20760 : || TYPE_MODE (type) == TDmode)
2326 15 : newtype = dfloat128_type_node;
2327 10380 : if ((newtype == dfloat32_type_node
2328 10380 : || newtype == dfloat64_type_node
2329 10380 : || newtype == dfloat128_type_node)
2330 15 : && newtype == type
2331 10386 : && types_match (newtype, type)
2332 : )
2333 : {
2334 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail766;
2335 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail766;
2336 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail766;
2337 0 : {
2338 0 : tree res_op0;
2339 0 : {
2340 0 : tree _o1[1], _r1;
2341 0 : _o1[0] = captures[2];
2342 0 : if (TREE_TYPE (_o1[0]) != newtype)
2343 : {
2344 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2345 : }
2346 : else
2347 : _r1 = _o1[0];
2348 0 : res_op0 = _r1;
2349 : }
2350 0 : tree res_op1;
2351 0 : {
2352 0 : tree _o1[1], _r1;
2353 0 : _o1[0] = captures[4];
2354 0 : if (TREE_TYPE (_o1[0]) != newtype)
2355 : {
2356 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2357 : }
2358 : else
2359 : _r1 = _o1[0];
2360 0 : res_op1 = _r1;
2361 : }
2362 0 : tree _r;
2363 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2364 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
2365 0 : return _r;
2366 : }
2367 : next_after_fail766:;
2368 : }
2369 : else
2370 : {
2371 10374 : {
2372 10374 : if (element_precision (ty1) > element_precision (newtype))
2373 4 : newtype = ty1;
2374 10374 : if (element_precision (ty2) > element_precision (newtype))
2375 1 : newtype = ty2;
2376 10374 : if (element_precision (newtype) < element_precision (itype)
2377 10130 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2378 0 : || target_supports_op_p (newtype, op, optab_default))
2379 10130 : && (flag_unsafe_math_optimizations
2380 10113 : || (element_precision (newtype) == element_precision (type)
2381 10109 : && real_can_shorten_arithmetic (element_mode (itype),
2382 : element_mode (type))
2383 3372 : && !excess_precision_type (newtype)))
2384 10399 : && !types_match (itype, newtype)
2385 : )
2386 : {
2387 25 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail767;
2388 25 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail767;
2389 17 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail767;
2390 17 : {
2391 17 : tree res_op0;
2392 17 : {
2393 17 : tree _o1[2], _r1;
2394 17 : {
2395 17 : tree _o2[1], _r2;
2396 17 : _o2[0] = captures[2];
2397 17 : if (TREE_TYPE (_o2[0]) != newtype)
2398 : {
2399 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2400 : }
2401 : else
2402 : _r2 = _o2[0];
2403 17 : _o1[0] = _r2;
2404 : }
2405 17 : {
2406 17 : tree _o2[1], _r2;
2407 17 : _o2[0] = captures[4];
2408 17 : if (TREE_TYPE (_o2[0]) != newtype)
2409 : {
2410 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2411 : }
2412 : else
2413 : _r2 = _o2[0];
2414 17 : _o1[1] = _r2;
2415 : }
2416 17 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2417 17 : res_op0 = _r1;
2418 : }
2419 17 : tree _r;
2420 17 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2421 17 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
2422 17 : return _r;
2423 : }
2424 : next_after_fail767:;
2425 : }
2426 : }
2427 : }
2428 : }
2429 : }
2430 : }
2431 : }
2432 : }
2433 : return NULL_TREE;
2434 : }
2435 :
2436 : tree
2437 15 : generic_simplify_459 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2438 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2439 : const enum tree_code ARG_UNUSED (bitop))
2440 : {
2441 15 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2442 15 : {
2443 15 : tree pmop[2];
2444 15 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[4], NEGATE_EXPR, captures[1],
2445 : bitop, captures[2], captures[3], NULL_TREE, ERROR_MARK,
2446 : NULL_TREE, NULL_TREE, pmop);
2447 15 : if (utype
2448 : )
2449 : {
2450 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail804;
2451 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail804;
2452 7 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail804;
2453 7 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail804;
2454 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail804;
2455 7 : {
2456 7 : tree res_op0;
2457 7 : {
2458 7 : tree _o1[2], _r1;
2459 7 : {
2460 7 : tree _o2[1], _r2;
2461 7 : {
2462 7 : tree _o3[1], _r3;
2463 7 : _o3[0] = pmop[0];
2464 7 : if (TREE_TYPE (_o3[0]) != utype)
2465 : {
2466 4 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2467 : }
2468 : else
2469 : _r3 = _o3[0];
2470 7 : _o2[0] = _r3;
2471 : }
2472 7 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2473 7 : _o1[0] = _r2;
2474 : }
2475 7 : {
2476 7 : tree _o2[1], _r2;
2477 7 : _o2[0] = captures[4];
2478 7 : if (TREE_TYPE (_o2[0]) != utype)
2479 : {
2480 4 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2481 : }
2482 : else
2483 : _r2 = _o2[0];
2484 7 : _o1[1] = _r2;
2485 : }
2486 7 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2487 7 : res_op0 = _r1;
2488 : }
2489 7 : tree _r;
2490 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2491 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
2492 7 : return _r;
2493 : }
2494 8 : next_after_fail804:;
2495 : }
2496 : }
2497 8 : return NULL_TREE;
2498 : }
2499 :
2500 : tree
2501 0 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2502 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2503 : const enum tree_code ARG_UNUSED (code2),
2504 : const enum tree_code ARG_UNUSED (code1))
2505 : {
2506 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2507 0 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2508 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2509 0 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2510 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2511 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2512 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2513 0 : && bitwise_equal_p (captures[2], captures[5]))
2514 : )
2515 : {
2516 0 : {
2517 0 : bool one_before = false;
2518 0 : bool one_after = false;
2519 0 : int cmp = 0;
2520 0 : bool allbits = true;
2521 0 : if (TREE_CODE (captures[2]) == INTEGER_CST
2522 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
2523 : {
2524 0 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2525 0 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2526 0 : auto t2 = wi::to_wide (captures[5]);
2527 0 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2528 0 : if (cmp < 0
2529 0 : && t1 == t2 - 1)
2530 : one_before = true;
2531 0 : if (cmp > 0
2532 0 : && t1 == t2 + 1)
2533 : one_after = true;
2534 : }
2535 0 : bool val;
2536 0 : switch (code2)
2537 : {
2538 0 : case EQ_EXPR: val = (cmp == 0); break;
2539 0 : case NE_EXPR: val = (cmp != 0); break;
2540 0 : case LT_EXPR: val = (cmp < 0); break;
2541 0 : case GT_EXPR: val = (cmp > 0); break;
2542 0 : case LE_EXPR: val = (cmp <= 0); break;
2543 0 : case GE_EXPR: val = (cmp >= 0); break;
2544 0 : default: gcc_unreachable ();
2545 : }
2546 0 : if (code1 == EQ_EXPR && val
2547 : )
2548 : {
2549 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail818;
2550 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail818;
2551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail818;
2552 0 : {
2553 0 : tree _r;
2554 0 : _r = captures[0];
2555 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2556 0 : return _r;
2557 : }
2558 : next_after_fail818:;
2559 : }
2560 : else
2561 : {
2562 0 : if (code1 == EQ_EXPR && !val
2563 : )
2564 : {
2565 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail819;
2566 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail819;
2567 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail819;
2568 0 : {
2569 0 : tree _r;
2570 0 : _r = constant_boolean_node (false, type);
2571 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2572 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2573 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2574 0 : return _r;
2575 : }
2576 : next_after_fail819:;
2577 : }
2578 : else
2579 : {
2580 0 : if (code1 == NE_EXPR && !val && allbits
2581 : )
2582 : {
2583 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail820;
2584 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail820;
2585 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail820;
2586 0 : {
2587 0 : tree _r;
2588 0 : _r = captures[3];
2589 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2590 0 : return _r;
2591 : }
2592 : next_after_fail820:;
2593 : }
2594 : else
2595 : {
2596 0 : if ((code1 == NE_EXPR
2597 0 : && code2 == GE_EXPR
2598 0 : && cmp == 0
2599 0 : && allbits)
2600 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2601 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2602 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2603 : )
2604 : {
2605 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail821;
2606 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail821;
2607 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail821;
2608 0 : {
2609 0 : tree res_op0;
2610 0 : res_op0 = captures[4];
2611 0 : tree res_op1;
2612 0 : {
2613 0 : tree _o1[1], _r1;
2614 0 : _o1[0] = captures[2];
2615 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2616 : {
2617 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2618 : }
2619 : else
2620 : _r1 = _o1[0];
2621 0 : res_op1 = _r1;
2622 : }
2623 0 : tree _r;
2624 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2625 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2626 0 : return _r;
2627 : }
2628 : next_after_fail821:;
2629 : }
2630 : else
2631 : {
2632 0 : if ((code1 == NE_EXPR
2633 0 : && code2 == LE_EXPR
2634 0 : && cmp == 0
2635 0 : && allbits)
2636 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2637 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2638 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2639 : )
2640 : {
2641 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail822;
2642 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail822;
2643 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail822;
2644 0 : {
2645 0 : tree res_op0;
2646 0 : res_op0 = captures[4];
2647 0 : tree res_op1;
2648 0 : {
2649 0 : tree _o1[1], _r1;
2650 0 : _o1[0] = captures[2];
2651 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2652 : {
2653 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2654 : }
2655 : else
2656 : _r1 = _o1[0];
2657 0 : res_op1 = _r1;
2658 : }
2659 0 : tree _r;
2660 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2661 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
2662 0 : return _r;
2663 : }
2664 : next_after_fail822:;
2665 : }
2666 : else
2667 : {
2668 0 : if ((code1 == NE_EXPR
2669 0 : && code2 == GT_EXPR
2670 : && one_after
2671 0 : && allbits)
2672 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2673 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2674 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2675 : )
2676 : {
2677 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail823;
2678 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail823;
2679 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail823;
2680 0 : {
2681 0 : tree res_op0;
2682 0 : res_op0 = captures[4];
2683 0 : tree res_op1;
2684 0 : {
2685 0 : tree _o1[1], _r1;
2686 0 : _o1[0] = captures[2];
2687 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2688 : {
2689 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2690 : }
2691 : else
2692 : _r1 = _o1[0];
2693 0 : res_op1 = _r1;
2694 : }
2695 0 : tree _r;
2696 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2697 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
2698 0 : return _r;
2699 : }
2700 : next_after_fail823:;
2701 : }
2702 : else
2703 : {
2704 0 : if ((code1 == NE_EXPR
2705 0 : && code2 == LT_EXPR
2706 : && one_before
2707 0 : && allbits)
2708 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2709 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2710 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2711 : )
2712 : {
2713 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail824;
2714 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail824;
2715 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail824;
2716 0 : {
2717 0 : tree res_op0;
2718 0 : res_op0 = captures[4];
2719 0 : tree res_op1;
2720 0 : {
2721 0 : tree _o1[1], _r1;
2722 0 : _o1[0] = captures[2];
2723 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2724 : {
2725 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2726 : }
2727 : else
2728 : _r1 = _o1[0];
2729 0 : res_op1 = _r1;
2730 : }
2731 0 : tree _r;
2732 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2733 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
2734 0 : return _r;
2735 : }
2736 : next_after_fail824:;
2737 : }
2738 : }
2739 : }
2740 : }
2741 : }
2742 : }
2743 : }
2744 : }
2745 : }
2746 : return NULL_TREE;
2747 : }
2748 :
2749 : tree
2750 145 : generic_simplify_502 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2751 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2752 : {
2753 145 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2754 145 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
2755 145 : || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2756 : )
2757 : {
2758 145 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail891;
2759 145 : {
2760 145 : tree res_op0;
2761 145 : {
2762 145 : tree _o1[2], _r1;
2763 145 : _o1[0] = captures[0];
2764 145 : _o1[1] = build_each_one_cst (TREE_TYPE (captures[0]));
2765 145 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2766 145 : res_op0 = _r1;
2767 : }
2768 145 : tree _r;
2769 145 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2770 145 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 706, __FILE__, __LINE__, true);
2771 145 : return _r;
2772 : }
2773 0 : next_after_fail891:;
2774 : }
2775 : return NULL_TREE;
2776 : }
2777 :
2778 : tree
2779 249 : generic_simplify_509 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2780 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2781 : const enum tree_code ARG_UNUSED (cmp),
2782 : const enum tree_code ARG_UNUSED (icmp),
2783 : const enum tree_code ARG_UNUSED (ncmp))
2784 : {
2785 249 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2786 249 : if (VECTOR_TYPE_P (type)
2787 249 : || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
2788 : )
2789 : {
2790 51 : {
2791 51 : enum tree_code ic = invert_tree_comparison
2792 51 : (cmp, HONOR_NANS (captures[0]));
2793 51 : if (ic == icmp
2794 : )
2795 : {
2796 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail898;
2797 12 : {
2798 12 : tree res_op0;
2799 12 : res_op0 = captures[0];
2800 12 : tree res_op1;
2801 12 : res_op1 = captures[1];
2802 12 : tree _r;
2803 12 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
2804 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
2805 12 : return _r;
2806 : }
2807 0 : next_after_fail898:;
2808 : }
2809 : else
2810 : {
2811 39 : if (ic == ncmp
2812 : )
2813 : {
2814 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail899;
2815 0 : {
2816 0 : tree res_op0;
2817 0 : res_op0 = captures[0];
2818 0 : tree res_op1;
2819 0 : res_op1 = captures[1];
2820 0 : tree _r;
2821 0 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
2822 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
2823 0 : return _r;
2824 : }
2825 0 : next_after_fail899:;
2826 : }
2827 : }
2828 : }
2829 : }
2830 : return NULL_TREE;
2831 : }
2832 :
2833 : tree
2834 1 : generic_simplify_522 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2835 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2836 : const enum tree_code ARG_UNUSED (minmax))
2837 : {
2838 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2839 1 : if (INTEGRAL_TYPE_P (type)
2840 1 : && TYPE_OVERFLOW_UNDEFINED (type)
2841 2 : && !TYPE_OVERFLOW_SANITIZED (type)
2842 : )
2843 : {
2844 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail913;
2845 1 : {
2846 1 : tree res_op0;
2847 1 : {
2848 1 : tree _o1[2], _r1;
2849 1 : _o1[0] = captures[1];
2850 1 : _o1[1] = captures[4];
2851 1 : _r1 = fold_build2_loc (loc, minmax, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2852 1 : res_op0 = _r1;
2853 : }
2854 1 : tree res_op1;
2855 1 : res_op1 = captures[2];
2856 1 : tree _r;
2857 1 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
2858 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 725, __FILE__, __LINE__, true);
2859 1 : return _r;
2860 : }
2861 0 : next_after_fail913:;
2862 : }
2863 : return NULL_TREE;
2864 : }
2865 :
2866 : tree
2867 2 : generic_simplify_531 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2868 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2869 : const enum tree_code ARG_UNUSED (op),
2870 : const enum tree_code ARG_UNUSED (logic))
2871 : {
2872 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2873 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail936;
2874 2 : {
2875 2 : tree res_op0;
2876 2 : res_op0 = captures[0];
2877 2 : tree res_op1;
2878 2 : res_op1 = captures[1];
2879 2 : tree _r;
2880 2 : _r = fold_build2_loc (loc, logic, type, res_op0, res_op1);
2881 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
2882 : return _r;
2883 : }
2884 0 : next_after_fail936:;
2885 0 : return NULL_TREE;
2886 : }
2887 :
2888 : tree
2889 6 : generic_simplify_538 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2890 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
2891 : {
2892 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2893 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail943;
2894 6 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail943;
2895 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail943;
2896 6 : {
2897 6 : tree _r;
2898 6 : _r = captures[2];
2899 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 528, __FILE__, __LINE__, true);
2900 : return _r;
2901 : }
2902 : next_after_fail943:;
2903 : return NULL_TREE;
2904 : }
2905 :
2906 : tree
2907 0 : generic_simplify_541 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2908 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2909 : const enum tree_code ARG_UNUSED (cmp))
2910 : {
2911 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2912 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail946;
2913 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail946;
2914 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail946;
2915 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail946;
2916 0 : {
2917 0 : tree _r;
2918 0 : _r = captures[3];
2919 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 531, __FILE__, __LINE__, true);
2920 : return _r;
2921 : }
2922 : next_after_fail946:;
2923 : return NULL_TREE;
2924 : }
2925 :
2926 : tree
2927 0 : generic_simplify_551 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2928 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2929 : const combined_fn ARG_UNUSED (cond_op))
2930 : {
2931 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2932 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail956;
2933 0 : {
2934 0 : tree res_op0;
2935 0 : {
2936 0 : tree _o1[2], _r1;
2937 0 : _o1[0] = captures[2];
2938 0 : _o1[1] = captures[0];
2939 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2940 0 : res_op0 = _r1;
2941 : }
2942 0 : tree res_op1;
2943 0 : res_op1 = captures[3];
2944 0 : tree res_op2;
2945 0 : res_op2 = captures[4];
2946 0 : tree res_op3;
2947 0 : res_op3 = captures[5];
2948 0 : tree _r;
2949 0 : _r = maybe_build_call_expr_loc (loc, cond_op, type, 4, res_op0, res_op1, res_op2, res_op3);
2950 0 : if (!_r)
2951 0 : goto next_after_fail956;
2952 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 751, __FILE__, __LINE__, true);
2953 : return _r;
2954 : }
2955 : next_after_fail956:;
2956 : return NULL_TREE;
2957 : }
2958 :
2959 : tree
2960 1 : generic_simplify_556 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2961 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2962 : {
2963 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2964 1 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type)
2965 : )
2966 : {
2967 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail964;
2968 1 : {
2969 1 : tree res_op0;
2970 1 : {
2971 1 : tree _o1[1], _r1;
2972 1 : _o1[0] = captures[0];
2973 1 : if (TREE_TYPE (_o1[0]) != type)
2974 : {
2975 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2976 : }
2977 : else
2978 : _r1 = _o1[0];
2979 1 : res_op0 = _r1;
2980 : }
2981 1 : tree _r;
2982 1 : _r = non_lvalue_loc (loc, res_op0);
2983 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 759, __FILE__, __LINE__, true);
2984 1 : return _r;
2985 : }
2986 0 : next_after_fail964:;
2987 : }
2988 : return NULL_TREE;
2989 : }
2990 :
2991 : tree
2992 0 : generic_simplify_566 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2993 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2994 : const combined_fn ARG_UNUSED (logs))
2995 : {
2996 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2997 0 : if (flag_unsafe_math_optimizations
2998 : )
2999 : {
3000 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3001 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
3002 0 : && ! flag_trapping_math
3003 0 : && ! flag_errno_math
3004 : )
3005 : {
3006 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail974;
3007 0 : {
3008 0 : tree res_op0;
3009 0 : {
3010 0 : tree _o1[1], _r1;
3011 0 : _o1[0] = captures[1];
3012 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
3013 0 : if (!_r1)
3014 0 : goto next_after_fail974;
3015 0 : if (EXPR_P (_r1))
3016 0 : goto next_after_fail974;
3017 0 : res_op0 = _r1;
3018 : }
3019 0 : tree res_op1;
3020 0 : {
3021 0 : tree _o1[1], _r1;
3022 0 : _o1[0] = captures[2];
3023 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
3024 0 : if (!_r1)
3025 0 : goto next_after_fail974;
3026 0 : res_op1 = _r1;
3027 : }
3028 0 : tree _r;
3029 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3030 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 769, __FILE__, __LINE__, true);
3031 0 : return _r;
3032 : }
3033 : next_after_fail974:;
3034 : }
3035 : }
3036 : return NULL_TREE;
3037 : }
3038 :
3039 : tree
3040 0 : generic_simplify_578 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3041 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3042 : const combined_fn ARG_UNUSED (froms),
3043 : const combined_fn ARG_UNUSED (tos))
3044 : {
3045 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3046 0 : if (optimize && canonicalize_math_p ()
3047 : )
3048 : {
3049 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
3050 0 : {
3051 0 : tree res_op0;
3052 0 : res_op0 = captures[0];
3053 0 : tree _r;
3054 0 : _r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
3055 0 : if (!_r)
3056 0 : goto next_after_fail986;
3057 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 781, __FILE__, __LINE__, true);
3058 0 : return _r;
3059 : }
3060 : next_after_fail986:;
3061 : }
3062 : return NULL_TREE;
3063 : }
3064 :
3065 : tree
3066 0 : generic_simplify_585 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3067 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3068 : const combined_fn ARG_UNUSED (SIGNBIT))
3069 : {
3070 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3071 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail993;
3072 0 : {
3073 0 : tree _r;
3074 0 : _r = integer_zero_node;
3075 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3076 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3077 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
3078 : return _r;
3079 : }
3080 0 : next_after_fail993:;
3081 0 : return NULL_TREE;
3082 : }
3083 :
3084 : tree
3085 0 : generic_simplify_593 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3086 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3087 : {
3088 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3089 0 : if (canonicalize_math_after_vectorization_p ()
3090 : )
3091 : {
3092 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
3093 : {
3094 : tree res_op0;
3095 : res_op0 = captures[0];
3096 : tree res_op1;
3097 : res_op1 = captures[1];
3098 : tree res_op2;
3099 : res_op2 = captures[2];
3100 : tree _r;
3101 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3102 : if (!_r)
3103 : goto next_after_fail1001;
3104 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 796, __FILE__, __LINE__, true);
3105 : return _r;
3106 : }
3107 0 : next_after_fail1001:;
3108 : }
3109 0 : return NULL_TREE;
3110 : }
3111 :
3112 : tree
3113 0 : generic_simplify_603 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3114 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3115 : {
3116 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3117 0 : if (canonicalize_math_after_vectorization_p ()
3118 : )
3119 : {
3120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1011;
3121 : {
3122 : tree res_op0;
3123 : res_op0 = captures[0];
3124 : tree res_op1;
3125 : res_op1 = captures[1];
3126 : tree res_op2;
3127 : res_op2 = captures[2];
3128 : tree res_op3;
3129 : res_op3 = captures[3];
3130 : tree res_op4;
3131 : res_op4 = captures[4];
3132 : tree _r;
3133 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3134 : if (!_r)
3135 : goto next_after_fail1011;
3136 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 806, __FILE__, __LINE__, true);
3137 : return _r;
3138 : }
3139 0 : next_after_fail1011:;
3140 : }
3141 0 : return NULL_TREE;
3142 : }
3143 :
3144 : tree
3145 0 : generic_simplify_614 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3146 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3147 : const combined_fn ARG_UNUSED (PARITY))
3148 : {
3149 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3150 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1023;
3151 0 : {
3152 0 : tree res_op0;
3153 0 : res_op0 = captures[0];
3154 0 : tree _r;
3155 0 : _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
3156 0 : if (!_r)
3157 0 : goto next_after_fail1023;
3158 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 813, __FILE__, __LINE__, true);
3159 : return _r;
3160 : }
3161 : next_after_fail1023:;
3162 : return NULL_TREE;
3163 : }
3164 :
3165 : tree
3166 0 : generic_simplify_618 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3167 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3168 : const enum tree_code ARG_UNUSED (rot),
3169 : const combined_fn ARG_UNUSED (parity))
3170 : {
3171 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3172 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3173 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3174 0 : && (
3175 :
3176 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3177 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3178 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3179 : )
3180 : {
3181 0 : {
3182 0 : tree type0 = TREE_TYPE (captures[0]);
3183 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1027;
3184 0 : {
3185 0 : tree res_op0;
3186 0 : {
3187 0 : tree _o1[1], _r1;
3188 0 : _o1[0] = captures[2];
3189 0 : if (TREE_TYPE (_o1[0]) != type0)
3190 : {
3191 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3192 : }
3193 : else
3194 : _r1 = _o1[0];
3195 0 : res_op0 = _r1;
3196 : }
3197 0 : tree _r;
3198 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3199 0 : if (!_r)
3200 0 : goto next_after_fail1027;
3201 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3202 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3203 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
3204 0 : return _r;
3205 : }
3206 : next_after_fail1027:;
3207 : }
3208 : }
3209 : return NULL_TREE;
3210 : }
3211 :
3212 : tree
3213 468152782 : generic_simplify_VIEW_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3214 : {
3215 468152782 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3216 468152782 : {
3217 468152782 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3218 936305564 : if ((
3219 :
3220 : && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
3221 : || (
3222 : 1
3223 468152782 : && type == TREE_TYPE (captures[0]))
3224 : )
3225 : {
3226 205656407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1088;
3227 205656407 : {
3228 205656407 : tree _r;
3229 205656407 : _r = captures[0];
3230 205656407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
3231 205656407 : return _r;
3232 : }
3233 0 : next_after_fail1088:;
3234 : }
3235 : }
3236 262496375 : switch (TREE_CODE (_p0))
3237 : {
3238 28889124 : case VIEW_CONVERT_EXPR:
3239 28889124 : {
3240 28889124 : tree _q20 = TREE_OPERAND (_p0, 0);
3241 28889124 : {
3242 28889124 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3243 28889124 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1089;
3244 28889124 : {
3245 28889124 : tree res_op0;
3246 28889124 : res_op0 = captures[0];
3247 28889124 : tree _r;
3248 28889124 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3249 28889124 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 865, __FILE__, __LINE__, true);
3250 468152782 : return _r;
3251 : }
3252 0 : next_after_fail1089:;
3253 : }
3254 0 : break;
3255 : }
3256 0 : case BIT_FIELD_REF:
3257 0 : {
3258 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3259 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3260 0 : tree _q22 = TREE_OPERAND (_p0, 2);
3261 0 : {
3262 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3263 0 : if (is_gimple_reg_type (type)
3264 0 : && (!INTEGRAL_TYPE_P (type)
3265 0 : || !INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3266 0 : || (type_has_mode_precision_p (type)
3267 0 : && type_has_mode_precision_p (TREE_TYPE (captures[0]))))
3268 : )
3269 : {
3270 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1090;
3271 0 : {
3272 0 : tree res_op0;
3273 0 : res_op0 = captures[1];
3274 0 : tree res_op1;
3275 0 : res_op1 = captures[2];
3276 0 : tree res_op2;
3277 0 : res_op2 = captures[3];
3278 0 : tree _r;
3279 0 : _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
3280 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 866, __FILE__, __LINE__, true);
3281 0 : return _r;
3282 : }
3283 0 : next_after_fail1090:;
3284 : }
3285 : }
3286 0 : break;
3287 : }
3288 233607251 : default:;
3289 : }
3290 233607251 : {
3291 233607251 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3292 231813310 : if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type))
3293 3164823 : && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
3294 236494319 : && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
3295 : )
3296 : {
3297 2533800 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1091;
3298 2533800 : {
3299 2533800 : tree res_op0;
3300 2533800 : res_op0 = captures[0];
3301 2533800 : tree _r;
3302 2533800 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3303 2533800 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 867, __FILE__, __LINE__, true);
3304 2533800 : return _r;
3305 : }
3306 0 : next_after_fail1091:;
3307 : }
3308 : }
3309 231073451 : switch (TREE_CODE (_p0))
3310 : {
3311 3427 : CASE_CONVERT:
3312 3427 : {
3313 3427 : tree _q20 = TREE_OPERAND (_p0, 0);
3314 3427 : {
3315 3427 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3316 3427 : {
3317 3427 : bool extended_bitint = false;
3318 3427 : if (BITINT_TYPE_P (TREE_TYPE (captures[0])))
3319 : {
3320 0 : struct bitint_info info;
3321 0 : extended_bitint
3322 0 : = targetm.c.bitint_type_info (TYPE_PRECISION (TREE_TYPE (captures[0])),
3323 : &info);
3324 0 : extended_bitint = extended_bitint && info.extended;
3325 : }
3326 6854 : if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
3327 71 : && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1])))
3328 71 : && !extended_bitint
3329 71 : && TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1]))
3330 3427 : && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
3331 0 : || (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
3332 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
3333 : )
3334 : {
3335 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1092;
3336 0 : {
3337 0 : tree res_op0;
3338 0 : res_op0 = captures[1];
3339 0 : tree _r;
3340 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3341 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
3342 0 : return _r;
3343 : }
3344 0 : next_after_fail1092:;
3345 : }
3346 : }
3347 : }
3348 3427 : break;
3349 : }
3350 83597 : case CONSTRUCTOR:
3351 83597 : {
3352 83597 : {
3353 83597 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3354 83597 : {
3355 83597 : tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
3356 : ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
3357 83597 : if (CONSTRUCTOR_NELTS (ctor) == 0
3358 : )
3359 : {
3360 6 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1093;
3361 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1093;
3362 6 : {
3363 6 : tree _r;
3364 6 : _r = build_zero_cst (type);
3365 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
3366 6 : return _r;
3367 : }
3368 : next_after_fail1093:;
3369 : }
3370 : else
3371 : {
3372 83591 : if (CONSTRUCTOR_NELTS (ctor) == 1
3373 40 : && VECTOR_TYPE_P (TREE_TYPE (ctor))
3374 83626 : && operand_equal_p (TYPE_SIZE (type),
3375 35 : TYPE_SIZE (TREE_TYPE
3376 : (CONSTRUCTOR_ELT (ctor, 0)->value)))
3377 : )
3378 : {
3379 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1094;
3380 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1094;
3381 0 : {
3382 0 : tree res_op0;
3383 0 : res_op0 = CONSTRUCTOR_ELT (ctor, 0)->value;
3384 0 : tree _r;
3385 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3386 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 870, __FILE__, __LINE__, true);
3387 0 : return _r;
3388 : }
3389 : next_after_fail1094:;
3390 : }
3391 : }
3392 : }
3393 : }
3394 : break;
3395 : }
3396 289504 : case VEC_COND_EXPR:
3397 289504 : {
3398 289504 : tree _q20 = TREE_OPERAND (_p0, 0);
3399 289504 : tree _q21 = TREE_OPERAND (_p0, 1);
3400 289504 : tree _q22 = TREE_OPERAND (_p0, 2);
3401 289504 : {
3402 289504 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3403 289458 : if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[2]))
3404 289861 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
3405 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[2])))
3406 42083 : && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[2])))
3407 331230 : && (expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
3408 347 : || !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1])))
3409 : )
3410 : {
3411 41726 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1095;
3412 41726 : {
3413 41726 : tree res_op0;
3414 41726 : res_op0 = captures[1];
3415 41726 : tree res_op1;
3416 41726 : {
3417 41726 : tree _o1[1], _r1;
3418 41726 : _o1[0] = captures[2];
3419 41726 : if (TREE_TYPE (_o1[0]) != type)
3420 : {
3421 41726 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3422 41726 : if (EXPR_P (_r1))
3423 82 : goto next_after_fail1095;
3424 : }
3425 : else
3426 : _r1 = _o1[0];
3427 41644 : res_op1 = _r1;
3428 : }
3429 41644 : tree res_op2;
3430 41644 : {
3431 41644 : tree _o1[1], _r1;
3432 41644 : _o1[0] = captures[3];
3433 41644 : if (TREE_TYPE (_o1[0]) != type)
3434 : {
3435 41644 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3436 41644 : if (EXPR_P (_r1))
3437 0 : goto next_after_fail1095;
3438 : }
3439 : else
3440 : _r1 = _o1[0];
3441 41644 : res_op2 = _r1;
3442 : }
3443 41644 : tree _r;
3444 41644 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3445 41644 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
3446 41644 : return _r;
3447 : }
3448 247860 : next_after_fail1095:;
3449 : }
3450 : }
3451 247860 : break;
3452 : }
3453 : default:;
3454 : }
3455 : return NULL_TREE;
3456 : }
3457 :
3458 : tree
3459 1564853926 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0)
3460 : {
3461 1564853926 : switch (code)
3462 : {
3463 2124169 : case ABS_EXPR:
3464 2124169 : return generic_simplify_ABS_EXPR (loc, code, type, _p0);
3465 714242381 : CASE_CONVERT:
3466 714242381 : return generic_simplify_CONVERT_EXPR (loc, code, type, _p0);
3467 2752056 : case BIT_NOT_EXPR:
3468 2752056 : return generic_simplify_BIT_NOT_EXPR (loc, code, type, _p0);
3469 942 : case ABSU_EXPR:
3470 942 : return generic_simplify_ABSU_EXPR (loc, code, type, _p0);
3471 4170368 : case NEGATE_EXPR:
3472 4170368 : return generic_simplify_NEGATE_EXPR (loc, code, type, _p0);
3473 468152782 : case VIEW_CONVERT_EXPR:
3474 468152782 : return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, _p0);
3475 6377735 : case FLOAT_EXPR:
3476 6377735 : return generic_simplify_FLOAT_EXPR (loc, code, type, _p0);
3477 495225 : case FIX_TRUNC_EXPR:
3478 495225 : return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, _p0);
3479 3678 : case PAREN_EXPR:
3480 3678 : return generic_simplify_PAREN_EXPR (loc, code, type, _p0);
3481 1647151 : case REALPART_EXPR:
3482 1647151 : return generic_simplify_REALPART_EXPR (loc, code, type, _p0);
3483 1910916 : case IMAGPART_EXPR:
3484 1910916 : return generic_simplify_IMAGPART_EXPR (loc, code, type, _p0);
3485 1330 : case CONJ_EXPR:
3486 1330 : return generic_simplify_CONJ_EXPR (loc, code, type, _p0);
3487 : default:;
3488 : }
3489 : return NULL_TREE;
3490 : }
3491 :
3492 : tree
3493 49336237 : generic_simplify_POINTER_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3494 : {
3495 49336237 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3496 49336237 : if (integer_zerop (_p1))
3497 : {
3498 2310604 : {
3499 2310604 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3500 2310604 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1252;
3501 2310604 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1252;
3502 2310604 : {
3503 2310604 : tree res_op0;
3504 2310604 : res_op0 = captures[0];
3505 2310604 : tree _r;
3506 2310604 : _r = non_lvalue_loc (loc, res_op0);
3507 2310604 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3508 2310604 : return _r;
3509 : }
3510 : next_after_fail1252:;
3511 : }
3512 : }
3513 47025633 : switch (TREE_CODE (_p0))
3514 : {
3515 3719959 : case POINTER_PLUS_EXPR:
3516 3719959 : {
3517 3719959 : tree _q20 = TREE_OPERAND (_p0, 0);
3518 3719959 : tree _q21 = TREE_OPERAND (_p0, 1);
3519 3719959 : {
3520 3719959 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3521 3719959 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1253;
3522 3719959 : {
3523 3719959 : tree res_op0;
3524 3719959 : res_op0 = captures[1];
3525 3719959 : tree res_op1;
3526 3719959 : {
3527 3719959 : tree _o1[2], _r1;
3528 3719959 : _o1[0] = captures[2];
3529 3719959 : _o1[1] = captures[3];
3530 3719959 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3531 3719959 : res_op1 = _r1;
3532 : }
3533 3719959 : tree _r;
3534 3719959 : _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
3535 3719959 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
3536 3719959 : return _r;
3537 : }
3538 0 : next_after_fail1253:;
3539 : }
3540 0 : break;
3541 : }
3542 20246860 : CASE_CONVERT:
3543 20246860 : {
3544 20246860 : tree _q20 = TREE_OPERAND (_p0, 0);
3545 20246860 : switch (TREE_CODE (_q20))
3546 : {
3547 26920 : case POINTER_PLUS_EXPR:
3548 26920 : {
3549 26920 : tree _q30 = TREE_OPERAND (_q20, 0);
3550 26920 : tree _q31 = TREE_OPERAND (_q20, 1);
3551 26920 : {
3552 26920 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
3553 26920 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1254;
3554 26920 : {
3555 26920 : tree res_op0;
3556 26920 : {
3557 26920 : tree _o1[1], _r1;
3558 26920 : _o1[0] = captures[2];
3559 26920 : if (TREE_TYPE (_o1[0]) != type)
3560 : {
3561 26814 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3562 : }
3563 : else
3564 : _r1 = _o1[0];
3565 26920 : res_op0 = _r1;
3566 : }
3567 26920 : tree res_op1;
3568 26920 : {
3569 26920 : tree _o1[2], _r1;
3570 26920 : _o1[0] = captures[3];
3571 26920 : _o1[1] = captures[4];
3572 26920 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3573 26920 : res_op1 = _r1;
3574 : }
3575 26920 : tree _r;
3576 26920 : _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
3577 26920 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
3578 26920 : return _r;
3579 : }
3580 0 : next_after_fail1254:;
3581 : }
3582 0 : break;
3583 : }
3584 : default:;
3585 : }
3586 : break;
3587 : }
3588 43278754 : default:;
3589 : }
3590 43278754 : if (integer_zerop (_p0))
3591 : {
3592 646 : {
3593 646 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
3594 646 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1255;
3595 646 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1255;
3596 646 : {
3597 646 : tree res_op0;
3598 646 : {
3599 646 : tree _o1[1], _r1;
3600 646 : _o1[0] = captures[0];
3601 646 : if (TREE_TYPE (_o1[0]) != type)
3602 : {
3603 646 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3604 : }
3605 : else
3606 : _r1 = _o1[0];
3607 646 : res_op0 = _r1;
3608 : }
3609 646 : tree _r;
3610 646 : _r = non_lvalue_loc (loc, res_op0);
3611 646 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
3612 646 : return _r;
3613 : }
3614 : next_after_fail1255:;
3615 : }
3616 : }
3617 43278108 : switch (TREE_CODE (_p1))
3618 : {
3619 8984144 : CASE_CONVERT:
3620 8984144 : {
3621 8984144 : tree _q30 = TREE_OPERAND (_p1, 0);
3622 8984144 : switch (TREE_CODE (_q30))
3623 : {
3624 197207 : case MINUS_EXPR:
3625 197207 : {
3626 197207 : tree _q40 = TREE_OPERAND (_q30, 0);
3627 197207 : tree _q41 = TREE_OPERAND (_q30, 1);
3628 197207 : switch (TREE_CODE (_q40))
3629 : {
3630 91532 : CASE_CONVERT:
3631 91532 : {
3632 91532 : tree _q50 = TREE_OPERAND (_q40, 0);
3633 91532 : switch (TREE_CODE (_q41))
3634 : {
3635 7910 : CASE_CONVERT:
3636 7910 : {
3637 7910 : tree _q70 = TREE_OPERAND (_q41, 0);
3638 7910 : if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
3639 : {
3640 4703 : {
3641 4703 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q50 };
3642 4703 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
3643 4703 : && ((
3644 :
3645 : && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
3646 : || (
3647 : 1
3648 4703 : && type == TREE_TYPE (captures[3])))
3649 : )
3650 : {
3651 3314 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1256;
3652 3314 : {
3653 3314 : tree _r;
3654 3314 : _r = captures[3];
3655 3314 : if (TREE_SIDE_EFFECTS (captures[0]))
3656 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3657 3314 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
3658 3314 : return _r;
3659 : }
3660 0 : next_after_fail1256:;
3661 : }
3662 : }
3663 : }
3664 : break;
3665 : }
3666 : default:;
3667 : }
3668 : break;
3669 : }
3670 : default:;
3671 : }
3672 : break;
3673 : }
3674 568 : case POINTER_DIFF_EXPR:
3675 568 : {
3676 568 : tree _q40 = TREE_OPERAND (_q30, 0);
3677 568 : tree _q41 = TREE_OPERAND (_q30, 1);
3678 568 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
3679 : {
3680 7 : {
3681 7 : tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
3682 7 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
3683 : )
3684 : {
3685 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1257;
3686 7 : {
3687 7 : tree res_op0;
3688 7 : res_op0 = captures[3];
3689 7 : tree _r;
3690 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3691 7 : if (TREE_SIDE_EFFECTS (captures[4]))
3692 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3693 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
3694 7 : return _r;
3695 : }
3696 0 : next_after_fail1257:;
3697 : }
3698 : }
3699 : }
3700 : break;
3701 : }
3702 : default:;
3703 : }
3704 : break;
3705 : }
3706 27343 : case MINUS_EXPR:
3707 27343 : {
3708 27343 : tree _q30 = TREE_OPERAND (_p1, 0);
3709 27343 : tree _q31 = TREE_OPERAND (_p1, 1);
3710 27343 : switch (TREE_CODE (_q30))
3711 : {
3712 23455 : CASE_CONVERT:
3713 23455 : {
3714 23455 : tree _q40 = TREE_OPERAND (_q30, 0);
3715 23455 : switch (TREE_CODE (_q31))
3716 : {
3717 7340 : CASE_CONVERT:
3718 7340 : {
3719 7340 : tree _q60 = TREE_OPERAND (_q31, 0);
3720 7340 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
3721 : {
3722 20 : {
3723 20 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p1, _q40 };
3724 20 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
3725 20 : && ((
3726 :
3727 : && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
3728 : || (
3729 : 1
3730 20 : && type == TREE_TYPE (captures[3])))
3731 : )
3732 : {
3733 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1258;
3734 0 : {
3735 0 : tree _r;
3736 0 : _r = captures[3];
3737 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3738 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3739 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
3740 0 : return _r;
3741 : }
3742 0 : next_after_fail1258:;
3743 : }
3744 : }
3745 : }
3746 : break;
3747 : }
3748 : default:;
3749 : }
3750 : break;
3751 : }
3752 974 : case INTEGER_CST:
3753 974 : {
3754 974 : switch (TREE_CODE (_q31))
3755 : {
3756 16 : case BIT_AND_EXPR:
3757 16 : {
3758 16 : tree _q50 = TREE_OPERAND (_q31, 0);
3759 16 : tree _q51 = TREE_OPERAND (_q31, 1);
3760 16 : switch (TREE_CODE (_q50))
3761 : {
3762 16 : CASE_CONVERT:
3763 16 : {
3764 16 : tree _q60 = TREE_OPERAND (_q50, 0);
3765 16 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
3766 : {
3767 0 : switch (TREE_CODE (_q51))
3768 : {
3769 0 : case INTEGER_CST:
3770 0 : {
3771 0 : {
3772 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q51 };
3773 0 : if (tree_int_cst_min_precision (captures[3], UNSIGNED) <= tree_ctz (captures[2])
3774 : )
3775 : {
3776 0 : {
3777 0 : tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[3]));
3778 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1259;
3779 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1259;
3780 0 : {
3781 0 : tree res_op0;
3782 0 : {
3783 0 : tree _o1[2], _r1;
3784 0 : _o1[0] = captures[0];
3785 0 : _o1[1] = algn;
3786 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3787 0 : res_op0 = _r1;
3788 : }
3789 0 : tree res_op1;
3790 0 : res_op1 = captures[2];
3791 0 : tree _r;
3792 0 : _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
3793 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
3794 0 : return _r;
3795 : }
3796 0 : next_after_fail1259:;
3797 : }
3798 : }
3799 : }
3800 0 : break;
3801 : }
3802 : default:;
3803 : }
3804 : }
3805 16 : switch (TREE_CODE (_q60))
3806 : {
3807 0 : case POINTER_PLUS_EXPR:
3808 0 : {
3809 0 : tree _q70 = TREE_OPERAND (_q60, 0);
3810 0 : tree _q71 = TREE_OPERAND (_q60, 1);
3811 0 : if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
3812 : {
3813 0 : switch (TREE_CODE (_q71))
3814 : {
3815 0 : case INTEGER_CST:
3816 0 : {
3817 0 : switch (TREE_CODE (_q51))
3818 : {
3819 0 : case INTEGER_CST:
3820 0 : {
3821 0 : {
3822 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q71, _q51 };
3823 0 : {
3824 0 : auto mask_width = tree_int_cst_min_precision (captures[4], UNSIGNED);
3825 0 : if (mask_width <= tree_ctz (captures[2]) && mask_width <= tree_ctz (captures[3])
3826 : )
3827 : {
3828 0 : {
3829 0 : tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[4]));
3830 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1260;
3831 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1260;
3832 0 : {
3833 0 : tree res_op0;
3834 0 : {
3835 0 : tree _o1[2], _r1;
3836 0 : _o1[0] = captures[0];
3837 0 : _o1[1] = algn;
3838 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3839 0 : res_op0 = _r1;
3840 : }
3841 0 : tree res_op1;
3842 0 : res_op1 = captures[2];
3843 0 : tree _r;
3844 0 : _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
3845 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3846 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3847 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
3848 0 : return _r;
3849 : }
3850 0 : next_after_fail1260:;
3851 : }
3852 : }
3853 : }
3854 : }
3855 0 : break;
3856 : }
3857 : default:;
3858 : }
3859 : break;
3860 : }
3861 : default:;
3862 : }
3863 : }
3864 : break;
3865 : }
3866 : default:;
3867 : }
3868 : break;
3869 : }
3870 : default:;
3871 : }
3872 : break;
3873 : }
3874 : default:;
3875 : }
3876 : break;
3877 : }
3878 : default:;
3879 : }
3880 : break;
3881 : }
3882 0 : case POINTER_DIFF_EXPR:
3883 0 : {
3884 0 : tree _q30 = TREE_OPERAND (_p1, 0);
3885 0 : tree _q31 = TREE_OPERAND (_p1, 1);
3886 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
3887 : {
3888 0 : {
3889 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
3890 0 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
3891 : )
3892 : {
3893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1261;
3894 0 : {
3895 0 : tree res_op0;
3896 0 : res_op0 = captures[3];
3897 0 : tree _r;
3898 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3899 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3900 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3901 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
3902 0 : return _r;
3903 : }
3904 0 : next_after_fail1261:;
3905 : }
3906 : }
3907 : }
3908 : break;
3909 : }
3910 340026 : case NEGATE_EXPR:
3911 340026 : {
3912 340026 : tree _q30 = TREE_OPERAND (_p1, 0);
3913 340026 : switch (TREE_CODE (_q30))
3914 : {
3915 22 : case BIT_AND_EXPR:
3916 22 : {
3917 22 : tree _q40 = TREE_OPERAND (_q30, 0);
3918 22 : tree _q41 = TREE_OPERAND (_q30, 1);
3919 22 : switch (TREE_CODE (_q40))
3920 : {
3921 22 : CASE_CONVERT:
3922 22 : {
3923 22 : tree _q50 = TREE_OPERAND (_q40, 0);
3924 22 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
3925 : {
3926 1 : switch (TREE_CODE (_q41))
3927 : {
3928 1 : case INTEGER_CST:
3929 1 : {
3930 1 : {
3931 1 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
3932 1 : {
3933 1 : tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
3934 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1262;
3935 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1262;
3936 1 : {
3937 1 : tree res_op0;
3938 1 : res_op0 = captures[0];
3939 1 : tree res_op1;
3940 1 : res_op1 = algn;
3941 1 : tree _r;
3942 1 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3943 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 906, __FILE__, __LINE__, true);
3944 1 : return _r;
3945 : }
3946 0 : next_after_fail1262:;
3947 : }
3948 : }
3949 0 : break;
3950 : }
3951 : default:;
3952 : }
3953 : }
3954 21 : switch (TREE_CODE (_q50))
3955 : {
3956 0 : case POINTER_PLUS_EXPR:
3957 0 : {
3958 0 : tree _q60 = TREE_OPERAND (_q50, 0);
3959 0 : tree _q61 = TREE_OPERAND (_q50, 1);
3960 0 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
3961 : {
3962 0 : switch (TREE_CODE (_q61))
3963 : {
3964 0 : case INTEGER_CST:
3965 0 : {
3966 0 : switch (TREE_CODE (_q41))
3967 : {
3968 0 : case INTEGER_CST:
3969 0 : {
3970 0 : {
3971 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q61, _q41 };
3972 0 : if (tree_int_cst_min_precision (captures[2], UNSIGNED) <= tree_ctz (captures[1])
3973 : )
3974 : {
3975 0 : {
3976 0 : tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[2]));
3977 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1263;
3978 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1263;
3979 0 : {
3980 0 : tree res_op0;
3981 0 : res_op0 = captures[0];
3982 0 : tree res_op1;
3983 0 : res_op1 = algn;
3984 0 : tree _r;
3985 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3986 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3987 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3988 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
3989 0 : return _r;
3990 : }
3991 0 : next_after_fail1263:;
3992 : }
3993 : }
3994 : }
3995 0 : break;
3996 : }
3997 : default:;
3998 : }
3999 : break;
4000 : }
4001 : default:;
4002 : }
4003 : }
4004 : break;
4005 : }
4006 : default:;
4007 : }
4008 : break;
4009 : }
4010 : default:;
4011 : }
4012 : break;
4013 : }
4014 : default:;
4015 : }
4016 : break;
4017 : }
4018 : default:;
4019 : }
4020 : return NULL_TREE;
4021 : }
4022 :
4023 : tree
4024 35979698 : generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4025 : {
4026 35979698 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4027 35979698 : switch (TREE_CODE (_p1))
4028 : {
4029 2247 : case NEGATE_EXPR:
4030 2247 : {
4031 2247 : tree _q30 = TREE_OPERAND (_p1, 0);
4032 2247 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4033 : {
4034 0 : {
4035 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4036 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
4037 0 : if (res) return res;
4038 : }
4039 : }
4040 : break;
4041 : }
4042 35979698 : default:;
4043 : }
4044 35979698 : switch (TREE_CODE (_p0))
4045 : {
4046 6198 : case NEGATE_EXPR:
4047 6198 : {
4048 6198 : tree _q20 = TREE_OPERAND (_p0, 0);
4049 6198 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4050 : {
4051 88 : {
4052 88 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4053 88 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
4054 88 : if (res) return res;
4055 : }
4056 : }
4057 : break;
4058 : }
4059 0 : case CEIL_MOD_EXPR:
4060 0 : {
4061 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4062 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4063 0 : if (integer_pow2p (_q21))
4064 : {
4065 0 : if (integer_zerop (_p1))
4066 : {
4067 0 : {
4068 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4069 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, CEIL_MOD_EXPR);
4070 0 : if (res) return res;
4071 : }
4072 : }
4073 : }
4074 : break;
4075 : }
4076 1623 : case FLOOR_MOD_EXPR:
4077 1623 : {
4078 1623 : tree _q20 = TREE_OPERAND (_p0, 0);
4079 1623 : tree _q21 = TREE_OPERAND (_p0, 1);
4080 1623 : if (integer_pow2p (_q21))
4081 : {
4082 20 : if (integer_zerop (_p1))
4083 : {
4084 20 : {
4085 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4086 20 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, FLOOR_MOD_EXPR);
4087 20 : if (res) return res;
4088 : }
4089 : }
4090 : }
4091 : break;
4092 : }
4093 0 : case ROUND_MOD_EXPR:
4094 0 : {
4095 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4096 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4097 0 : if (integer_pow2p (_q21))
4098 : {
4099 0 : if (integer_zerop (_p1))
4100 : {
4101 0 : {
4102 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4103 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, ROUND_MOD_EXPR);
4104 0 : if (res) return res;
4105 : }
4106 : }
4107 : }
4108 : break;
4109 : }
4110 80894 : case TRUNC_MOD_EXPR:
4111 80894 : {
4112 80894 : tree _q20 = TREE_OPERAND (_p0, 0);
4113 80894 : tree _q21 = TREE_OPERAND (_p0, 1);
4114 80894 : if (integer_pow2p (_q21))
4115 : {
4116 20912 : if (integer_zerop (_p1))
4117 : {
4118 19470 : {
4119 19470 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4120 19470 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, TRUNC_MOD_EXPR);
4121 19470 : if (res) return res;
4122 : }
4123 : }
4124 : }
4125 : break;
4126 : }
4127 6885907 : CASE_CONVERT:
4128 6885907 : {
4129 6885907 : tree _q20 = TREE_OPERAND (_p0, 0);
4130 6885907 : switch (TREE_CODE (_p1))
4131 : {
4132 69 : case LSHIFT_EXPR:
4133 69 : {
4134 69 : tree _q40 = TREE_OPERAND (_p1, 0);
4135 69 : tree _q41 = TREE_OPERAND (_p1, 1);
4136 69 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4137 : {
4138 0 : {
4139 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4140 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4141 0 : if (res) return res;
4142 : }
4143 : }
4144 : break;
4145 : }
4146 6885907 : default:;
4147 : }
4148 6885907 : {
4149 6885907 : tree _p1_pops[1];
4150 6885907 : if (tree_nop_convert (_p1, _p1_pops))
4151 : {
4152 2978379 : tree _q40 = _p1_pops[0];
4153 2978379 : switch (TREE_CODE (_q40))
4154 : {
4155 0 : case LSHIFT_EXPR:
4156 0 : {
4157 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4158 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4159 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4160 : {
4161 0 : {
4162 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
4163 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4164 0 : if (res) return res;
4165 : }
4166 : }
4167 : break;
4168 : }
4169 : default:;
4170 : }
4171 : }
4172 : }
4173 6885907 : switch (TREE_CODE (_q20))
4174 : {
4175 0 : case EXACT_DIV_EXPR:
4176 0 : {
4177 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4178 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4179 0 : switch (TREE_CODE (_q31))
4180 : {
4181 0 : case INTEGER_CST:
4182 0 : {
4183 0 : switch (TREE_CODE (_p1))
4184 : {
4185 0 : CASE_CONVERT:
4186 0 : {
4187 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4188 0 : switch (TREE_CODE (_q60))
4189 : {
4190 0 : case EXACT_DIV_EXPR:
4191 0 : {
4192 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4193 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4194 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
4195 : {
4196 0 : {
4197 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
4198 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
4199 0 : if (res) return res;
4200 : }
4201 : }
4202 : break;
4203 : }
4204 : default:;
4205 : }
4206 : break;
4207 : }
4208 : default:;
4209 : }
4210 : break;
4211 : }
4212 : default:;
4213 : }
4214 : break;
4215 : }
4216 6885907 : default:;
4217 : }
4218 6885907 : switch (TREE_CODE (_p1))
4219 : {
4220 20295 : case PLUS_EXPR:
4221 20295 : {
4222 20295 : tree _q40 = TREE_OPERAND (_p1, 0);
4223 20295 : tree _q41 = TREE_OPERAND (_p1, 1);
4224 20295 : switch (TREE_CODE (_q41))
4225 : {
4226 203 : CASE_CONVERT:
4227 203 : {
4228 203 : tree _q60 = TREE_OPERAND (_q41, 0);
4229 203 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4230 : {
4231 0 : {
4232 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4233 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4234 0 : if (res) return res;
4235 : }
4236 : }
4237 : break;
4238 : }
4239 20295 : default:;
4240 : }
4241 20295 : switch (TREE_CODE (_q40))
4242 : {
4243 800 : CASE_CONVERT:
4244 800 : {
4245 800 : tree _q50 = TREE_OPERAND (_q40, 0);
4246 800 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4247 : {
4248 15 : {
4249 15 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4250 15 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4251 15 : if (res) return res;
4252 : }
4253 : }
4254 : break;
4255 : }
4256 20288 : default:;
4257 : }
4258 20288 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4259 : {
4260 0 : {
4261 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4262 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4263 0 : if (res) return res;
4264 : }
4265 : }
4266 20288 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4267 : {
4268 0 : {
4269 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4270 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4271 0 : if (res) return res;
4272 : }
4273 : }
4274 : break;
4275 : }
4276 6885900 : default:;
4277 : }
4278 6885900 : {
4279 6885900 : tree _p1_pops[1];
4280 6885900 : if (tree_nop_convert (_p1, _p1_pops))
4281 : {
4282 2978379 : tree _q40 = _p1_pops[0];
4283 2978379 : switch (TREE_CODE (_q40))
4284 : {
4285 140 : case PLUS_EXPR:
4286 140 : {
4287 140 : tree _q50 = TREE_OPERAND (_q40, 0);
4288 140 : tree _q51 = TREE_OPERAND (_q40, 1);
4289 140 : switch (TREE_CODE (_q51))
4290 : {
4291 0 : CASE_CONVERT:
4292 0 : {
4293 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4294 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4295 : {
4296 0 : {
4297 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4298 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4299 0 : if (res) return res;
4300 : }
4301 : }
4302 : break;
4303 : }
4304 140 : default:;
4305 : }
4306 140 : switch (TREE_CODE (_q50))
4307 : {
4308 73 : CASE_CONVERT:
4309 73 : {
4310 73 : tree _q60 = TREE_OPERAND (_q50, 0);
4311 73 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4312 : {
4313 0 : {
4314 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4315 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4316 0 : if (res) return res;
4317 : }
4318 : }
4319 : break;
4320 : }
4321 140 : default:;
4322 : }
4323 140 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4324 : {
4325 0 : {
4326 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4327 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4328 0 : if (res) return res;
4329 : }
4330 : }
4331 140 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4332 : {
4333 0 : {
4334 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4335 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4336 0 : if (res) return res;
4337 : }
4338 : }
4339 : break;
4340 : }
4341 : default:;
4342 : }
4343 : }
4344 : }
4345 6885900 : break;
4346 : }
4347 35960201 : default:;
4348 : }
4349 35960201 : {
4350 35960201 : tree _p0_pops[1];
4351 35960201 : if (tree_nop_convert (_p0, _p0_pops))
4352 : {
4353 4707180 : tree _q20 = _p0_pops[0];
4354 4707180 : switch (TREE_CODE (_q20))
4355 : {
4356 15 : case LSHIFT_EXPR:
4357 15 : {
4358 15 : tree _q30 = TREE_OPERAND (_q20, 0);
4359 15 : tree _q31 = TREE_OPERAND (_q20, 1);
4360 15 : switch (TREE_CODE (_p1))
4361 : {
4362 1 : CASE_CONVERT:
4363 1 : {
4364 1 : tree _q60 = TREE_OPERAND (_p1, 0);
4365 1 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4366 : {
4367 0 : {
4368 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4369 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4370 0 : if (res) return res;
4371 : }
4372 : }
4373 : break;
4374 : }
4375 15 : default:;
4376 : }
4377 15 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4378 : {
4379 1 : {
4380 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4381 1 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4382 1 : if (res) return res;
4383 : }
4384 : }
4385 : break;
4386 : }
4387 31259 : case PLUS_EXPR:
4388 31259 : {
4389 31259 : tree _q30 = TREE_OPERAND (_q20, 0);
4390 31259 : tree _q31 = TREE_OPERAND (_q20, 1);
4391 31259 : switch (TREE_CODE (_q31))
4392 : {
4393 37 : CASE_CONVERT:
4394 37 : {
4395 37 : tree _q50 = TREE_OPERAND (_q31, 0);
4396 37 : switch (TREE_CODE (_p1))
4397 : {
4398 0 : CASE_CONVERT:
4399 0 : {
4400 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4401 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
4402 : {
4403 0 : {
4404 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4405 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4406 0 : if (res) return res;
4407 : }
4408 : }
4409 : break;
4410 : }
4411 : default:;
4412 : }
4413 : break;
4414 : }
4415 31259 : default:;
4416 : }
4417 31259 : switch (TREE_CODE (_q30))
4418 : {
4419 26676 : CASE_CONVERT:
4420 26676 : {
4421 26676 : tree _q40 = TREE_OPERAND (_q30, 0);
4422 26676 : switch (TREE_CODE (_p1))
4423 : {
4424 383 : CASE_CONVERT:
4425 383 : {
4426 383 : tree _q70 = TREE_OPERAND (_p1, 0);
4427 383 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
4428 : {
4429 90 : {
4430 90 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4431 90 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4432 90 : if (res) return res;
4433 : }
4434 : }
4435 : break;
4436 : }
4437 26586 : default:;
4438 : }
4439 26586 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4440 : {
4441 11 : {
4442 11 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4443 11 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4444 11 : if (res) return res;
4445 : }
4446 : }
4447 : break;
4448 : }
4449 31158 : default:;
4450 : }
4451 31158 : switch (TREE_CODE (_q31))
4452 : {
4453 37 : CASE_CONVERT:
4454 37 : {
4455 37 : tree _q50 = TREE_OPERAND (_q31, 0);
4456 37 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
4457 : {
4458 0 : {
4459 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4460 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4461 0 : if (res) return res;
4462 : }
4463 : }
4464 : break;
4465 : }
4466 31158 : default:;
4467 : }
4468 31158 : switch (TREE_CODE (_p1))
4469 : {
4470 368 : CASE_CONVERT:
4471 368 : {
4472 368 : tree _q60 = TREE_OPERAND (_p1, 0);
4473 368 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4474 : {
4475 0 : {
4476 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4477 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4478 0 : if (res) return res;
4479 : }
4480 : }
4481 368 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4482 : {
4483 68 : {
4484 68 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4485 68 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4486 68 : if (res) return res;
4487 : }
4488 : }
4489 : break;
4490 : }
4491 31090 : default:;
4492 : }
4493 31090 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4494 : {
4495 0 : {
4496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4497 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4498 0 : if (res) return res;
4499 : }
4500 : }
4501 31090 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4502 : {
4503 0 : {
4504 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4505 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
4506 0 : if (res) return res;
4507 : }
4508 : }
4509 : break;
4510 : }
4511 : default:;
4512 : }
4513 : }
4514 : }
4515 35960031 : {
4516 35960031 : tree _p1_pops[1];
4517 35960031 : if (tree_nop_convert (_p1, _p1_pops))
4518 : {
4519 3344362 : tree _q30 = _p1_pops[0];
4520 3344362 : switch (TREE_CODE (_q30))
4521 : {
4522 0 : case LSHIFT_EXPR:
4523 0 : {
4524 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4525 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4526 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
4527 : {
4528 0 : {
4529 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
4530 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4531 0 : if (res) return res;
4532 : }
4533 : }
4534 : break;
4535 : }
4536 : default:;
4537 : }
4538 : }
4539 : }
4540 35960031 : switch (TREE_CODE (_p0))
4541 : {
4542 5186 : case LSHIFT_EXPR:
4543 5186 : {
4544 5186 : tree _q20 = TREE_OPERAND (_p0, 0);
4545 5186 : tree _q21 = TREE_OPERAND (_p0, 1);
4546 5186 : switch (TREE_CODE (_p1))
4547 : {
4548 35 : CASE_CONVERT:
4549 35 : {
4550 35 : tree _q50 = TREE_OPERAND (_p1, 0);
4551 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4552 : {
4553 4 : {
4554 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4555 4 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4556 4 : if (res) return res;
4557 : }
4558 : }
4559 : break;
4560 : }
4561 5185 : default:;
4562 : }
4563 5185 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4564 : {
4565 27 : {
4566 27 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4567 27 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4568 27 : if (res) return res;
4569 : }
4570 : }
4571 5181 : if (tree_zero_one_valued_p (_q20))
4572 : {
4573 476 : switch (TREE_CODE (_q21))
4574 : {
4575 116 : case INTEGER_CST:
4576 116 : {
4577 116 : if (integer_zerop (_p1))
4578 : {
4579 5 : {
4580 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4581 5 : if (tree_fits_shwi_p (captures[1])
4582 5 : && tree_to_shwi (captures[1]) > 0
4583 10 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
4584 : )
4585 : {
4586 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
4587 5 : {
4588 5 : tree res_op0;
4589 5 : res_op0 = captures[0];
4590 5 : tree _r;
4591 5 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4592 5 : if (TREE_SIDE_EFFECTS (captures[1]))
4593 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4594 5 : if (TREE_SIDE_EFFECTS (captures[2]))
4595 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4596 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
4597 5 : return _r;
4598 : }
4599 0 : next_after_fail1516:;
4600 : }
4601 : }
4602 : }
4603 : break;
4604 : }
4605 : default:;
4606 : }
4607 : }
4608 : break;
4609 : }
4610 35960021 : default:;
4611 : }
4612 35960021 : switch (TREE_CODE (_p1))
4613 : {
4614 268 : case LSHIFT_EXPR:
4615 268 : {
4616 268 : tree _q30 = TREE_OPERAND (_p1, 0);
4617 268 : tree _q31 = TREE_OPERAND (_p1, 1);
4618 268 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4619 : {
4620 0 : {
4621 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4622 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
4623 0 : if (res) return res;
4624 : }
4625 : }
4626 : break;
4627 : }
4628 35960021 : default:;
4629 : }
4630 35960021 : switch (TREE_CODE (_p0))
4631 : {
4632 155 : case VIEW_CONVERT_EXPR:
4633 155 : {
4634 155 : tree _q20 = TREE_OPERAND (_p0, 0);
4635 155 : if (tree_zero_one_valued_p (_q20))
4636 : {
4637 0 : if (integer_zerop (_p1))
4638 : {
4639 0 : {
4640 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4641 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, NE_EXPR);
4642 0 : if (res) return res;
4643 : }
4644 : }
4645 : }
4646 : break;
4647 : }
4648 20506 : case RSHIFT_EXPR:
4649 20506 : {
4650 20506 : tree _q20 = TREE_OPERAND (_p0, 0);
4651 20506 : tree _q21 = TREE_OPERAND (_p0, 1);
4652 20506 : switch (TREE_CODE (_q21))
4653 : {
4654 18176 : case INTEGER_CST:
4655 18176 : {
4656 18176 : switch (TREE_CODE (_p1))
4657 : {
4658 210 : case RSHIFT_EXPR:
4659 210 : {
4660 210 : tree _q50 = TREE_OPERAND (_p1, 0);
4661 210 : tree _q51 = TREE_OPERAND (_p1, 1);
4662 210 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4663 : {
4664 15 : switch (TREE_CODE (_q51))
4665 : {
4666 15 : case INTEGER_CST:
4667 15 : {
4668 15 : {
4669 15 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4670 15 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
4671 15 : if (res) return res;
4672 : }
4673 3 : break;
4674 : }
4675 : default:;
4676 : }
4677 : }
4678 : break;
4679 : }
4680 18164 : default:;
4681 : }
4682 18164 : if (integer_zerop (_p1))
4683 : {
4684 7617 : {
4685 7617 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4686 7617 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
4687 7617 : if (res) return res;
4688 : }
4689 : }
4690 : break;
4691 : }
4692 : default:;
4693 : }
4694 : break;
4695 : }
4696 95289 : case MULT_EXPR:
4697 95289 : {
4698 95289 : tree _q20 = TREE_OPERAND (_p0, 0);
4699 95289 : tree _q21 = TREE_OPERAND (_p0, 1);
4700 95289 : switch (TREE_CODE (_p1))
4701 : {
4702 2845 : case MULT_EXPR:
4703 2845 : {
4704 2845 : tree _q50 = TREE_OPERAND (_p1, 0);
4705 2845 : tree _q51 = TREE_OPERAND (_p1, 1);
4706 2845 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4707 : {
4708 1591 : {
4709 1591 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4710 1591 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
4711 1591 : if (res) return res;
4712 : }
4713 : }
4714 2841 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4715 : {
4716 53 : {
4717 53 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4718 53 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
4719 53 : if (res) return res;
4720 : }
4721 : }
4722 2841 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4723 : {
4724 22 : {
4725 22 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4726 22 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
4727 22 : if (res) return res;
4728 : }
4729 : }
4730 2841 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4731 : {
4732 257 : {
4733 257 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4734 257 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
4735 257 : if (res) return res;
4736 : }
4737 : }
4738 : break;
4739 : }
4740 95285 : default:;
4741 : }
4742 95285 : switch (TREE_CODE (_q21))
4743 : {
4744 77780 : case INTEGER_CST:
4745 77780 : {
4746 77780 : switch (TREE_CODE (_p1))
4747 : {
4748 1986 : case MULT_EXPR:
4749 1986 : {
4750 1986 : tree _q50 = TREE_OPERAND (_p1, 0);
4751 1986 : tree _q51 = TREE_OPERAND (_p1, 1);
4752 1986 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4753 : {
4754 1062 : {
4755 1062 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4756 1062 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, NE_EXPR);
4757 1062 : if (res) return res;
4758 : }
4759 : }
4760 : break;
4761 : }
4762 : default:;
4763 : }
4764 : break;
4765 : }
4766 : default:;
4767 : }
4768 : break;
4769 : }
4770 2057 : case EXACT_DIV_EXPR:
4771 2057 : {
4772 2057 : tree _q20 = TREE_OPERAND (_p0, 0);
4773 2057 : tree _q21 = TREE_OPERAND (_p0, 1);
4774 2057 : switch (TREE_CODE (_q21))
4775 : {
4776 2057 : case INTEGER_CST:
4777 2057 : {
4778 2057 : switch (TREE_CODE (_p1))
4779 : {
4780 22 : case EXACT_DIV_EXPR:
4781 22 : {
4782 22 : tree _q50 = TREE_OPERAND (_p1, 0);
4783 22 : tree _q51 = TREE_OPERAND (_p1, 1);
4784 22 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4785 : {
4786 12 : {
4787 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
4788 12 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
4789 12 : if (res) return res;
4790 : }
4791 : }
4792 : break;
4793 : }
4794 : default:;
4795 : }
4796 : break;
4797 : }
4798 : default:;
4799 : }
4800 : break;
4801 : }
4802 11294 : case TRUNC_DIV_EXPR:
4803 11294 : {
4804 11294 : tree _q20 = TREE_OPERAND (_p0, 0);
4805 11294 : tree _q21 = TREE_OPERAND (_p0, 1);
4806 11294 : switch (TREE_CODE (_q21))
4807 : {
4808 8560 : case INTEGER_CST:
4809 8560 : {
4810 8560 : switch (TREE_CODE (_p1))
4811 : {
4812 2432 : case INTEGER_CST:
4813 2432 : {
4814 2432 : {
4815 2432 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4816 2432 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, NE_EXPR);
4817 2432 : if (res) return res;
4818 : }
4819 325 : break;
4820 : }
4821 : default:;
4822 : }
4823 : break;
4824 : }
4825 : default:;
4826 : }
4827 : break;
4828 : }
4829 1508837 : case PLUS_EXPR:
4830 1508837 : {
4831 1508837 : tree _q20 = TREE_OPERAND (_p0, 0);
4832 1508837 : tree _q21 = TREE_OPERAND (_p0, 1);
4833 1508837 : switch (TREE_CODE (_p1))
4834 : {
4835 188560 : case PLUS_EXPR:
4836 188560 : {
4837 188560 : tree _q50 = TREE_OPERAND (_p1, 0);
4838 188560 : tree _q51 = TREE_OPERAND (_p1, 1);
4839 188560 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4840 : {
4841 959 : {
4842 959 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4843 1918 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4844 1887 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4845 845 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4846 : )
4847 : {
4848 928 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
4849 928 : {
4850 928 : tree res_op0;
4851 928 : res_op0 = captures[0];
4852 928 : tree res_op1;
4853 928 : res_op1 = captures[2];
4854 928 : tree _r;
4855 928 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4856 928 : if (TREE_SIDE_EFFECTS (captures[1]))
4857 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4858 928 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
4859 928 : return _r;
4860 : }
4861 0 : next_after_fail1517:;
4862 : }
4863 : }
4864 : }
4865 187632 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4866 : {
4867 0 : {
4868 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4869 0 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4870 0 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4871 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4872 : )
4873 : {
4874 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
4875 0 : {
4876 0 : tree res_op0;
4877 0 : res_op0 = captures[0];
4878 0 : tree res_op1;
4879 0 : res_op1 = captures[2];
4880 0 : tree _r;
4881 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4882 0 : if (TREE_SIDE_EFFECTS (captures[1]))
4883 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4884 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
4885 0 : return _r;
4886 : }
4887 0 : next_after_fail1518:;
4888 : }
4889 : }
4890 : }
4891 187632 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4892 : {
4893 98 : {
4894 98 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4895 196 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4896 196 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4897 98 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4898 : )
4899 : {
4900 98 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
4901 98 : {
4902 98 : tree res_op0;
4903 98 : res_op0 = captures[0];
4904 98 : tree res_op1;
4905 98 : res_op1 = captures[2];
4906 98 : tree _r;
4907 98 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4908 98 : if (TREE_SIDE_EFFECTS (captures[1]))
4909 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4910 98 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
4911 98 : return _r;
4912 : }
4913 0 : next_after_fail1519:;
4914 : }
4915 : }
4916 : }
4917 187534 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4918 : {
4919 107055 : {
4920 107055 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4921 214110 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4922 214087 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4923 107032 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4924 : )
4925 : {
4926 107032 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
4927 107032 : {
4928 107032 : tree res_op0;
4929 107032 : res_op0 = captures[0];
4930 107032 : tree res_op1;
4931 107032 : res_op1 = captures[2];
4932 107032 : tree _r;
4933 107032 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4934 107032 : if (TREE_SIDE_EFFECTS (captures[1]))
4935 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4936 107032 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
4937 107032 : return _r;
4938 : }
4939 0 : next_after_fail1520:;
4940 : }
4941 : }
4942 : }
4943 : break;
4944 : }
4945 1400779 : default:;
4946 : }
4947 1400779 : switch (TREE_CODE (_q21))
4948 : {
4949 747 : CASE_CONVERT:
4950 747 : {
4951 747 : tree _q40 = TREE_OPERAND (_q21, 0);
4952 747 : switch (TREE_CODE (_p1))
4953 : {
4954 88 : CASE_CONVERT:
4955 88 : {
4956 88 : tree _q60 = TREE_OPERAND (_p1, 0);
4957 88 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4958 : {
4959 0 : {
4960 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
4961 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4962 0 : if (res) return res;
4963 : }
4964 : }
4965 : break;
4966 : }
4967 : default:;
4968 : }
4969 : break;
4970 : }
4971 1400779 : default:;
4972 : }
4973 1400779 : switch (TREE_CODE (_q20))
4974 : {
4975 141896 : CASE_CONVERT:
4976 141896 : {
4977 141896 : tree _q30 = TREE_OPERAND (_q20, 0);
4978 141896 : switch (TREE_CODE (_p1))
4979 : {
4980 3684 : CASE_CONVERT:
4981 3684 : {
4982 3684 : tree _q60 = TREE_OPERAND (_p1, 0);
4983 3684 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4984 : {
4985 398 : {
4986 398 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
4987 398 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
4988 398 : if (res) return res;
4989 : }
4990 : }
4991 : break;
4992 : }
4993 141498 : default:;
4994 : }
4995 141498 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4996 : {
4997 0 : {
4998 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
4999 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5000 0 : if (res) return res;
5001 : }
5002 : }
5003 : break;
5004 : }
5005 1400381 : default:;
5006 : }
5007 1400381 : switch (TREE_CODE (_q21))
5008 : {
5009 747 : CASE_CONVERT:
5010 747 : {
5011 747 : tree _q40 = TREE_OPERAND (_q21, 0);
5012 747 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5013 : {
5014 0 : {
5015 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5016 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5017 0 : if (res) return res;
5018 : }
5019 : }
5020 : break;
5021 : }
5022 1400381 : default:;
5023 : }
5024 1400381 : switch (TREE_CODE (_p1))
5025 : {
5026 43404 : CASE_CONVERT:
5027 43404 : {
5028 43404 : tree _q50 = TREE_OPERAND (_p1, 0);
5029 43404 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5030 : {
5031 0 : {
5032 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5033 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5034 0 : if (res) return res;
5035 : }
5036 : }
5037 43404 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5038 : {
5039 0 : {
5040 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5041 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5042 0 : if (res) return res;
5043 : }
5044 : }
5045 : break;
5046 : }
5047 1400381 : default:;
5048 : }
5049 1400381 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5050 : {
5051 79850 : {
5052 79850 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5053 79850 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5054 79850 : if (res) return res;
5055 : }
5056 : }
5057 1321235 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5058 : {
5059 19216 : {
5060 19216 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5061 19216 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5062 19216 : if (res) return res;
5063 : }
5064 : }
5065 : break;
5066 : }
5067 518812 : case POINTER_PLUS_EXPR:
5068 518812 : {
5069 518812 : tree _q20 = TREE_OPERAND (_p0, 0);
5070 518812 : tree _q21 = TREE_OPERAND (_p0, 1);
5071 518812 : switch (TREE_CODE (_p1))
5072 : {
5073 33983 : case POINTER_PLUS_EXPR:
5074 33983 : {
5075 33983 : tree _q50 = TREE_OPERAND (_p1, 0);
5076 33983 : tree _q51 = TREE_OPERAND (_p1, 1);
5077 33983 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5078 : {
5079 8405 : {
5080 8405 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5081 8405 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
5082 8405 : if (res) return res;
5083 : }
5084 : }
5085 : break;
5086 : }
5087 510407 : default:;
5088 : }
5089 510407 : switch (TREE_CODE (_q20))
5090 : {
5091 70550 : CASE_CONVERT:
5092 70550 : {
5093 70550 : tree _q30 = TREE_OPERAND (_q20, 0);
5094 70550 : switch (TREE_CODE (_p1))
5095 : {
5096 80 : CASE_CONVERT:
5097 80 : {
5098 80 : tree _q60 = TREE_OPERAND (_p1, 0);
5099 80 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5100 : {
5101 0 : {
5102 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5103 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5104 0 : if (res) return res;
5105 : }
5106 : }
5107 : break;
5108 : }
5109 70550 : default:;
5110 : }
5111 70550 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5112 : {
5113 74 : {
5114 74 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5115 74 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5116 74 : if (res) return res;
5117 : }
5118 : }
5119 : break;
5120 : }
5121 510333 : default:;
5122 : }
5123 510333 : switch (TREE_CODE (_p1))
5124 : {
5125 3503 : CASE_CONVERT:
5126 3503 : {
5127 3503 : tree _q50 = TREE_OPERAND (_p1, 0);
5128 3503 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5129 : {
5130 0 : {
5131 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5132 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5133 0 : if (res) return res;
5134 : }
5135 : }
5136 : break;
5137 : }
5138 510333 : default:;
5139 : }
5140 510333 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5141 : {
5142 10131 : {
5143 10131 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5144 10131 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5145 10131 : if (res) return res;
5146 : }
5147 : }
5148 : break;
5149 : }
5150 105738 : case MINUS_EXPR:
5151 105738 : {
5152 105738 : tree _q20 = TREE_OPERAND (_p0, 0);
5153 105738 : tree _q21 = TREE_OPERAND (_p0, 1);
5154 105738 : switch (TREE_CODE (_p1))
5155 : {
5156 5878 : case MINUS_EXPR:
5157 5878 : {
5158 5878 : tree _q50 = TREE_OPERAND (_p1, 0);
5159 5878 : tree _q51 = TREE_OPERAND (_p1, 1);
5160 5878 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5161 : {
5162 170 : {
5163 170 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5164 340 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5165 173 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5166 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5167 : )
5168 : {
5169 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
5170 3 : {
5171 3 : tree res_op0;
5172 3 : res_op0 = captures[0];
5173 3 : tree res_op1;
5174 3 : res_op1 = captures[2];
5175 3 : tree _r;
5176 3 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5177 3 : if (TREE_SIDE_EFFECTS (captures[1]))
5178 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5179 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
5180 3 : return _r;
5181 : }
5182 0 : next_after_fail1521:;
5183 : }
5184 : }
5185 : }
5186 5875 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5187 : {
5188 166 : {
5189 166 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5190 332 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
5191 166 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
5192 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
5193 : )
5194 : {
5195 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
5196 0 : {
5197 0 : tree res_op0;
5198 0 : res_op0 = captures[2];
5199 0 : tree res_op1;
5200 0 : res_op1 = captures[1];
5201 0 : tree _r;
5202 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5203 0 : if (TREE_SIDE_EFFECTS (captures[0]))
5204 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5205 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 924, __FILE__, __LINE__, true);
5206 0 : return _r;
5207 : }
5208 0 : next_after_fail1522:;
5209 : }
5210 : }
5211 : }
5212 : break;
5213 : }
5214 105735 : default:;
5215 : }
5216 105735 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5217 : {
5218 1748 : {
5219 1748 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5220 1748 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
5221 1748 : if (res) return res;
5222 : }
5223 : }
5224 : break;
5225 : }
5226 26923 : case POINTER_DIFF_EXPR:
5227 26923 : {
5228 26923 : tree _q20 = TREE_OPERAND (_p0, 0);
5229 26923 : tree _q21 = TREE_OPERAND (_p0, 1);
5230 26923 : switch (TREE_CODE (_p1))
5231 : {
5232 2263 : case POINTER_DIFF_EXPR:
5233 2263 : {
5234 2263 : tree _q50 = TREE_OPERAND (_p1, 0);
5235 2263 : tree _q51 = TREE_OPERAND (_p1, 1);
5236 2263 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5237 : {
5238 0 : {
5239 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5240 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR);
5241 0 : if (res) return res;
5242 : }
5243 : }
5244 2263 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5245 : {
5246 0 : {
5247 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5248 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
5249 0 : if (res) return res;
5250 : }
5251 : }
5252 : break;
5253 : }
5254 : default:;
5255 : }
5256 : break;
5257 : }
5258 35730579 : default:;
5259 : }
5260 35730579 : {
5261 35730579 : tree _p0_pops[1];
5262 35730579 : if (tree_logical_inverted_value (_p0, _p0_pops))
5263 : {
5264 533932 : tree _q20 = _p0_pops[0];
5265 533932 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5266 : {
5267 24 : if (tree_truth_valued_p (_p1))
5268 : {
5269 0 : {
5270 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5271 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
5272 0 : if (res) return res;
5273 : }
5274 : }
5275 : }
5276 : }
5277 : }
5278 35730579 : if (tree_truth_valued_p (_p0))
5279 : {
5280 5337426 : {
5281 5337426 : tree _p1_pops[1];
5282 5337426 : if (tree_logical_inverted_value (_p1, _p1_pops))
5283 : {
5284 1139 : tree _q30 = _p1_pops[0];
5285 1139 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5286 : {
5287 0 : {
5288 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5289 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
5290 0 : if (res) return res;
5291 : }
5292 : }
5293 : }
5294 : }
5295 : }
5296 35730579 : switch (TREE_CODE (_p1))
5297 : {
5298 121428 : case PLUS_EXPR:
5299 121428 : {
5300 121428 : tree _q30 = TREE_OPERAND (_p1, 0);
5301 121428 : tree _q31 = TREE_OPERAND (_p1, 1);
5302 121428 : switch (TREE_CODE (_q31))
5303 : {
5304 342 : CASE_CONVERT:
5305 342 : {
5306 342 : tree _q50 = TREE_OPERAND (_q31, 0);
5307 342 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5308 : {
5309 0 : {
5310 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5311 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5312 0 : if (res) return res;
5313 : }
5314 : }
5315 : break;
5316 : }
5317 121428 : default:;
5318 : }
5319 121428 : switch (TREE_CODE (_q30))
5320 : {
5321 5587 : CASE_CONVERT:
5322 5587 : {
5323 5587 : tree _q40 = TREE_OPERAND (_q30, 0);
5324 5587 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5325 : {
5326 0 : {
5327 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5328 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5329 0 : if (res) return res;
5330 : }
5331 : }
5332 : break;
5333 : }
5334 121428 : default:;
5335 : }
5336 121428 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5337 : {
5338 0 : {
5339 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5340 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5341 0 : if (res) return res;
5342 : }
5343 : }
5344 121428 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5345 : {
5346 8 : {
5347 8 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5348 8 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
5349 8 : if (res) return res;
5350 : }
5351 : }
5352 : break;
5353 : }
5354 35730571 : default:;
5355 : }
5356 35730571 : {
5357 35730571 : tree _p1_pops[1];
5358 35730571 : if (tree_nop_convert (_p1, _p1_pops))
5359 : {
5360 3343962 : tree _q30 = _p1_pops[0];
5361 3343962 : switch (TREE_CODE (_q30))
5362 : {
5363 1658 : case PLUS_EXPR:
5364 1658 : {
5365 1658 : tree _q40 = TREE_OPERAND (_q30, 0);
5366 1658 : tree _q41 = TREE_OPERAND (_q30, 1);
5367 1658 : switch (TREE_CODE (_q41))
5368 : {
5369 3 : CASE_CONVERT:
5370 3 : {
5371 3 : tree _q60 = TREE_OPERAND (_q41, 0);
5372 3 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5373 : {
5374 0 : {
5375 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5376 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
5377 0 : if (res) return res;
5378 : }
5379 : }
5380 : break;
5381 : }
5382 1658 : default:;
5383 : }
5384 1658 : switch (TREE_CODE (_q40))
5385 : {
5386 1102 : CASE_CONVERT:
5387 1102 : {
5388 1102 : tree _q50 = TREE_OPERAND (_q40, 0);
5389 1102 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5390 : {
5391 0 : {
5392 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5393 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
5394 0 : if (res) return res;
5395 : }
5396 : }
5397 : break;
5398 : }
5399 1658 : default:;
5400 : }
5401 1658 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5402 : {
5403 0 : {
5404 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5405 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
5406 0 : if (res) return res;
5407 : }
5408 : }
5409 1658 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5410 : {
5411 0 : {
5412 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5413 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
5414 0 : if (res) return res;
5415 : }
5416 : }
5417 : break;
5418 : }
5419 : default:;
5420 : }
5421 : }
5422 : }
5423 35730571 : switch (TREE_CODE (_p0))
5424 : {
5425 6885722 : CASE_CONVERT:
5426 6885722 : {
5427 6885722 : tree _q20 = TREE_OPERAND (_p0, 0);
5428 6885722 : switch (TREE_CODE (_p1))
5429 : {
5430 179 : case POINTER_PLUS_EXPR:
5431 179 : {
5432 179 : tree _q40 = TREE_OPERAND (_p1, 0);
5433 179 : tree _q41 = TREE_OPERAND (_p1, 1);
5434 179 : switch (TREE_CODE (_q40))
5435 : {
5436 48 : CASE_CONVERT:
5437 48 : {
5438 48 : tree _q50 = TREE_OPERAND (_q40, 0);
5439 48 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5440 : {
5441 0 : {
5442 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5443 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5444 0 : if (res) return res;
5445 : }
5446 : }
5447 : break;
5448 : }
5449 179 : default:;
5450 : }
5451 179 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
5452 : {
5453 0 : {
5454 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5455 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5456 0 : if (res) return res;
5457 : }
5458 : }
5459 : break;
5460 : }
5461 6885722 : default:;
5462 : }
5463 6885722 : {
5464 6885722 : tree _p1_pops[1];
5465 6885722 : if (tree_nop_convert (_p1, _p1_pops))
5466 : {
5467 2978221 : tree _q40 = _p1_pops[0];
5468 2978221 : switch (TREE_CODE (_q40))
5469 : {
5470 48 : case POINTER_PLUS_EXPR:
5471 48 : {
5472 48 : tree _q50 = TREE_OPERAND (_q40, 0);
5473 48 : tree _q51 = TREE_OPERAND (_q40, 1);
5474 48 : switch (TREE_CODE (_q50))
5475 : {
5476 8 : CASE_CONVERT:
5477 8 : {
5478 8 : tree _q60 = TREE_OPERAND (_q50, 0);
5479 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5480 : {
5481 0 : {
5482 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5483 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5484 0 : if (res) return res;
5485 : }
5486 : }
5487 : break;
5488 : }
5489 48 : default:;
5490 : }
5491 48 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5492 : {
5493 0 : {
5494 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5495 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5496 0 : if (res) return res;
5497 : }
5498 : }
5499 : break;
5500 : }
5501 : default:;
5502 : }
5503 : }
5504 : }
5505 6885722 : break;
5506 : }
5507 35730571 : default:;
5508 : }
5509 35730571 : {
5510 35730571 : tree _p0_pops[1];
5511 35730571 : if (tree_nop_convert (_p0, _p0_pops))
5512 : {
5513 4707010 : tree _q20 = _p0_pops[0];
5514 4707010 : switch (TREE_CODE (_q20))
5515 : {
5516 185 : case POINTER_PLUS_EXPR:
5517 185 : {
5518 185 : tree _q30 = TREE_OPERAND (_q20, 0);
5519 185 : tree _q31 = TREE_OPERAND (_q20, 1);
5520 185 : switch (TREE_CODE (_q30))
5521 : {
5522 24 : CASE_CONVERT:
5523 24 : {
5524 24 : tree _q40 = TREE_OPERAND (_q30, 0);
5525 24 : switch (TREE_CODE (_p1))
5526 : {
5527 8 : CASE_CONVERT:
5528 8 : {
5529 8 : tree _q70 = TREE_OPERAND (_p1, 0);
5530 8 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5531 : {
5532 0 : {
5533 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5534 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5535 0 : if (res) return res;
5536 : }
5537 : }
5538 : break;
5539 : }
5540 24 : default:;
5541 : }
5542 24 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5543 : {
5544 0 : {
5545 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5546 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5547 0 : if (res) return res;
5548 : }
5549 : }
5550 : break;
5551 : }
5552 185 : default:;
5553 : }
5554 185 : switch (TREE_CODE (_p1))
5555 : {
5556 50 : CASE_CONVERT:
5557 50 : {
5558 50 : tree _q60 = TREE_OPERAND (_p1, 0);
5559 50 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5560 : {
5561 0 : {
5562 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5563 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5564 0 : if (res) return res;
5565 : }
5566 : }
5567 : break;
5568 : }
5569 185 : default:;
5570 : }
5571 185 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5572 : {
5573 0 : {
5574 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5575 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5576 0 : if (res) return res;
5577 : }
5578 : }
5579 : break;
5580 : }
5581 : default:;
5582 : }
5583 : }
5584 : }
5585 35730571 : switch (TREE_CODE (_p1))
5586 : {
5587 29573 : case POINTER_PLUS_EXPR:
5588 29573 : {
5589 29573 : tree _q30 = TREE_OPERAND (_p1, 0);
5590 29573 : tree _q31 = TREE_OPERAND (_p1, 1);
5591 29573 : switch (TREE_CODE (_q30))
5592 : {
5593 2754 : CASE_CONVERT:
5594 2754 : {
5595 2754 : tree _q40 = TREE_OPERAND (_q30, 0);
5596 2754 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5597 : {
5598 0 : {
5599 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5600 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5601 0 : if (res) return res;
5602 : }
5603 : }
5604 : break;
5605 : }
5606 29573 : default:;
5607 : }
5608 29573 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5609 : {
5610 0 : {
5611 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5612 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
5613 0 : if (res) return res;
5614 : }
5615 : }
5616 : break;
5617 : }
5618 35730571 : default:;
5619 : }
5620 35730571 : {
5621 35730571 : tree _p1_pops[1];
5622 35730571 : if (tree_nop_convert (_p1, _p1_pops))
5623 : {
5624 3343962 : tree _q30 = _p1_pops[0];
5625 3343962 : switch (TREE_CODE (_q30))
5626 : {
5627 387 : case POINTER_PLUS_EXPR:
5628 387 : {
5629 387 : tree _q40 = TREE_OPERAND (_q30, 0);
5630 387 : tree _q41 = TREE_OPERAND (_q30, 1);
5631 387 : switch (TREE_CODE (_q40))
5632 : {
5633 8 : CASE_CONVERT:
5634 8 : {
5635 8 : tree _q50 = TREE_OPERAND (_q40, 0);
5636 8 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5637 : {
5638 0 : {
5639 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5640 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5641 0 : if (res) return res;
5642 : }
5643 : }
5644 : break;
5645 : }
5646 387 : default:;
5647 : }
5648 387 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5649 : {
5650 0 : {
5651 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5652 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
5653 0 : if (res) return res;
5654 : }
5655 : }
5656 : break;
5657 : }
5658 : default:;
5659 : }
5660 : }
5661 : }
5662 35730571 : switch (TREE_CODE (_p0))
5663 : {
5664 500202 : case POINTER_PLUS_EXPR:
5665 500202 : {
5666 500202 : tree _q20 = TREE_OPERAND (_p0, 0);
5667 500202 : tree _q21 = TREE_OPERAND (_p0, 1);
5668 500202 : switch (TREE_CODE (_p1))
5669 : {
5670 44149 : case ADDR_EXPR:
5671 44149 : {
5672 44149 : {
5673 44149 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5674 44149 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
5675 44149 : if (res) return res;
5676 : }
5677 32846 : break;
5678 : }
5679 488899 : default:;
5680 : }
5681 488899 : switch (TREE_CODE (_q20))
5682 : {
5683 4900 : case ADDR_EXPR:
5684 4900 : {
5685 4900 : switch (TREE_CODE (_p1))
5686 : {
5687 264 : case POINTER_PLUS_EXPR:
5688 264 : {
5689 264 : tree _q50 = TREE_OPERAND (_p1, 0);
5690 264 : tree _q51 = TREE_OPERAND (_p1, 1);
5691 264 : switch (TREE_CODE (_q50))
5692 : {
5693 0 : case ADDR_EXPR:
5694 0 : {
5695 0 : {
5696 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
5697 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
5698 0 : if (res) return res;
5699 : }
5700 0 : break;
5701 : }
5702 : default:;
5703 : }
5704 : break;
5705 : }
5706 : default:;
5707 : }
5708 : break;
5709 : }
5710 : default:;
5711 : }
5712 : break;
5713 : }
5714 195971 : case ADDR_EXPR:
5715 195971 : {
5716 195971 : switch (TREE_CODE (_p1))
5717 : {
5718 0 : case POINTER_PLUS_EXPR:
5719 0 : {
5720 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5721 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5722 0 : {
5723 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5724 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
5725 0 : if (res) return res;
5726 : }
5727 0 : break;
5728 : }
5729 : default:;
5730 : }
5731 : break;
5732 : }
5733 35719268 : default:;
5734 : }
5735 35719268 : switch (TREE_CODE (_p1))
5736 : {
5737 30311 : case MINUS_EXPR:
5738 30311 : {
5739 30311 : tree _q30 = TREE_OPERAND (_p1, 0);
5740 30311 : tree _q31 = TREE_OPERAND (_p1, 1);
5741 30311 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5742 : {
5743 0 : {
5744 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5745 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
5746 0 : if (res) return res;
5747 : }
5748 : }
5749 : break;
5750 : }
5751 35719268 : default:;
5752 : }
5753 35719268 : switch (TREE_CODE (_p0))
5754 : {
5755 9187 : case TRUNC_DIV_EXPR:
5756 9187 : {
5757 9187 : tree _q20 = TREE_OPERAND (_p0, 0);
5758 9187 : tree _q21 = TREE_OPERAND (_p0, 1);
5759 9187 : if (integer_zerop (_p1))
5760 : {
5761 1035 : {
5762 1035 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5763 1035 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
5764 1035 : if (res) return res;
5765 : }
5766 : }
5767 : break;
5768 : }
5769 6885722 : CASE_CONVERT:
5770 6885722 : {
5771 6885722 : tree _q20 = TREE_OPERAND (_p0, 0);
5772 6885722 : switch (TREE_CODE (_p1))
5773 : {
5774 3119627 : CASE_CONVERT:
5775 3119627 : {
5776 3119627 : tree _q40 = TREE_OPERAND (_p1, 0);
5777 3119627 : switch (TREE_CODE (_q40))
5778 : {
5779 0 : case MINUS_EXPR:
5780 0 : {
5781 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5782 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5783 0 : switch (TREE_CODE (_q50))
5784 : {
5785 0 : case INTEGER_CST:
5786 0 : {
5787 0 : switch (TREE_CODE (_q51))
5788 : {
5789 0 : CASE_CONVERT:
5790 0 : {
5791 0 : tree _q70 = TREE_OPERAND (_q51, 0);
5792 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
5793 : {
5794 0 : {
5795 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5796 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5797 0 : if (res) return res;
5798 : }
5799 : }
5800 : break;
5801 : }
5802 : default:;
5803 : }
5804 : break;
5805 : }
5806 : default:;
5807 : }
5808 : break;
5809 : }
5810 : default:;
5811 : }
5812 : break;
5813 : }
5814 6885722 : default:;
5815 : }
5816 6885722 : switch (TREE_CODE (_q20))
5817 : {
5818 99 : case MINUS_EXPR:
5819 99 : {
5820 99 : tree _q30 = TREE_OPERAND (_q20, 0);
5821 99 : tree _q31 = TREE_OPERAND (_q20, 1);
5822 99 : switch (TREE_CODE (_q30))
5823 : {
5824 49 : case INTEGER_CST:
5825 49 : {
5826 49 : switch (TREE_CODE (_q31))
5827 : {
5828 0 : CASE_CONVERT:
5829 0 : {
5830 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5831 0 : switch (TREE_CODE (_p1))
5832 : {
5833 0 : CASE_CONVERT:
5834 0 : {
5835 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5836 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
5837 : {
5838 0 : {
5839 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
5840 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5841 0 : if (res) return res;
5842 : }
5843 : }
5844 : break;
5845 : }
5846 0 : default:;
5847 : }
5848 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
5849 : {
5850 0 : {
5851 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
5852 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5853 0 : if (res) return res;
5854 : }
5855 : }
5856 : break;
5857 : }
5858 49 : default:;
5859 : }
5860 49 : switch (TREE_CODE (_p1))
5861 : {
5862 0 : CASE_CONVERT:
5863 0 : {
5864 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5865 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
5866 : {
5867 0 : {
5868 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
5869 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5870 0 : if (res) return res;
5871 : }
5872 : }
5873 : break;
5874 : }
5875 49 : default:;
5876 : }
5877 49 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5878 : {
5879 0 : {
5880 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
5881 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5882 0 : if (res) return res;
5883 : }
5884 : }
5885 : break;
5886 : }
5887 : default:;
5888 : }
5889 : break;
5890 : }
5891 6885722 : default:;
5892 : }
5893 6885722 : switch (TREE_CODE (_p1))
5894 : {
5895 3119627 : CASE_CONVERT:
5896 3119627 : {
5897 3119627 : tree _q40 = TREE_OPERAND (_p1, 0);
5898 3119627 : switch (TREE_CODE (_q40))
5899 : {
5900 0 : case MINUS_EXPR:
5901 0 : {
5902 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5903 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5904 0 : switch (TREE_CODE (_q50))
5905 : {
5906 0 : case INTEGER_CST:
5907 0 : {
5908 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5909 : {
5910 0 : {
5911 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5912 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5913 0 : if (res) return res;
5914 : }
5915 : }
5916 : break;
5917 : }
5918 : default:;
5919 : }
5920 : break;
5921 : }
5922 : default:;
5923 : }
5924 : break;
5925 : }
5926 21676 : case MINUS_EXPR:
5927 21676 : {
5928 21676 : tree _q40 = TREE_OPERAND (_p1, 0);
5929 21676 : tree _q41 = TREE_OPERAND (_p1, 1);
5930 21676 : switch (TREE_CODE (_q40))
5931 : {
5932 401 : case INTEGER_CST:
5933 401 : {
5934 401 : switch (TREE_CODE (_q41))
5935 : {
5936 20 : CASE_CONVERT:
5937 20 : {
5938 20 : tree _q60 = TREE_OPERAND (_q41, 0);
5939 20 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5940 : {
5941 0 : {
5942 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5943 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5944 0 : if (res) return res;
5945 : }
5946 : }
5947 : break;
5948 : }
5949 401 : default:;
5950 : }
5951 401 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
5952 : {
5953 0 : {
5954 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5955 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5956 0 : if (res) return res;
5957 : }
5958 : }
5959 : break;
5960 : }
5961 : default:;
5962 : }
5963 : break;
5964 : }
5965 : default:;
5966 : }
5967 : break;
5968 : }
5969 104027 : case MINUS_EXPR:
5970 104027 : {
5971 104027 : tree _q20 = TREE_OPERAND (_p0, 0);
5972 104027 : tree _q21 = TREE_OPERAND (_p0, 1);
5973 104027 : switch (TREE_CODE (_q20))
5974 : {
5975 2115 : case INTEGER_CST:
5976 2115 : {
5977 2115 : switch (TREE_CODE (_q21))
5978 : {
5979 182 : CASE_CONVERT:
5980 182 : {
5981 182 : tree _q40 = TREE_OPERAND (_q21, 0);
5982 182 : switch (TREE_CODE (_p1))
5983 : {
5984 0 : CASE_CONVERT:
5985 0 : {
5986 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5987 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
5988 : {
5989 0 : {
5990 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
5991 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
5992 0 : if (res) return res;
5993 : }
5994 : }
5995 : break;
5996 : }
5997 182 : default:;
5998 : }
5999 182 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6000 : {
6001 0 : {
6002 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6003 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6004 0 : if (res) return res;
6005 : }
6006 : }
6007 : break;
6008 : }
6009 2115 : default:;
6010 : }
6011 2115 : switch (TREE_CODE (_p1))
6012 : {
6013 306 : CASE_CONVERT:
6014 306 : {
6015 306 : tree _q50 = TREE_OPERAND (_p1, 0);
6016 306 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6017 : {
6018 0 : {
6019 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6020 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6021 0 : if (res) return res;
6022 : }
6023 : }
6024 : break;
6025 : }
6026 2115 : default:;
6027 : }
6028 2115 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6029 : {
6030 19 : {
6031 19 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6032 19 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6033 19 : if (res) return res;
6034 : }
6035 : }
6036 : break;
6037 : }
6038 : default:;
6039 : }
6040 : break;
6041 : }
6042 35719152 : default:;
6043 : }
6044 35719152 : switch (TREE_CODE (_p1))
6045 : {
6046 3512470 : CASE_CONVERT:
6047 3512470 : {
6048 3512470 : tree _q30 = TREE_OPERAND (_p1, 0);
6049 3512470 : switch (TREE_CODE (_q30))
6050 : {
6051 556 : case MINUS_EXPR:
6052 556 : {
6053 556 : tree _q40 = TREE_OPERAND (_q30, 0);
6054 556 : tree _q41 = TREE_OPERAND (_q30, 1);
6055 556 : switch (TREE_CODE (_q40))
6056 : {
6057 17 : case INTEGER_CST:
6058 17 : {
6059 17 : switch (TREE_CODE (_q41))
6060 : {
6061 0 : CASE_CONVERT:
6062 0 : {
6063 0 : tree _q60 = TREE_OPERAND (_q41, 0);
6064 0 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6065 : {
6066 0 : {
6067 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6068 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6069 0 : if (res) return res;
6070 : }
6071 : }
6072 : break;
6073 : }
6074 17 : default:;
6075 : }
6076 17 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6077 : {
6078 0 : {
6079 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6080 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6081 0 : if (res) return res;
6082 : }
6083 : }
6084 : break;
6085 : }
6086 : default:;
6087 : }
6088 : break;
6089 : }
6090 : default:;
6091 : }
6092 : break;
6093 : }
6094 30311 : case MINUS_EXPR:
6095 30311 : {
6096 30311 : tree _q30 = TREE_OPERAND (_p1, 0);
6097 30311 : tree _q31 = TREE_OPERAND (_p1, 1);
6098 30311 : switch (TREE_CODE (_q30))
6099 : {
6100 612 : case INTEGER_CST:
6101 612 : {
6102 612 : switch (TREE_CODE (_q31))
6103 : {
6104 32 : CASE_CONVERT:
6105 32 : {
6106 32 : tree _q50 = TREE_OPERAND (_q31, 0);
6107 32 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6108 : {
6109 0 : {
6110 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6111 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6112 0 : if (res) return res;
6113 : }
6114 : }
6115 : break;
6116 : }
6117 612 : default:;
6118 : }
6119 612 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6120 : {
6121 0 : {
6122 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6123 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
6124 0 : if (res) return res;
6125 : }
6126 : }
6127 : break;
6128 : }
6129 : default:;
6130 : }
6131 : break;
6132 : }
6133 35719152 : default:;
6134 : }
6135 35719152 : switch (TREE_CODE (_p0))
6136 : {
6137 18040 : case LT_EXPR:
6138 18040 : {
6139 18040 : tree _q20 = TREE_OPERAND (_p0, 0);
6140 18040 : tree _q21 = TREE_OPERAND (_p0, 1);
6141 18040 : switch (TREE_CODE (_p1))
6142 : {
6143 18 : case GT_EXPR:
6144 18 : {
6145 18 : tree _q50 = TREE_OPERAND (_p1, 0);
6146 18 : tree _q51 = TREE_OPERAND (_p1, 1);
6147 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6148 : {
6149 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6150 : {
6151 0 : {
6152 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6153 0 : const enum tree_code cmp1 = LT_EXPR;
6154 0 : const enum tree_code cmp2 = GT_EXPR;
6155 0 : const enum tree_code rcmp = NE_EXPR;
6156 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6157 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6158 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6159 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6160 : )
6161 : {
6162 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
6163 0 : {
6164 0 : tree res_op0;
6165 0 : res_op0 = captures[0];
6166 0 : tree res_op1;
6167 0 : res_op1 = captures[1];
6168 0 : tree _r;
6169 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6170 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6171 0 : return _r;
6172 : }
6173 0 : next_after_fail1523:;
6174 : }
6175 : }
6176 : }
6177 : }
6178 : break;
6179 : }
6180 23 : case EQ_EXPR:
6181 23 : {
6182 23 : tree _q50 = TREE_OPERAND (_p1, 0);
6183 23 : tree _q51 = TREE_OPERAND (_p1, 1);
6184 23 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6185 : {
6186 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6187 : {
6188 0 : {
6189 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6190 0 : const enum tree_code cmp1 = LT_EXPR;
6191 0 : const enum tree_code cmp2 = EQ_EXPR;
6192 0 : const enum tree_code rcmp = LE_EXPR;
6193 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6194 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6195 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6196 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6197 : )
6198 : {
6199 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1524;
6200 0 : {
6201 0 : tree res_op0;
6202 0 : res_op0 = captures[0];
6203 0 : tree res_op1;
6204 0 : res_op1 = captures[1];
6205 0 : tree _r;
6206 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6207 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6208 0 : return _r;
6209 : }
6210 0 : next_after_fail1524:;
6211 : }
6212 : }
6213 : }
6214 : }
6215 : break;
6216 : }
6217 23 : case NE_EXPR:
6218 23 : {
6219 23 : tree _q50 = TREE_OPERAND (_p1, 0);
6220 23 : tree _q51 = TREE_OPERAND (_p1, 1);
6221 23 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6222 : {
6223 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6224 : {
6225 0 : {
6226 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6227 0 : const enum tree_code cmp1 = LT_EXPR;
6228 0 : const enum tree_code cmp2 = NE_EXPR;
6229 0 : const enum tree_code rcmp = GT_EXPR;
6230 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6231 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6232 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6233 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6234 : )
6235 : {
6236 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1525;
6237 0 : {
6238 0 : tree res_op0;
6239 0 : res_op0 = captures[0];
6240 0 : tree res_op1;
6241 0 : res_op1 = captures[1];
6242 0 : tree _r;
6243 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6244 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6245 0 : return _r;
6246 : }
6247 0 : next_after_fail1525:;
6248 : }
6249 : }
6250 : }
6251 : }
6252 : break;
6253 : }
6254 : default:;
6255 : }
6256 : break;
6257 : }
6258 11913 : case LE_EXPR:
6259 11913 : {
6260 11913 : tree _q20 = TREE_OPERAND (_p0, 0);
6261 11913 : tree _q21 = TREE_OPERAND (_p0, 1);
6262 11913 : switch (TREE_CODE (_p1))
6263 : {
6264 25 : case GE_EXPR:
6265 25 : {
6266 25 : tree _q50 = TREE_OPERAND (_p1, 0);
6267 25 : tree _q51 = TREE_OPERAND (_p1, 1);
6268 25 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6269 : {
6270 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6271 : {
6272 0 : {
6273 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6274 0 : const enum tree_code cmp1 = LE_EXPR;
6275 0 : const enum tree_code cmp2 = GE_EXPR;
6276 0 : const enum tree_code rcmp = NE_EXPR;
6277 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6278 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6279 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6280 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6281 : )
6282 : {
6283 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1526;
6284 0 : {
6285 0 : tree res_op0;
6286 0 : res_op0 = captures[0];
6287 0 : tree res_op1;
6288 0 : res_op1 = captures[1];
6289 0 : tree _r;
6290 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6291 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6292 0 : return _r;
6293 : }
6294 0 : next_after_fail1526:;
6295 : }
6296 : }
6297 : }
6298 : }
6299 : break;
6300 : }
6301 41 : case EQ_EXPR:
6302 41 : {
6303 41 : tree _q50 = TREE_OPERAND (_p1, 0);
6304 41 : tree _q51 = TREE_OPERAND (_p1, 1);
6305 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6306 : {
6307 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6308 : {
6309 0 : {
6310 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6311 0 : const enum tree_code cmp1 = LE_EXPR;
6312 0 : const enum tree_code cmp2 = EQ_EXPR;
6313 0 : const enum tree_code rcmp = LT_EXPR;
6314 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6315 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6316 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6317 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6318 : )
6319 : {
6320 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1527;
6321 0 : {
6322 0 : tree res_op0;
6323 0 : res_op0 = captures[0];
6324 0 : tree res_op1;
6325 0 : res_op1 = captures[1];
6326 0 : tree _r;
6327 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6328 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6329 0 : return _r;
6330 : }
6331 0 : next_after_fail1527:;
6332 : }
6333 : }
6334 : }
6335 : }
6336 : break;
6337 : }
6338 13 : case NE_EXPR:
6339 13 : {
6340 13 : tree _q50 = TREE_OPERAND (_p1, 0);
6341 13 : tree _q51 = TREE_OPERAND (_p1, 1);
6342 13 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6343 : {
6344 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6345 : {
6346 0 : {
6347 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6348 0 : const enum tree_code cmp1 = LE_EXPR;
6349 0 : const enum tree_code cmp2 = NE_EXPR;
6350 0 : const enum tree_code rcmp = GE_EXPR;
6351 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6352 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6353 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6354 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6355 : )
6356 : {
6357 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1528;
6358 0 : {
6359 0 : tree res_op0;
6360 0 : res_op0 = captures[0];
6361 0 : tree res_op1;
6362 0 : res_op1 = captures[1];
6363 0 : tree _r;
6364 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6365 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6366 0 : return _r;
6367 : }
6368 0 : next_after_fail1528:;
6369 : }
6370 : }
6371 : }
6372 : }
6373 : break;
6374 : }
6375 : default:;
6376 : }
6377 : break;
6378 : }
6379 35463 : case GT_EXPR:
6380 35463 : {
6381 35463 : tree _q20 = TREE_OPERAND (_p0, 0);
6382 35463 : tree _q21 = TREE_OPERAND (_p0, 1);
6383 35463 : switch (TREE_CODE (_p1))
6384 : {
6385 77 : case GT_EXPR:
6386 77 : {
6387 77 : tree _q50 = TREE_OPERAND (_p1, 0);
6388 77 : tree _q51 = TREE_OPERAND (_p1, 1);
6389 77 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6390 : {
6391 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6392 : {
6393 0 : {
6394 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6395 0 : const enum tree_code cmp1 = LT_EXPR;
6396 0 : const enum tree_code cmp2 = GT_EXPR;
6397 0 : const enum tree_code rcmp = NE_EXPR;
6398 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6399 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6400 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6401 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6402 : )
6403 : {
6404 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1529;
6405 0 : {
6406 0 : tree res_op0;
6407 0 : res_op0 = captures[0];
6408 0 : tree res_op1;
6409 0 : res_op1 = captures[1];
6410 0 : tree _r;
6411 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6412 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6413 0 : return _r;
6414 : }
6415 0 : next_after_fail1529:;
6416 : }
6417 : }
6418 0 : {
6419 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6420 0 : const enum tree_code cmp1 = LT_EXPR;
6421 0 : const enum tree_code cmp2 = GT_EXPR;
6422 0 : const enum tree_code rcmp = NE_EXPR;
6423 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6424 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6425 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6426 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6427 : )
6428 : {
6429 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1530;
6430 0 : {
6431 0 : tree res_op0;
6432 0 : res_op0 = captures[0];
6433 0 : tree res_op1;
6434 0 : res_op1 = captures[1];
6435 0 : tree _r;
6436 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6437 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6438 0 : return _r;
6439 : }
6440 0 : next_after_fail1530:;
6441 : }
6442 : }
6443 : }
6444 : }
6445 : break;
6446 : }
6447 29 : case EQ_EXPR:
6448 29 : {
6449 29 : tree _q50 = TREE_OPERAND (_p1, 0);
6450 29 : tree _q51 = TREE_OPERAND (_p1, 1);
6451 29 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6452 : {
6453 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6454 : {
6455 0 : {
6456 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6457 0 : const enum tree_code cmp1 = LT_EXPR;
6458 0 : const enum tree_code cmp2 = EQ_EXPR;
6459 0 : const enum tree_code rcmp = LE_EXPR;
6460 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6461 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6462 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6463 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6464 : )
6465 : {
6466 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1531;
6467 0 : {
6468 0 : tree res_op0;
6469 0 : res_op0 = captures[0];
6470 0 : tree res_op1;
6471 0 : res_op1 = captures[1];
6472 0 : tree _r;
6473 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6474 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6475 0 : return _r;
6476 : }
6477 0 : next_after_fail1531:;
6478 : }
6479 : }
6480 : }
6481 : }
6482 : break;
6483 : }
6484 53 : case NE_EXPR:
6485 53 : {
6486 53 : tree _q50 = TREE_OPERAND (_p1, 0);
6487 53 : tree _q51 = TREE_OPERAND (_p1, 1);
6488 53 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6489 : {
6490 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6491 : {
6492 0 : {
6493 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6494 0 : const enum tree_code cmp1 = LT_EXPR;
6495 0 : const enum tree_code cmp2 = NE_EXPR;
6496 0 : const enum tree_code rcmp = GT_EXPR;
6497 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6498 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6499 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6500 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6501 : )
6502 : {
6503 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1532;
6504 0 : {
6505 0 : tree res_op0;
6506 0 : res_op0 = captures[0];
6507 0 : tree res_op1;
6508 0 : res_op1 = captures[1];
6509 0 : tree _r;
6510 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6511 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6512 0 : return _r;
6513 : }
6514 0 : next_after_fail1532:;
6515 : }
6516 : }
6517 : }
6518 : }
6519 : break;
6520 : }
6521 32 : case LT_EXPR:
6522 32 : {
6523 32 : tree _q50 = TREE_OPERAND (_p1, 0);
6524 32 : tree _q51 = TREE_OPERAND (_p1, 1);
6525 32 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6526 : {
6527 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6528 : {
6529 0 : {
6530 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6531 0 : const enum tree_code cmp1 = LT_EXPR;
6532 0 : const enum tree_code cmp2 = GT_EXPR;
6533 0 : const enum tree_code rcmp = NE_EXPR;
6534 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6535 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6536 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6537 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6538 : )
6539 : {
6540 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1533;
6541 0 : {
6542 0 : tree res_op0;
6543 0 : res_op0 = captures[0];
6544 0 : tree res_op1;
6545 0 : res_op1 = captures[1];
6546 0 : tree _r;
6547 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6548 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6549 0 : return _r;
6550 : }
6551 0 : next_after_fail1533:;
6552 : }
6553 : }
6554 : }
6555 : }
6556 : break;
6557 : }
6558 : default:;
6559 : }
6560 : break;
6561 : }
6562 6117 : case GE_EXPR:
6563 6117 : {
6564 6117 : tree _q20 = TREE_OPERAND (_p0, 0);
6565 6117 : tree _q21 = TREE_OPERAND (_p0, 1);
6566 6117 : switch (TREE_CODE (_p1))
6567 : {
6568 76 : case GE_EXPR:
6569 76 : {
6570 76 : tree _q50 = TREE_OPERAND (_p1, 0);
6571 76 : tree _q51 = TREE_OPERAND (_p1, 1);
6572 76 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6573 : {
6574 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6575 : {
6576 0 : {
6577 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6578 0 : const enum tree_code cmp1 = LE_EXPR;
6579 0 : const enum tree_code cmp2 = GE_EXPR;
6580 0 : const enum tree_code rcmp = NE_EXPR;
6581 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6582 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6583 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6584 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6585 : )
6586 : {
6587 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1534;
6588 0 : {
6589 0 : tree res_op0;
6590 0 : res_op0 = captures[0];
6591 0 : tree res_op1;
6592 0 : res_op1 = captures[1];
6593 0 : tree _r;
6594 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6595 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6596 0 : return _r;
6597 : }
6598 0 : next_after_fail1534:;
6599 : }
6600 : }
6601 0 : {
6602 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6603 0 : const enum tree_code cmp1 = LE_EXPR;
6604 0 : const enum tree_code cmp2 = GE_EXPR;
6605 0 : const enum tree_code rcmp = NE_EXPR;
6606 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6607 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6608 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6609 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6610 : )
6611 : {
6612 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1535;
6613 0 : {
6614 0 : tree res_op0;
6615 0 : res_op0 = captures[0];
6616 0 : tree res_op1;
6617 0 : res_op1 = captures[1];
6618 0 : tree _r;
6619 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6620 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6621 0 : return _r;
6622 : }
6623 0 : next_after_fail1535:;
6624 : }
6625 : }
6626 : }
6627 : }
6628 : break;
6629 : }
6630 52 : case EQ_EXPR:
6631 52 : {
6632 52 : tree _q50 = TREE_OPERAND (_p1, 0);
6633 52 : tree _q51 = TREE_OPERAND (_p1, 1);
6634 52 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6635 : {
6636 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6637 : {
6638 0 : {
6639 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6640 0 : const enum tree_code cmp1 = LE_EXPR;
6641 0 : const enum tree_code cmp2 = EQ_EXPR;
6642 0 : const enum tree_code rcmp = LT_EXPR;
6643 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6644 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6645 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6646 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6647 : )
6648 : {
6649 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1536;
6650 0 : {
6651 0 : tree res_op0;
6652 0 : res_op0 = captures[0];
6653 0 : tree res_op1;
6654 0 : res_op1 = captures[1];
6655 0 : tree _r;
6656 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6657 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6658 0 : return _r;
6659 : }
6660 0 : next_after_fail1536:;
6661 : }
6662 : }
6663 : }
6664 : }
6665 : break;
6666 : }
6667 11 : case NE_EXPR:
6668 11 : {
6669 11 : tree _q50 = TREE_OPERAND (_p1, 0);
6670 11 : tree _q51 = TREE_OPERAND (_p1, 1);
6671 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6672 : {
6673 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6674 : {
6675 0 : {
6676 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6677 0 : const enum tree_code cmp1 = LE_EXPR;
6678 0 : const enum tree_code cmp2 = NE_EXPR;
6679 0 : const enum tree_code rcmp = GE_EXPR;
6680 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6681 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6682 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6683 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6684 : )
6685 : {
6686 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1537;
6687 0 : {
6688 0 : tree res_op0;
6689 0 : res_op0 = captures[0];
6690 0 : tree res_op1;
6691 0 : res_op1 = captures[1];
6692 0 : tree _r;
6693 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6694 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6695 0 : return _r;
6696 : }
6697 0 : next_after_fail1537:;
6698 : }
6699 : }
6700 : }
6701 : }
6702 : break;
6703 : }
6704 16 : case LE_EXPR:
6705 16 : {
6706 16 : tree _q50 = TREE_OPERAND (_p1, 0);
6707 16 : tree _q51 = TREE_OPERAND (_p1, 1);
6708 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6709 : {
6710 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6711 : {
6712 0 : {
6713 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6714 0 : const enum tree_code cmp1 = LE_EXPR;
6715 0 : const enum tree_code cmp2 = GE_EXPR;
6716 0 : const enum tree_code rcmp = NE_EXPR;
6717 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6718 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6719 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6720 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6721 : )
6722 : {
6723 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1538;
6724 0 : {
6725 0 : tree res_op0;
6726 0 : res_op0 = captures[0];
6727 0 : tree res_op1;
6728 0 : res_op1 = captures[1];
6729 0 : tree _r;
6730 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6731 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6732 0 : return _r;
6733 : }
6734 0 : next_after_fail1538:;
6735 : }
6736 : }
6737 : }
6738 : }
6739 : break;
6740 : }
6741 : default:;
6742 : }
6743 : break;
6744 : }
6745 63463 : case EQ_EXPR:
6746 63463 : {
6747 63463 : tree _q20 = TREE_OPERAND (_p0, 0);
6748 63463 : tree _q21 = TREE_OPERAND (_p0, 1);
6749 63463 : switch (TREE_CODE (_p1))
6750 : {
6751 5 : case LT_EXPR:
6752 5 : {
6753 5 : tree _q50 = TREE_OPERAND (_p1, 0);
6754 5 : tree _q51 = TREE_OPERAND (_p1, 1);
6755 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6756 : {
6757 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6758 : {
6759 0 : {
6760 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6761 0 : const enum tree_code cmp1 = LT_EXPR;
6762 0 : const enum tree_code cmp2 = EQ_EXPR;
6763 0 : const enum tree_code rcmp = LE_EXPR;
6764 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6765 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6766 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6767 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6768 : )
6769 : {
6770 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1539;
6771 0 : {
6772 0 : tree res_op0;
6773 0 : res_op0 = captures[0];
6774 0 : tree res_op1;
6775 0 : res_op1 = captures[1];
6776 0 : tree _r;
6777 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6778 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6779 0 : return _r;
6780 : }
6781 0 : next_after_fail1539:;
6782 : }
6783 : }
6784 : }
6785 : }
6786 : break;
6787 : }
6788 42 : case LE_EXPR:
6789 42 : {
6790 42 : tree _q50 = TREE_OPERAND (_p1, 0);
6791 42 : tree _q51 = TREE_OPERAND (_p1, 1);
6792 42 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6793 : {
6794 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6795 : {
6796 0 : {
6797 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6798 0 : const enum tree_code cmp1 = LE_EXPR;
6799 0 : const enum tree_code cmp2 = EQ_EXPR;
6800 0 : const enum tree_code rcmp = LT_EXPR;
6801 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6802 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6803 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6804 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6805 : )
6806 : {
6807 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1540;
6808 0 : {
6809 0 : tree res_op0;
6810 0 : res_op0 = captures[0];
6811 0 : tree res_op1;
6812 0 : res_op1 = captures[1];
6813 0 : tree _r;
6814 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6815 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6816 0 : return _r;
6817 : }
6818 0 : next_after_fail1540:;
6819 : }
6820 : }
6821 : }
6822 : }
6823 : break;
6824 : }
6825 7 : case GT_EXPR:
6826 7 : {
6827 7 : tree _q50 = TREE_OPERAND (_p1, 0);
6828 7 : tree _q51 = TREE_OPERAND (_p1, 1);
6829 7 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6830 : {
6831 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6832 : {
6833 0 : {
6834 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6835 0 : const enum tree_code cmp1 = LT_EXPR;
6836 0 : const enum tree_code cmp2 = EQ_EXPR;
6837 0 : const enum tree_code rcmp = LE_EXPR;
6838 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6839 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6840 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6841 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6842 : )
6843 : {
6844 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1541;
6845 0 : {
6846 0 : tree res_op0;
6847 0 : res_op0 = captures[0];
6848 0 : tree res_op1;
6849 0 : res_op1 = captures[1];
6850 0 : tree _r;
6851 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6852 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6853 0 : return _r;
6854 : }
6855 0 : next_after_fail1541:;
6856 : }
6857 : }
6858 : }
6859 : }
6860 : break;
6861 : }
6862 14 : case GE_EXPR:
6863 14 : {
6864 14 : tree _q50 = TREE_OPERAND (_p1, 0);
6865 14 : tree _q51 = TREE_OPERAND (_p1, 1);
6866 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6867 : {
6868 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6869 : {
6870 0 : {
6871 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6872 0 : const enum tree_code cmp1 = LE_EXPR;
6873 0 : const enum tree_code cmp2 = EQ_EXPR;
6874 0 : const enum tree_code rcmp = LT_EXPR;
6875 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6876 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6877 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6878 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6879 : )
6880 : {
6881 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1542;
6882 0 : {
6883 0 : tree res_op0;
6884 0 : res_op0 = captures[0];
6885 0 : tree res_op1;
6886 0 : res_op1 = captures[1];
6887 0 : tree _r;
6888 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6889 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6890 0 : return _r;
6891 : }
6892 0 : next_after_fail1542:;
6893 : }
6894 : }
6895 : }
6896 : }
6897 : break;
6898 : }
6899 : default:;
6900 : }
6901 : break;
6902 : }
6903 68867 : case NE_EXPR:
6904 68867 : {
6905 68867 : tree _q20 = TREE_OPERAND (_p0, 0);
6906 68867 : tree _q21 = TREE_OPERAND (_p0, 1);
6907 68867 : switch (TREE_CODE (_p1))
6908 : {
6909 7 : case LT_EXPR:
6910 7 : {
6911 7 : tree _q50 = TREE_OPERAND (_p1, 0);
6912 7 : tree _q51 = TREE_OPERAND (_p1, 1);
6913 7 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6914 : {
6915 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6916 : {
6917 0 : {
6918 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6919 0 : const enum tree_code cmp1 = LT_EXPR;
6920 0 : const enum tree_code cmp2 = NE_EXPR;
6921 0 : const enum tree_code rcmp = GT_EXPR;
6922 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6923 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6924 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6925 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6926 : )
6927 : {
6928 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1543;
6929 0 : {
6930 0 : tree res_op0;
6931 0 : res_op0 = captures[0];
6932 0 : tree res_op1;
6933 0 : res_op1 = captures[1];
6934 0 : tree _r;
6935 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6936 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6937 0 : return _r;
6938 : }
6939 0 : next_after_fail1543:;
6940 : }
6941 : }
6942 : }
6943 : }
6944 : break;
6945 : }
6946 302 : case LE_EXPR:
6947 302 : {
6948 302 : tree _q50 = TREE_OPERAND (_p1, 0);
6949 302 : tree _q51 = TREE_OPERAND (_p1, 1);
6950 302 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6951 : {
6952 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6953 : {
6954 0 : {
6955 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6956 0 : const enum tree_code cmp1 = LE_EXPR;
6957 0 : const enum tree_code cmp2 = NE_EXPR;
6958 0 : const enum tree_code rcmp = GE_EXPR;
6959 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6960 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6961 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6962 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
6963 : )
6964 : {
6965 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1544;
6966 0 : {
6967 0 : tree res_op0;
6968 0 : res_op0 = captures[0];
6969 0 : tree res_op1;
6970 0 : res_op1 = captures[1];
6971 0 : tree _r;
6972 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
6973 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
6974 0 : return _r;
6975 : }
6976 0 : next_after_fail1544:;
6977 : }
6978 : }
6979 : }
6980 : }
6981 : break;
6982 : }
6983 323 : case GT_EXPR:
6984 323 : {
6985 323 : tree _q50 = TREE_OPERAND (_p1, 0);
6986 323 : tree _q51 = TREE_OPERAND (_p1, 1);
6987 323 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6988 : {
6989 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6990 : {
6991 0 : {
6992 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6993 0 : const enum tree_code cmp1 = LT_EXPR;
6994 0 : const enum tree_code cmp2 = NE_EXPR;
6995 0 : const enum tree_code rcmp = GT_EXPR;
6996 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6997 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
6998 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
6999 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
7000 : )
7001 : {
7002 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1545;
7003 0 : {
7004 0 : tree res_op0;
7005 0 : res_op0 = captures[0];
7006 0 : tree res_op1;
7007 0 : res_op1 = captures[1];
7008 0 : tree _r;
7009 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
7010 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
7011 0 : return _r;
7012 : }
7013 0 : next_after_fail1545:;
7014 : }
7015 : }
7016 : }
7017 : }
7018 : break;
7019 : }
7020 2 : case GE_EXPR:
7021 2 : {
7022 2 : tree _q50 = TREE_OPERAND (_p1, 0);
7023 2 : tree _q51 = TREE_OPERAND (_p1, 1);
7024 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7025 : {
7026 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7027 : {
7028 0 : {
7029 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7030 0 : const enum tree_code cmp1 = LE_EXPR;
7031 0 : const enum tree_code cmp2 = NE_EXPR;
7032 0 : const enum tree_code rcmp = GE_EXPR;
7033 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
7034 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
7035 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
7036 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
7037 : )
7038 : {
7039 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1546;
7040 0 : {
7041 0 : tree res_op0;
7042 0 : res_op0 = captures[0];
7043 0 : tree res_op1;
7044 0 : res_op1 = captures[1];
7045 0 : tree _r;
7046 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
7047 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
7048 0 : return _r;
7049 : }
7050 0 : next_after_fail1546:;
7051 : }
7052 : }
7053 : }
7054 : }
7055 : break;
7056 : }
7057 : default:;
7058 : }
7059 : break;
7060 : }
7061 8310 : case MIN_EXPR:
7062 8310 : {
7063 8310 : tree _q20 = TREE_OPERAND (_p0, 0);
7064 8310 : tree _q21 = TREE_OPERAND (_p0, 1);
7065 8310 : switch (TREE_CODE (_p1))
7066 : {
7067 0 : case MAX_EXPR:
7068 0 : {
7069 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7070 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7071 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7072 : {
7073 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7074 : {
7075 0 : {
7076 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7077 0 : if (!HONOR_NANS (captures[0])
7078 : )
7079 : {
7080 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1547;
7081 0 : {
7082 0 : tree res_op0;
7083 0 : res_op0 = captures[0];
7084 0 : tree res_op1;
7085 0 : res_op1 = captures[1];
7086 0 : tree _r;
7087 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
7088 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7089 0 : return _r;
7090 : }
7091 0 : next_after_fail1547:;
7092 : }
7093 : }
7094 : }
7095 : }
7096 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7097 : {
7098 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7099 : {
7100 0 : {
7101 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7102 0 : if (!HONOR_NANS (captures[0])
7103 : )
7104 : {
7105 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1548;
7106 0 : {
7107 0 : tree res_op0;
7108 0 : res_op0 = captures[0];
7109 0 : tree res_op1;
7110 0 : res_op1 = captures[1];
7111 0 : tree _r;
7112 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
7113 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7114 0 : return _r;
7115 : }
7116 0 : next_after_fail1548:;
7117 : }
7118 : }
7119 : }
7120 : }
7121 : break;
7122 : }
7123 8310 : default:;
7124 : }
7125 8310 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7126 : {
7127 0 : {
7128 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7129 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
7130 0 : if (res) return res;
7131 : }
7132 : }
7133 8310 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7134 : {
7135 616 : {
7136 616 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7137 616 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
7138 616 : if (res) return res;
7139 : }
7140 : }
7141 : break;
7142 : }
7143 7965 : case MAX_EXPR:
7144 7965 : {
7145 7965 : tree _q20 = TREE_OPERAND (_p0, 0);
7146 7965 : tree _q21 = TREE_OPERAND (_p0, 1);
7147 7965 : switch (TREE_CODE (_p1))
7148 : {
7149 0 : case MIN_EXPR:
7150 0 : {
7151 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7152 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7153 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7154 : {
7155 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7156 : {
7157 0 : {
7158 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7159 0 : if (!HONOR_NANS (captures[0])
7160 : )
7161 : {
7162 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1549;
7163 0 : {
7164 0 : tree res_op0;
7165 0 : res_op0 = captures[0];
7166 0 : tree res_op1;
7167 0 : res_op1 = captures[1];
7168 0 : tree _r;
7169 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
7170 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7171 0 : return _r;
7172 : }
7173 0 : next_after_fail1549:;
7174 : }
7175 : }
7176 : }
7177 : }
7178 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7179 : {
7180 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7181 : {
7182 0 : {
7183 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7184 0 : if (!HONOR_NANS (captures[0])
7185 : )
7186 : {
7187 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1550;
7188 0 : {
7189 0 : tree res_op0;
7190 0 : res_op0 = captures[0];
7191 0 : tree res_op1;
7192 0 : res_op1 = captures[1];
7193 0 : tree _r;
7194 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
7195 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7196 0 : return _r;
7197 : }
7198 0 : next_after_fail1550:;
7199 : }
7200 : }
7201 : }
7202 : }
7203 : break;
7204 : }
7205 7965 : default:;
7206 : }
7207 7965 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7208 : {
7209 0 : {
7210 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7211 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
7212 0 : if (res) return res;
7213 : }
7214 : }
7215 7965 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7216 : {
7217 425 : {
7218 425 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7219 425 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
7220 425 : if (res) return res;
7221 : }
7222 : }
7223 : break;
7224 : }
7225 35719023 : default:;
7226 : }
7227 35719023 : if (tree_with_possible_nonzero_bits (_p0))
7228 : {
7229 15403748 : if (tree_with_known_nonzero_bits (_p1))
7230 : {
7231 13937580 : {
7232 13937580 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7233 13937580 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, NE_EXPR);
7234 13937580 : if (res) return res;
7235 : }
7236 : }
7237 : }
7238 35659575 : if (tree_with_known_nonzero_bits (_p0))
7239 : {
7240 11308846 : if (tree_with_possible_nonzero_bits (_p1))
7241 : {
7242 11258400 : {
7243 11258400 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
7244 11258400 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, NE_EXPR);
7245 11258400 : if (res) return res;
7246 : }
7247 : }
7248 : }
7249 35658158 : switch (TREE_CODE (_p1))
7250 : {
7251 146 : case MIN_EXPR:
7252 146 : {
7253 146 : tree _q30 = TREE_OPERAND (_p1, 0);
7254 146 : tree _q31 = TREE_OPERAND (_p1, 1);
7255 146 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7256 : {
7257 0 : {
7258 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7259 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
7260 0 : if (res) return res;
7261 : }
7262 : }
7263 146 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7264 : {
7265 0 : {
7266 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7267 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
7268 0 : if (res) return res;
7269 : }
7270 : }
7271 : break;
7272 : }
7273 1590 : case MAX_EXPR:
7274 1590 : {
7275 1590 : tree _q30 = TREE_OPERAND (_p1, 0);
7276 1590 : tree _q31 = TREE_OPERAND (_p1, 1);
7277 1590 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7278 : {
7279 0 : {
7280 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7281 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
7282 0 : if (res) return res;
7283 : }
7284 : }
7285 1590 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7286 : {
7287 0 : {
7288 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7289 0 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
7290 0 : if (res) return res;
7291 : }
7292 : }
7293 : break;
7294 : }
7295 35658158 : default:;
7296 : }
7297 35658158 : switch (TREE_CODE (_p0))
7298 : {
7299 8310 : case MIN_EXPR:
7300 8310 : {
7301 8310 : tree _q20 = TREE_OPERAND (_p0, 0);
7302 8310 : tree _q21 = TREE_OPERAND (_p0, 1);
7303 8310 : switch (TREE_CODE (_q21))
7304 : {
7305 680 : case INTEGER_CST:
7306 680 : {
7307 680 : switch (TREE_CODE (_p1))
7308 : {
7309 0 : case INTEGER_CST:
7310 0 : {
7311 0 : {
7312 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7313 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
7314 0 : if (res) return res;
7315 : }
7316 0 : break;
7317 : }
7318 : default:;
7319 : }
7320 : break;
7321 : }
7322 : default:;
7323 : }
7324 : break;
7325 : }
7326 7836 : case MAX_EXPR:
7327 7836 : {
7328 7836 : tree _q20 = TREE_OPERAND (_p0, 0);
7329 7836 : tree _q21 = TREE_OPERAND (_p0, 1);
7330 7836 : switch (TREE_CODE (_q21))
7331 : {
7332 6778 : case INTEGER_CST:
7333 6778 : {
7334 6778 : switch (TREE_CODE (_p1))
7335 : {
7336 683 : case INTEGER_CST:
7337 683 : {
7338 683 : {
7339 683 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7340 683 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, NE_EXPR);
7341 683 : if (res) return res;
7342 : }
7343 0 : break;
7344 : }
7345 : default:;
7346 : }
7347 : break;
7348 : }
7349 7153 : default:;
7350 : }
7351 7153 : if (integer_zerop (_p1))
7352 : {
7353 34 : {
7354 34 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7355 34 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, NE_EXPR);
7356 34 : if (res) return res;
7357 : }
7358 : }
7359 : break;
7360 : }
7361 1258061 : case BIT_AND_EXPR:
7362 1258061 : {
7363 1258061 : tree _q20 = TREE_OPERAND (_p0, 0);
7364 1258061 : tree _q21 = TREE_OPERAND (_p0, 1);
7365 1258061 : switch (TREE_CODE (_q20))
7366 : {
7367 3613 : case LSHIFT_EXPR:
7368 3613 : {
7369 3613 : tree _q30 = TREE_OPERAND (_q20, 0);
7370 3613 : tree _q31 = TREE_OPERAND (_q20, 1);
7371 3613 : if (integer_pow2p (_q30))
7372 : {
7373 3593 : if (integer_pow2p (_q21))
7374 : {
7375 5 : if (integer_zerop (_p1))
7376 : {
7377 5 : {
7378 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7379 5 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
7380 5 : if (res) return res;
7381 : }
7382 : }
7383 : }
7384 : }
7385 3608 : switch (TREE_CODE (_q31))
7386 : {
7387 13 : case INTEGER_CST:
7388 13 : {
7389 13 : switch (TREE_CODE (_q21))
7390 : {
7391 13 : case INTEGER_CST:
7392 13 : {
7393 13 : switch (TREE_CODE (_p1))
7394 : {
7395 13 : case INTEGER_CST:
7396 13 : {
7397 13 : {
7398 13 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7399 13 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
7400 13 : if (res) return res;
7401 : }
7402 0 : break;
7403 : }
7404 : default:;
7405 : }
7406 : break;
7407 : }
7408 : default:;
7409 : }
7410 : break;
7411 : }
7412 3595 : default:;
7413 : }
7414 3595 : if (integer_onep (_q30))
7415 : {
7416 3587 : if (integer_pow2p (_q21))
7417 : {
7418 0 : if (integer_zerop (_p1))
7419 : {
7420 0 : {
7421 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
7422 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
7423 0 : if (res) return res;
7424 : }
7425 : }
7426 : }
7427 : }
7428 : break;
7429 : }
7430 4790 : case RSHIFT_EXPR:
7431 4790 : {
7432 4790 : tree _q30 = TREE_OPERAND (_q20, 0);
7433 4790 : tree _q31 = TREE_OPERAND (_q20, 1);
7434 4790 : if (integer_pow2p (_q30))
7435 : {
7436 33 : if (integer_pow2p (_q21))
7437 : {
7438 1 : if (integer_zerop (_p1))
7439 : {
7440 1 : {
7441 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7442 1 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
7443 1 : if (res) return res;
7444 : }
7445 : }
7446 : }
7447 : }
7448 4789 : switch (TREE_CODE (_q31))
7449 : {
7450 329 : case INTEGER_CST:
7451 329 : {
7452 329 : switch (TREE_CODE (_q21))
7453 : {
7454 305 : case INTEGER_CST:
7455 305 : {
7456 305 : switch (TREE_CODE (_p1))
7457 : {
7458 280 : case INTEGER_CST:
7459 280 : {
7460 280 : {
7461 280 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7462 280 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
7463 280 : if (res) return res;
7464 : }
7465 14 : break;
7466 : }
7467 : default:;
7468 : }
7469 : break;
7470 : }
7471 : default:;
7472 : }
7473 : break;
7474 : }
7475 : default:;
7476 : }
7477 : break;
7478 : }
7479 1257776 : default:;
7480 : }
7481 1257776 : {
7482 1257776 : tree _q20_pops[1];
7483 1257776 : if (tree_nop_convert (_q20, _q20_pops))
7484 : {
7485 138004 : tree _q30 = _q20_pops[0];
7486 138004 : switch (TREE_CODE (_q30))
7487 : {
7488 37188 : case LSHIFT_EXPR:
7489 37188 : {
7490 37188 : tree _q40 = TREE_OPERAND (_q30, 0);
7491 37188 : tree _q41 = TREE_OPERAND (_q30, 1);
7492 37188 : if (integer_onep (_q40))
7493 : {
7494 37188 : if (integer_pow2p (_q21))
7495 : {
7496 0 : if (integer_zerop (_p1))
7497 : {
7498 0 : {
7499 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
7500 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
7501 0 : if (res) return res;
7502 : }
7503 : }
7504 : }
7505 : }
7506 : break;
7507 : }
7508 : default:;
7509 : }
7510 : }
7511 : }
7512 1257776 : break;
7513 : }
7514 5176 : case LSHIFT_EXPR:
7515 5176 : {
7516 5176 : tree _q20 = TREE_OPERAND (_p0, 0);
7517 5176 : tree _q21 = TREE_OPERAND (_p0, 1);
7518 5176 : switch (TREE_CODE (_q20))
7519 : {
7520 534 : case INTEGER_CST:
7521 534 : {
7522 534 : switch (TREE_CODE (_p1))
7523 : {
7524 159 : case INTEGER_CST:
7525 159 : {
7526 159 : {
7527 159 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7528 159 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, NE_EXPR);
7529 159 : if (res) return res;
7530 : }
7531 88 : break;
7532 : }
7533 : default:;
7534 : }
7535 : break;
7536 : }
7537 : default:;
7538 : }
7539 : break;
7540 : }
7541 414 : case LROTATE_EXPR:
7542 414 : {
7543 414 : tree _q20 = TREE_OPERAND (_p0, 0);
7544 414 : tree _q21 = TREE_OPERAND (_p0, 1);
7545 414 : switch (TREE_CODE (_p1))
7546 : {
7547 0 : case LROTATE_EXPR:
7548 0 : {
7549 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7550 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7551 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7552 : {
7553 0 : {
7554 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7555 0 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
7556 0 : if (res) return res;
7557 : }
7558 : }
7559 : break;
7560 : }
7561 414 : default:;
7562 : }
7563 414 : switch (TREE_CODE (_q21))
7564 : {
7565 112 : case INTEGER_CST:
7566 112 : {
7567 112 : switch (TREE_CODE (_p1))
7568 : {
7569 112 : case INTEGER_CST:
7570 112 : {
7571 112 : {
7572 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7573 112 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
7574 112 : if (res) return res;
7575 : }
7576 0 : break;
7577 : }
7578 : default:;
7579 : }
7580 : break;
7581 : }
7582 302 : default:;
7583 : }
7584 302 : switch (TREE_CODE (_p1))
7585 : {
7586 197 : case INTEGER_CST:
7587 197 : {
7588 197 : {
7589 197 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7590 197 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
7591 197 : if (res) return res;
7592 : }
7593 197 : break;
7594 : }
7595 : default:;
7596 : }
7597 : break;
7598 : }
7599 491 : case RROTATE_EXPR:
7600 491 : {
7601 491 : tree _q20 = TREE_OPERAND (_p0, 0);
7602 491 : tree _q21 = TREE_OPERAND (_p0, 1);
7603 491 : switch (TREE_CODE (_p1))
7604 : {
7605 0 : case RROTATE_EXPR:
7606 0 : {
7607 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7608 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7609 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7610 : {
7611 0 : {
7612 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7613 0 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
7614 0 : if (res) return res;
7615 : }
7616 : }
7617 : break;
7618 : }
7619 491 : default:;
7620 : }
7621 491 : switch (TREE_CODE (_q21))
7622 : {
7623 281 : case INTEGER_CST:
7624 281 : {
7625 281 : switch (TREE_CODE (_p1))
7626 : {
7627 12 : case INTEGER_CST:
7628 12 : {
7629 12 : {
7630 12 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7631 12 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
7632 12 : if (res) return res;
7633 : }
7634 0 : break;
7635 : }
7636 : default:;
7637 : }
7638 : break;
7639 : }
7640 479 : default:;
7641 : }
7642 479 : switch (TREE_CODE (_p1))
7643 : {
7644 194 : case INTEGER_CST:
7645 194 : {
7646 194 : {
7647 194 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7648 194 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
7649 194 : if (res) return res;
7650 : }
7651 194 : break;
7652 : }
7653 : default:;
7654 : }
7655 : break;
7656 : }
7657 260 : case VEC_COND_EXPR:
7658 260 : {
7659 260 : tree _q20 = TREE_OPERAND (_p0, 0);
7660 260 : tree _q21 = TREE_OPERAND (_p0, 1);
7661 260 : tree _q22 = TREE_OPERAND (_p0, 2);
7662 260 : switch (TREE_CODE (_p1))
7663 : {
7664 8 : case VEC_COND_EXPR:
7665 8 : {
7666 8 : tree _q60 = TREE_OPERAND (_p1, 0);
7667 8 : tree _q61 = TREE_OPERAND (_p1, 1);
7668 8 : tree _q62 = TREE_OPERAND (_p1, 2);
7669 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7670 : {
7671 0 : {
7672 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7673 0 : if (VECTOR_TYPE_P (type)
7674 0 : && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
7675 0 : || types_match (type, TREE_TYPE (captures[2]))
7676 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7677 : || (optimize_vectors_before_lowering_p ()
7678 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7679 : )
7680 : {
7681 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1551;
7682 0 : {
7683 0 : tree res_op0;
7684 0 : res_op0 = captures[1];
7685 0 : tree res_op1;
7686 0 : {
7687 0 : tree _o1[2], _r1;
7688 0 : _o1[0] = captures[2];
7689 0 : _o1[1] = captures[5];
7690 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7691 0 : if (EXPR_P (_r1))
7692 0 : goto next_after_fail1551;
7693 0 : res_op1 = _r1;
7694 : }
7695 0 : tree res_op2;
7696 0 : {
7697 0 : tree _o1[2], _r1;
7698 0 : _o1[0] = captures[3];
7699 0 : _o1[1] = captures[6];
7700 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7701 0 : if (EXPR_P (_r1))
7702 0 : goto next_after_fail1551;
7703 0 : res_op2 = _r1;
7704 : }
7705 0 : tree _r;
7706 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7707 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
7708 0 : return _r;
7709 : }
7710 0 : next_after_fail1551:;
7711 : }
7712 : }
7713 : }
7714 : break;
7715 : }
7716 260 : default:;
7717 : }
7718 260 : {
7719 260 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7720 260 : if (VECTOR_TYPE_P (type)
7721 260 : && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
7722 258 : || types_match (type, TREE_TYPE (captures[2]))
7723 258 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7724 : || (optimize_vectors_before_lowering_p ()
7725 27 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7726 : )
7727 : {
7728 258 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1552;
7729 258 : {
7730 258 : if (! tree_invariant_p (captures[4])) goto next_after_fail1552;
7731 80 : tree res_op0;
7732 80 : res_op0 = captures[1];
7733 80 : tree res_op1;
7734 80 : {
7735 80 : tree _o1[2], _r1;
7736 80 : _o1[0] = captures[2];
7737 80 : _o1[1] = unshare_expr (captures[4]);
7738 80 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7739 80 : if (EXPR_P (_r1))
7740 8 : goto next_after_fail1552;
7741 72 : res_op1 = _r1;
7742 : }
7743 72 : tree res_op2;
7744 72 : {
7745 72 : tree _o1[2], _r1;
7746 72 : _o1[0] = captures[3];
7747 72 : _o1[1] = captures[4];
7748 72 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7749 72 : if (EXPR_P (_r1))
7750 0 : goto next_after_fail1552;
7751 72 : res_op2 = _r1;
7752 : }
7753 72 : tree _r;
7754 72 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7755 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
7756 72 : return _r;
7757 : }
7758 188 : next_after_fail1552:;
7759 : }
7760 : }
7761 188 : break;
7762 : }
7763 2332530 : case CALL_EXPR:
7764 2332530 : switch (get_call_combined_fn (_p0))
7765 : {
7766 2 : case CFN_BUILT_IN_BSWAP128:
7767 2 : if (call_expr_nargs (_p0) == 1)
7768 : {
7769 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7770 2 : switch (TREE_CODE (_p1))
7771 : {
7772 0 : case INTEGER_CST:
7773 0 : {
7774 0 : {
7775 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7776 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
7777 0 : if (res) return res;
7778 : }
7779 0 : break;
7780 : }
7781 1 : case CALL_EXPR:
7782 1 : switch (get_call_combined_fn (_p1))
7783 : {
7784 0 : case CFN_BUILT_IN_BSWAP128:
7785 0 : if (call_expr_nargs (_p1) == 1)
7786 : {
7787 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7788 0 : {
7789 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7790 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
7791 0 : if (res) return res;
7792 : }
7793 : }
7794 : break;
7795 : default:;
7796 : }
7797 : break;
7798 : default:;
7799 : }
7800 : }
7801 : break;
7802 11 : case CFN_BUILT_IN_BSWAP16:
7803 11 : if (call_expr_nargs (_p0) == 1)
7804 : {
7805 11 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7806 11 : switch (TREE_CODE (_p1))
7807 : {
7808 9 : case INTEGER_CST:
7809 9 : {
7810 9 : {
7811 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7812 9 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
7813 9 : if (res) return res;
7814 : }
7815 9 : break;
7816 : }
7817 1 : case CALL_EXPR:
7818 1 : switch (get_call_combined_fn (_p1))
7819 : {
7820 1 : case CFN_BUILT_IN_BSWAP16:
7821 1 : if (call_expr_nargs (_p1) == 1)
7822 : {
7823 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7824 1 : {
7825 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7826 1 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
7827 1 : if (res) return res;
7828 : }
7829 : }
7830 : break;
7831 : default:;
7832 : }
7833 : break;
7834 : default:;
7835 : }
7836 : }
7837 : break;
7838 7 : case CFN_BUILT_IN_BSWAP32:
7839 7 : if (call_expr_nargs (_p0) == 1)
7840 : {
7841 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7842 7 : switch (TREE_CODE (_p1))
7843 : {
7844 3 : case INTEGER_CST:
7845 3 : {
7846 3 : {
7847 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7848 3 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
7849 3 : if (res) return res;
7850 : }
7851 3 : break;
7852 : }
7853 3 : case CALL_EXPR:
7854 3 : switch (get_call_combined_fn (_p1))
7855 : {
7856 3 : case CFN_BUILT_IN_BSWAP32:
7857 3 : if (call_expr_nargs (_p1) == 1)
7858 : {
7859 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7860 3 : {
7861 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7862 3 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
7863 3 : if (res) return res;
7864 : }
7865 : }
7866 : break;
7867 : default:;
7868 : }
7869 : break;
7870 : default:;
7871 : }
7872 : }
7873 : break;
7874 7 : case CFN_BUILT_IN_BSWAP64:
7875 7 : if (call_expr_nargs (_p0) == 1)
7876 : {
7877 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7878 7 : switch (TREE_CODE (_p1))
7879 : {
7880 3 : case INTEGER_CST:
7881 3 : {
7882 3 : {
7883 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7884 3 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
7885 3 : if (res) return res;
7886 : }
7887 3 : break;
7888 : }
7889 3 : case CALL_EXPR:
7890 3 : switch (get_call_combined_fn (_p1))
7891 : {
7892 3 : case CFN_BUILT_IN_BSWAP64:
7893 3 : if (call_expr_nargs (_p1) == 1)
7894 : {
7895 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7896 3 : {
7897 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7898 3 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
7899 3 : if (res) return res;
7900 : }
7901 : }
7902 : break;
7903 : default:;
7904 : }
7905 : break;
7906 : default:;
7907 : }
7908 : }
7909 : break;
7910 : default:;
7911 : }
7912 : break;
7913 35656916 : default:;
7914 : }
7915 35656916 : switch (TREE_CODE (_p1))
7916 : {
7917 16 : case VEC_COND_EXPR:
7918 16 : {
7919 16 : tree _q30 = TREE_OPERAND (_p1, 0);
7920 16 : tree _q31 = TREE_OPERAND (_p1, 1);
7921 16 : tree _q32 = TREE_OPERAND (_p1, 2);
7922 16 : {
7923 16 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7924 16 : if (VECTOR_TYPE_P (type)
7925 16 : && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
7926 16 : || types_match (type, TREE_TYPE (captures[3]))
7927 16 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7928 : || (optimize_vectors_before_lowering_p ()
7929 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7930 : )
7931 : {
7932 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1553;
7933 16 : {
7934 16 : if (! tree_invariant_p (captures[0])) goto next_after_fail1553;
7935 0 : tree res_op0;
7936 0 : res_op0 = captures[2];
7937 0 : tree res_op1;
7938 0 : {
7939 0 : tree _o1[2], _r1;
7940 0 : _o1[0] = unshare_expr (captures[0]);
7941 0 : _o1[1] = captures[3];
7942 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7943 0 : if (EXPR_P (_r1))
7944 0 : goto next_after_fail1553;
7945 0 : res_op1 = _r1;
7946 : }
7947 0 : tree res_op2;
7948 0 : {
7949 0 : tree _o1[2], _r1;
7950 0 : _o1[0] = captures[0];
7951 0 : _o1[1] = captures[4];
7952 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
7953 0 : if (EXPR_P (_r1))
7954 0 : goto next_after_fail1553;
7955 0 : res_op2 = _r1;
7956 : }
7957 0 : tree _r;
7958 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7959 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
7960 0 : return _r;
7961 : }
7962 16 : next_after_fail1553:;
7963 : }
7964 : }
7965 16 : break;
7966 : }
7967 35656916 : default:;
7968 : }
7969 35656916 : switch (TREE_CODE (_p0))
7970 : {
7971 96850 : case COND_EXPR:
7972 96850 : {
7973 96850 : tree _q20 = TREE_OPERAND (_p0, 0);
7974 96850 : tree _q21 = TREE_OPERAND (_p0, 1);
7975 96850 : tree _q22 = TREE_OPERAND (_p0, 2);
7976 96850 : switch (TREE_CODE (_p1))
7977 : {
7978 276 : case COND_EXPR:
7979 276 : {
7980 276 : tree _q60 = TREE_OPERAND (_p1, 0);
7981 276 : tree _q61 = TREE_OPERAND (_p1, 1);
7982 276 : tree _q62 = TREE_OPERAND (_p1, 2);
7983 276 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7984 : {
7985 72 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
7986 : {
7987 72 : {
7988 72 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
7989 72 : const enum tree_code eqne = NE_EXPR;
7990 72 : if (!HONOR_NANS (captures[1])
7991 56 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
7992 49 : && types_match (type, TREE_TYPE (captures[0]))
7993 49 : && expr_no_side_effects_p (captures[1])
7994 114 : && expr_no_side_effects_p (captures[2])
7995 : )
7996 : {
7997 42 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1554;
7998 42 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1554;
7999 42 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1554;
8000 42 : {
8001 42 : tree res_op0;
8002 42 : {
8003 42 : tree _o1[2], _r1;
8004 42 : {
8005 42 : tree _o2[2], _r2;
8006 42 : _o2[0] = captures[0];
8007 42 : _o2[1] = captures[3];
8008 42 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8009 42 : _o1[0] = _r2;
8010 : }
8011 42 : {
8012 42 : tree _o2[2], _r2;
8013 42 : _o2[0] = captures[1];
8014 42 : _o2[1] = captures[2];
8015 42 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8016 42 : _o1[1] = _r2;
8017 : }
8018 42 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8019 42 : res_op0 = _r1;
8020 : }
8021 42 : tree res_op1;
8022 42 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8023 42 : tree res_op2;
8024 42 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8025 42 : tree _r;
8026 42 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8027 42 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
8028 42 : return _r;
8029 : }
8030 30 : next_after_fail1554:;
8031 : }
8032 : }
8033 : }
8034 : }
8035 234 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8036 : {
8037 0 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8038 : {
8039 0 : {
8040 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8041 0 : const enum tree_code eqne = NE_EXPR;
8042 0 : if (!HONOR_NANS (captures[1])
8043 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8044 0 : && types_match (type, TREE_TYPE (captures[0]))
8045 0 : && expr_no_side_effects_p (captures[1])
8046 0 : && expr_no_side_effects_p (captures[2])
8047 : )
8048 : {
8049 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1555;
8050 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1555;
8051 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1555;
8052 0 : {
8053 0 : tree res_op0;
8054 0 : {
8055 0 : tree _o1[2], _r1;
8056 0 : {
8057 0 : tree _o2[2], _r2;
8058 0 : _o2[0] = captures[0];
8059 0 : _o2[1] = captures[3];
8060 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8061 0 : _o1[0] = _r2;
8062 : }
8063 0 : {
8064 0 : tree _o2[2], _r2;
8065 0 : _o2[0] = captures[1];
8066 0 : _o2[1] = captures[2];
8067 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8068 0 : _o1[1] = _r2;
8069 : }
8070 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8071 0 : res_op0 = _r1;
8072 : }
8073 0 : tree res_op1;
8074 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8075 0 : tree res_op2;
8076 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8077 0 : tree _r;
8078 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8079 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
8080 0 : return _r;
8081 : }
8082 0 : next_after_fail1555:;
8083 : }
8084 : }
8085 : }
8086 : }
8087 : break;
8088 : }
8089 : default:;
8090 : }
8091 : break;
8092 : }
8093 188 : case VEC_COND_EXPR:
8094 188 : {
8095 188 : tree _q20 = TREE_OPERAND (_p0, 0);
8096 188 : tree _q21 = TREE_OPERAND (_p0, 1);
8097 188 : tree _q22 = TREE_OPERAND (_p0, 2);
8098 188 : switch (TREE_CODE (_p1))
8099 : {
8100 8 : case VEC_COND_EXPR:
8101 8 : {
8102 8 : tree _q60 = TREE_OPERAND (_p1, 0);
8103 8 : tree _q61 = TREE_OPERAND (_p1, 1);
8104 8 : tree _q62 = TREE_OPERAND (_p1, 2);
8105 8 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8106 : {
8107 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8108 : {
8109 0 : {
8110 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8111 0 : const enum tree_code eqne = NE_EXPR;
8112 0 : if (!HONOR_NANS (captures[1])
8113 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8114 0 : && types_match (type, TREE_TYPE (captures[0]))
8115 0 : && expr_no_side_effects_p (captures[1])
8116 0 : && expr_no_side_effects_p (captures[2])
8117 : )
8118 : {
8119 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1556;
8120 0 : {
8121 0 : tree res_op0;
8122 0 : {
8123 0 : tree _o1[2], _r1;
8124 0 : {
8125 0 : tree _o2[2], _r2;
8126 0 : _o2[0] = captures[0];
8127 0 : _o2[1] = captures[3];
8128 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8129 0 : _o1[0] = _r2;
8130 : }
8131 0 : {
8132 0 : tree _o2[2], _r2;
8133 0 : _o2[0] = captures[1];
8134 0 : _o2[1] = captures[2];
8135 0 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8136 0 : _o1[1] = _r2;
8137 : }
8138 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8139 0 : res_op0 = _r1;
8140 : }
8141 0 : tree res_op1;
8142 0 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8143 0 : tree res_op2;
8144 0 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8145 0 : tree _r;
8146 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8147 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
8148 0 : return _r;
8149 : }
8150 0 : next_after_fail1556:;
8151 : }
8152 : }
8153 : }
8154 : }
8155 8 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8156 : {
8157 8 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8158 : {
8159 8 : {
8160 8 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8161 8 : const enum tree_code eqne = NE_EXPR;
8162 8 : if (!HONOR_NANS (captures[1])
8163 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8164 0 : && types_match (type, TREE_TYPE (captures[0]))
8165 0 : && expr_no_side_effects_p (captures[1])
8166 8 : && expr_no_side_effects_p (captures[2])
8167 : )
8168 : {
8169 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1557;
8170 0 : {
8171 0 : tree res_op0;
8172 0 : {
8173 0 : tree _o1[2], _r1;
8174 0 : {
8175 0 : tree _o2[2], _r2;
8176 0 : _o2[0] = captures[0];
8177 0 : _o2[1] = captures[3];
8178 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8179 0 : _o1[0] = _r2;
8180 : }
8181 0 : {
8182 0 : tree _o2[2], _r2;
8183 0 : _o2[0] = captures[1];
8184 0 : _o2[1] = captures[2];
8185 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8186 0 : _o1[1] = _r2;
8187 : }
8188 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8189 0 : res_op0 = _r1;
8190 : }
8191 0 : tree res_op1;
8192 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8193 0 : tree res_op2;
8194 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8195 0 : tree _r;
8196 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8197 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
8198 0 : return _r;
8199 : }
8200 0 : next_after_fail1557:;
8201 : }
8202 : }
8203 : }
8204 : }
8205 : break;
8206 : }
8207 : default:;
8208 : }
8209 : break;
8210 : }
8211 18040 : case LT_EXPR:
8212 18040 : {
8213 18040 : tree _q20 = TREE_OPERAND (_p0, 0);
8214 18040 : tree _q21 = TREE_OPERAND (_p0, 1);
8215 18040 : if (integer_zerop (_p1))
8216 : {
8217 16547 : {
8218 16547 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8219 16547 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8220 16547 : if (res) return res;
8221 : }
8222 : }
8223 15106 : if (integer_truep (_p1))
8224 : {
8225 547 : {
8226 547 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8227 547 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8228 547 : if (res) return res;
8229 : }
8230 : }
8231 : break;
8232 : }
8233 11913 : case LE_EXPR:
8234 11913 : {
8235 11913 : tree _q20 = TREE_OPERAND (_p0, 0);
8236 11913 : tree _q21 = TREE_OPERAND (_p0, 1);
8237 11913 : if (integer_zerop (_p1))
8238 : {
8239 9359 : {
8240 9359 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8241 9359 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8242 9359 : if (res) return res;
8243 : }
8244 : }
8245 11119 : if (integer_truep (_p1))
8246 : {
8247 461 : {
8248 461 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8249 461 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8250 461 : if (res) return res;
8251 : }
8252 : }
8253 : break;
8254 : }
8255 63463 : case EQ_EXPR:
8256 63463 : {
8257 63463 : tree _q20 = TREE_OPERAND (_p0, 0);
8258 63463 : tree _q21 = TREE_OPERAND (_p0, 1);
8259 63463 : if (integer_zerop (_p1))
8260 : {
8261 35834 : {
8262 35834 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8263 35834 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8264 35834 : if (res) return res;
8265 : }
8266 : }
8267 62342 : if (integer_truep (_p1))
8268 : {
8269 21941 : {
8270 21941 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8271 21941 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8272 21941 : if (res) return res;
8273 : }
8274 : }
8275 : break;
8276 : }
8277 68867 : case NE_EXPR:
8278 68867 : {
8279 68867 : tree _q20 = TREE_OPERAND (_p0, 0);
8280 68867 : tree _q21 = TREE_OPERAND (_p0, 1);
8281 68867 : if (integer_zerop (_p1))
8282 : {
8283 57030 : {
8284 57030 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8285 57030 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8286 57030 : if (res) return res;
8287 : }
8288 : }
8289 34495 : if (integer_truep (_p1))
8290 : {
8291 141 : {
8292 141 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8293 141 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8294 141 : if (res) return res;
8295 : }
8296 : }
8297 : break;
8298 : }
8299 6117 : case GE_EXPR:
8300 6117 : {
8301 6117 : tree _q20 = TREE_OPERAND (_p0, 0);
8302 6117 : tree _q21 = TREE_OPERAND (_p0, 1);
8303 6117 : if (integer_zerop (_p1))
8304 : {
8305 4176 : {
8306 4176 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8307 4176 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8308 4176 : if (res) return res;
8309 : }
8310 : }
8311 5459 : if (integer_truep (_p1))
8312 : {
8313 477 : {
8314 477 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8315 477 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8316 477 : if (res) return res;
8317 : }
8318 : }
8319 : break;
8320 : }
8321 35463 : case GT_EXPR:
8322 35463 : {
8323 35463 : tree _q20 = TREE_OPERAND (_p0, 0);
8324 35463 : tree _q21 = TREE_OPERAND (_p0, 1);
8325 35463 : if (integer_zerop (_p1))
8326 : {
8327 33404 : {
8328 33404 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8329 33404 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8330 33404 : if (res) return res;
8331 : }
8332 : }
8333 29455 : if (integer_truep (_p1))
8334 : {
8335 320 : {
8336 320 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8337 320 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8338 320 : if (res) return res;
8339 : }
8340 : }
8341 : break;
8342 : }
8343 129073 : case UNORDERED_EXPR:
8344 129073 : {
8345 129073 : tree _q20 = TREE_OPERAND (_p0, 0);
8346 129073 : tree _q21 = TREE_OPERAND (_p0, 1);
8347 129073 : if (integer_zerop (_p1))
8348 : {
8349 126865 : {
8350 126865 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8351 126865 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8352 126865 : if (res) return res;
8353 : }
8354 : }
8355 128683 : if (integer_truep (_p1))
8356 : {
8357 42 : {
8358 42 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8359 42 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8360 42 : if (res) return res;
8361 : }
8362 : }
8363 : break;
8364 : }
8365 125 : case ORDERED_EXPR:
8366 125 : {
8367 125 : tree _q20 = TREE_OPERAND (_p0, 0);
8368 125 : tree _q21 = TREE_OPERAND (_p0, 1);
8369 125 : if (integer_zerop (_p1))
8370 : {
8371 42 : {
8372 42 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8373 42 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8374 42 : if (res) return res;
8375 : }
8376 : }
8377 83 : if (integer_truep (_p1))
8378 : {
8379 0 : {
8380 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8381 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8382 0 : if (res) return res;
8383 : }
8384 : }
8385 : break;
8386 : }
8387 213 : case UNLT_EXPR:
8388 213 : {
8389 213 : tree _q20 = TREE_OPERAND (_p0, 0);
8390 213 : tree _q21 = TREE_OPERAND (_p0, 1);
8391 213 : if (integer_zerop (_p1))
8392 : {
8393 28 : {
8394 28 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8395 28 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8396 28 : if (res) return res;
8397 : }
8398 : }
8399 185 : if (integer_truep (_p1))
8400 : {
8401 161 : {
8402 161 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8403 161 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8404 161 : if (res) return res;
8405 : }
8406 : }
8407 : break;
8408 : }
8409 1426 : case UNLE_EXPR:
8410 1426 : {
8411 1426 : tree _q20 = TREE_OPERAND (_p0, 0);
8412 1426 : tree _q21 = TREE_OPERAND (_p0, 1);
8413 1426 : if (integer_zerop (_p1))
8414 : {
8415 104 : {
8416 104 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8417 104 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8418 104 : if (res) return res;
8419 : }
8420 : }
8421 1322 : if (integer_truep (_p1))
8422 : {
8423 1298 : {
8424 1298 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8425 1298 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8426 1298 : if (res) return res;
8427 : }
8428 : }
8429 : break;
8430 : }
8431 2018 : case UNGT_EXPR:
8432 2018 : {
8433 2018 : tree _q20 = TREE_OPERAND (_p0, 0);
8434 2018 : tree _q21 = TREE_OPERAND (_p0, 1);
8435 2018 : if (integer_zerop (_p1))
8436 : {
8437 96 : {
8438 96 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8439 96 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8440 96 : if (res) return res;
8441 : }
8442 : }
8443 1922 : if (integer_truep (_p1))
8444 : {
8445 1778 : {
8446 1778 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8447 1778 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8448 1778 : if (res) return res;
8449 : }
8450 : }
8451 : break;
8452 : }
8453 391 : case UNGE_EXPR:
8454 391 : {
8455 391 : tree _q20 = TREE_OPERAND (_p0, 0);
8456 391 : tree _q21 = TREE_OPERAND (_p0, 1);
8457 391 : if (integer_zerop (_p1))
8458 : {
8459 16 : {
8460 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8461 16 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8462 16 : if (res) return res;
8463 : }
8464 : }
8465 375 : if (integer_truep (_p1))
8466 : {
8467 211 : {
8468 211 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8469 211 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8470 211 : if (res) return res;
8471 : }
8472 : }
8473 : break;
8474 : }
8475 161 : case UNEQ_EXPR:
8476 161 : {
8477 161 : tree _q20 = TREE_OPERAND (_p0, 0);
8478 161 : tree _q21 = TREE_OPERAND (_p0, 1);
8479 161 : if (integer_zerop (_p1))
8480 : {
8481 0 : {
8482 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8483 0 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8484 0 : if (res) return res;
8485 : }
8486 : }
8487 161 : if (integer_truep (_p1))
8488 : {
8489 124 : {
8490 124 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8491 124 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8492 124 : if (res) return res;
8493 : }
8494 : }
8495 : break;
8496 : }
8497 24 : case LTGT_EXPR:
8498 24 : {
8499 24 : tree _q20 = TREE_OPERAND (_p0, 0);
8500 24 : tree _q21 = TREE_OPERAND (_p0, 1);
8501 24 : if (integer_zerop (_p1))
8502 : {
8503 6 : {
8504 6 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8505 6 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8506 6 : if (res) return res;
8507 : }
8508 : }
8509 24 : if (integer_truep (_p1))
8510 : {
8511 0 : {
8512 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8513 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8514 0 : if (res) return res;
8515 : }
8516 : }
8517 : break;
8518 : }
8519 104026 : case MINUS_EXPR:
8520 104026 : {
8521 104026 : tree _q20 = TREE_OPERAND (_p0, 0);
8522 104026 : tree _q21 = TREE_OPERAND (_p0, 1);
8523 104026 : if (integer_zerop (_p1))
8524 : {
8525 35288 : {
8526 35288 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8527 35288 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, NE_EXPR);
8528 35288 : if (res) return res;
8529 : }
8530 : }
8531 : break;
8532 : }
8533 26923 : case POINTER_DIFF_EXPR:
8534 26923 : {
8535 26923 : tree _q20 = TREE_OPERAND (_p0, 0);
8536 26923 : tree _q21 = TREE_OPERAND (_p0, 1);
8537 26923 : if (integer_zerop (_p1))
8538 : {
8539 14789 : {
8540 14789 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8541 14789 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, NE_EXPR);
8542 14789 : if (res) return res;
8543 : }
8544 : }
8545 : break;
8546 : }
8547 95275 : case MULT_EXPR:
8548 95275 : {
8549 95275 : tree _q20 = TREE_OPERAND (_p0, 0);
8550 95275 : tree _q21 = TREE_OPERAND (_p0, 1);
8551 95275 : switch (TREE_CODE (_q21))
8552 : {
8553 77770 : case INTEGER_CST:
8554 77770 : {
8555 77770 : switch (TREE_CODE (_p1))
8556 : {
8557 51957 : case INTEGER_CST:
8558 51957 : {
8559 51957 : {
8560 51957 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8561 51957 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, NE_EXPR);
8562 51957 : if (res) return res;
8563 : }
8564 35446 : break;
8565 : }
8566 61259 : default:;
8567 : }
8568 61259 : if (integer_zerop (_p1))
8569 : {
8570 12590 : {
8571 12590 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8572 12590 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8573 12590 : if (res) return res;
8574 : }
8575 : }
8576 : break;
8577 : }
8578 : default:;
8579 : }
8580 : break;
8581 : }
8582 35521687 : default:;
8583 : }
8584 35521687 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8585 : {
8586 105776 : {
8587 105776 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8588 105776 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, NE_EXPR);
8589 105776 : if (res) return res;
8590 : }
8591 : }
8592 35422624 : switch (TREE_CODE (_p0))
8593 : {
8594 6806052 : CASE_CONVERT:
8595 6806052 : {
8596 6806052 : tree _q20 = TREE_OPERAND (_p0, 0);
8597 6806052 : switch (TREE_CODE (_p1))
8598 : {
8599 3040018 : CASE_CONVERT:
8600 3040018 : {
8601 3040018 : tree _q40 = TREE_OPERAND (_p1, 0);
8602 3040018 : {
8603 3040018 : tree _q40_pops[1];
8604 3040018 : if (tree_maybe_bit_not (_q40, _q40_pops))
8605 : {
8606 0 : tree _q50 = _q40_pops[0];
8607 0 : {
8608 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
8609 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
8610 0 : if (res) return res;
8611 : }
8612 : }
8613 : }
8614 3040018 : break;
8615 : }
8616 6806052 : default:;
8617 : }
8618 6806052 : {
8619 6806052 : tree _q20_pops[1];
8620 6806052 : if (tree_maybe_bit_not (_q20, _q20_pops))
8621 : {
8622 12766 : tree _q30 = _q20_pops[0];
8623 12766 : switch (TREE_CODE (_p1))
8624 : {
8625 0 : CASE_CONVERT:
8626 0 : {
8627 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8628 0 : {
8629 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
8630 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
8631 0 : if (res) return res;
8632 : }
8633 0 : break;
8634 : }
8635 : default:;
8636 : }
8637 : }
8638 : }
8639 6806052 : break;
8640 : }
8641 35422624 : default:;
8642 : }
8643 35422624 : {
8644 35422624 : tree _p1_pops[1];
8645 35422624 : if (tree_maybe_bit_not (_p1, _p1_pops))
8646 : {
8647 25693561 : tree _q30 = _p1_pops[0];
8648 25693561 : {
8649 25693561 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8650 25693561 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
8651 25693561 : if (res) return res;
8652 : }
8653 : }
8654 : }
8655 35422624 : switch (TREE_CODE (_p0))
8656 : {
8657 13400 : case BIT_NOT_EXPR:
8658 13400 : {
8659 13400 : tree _q20 = TREE_OPERAND (_p0, 0);
8660 13400 : switch (TREE_CODE (_p1))
8661 : {
8662 11 : case BIT_NOT_EXPR:
8663 11 : {
8664 11 : tree _q40 = TREE_OPERAND (_p1, 0);
8665 11 : {
8666 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8667 11 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, NE_EXPR);
8668 11 : if (res) return res;
8669 : }
8670 0 : break;
8671 : }
8672 13389 : default:;
8673 : }
8674 13389 : {
8675 13389 : tree _p1_pops[1];
8676 13389 : if (tree_nop_convert (_p1, _p1_pops))
8677 : {
8678 80 : tree _q40 = _p1_pops[0];
8679 80 : switch (TREE_CODE (_q40))
8680 : {
8681 0 : case BIT_NOT_EXPR:
8682 0 : {
8683 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8684 0 : {
8685 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8686 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, NE_EXPR);
8687 0 : if (res) return res;
8688 : }
8689 0 : break;
8690 : }
8691 : default:;
8692 : }
8693 : }
8694 : }
8695 13389 : if (CONSTANT_CLASS_P (_p1))
8696 : {
8697 12203 : {
8698 12203 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8699 12203 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8700 12203 : if (res) return res;
8701 : }
8702 : }
8703 : break;
8704 : }
8705 35410410 : default:;
8706 : }
8707 35410410 : {
8708 35410410 : tree _p0_pops[1];
8709 35410410 : if (tree_maybe_bit_not (_p0, _p0_pops))
8710 : {
8711 283945 : tree _q20 = _p0_pops[0];
8712 283945 : {
8713 283945 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
8714 283945 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
8715 283945 : if (res) return res;
8716 : }
8717 : }
8718 : }
8719 35410408 : {
8720 35410408 : tree _p0_pops[1];
8721 35410408 : if (tree_nop_convert (_p0, _p0_pops))
8722 : {
8723 4627431 : tree _q20 = _p0_pops[0];
8724 4627431 : switch (TREE_CODE (_q20))
8725 : {
8726 1 : case BIT_NOT_EXPR:
8727 1 : {
8728 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8729 1 : switch (TREE_CODE (_p1))
8730 : {
8731 0 : case BIT_NOT_EXPR:
8732 0 : {
8733 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8734 0 : {
8735 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8736 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR);
8737 0 : if (res) return res;
8738 : }
8739 0 : break;
8740 : }
8741 1 : default:;
8742 : }
8743 1 : {
8744 1 : tree _p1_pops[1];
8745 1 : if (tree_nop_convert (_p1, _p1_pops))
8746 : {
8747 0 : tree _q50 = _p1_pops[0];
8748 0 : switch (TREE_CODE (_q50))
8749 : {
8750 0 : case BIT_NOT_EXPR:
8751 0 : {
8752 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8753 0 : {
8754 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8755 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR);
8756 0 : if (res) return res;
8757 : }
8758 0 : break;
8759 : }
8760 : default:;
8761 : }
8762 : }
8763 : }
8764 1 : if (CONSTANT_CLASS_P (_p1))
8765 : {
8766 1 : {
8767 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8768 1 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8769 1 : if (res) return res;
8770 : }
8771 : }
8772 : break;
8773 : }
8774 : default:;
8775 : }
8776 : }
8777 : }
8778 35410407 : switch (TREE_CODE (_p1))
8779 : {
8780 695301 : case REAL_CST:
8781 695301 : {
8782 695301 : {
8783 695301 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8784 695301 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, NE_EXPR);
8785 695301 : if (res) return res;
8786 : }
8787 627591 : break;
8788 : }
8789 35342697 : default:;
8790 : }
8791 35342697 : switch (TREE_CODE (_p0))
8792 : {
8793 1302022 : case PLUS_EXPR:
8794 1302022 : {
8795 1302022 : tree _q20 = TREE_OPERAND (_p0, 0);
8796 1302022 : tree _q21 = TREE_OPERAND (_p0, 1);
8797 1302022 : switch (TREE_CODE (_q21))
8798 : {
8799 3843 : case REAL_CST:
8800 3843 : {
8801 3843 : switch (TREE_CODE (_p1))
8802 : {
8803 3067 : case REAL_CST:
8804 3067 : {
8805 3067 : {
8806 3067 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8807 3067 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR);
8808 3067 : if (res) return res;
8809 : }
8810 3067 : break;
8811 : }
8812 : default:;
8813 : }
8814 : break;
8815 : }
8816 : default:;
8817 : }
8818 : break;
8819 : }
8820 68734 : case MINUS_EXPR:
8821 68734 : {
8822 68734 : tree _q20 = TREE_OPERAND (_p0, 0);
8823 68734 : tree _q21 = TREE_OPERAND (_p0, 1);
8824 68734 : switch (TREE_CODE (_q21))
8825 : {
8826 3215 : case REAL_CST:
8827 3215 : {
8828 3215 : switch (TREE_CODE (_p1))
8829 : {
8830 2849 : case REAL_CST:
8831 2849 : {
8832 2849 : {
8833 2849 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8834 2849 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, MINUS_EXPR, NE_EXPR);
8835 2849 : if (res) return res;
8836 : }
8837 2849 : break;
8838 : }
8839 : default:;
8840 : }
8841 : break;
8842 : }
8843 68734 : default:;
8844 : }
8845 68734 : switch (TREE_CODE (_q20))
8846 : {
8847 87 : case REAL_CST:
8848 87 : {
8849 87 : switch (TREE_CODE (_p1))
8850 : {
8851 44 : case REAL_CST:
8852 44 : {
8853 44 : {
8854 44 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8855 44 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, NE_EXPR);
8856 44 : if (res) return res;
8857 : }
8858 44 : break;
8859 : }
8860 : default:;
8861 : }
8862 : break;
8863 : }
8864 : default:;
8865 : }
8866 : break;
8867 : }
8868 9955 : case FLOAT_EXPR:
8869 9955 : {
8870 9955 : tree _q20 = TREE_OPERAND (_p0, 0);
8871 9955 : switch (TREE_CODE (_p1))
8872 : {
8873 1115 : case FLOAT_EXPR:
8874 1115 : {
8875 1115 : tree _q40 = TREE_OPERAND (_p1, 0);
8876 1115 : {
8877 1115 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8878 1115 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8879 1115 : if (res) return res;
8880 : }
8881 971 : break;
8882 : }
8883 1808 : case REAL_CST:
8884 1808 : {
8885 1808 : {
8886 1808 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8887 1808 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8888 1808 : if (res) return res;
8889 : }
8890 1687 : break;
8891 : }
8892 : default:;
8893 : }
8894 : break;
8895 : }
8896 2045 : case EXACT_DIV_EXPR:
8897 2045 : {
8898 2045 : tree _q20 = TREE_OPERAND (_p0, 0);
8899 2045 : tree _q21 = TREE_OPERAND (_p0, 1);
8900 2045 : switch (TREE_CODE (_p1))
8901 : {
8902 36 : case INTEGER_CST:
8903 36 : {
8904 36 : {
8905 36 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8906 36 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR);
8907 36 : if (res) return res;
8908 : }
8909 0 : break;
8910 : }
8911 : default:;
8912 : }
8913 : break;
8914 : }
8915 6198 : case NEGATE_EXPR:
8916 6198 : {
8917 6198 : tree _q20 = TREE_OPERAND (_p0, 0);
8918 6198 : switch (TREE_CODE (_p1))
8919 : {
8920 4 : case NEGATE_EXPR:
8921 4 : {
8922 4 : tree _q40 = TREE_OPERAND (_p1, 0);
8923 4 : {
8924 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8925 4 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8926 4 : if (res) return res;
8927 : }
8928 0 : break;
8929 : }
8930 6194 : default:;
8931 : }
8932 6194 : if (CONSTANT_CLASS_P (_p1))
8933 : {
8934 577 : {
8935 577 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8936 577 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
8937 577 : if (res) return res;
8938 : }
8939 : }
8940 : break;
8941 : }
8942 1940 : case ABS_EXPR:
8943 1940 : {
8944 1940 : tree _q20 = TREE_OPERAND (_p0, 0);
8945 1940 : if (zerop (_p1))
8946 : {
8947 72 : {
8948 72 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8949 72 : const enum tree_code eqne = NE_EXPR;
8950 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1558;
8951 72 : {
8952 72 : tree res_op0;
8953 72 : res_op0 = captures[0];
8954 72 : tree res_op1;
8955 72 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8956 72 : tree _r;
8957 72 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8958 72 : if (TREE_SIDE_EFFECTS (captures[1]))
8959 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8960 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
8961 72 : return _r;
8962 : }
8963 0 : next_after_fail1558:;
8964 : }
8965 : }
8966 : break;
8967 : }
8968 1698 : case ABSU_EXPR:
8969 1698 : {
8970 1698 : tree _q20 = TREE_OPERAND (_p0, 0);
8971 1698 : if (zerop (_p1))
8972 : {
8973 65 : {
8974 65 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8975 65 : const enum tree_code eqne = NE_EXPR;
8976 65 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1559;
8977 65 : {
8978 65 : tree res_op0;
8979 65 : res_op0 = captures[0];
8980 65 : tree res_op1;
8981 65 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8982 65 : tree _r;
8983 65 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8984 65 : if (TREE_SIDE_EFFECTS (captures[1]))
8985 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8986 65 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
8987 65 : return _r;
8988 : }
8989 0 : next_after_fail1559:;
8990 : }
8991 : }
8992 : break;
8993 : }
8994 6805972 : CASE_CONVERT:
8995 6805972 : {
8996 6805972 : tree _q20 = TREE_OPERAND (_p0, 0);
8997 6805972 : switch (TREE_CODE (_p1))
8998 : {
8999 3040018 : CASE_CONVERT:
9000 3040018 : {
9001 3040018 : tree _q40 = TREE_OPERAND (_p1, 0);
9002 3040018 : {
9003 3040018 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9004 3040018 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
9005 3040018 : if (res) return res;
9006 : }
9007 2838619 : break;
9008 : }
9009 6604573 : default:;
9010 : }
9011 6604573 : {
9012 6604573 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
9013 6604573 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
9014 6604573 : if (res) return res;
9015 : }
9016 4532567 : switch (TREE_CODE (_q20))
9017 : {
9018 12 : case BIT_IOR_EXPR:
9019 12 : {
9020 12 : tree _q30 = TREE_OPERAND (_q20, 0);
9021 12 : tree _q31 = TREE_OPERAND (_q20, 1);
9022 12 : switch (TREE_CODE (_q31))
9023 : {
9024 0 : case INTEGER_CST:
9025 0 : {
9026 0 : switch (TREE_CODE (_p1))
9027 : {
9028 0 : case INTEGER_CST:
9029 0 : {
9030 0 : {
9031 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9032 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, NE_EXPR);
9033 0 : if (res) return res;
9034 : }
9035 0 : break;
9036 : }
9037 : default:;
9038 : }
9039 : break;
9040 : }
9041 : default:;
9042 : }
9043 : break;
9044 : }
9045 : default:;
9046 : }
9047 : break;
9048 : }
9049 14733765 : case SSA_NAME:
9050 14733765 : {
9051 14733765 : switch (TREE_CODE (_p1))
9052 : {
9053 300922 : case ADDR_EXPR:
9054 300922 : {
9055 300922 : {
9056 300922 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9057 300922 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, NE_EXPR);
9058 300922 : if (res) return res;
9059 : }
9060 300920 : break;
9061 : }
9062 : default:;
9063 : }
9064 : break;
9065 : }
9066 238346 : case BIT_IOR_EXPR:
9067 238346 : {
9068 238346 : tree _q20 = TREE_OPERAND (_p0, 0);
9069 238346 : tree _q21 = TREE_OPERAND (_p0, 1);
9070 238346 : switch (TREE_CODE (_q21))
9071 : {
9072 970 : case INTEGER_CST:
9073 970 : {
9074 970 : switch (TREE_CODE (_p1))
9075 : {
9076 233 : case INTEGER_CST:
9077 233 : {
9078 233 : {
9079 233 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9080 233 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, NE_EXPR);
9081 233 : if (res) return res;
9082 : }
9083 233 : break;
9084 : }
9085 : default:;
9086 : }
9087 : break;
9088 : }
9089 : default:;
9090 : }
9091 : break;
9092 : }
9093 29458 : case BIT_XOR_EXPR:
9094 29458 : {
9095 29458 : tree _q20 = TREE_OPERAND (_p0, 0);
9096 29458 : tree _q21 = TREE_OPERAND (_p0, 1);
9097 29458 : if (integer_zerop (_p1))
9098 : {
9099 25133 : {
9100 25133 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9101 25133 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
9102 25133 : if (res) return res;
9103 : }
9104 : }
9105 4325 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9106 : {
9107 1 : {
9108 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9109 1 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
9110 1 : if (res) return res;
9111 : }
9112 : }
9113 4324 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9114 : {
9115 2 : {
9116 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9117 2 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
9118 2 : if (res) return res;
9119 : }
9120 : }
9121 : break;
9122 : }
9123 2326438 : case CALL_EXPR:
9124 2326438 : switch (get_call_combined_fn (_p0))
9125 : {
9126 42 : case CFN_BUILT_IN_SQRTF:
9127 42 : if (call_expr_nargs (_p0) == 1)
9128 : {
9129 42 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9130 42 : switch (TREE_CODE (_p1))
9131 : {
9132 0 : case REAL_CST:
9133 0 : {
9134 0 : {
9135 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9136 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
9137 0 : if (res) return res;
9138 : }
9139 0 : break;
9140 : }
9141 42 : case CALL_EXPR:
9142 42 : switch (get_call_combined_fn (_p1))
9143 : {
9144 0 : case CFN_BUILT_IN_SQRTF:
9145 0 : if (call_expr_nargs (_p1) == 1)
9146 : {
9147 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9148 0 : {
9149 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9150 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
9151 0 : if (res) return res;
9152 : }
9153 : }
9154 : break;
9155 : default:;
9156 : }
9157 : break;
9158 : default:;
9159 : }
9160 : }
9161 : break;
9162 42 : case CFN_BUILT_IN_SQRTL:
9163 42 : if (call_expr_nargs (_p0) == 1)
9164 : {
9165 42 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9166 42 : switch (TREE_CODE (_p1))
9167 : {
9168 0 : case REAL_CST:
9169 0 : {
9170 0 : {
9171 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9172 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
9173 0 : if (res) return res;
9174 : }
9175 0 : break;
9176 : }
9177 42 : case CALL_EXPR:
9178 42 : switch (get_call_combined_fn (_p1))
9179 : {
9180 0 : case CFN_BUILT_IN_SQRTL:
9181 0 : if (call_expr_nargs (_p1) == 1)
9182 : {
9183 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9184 0 : {
9185 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9186 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
9187 0 : if (res) return res;
9188 : }
9189 : }
9190 : break;
9191 : default:;
9192 : }
9193 : break;
9194 : default:;
9195 : }
9196 : }
9197 : break;
9198 46 : case CFN_BUILT_IN_SQRT:
9199 46 : if (call_expr_nargs (_p0) == 1)
9200 : {
9201 46 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9202 46 : switch (TREE_CODE (_p1))
9203 : {
9204 2 : case REAL_CST:
9205 2 : {
9206 2 : {
9207 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9208 2 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
9209 2 : if (res) return res;
9210 : }
9211 2 : break;
9212 : }
9213 43 : case CALL_EXPR:
9214 43 : switch (get_call_combined_fn (_p1))
9215 : {
9216 0 : case CFN_BUILT_IN_SQRT:
9217 0 : if (call_expr_nargs (_p1) == 1)
9218 : {
9219 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9220 0 : {
9221 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9222 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
9223 0 : if (res) return res;
9224 : }
9225 : }
9226 : break;
9227 : default:;
9228 : }
9229 : break;
9230 : default:;
9231 : }
9232 : }
9233 : break;
9234 0 : case CFN_SQRT:
9235 0 : if (call_expr_nargs (_p0) == 1)
9236 : {
9237 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9238 0 : switch (TREE_CODE (_p1))
9239 : {
9240 0 : case REAL_CST:
9241 0 : {
9242 0 : {
9243 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9244 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
9245 0 : if (res) return res;
9246 : }
9247 0 : break;
9248 : }
9249 0 : case CALL_EXPR:
9250 0 : switch (get_call_combined_fn (_p1))
9251 : {
9252 0 : case CFN_SQRT:
9253 0 : if (call_expr_nargs (_p1) == 1)
9254 : {
9255 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9256 0 : {
9257 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9258 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
9259 0 : if (res) return res;
9260 : }
9261 : }
9262 : break;
9263 : default:;
9264 : }
9265 : break;
9266 : default:;
9267 : }
9268 : }
9269 : break;
9270 : default:;
9271 : }
9272 : break;
9273 33043153 : default:;
9274 : }
9275 33043153 : switch (TREE_CODE (_p1))
9276 : {
9277 840 : case BIT_XOR_EXPR:
9278 840 : {
9279 840 : tree _q30 = TREE_OPERAND (_p1, 0);
9280 840 : tree _q31 = TREE_OPERAND (_p1, 1);
9281 840 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9282 : {
9283 0 : {
9284 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9285 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
9286 0 : if (res) return res;
9287 : }
9288 : }
9289 840 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9290 : {
9291 0 : {
9292 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9293 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
9294 0 : if (res) return res;
9295 : }
9296 : }
9297 : break;
9298 : }
9299 33043153 : default:;
9300 : }
9301 33043153 : switch (TREE_CODE (_p0))
9302 : {
9303 1257764 : case BIT_AND_EXPR:
9304 1257764 : {
9305 1257764 : tree _q20 = TREE_OPERAND (_p0, 0);
9306 1257764 : tree _q21 = TREE_OPERAND (_p0, 1);
9307 1257764 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9308 : {
9309 179 : {
9310 179 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9311 179 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
9312 179 : if (res) return res;
9313 : }
9314 : }
9315 1257736 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9316 : {
9317 4473 : {
9318 4473 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9319 4473 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
9320 4473 : if (res) return res;
9321 : }
9322 : }
9323 : break;
9324 : }
9325 33043125 : default:;
9326 : }
9327 33043125 : switch (TREE_CODE (_p1))
9328 : {
9329 15790 : case BIT_AND_EXPR:
9330 15790 : {
9331 15790 : tree _q30 = TREE_OPERAND (_p1, 0);
9332 15790 : tree _q31 = TREE_OPERAND (_p1, 1);
9333 15790 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9334 : {
9335 0 : {
9336 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9337 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
9338 0 : if (res) return res;
9339 : }
9340 : }
9341 15790 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9342 : {
9343 0 : {
9344 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9345 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
9346 0 : if (res) return res;
9347 : }
9348 : }
9349 : break;
9350 : }
9351 33043125 : default:;
9352 : }
9353 33043125 : switch (TREE_CODE (_p0))
9354 : {
9355 4532567 : CASE_CONVERT:
9356 4532567 : {
9357 4532567 : tree _q20 = TREE_OPERAND (_p0, 0);
9358 4532567 : switch (TREE_CODE (_q20))
9359 : {
9360 0 : case BIT_AND_EXPR:
9361 0 : {
9362 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9363 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9364 0 : switch (TREE_CODE (_q30))
9365 : {
9366 0 : CASE_CONVERT:
9367 0 : {
9368 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9369 0 : switch (TREE_CODE (_q31))
9370 : {
9371 0 : case INTEGER_CST:
9372 0 : {
9373 0 : switch (TREE_CODE (_p1))
9374 : {
9375 0 : CASE_CONVERT:
9376 0 : {
9377 0 : tree _q70 = TREE_OPERAND (_p1, 0);
9378 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
9379 : {
9380 0 : {
9381 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
9382 0 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
9383 0 : if (res) return res;
9384 : }
9385 : }
9386 : break;
9387 : }
9388 : default:;
9389 : }
9390 : break;
9391 : }
9392 : default:;
9393 : }
9394 : break;
9395 : }
9396 : default:;
9397 : }
9398 : break;
9399 : }
9400 4532567 : default:;
9401 : }
9402 4532567 : switch (TREE_CODE (_p1))
9403 : {
9404 2838619 : CASE_CONVERT:
9405 2838619 : {
9406 2838619 : tree _q40 = TREE_OPERAND (_p1, 0);
9407 2838619 : switch (TREE_CODE (_q40))
9408 : {
9409 0 : case BIT_AND_EXPR:
9410 0 : {
9411 0 : tree _q50 = TREE_OPERAND (_q40, 0);
9412 0 : tree _q51 = TREE_OPERAND (_q40, 1);
9413 0 : switch (TREE_CODE (_q50))
9414 : {
9415 0 : CASE_CONVERT:
9416 0 : {
9417 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9418 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9419 : {
9420 0 : switch (TREE_CODE (_q51))
9421 : {
9422 0 : case INTEGER_CST:
9423 0 : {
9424 0 : {
9425 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
9426 0 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
9427 0 : if (res) return res;
9428 : }
9429 0 : break;
9430 : }
9431 : default:;
9432 : }
9433 : }
9434 : break;
9435 : }
9436 : default:;
9437 : }
9438 : break;
9439 : }
9440 : default:;
9441 : }
9442 : break;
9443 : }
9444 : default:;
9445 : }
9446 : break;
9447 : }
9448 238346 : case BIT_IOR_EXPR:
9449 238346 : {
9450 238346 : tree _q20 = TREE_OPERAND (_p0, 0);
9451 238346 : tree _q21 = TREE_OPERAND (_p0, 1);
9452 238346 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9453 : {
9454 128 : {
9455 128 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9456 128 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
9457 128 : if (res) return res;
9458 : }
9459 : }
9460 238338 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9461 : {
9462 253 : {
9463 253 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9464 253 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
9465 253 : if (res) return res;
9466 : }
9467 : }
9468 : break;
9469 : }
9470 33043117 : default:;
9471 : }
9472 33043117 : switch (TREE_CODE (_p1))
9473 : {
9474 564 : case BIT_IOR_EXPR:
9475 564 : {
9476 564 : tree _q30 = TREE_OPERAND (_p1, 0);
9477 564 : tree _q31 = TREE_OPERAND (_p1, 1);
9478 564 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9479 : {
9480 0 : {
9481 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
9482 0 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
9483 0 : if (res) return res;
9484 : }
9485 : }
9486 564 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9487 : {
9488 0 : {
9489 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
9490 0 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
9491 0 : if (res) return res;
9492 : }
9493 : }
9494 : break;
9495 : }
9496 33043117 : default:;
9497 : }
9498 33043117 : switch (TREE_CODE (_p0))
9499 : {
9500 4532567 : CASE_CONVERT:
9501 4532567 : {
9502 4532567 : tree _q20 = TREE_OPERAND (_p0, 0);
9503 4532567 : switch (TREE_CODE (_q20))
9504 : {
9505 8 : case BIT_XOR_EXPR:
9506 8 : {
9507 8 : tree _q30 = TREE_OPERAND (_q20, 0);
9508 8 : tree _q31 = TREE_OPERAND (_q20, 1);
9509 8 : switch (TREE_CODE (_q31))
9510 : {
9511 0 : case INTEGER_CST:
9512 0 : {
9513 0 : switch (TREE_CODE (_p1))
9514 : {
9515 0 : case INTEGER_CST:
9516 0 : {
9517 0 : {
9518 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9519 0 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
9520 0 : if (res) return res;
9521 : }
9522 0 : break;
9523 : }
9524 : default:;
9525 : }
9526 : break;
9527 : }
9528 : default:;
9529 : }
9530 : break;
9531 : }
9532 : default:;
9533 : }
9534 : break;
9535 : }
9536 4322 : case BIT_XOR_EXPR:
9537 4322 : {
9538 4322 : tree _q20 = TREE_OPERAND (_p0, 0);
9539 4322 : tree _q21 = TREE_OPERAND (_p0, 1);
9540 4322 : switch (TREE_CODE (_q21))
9541 : {
9542 884 : case INTEGER_CST:
9543 884 : {
9544 884 : switch (TREE_CODE (_p1))
9545 : {
9546 10 : case INTEGER_CST:
9547 10 : {
9548 10 : {
9549 10 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9550 10 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
9551 10 : if (res) return res;
9552 : }
9553 0 : break;
9554 : }
9555 : default:;
9556 : }
9557 : break;
9558 : }
9559 : default:;
9560 : }
9561 : break;
9562 : }
9563 33043107 : default:;
9564 : }
9565 33043107 : {
9566 33043107 : tree _p0_pops[1];
9567 33043107 : if (tree_nop_convert (_p0, _p0_pops))
9568 : {
9569 3819651 : tree _q20 = _p0_pops[0];
9570 3819651 : if (integer_zerop (_p1))
9571 : {
9572 892757 : {
9573 892757 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9574 892757 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
9575 892757 : if (res) return res;
9576 : }
9577 : }
9578 : }
9579 : }
9580 32502103 : if (integer_zerop (_p1))
9581 : {
9582 18059410 : {
9583 18059410 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9584 18059410 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
9585 18059410 : if (res) return res;
9586 : }
9587 : }
9588 32326136 : switch (TREE_CODE (_p0))
9589 : {
9590 1257736 : case BIT_AND_EXPR:
9591 1257736 : {
9592 1257736 : tree _q20 = TREE_OPERAND (_p0, 0);
9593 1257736 : tree _q21 = TREE_OPERAND (_p0, 1);
9594 1257736 : switch (TREE_CODE (_p1))
9595 : {
9596 14364 : case BIT_AND_EXPR:
9597 14364 : {
9598 14364 : tree _q50 = TREE_OPERAND (_p1, 0);
9599 14364 : tree _q51 = TREE_OPERAND (_p1, 1);
9600 14364 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9601 : {
9602 14119 : {
9603 14119 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9604 14119 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR);
9605 14119 : if (res) return res;
9606 : }
9607 : }
9608 245 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9609 : {
9610 2 : {
9611 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9612 2 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR);
9613 2 : if (res) return res;
9614 : }
9615 : }
9616 243 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9617 : {
9618 1 : {
9619 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
9620 1 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR);
9621 1 : if (res) return res;
9622 : }
9623 : }
9624 242 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9625 : {
9626 7 : {
9627 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
9628 7 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR);
9629 7 : if (res) return res;
9630 : }
9631 : }
9632 : break;
9633 : }
9634 1243607 : default:;
9635 : }
9636 1243607 : if (integer_pow2p (_q21))
9637 : {
9638 641802 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9639 : {
9640 579 : {
9641 579 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9642 579 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
9643 579 : if (res) return res;
9644 : }
9645 : }
9646 : }
9647 1243032 : switch (TREE_CODE (_q20))
9648 : {
9649 192953 : CASE_CONVERT:
9650 192953 : {
9651 192953 : tree _q30 = TREE_OPERAND (_q20, 0);
9652 192953 : if (integer_pow2p (_q21))
9653 : {
9654 95620 : if (integer_zerop (_p1))
9655 : {
9656 95525 : {
9657 95525 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
9658 95525 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
9659 95525 : if (res) return res;
9660 : }
9661 : }
9662 : }
9663 : break;
9664 : }
9665 1239124 : default:;
9666 : }
9667 1239124 : if (integer_pow2p (_q21))
9668 : {
9669 637319 : if (integer_zerop (_p1))
9670 : {
9671 633894 : {
9672 633894 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
9673 633894 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
9674 633894 : if (res) return res;
9675 : }
9676 : }
9677 : }
9678 : break;
9679 : }
9680 5406 : case GE_EXPR:
9681 5406 : {
9682 5406 : tree _q20 = TREE_OPERAND (_p0, 0);
9683 5406 : tree _q21 = TREE_OPERAND (_p0, 1);
9684 5406 : if (integer_zerop (_q21))
9685 : {
9686 963 : switch (TREE_CODE (_p1))
9687 : {
9688 1 : case GE_EXPR:
9689 1 : {
9690 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9691 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9692 1 : if (integer_zerop (_q51))
9693 : {
9694 1 : {
9695 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9696 1 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR, LT_EXPR);
9697 1 : if (res) return res;
9698 : }
9699 : }
9700 : break;
9701 : }
9702 3 : case LT_EXPR:
9703 3 : {
9704 3 : tree _q50 = TREE_OPERAND (_p1, 0);
9705 3 : tree _q51 = TREE_OPERAND (_p1, 1);
9706 3 : if (integer_zerop (_q51))
9707 : {
9708 3 : {
9709 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
9710 3 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
9711 3 : if (res) return res;
9712 : }
9713 : }
9714 : break;
9715 : }
9716 : default:;
9717 : }
9718 : }
9719 : break;
9720 : }
9721 15050 : case LT_EXPR:
9722 15050 : {
9723 15050 : tree _q20 = TREE_OPERAND (_p0, 0);
9724 15050 : tree _q21 = TREE_OPERAND (_p0, 1);
9725 15050 : if (integer_zerop (_q21))
9726 : {
9727 8452 : switch (TREE_CODE (_p1))
9728 : {
9729 66 : case LT_EXPR:
9730 66 : {
9731 66 : tree _q50 = TREE_OPERAND (_p1, 0);
9732 66 : tree _q51 = TREE_OPERAND (_p1, 1);
9733 66 : if (integer_zerop (_q51))
9734 : {
9735 66 : {
9736 66 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9737 66 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LT_EXPR);
9738 66 : if (res) return res;
9739 : }
9740 : }
9741 : break;
9742 : }
9743 17 : case GE_EXPR:
9744 17 : {
9745 17 : tree _q50 = TREE_OPERAND (_p1, 0);
9746 17 : tree _q51 = TREE_OPERAND (_p1, 1);
9747 17 : if (integer_zerop (_q51))
9748 : {
9749 17 : {
9750 17 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9751 17 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
9752 17 : if (res) return res;
9753 : }
9754 : }
9755 : break;
9756 : }
9757 : default:;
9758 : }
9759 : }
9760 : break;
9761 : }
9762 238338 : case BIT_IOR_EXPR:
9763 238338 : {
9764 238338 : tree _q20 = TREE_OPERAND (_p0, 0);
9765 238338 : tree _q21 = TREE_OPERAND (_p0, 1);
9766 238338 : switch (TREE_CODE (_q21))
9767 : {
9768 261 : CASE_CONVERT:
9769 261 : {
9770 261 : tree _q40 = TREE_OPERAND (_q21, 0);
9771 261 : switch (TREE_CODE (_q40))
9772 : {
9773 0 : case NE_EXPR:
9774 0 : {
9775 0 : tree _q50 = TREE_OPERAND (_q40, 0);
9776 0 : tree _q51 = TREE_OPERAND (_q40, 1);
9777 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9778 : {
9779 0 : if (integer_zerop (_q51))
9780 : {
9781 0 : if (integer_zerop (_p1))
9782 : {
9783 0 : {
9784 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9785 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
9786 0 : if (res) return res;
9787 : }
9788 : }
9789 : }
9790 : }
9791 : break;
9792 : }
9793 : default:;
9794 : }
9795 : break;
9796 : }
9797 238338 : default:;
9798 : }
9799 238338 : switch (TREE_CODE (_q20))
9800 : {
9801 800 : CASE_CONVERT:
9802 800 : {
9803 800 : tree _q30 = TREE_OPERAND (_q20, 0);
9804 800 : switch (TREE_CODE (_q30))
9805 : {
9806 0 : case NE_EXPR:
9807 0 : {
9808 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9809 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9810 0 : if (integer_zerop (_q41))
9811 : {
9812 0 : if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
9813 : {
9814 0 : if (integer_zerop (_p1))
9815 : {
9816 0 : {
9817 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
9818 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
9819 0 : if (res) return res;
9820 : }
9821 : }
9822 : }
9823 : }
9824 : break;
9825 : }
9826 : default:;
9827 : }
9828 : break;
9829 : }
9830 238338 : default:;
9831 : }
9832 238338 : switch (TREE_CODE (_q21))
9833 : {
9834 24 : case NE_EXPR:
9835 24 : {
9836 24 : tree _q40 = TREE_OPERAND (_q21, 0);
9837 24 : tree _q41 = TREE_OPERAND (_q21, 1);
9838 24 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
9839 : {
9840 0 : if (integer_zerop (_q41))
9841 : {
9842 0 : if (integer_zerop (_p1))
9843 : {
9844 0 : {
9845 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9846 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
9847 0 : if (res) return res;
9848 : }
9849 : }
9850 : }
9851 : }
9852 : break;
9853 : }
9854 238338 : default:;
9855 : }
9856 238338 : switch (TREE_CODE (_q20))
9857 : {
9858 2 : case NE_EXPR:
9859 2 : {
9860 2 : tree _q30 = TREE_OPERAND (_q20, 0);
9861 2 : tree _q31 = TREE_OPERAND (_q20, 1);
9862 2 : if (integer_zerop (_q31))
9863 : {
9864 1 : if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
9865 : {
9866 0 : if (integer_zerop (_p1))
9867 : {
9868 0 : {
9869 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
9870 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
9871 0 : if (res) return res;
9872 : }
9873 : }
9874 : }
9875 : }
9876 : break;
9877 : }
9878 : default:;
9879 : }
9880 : break;
9881 : }
9882 3991563 : CASE_CONVERT:
9883 3991563 : {
9884 3991563 : tree _q20 = TREE_OPERAND (_p0, 0);
9885 3991563 : switch (TREE_CODE (_q20))
9886 : {
9887 2741603 : case ADDR_EXPR:
9888 2741603 : {
9889 2741603 : switch (TREE_CODE (_p1))
9890 : {
9891 2712307 : CASE_CONVERT:
9892 2712307 : {
9893 2712307 : tree _q40 = TREE_OPERAND (_p1, 0);
9894 2712307 : switch (TREE_CODE (_q40))
9895 : {
9896 2712307 : case ADDR_EXPR:
9897 2712307 : {
9898 2712307 : {
9899 2712307 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
9900 2712307 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
9901 2712307 : if (res) return res;
9902 : }
9903 33 : break;
9904 : }
9905 : default:;
9906 : }
9907 : break;
9908 : }
9909 21265 : case ADDR_EXPR:
9910 21265 : {
9911 21265 : {
9912 21265 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9913 21265 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
9914 21265 : if (res) return res;
9915 : }
9916 7935 : break;
9917 : }
9918 : default:;
9919 : }
9920 : break;
9921 : }
9922 : default:;
9923 : }
9924 : break;
9925 : }
9926 60114 : case ADDR_EXPR:
9927 60114 : {
9928 60114 : switch (TREE_CODE (_p1))
9929 : {
9930 203 : CASE_CONVERT:
9931 203 : {
9932 203 : tree _q30 = TREE_OPERAND (_p1, 0);
9933 203 : switch (TREE_CODE (_q30))
9934 : {
9935 203 : case ADDR_EXPR:
9936 203 : {
9937 203 : {
9938 203 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
9939 203 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, NE_EXPR);
9940 203 : if (res) return res;
9941 : }
9942 143 : break;
9943 : }
9944 : default:;
9945 : }
9946 : break;
9947 : }
9948 51732 : case ADDR_EXPR:
9949 51732 : {
9950 51732 : {
9951 51732 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9952 51732 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, NE_EXPR);
9953 51732 : if (res) return res;
9954 : }
9955 3852 : break;
9956 : }
9957 : default:;
9958 : }
9959 : break;
9960 : }
9961 29521320 : default:;
9962 : }
9963 29521320 : {
9964 29521320 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9965 29521320 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, NE_EXPR);
9966 29521320 : if (res) return res;
9967 : }
9968 29512068 : switch (TREE_CODE (_p0))
9969 : {
9970 1265959 : CASE_CONVERT:
9971 1265959 : {
9972 1265959 : tree _q20 = TREE_OPERAND (_p0, 0);
9973 1265959 : switch (TREE_CODE (_p1))
9974 : {
9975 809623 : case INTEGER_CST:
9976 809623 : {
9977 809623 : {
9978 809623 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9979 809623 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR);
9980 809623 : if (res) return res;
9981 : }
9982 801112 : break;
9983 : }
9984 1257448 : default:;
9985 : }
9986 1257448 : switch (TREE_CODE (_q20))
9987 : {
9988 8 : case NE_EXPR:
9989 8 : {
9990 8 : tree _q30 = TREE_OPERAND (_q20, 0);
9991 8 : tree _q31 = TREE_OPERAND (_q20, 1);
9992 8 : switch (TREE_CODE (_q31))
9993 : {
9994 8 : case INTEGER_CST:
9995 8 : {
9996 8 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9997 : {
9998 0 : {
9999 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10000 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
10001 0 : if (res) return res;
10002 : }
10003 : }
10004 : break;
10005 : }
10006 : default:;
10007 : }
10008 : break;
10009 : }
10010 0 : case EQ_EXPR:
10011 0 : {
10012 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10013 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10014 0 : switch (TREE_CODE (_q31))
10015 : {
10016 0 : case INTEGER_CST:
10017 0 : {
10018 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10019 : {
10020 0 : {
10021 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10022 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
10023 0 : if (res) return res;
10024 : }
10025 : }
10026 : break;
10027 : }
10028 : default:;
10029 : }
10030 : break;
10031 : }
10032 : default:;
10033 : }
10034 : break;
10035 : }
10036 29503557 : default:;
10037 : }
10038 29503557 : switch (TREE_CODE (_p1))
10039 : {
10040 519128 : CASE_CONVERT:
10041 519128 : {
10042 519128 : tree _q30 = TREE_OPERAND (_p1, 0);
10043 519128 : switch (TREE_CODE (_q30))
10044 : {
10045 0 : case NE_EXPR:
10046 0 : {
10047 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10048 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10049 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10050 : {
10051 0 : switch (TREE_CODE (_q41))
10052 : {
10053 0 : case INTEGER_CST:
10054 0 : {
10055 0 : {
10056 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10057 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
10058 0 : if (res) return res;
10059 : }
10060 0 : break;
10061 : }
10062 : default:;
10063 : }
10064 : }
10065 : break;
10066 : }
10067 0 : case EQ_EXPR:
10068 0 : {
10069 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10070 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10071 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10072 : {
10073 0 : switch (TREE_CODE (_q41))
10074 : {
10075 0 : case INTEGER_CST:
10076 0 : {
10077 0 : {
10078 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10079 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
10080 0 : if (res) return res;
10081 : }
10082 0 : break;
10083 : }
10084 : default:;
10085 : }
10086 : }
10087 : break;
10088 : }
10089 : default:;
10090 : }
10091 : break;
10092 : }
10093 29503557 : default:;
10094 : }
10095 29503557 : if (integer_zerop (_p1))
10096 : {
10097 17857654 : {
10098 17857654 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10099 17857654 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
10100 17857654 : && types_match (type, TREE_TYPE (captures[0]))
10101 : )
10102 : {
10103 3324098 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1560;
10104 3324098 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1560;
10105 3324098 : {
10106 3324098 : tree res_op0;
10107 3324098 : res_op0 = captures[0];
10108 3324098 : tree _r;
10109 3324098 : _r = non_lvalue_loc (loc, res_op0);
10110 3324098 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
10111 3324098 : return _r;
10112 : }
10113 : next_after_fail1560:;
10114 : }
10115 : }
10116 : }
10117 26179459 : switch (TREE_CODE (_p0))
10118 : {
10119 958566 : case BIT_AND_EXPR:
10120 958566 : {
10121 958566 : tree _q20 = TREE_OPERAND (_p0, 0);
10122 958566 : tree _q21 = TREE_OPERAND (_p0, 1);
10123 958566 : switch (TREE_CODE (_q21))
10124 : {
10125 2054 : case VECTOR_CST:
10126 2054 : {
10127 2054 : if (integer_zerop (_p1))
10128 : {
10129 2054 : {
10130 2054 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10131 2054 : const enum tree_code cmp = NE_EXPR;
10132 2054 : const enum tree_code icmp = GT_EXPR;
10133 2054 : {
10134 2054 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10135 2054 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10136 : )
10137 : {
10138 13 : {
10139 13 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10140 13 : ? optab_vector : optab_default;
10141 13 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10142 13 : if (target_supports_op_p (utype, icmp, optab)
10143 13 : || (optimize_vectors_before_lowering_p ()
10144 7 : && (!target_supports_op_p (type, cmp, optab)
10145 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10146 : )
10147 : {
10148 7 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10149 : )
10150 : {
10151 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1561;
10152 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1561;
10153 0 : {
10154 0 : tree res_op0;
10155 0 : res_op0 = captures[1];
10156 0 : tree res_op1;
10157 0 : res_op1 = csts;
10158 0 : tree _r;
10159 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10160 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10161 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10162 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
10163 0 : return _r;
10164 : }
10165 2047 : next_after_fail1561:;
10166 : }
10167 : else
10168 : {
10169 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1562;
10170 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1562;
10171 7 : {
10172 7 : tree res_op0;
10173 7 : {
10174 7 : tree _o1[1], _r1;
10175 7 : _o1[0] = captures[1];
10176 7 : if (TREE_TYPE (_o1[0]) != utype)
10177 : {
10178 7 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10179 : }
10180 : else
10181 : _r1 = _o1[0];
10182 7 : res_op0 = _r1;
10183 : }
10184 7 : tree res_op1;
10185 7 : res_op1 = csts;
10186 7 : tree _r;
10187 7 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10188 7 : if (TREE_SIDE_EFFECTS (captures[2]))
10189 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10190 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
10191 7 : return _r;
10192 : }
10193 2047 : next_after_fail1562:;
10194 : }
10195 : }
10196 : }
10197 : }
10198 : }
10199 : }
10200 : }
10201 : break;
10202 : }
10203 763528 : case INTEGER_CST:
10204 763528 : {
10205 763528 : if (integer_zerop (_p1))
10206 : {
10207 728057 : {
10208 728057 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10209 728057 : const enum tree_code cmp = NE_EXPR;
10210 728057 : const enum tree_code icmp = GT_EXPR;
10211 728057 : {
10212 728057 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10213 728057 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10214 : )
10215 : {
10216 1261 : {
10217 1261 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10218 1261 : ? optab_vector : optab_default;
10219 1261 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10220 1261 : if (target_supports_op_p (utype, icmp, optab)
10221 1261 : || (optimize_vectors_before_lowering_p ()
10222 1092 : && (!target_supports_op_p (type, cmp, optab)
10223 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10224 : )
10225 : {
10226 1092 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10227 : )
10228 : {
10229 989 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1563;
10230 989 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1563;
10231 989 : {
10232 989 : tree res_op0;
10233 989 : res_op0 = captures[1];
10234 989 : tree res_op1;
10235 989 : res_op1 = csts;
10236 989 : tree _r;
10237 989 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10238 989 : if (TREE_SIDE_EFFECTS (captures[2]))
10239 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10240 989 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
10241 989 : return _r;
10242 : }
10243 726965 : next_after_fail1563:;
10244 : }
10245 : else
10246 : {
10247 103 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1564;
10248 103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1564;
10249 103 : {
10250 103 : tree res_op0;
10251 103 : {
10252 103 : tree _o1[1], _r1;
10253 103 : _o1[0] = captures[1];
10254 103 : if (TREE_TYPE (_o1[0]) != utype)
10255 : {
10256 103 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10257 : }
10258 : else
10259 : _r1 = _o1[0];
10260 103 : res_op0 = _r1;
10261 : }
10262 103 : tree res_op1;
10263 103 : res_op1 = csts;
10264 103 : tree _r;
10265 103 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10266 103 : if (TREE_SIDE_EFFECTS (captures[2]))
10267 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10268 103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
10269 103 : return _r;
10270 : }
10271 726965 : next_after_fail1564:;
10272 : }
10273 : }
10274 : }
10275 : }
10276 : }
10277 : }
10278 : }
10279 : break;
10280 : }
10281 957467 : default:;
10282 : }
10283 957467 : switch (TREE_CODE (_q20))
10284 : {
10285 0 : case VECTOR_CST:
10286 0 : {
10287 0 : if (integer_zerop (_p1))
10288 : {
10289 0 : {
10290 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10291 0 : const enum tree_code cmp = NE_EXPR;
10292 0 : const enum tree_code icmp = GT_EXPR;
10293 0 : {
10294 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10295 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10296 : )
10297 : {
10298 0 : {
10299 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10300 0 : ? optab_vector : optab_default;
10301 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10302 0 : if (target_supports_op_p (utype, icmp, optab)
10303 0 : || (optimize_vectors_before_lowering_p ()
10304 0 : && (!target_supports_op_p (type, cmp, optab)
10305 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10306 : )
10307 : {
10308 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10309 : )
10310 : {
10311 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1565;
10312 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1565;
10313 0 : {
10314 0 : tree res_op0;
10315 0 : res_op0 = captures[1];
10316 0 : tree res_op1;
10317 0 : res_op1 = csts;
10318 0 : tree _r;
10319 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10320 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10321 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10322 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
10323 0 : return _r;
10324 : }
10325 0 : next_after_fail1565:;
10326 : }
10327 : else
10328 : {
10329 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1566;
10330 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1566;
10331 0 : {
10332 0 : tree res_op0;
10333 0 : {
10334 0 : tree _o1[1], _r1;
10335 0 : _o1[0] = captures[1];
10336 0 : if (TREE_TYPE (_o1[0]) != utype)
10337 : {
10338 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10339 : }
10340 : else
10341 : _r1 = _o1[0];
10342 0 : res_op0 = _r1;
10343 : }
10344 0 : tree res_op1;
10345 0 : res_op1 = csts;
10346 0 : tree _r;
10347 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10348 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10349 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10350 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
10351 0 : return _r;
10352 : }
10353 0 : next_after_fail1566:;
10354 : }
10355 : }
10356 : }
10357 : }
10358 : }
10359 : }
10360 : }
10361 : break;
10362 : }
10363 0 : case INTEGER_CST:
10364 0 : {
10365 0 : if (integer_zerop (_p1))
10366 : {
10367 0 : {
10368 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10369 0 : const enum tree_code cmp = NE_EXPR;
10370 0 : const enum tree_code icmp = GT_EXPR;
10371 0 : {
10372 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10373 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10374 : )
10375 : {
10376 0 : {
10377 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10378 0 : ? optab_vector : optab_default;
10379 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10380 0 : if (target_supports_op_p (utype, icmp, optab)
10381 0 : || (optimize_vectors_before_lowering_p ()
10382 0 : && (!target_supports_op_p (type, cmp, optab)
10383 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10384 : )
10385 : {
10386 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10387 : )
10388 : {
10389 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1567;
10390 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1567;
10391 0 : {
10392 0 : tree res_op0;
10393 0 : res_op0 = captures[1];
10394 0 : tree res_op1;
10395 0 : res_op1 = csts;
10396 0 : tree _r;
10397 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10398 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10399 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10400 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
10401 0 : return _r;
10402 : }
10403 0 : next_after_fail1567:;
10404 : }
10405 : else
10406 : {
10407 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1568;
10408 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1568;
10409 0 : {
10410 0 : tree res_op0;
10411 0 : {
10412 0 : tree _o1[1], _r1;
10413 0 : _o1[0] = captures[1];
10414 0 : if (TREE_TYPE (_o1[0]) != utype)
10415 : {
10416 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10417 : }
10418 : else
10419 : _r1 = _o1[0];
10420 0 : res_op0 = _r1;
10421 : }
10422 0 : tree res_op1;
10423 0 : res_op1 = csts;
10424 0 : tree _r;
10425 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10426 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10427 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10428 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
10429 0 : return _r;
10430 : }
10431 0 : next_after_fail1568:;
10432 : }
10433 : }
10434 : }
10435 : }
10436 : }
10437 : }
10438 : }
10439 : break;
10440 : }
10441 : default:;
10442 : }
10443 : break;
10444 : }
10445 20315 : case RSHIFT_EXPR:
10446 20315 : {
10447 20315 : tree _q20 = TREE_OPERAND (_p0, 0);
10448 20315 : tree _q21 = TREE_OPERAND (_p0, 1);
10449 20315 : switch (TREE_CODE (_q20))
10450 : {
10451 1 : case MULT_EXPR:
10452 1 : {
10453 1 : tree _q30 = TREE_OPERAND (_q20, 0);
10454 1 : tree _q31 = TREE_OPERAND (_q20, 1);
10455 1 : switch (TREE_CODE (_q30))
10456 : {
10457 1 : CASE_CONVERT:
10458 1 : {
10459 1 : tree _q40 = TREE_OPERAND (_q30, 0);
10460 1 : switch (TREE_CODE (_q31))
10461 : {
10462 1 : CASE_CONVERT:
10463 1 : {
10464 1 : tree _q60 = TREE_OPERAND (_q31, 0);
10465 1 : switch (TREE_CODE (_q21))
10466 : {
10467 1 : case INTEGER_CST:
10468 1 : {
10469 1 : if (integer_zerop (_p1))
10470 : {
10471 1 : {
10472 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
10473 1 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR);
10474 1 : if (res) return res;
10475 : }
10476 : }
10477 : break;
10478 : }
10479 : default:;
10480 : }
10481 : break;
10482 : }
10483 : default:;
10484 : }
10485 : break;
10486 : }
10487 : default:;
10488 : }
10489 : break;
10490 : }
10491 : default:;
10492 : }
10493 : break;
10494 : }
10495 1301969 : case PLUS_EXPR:
10496 1301969 : {
10497 1301969 : tree _q20 = TREE_OPERAND (_p0, 0);
10498 1301969 : tree _q21 = TREE_OPERAND (_p0, 1);
10499 1301969 : switch (TREE_CODE (_q21))
10500 : {
10501 1192994 : case INTEGER_CST:
10502 1192994 : {
10503 1192994 : switch (TREE_CODE (_p1))
10504 : {
10505 707541 : case INTEGER_CST:
10506 707541 : {
10507 707541 : {
10508 707541 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10509 707541 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
10510 707541 : if (res) return res;
10511 : }
10512 355 : break;
10513 : }
10514 : default:;
10515 : }
10516 : break;
10517 : }
10518 : default:;
10519 : }
10520 : break;
10521 : }
10522 68734 : case MINUS_EXPR:
10523 68734 : {
10524 68734 : tree _q20 = TREE_OPERAND (_p0, 0);
10525 68734 : tree _q21 = TREE_OPERAND (_p0, 1);
10526 68734 : switch (TREE_CODE (_q21))
10527 : {
10528 193 : case INTEGER_CST:
10529 193 : {
10530 193 : switch (TREE_CODE (_p1))
10531 : {
10532 72 : case INTEGER_CST:
10533 72 : {
10534 72 : {
10535 72 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10536 72 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
10537 72 : if (res) return res;
10538 : }
10539 72 : break;
10540 : }
10541 : default:;
10542 : }
10543 : break;
10544 : }
10545 68734 : default:;
10546 : }
10547 68734 : switch (TREE_CODE (_q20))
10548 : {
10549 1728 : case INTEGER_CST:
10550 1728 : {
10551 1728 : switch (TREE_CODE (_p1))
10552 : {
10553 72 : case INTEGER_CST:
10554 72 : {
10555 72 : {
10556 72 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10557 72 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
10558 72 : if (res) return res;
10559 : }
10560 0 : break;
10561 : }
10562 : default:;
10563 : }
10564 : break;
10565 : }
10566 : default:;
10567 : }
10568 : break;
10569 : }
10570 2324234 : case CALL_EXPR:
10571 2324234 : switch (get_call_combined_fn (_p0))
10572 : {
10573 224 : case CFN_BUILT_IN_CLZ:
10574 224 : if (call_expr_nargs (_p0) == 1)
10575 : {
10576 224 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10577 224 : switch (TREE_CODE (_p1))
10578 : {
10579 210 : case INTEGER_CST:
10580 210 : {
10581 210 : {
10582 210 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10583 210 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ);
10584 210 : if (res) return res;
10585 : }
10586 135 : break;
10587 : }
10588 : default:;
10589 : }
10590 : }
10591 : break;
10592 246 : case CFN_BUILT_IN_CTZ:
10593 246 : if (call_expr_nargs (_p0) == 1)
10594 : {
10595 246 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10596 246 : switch (TREE_CODE (_p1))
10597 : {
10598 200 : case INTEGER_CST:
10599 200 : {
10600 200 : {
10601 200 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10602 200 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZ);
10603 200 : if (res) return res;
10604 : }
10605 0 : break;
10606 : }
10607 : default:;
10608 : }
10609 : }
10610 : break;
10611 31 : case CFN_BUILT_IN_FFS:
10612 31 : if (call_expr_nargs (_p0) == 1)
10613 : {
10614 31 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10615 31 : switch (TREE_CODE (_p1))
10616 : {
10617 11 : case INTEGER_CST:
10618 11 : {
10619 11 : {
10620 11 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10621 11 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFS);
10622 11 : if (res) return res;
10623 : }
10624 0 : break;
10625 : }
10626 : default:;
10627 : }
10628 : }
10629 : break;
10630 0 : case CFN_REDUC_IOR:
10631 0 : if (call_expr_nargs (_p0) == 1)
10632 : {
10633 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10634 0 : if (integer_zerop (_p1))
10635 : {
10636 0 : {
10637 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10638 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, NE_EXPR);
10639 0 : if (res) return res;
10640 : }
10641 : }
10642 : }
10643 : break;
10644 0 : case CFN_BUILT_IN_FFSIMAX:
10645 0 : if (call_expr_nargs (_p0) == 1)
10646 : {
10647 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10648 0 : switch (TREE_CODE (_p1))
10649 : {
10650 0 : case INTEGER_CST:
10651 0 : {
10652 0 : {
10653 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10654 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX);
10655 0 : if (res) return res;
10656 : }
10657 0 : break;
10658 : }
10659 : default:;
10660 : }
10661 : }
10662 : break;
10663 13 : case CFN_BUILT_IN_POPCOUNT:
10664 13 : if (call_expr_nargs (_p0) == 1)
10665 : {
10666 13 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10667 13 : if (integer_zerop (_p1))
10668 : {
10669 1 : {
10670 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10671 1 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
10672 1 : if (res) return res;
10673 : }
10674 : }
10675 : }
10676 : break;
10677 87 : case CFN_BUILT_IN_CLZL:
10678 87 : if (call_expr_nargs (_p0) == 1)
10679 : {
10680 87 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10681 87 : switch (TREE_CODE (_p1))
10682 : {
10683 79 : case INTEGER_CST:
10684 79 : {
10685 79 : {
10686 79 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10687 79 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL);
10688 79 : if (res) return res;
10689 : }
10690 43 : break;
10691 : }
10692 : default:;
10693 : }
10694 : }
10695 : break;
10696 85 : case CFN_BUILT_IN_CTZL:
10697 85 : if (call_expr_nargs (_p0) == 1)
10698 : {
10699 85 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10700 85 : switch (TREE_CODE (_p1))
10701 : {
10702 77 : case INTEGER_CST:
10703 77 : {
10704 77 : {
10705 77 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10706 77 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZL);
10707 77 : if (res) return res;
10708 : }
10709 16 : break;
10710 : }
10711 : default:;
10712 : }
10713 : }
10714 : break;
10715 8 : case CFN_BUILT_IN_FFSL:
10716 8 : if (call_expr_nargs (_p0) == 1)
10717 : {
10718 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10719 8 : switch (TREE_CODE (_p1))
10720 : {
10721 0 : case INTEGER_CST:
10722 0 : {
10723 0 : {
10724 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10725 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSL);
10726 0 : if (res) return res;
10727 : }
10728 0 : break;
10729 : }
10730 : default:;
10731 : }
10732 : }
10733 : break;
10734 11 : case CFN_BUILT_IN_POPCOUNTLL:
10735 11 : if (call_expr_nargs (_p0) == 1)
10736 : {
10737 11 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10738 11 : if (integer_zerop (_p1))
10739 : {
10740 1 : {
10741 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10742 1 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10743 1 : if (res) return res;
10744 : }
10745 : }
10746 : }
10747 : break;
10748 0 : case CFN_BUILT_IN_CTZIMAX:
10749 0 : if (call_expr_nargs (_p0) == 1)
10750 : {
10751 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10752 0 : switch (TREE_CODE (_p1))
10753 : {
10754 0 : case INTEGER_CST:
10755 0 : {
10756 0 : {
10757 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10758 0 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
10759 0 : if (res) return res;
10760 : }
10761 0 : break;
10762 : }
10763 : default:;
10764 : }
10765 : }
10766 : break;
10767 0 : case CFN_POPCOUNT:
10768 0 : if (call_expr_nargs (_p0) == 1)
10769 : {
10770 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10771 0 : if (integer_zerop (_p1))
10772 : {
10773 0 : {
10774 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10775 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT);
10776 0 : if (res) return res;
10777 : }
10778 : }
10779 : }
10780 : break;
10781 0 : case CFN_CLZ:
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 INTEGER_CST:
10788 0 : {
10789 0 : {
10790 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10791 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_CLZ);
10792 0 : if (res) return res;
10793 : }
10794 0 : break;
10795 : }
10796 : default:;
10797 : }
10798 : }
10799 0 : if (call_expr_nargs (_p0) == 2)
10800 : {
10801 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10802 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10803 0 : switch (TREE_CODE (_p1))
10804 : {
10805 0 : case INTEGER_CST:
10806 0 : {
10807 0 : {
10808 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10809 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
10810 0 : if (res) return res;
10811 : }
10812 0 : break;
10813 : }
10814 : default:;
10815 : }
10816 : }
10817 : break;
10818 0 : case CFN_CTZ:
10819 0 : if (call_expr_nargs (_p0) == 1)
10820 : {
10821 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10822 0 : switch (TREE_CODE (_p1))
10823 : {
10824 0 : case INTEGER_CST:
10825 0 : {
10826 0 : {
10827 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10828 0 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_CTZ);
10829 0 : if (res) return res;
10830 : }
10831 0 : break;
10832 : }
10833 : default:;
10834 : }
10835 : }
10836 0 : if (call_expr_nargs (_p0) == 2)
10837 : {
10838 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10839 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10840 0 : switch (TREE_CODE (_p1))
10841 : {
10842 0 : case INTEGER_CST:
10843 0 : {
10844 0 : {
10845 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10846 0 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
10847 0 : if (res) return res;
10848 : }
10849 0 : break;
10850 : }
10851 : default:;
10852 : }
10853 : }
10854 : break;
10855 0 : case CFN_FFS:
10856 0 : if (call_expr_nargs (_p0) == 1)
10857 : {
10858 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10859 0 : switch (TREE_CODE (_p1))
10860 : {
10861 0 : case INTEGER_CST:
10862 0 : {
10863 0 : {
10864 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10865 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_FFS);
10866 0 : if (res) return res;
10867 : }
10868 0 : break;
10869 : }
10870 : default:;
10871 : }
10872 : }
10873 : break;
10874 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10875 0 : if (call_expr_nargs (_p0) == 1)
10876 : {
10877 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10878 0 : if (integer_zerop (_p1))
10879 : {
10880 0 : {
10881 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10882 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10883 0 : if (res) return res;
10884 : }
10885 : }
10886 : }
10887 : break;
10888 0 : case CFN_BUILT_IN_CLZIMAX:
10889 0 : if (call_expr_nargs (_p0) == 1)
10890 : {
10891 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10892 0 : switch (TREE_CODE (_p1))
10893 : {
10894 0 : case INTEGER_CST:
10895 0 : {
10896 0 : {
10897 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10898 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX);
10899 0 : if (res) return res;
10900 : }
10901 0 : break;
10902 : }
10903 : default:;
10904 : }
10905 : }
10906 : break;
10907 12 : case CFN_BUILT_IN_POPCOUNTL:
10908 12 : if (call_expr_nargs (_p0) == 1)
10909 : {
10910 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10911 12 : if (integer_zerop (_p1))
10912 : {
10913 1 : {
10914 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10915 1 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
10916 1 : if (res) return res;
10917 : }
10918 : }
10919 : }
10920 : break;
10921 52 : case CFN_BUILT_IN_CLZLL:
10922 52 : if (call_expr_nargs (_p0) == 1)
10923 : {
10924 52 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10925 52 : switch (TREE_CODE (_p1))
10926 : {
10927 42 : case INTEGER_CST:
10928 42 : {
10929 42 : {
10930 42 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10931 42 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL);
10932 42 : if (res) return res;
10933 : }
10934 18 : break;
10935 : }
10936 : default:;
10937 : }
10938 : }
10939 : break;
10940 74 : case CFN_BUILT_IN_CTZLL:
10941 74 : if (call_expr_nargs (_p0) == 1)
10942 : {
10943 74 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10944 74 : switch (TREE_CODE (_p1))
10945 : {
10946 64 : case INTEGER_CST:
10947 64 : {
10948 64 : {
10949 64 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10950 64 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZLL);
10951 64 : if (res) return res;
10952 : }
10953 16 : break;
10954 : }
10955 : default:;
10956 : }
10957 : }
10958 : break;
10959 11 : case CFN_BUILT_IN_FFSLL:
10960 11 : if (call_expr_nargs (_p0) == 1)
10961 : {
10962 11 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10963 11 : switch (TREE_CODE (_p1))
10964 : {
10965 1 : case INTEGER_CST:
10966 1 : {
10967 1 : {
10968 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10969 1 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSLL);
10970 1 : if (res) return res;
10971 : }
10972 0 : break;
10973 : }
10974 : default:;
10975 : }
10976 : }
10977 : break;
10978 : default:;
10979 : }
10980 : break;
10981 : default:;
10982 : }
10983 : return NULL_TREE;
10984 : }
10985 :
10986 : tree
10987 390879 : generic_simplify_VEC_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
10988 : {
10989 390879 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10990 390879 : switch (TREE_CODE (_p0))
10991 : {
10992 1355 : case NE_EXPR:
10993 1355 : {
10994 1355 : tree _q20 = TREE_OPERAND (_p0, 0);
10995 1355 : tree _q21 = TREE_OPERAND (_p0, 1);
10996 1355 : if (uniform_integer_cst_p (_q21))
10997 : {
10998 431 : switch (TREE_CODE (_p1))
10999 : {
11000 35 : case PLUS_EXPR:
11001 35 : {
11002 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11003 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11004 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11005 : {
11006 24 : if (uniform_integer_cst_p (_q51))
11007 : {
11008 24 : if (uniform_integer_cst_p (_p2))
11009 : {
11010 24 : {
11011 24 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11012 24 : {
11013 24 : tree cst1 = uniform_integer_cst_p (captures[1]);
11014 24 : tree cst2 = uniform_integer_cst_p (captures[3]);
11015 24 : tree cst3 = uniform_integer_cst_p (captures[4]);
11016 24 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
11017 : )
11018 : {
11019 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1886;
11020 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1886;
11021 18 : {
11022 18 : tree _r;
11023 18 : _r = captures[2];
11024 18 : if (TREE_SIDE_EFFECTS (captures[1]))
11025 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11026 18 : if (TREE_SIDE_EFFECTS (captures[4]))
11027 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11028 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
11029 18 : return _r;
11030 : }
11031 6 : next_after_fail1886:;
11032 : }
11033 : }
11034 : }
11035 : }
11036 : }
11037 : }
11038 : break;
11039 : }
11040 : default:;
11041 : }
11042 : }
11043 : break;
11044 : }
11045 16507 : case VECTOR_CST:
11046 16507 : {
11047 16507 : {
11048 16507 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11049 16507 : if (integer_all_onesp (captures[0])
11050 : )
11051 : {
11052 3743 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1887;
11053 3743 : {
11054 3743 : tree _r;
11055 3743 : _r = captures[1];
11056 3743 : if (TREE_SIDE_EFFECTS (captures[0]))
11057 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11058 3743 : if (TREE_SIDE_EFFECTS (captures[2]))
11059 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11060 3743 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
11061 3743 : return _r;
11062 : }
11063 0 : next_after_fail1887:;
11064 : }
11065 : else
11066 : {
11067 12764 : if (integer_zerop (captures[0])
11068 : )
11069 : {
11070 1998 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1888;
11071 1998 : {
11072 1998 : tree _r;
11073 1998 : _r = captures[2];
11074 1998 : if (TREE_SIDE_EFFECTS (captures[0]))
11075 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11076 1998 : if (TREE_SIDE_EFFECTS (captures[1]))
11077 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11078 1998 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
11079 1998 : return _r;
11080 : }
11081 0 : next_after_fail1888:;
11082 : }
11083 : }
11084 : }
11085 10766 : break;
11086 : }
11087 385120 : default:;
11088 : }
11089 385120 : switch (TREE_CODE (_p1))
11090 : {
11091 321787 : case VECTOR_CST:
11092 321787 : {
11093 321787 : switch (TREE_CODE (_p2))
11094 : {
11095 311826 : case VECTOR_CST:
11096 311826 : {
11097 311826 : {
11098 311826 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11099 311826 : if (VECTOR_BOOLEAN_TYPE_P (type)
11100 311964 : && types_match (type, TREE_TYPE (captures[0]))
11101 : )
11102 : {
11103 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11104 : )
11105 : {
11106 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1889;
11107 28 : {
11108 28 : tree res_op0;
11109 28 : res_op0 = captures[0];
11110 28 : tree _r;
11111 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11112 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11113 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11114 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11115 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11116 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
11117 28 : return _r;
11118 : }
11119 0 : next_after_fail1889:;
11120 : }
11121 : else
11122 : {
11123 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11124 : )
11125 : {
11126 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1890;
11127 73 : {
11128 73 : tree _r;
11129 73 : _r = captures[0];
11130 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11131 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11132 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11133 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11134 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
11135 73 : return _r;
11136 : }
11137 0 : next_after_fail1890:;
11138 : }
11139 : }
11140 : }
11141 : }
11142 311725 : break;
11143 : }
11144 : default:;
11145 : }
11146 : break;
11147 : }
11148 385019 : default:;
11149 : }
11150 385019 : switch (TREE_CODE (_p0))
11151 : {
11152 1335 : case NE_EXPR:
11153 1335 : {
11154 1335 : tree _q20 = TREE_OPERAND (_p0, 0);
11155 1335 : tree _q21 = TREE_OPERAND (_p0, 1);
11156 1335 : switch (TREE_CODE (_p1))
11157 : {
11158 6 : case MINUS_EXPR:
11159 6 : {
11160 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11161 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11162 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11163 : {
11164 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11165 : {
11166 6 : if (integer_zerop (_p2))
11167 : {
11168 6 : {
11169 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11170 6 : tree res = generic_simplify_538 (loc, type, _p0, _p1, _p2, captures);
11171 6 : if (res) return res;
11172 : }
11173 : }
11174 : }
11175 : }
11176 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11177 : {
11178 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11179 : {
11180 0 : if (integer_zerop (_p2))
11181 : {
11182 0 : {
11183 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11184 0 : tree res = generic_simplify_538 (loc, type, _p0, _p1, _p2, captures);
11185 0 : if (res) return res;
11186 : }
11187 : }
11188 : }
11189 : }
11190 : break;
11191 : }
11192 6 : case BIT_XOR_EXPR:
11193 6 : {
11194 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11195 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11196 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11197 : {
11198 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11199 : {
11200 6 : if (integer_zerop (_p2))
11201 : {
11202 6 : {
11203 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11204 6 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures);
11205 6 : if (res) return res;
11206 : }
11207 : }
11208 : }
11209 : }
11210 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11211 : {
11212 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11213 : {
11214 0 : if (integer_zerop (_p2))
11215 : {
11216 0 : {
11217 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11218 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures);
11219 0 : if (res) return res;
11220 : }
11221 : }
11222 : }
11223 : }
11224 : break;
11225 : }
11226 6 : case BIT_AND_EXPR:
11227 6 : {
11228 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11229 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11230 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11231 : {
11232 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11233 : {
11234 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11235 : {
11236 6 : {
11237 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11238 6 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11239 6 : if (res) return res;
11240 : }
11241 : }
11242 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11243 : {
11244 0 : {
11245 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11246 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11247 0 : if (res) return res;
11248 : }
11249 : }
11250 : }
11251 : }
11252 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11253 : {
11254 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11255 : {
11256 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11257 : {
11258 0 : {
11259 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11260 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11261 0 : if (res) return res;
11262 : }
11263 : }
11264 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11265 : {
11266 0 : {
11267 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11268 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11269 0 : if (res) return res;
11270 : }
11271 : }
11272 : }
11273 : }
11274 : break;
11275 : }
11276 6 : case BIT_IOR_EXPR:
11277 6 : {
11278 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11279 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11280 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11281 : {
11282 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11283 : {
11284 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11285 : {
11286 6 : {
11287 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11288 6 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11289 6 : if (res) return res;
11290 : }
11291 : }
11292 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11293 : {
11294 0 : {
11295 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11296 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11297 0 : if (res) return res;
11298 : }
11299 : }
11300 : }
11301 : }
11302 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11303 : {
11304 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11305 : {
11306 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11307 : {
11308 0 : {
11309 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11310 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11311 0 : if (res) return res;
11312 : }
11313 : }
11314 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11315 : {
11316 0 : {
11317 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11318 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11319 0 : if (res) return res;
11320 : }
11321 : }
11322 : }
11323 : }
11324 : break;
11325 : }
11326 0 : case MIN_EXPR:
11327 0 : {
11328 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11329 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11330 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11331 : {
11332 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11333 : {
11334 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11335 : {
11336 0 : {
11337 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11338 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11339 0 : if (res) return res;
11340 : }
11341 : }
11342 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11343 : {
11344 0 : {
11345 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11346 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11347 0 : if (res) return res;
11348 : }
11349 : }
11350 : }
11351 : }
11352 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11353 : {
11354 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11355 : {
11356 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11357 : {
11358 0 : {
11359 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11360 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11361 0 : if (res) return res;
11362 : }
11363 : }
11364 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11365 : {
11366 0 : {
11367 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11368 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11369 0 : if (res) return res;
11370 : }
11371 : }
11372 : }
11373 : }
11374 : break;
11375 : }
11376 0 : case MAX_EXPR:
11377 0 : {
11378 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11379 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11380 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11381 : {
11382 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11383 : {
11384 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11385 : {
11386 0 : {
11387 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11388 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11389 0 : if (res) return res;
11390 : }
11391 : }
11392 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11393 : {
11394 0 : {
11395 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11396 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11397 0 : if (res) return res;
11398 : }
11399 : }
11400 : }
11401 : }
11402 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11403 : {
11404 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11405 : {
11406 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11407 : {
11408 0 : {
11409 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11410 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11411 0 : if (res) return res;
11412 : }
11413 : }
11414 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11415 : {
11416 0 : {
11417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11418 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11419 0 : if (res) return res;
11420 : }
11421 : }
11422 : }
11423 : }
11424 : break;
11425 : }
11426 6 : case MULT_EXPR:
11427 6 : {
11428 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11429 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11430 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11431 : {
11432 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11433 : {
11434 6 : switch (TREE_CODE (_p2))
11435 : {
11436 6 : case MULT_EXPR:
11437 6 : {
11438 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11439 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11440 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11441 : {
11442 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11443 : {
11444 6 : {
11445 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11446 6 : const enum tree_code op = MULT_EXPR;
11447 6 : if (ANY_INTEGRAL_TYPE_P (type)
11448 : )
11449 : {
11450 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1891;
11451 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1891;
11452 6 : {
11453 6 : tree _r;
11454 6 : _r = captures[2];
11455 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
11456 6 : return _r;
11457 : }
11458 0 : next_after_fail1891:;
11459 : }
11460 : }
11461 : }
11462 : }
11463 : break;
11464 : }
11465 : default:;
11466 : }
11467 : }
11468 : }
11469 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11470 : {
11471 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11472 : {
11473 0 : switch (TREE_CODE (_p2))
11474 : {
11475 0 : case MULT_EXPR:
11476 0 : {
11477 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11478 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11479 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11480 : {
11481 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11482 : {
11483 0 : {
11484 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11485 0 : const enum tree_code op = MULT_EXPR;
11486 0 : if (ANY_INTEGRAL_TYPE_P (type)
11487 : )
11488 : {
11489 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1892;
11490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1892;
11491 0 : {
11492 0 : tree _r;
11493 0 : _r = captures[2];
11494 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
11495 0 : return _r;
11496 : }
11497 0 : next_after_fail1892:;
11498 : }
11499 : }
11500 : }
11501 : }
11502 : break;
11503 : }
11504 : default:;
11505 : }
11506 : }
11507 : }
11508 : break;
11509 : }
11510 35 : case PLUS_EXPR:
11511 35 : {
11512 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11513 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11514 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11515 : {
11516 24 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11517 : {
11518 12 : switch (TREE_CODE (_p2))
11519 : {
11520 6 : case PLUS_EXPR:
11521 6 : {
11522 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11523 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11524 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11525 : {
11526 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11527 : {
11528 6 : {
11529 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11530 6 : const enum tree_code op = PLUS_EXPR;
11531 6 : if (ANY_INTEGRAL_TYPE_P (type)
11532 : )
11533 : {
11534 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1893;
11535 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1893;
11536 6 : {
11537 6 : tree _r;
11538 6 : _r = captures[2];
11539 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
11540 6 : return _r;
11541 : }
11542 0 : next_after_fail1893:;
11543 : }
11544 : }
11545 : }
11546 : }
11547 : break;
11548 : }
11549 6 : case MULT_EXPR:
11550 6 : {
11551 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11552 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11553 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11554 : {
11555 6 : if (uniform_integer_cst_p (_q81))
11556 : {
11557 6 : {
11558 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11559 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11560 : )
11561 : {
11562 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1894;
11563 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1894;
11564 6 : {
11565 6 : tree _r;
11566 6 : _r = captures[2];
11567 6 : if (TREE_SIDE_EFFECTS (captures[3]))
11568 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11569 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11570 6 : return _r;
11571 : }
11572 0 : next_after_fail1894:;
11573 : }
11574 : }
11575 : }
11576 : }
11577 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11578 : {
11579 0 : if (uniform_integer_cst_p (_q81))
11580 : {
11581 0 : {
11582 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11583 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11584 : )
11585 : {
11586 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1895;
11587 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1895;
11588 0 : {
11589 0 : tree _r;
11590 0 : _r = captures[2];
11591 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11592 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11593 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11594 0 : return _r;
11595 : }
11596 0 : next_after_fail1895:;
11597 : }
11598 : }
11599 : }
11600 : }
11601 : break;
11602 : }
11603 : default:;
11604 : }
11605 : }
11606 : }
11607 23 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11608 : {
11609 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11610 : {
11611 0 : switch (TREE_CODE (_p2))
11612 : {
11613 0 : case PLUS_EXPR:
11614 0 : {
11615 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11616 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11617 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11618 : {
11619 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11620 : {
11621 0 : {
11622 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11623 0 : const enum tree_code op = PLUS_EXPR;
11624 0 : if (ANY_INTEGRAL_TYPE_P (type)
11625 : )
11626 : {
11627 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1896;
11628 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1896;
11629 0 : {
11630 0 : tree _r;
11631 0 : _r = captures[2];
11632 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
11633 0 : return _r;
11634 : }
11635 0 : next_after_fail1896:;
11636 : }
11637 : }
11638 : }
11639 : }
11640 : break;
11641 : }
11642 0 : case MULT_EXPR:
11643 0 : {
11644 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11645 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11646 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11647 : {
11648 0 : if (uniform_integer_cst_p (_q81))
11649 : {
11650 0 : {
11651 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11652 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11653 : )
11654 : {
11655 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1897;
11656 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1897;
11657 0 : {
11658 0 : tree _r;
11659 0 : _r = captures[2];
11660 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11661 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11663 0 : return _r;
11664 : }
11665 0 : next_after_fail1897:;
11666 : }
11667 : }
11668 : }
11669 : }
11670 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11671 : {
11672 0 : if (uniform_integer_cst_p (_q81))
11673 : {
11674 0 : {
11675 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11676 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11677 : )
11678 : {
11679 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1898;
11680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1898;
11681 0 : {
11682 0 : tree _r;
11683 0 : _r = captures[2];
11684 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11685 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11686 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11687 0 : return _r;
11688 : }
11689 0 : next_after_fail1898:;
11690 : }
11691 : }
11692 : }
11693 : }
11694 : break;
11695 : }
11696 : default:;
11697 : }
11698 : }
11699 : }
11700 : break;
11701 : }
11702 : default:;
11703 : }
11704 : break;
11705 : }
11706 384977 : default:;
11707 : }
11708 384977 : switch (TREE_CODE (_p1))
11709 : {
11710 6 : case VEC_COND_EXPR:
11711 6 : {
11712 6 : tree _q30 = TREE_OPERAND (_p1, 0);
11713 6 : tree _q31 = TREE_OPERAND (_p1, 1);
11714 6 : tree _q32 = TREE_OPERAND (_p1, 2);
11715 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11716 : {
11717 0 : {
11718 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
11719 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1899;
11720 0 : {
11721 0 : tree res_op0;
11722 0 : res_op0 = captures[0];
11723 0 : tree res_op1;
11724 0 : res_op1 = captures[1];
11725 0 : tree res_op2;
11726 0 : res_op2 = captures[3];
11727 0 : tree _r;
11728 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11729 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11730 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11731 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11732 0 : return _r;
11733 : }
11734 0 : next_after_fail1899:;
11735 : }
11736 : }
11737 : break;
11738 : }
11739 384977 : default:;
11740 : }
11741 384977 : switch (TREE_CODE (_p2))
11742 : {
11743 3 : case VEC_COND_EXPR:
11744 3 : {
11745 3 : tree _q40 = TREE_OPERAND (_p2, 0);
11746 3 : tree _q41 = TREE_OPERAND (_p2, 1);
11747 3 : tree _q42 = TREE_OPERAND (_p2, 2);
11748 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11749 : {
11750 0 : {
11751 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
11752 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1900;
11753 0 : {
11754 0 : tree res_op0;
11755 0 : res_op0 = captures[0];
11756 0 : tree res_op1;
11757 0 : res_op1 = captures[1];
11758 0 : tree res_op2;
11759 0 : res_op2 = captures[3];
11760 0 : tree _r;
11761 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11762 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11763 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11764 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
11765 0 : return _r;
11766 : }
11767 0 : next_after_fail1900:;
11768 : }
11769 : }
11770 3 : {
11771 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
11772 3 : if (inverse_conditions_p (captures[0], captures[2])
11773 : )
11774 : {
11775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1901;
11776 0 : {
11777 0 : tree res_op0;
11778 0 : res_op0 = captures[0];
11779 0 : tree res_op1;
11780 0 : res_op1 = captures[1];
11781 0 : tree res_op2;
11782 0 : res_op2 = captures[3];
11783 0 : tree _r;
11784 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11785 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11786 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11787 0 : if (TREE_SIDE_EFFECTS (captures[4]))
11788 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11789 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
11790 0 : return _r;
11791 : }
11792 0 : next_after_fail1901:;
11793 : }
11794 : }
11795 3 : break;
11796 : }
11797 384977 : default:;
11798 : }
11799 384977 : switch (TREE_CODE (_p1))
11800 : {
11801 6 : case VEC_COND_EXPR:
11802 6 : {
11803 6 : tree _q30 = TREE_OPERAND (_p1, 0);
11804 6 : tree _q31 = TREE_OPERAND (_p1, 1);
11805 6 : tree _q32 = TREE_OPERAND (_p1, 2);
11806 6 : {
11807 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
11808 6 : if (inverse_conditions_p (captures[0], captures[1])
11809 : )
11810 : {
11811 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1902;
11812 0 : {
11813 0 : tree res_op0;
11814 0 : res_op0 = captures[0];
11815 0 : tree res_op1;
11816 0 : res_op1 = captures[3];
11817 0 : tree res_op2;
11818 0 : res_op2 = captures[4];
11819 0 : tree _r;
11820 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11821 0 : if (TREE_SIDE_EFFECTS (captures[1]))
11822 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11823 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11824 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
11826 0 : return _r;
11827 : }
11828 0 : next_after_fail1902:;
11829 : }
11830 : }
11831 6 : break;
11832 : }
11833 384977 : default:;
11834 : }
11835 384977 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
11836 : {
11837 33 : {
11838 33 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11839 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1903;
11840 33 : {
11841 33 : tree _r;
11842 33 : _r = captures[1];
11843 33 : if (TREE_SIDE_EFFECTS (captures[0]))
11844 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11845 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
11846 33 : return _r;
11847 : }
11848 0 : next_after_fail1903:;
11849 : }
11850 : }
11851 384944 : switch (TREE_CODE (_p0))
11852 : {
11853 67119 : case EQ_EXPR:
11854 67119 : {
11855 67119 : tree _q20 = TREE_OPERAND (_p0, 0);
11856 67119 : tree _q21 = TREE_OPERAND (_p0, 1);
11857 67119 : if (zerop (_q21))
11858 : {
11859 1079 : switch (TREE_CODE (_p2))
11860 : {
11861 0 : case NEGATE_EXPR:
11862 0 : {
11863 0 : tree _q60 = TREE_OPERAND (_p2, 0);
11864 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
11865 : {
11866 0 : {
11867 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
11868 0 : const enum tree_code cmp = EQ_EXPR;
11869 0 : if (!HONOR_SIGNED_ZEROS (type)
11870 0 : && bitwise_equal_p (captures[0], captures[1])
11871 : )
11872 : {
11873 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1904;
11874 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1904;
11875 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1904;
11876 0 : {
11877 0 : tree _r;
11878 0 : _r = captures[2];
11879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1053, __FILE__, __LINE__, true);
11880 0 : return _r;
11881 : }
11882 0 : next_after_fail1904:;
11883 : }
11884 : }
11885 : }
11886 : break;
11887 : }
11888 1079 : default:;
11889 : }
11890 1079 : if (zerop (_p1))
11891 : {
11892 18 : switch (TREE_CODE (_p2))
11893 : {
11894 0 : case NEGATE_EXPR:
11895 0 : {
11896 0 : tree _q60 = TREE_OPERAND (_p2, 0);
11897 0 : {
11898 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
11899 0 : const enum tree_code cmp = EQ_EXPR;
11900 0 : if (!HONOR_SIGNED_ZEROS (type)
11901 0 : && bitwise_equal_p (captures[0], captures[2])
11902 : )
11903 : {
11904 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1905;
11905 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1905;
11906 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1905;
11907 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1905;
11908 0 : {
11909 0 : tree _r;
11910 0 : _r = captures[1];
11911 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
11912 0 : return _r;
11913 : }
11914 0 : next_after_fail1905:;
11915 : }
11916 : }
11917 0 : break;
11918 : }
11919 : default:;
11920 : }
11921 : }
11922 : }
11923 67119 : switch (TREE_CODE (_q20))
11924 : {
11925 0 : case MINUS_EXPR:
11926 0 : {
11927 0 : tree _q30 = TREE_OPERAND (_q20, 0);
11928 0 : tree _q31 = TREE_OPERAND (_q20, 1);
11929 0 : if (zerop (_q21))
11930 : {
11931 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11932 : {
11933 0 : switch (TREE_CODE (_p2))
11934 : {
11935 0 : case MINUS_EXPR:
11936 0 : {
11937 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11938 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11939 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
11940 : {
11941 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11942 : {
11943 0 : {
11944 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
11945 0 : const enum tree_code cmp = EQ_EXPR;
11946 0 : if (!HONOR_SIGNED_ZEROS (type)
11947 : )
11948 : {
11949 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1906;
11950 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1906;
11951 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1906;
11952 0 : {
11953 0 : tree _r;
11954 0 : _r = captures[3];
11955 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
11956 0 : return _r;
11957 : }
11958 0 : next_after_fail1906:;
11959 : }
11960 : }
11961 : }
11962 : }
11963 : break;
11964 : }
11965 : default:;
11966 : }
11967 : }
11968 : }
11969 0 : if (integer_zerop (_q21))
11970 : {
11971 0 : if (integer_zerop (_p1))
11972 : {
11973 0 : switch (TREE_CODE (_p2))
11974 : {
11975 0 : case MINUS_EXPR:
11976 0 : {
11977 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11978 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11979 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
11980 : {
11981 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11982 : {
11983 0 : {
11984 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
11985 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
11986 0 : if (res) return res;
11987 : }
11988 : }
11989 : }
11990 : break;
11991 : }
11992 : default:;
11993 : }
11994 : }
11995 : }
11996 : break;
11997 : }
11998 : default:;
11999 : }
12000 : break;
12001 : }
12002 0 : case UNEQ_EXPR:
12003 0 : {
12004 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12005 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12006 0 : if (zerop (_q21))
12007 : {
12008 0 : switch (TREE_CODE (_p2))
12009 : {
12010 0 : case NEGATE_EXPR:
12011 0 : {
12012 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12013 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12014 : {
12015 0 : {
12016 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12017 0 : const enum tree_code cmp = UNEQ_EXPR;
12018 0 : if (!HONOR_SIGNED_ZEROS (type)
12019 0 : && bitwise_equal_p (captures[0], captures[1])
12020 : )
12021 : {
12022 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1907;
12023 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1907;
12024 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1907;
12025 0 : {
12026 0 : tree _r;
12027 0 : _r = captures[2];
12028 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1053, __FILE__, __LINE__, true);
12029 0 : return _r;
12030 : }
12031 0 : next_after_fail1907:;
12032 : }
12033 : }
12034 : }
12035 : break;
12036 : }
12037 0 : default:;
12038 : }
12039 0 : if (zerop (_p1))
12040 : {
12041 0 : switch (TREE_CODE (_p2))
12042 : {
12043 0 : case NEGATE_EXPR:
12044 0 : {
12045 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12046 0 : {
12047 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12048 0 : const enum tree_code cmp = UNEQ_EXPR;
12049 0 : if (!HONOR_SIGNED_ZEROS (type)
12050 0 : && bitwise_equal_p (captures[0], captures[2])
12051 : )
12052 : {
12053 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1908;
12054 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1908;
12055 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1908;
12056 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1908;
12057 0 : {
12058 0 : tree _r;
12059 0 : _r = captures[1];
12060 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12061 0 : return _r;
12062 : }
12063 0 : next_after_fail1908:;
12064 : }
12065 : }
12066 0 : break;
12067 : }
12068 : default:;
12069 : }
12070 : }
12071 : }
12072 0 : switch (TREE_CODE (_q20))
12073 : {
12074 0 : case MINUS_EXPR:
12075 0 : {
12076 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12077 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12078 0 : if (zerop (_q21))
12079 : {
12080 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12081 : {
12082 0 : switch (TREE_CODE (_p2))
12083 : {
12084 0 : case MINUS_EXPR:
12085 0 : {
12086 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12087 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12088 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12089 : {
12090 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12091 : {
12092 0 : {
12093 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12094 0 : const enum tree_code cmp = UNEQ_EXPR;
12095 0 : if (!HONOR_SIGNED_ZEROS (type)
12096 : )
12097 : {
12098 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1909;
12099 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1909;
12100 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1909;
12101 0 : {
12102 0 : tree _r;
12103 0 : _r = captures[3];
12104 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12105 0 : return _r;
12106 : }
12107 0 : next_after_fail1909:;
12108 : }
12109 : }
12110 : }
12111 : }
12112 : break;
12113 : }
12114 : default:;
12115 : }
12116 : }
12117 : }
12118 0 : if (integer_zerop (_q21))
12119 : {
12120 0 : if (integer_zerop (_p1))
12121 : {
12122 0 : switch (TREE_CODE (_p2))
12123 : {
12124 0 : case MINUS_EXPR:
12125 0 : {
12126 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12127 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12128 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12129 : {
12130 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12131 : {
12132 0 : {
12133 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12134 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12135 0 : if (res) return res;
12136 : }
12137 : }
12138 : }
12139 : break;
12140 : }
12141 : default:;
12142 : }
12143 : }
12144 : }
12145 : break;
12146 : }
12147 : default:;
12148 : }
12149 : break;
12150 : }
12151 1293 : case NE_EXPR:
12152 1293 : {
12153 1293 : tree _q20 = TREE_OPERAND (_p0, 0);
12154 1293 : tree _q21 = TREE_OPERAND (_p0, 1);
12155 1293 : if (zerop (_q21))
12156 : {
12157 336 : switch (TREE_CODE (_p2))
12158 : {
12159 0 : case NEGATE_EXPR:
12160 0 : {
12161 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12162 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12163 : {
12164 0 : {
12165 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12166 0 : const enum tree_code cmp = NE_EXPR;
12167 0 : if (!HONOR_SIGNED_ZEROS (type)
12168 0 : && bitwise_equal_p (captures[0], captures[1])
12169 : )
12170 : {
12171 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1910;
12172 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1910;
12173 0 : {
12174 0 : tree _r;
12175 0 : _r = captures[1];
12176 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
12177 0 : return _r;
12178 : }
12179 0 : next_after_fail1910:;
12180 : }
12181 : }
12182 : }
12183 : break;
12184 : }
12185 336 : default:;
12186 : }
12187 336 : if (integer_zerop (_p2))
12188 : {
12189 190 : {
12190 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12191 190 : const enum tree_code cmp = NE_EXPR;
12192 190 : if (!HONOR_SIGNED_ZEROS (type)
12193 190 : && bitwise_equal_p (captures[0], captures[1])
12194 : )
12195 : {
12196 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1911;
12197 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1911;
12198 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
12199 0 : {
12200 0 : tree _r;
12201 0 : _r = captures[1];
12202 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12203 0 : return _r;
12204 : }
12205 190 : next_after_fail1911:;
12206 : }
12207 : }
12208 : }
12209 : }
12210 1293 : switch (TREE_CODE (_q20))
12211 : {
12212 40 : case MINUS_EXPR:
12213 40 : {
12214 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12215 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12216 40 : if (zerop (_q21))
12217 : {
12218 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12219 : {
12220 0 : switch (TREE_CODE (_p2))
12221 : {
12222 0 : case MINUS_EXPR:
12223 0 : {
12224 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12225 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12226 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12227 : {
12228 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12229 : {
12230 0 : {
12231 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12232 0 : const enum tree_code cmp = NE_EXPR;
12233 0 : if (!HONOR_SIGNED_ZEROS (type)
12234 : )
12235 : {
12236 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1912;
12237 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1912;
12238 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
12239 0 : {
12240 0 : tree _r;
12241 0 : _r = captures[0];
12242 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12243 0 : return _r;
12244 : }
12245 0 : next_after_fail1912:;
12246 : }
12247 : }
12248 : }
12249 : }
12250 : break;
12251 : }
12252 : default:;
12253 : }
12254 : }
12255 : }
12256 40 : if (integer_zerop (_q21))
12257 : {
12258 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12259 : {
12260 0 : if (integer_zerop (_p2))
12261 : {
12262 0 : {
12263 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12264 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12265 0 : if (res) return res;
12266 : }
12267 : }
12268 : }
12269 : }
12270 : break;
12271 : }
12272 : default:;
12273 : }
12274 : break;
12275 : }
12276 0 : case LTGT_EXPR:
12277 0 : {
12278 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12279 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12280 0 : if (zerop (_q21))
12281 : {
12282 0 : switch (TREE_CODE (_p2))
12283 : {
12284 0 : case NEGATE_EXPR:
12285 0 : {
12286 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12287 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12288 : {
12289 0 : {
12290 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12291 0 : const enum tree_code cmp = LTGT_EXPR;
12292 0 : if (!HONOR_SIGNED_ZEROS (type)
12293 0 : && bitwise_equal_p (captures[0], captures[1])
12294 : )
12295 : {
12296 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
12297 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
12298 0 : {
12299 0 : tree _r;
12300 0 : _r = captures[1];
12301 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
12302 0 : return _r;
12303 : }
12304 0 : next_after_fail1913:;
12305 : }
12306 : }
12307 : }
12308 : break;
12309 : }
12310 0 : default:;
12311 : }
12312 0 : if (integer_zerop (_p2))
12313 : {
12314 0 : {
12315 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12316 0 : const enum tree_code cmp = LTGT_EXPR;
12317 0 : if (!HONOR_SIGNED_ZEROS (type)
12318 0 : && bitwise_equal_p (captures[0], captures[1])
12319 : )
12320 : {
12321 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1914;
12322 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1914;
12323 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
12324 0 : {
12325 0 : tree _r;
12326 0 : _r = captures[1];
12327 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12328 0 : return _r;
12329 : }
12330 0 : next_after_fail1914:;
12331 : }
12332 : }
12333 : }
12334 : }
12335 0 : switch (TREE_CODE (_q20))
12336 : {
12337 0 : case MINUS_EXPR:
12338 0 : {
12339 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12340 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12341 0 : if (zerop (_q21))
12342 : {
12343 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12344 : {
12345 0 : switch (TREE_CODE (_p2))
12346 : {
12347 0 : case MINUS_EXPR:
12348 0 : {
12349 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12350 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12351 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12352 : {
12353 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12354 : {
12355 0 : {
12356 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12357 0 : const enum tree_code cmp = LTGT_EXPR;
12358 0 : if (!HONOR_SIGNED_ZEROS (type)
12359 : )
12360 : {
12361 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
12362 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1915;
12363 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
12364 0 : {
12365 0 : tree _r;
12366 0 : _r = captures[0];
12367 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12368 0 : return _r;
12369 : }
12370 0 : next_after_fail1915:;
12371 : }
12372 : }
12373 : }
12374 : }
12375 : break;
12376 : }
12377 : default:;
12378 : }
12379 : }
12380 : }
12381 0 : if (integer_zerop (_q21))
12382 : {
12383 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12384 : {
12385 0 : if (integer_zerop (_p2))
12386 : {
12387 0 : {
12388 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12389 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12390 0 : if (res) return res;
12391 : }
12392 : }
12393 : }
12394 : }
12395 : break;
12396 : }
12397 : default:;
12398 : }
12399 : break;
12400 : }
12401 1177 : case GE_EXPR:
12402 1177 : {
12403 1177 : tree _q20 = TREE_OPERAND (_p0, 0);
12404 1177 : tree _q21 = TREE_OPERAND (_p0, 1);
12405 1177 : switch (TREE_CODE (_q20))
12406 : {
12407 3 : CASE_CONVERT:
12408 3 : {
12409 3 : tree _q30 = TREE_OPERAND (_q20, 0);
12410 3 : if (zerop (_q21))
12411 : {
12412 0 : switch (TREE_CODE (_p2))
12413 : {
12414 0 : case NEGATE_EXPR:
12415 0 : {
12416 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12417 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12418 : {
12419 0 : {
12420 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12421 0 : const enum tree_code cmp = GE_EXPR;
12422 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12423 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12424 0 : && element_precision (captures[1])
12425 0 : <= element_precision (captures[0])
12426 0 : && bitwise_equal_p (captures[1], captures[2])
12427 0 : && (!VECTOR_TYPE_P (type)
12428 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12429 : )
12430 : {
12431 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12432 : )
12433 : {
12434 0 : {
12435 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12436 0 : if (types_match (captures[0], stype)
12437 : )
12438 : {
12439 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1916;
12440 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
12441 0 : {
12442 0 : tree res_op0;
12443 0 : res_op0 = captures[0];
12444 0 : tree _r;
12445 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12446 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12447 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12448 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12449 0 : return _r;
12450 : }
12451 0 : next_after_fail1916:;
12452 : }
12453 : else
12454 : {
12455 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1917;
12456 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
12457 0 : {
12458 0 : tree res_op0;
12459 0 : {
12460 0 : tree _o1[1], _r1;
12461 0 : _o1[0] = captures[2];
12462 0 : if (TREE_TYPE (_o1[0]) != stype)
12463 : {
12464 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12465 : }
12466 : else
12467 : _r1 = _o1[0];
12468 0 : res_op0 = _r1;
12469 : }
12470 0 : tree _r;
12471 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12472 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12473 0 : return _r;
12474 : }
12475 0 : next_after_fail1917:;
12476 : }
12477 : }
12478 : }
12479 : else
12480 : {
12481 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1918;
12482 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
12483 0 : {
12484 0 : tree res_op0;
12485 0 : res_op0 = captures[2];
12486 0 : tree _r;
12487 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12488 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12489 0 : return _r;
12490 : }
12491 0 : next_after_fail1918:;
12492 : }
12493 : }
12494 : }
12495 : }
12496 : break;
12497 : }
12498 : default:;
12499 : }
12500 : }
12501 : break;
12502 : }
12503 1177 : default:;
12504 : }
12505 1177 : if (zerop (_q21))
12506 : {
12507 334 : switch (TREE_CODE (_p2))
12508 : {
12509 3 : case NEGATE_EXPR:
12510 3 : {
12511 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12512 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12513 : {
12514 3 : {
12515 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12516 3 : const enum tree_code cmp = GE_EXPR;
12517 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12518 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12519 6 : && element_precision (captures[1])
12520 3 : <= element_precision (captures[0])
12521 3 : && bitwise_equal_p (captures[1], captures[2])
12522 6 : && (!VECTOR_TYPE_P (type)
12523 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12524 : )
12525 : {
12526 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12527 : )
12528 : {
12529 0 : {
12530 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12531 0 : if (types_match (captures[0], stype)
12532 : )
12533 : {
12534 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1919;
12535 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
12536 0 : {
12537 0 : tree res_op0;
12538 0 : res_op0 = captures[0];
12539 0 : tree _r;
12540 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12541 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12542 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12543 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12544 0 : return _r;
12545 : }
12546 0 : next_after_fail1919:;
12547 : }
12548 : else
12549 : {
12550 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1920;
12551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
12552 0 : {
12553 0 : tree res_op0;
12554 0 : {
12555 0 : tree _o1[1], _r1;
12556 0 : _o1[0] = captures[2];
12557 0 : if (TREE_TYPE (_o1[0]) != stype)
12558 : {
12559 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12560 : }
12561 : else
12562 : _r1 = _o1[0];
12563 0 : res_op0 = _r1;
12564 : }
12565 0 : tree _r;
12566 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12567 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12568 0 : return _r;
12569 : }
12570 0 : next_after_fail1920:;
12571 : }
12572 : }
12573 : }
12574 : else
12575 : {
12576 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1921;
12577 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
12578 3 : {
12579 3 : tree res_op0;
12580 3 : res_op0 = captures[2];
12581 3 : tree _r;
12582 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12583 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12584 3 : return _r;
12585 : }
12586 0 : next_after_fail1921:;
12587 : }
12588 : }
12589 : }
12590 : }
12591 : break;
12592 : }
12593 : default:;
12594 : }
12595 : }
12596 1174 : switch (TREE_CODE (_q20))
12597 : {
12598 0 : case MINUS_EXPR:
12599 0 : {
12600 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12601 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12602 0 : if (zerop (_q21))
12603 : {
12604 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12605 : {
12606 0 : switch (TREE_CODE (_p2))
12607 : {
12608 0 : case MINUS_EXPR:
12609 0 : {
12610 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12611 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12612 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12613 : {
12614 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12615 : {
12616 0 : {
12617 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12618 0 : const enum tree_code cmp = GE_EXPR;
12619 0 : if (!HONOR_SIGNED_ZEROS (type)
12620 0 : && !TYPE_UNSIGNED (type)
12621 0 : && (!VECTOR_TYPE_P (type)
12622 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12623 : )
12624 : {
12625 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1922;
12626 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1922;
12627 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
12628 0 : {
12629 0 : tree res_op0;
12630 0 : res_op0 = captures[0];
12631 0 : tree _r;
12632 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12633 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12634 0 : return _r;
12635 : }
12636 0 : next_after_fail1922:;
12637 : }
12638 : }
12639 : }
12640 : }
12641 : break;
12642 : }
12643 : default:;
12644 : }
12645 : }
12646 : }
12647 : break;
12648 : }
12649 : default:;
12650 : }
12651 : break;
12652 : }
12653 66427 : case GT_EXPR:
12654 66427 : {
12655 66427 : tree _q20 = TREE_OPERAND (_p0, 0);
12656 66427 : tree _q21 = TREE_OPERAND (_p0, 1);
12657 66427 : switch (TREE_CODE (_q20))
12658 : {
12659 13 : CASE_CONVERT:
12660 13 : {
12661 13 : tree _q30 = TREE_OPERAND (_q20, 0);
12662 13 : if (zerop (_q21))
12663 : {
12664 1 : switch (TREE_CODE (_p2))
12665 : {
12666 0 : case NEGATE_EXPR:
12667 0 : {
12668 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12669 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12670 : {
12671 0 : {
12672 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12673 0 : const enum tree_code cmp = GT_EXPR;
12674 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12675 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12676 0 : && element_precision (captures[1])
12677 0 : <= element_precision (captures[0])
12678 0 : && bitwise_equal_p (captures[1], captures[2])
12679 0 : && (!VECTOR_TYPE_P (type)
12680 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12681 : )
12682 : {
12683 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12684 : )
12685 : {
12686 0 : {
12687 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12688 0 : if (types_match (captures[0], stype)
12689 : )
12690 : {
12691 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1923;
12692 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
12693 0 : {
12694 0 : tree res_op0;
12695 0 : res_op0 = captures[0];
12696 0 : tree _r;
12697 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12698 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12699 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12700 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12701 0 : return _r;
12702 : }
12703 0 : next_after_fail1923:;
12704 : }
12705 : else
12706 : {
12707 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1924;
12708 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
12709 0 : {
12710 0 : tree res_op0;
12711 0 : {
12712 0 : tree _o1[1], _r1;
12713 0 : _o1[0] = captures[2];
12714 0 : if (TREE_TYPE (_o1[0]) != stype)
12715 : {
12716 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12717 : }
12718 : else
12719 : _r1 = _o1[0];
12720 0 : res_op0 = _r1;
12721 : }
12722 0 : tree _r;
12723 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12724 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12725 0 : return _r;
12726 : }
12727 0 : next_after_fail1924:;
12728 : }
12729 : }
12730 : }
12731 : else
12732 : {
12733 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1925;
12734 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
12735 0 : {
12736 0 : tree res_op0;
12737 0 : res_op0 = captures[2];
12738 0 : tree _r;
12739 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12740 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12741 0 : return _r;
12742 : }
12743 0 : next_after_fail1925:;
12744 : }
12745 : }
12746 : }
12747 : }
12748 : break;
12749 : }
12750 : default:;
12751 : }
12752 : }
12753 : break;
12754 : }
12755 66427 : default:;
12756 : }
12757 66427 : if (zerop (_q21))
12758 : {
12759 84 : switch (TREE_CODE (_p2))
12760 : {
12761 6 : case NEGATE_EXPR:
12762 6 : {
12763 6 : tree _q60 = TREE_OPERAND (_p2, 0);
12764 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12765 : {
12766 6 : {
12767 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12768 6 : const enum tree_code cmp = GT_EXPR;
12769 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12770 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12771 12 : && element_precision (captures[1])
12772 6 : <= element_precision (captures[0])
12773 6 : && bitwise_equal_p (captures[1], captures[2])
12774 12 : && (!VECTOR_TYPE_P (type)
12775 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12776 : )
12777 : {
12778 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12779 : )
12780 : {
12781 0 : {
12782 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12783 0 : if (types_match (captures[0], stype)
12784 : )
12785 : {
12786 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1926;
12787 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
12788 0 : {
12789 0 : tree res_op0;
12790 0 : res_op0 = captures[0];
12791 0 : tree _r;
12792 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12793 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12794 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12795 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12796 0 : return _r;
12797 : }
12798 0 : next_after_fail1926:;
12799 : }
12800 : else
12801 : {
12802 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1927;
12803 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
12804 0 : {
12805 0 : tree res_op0;
12806 0 : {
12807 0 : tree _o1[1], _r1;
12808 0 : _o1[0] = captures[2];
12809 0 : if (TREE_TYPE (_o1[0]) != stype)
12810 : {
12811 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12812 : }
12813 : else
12814 : _r1 = _o1[0];
12815 0 : res_op0 = _r1;
12816 : }
12817 0 : tree _r;
12818 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12819 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12820 0 : return _r;
12821 : }
12822 0 : next_after_fail1927:;
12823 : }
12824 : }
12825 : }
12826 : else
12827 : {
12828 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1928;
12829 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
12830 6 : {
12831 6 : tree res_op0;
12832 6 : res_op0 = captures[2];
12833 6 : tree _r;
12834 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12835 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12836 6 : return _r;
12837 : }
12838 0 : next_after_fail1928:;
12839 : }
12840 : }
12841 : }
12842 : }
12843 : break;
12844 : }
12845 : default:;
12846 : }
12847 : }
12848 66421 : switch (TREE_CODE (_q20))
12849 : {
12850 0 : case MINUS_EXPR:
12851 0 : {
12852 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12853 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12854 0 : if (zerop (_q21))
12855 : {
12856 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12857 : {
12858 0 : switch (TREE_CODE (_p2))
12859 : {
12860 0 : case MINUS_EXPR:
12861 0 : {
12862 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12863 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12864 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12865 : {
12866 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12867 : {
12868 0 : {
12869 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12870 0 : const enum tree_code cmp = GT_EXPR;
12871 0 : if (!HONOR_SIGNED_ZEROS (type)
12872 0 : && !TYPE_UNSIGNED (type)
12873 0 : && (!VECTOR_TYPE_P (type)
12874 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12875 : )
12876 : {
12877 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1929;
12878 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1929;
12879 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
12880 0 : {
12881 0 : tree res_op0;
12882 0 : res_op0 = captures[0];
12883 0 : tree _r;
12884 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12885 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12886 0 : return _r;
12887 : }
12888 0 : next_after_fail1929:;
12889 : }
12890 : }
12891 : }
12892 : }
12893 : break;
12894 : }
12895 : default:;
12896 : }
12897 : }
12898 : }
12899 : break;
12900 : }
12901 : default:;
12902 : }
12903 : break;
12904 : }
12905 966 : case LE_EXPR:
12906 966 : {
12907 966 : tree _q20 = TREE_OPERAND (_p0, 0);
12908 966 : tree _q21 = TREE_OPERAND (_p0, 1);
12909 966 : switch (TREE_CODE (_q20))
12910 : {
12911 62 : CASE_CONVERT:
12912 62 : {
12913 62 : tree _q30 = TREE_OPERAND (_q20, 0);
12914 62 : if (zerop (_q21))
12915 : {
12916 0 : switch (TREE_CODE (_p2))
12917 : {
12918 0 : case NEGATE_EXPR:
12919 0 : {
12920 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12921 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12922 : {
12923 0 : {
12924 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12925 0 : const enum tree_code cmp = LE_EXPR;
12926 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12927 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12928 0 : && element_precision (captures[1])
12929 0 : <= element_precision (captures[0])
12930 0 : && bitwise_equal_p (captures[1], captures[2])
12931 0 : && (!VECTOR_TYPE_P (type)
12932 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
12933 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
12934 : )
12935 : {
12936 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
12937 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
12938 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12939 : )
12940 : {
12941 0 : {
12942 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12943 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
12944 0 : if (types_match (captures[0], stype)
12945 : )
12946 : {
12947 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1930;
12948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
12949 0 : {
12950 0 : tree res_op0;
12951 0 : {
12952 0 : tree _o1[1], _r1;
12953 0 : {
12954 0 : tree _o2[1], _r2;
12955 0 : _o2[0] = captures[0];
12956 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
12957 0 : _o1[0] = _r2;
12958 : }
12959 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
12960 0 : res_op0 = _r1;
12961 : }
12962 0 : tree _r;
12963 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
12964 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12965 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12966 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12967 0 : return _r;
12968 : }
12969 0 : next_after_fail1930:;
12970 : }
12971 : else
12972 : {
12973 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1931;
12974 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
12975 0 : {
12976 0 : tree res_op0;
12977 0 : {
12978 0 : tree _o1[1], _r1;
12979 0 : {
12980 0 : tree _o2[1], _r2;
12981 0 : {
12982 0 : tree _o3[1], _r3;
12983 0 : _o3[0] = captures[2];
12984 0 : if (TREE_TYPE (_o3[0]) != stype)
12985 : {
12986 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
12987 : }
12988 : else
12989 : _r3 = _o3[0];
12990 0 : _o2[0] = _r3;
12991 : }
12992 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
12993 0 : _o1[0] = _r2;
12994 : }
12995 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
12996 0 : res_op0 = _r1;
12997 : }
12998 0 : tree _r;
12999 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13000 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13001 0 : return _r;
13002 : }
13003 0 : next_after_fail1931:;
13004 : }
13005 : }
13006 : }
13007 : else
13008 : {
13009 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1932;
13010 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
13011 0 : {
13012 0 : tree res_op0;
13013 0 : {
13014 0 : tree _o1[1], _r1;
13015 0 : {
13016 0 : tree _o2[1], _r2;
13017 0 : _o2[0] = captures[2];
13018 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13019 0 : _o1[0] = _r2;
13020 : }
13021 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13022 0 : res_op0 = _r1;
13023 : }
13024 0 : tree _r;
13025 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13026 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13027 0 : return _r;
13028 : }
13029 0 : next_after_fail1932:;
13030 : }
13031 : }
13032 : }
13033 : }
13034 : break;
13035 : }
13036 : default:;
13037 : }
13038 : }
13039 : break;
13040 : }
13041 966 : default:;
13042 : }
13043 966 : if (zerop (_q21))
13044 : {
13045 18 : switch (TREE_CODE (_p2))
13046 : {
13047 0 : case NEGATE_EXPR:
13048 0 : {
13049 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13050 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13051 : {
13052 0 : {
13053 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13054 0 : const enum tree_code cmp = LE_EXPR;
13055 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13056 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13057 0 : && element_precision (captures[1])
13058 0 : <= element_precision (captures[0])
13059 0 : && bitwise_equal_p (captures[1], captures[2])
13060 0 : && (!VECTOR_TYPE_P (type)
13061 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13062 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13063 : )
13064 : {
13065 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13066 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13067 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13068 : )
13069 : {
13070 0 : {
13071 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13072 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13073 0 : if (types_match (captures[0], stype)
13074 : )
13075 : {
13076 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1933;
13077 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
13078 0 : {
13079 0 : tree res_op0;
13080 0 : {
13081 0 : tree _o1[1], _r1;
13082 0 : {
13083 0 : tree _o2[1], _r2;
13084 0 : _o2[0] = captures[0];
13085 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13086 0 : _o1[0] = _r2;
13087 : }
13088 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13089 0 : res_op0 = _r1;
13090 : }
13091 0 : tree _r;
13092 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13093 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13094 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13095 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
13096 0 : return _r;
13097 : }
13098 0 : next_after_fail1933:;
13099 : }
13100 : else
13101 : {
13102 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1934;
13103 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
13104 0 : {
13105 0 : tree res_op0;
13106 0 : {
13107 0 : tree _o1[1], _r1;
13108 0 : {
13109 0 : tree _o2[1], _r2;
13110 0 : {
13111 0 : tree _o3[1], _r3;
13112 0 : _o3[0] = captures[2];
13113 0 : if (TREE_TYPE (_o3[0]) != stype)
13114 : {
13115 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13116 : }
13117 : else
13118 : _r3 = _o3[0];
13119 0 : _o2[0] = _r3;
13120 : }
13121 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13122 0 : _o1[0] = _r2;
13123 : }
13124 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13125 0 : res_op0 = _r1;
13126 : }
13127 0 : tree _r;
13128 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13129 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13130 0 : return _r;
13131 : }
13132 0 : next_after_fail1934:;
13133 : }
13134 : }
13135 : }
13136 : else
13137 : {
13138 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1935;
13139 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
13140 0 : {
13141 0 : tree res_op0;
13142 0 : {
13143 0 : tree _o1[1], _r1;
13144 0 : {
13145 0 : tree _o2[1], _r2;
13146 0 : _o2[0] = captures[2];
13147 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13148 0 : _o1[0] = _r2;
13149 : }
13150 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13151 0 : res_op0 = _r1;
13152 : }
13153 0 : tree _r;
13154 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13156 0 : return _r;
13157 : }
13158 0 : next_after_fail1935:;
13159 : }
13160 : }
13161 : }
13162 : }
13163 : break;
13164 : }
13165 : default:;
13166 : }
13167 : }
13168 966 : switch (TREE_CODE (_q20))
13169 : {
13170 0 : case MINUS_EXPR:
13171 0 : {
13172 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13173 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13174 0 : if (zerop (_q21))
13175 : {
13176 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13177 : {
13178 0 : switch (TREE_CODE (_p2))
13179 : {
13180 0 : case MINUS_EXPR:
13181 0 : {
13182 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13183 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13184 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13185 : {
13186 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13187 : {
13188 0 : {
13189 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13190 0 : const enum tree_code cmp = LE_EXPR;
13191 0 : if (!HONOR_SIGNED_ZEROS (type)
13192 0 : && !TYPE_UNSIGNED (type)
13193 : )
13194 : {
13195 0 : if (ANY_INTEGRAL_TYPE_P (type)
13196 0 : && !TYPE_OVERFLOW_WRAPS (type)
13197 0 : && (!VECTOR_TYPE_P (type)
13198 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13199 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13200 : )
13201 : {
13202 0 : {
13203 0 : tree utype = unsigned_type_for (type);
13204 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1936;
13205 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1936;
13206 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
13207 0 : {
13208 0 : tree res_op0;
13209 0 : {
13210 0 : tree _o1[1], _r1;
13211 0 : {
13212 0 : tree _o2[1], _r2;
13213 0 : _o2[0] = captures[0];
13214 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13215 0 : _o1[0] = _r2;
13216 : }
13217 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13218 0 : res_op0 = _r1;
13219 : }
13220 0 : tree _r;
13221 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13222 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
13223 0 : return _r;
13224 : }
13225 0 : next_after_fail1936:;
13226 : }
13227 : }
13228 : else
13229 : {
13230 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1937;
13231 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1937;
13232 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
13233 0 : {
13234 0 : tree res_op0;
13235 0 : {
13236 0 : tree _o1[1], _r1;
13237 0 : _o1[0] = captures[0];
13238 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13239 0 : res_op0 = _r1;
13240 : }
13241 0 : tree _r;
13242 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13243 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13244 0 : return _r;
13245 : }
13246 0 : next_after_fail1937:;
13247 : }
13248 : }
13249 : }
13250 : }
13251 : }
13252 : break;
13253 : }
13254 : default:;
13255 : }
13256 : }
13257 : }
13258 : break;
13259 : }
13260 : default:;
13261 : }
13262 : break;
13263 : }
13264 20789 : case LT_EXPR:
13265 20789 : {
13266 20789 : tree _q20 = TREE_OPERAND (_p0, 0);
13267 20789 : tree _q21 = TREE_OPERAND (_p0, 1);
13268 20789 : switch (TREE_CODE (_q20))
13269 : {
13270 162 : CASE_CONVERT:
13271 162 : {
13272 162 : tree _q30 = TREE_OPERAND (_q20, 0);
13273 162 : if (zerop (_q21))
13274 : {
13275 83 : switch (TREE_CODE (_p2))
13276 : {
13277 0 : case NEGATE_EXPR:
13278 0 : {
13279 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13280 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13281 : {
13282 0 : {
13283 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13284 0 : const enum tree_code cmp = LT_EXPR;
13285 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13286 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13287 0 : && element_precision (captures[1])
13288 0 : <= element_precision (captures[0])
13289 0 : && bitwise_equal_p (captures[1], captures[2])
13290 0 : && (!VECTOR_TYPE_P (type)
13291 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13292 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13293 : )
13294 : {
13295 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13296 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13297 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13298 : )
13299 : {
13300 0 : {
13301 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13302 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13303 0 : if (types_match (captures[0], stype)
13304 : )
13305 : {
13306 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1938;
13307 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
13308 0 : {
13309 0 : tree res_op0;
13310 0 : {
13311 0 : tree _o1[1], _r1;
13312 0 : {
13313 0 : tree _o2[1], _r2;
13314 0 : _o2[0] = captures[0];
13315 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13316 0 : _o1[0] = _r2;
13317 : }
13318 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13319 0 : res_op0 = _r1;
13320 : }
13321 0 : tree _r;
13322 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13323 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13324 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13325 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
13326 0 : return _r;
13327 : }
13328 0 : next_after_fail1938:;
13329 : }
13330 : else
13331 : {
13332 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1939;
13333 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
13334 0 : {
13335 0 : tree res_op0;
13336 0 : {
13337 0 : tree _o1[1], _r1;
13338 0 : {
13339 0 : tree _o2[1], _r2;
13340 0 : {
13341 0 : tree _o3[1], _r3;
13342 0 : _o3[0] = captures[2];
13343 0 : if (TREE_TYPE (_o3[0]) != stype)
13344 : {
13345 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13346 : }
13347 : else
13348 : _r3 = _o3[0];
13349 0 : _o2[0] = _r3;
13350 : }
13351 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13352 0 : _o1[0] = _r2;
13353 : }
13354 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13355 0 : res_op0 = _r1;
13356 : }
13357 0 : tree _r;
13358 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13359 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13360 0 : return _r;
13361 : }
13362 0 : next_after_fail1939:;
13363 : }
13364 : }
13365 : }
13366 : else
13367 : {
13368 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1940;
13369 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
13370 0 : {
13371 0 : tree res_op0;
13372 0 : {
13373 0 : tree _o1[1], _r1;
13374 0 : {
13375 0 : tree _o2[1], _r2;
13376 0 : _o2[0] = captures[2];
13377 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13378 0 : _o1[0] = _r2;
13379 : }
13380 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13381 0 : res_op0 = _r1;
13382 : }
13383 0 : tree _r;
13384 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13385 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13386 0 : return _r;
13387 : }
13388 0 : next_after_fail1940:;
13389 : }
13390 : }
13391 : }
13392 : }
13393 : break;
13394 : }
13395 : default:;
13396 : }
13397 : }
13398 : break;
13399 : }
13400 20789 : default:;
13401 : }
13402 20789 : if (zerop (_q21))
13403 : {
13404 633 : switch (TREE_CODE (_p2))
13405 : {
13406 16 : case NEGATE_EXPR:
13407 16 : {
13408 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13409 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13410 : {
13411 16 : {
13412 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13413 16 : const enum tree_code cmp = LT_EXPR;
13414 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13415 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13416 32 : && element_precision (captures[1])
13417 16 : <= element_precision (captures[0])
13418 16 : && bitwise_equal_p (captures[1], captures[2])
13419 32 : && (!VECTOR_TYPE_P (type)
13420 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13421 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13422 : )
13423 : {
13424 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13425 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13426 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13427 : )
13428 : {
13429 0 : {
13430 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13431 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13432 0 : if (types_match (captures[0], stype)
13433 : )
13434 : {
13435 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1941;
13436 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
13437 0 : {
13438 0 : tree res_op0;
13439 0 : {
13440 0 : tree _o1[1], _r1;
13441 0 : {
13442 0 : tree _o2[1], _r2;
13443 0 : _o2[0] = captures[0];
13444 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13445 0 : _o1[0] = _r2;
13446 : }
13447 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13448 0 : res_op0 = _r1;
13449 : }
13450 0 : tree _r;
13451 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13452 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13453 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13454 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
13455 0 : return _r;
13456 : }
13457 16 : next_after_fail1941:;
13458 : }
13459 : else
13460 : {
13461 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1942;
13462 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
13463 0 : {
13464 0 : tree res_op0;
13465 0 : {
13466 0 : tree _o1[1], _r1;
13467 0 : {
13468 0 : tree _o2[1], _r2;
13469 0 : {
13470 0 : tree _o3[1], _r3;
13471 0 : _o3[0] = captures[2];
13472 0 : if (TREE_TYPE (_o3[0]) != stype)
13473 : {
13474 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13475 : }
13476 : else
13477 : _r3 = _o3[0];
13478 0 : _o2[0] = _r3;
13479 : }
13480 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13481 0 : _o1[0] = _r2;
13482 : }
13483 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13484 0 : res_op0 = _r1;
13485 : }
13486 0 : tree _r;
13487 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13488 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13489 0 : return _r;
13490 : }
13491 16 : next_after_fail1942:;
13492 : }
13493 : }
13494 : }
13495 : else
13496 : {
13497 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1943;
13498 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
13499 0 : {
13500 0 : tree res_op0;
13501 0 : {
13502 0 : tree _o1[1], _r1;
13503 0 : {
13504 0 : tree _o2[1], _r2;
13505 0 : _o2[0] = captures[2];
13506 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13507 0 : _o1[0] = _r2;
13508 : }
13509 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13510 0 : res_op0 = _r1;
13511 : }
13512 0 : tree _r;
13513 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13514 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13515 0 : return _r;
13516 : }
13517 16 : next_after_fail1943:;
13518 : }
13519 : }
13520 : }
13521 : }
13522 : break;
13523 : }
13524 : default:;
13525 : }
13526 : }
13527 20789 : switch (TREE_CODE (_q20))
13528 : {
13529 0 : case MINUS_EXPR:
13530 0 : {
13531 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13532 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13533 0 : if (zerop (_q21))
13534 : {
13535 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13536 : {
13537 0 : switch (TREE_CODE (_p2))
13538 : {
13539 0 : case MINUS_EXPR:
13540 0 : {
13541 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13542 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13543 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13544 : {
13545 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13546 : {
13547 0 : {
13548 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13549 0 : const enum tree_code cmp = LT_EXPR;
13550 0 : if (!HONOR_SIGNED_ZEROS (type)
13551 0 : && !TYPE_UNSIGNED (type)
13552 : )
13553 : {
13554 0 : if (ANY_INTEGRAL_TYPE_P (type)
13555 0 : && !TYPE_OVERFLOW_WRAPS (type)
13556 0 : && (!VECTOR_TYPE_P (type)
13557 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13558 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13559 : )
13560 : {
13561 0 : {
13562 0 : tree utype = unsigned_type_for (type);
13563 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1944;
13564 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1944;
13565 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
13566 0 : {
13567 0 : tree res_op0;
13568 0 : {
13569 0 : tree _o1[1], _r1;
13570 0 : {
13571 0 : tree _o2[1], _r2;
13572 0 : _o2[0] = captures[0];
13573 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13574 0 : _o1[0] = _r2;
13575 : }
13576 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13577 0 : res_op0 = _r1;
13578 : }
13579 0 : tree _r;
13580 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13581 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
13582 0 : return _r;
13583 : }
13584 0 : next_after_fail1944:;
13585 : }
13586 : }
13587 : else
13588 : {
13589 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1945;
13590 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1945;
13591 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
13592 0 : {
13593 0 : tree res_op0;
13594 0 : {
13595 0 : tree _o1[1], _r1;
13596 0 : _o1[0] = captures[0];
13597 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13598 0 : res_op0 = _r1;
13599 : }
13600 0 : tree _r;
13601 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13602 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13603 0 : return _r;
13604 : }
13605 0 : next_after_fail1945:;
13606 : }
13607 : }
13608 : }
13609 : }
13610 : }
13611 : break;
13612 : }
13613 : default:;
13614 : }
13615 : }
13616 : }
13617 : break;
13618 : }
13619 : default:;
13620 : }
13621 : break;
13622 : }
13623 384935 : default:;
13624 : }
13625 384935 : {
13626 384935 : tree _p0_pops[1];
13627 384935 : if (tree_logical_inverted_value (_p0, _p0_pops))
13628 : {
13629 962 : tree _q20 = _p0_pops[0];
13630 962 : if (tree_truth_valued_p (_q20))
13631 : {
13632 0 : {
13633 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13634 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13635 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13636 : )
13637 : {
13638 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
13639 0 : {
13640 0 : tree res_op0;
13641 0 : res_op0 = captures[0];
13642 0 : tree res_op1;
13643 0 : res_op1 = captures[2];
13644 0 : tree res_op2;
13645 0 : res_op2 = captures[1];
13646 0 : tree _r;
13647 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13648 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13649 0 : return _r;
13650 : }
13651 0 : next_after_fail1946:;
13652 : }
13653 : }
13654 : }
13655 : }
13656 : }
13657 384935 : switch (TREE_CODE (_p1))
13658 : {
13659 0 : case VIEW_CONVERT_EXPR:
13660 0 : {
13661 0 : tree _q30 = TREE_OPERAND (_p1, 0);
13662 0 : switch (TREE_CODE (_q30))
13663 : {
13664 0 : case CALL_EXPR:
13665 0 : switch (get_call_combined_fn (_q30))
13666 : {
13667 0 : case CFN_COND_ADD:
13668 0 : if (call_expr_nargs (_q30) == 4)
13669 : {
13670 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13671 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13672 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13673 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13674 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13675 : {
13676 0 : {
13677 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13678 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13679 0 : if (res) return res;
13680 : }
13681 : }
13682 : }
13683 : break;
13684 0 : case CFN_COND_AND:
13685 0 : if (call_expr_nargs (_q30) == 4)
13686 : {
13687 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13688 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13689 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13690 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13691 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13692 : {
13693 0 : {
13694 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13695 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13696 0 : if (res) return res;
13697 : }
13698 : }
13699 : }
13700 : break;
13701 0 : case CFN_COND_DIV:
13702 0 : if (call_expr_nargs (_q30) == 4)
13703 : {
13704 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13705 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13706 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13707 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13708 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13709 : {
13710 0 : {
13711 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13712 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
13713 0 : if (res) return res;
13714 : }
13715 : }
13716 : }
13717 : break;
13718 0 : case CFN_COND_IOR:
13719 0 : if (call_expr_nargs (_q30) == 4)
13720 : {
13721 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13722 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13723 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13724 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13725 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13726 : {
13727 0 : {
13728 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13729 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
13730 0 : if (res) return res;
13731 : }
13732 : }
13733 : }
13734 : break;
13735 0 : case CFN_COND_MAX:
13736 0 : if (call_expr_nargs (_q30) == 4)
13737 : {
13738 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13739 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13740 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13741 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13742 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13743 : {
13744 0 : {
13745 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13746 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
13747 0 : if (res) return res;
13748 : }
13749 : }
13750 : }
13751 : break;
13752 0 : case CFN_COND_MIN:
13753 0 : if (call_expr_nargs (_q30) == 4)
13754 : {
13755 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13756 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13757 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13758 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13759 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13760 : {
13761 0 : {
13762 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13763 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
13764 0 : if (res) return res;
13765 : }
13766 : }
13767 : }
13768 : break;
13769 0 : case CFN_COND_MOD:
13770 0 : if (call_expr_nargs (_q30) == 4)
13771 : {
13772 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13773 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13774 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13775 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13776 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13777 : {
13778 0 : {
13779 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13780 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
13781 0 : if (res) return res;
13782 : }
13783 : }
13784 : }
13785 : break;
13786 0 : case CFN_COND_MUL:
13787 0 : if (call_expr_nargs (_q30) == 4)
13788 : {
13789 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13790 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13791 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13792 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13793 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13794 : {
13795 0 : {
13796 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13797 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
13798 0 : if (res) return res;
13799 : }
13800 : }
13801 : }
13802 : break;
13803 0 : case CFN_COND_SHL:
13804 0 : if (call_expr_nargs (_q30) == 4)
13805 : {
13806 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13807 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13808 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13809 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13810 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13811 : {
13812 0 : {
13813 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13814 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
13815 0 : if (res) return res;
13816 : }
13817 : }
13818 : }
13819 : break;
13820 0 : case CFN_COND_SHR:
13821 0 : if (call_expr_nargs (_q30) == 4)
13822 : {
13823 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13824 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13825 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13826 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13827 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13828 : {
13829 0 : {
13830 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13831 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
13832 0 : if (res) return res;
13833 : }
13834 : }
13835 : }
13836 : break;
13837 0 : case CFN_COND_SUB:
13838 0 : if (call_expr_nargs (_q30) == 4)
13839 : {
13840 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13841 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13842 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13843 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13844 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13845 : {
13846 0 : {
13847 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13848 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
13849 0 : if (res) return res;
13850 : }
13851 : }
13852 : }
13853 : break;
13854 0 : case CFN_COND_XOR:
13855 0 : if (call_expr_nargs (_q30) == 4)
13856 : {
13857 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13858 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13859 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13860 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13861 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13862 : {
13863 0 : {
13864 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13865 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
13866 0 : if (res) return res;
13867 : }
13868 : }
13869 : }
13870 : break;
13871 0 : case CFN_COND_COPYSIGN:
13872 0 : if (call_expr_nargs (_q30) == 4)
13873 : {
13874 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13875 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13876 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13877 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13878 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13879 : {
13880 0 : {
13881 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13882 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
13883 0 : if (res) return res;
13884 : }
13885 : }
13886 : }
13887 : break;
13888 0 : case CFN_COND_FMAX:
13889 0 : if (call_expr_nargs (_q30) == 4)
13890 : {
13891 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13892 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13893 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13894 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13895 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13896 : {
13897 0 : {
13898 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13899 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
13900 0 : if (res) return res;
13901 : }
13902 : }
13903 : }
13904 : break;
13905 0 : case CFN_COND_FMIN:
13906 0 : if (call_expr_nargs (_q30) == 4)
13907 : {
13908 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13909 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13910 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13911 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13912 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13913 : {
13914 0 : {
13915 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13916 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
13917 0 : if (res) return res;
13918 : }
13919 : }
13920 : }
13921 : break;
13922 0 : case CFN_COND_RDIV:
13923 0 : if (call_expr_nargs (_q30) == 4)
13924 : {
13925 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13926 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13927 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13928 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13929 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13930 : {
13931 0 : {
13932 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13933 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
13934 0 : if (res) return res;
13935 : }
13936 : }
13937 : }
13938 : break;
13939 : default:;
13940 : }
13941 : break;
13942 : default:;
13943 : }
13944 : break;
13945 : }
13946 12 : case CALL_EXPR:
13947 12 : switch (get_call_combined_fn (_p1))
13948 : {
13949 0 : case CFN_COND_ADD:
13950 0 : if (call_expr_nargs (_p1) == 4)
13951 : {
13952 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
13953 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
13954 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
13955 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
13956 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
13957 : {
13958 0 : {
13959 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
13960 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13961 0 : if (res) return res;
13962 : }
13963 : }
13964 : }
13965 : break;
13966 0 : case CFN_COND_AND:
13967 0 : if (call_expr_nargs (_p1) == 4)
13968 : {
13969 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
13970 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
13971 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
13972 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
13973 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
13974 : {
13975 0 : {
13976 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
13977 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13978 0 : if (res) return res;
13979 : }
13980 : }
13981 : }
13982 : break;
13983 0 : case CFN_COND_DIV:
13984 0 : if (call_expr_nargs (_p1) == 4)
13985 : {
13986 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
13987 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
13988 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
13989 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
13990 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
13991 : {
13992 0 : {
13993 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
13994 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
13995 0 : if (res) return res;
13996 : }
13997 : }
13998 : }
13999 : break;
14000 0 : case CFN_COND_IOR:
14001 0 : if (call_expr_nargs (_p1) == 4)
14002 : {
14003 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14004 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14005 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14006 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14007 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14008 : {
14009 0 : {
14010 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14011 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14012 0 : if (res) return res;
14013 : }
14014 : }
14015 : }
14016 : break;
14017 0 : case CFN_COND_MAX:
14018 0 : if (call_expr_nargs (_p1) == 4)
14019 : {
14020 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14021 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14022 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14023 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14024 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14025 : {
14026 0 : {
14027 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14028 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14029 0 : if (res) return res;
14030 : }
14031 : }
14032 : }
14033 : break;
14034 0 : case CFN_COND_MIN:
14035 0 : if (call_expr_nargs (_p1) == 4)
14036 : {
14037 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14038 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14039 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14040 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14041 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14042 : {
14043 0 : {
14044 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14045 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14046 0 : if (res) return res;
14047 : }
14048 : }
14049 : }
14050 : break;
14051 0 : case CFN_COND_MOD:
14052 0 : if (call_expr_nargs (_p1) == 4)
14053 : {
14054 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14055 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14056 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14057 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14058 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14059 : {
14060 0 : {
14061 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14062 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14063 0 : if (res) return res;
14064 : }
14065 : }
14066 : }
14067 : break;
14068 0 : case CFN_COND_MUL:
14069 0 : if (call_expr_nargs (_p1) == 4)
14070 : {
14071 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14072 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14073 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14074 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14075 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14076 : {
14077 0 : {
14078 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14079 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14080 0 : if (res) return res;
14081 : }
14082 : }
14083 : }
14084 : break;
14085 0 : case CFN_COND_SHL:
14086 0 : if (call_expr_nargs (_p1) == 4)
14087 : {
14088 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14089 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14090 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14091 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14092 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14093 : {
14094 0 : {
14095 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14096 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14097 0 : if (res) return res;
14098 : }
14099 : }
14100 : }
14101 : break;
14102 0 : case CFN_COND_SHR:
14103 0 : if (call_expr_nargs (_p1) == 4)
14104 : {
14105 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14106 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14107 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14108 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14109 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14110 : {
14111 0 : {
14112 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14113 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14114 0 : if (res) return res;
14115 : }
14116 : }
14117 : }
14118 : break;
14119 0 : case CFN_COND_SUB:
14120 0 : if (call_expr_nargs (_p1) == 4)
14121 : {
14122 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14123 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14124 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14125 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14126 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14127 : {
14128 0 : {
14129 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14130 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14131 0 : if (res) return res;
14132 : }
14133 : }
14134 : }
14135 : break;
14136 0 : case CFN_COND_XOR:
14137 0 : if (call_expr_nargs (_p1) == 4)
14138 : {
14139 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14140 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14141 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14142 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14143 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14144 : {
14145 0 : {
14146 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14147 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14148 0 : if (res) return res;
14149 : }
14150 : }
14151 : }
14152 : break;
14153 0 : case CFN_COND_COPYSIGN:
14154 0 : if (call_expr_nargs (_p1) == 4)
14155 : {
14156 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14157 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14158 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14159 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14160 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14161 : {
14162 0 : {
14163 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14164 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14165 0 : if (res) return res;
14166 : }
14167 : }
14168 : }
14169 : break;
14170 0 : case CFN_COND_FMAX:
14171 0 : if (call_expr_nargs (_p1) == 4)
14172 : {
14173 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14174 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14175 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14176 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14177 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14178 : {
14179 0 : {
14180 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14181 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14182 0 : if (res) return res;
14183 : }
14184 : }
14185 : }
14186 : break;
14187 0 : case CFN_COND_FMIN:
14188 0 : if (call_expr_nargs (_p1) == 4)
14189 : {
14190 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14191 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14192 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14193 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14194 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14195 : {
14196 0 : {
14197 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14198 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14199 0 : if (res) return res;
14200 : }
14201 : }
14202 : }
14203 : break;
14204 0 : case CFN_COND_RDIV:
14205 0 : if (call_expr_nargs (_p1) == 4)
14206 : {
14207 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14208 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14209 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14210 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14211 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14212 : {
14213 0 : {
14214 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14215 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14216 0 : if (res) return res;
14217 : }
14218 : }
14219 : }
14220 : break;
14221 : default:;
14222 : }
14223 : break;
14224 384935 : default:;
14225 : }
14226 384935 : switch (TREE_CODE (_p2))
14227 : {
14228 0 : case VIEW_CONVERT_EXPR:
14229 0 : {
14230 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14231 0 : switch (TREE_CODE (_q40))
14232 : {
14233 0 : case CALL_EXPR:
14234 0 : switch (get_call_combined_fn (_q40))
14235 : {
14236 0 : case CFN_COND_ADD:
14237 0 : if (call_expr_nargs (_q40) == 4)
14238 : {
14239 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14240 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14241 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14242 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14243 0 : {
14244 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14245 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14246 0 : if (res) return res;
14247 : }
14248 : }
14249 : break;
14250 0 : case CFN_COND_AND:
14251 0 : if (call_expr_nargs (_q40) == 4)
14252 : {
14253 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14254 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14255 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14256 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14257 0 : {
14258 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14259 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14260 0 : if (res) return res;
14261 : }
14262 : }
14263 : break;
14264 0 : case CFN_COND_DIV:
14265 0 : if (call_expr_nargs (_q40) == 4)
14266 : {
14267 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14268 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14269 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14270 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14271 0 : {
14272 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14273 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14274 0 : if (res) return res;
14275 : }
14276 : }
14277 : break;
14278 0 : case CFN_COND_IOR:
14279 0 : if (call_expr_nargs (_q40) == 4)
14280 : {
14281 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14282 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14283 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14284 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14285 0 : {
14286 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14287 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14288 0 : if (res) return res;
14289 : }
14290 : }
14291 : break;
14292 0 : case CFN_COND_MAX:
14293 0 : if (call_expr_nargs (_q40) == 4)
14294 : {
14295 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14296 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14297 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14298 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14299 0 : {
14300 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14301 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14302 0 : if (res) return res;
14303 : }
14304 : }
14305 : break;
14306 0 : case CFN_COND_MIN:
14307 0 : if (call_expr_nargs (_q40) == 4)
14308 : {
14309 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14310 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14311 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14312 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14313 0 : {
14314 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14315 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14316 0 : if (res) return res;
14317 : }
14318 : }
14319 : break;
14320 0 : case CFN_COND_MOD:
14321 0 : if (call_expr_nargs (_q40) == 4)
14322 : {
14323 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14324 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14325 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14326 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14327 0 : {
14328 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14329 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14330 0 : if (res) return res;
14331 : }
14332 : }
14333 : break;
14334 0 : case CFN_COND_MUL:
14335 0 : if (call_expr_nargs (_q40) == 4)
14336 : {
14337 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14338 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14339 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14340 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14341 0 : {
14342 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14343 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14344 0 : if (res) return res;
14345 : }
14346 : }
14347 : break;
14348 0 : case CFN_COND_SHL:
14349 0 : if (call_expr_nargs (_q40) == 4)
14350 : {
14351 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14352 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14353 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14354 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14355 0 : {
14356 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14357 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14358 0 : if (res) return res;
14359 : }
14360 : }
14361 : break;
14362 0 : case CFN_COND_SHR:
14363 0 : if (call_expr_nargs (_q40) == 4)
14364 : {
14365 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14366 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14367 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14368 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14369 0 : {
14370 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14371 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14372 0 : if (res) return res;
14373 : }
14374 : }
14375 : break;
14376 0 : case CFN_COND_SUB:
14377 0 : if (call_expr_nargs (_q40) == 4)
14378 : {
14379 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14380 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14381 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14382 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14383 0 : {
14384 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14385 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14386 0 : if (res) return res;
14387 : }
14388 : }
14389 : break;
14390 0 : case CFN_COND_XOR:
14391 0 : if (call_expr_nargs (_q40) == 4)
14392 : {
14393 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14394 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14395 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14396 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14397 0 : {
14398 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14399 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14400 0 : if (res) return res;
14401 : }
14402 : }
14403 : break;
14404 0 : case CFN_COND_COPYSIGN:
14405 0 : if (call_expr_nargs (_q40) == 4)
14406 : {
14407 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14408 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14409 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14410 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14411 0 : {
14412 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14413 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14414 0 : if (res) return res;
14415 : }
14416 : }
14417 : break;
14418 0 : case CFN_COND_FMAX:
14419 0 : if (call_expr_nargs (_q40) == 4)
14420 : {
14421 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14422 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14423 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14424 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14425 0 : {
14426 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14427 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14428 0 : if (res) return res;
14429 : }
14430 : }
14431 : break;
14432 0 : case CFN_COND_FMIN:
14433 0 : if (call_expr_nargs (_q40) == 4)
14434 : {
14435 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14436 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14437 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14438 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14439 0 : {
14440 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14441 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14442 0 : if (res) return res;
14443 : }
14444 : }
14445 : break;
14446 0 : case CFN_COND_RDIV:
14447 0 : if (call_expr_nargs (_q40) == 4)
14448 : {
14449 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14450 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14451 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14452 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14453 0 : {
14454 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14455 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14456 0 : if (res) return res;
14457 : }
14458 : }
14459 : break;
14460 : default:;
14461 : }
14462 : break;
14463 : default:;
14464 : }
14465 : break;
14466 : }
14467 12 : case CALL_EXPR:
14468 12 : switch (get_call_combined_fn (_p2))
14469 : {
14470 0 : case CFN_COND_ADD:
14471 0 : if (call_expr_nargs (_p2) == 4)
14472 : {
14473 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14474 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14475 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14476 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14477 0 : {
14478 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14479 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14480 0 : if (res) return res;
14481 : }
14482 : }
14483 : break;
14484 0 : case CFN_COND_AND:
14485 0 : if (call_expr_nargs (_p2) == 4)
14486 : {
14487 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14488 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14489 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14490 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14491 0 : {
14492 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14493 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14494 0 : if (res) return res;
14495 : }
14496 : }
14497 : break;
14498 0 : case CFN_COND_DIV:
14499 0 : if (call_expr_nargs (_p2) == 4)
14500 : {
14501 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14502 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14503 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14504 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14505 0 : {
14506 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14507 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14508 0 : if (res) return res;
14509 : }
14510 : }
14511 : break;
14512 0 : case CFN_COND_IOR:
14513 0 : if (call_expr_nargs (_p2) == 4)
14514 : {
14515 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14516 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14517 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14518 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14519 0 : {
14520 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14521 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14522 0 : if (res) return res;
14523 : }
14524 : }
14525 : break;
14526 0 : case CFN_COND_MAX:
14527 0 : if (call_expr_nargs (_p2) == 4)
14528 : {
14529 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14530 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14531 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14532 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14533 0 : {
14534 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14535 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14536 0 : if (res) return res;
14537 : }
14538 : }
14539 : break;
14540 0 : case CFN_COND_MIN:
14541 0 : if (call_expr_nargs (_p2) == 4)
14542 : {
14543 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14544 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14545 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14546 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14547 0 : {
14548 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14549 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14550 0 : if (res) return res;
14551 : }
14552 : }
14553 : break;
14554 0 : case CFN_COND_MOD:
14555 0 : if (call_expr_nargs (_p2) == 4)
14556 : {
14557 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14558 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14559 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14560 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14561 0 : {
14562 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14563 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14564 0 : if (res) return res;
14565 : }
14566 : }
14567 : break;
14568 0 : case CFN_COND_MUL:
14569 0 : if (call_expr_nargs (_p2) == 4)
14570 : {
14571 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14572 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14573 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14574 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14575 0 : {
14576 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14577 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14578 0 : if (res) return res;
14579 : }
14580 : }
14581 : break;
14582 0 : case CFN_COND_SHL:
14583 0 : if (call_expr_nargs (_p2) == 4)
14584 : {
14585 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14586 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14587 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14588 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14589 0 : {
14590 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14591 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14592 0 : if (res) return res;
14593 : }
14594 : }
14595 : break;
14596 0 : case CFN_COND_SHR:
14597 0 : if (call_expr_nargs (_p2) == 4)
14598 : {
14599 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14600 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14601 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14602 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14603 0 : {
14604 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14605 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14606 0 : if (res) return res;
14607 : }
14608 : }
14609 : break;
14610 0 : case CFN_COND_SUB:
14611 0 : if (call_expr_nargs (_p2) == 4)
14612 : {
14613 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14614 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14615 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14616 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14617 0 : {
14618 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14619 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14620 0 : if (res) return res;
14621 : }
14622 : }
14623 : break;
14624 0 : case CFN_COND_XOR:
14625 0 : if (call_expr_nargs (_p2) == 4)
14626 : {
14627 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14628 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14629 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14630 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14631 0 : {
14632 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14633 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14634 0 : if (res) return res;
14635 : }
14636 : }
14637 : break;
14638 0 : case CFN_COND_COPYSIGN:
14639 0 : if (call_expr_nargs (_p2) == 4)
14640 : {
14641 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14642 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14643 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14644 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14645 0 : {
14646 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14647 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14648 0 : if (res) return res;
14649 : }
14650 : }
14651 : break;
14652 0 : case CFN_COND_FMAX:
14653 0 : if (call_expr_nargs (_p2) == 4)
14654 : {
14655 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14656 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14657 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14658 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14659 0 : {
14660 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14661 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14662 0 : if (res) return res;
14663 : }
14664 : }
14665 : break;
14666 0 : case CFN_COND_FMIN:
14667 0 : if (call_expr_nargs (_p2) == 4)
14668 : {
14669 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14670 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14671 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14672 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14673 0 : {
14674 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14675 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14676 0 : if (res) return res;
14677 : }
14678 : }
14679 : break;
14680 0 : case CFN_COND_RDIV:
14681 0 : if (call_expr_nargs (_p2) == 4)
14682 : {
14683 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14684 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14685 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14686 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14687 0 : {
14688 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14689 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14690 0 : if (res) return res;
14691 : }
14692 : }
14693 : break;
14694 : default:;
14695 : }
14696 : break;
14697 384935 : default:;
14698 : }
14699 384935 : switch (TREE_CODE (_p1))
14700 : {
14701 0 : case VIEW_CONVERT_EXPR:
14702 0 : {
14703 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14704 0 : switch (TREE_CODE (_q30))
14705 : {
14706 0 : case CALL_EXPR:
14707 0 : switch (get_call_combined_fn (_q30))
14708 : {
14709 0 : case CFN_COND_FMA:
14710 0 : if (call_expr_nargs (_q30) == 5)
14711 : {
14712 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14713 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14714 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14715 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14716 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14717 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14718 : {
14719 0 : {
14720 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14721 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14722 0 : if (res) return res;
14723 : }
14724 : }
14725 : }
14726 : break;
14727 0 : case CFN_COND_FMS:
14728 0 : if (call_expr_nargs (_q30) == 5)
14729 : {
14730 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14731 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14732 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14733 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14734 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14735 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14736 : {
14737 0 : {
14738 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14739 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14740 0 : if (res) return res;
14741 : }
14742 : }
14743 : }
14744 : break;
14745 0 : case CFN_COND_FNMA:
14746 0 : if (call_expr_nargs (_q30) == 5)
14747 : {
14748 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14749 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14750 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14751 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14752 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14753 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14754 : {
14755 0 : {
14756 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14757 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14758 0 : if (res) return res;
14759 : }
14760 : }
14761 : }
14762 : break;
14763 0 : case CFN_COND_FNMS:
14764 0 : if (call_expr_nargs (_q30) == 5)
14765 : {
14766 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14767 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14768 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14769 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14770 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14771 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14772 : {
14773 0 : {
14774 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14775 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14776 0 : if (res) return res;
14777 : }
14778 : }
14779 : }
14780 : break;
14781 : default:;
14782 : }
14783 : break;
14784 : default:;
14785 : }
14786 : break;
14787 : }
14788 12 : case CALL_EXPR:
14789 12 : switch (get_call_combined_fn (_p1))
14790 : {
14791 0 : case CFN_COND_FMA:
14792 0 : if (call_expr_nargs (_p1) == 5)
14793 : {
14794 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14795 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14796 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14797 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14798 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14799 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14800 : {
14801 0 : {
14802 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14803 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14804 0 : if (res) return res;
14805 : }
14806 : }
14807 : }
14808 : break;
14809 0 : case CFN_COND_FMS:
14810 0 : if (call_expr_nargs (_p1) == 5)
14811 : {
14812 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14813 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14814 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14815 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14816 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14817 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14818 : {
14819 0 : {
14820 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14821 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14822 0 : if (res) return res;
14823 : }
14824 : }
14825 : }
14826 : break;
14827 0 : case CFN_COND_FNMA:
14828 0 : if (call_expr_nargs (_p1) == 5)
14829 : {
14830 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14831 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14832 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14833 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14834 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14835 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14836 : {
14837 0 : {
14838 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14839 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14840 0 : if (res) return res;
14841 : }
14842 : }
14843 : }
14844 : break;
14845 0 : case CFN_COND_FNMS:
14846 0 : if (call_expr_nargs (_p1) == 5)
14847 : {
14848 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14849 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14850 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14851 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14852 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14853 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14854 : {
14855 0 : {
14856 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14857 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14858 0 : if (res) return res;
14859 : }
14860 : }
14861 : }
14862 : break;
14863 : default:;
14864 : }
14865 : break;
14866 384935 : default:;
14867 : }
14868 384935 : switch (TREE_CODE (_p2))
14869 : {
14870 0 : case VIEW_CONVERT_EXPR:
14871 0 : {
14872 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14873 0 : switch (TREE_CODE (_q40))
14874 : {
14875 0 : case CALL_EXPR:
14876 0 : switch (get_call_combined_fn (_q40))
14877 : {
14878 0 : case CFN_COND_FMA:
14879 0 : if (call_expr_nargs (_q40) == 5)
14880 : {
14881 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14882 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14883 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14884 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14885 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14886 0 : {
14887 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14888 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14889 0 : if (res) return res;
14890 : }
14891 : }
14892 : break;
14893 0 : case CFN_COND_FMS:
14894 0 : if (call_expr_nargs (_q40) == 5)
14895 : {
14896 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14897 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14898 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14899 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14900 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14901 0 : {
14902 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14903 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14904 0 : if (res) return res;
14905 : }
14906 : }
14907 : break;
14908 0 : case CFN_COND_FNMA:
14909 0 : if (call_expr_nargs (_q40) == 5)
14910 : {
14911 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14912 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14913 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14914 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14915 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14916 0 : {
14917 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14918 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14919 0 : if (res) return res;
14920 : }
14921 : }
14922 : break;
14923 0 : case CFN_COND_FNMS:
14924 0 : if (call_expr_nargs (_q40) == 5)
14925 : {
14926 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14927 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14928 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14929 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14930 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14931 0 : {
14932 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14933 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14934 0 : if (res) return res;
14935 : }
14936 : }
14937 : break;
14938 : default:;
14939 : }
14940 : break;
14941 : default:;
14942 : }
14943 : break;
14944 : }
14945 12 : case CALL_EXPR:
14946 12 : switch (get_call_combined_fn (_p2))
14947 : {
14948 0 : case CFN_COND_FMA:
14949 0 : if (call_expr_nargs (_p2) == 5)
14950 : {
14951 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14952 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14953 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14954 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14955 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
14956 0 : {
14957 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
14958 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14959 0 : if (res) return res;
14960 : }
14961 : }
14962 : break;
14963 0 : case CFN_COND_FMS:
14964 0 : if (call_expr_nargs (_p2) == 5)
14965 : {
14966 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14967 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14968 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14969 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14970 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
14971 0 : {
14972 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
14973 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14974 0 : if (res) return res;
14975 : }
14976 : }
14977 : break;
14978 0 : case CFN_COND_FNMA:
14979 0 : if (call_expr_nargs (_p2) == 5)
14980 : {
14981 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14982 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14983 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14984 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14985 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
14986 0 : {
14987 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
14988 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14989 0 : if (res) return res;
14990 : }
14991 : }
14992 : break;
14993 0 : case CFN_COND_FNMS:
14994 0 : if (call_expr_nargs (_p2) == 5)
14995 : {
14996 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14997 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14998 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14999 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15000 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15001 0 : {
15002 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15003 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15004 0 : if (res) return res;
15005 : }
15006 : }
15007 : break;
15008 : default:;
15009 : }
15010 : break;
15011 384935 : default:;
15012 : }
15013 384935 : switch (TREE_CODE (_p1))
15014 : {
15015 0 : case VIEW_CONVERT_EXPR:
15016 0 : {
15017 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15018 0 : switch (TREE_CODE (_q30))
15019 : {
15020 0 : case CALL_EXPR:
15021 0 : switch (get_call_combined_fn (_q30))
15022 : {
15023 0 : case CFN_COND_LEN_ADD:
15024 0 : if (call_expr_nargs (_q30) == 6)
15025 : {
15026 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15027 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15028 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15029 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15030 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15031 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15032 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15033 : {
15034 0 : {
15035 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15036 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15037 0 : if (res) return res;
15038 : }
15039 : }
15040 : }
15041 : break;
15042 0 : case CFN_COND_LEN_AND:
15043 0 : if (call_expr_nargs (_q30) == 6)
15044 : {
15045 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15046 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15047 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15048 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15049 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15050 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15051 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15052 : {
15053 0 : {
15054 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15055 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15056 0 : if (res) return res;
15057 : }
15058 : }
15059 : }
15060 : break;
15061 0 : case CFN_COND_LEN_DIV:
15062 0 : if (call_expr_nargs (_q30) == 6)
15063 : {
15064 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15065 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15066 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15067 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15068 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15069 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15070 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15071 : {
15072 0 : {
15073 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15074 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15075 0 : if (res) return res;
15076 : }
15077 : }
15078 : }
15079 : break;
15080 0 : case CFN_COND_LEN_IOR:
15081 0 : if (call_expr_nargs (_q30) == 6)
15082 : {
15083 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15084 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15085 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15086 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15087 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15088 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15089 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15090 : {
15091 0 : {
15092 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15093 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15094 0 : if (res) return res;
15095 : }
15096 : }
15097 : }
15098 : break;
15099 0 : case CFN_COND_LEN_MAX:
15100 0 : if (call_expr_nargs (_q30) == 6)
15101 : {
15102 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15103 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15104 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15105 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15106 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15107 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15108 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15109 : {
15110 0 : {
15111 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15112 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15113 0 : if (res) return res;
15114 : }
15115 : }
15116 : }
15117 : break;
15118 0 : case CFN_COND_LEN_MIN:
15119 0 : if (call_expr_nargs (_q30) == 6)
15120 : {
15121 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15122 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15123 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15124 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15125 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15126 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15127 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15128 : {
15129 0 : {
15130 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15131 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15132 0 : if (res) return res;
15133 : }
15134 : }
15135 : }
15136 : break;
15137 0 : case CFN_COND_LEN_MOD:
15138 0 : if (call_expr_nargs (_q30) == 6)
15139 : {
15140 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15141 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15142 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15143 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15144 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15145 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15146 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15147 : {
15148 0 : {
15149 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15150 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15151 0 : if (res) return res;
15152 : }
15153 : }
15154 : }
15155 : break;
15156 0 : case CFN_COND_LEN_MUL:
15157 0 : if (call_expr_nargs (_q30) == 6)
15158 : {
15159 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15160 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15161 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15162 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15163 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15164 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15165 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15166 : {
15167 0 : {
15168 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15169 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15170 0 : if (res) return res;
15171 : }
15172 : }
15173 : }
15174 : break;
15175 0 : case CFN_COND_LEN_SHL:
15176 0 : if (call_expr_nargs (_q30) == 6)
15177 : {
15178 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15179 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15180 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15181 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15182 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15183 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15184 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15185 : {
15186 0 : {
15187 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15188 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15189 0 : if (res) return res;
15190 : }
15191 : }
15192 : }
15193 : break;
15194 0 : case CFN_COND_LEN_SHR:
15195 0 : if (call_expr_nargs (_q30) == 6)
15196 : {
15197 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15198 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15199 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15200 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15201 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15202 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15203 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15204 : {
15205 0 : {
15206 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15207 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15208 0 : if (res) return res;
15209 : }
15210 : }
15211 : }
15212 : break;
15213 0 : case CFN_COND_LEN_SUB:
15214 0 : if (call_expr_nargs (_q30) == 6)
15215 : {
15216 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15217 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15218 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15219 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15220 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15221 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15222 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15223 : {
15224 0 : {
15225 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15226 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15227 0 : if (res) return res;
15228 : }
15229 : }
15230 : }
15231 : break;
15232 0 : case CFN_COND_LEN_XOR:
15233 0 : if (call_expr_nargs (_q30) == 6)
15234 : {
15235 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15236 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15237 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15238 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15239 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15240 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15241 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15242 : {
15243 0 : {
15244 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15245 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15246 0 : if (res) return res;
15247 : }
15248 : }
15249 : }
15250 : break;
15251 0 : case CFN_COND_LEN_FMAX:
15252 0 : if (call_expr_nargs (_q30) == 6)
15253 : {
15254 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15255 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15256 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15257 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15258 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15259 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15260 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15261 : {
15262 0 : {
15263 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15264 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15265 0 : if (res) return res;
15266 : }
15267 : }
15268 : }
15269 : break;
15270 0 : case CFN_COND_LEN_FMIN:
15271 0 : if (call_expr_nargs (_q30) == 6)
15272 : {
15273 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15274 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15275 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15276 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15277 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15278 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15279 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15280 : {
15281 0 : {
15282 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15283 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15284 0 : if (res) return res;
15285 : }
15286 : }
15287 : }
15288 : break;
15289 0 : case CFN_COND_LEN_RDIV:
15290 0 : if (call_expr_nargs (_q30) == 6)
15291 : {
15292 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15293 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15294 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15295 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15296 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15297 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15298 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15299 : {
15300 0 : {
15301 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15302 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15303 0 : if (res) return res;
15304 : }
15305 : }
15306 : }
15307 : break;
15308 0 : case CFN_COND_LEN_COPYSIGN:
15309 0 : if (call_expr_nargs (_q30) == 6)
15310 : {
15311 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15312 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15313 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15314 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15315 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15316 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15317 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15318 : {
15319 0 : {
15320 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15321 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15322 0 : if (res) return res;
15323 : }
15324 : }
15325 : }
15326 : break;
15327 : default:;
15328 : }
15329 : break;
15330 : default:;
15331 : }
15332 : break;
15333 : }
15334 12 : case CALL_EXPR:
15335 12 : switch (get_call_combined_fn (_p1))
15336 : {
15337 0 : case CFN_COND_LEN_ADD:
15338 0 : if (call_expr_nargs (_p1) == 6)
15339 : {
15340 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15341 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15342 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15343 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15344 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15345 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15346 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15347 : {
15348 0 : {
15349 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15350 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15351 0 : if (res) return res;
15352 : }
15353 : }
15354 : }
15355 : break;
15356 0 : case CFN_COND_LEN_AND:
15357 0 : if (call_expr_nargs (_p1) == 6)
15358 : {
15359 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15360 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15361 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15362 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15363 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15364 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15365 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15366 : {
15367 0 : {
15368 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15369 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15370 0 : if (res) return res;
15371 : }
15372 : }
15373 : }
15374 : break;
15375 0 : case CFN_COND_LEN_DIV:
15376 0 : if (call_expr_nargs (_p1) == 6)
15377 : {
15378 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15379 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15380 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15381 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15382 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15383 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15384 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15385 : {
15386 0 : {
15387 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15388 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15389 0 : if (res) return res;
15390 : }
15391 : }
15392 : }
15393 : break;
15394 0 : case CFN_COND_LEN_IOR:
15395 0 : if (call_expr_nargs (_p1) == 6)
15396 : {
15397 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15398 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15399 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15400 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15401 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15402 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15403 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15404 : {
15405 0 : {
15406 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15407 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15408 0 : if (res) return res;
15409 : }
15410 : }
15411 : }
15412 : break;
15413 0 : case CFN_COND_LEN_MAX:
15414 0 : if (call_expr_nargs (_p1) == 6)
15415 : {
15416 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15417 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15418 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15419 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15420 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15421 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15422 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15423 : {
15424 0 : {
15425 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15426 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15427 0 : if (res) return res;
15428 : }
15429 : }
15430 : }
15431 : break;
15432 0 : case CFN_COND_LEN_MIN:
15433 0 : if (call_expr_nargs (_p1) == 6)
15434 : {
15435 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15436 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15437 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15438 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15439 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15440 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15441 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15442 : {
15443 0 : {
15444 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15445 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15446 0 : if (res) return res;
15447 : }
15448 : }
15449 : }
15450 : break;
15451 0 : case CFN_COND_LEN_MOD:
15452 0 : if (call_expr_nargs (_p1) == 6)
15453 : {
15454 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15455 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15456 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15457 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15458 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15459 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15460 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15461 : {
15462 0 : {
15463 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15464 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15465 0 : if (res) return res;
15466 : }
15467 : }
15468 : }
15469 : break;
15470 0 : case CFN_COND_LEN_MUL:
15471 0 : if (call_expr_nargs (_p1) == 6)
15472 : {
15473 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15474 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15475 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15476 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15477 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15478 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15479 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15480 : {
15481 0 : {
15482 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15483 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15484 0 : if (res) return res;
15485 : }
15486 : }
15487 : }
15488 : break;
15489 0 : case CFN_COND_LEN_SHL:
15490 0 : if (call_expr_nargs (_p1) == 6)
15491 : {
15492 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15493 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15494 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15495 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15496 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15497 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15498 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15499 : {
15500 0 : {
15501 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15502 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15503 0 : if (res) return res;
15504 : }
15505 : }
15506 : }
15507 : break;
15508 0 : case CFN_COND_LEN_SHR:
15509 0 : if (call_expr_nargs (_p1) == 6)
15510 : {
15511 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15512 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15513 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15514 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15515 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15516 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15517 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15518 : {
15519 0 : {
15520 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15521 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15522 0 : if (res) return res;
15523 : }
15524 : }
15525 : }
15526 : break;
15527 0 : case CFN_COND_LEN_SUB:
15528 0 : if (call_expr_nargs (_p1) == 6)
15529 : {
15530 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15531 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15532 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15533 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15534 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15535 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15536 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15537 : {
15538 0 : {
15539 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15540 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15541 0 : if (res) return res;
15542 : }
15543 : }
15544 : }
15545 : break;
15546 0 : case CFN_COND_LEN_XOR:
15547 0 : if (call_expr_nargs (_p1) == 6)
15548 : {
15549 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15550 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15551 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15552 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15553 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15554 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15555 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15556 : {
15557 0 : {
15558 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15559 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15560 0 : if (res) return res;
15561 : }
15562 : }
15563 : }
15564 : break;
15565 0 : case CFN_COND_LEN_FMAX:
15566 0 : if (call_expr_nargs (_p1) == 6)
15567 : {
15568 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15569 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15570 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15571 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15572 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15573 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15574 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15575 : {
15576 0 : {
15577 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15578 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15579 0 : if (res) return res;
15580 : }
15581 : }
15582 : }
15583 : break;
15584 0 : case CFN_COND_LEN_FMIN:
15585 0 : if (call_expr_nargs (_p1) == 6)
15586 : {
15587 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15588 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15589 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15590 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15591 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15592 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15593 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15594 : {
15595 0 : {
15596 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15597 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15598 0 : if (res) return res;
15599 : }
15600 : }
15601 : }
15602 : break;
15603 0 : case CFN_COND_LEN_RDIV:
15604 0 : if (call_expr_nargs (_p1) == 6)
15605 : {
15606 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15607 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15608 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15609 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15610 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15611 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15612 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15613 : {
15614 0 : {
15615 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15616 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15617 0 : if (res) return res;
15618 : }
15619 : }
15620 : }
15621 : break;
15622 0 : case CFN_COND_LEN_COPYSIGN:
15623 0 : if (call_expr_nargs (_p1) == 6)
15624 : {
15625 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15626 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15627 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15628 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15629 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15630 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15631 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15632 : {
15633 0 : {
15634 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15635 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15636 0 : if (res) return res;
15637 : }
15638 : }
15639 : }
15640 : break;
15641 : default:;
15642 : }
15643 : break;
15644 384935 : default:;
15645 : }
15646 384935 : switch (TREE_CODE (_p2))
15647 : {
15648 0 : case VIEW_CONVERT_EXPR:
15649 0 : {
15650 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15651 0 : switch (TREE_CODE (_q40))
15652 : {
15653 0 : case CALL_EXPR:
15654 0 : switch (get_call_combined_fn (_q40))
15655 : {
15656 0 : case CFN_COND_LEN_ADD:
15657 0 : if (call_expr_nargs (_q40) == 6)
15658 : {
15659 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15660 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15661 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15662 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15663 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15664 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15665 0 : {
15666 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15667 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15668 0 : if (res) return res;
15669 : }
15670 : }
15671 : break;
15672 0 : case CFN_COND_LEN_AND:
15673 0 : if (call_expr_nargs (_q40) == 6)
15674 : {
15675 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15676 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15677 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15678 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15679 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15680 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15681 0 : {
15682 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15683 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15684 0 : if (res) return res;
15685 : }
15686 : }
15687 : break;
15688 0 : case CFN_COND_LEN_DIV:
15689 0 : if (call_expr_nargs (_q40) == 6)
15690 : {
15691 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15692 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15693 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15694 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15695 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15696 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15697 0 : {
15698 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15699 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15700 0 : if (res) return res;
15701 : }
15702 : }
15703 : break;
15704 0 : case CFN_COND_LEN_IOR:
15705 0 : if (call_expr_nargs (_q40) == 6)
15706 : {
15707 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15708 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15709 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15710 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15711 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15712 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15713 0 : {
15714 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15715 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15716 0 : if (res) return res;
15717 : }
15718 : }
15719 : break;
15720 0 : case CFN_COND_LEN_MAX:
15721 0 : if (call_expr_nargs (_q40) == 6)
15722 : {
15723 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15724 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15725 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15726 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15727 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15728 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15729 0 : {
15730 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15731 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15732 0 : if (res) return res;
15733 : }
15734 : }
15735 : break;
15736 0 : case CFN_COND_LEN_MIN:
15737 0 : if (call_expr_nargs (_q40) == 6)
15738 : {
15739 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15740 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15741 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15742 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15743 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15744 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15745 0 : {
15746 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15747 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15748 0 : if (res) return res;
15749 : }
15750 : }
15751 : break;
15752 0 : case CFN_COND_LEN_MOD:
15753 0 : if (call_expr_nargs (_q40) == 6)
15754 : {
15755 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15756 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15757 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15758 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15759 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15760 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15761 0 : {
15762 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15763 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15764 0 : if (res) return res;
15765 : }
15766 : }
15767 : break;
15768 0 : case CFN_COND_LEN_MUL:
15769 0 : if (call_expr_nargs (_q40) == 6)
15770 : {
15771 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15772 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15773 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15774 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15775 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15776 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15777 0 : {
15778 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15779 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15780 0 : if (res) return res;
15781 : }
15782 : }
15783 : break;
15784 0 : case CFN_COND_LEN_SHL:
15785 0 : if (call_expr_nargs (_q40) == 6)
15786 : {
15787 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15788 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15789 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15790 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15791 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15792 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15793 0 : {
15794 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15795 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15796 0 : if (res) return res;
15797 : }
15798 : }
15799 : break;
15800 0 : case CFN_COND_LEN_SHR:
15801 0 : if (call_expr_nargs (_q40) == 6)
15802 : {
15803 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15804 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15805 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15806 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15807 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15808 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15809 0 : {
15810 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15811 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15812 0 : if (res) return res;
15813 : }
15814 : }
15815 : break;
15816 0 : case CFN_COND_LEN_SUB:
15817 0 : if (call_expr_nargs (_q40) == 6)
15818 : {
15819 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15820 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15821 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15822 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15823 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15824 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15825 0 : {
15826 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15827 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15828 0 : if (res) return res;
15829 : }
15830 : }
15831 : break;
15832 0 : case CFN_COND_LEN_XOR:
15833 0 : if (call_expr_nargs (_q40) == 6)
15834 : {
15835 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15836 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15837 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15838 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15839 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15840 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15841 0 : {
15842 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15843 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15844 0 : if (res) return res;
15845 : }
15846 : }
15847 : break;
15848 0 : case CFN_COND_LEN_FMAX:
15849 0 : if (call_expr_nargs (_q40) == 6)
15850 : {
15851 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15852 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15853 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15854 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15855 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15856 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15857 0 : {
15858 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15859 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15860 0 : if (res) return res;
15861 : }
15862 : }
15863 : break;
15864 0 : case CFN_COND_LEN_FMIN:
15865 0 : if (call_expr_nargs (_q40) == 6)
15866 : {
15867 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15868 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15869 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15870 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15871 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15872 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15873 0 : {
15874 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15875 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15876 0 : if (res) return res;
15877 : }
15878 : }
15879 : break;
15880 0 : case CFN_COND_LEN_RDIV:
15881 0 : if (call_expr_nargs (_q40) == 6)
15882 : {
15883 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15884 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15885 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15886 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15887 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15888 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15889 0 : {
15890 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15891 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15892 0 : if (res) return res;
15893 : }
15894 : }
15895 : break;
15896 0 : case CFN_COND_LEN_COPYSIGN:
15897 0 : if (call_expr_nargs (_q40) == 6)
15898 : {
15899 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15900 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15901 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15902 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15903 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15904 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15905 0 : {
15906 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15907 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15908 0 : if (res) return res;
15909 : }
15910 : }
15911 : break;
15912 : default:;
15913 : }
15914 : break;
15915 : default:;
15916 : }
15917 : break;
15918 : }
15919 12 : case CALL_EXPR:
15920 12 : switch (get_call_combined_fn (_p2))
15921 : {
15922 0 : case CFN_COND_LEN_ADD:
15923 0 : if (call_expr_nargs (_p2) == 6)
15924 : {
15925 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15926 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15927 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15928 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15929 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15930 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15931 0 : {
15932 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15933 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15934 0 : if (res) return res;
15935 : }
15936 : }
15937 : break;
15938 0 : case CFN_COND_LEN_AND:
15939 0 : if (call_expr_nargs (_p2) == 6)
15940 : {
15941 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15942 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15943 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15944 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15945 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15946 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15947 0 : {
15948 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15949 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15950 0 : if (res) return res;
15951 : }
15952 : }
15953 : break;
15954 0 : case CFN_COND_LEN_DIV:
15955 0 : if (call_expr_nargs (_p2) == 6)
15956 : {
15957 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15958 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15959 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15960 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15961 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15962 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15963 0 : {
15964 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15965 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15966 0 : if (res) return res;
15967 : }
15968 : }
15969 : break;
15970 0 : case CFN_COND_LEN_IOR:
15971 0 : if (call_expr_nargs (_p2) == 6)
15972 : {
15973 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15974 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15975 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15976 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15977 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15978 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15979 0 : {
15980 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15981 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15982 0 : if (res) return res;
15983 : }
15984 : }
15985 : break;
15986 0 : case CFN_COND_LEN_MAX:
15987 0 : if (call_expr_nargs (_p2) == 6)
15988 : {
15989 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15990 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15991 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15992 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15993 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15994 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15995 0 : {
15996 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15997 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15998 0 : if (res) return res;
15999 : }
16000 : }
16001 : break;
16002 0 : case CFN_COND_LEN_MIN:
16003 0 : if (call_expr_nargs (_p2) == 6)
16004 : {
16005 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16006 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16007 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16008 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16009 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16010 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16011 0 : {
16012 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16013 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16014 0 : if (res) return res;
16015 : }
16016 : }
16017 : break;
16018 0 : case CFN_COND_LEN_MOD:
16019 0 : if (call_expr_nargs (_p2) == 6)
16020 : {
16021 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16022 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16023 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16024 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16025 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16026 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16027 0 : {
16028 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16029 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16030 0 : if (res) return res;
16031 : }
16032 : }
16033 : break;
16034 0 : case CFN_COND_LEN_MUL:
16035 0 : if (call_expr_nargs (_p2) == 6)
16036 : {
16037 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16038 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16039 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16040 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16041 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16042 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16043 0 : {
16044 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16045 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16046 0 : if (res) return res;
16047 : }
16048 : }
16049 : break;
16050 0 : case CFN_COND_LEN_SHL:
16051 0 : if (call_expr_nargs (_p2) == 6)
16052 : {
16053 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16054 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16055 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16056 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16057 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16058 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16059 0 : {
16060 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16061 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16062 0 : if (res) return res;
16063 : }
16064 : }
16065 : break;
16066 0 : case CFN_COND_LEN_SHR:
16067 0 : if (call_expr_nargs (_p2) == 6)
16068 : {
16069 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16070 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16071 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16072 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16073 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16074 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16075 0 : {
16076 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16077 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16078 0 : if (res) return res;
16079 : }
16080 : }
16081 : break;
16082 0 : case CFN_COND_LEN_SUB:
16083 0 : if (call_expr_nargs (_p2) == 6)
16084 : {
16085 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16086 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16087 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16088 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16089 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16090 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16091 0 : {
16092 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16093 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16094 0 : if (res) return res;
16095 : }
16096 : }
16097 : break;
16098 0 : case CFN_COND_LEN_XOR:
16099 0 : if (call_expr_nargs (_p2) == 6)
16100 : {
16101 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16102 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16103 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16104 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16105 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16106 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16107 0 : {
16108 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16109 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16110 0 : if (res) return res;
16111 : }
16112 : }
16113 : break;
16114 0 : case CFN_COND_LEN_FMAX:
16115 0 : if (call_expr_nargs (_p2) == 6)
16116 : {
16117 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16118 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16119 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16120 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16121 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16122 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16123 0 : {
16124 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16125 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16126 0 : if (res) return res;
16127 : }
16128 : }
16129 : break;
16130 0 : case CFN_COND_LEN_FMIN:
16131 0 : if (call_expr_nargs (_p2) == 6)
16132 : {
16133 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16134 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16135 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16136 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16137 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16138 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16139 0 : {
16140 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16141 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16142 0 : if (res) return res;
16143 : }
16144 : }
16145 : break;
16146 0 : case CFN_COND_LEN_RDIV:
16147 0 : if (call_expr_nargs (_p2) == 6)
16148 : {
16149 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16150 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16151 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16152 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16153 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16154 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16155 0 : {
16156 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16157 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16158 0 : if (res) return res;
16159 : }
16160 : }
16161 : break;
16162 0 : case CFN_COND_LEN_COPYSIGN:
16163 0 : if (call_expr_nargs (_p2) == 6)
16164 : {
16165 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16166 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16167 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16168 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16169 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16170 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16171 0 : {
16172 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16173 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16174 0 : if (res) return res;
16175 : }
16176 : }
16177 : break;
16178 : default:;
16179 : }
16180 : break;
16181 384935 : default:;
16182 : }
16183 384935 : switch (TREE_CODE (_p1))
16184 : {
16185 0 : case VIEW_CONVERT_EXPR:
16186 0 : {
16187 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16188 0 : switch (TREE_CODE (_q30))
16189 : {
16190 0 : case CALL_EXPR:
16191 0 : switch (get_call_combined_fn (_q30))
16192 : {
16193 0 : case CFN_COND_LEN_FMA:
16194 0 : if (call_expr_nargs (_q30) == 7)
16195 : {
16196 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16197 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16198 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16199 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16200 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16201 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16202 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16203 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16204 : {
16205 0 : {
16206 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16207 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16208 0 : if (res) return res;
16209 : }
16210 : }
16211 : }
16212 : break;
16213 0 : case CFN_COND_LEN_FMS:
16214 0 : if (call_expr_nargs (_q30) == 7)
16215 : {
16216 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16217 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16218 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16219 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16220 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16221 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16222 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16223 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16224 : {
16225 0 : {
16226 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16227 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16228 0 : if (res) return res;
16229 : }
16230 : }
16231 : }
16232 : break;
16233 0 : case CFN_COND_LEN_FNMA:
16234 0 : if (call_expr_nargs (_q30) == 7)
16235 : {
16236 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16237 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16238 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16239 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16240 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16241 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16242 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16243 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16244 : {
16245 0 : {
16246 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16247 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16248 0 : if (res) return res;
16249 : }
16250 : }
16251 : }
16252 : break;
16253 0 : case CFN_COND_LEN_FNMS:
16254 0 : if (call_expr_nargs (_q30) == 7)
16255 : {
16256 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16257 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16258 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16259 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16260 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16261 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16262 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16263 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16264 : {
16265 0 : {
16266 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16267 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16268 0 : if (res) return res;
16269 : }
16270 : }
16271 : }
16272 : break;
16273 : default:;
16274 : }
16275 : break;
16276 : default:;
16277 : }
16278 : break;
16279 : }
16280 12 : case CALL_EXPR:
16281 12 : switch (get_call_combined_fn (_p1))
16282 : {
16283 0 : case CFN_COND_LEN_FMA:
16284 0 : if (call_expr_nargs (_p1) == 7)
16285 : {
16286 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16287 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16288 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16289 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16290 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16291 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16292 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16293 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16294 : {
16295 0 : {
16296 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16297 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16298 0 : if (res) return res;
16299 : }
16300 : }
16301 : }
16302 : break;
16303 0 : case CFN_COND_LEN_FMS:
16304 0 : if (call_expr_nargs (_p1) == 7)
16305 : {
16306 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16307 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16308 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16309 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16310 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16311 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16312 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16313 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16314 : {
16315 0 : {
16316 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16317 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16318 0 : if (res) return res;
16319 : }
16320 : }
16321 : }
16322 : break;
16323 0 : case CFN_COND_LEN_FNMA:
16324 0 : if (call_expr_nargs (_p1) == 7)
16325 : {
16326 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16327 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16328 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16329 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16330 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16331 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16332 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16333 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16334 : {
16335 0 : {
16336 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16337 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16338 0 : if (res) return res;
16339 : }
16340 : }
16341 : }
16342 : break;
16343 0 : case CFN_COND_LEN_FNMS:
16344 0 : if (call_expr_nargs (_p1) == 7)
16345 : {
16346 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16347 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16348 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16349 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16350 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16351 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16352 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16353 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16354 : {
16355 0 : {
16356 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16357 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16358 0 : if (res) return res;
16359 : }
16360 : }
16361 : }
16362 : break;
16363 : default:;
16364 : }
16365 : break;
16366 384935 : default:;
16367 : }
16368 384935 : switch (TREE_CODE (_p2))
16369 : {
16370 0 : case VIEW_CONVERT_EXPR:
16371 0 : {
16372 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16373 0 : switch (TREE_CODE (_q40))
16374 : {
16375 0 : case CALL_EXPR:
16376 0 : switch (get_call_combined_fn (_q40))
16377 : {
16378 0 : case CFN_COND_LEN_FMA:
16379 0 : if (call_expr_nargs (_q40) == 7)
16380 : {
16381 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16382 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16383 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16384 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16385 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16386 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16387 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16388 0 : {
16389 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16390 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16391 0 : if (res) return res;
16392 : }
16393 : }
16394 : break;
16395 0 : case CFN_COND_LEN_FMS:
16396 0 : if (call_expr_nargs (_q40) == 7)
16397 : {
16398 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16399 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16400 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16401 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16402 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16403 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16404 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16405 0 : {
16406 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16407 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16408 0 : if (res) return res;
16409 : }
16410 : }
16411 : break;
16412 0 : case CFN_COND_LEN_FNMA:
16413 0 : if (call_expr_nargs (_q40) == 7)
16414 : {
16415 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16416 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16417 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16418 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16419 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16420 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16421 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16422 0 : {
16423 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16424 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16425 0 : if (res) return res;
16426 : }
16427 : }
16428 : break;
16429 0 : case CFN_COND_LEN_FNMS:
16430 0 : if (call_expr_nargs (_q40) == 7)
16431 : {
16432 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16433 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16434 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16435 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16436 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16437 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16438 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16439 0 : {
16440 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16441 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16442 0 : if (res) return res;
16443 : }
16444 : }
16445 : break;
16446 : default:;
16447 : }
16448 : break;
16449 : default:;
16450 : }
16451 : break;
16452 : }
16453 12 : case CALL_EXPR:
16454 12 : switch (get_call_combined_fn (_p2))
16455 : {
16456 0 : case CFN_COND_LEN_FMA:
16457 0 : if (call_expr_nargs (_p2) == 7)
16458 : {
16459 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16460 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16461 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16462 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16463 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16464 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16465 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16466 0 : {
16467 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16468 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16469 0 : if (res) return res;
16470 : }
16471 : }
16472 : break;
16473 0 : case CFN_COND_LEN_FMS:
16474 0 : if (call_expr_nargs (_p2) == 7)
16475 : {
16476 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16477 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16478 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16479 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16480 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16481 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16482 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16483 0 : {
16484 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16485 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16486 0 : if (res) return res;
16487 : }
16488 : }
16489 : break;
16490 0 : case CFN_COND_LEN_FNMA:
16491 0 : if (call_expr_nargs (_p2) == 7)
16492 : {
16493 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16494 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16495 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16496 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16497 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16498 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16499 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16500 0 : {
16501 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16502 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16503 0 : if (res) return res;
16504 : }
16505 : }
16506 : break;
16507 0 : case CFN_COND_LEN_FNMS:
16508 0 : if (call_expr_nargs (_p2) == 7)
16509 : {
16510 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16511 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16512 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16513 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16514 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16515 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16516 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16517 0 : {
16518 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16519 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16520 0 : if (res) return res;
16521 : }
16522 : }
16523 : break;
16524 : default:;
16525 : }
16526 : break;
16527 384935 : default:;
16528 : }
16529 384935 : switch (TREE_CODE (_p1))
16530 : {
16531 12 : case CALL_EXPR:
16532 12 : switch (get_call_combined_fn (_p1))
16533 : {
16534 0 : case CFN_COND_ADD:
16535 0 : if (call_expr_nargs (_p1) == 4)
16536 : {
16537 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16538 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16539 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16540 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16541 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16542 : {
16543 0 : {
16544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16545 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16546 0 : if (res) return res;
16547 : }
16548 : }
16549 : }
16550 : break;
16551 0 : case CFN_COND_AND:
16552 0 : if (call_expr_nargs (_p1) == 4)
16553 : {
16554 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16555 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16556 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16557 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16558 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16559 : {
16560 0 : {
16561 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16562 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16563 0 : if (res) return res;
16564 : }
16565 : }
16566 : }
16567 : break;
16568 0 : case CFN_COND_DIV:
16569 0 : if (call_expr_nargs (_p1) == 4)
16570 : {
16571 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16572 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16573 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16574 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16575 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16576 : {
16577 0 : {
16578 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16579 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16580 0 : if (res) return res;
16581 : }
16582 : }
16583 : }
16584 : break;
16585 0 : case CFN_COND_FMA:
16586 0 : if (call_expr_nargs (_p1) == 5)
16587 : {
16588 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16589 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16590 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16591 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16592 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16593 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16594 : {
16595 0 : {
16596 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16597 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16598 0 : if (res) return res;
16599 : }
16600 : }
16601 : }
16602 : break;
16603 0 : case CFN_COND_FMS:
16604 0 : if (call_expr_nargs (_p1) == 5)
16605 : {
16606 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16607 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16608 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16609 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16610 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16611 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16612 : {
16613 0 : {
16614 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16615 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16616 0 : if (res) return res;
16617 : }
16618 : }
16619 : }
16620 : break;
16621 0 : case CFN_COND_IOR:
16622 0 : if (call_expr_nargs (_p1) == 4)
16623 : {
16624 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16625 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16626 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16627 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16628 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16629 : {
16630 0 : {
16631 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16632 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16633 0 : if (res) return res;
16634 : }
16635 : }
16636 : }
16637 : break;
16638 0 : case CFN_COND_MAX:
16639 0 : if (call_expr_nargs (_p1) == 4)
16640 : {
16641 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16642 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16643 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16644 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16645 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16646 : {
16647 0 : {
16648 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16649 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16650 0 : if (res) return res;
16651 : }
16652 : }
16653 : }
16654 : break;
16655 0 : case CFN_COND_MIN:
16656 0 : if (call_expr_nargs (_p1) == 4)
16657 : {
16658 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16659 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16660 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16661 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16662 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16663 : {
16664 0 : {
16665 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16666 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
16667 0 : if (res) return res;
16668 : }
16669 : }
16670 : }
16671 : break;
16672 0 : case CFN_COND_MOD:
16673 0 : if (call_expr_nargs (_p1) == 4)
16674 : {
16675 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16676 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16677 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16678 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16679 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16680 : {
16681 0 : {
16682 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16683 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
16684 0 : if (res) return res;
16685 : }
16686 : }
16687 : }
16688 : break;
16689 0 : case CFN_COND_MUL:
16690 0 : if (call_expr_nargs (_p1) == 4)
16691 : {
16692 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16693 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16694 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16695 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16696 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16697 : {
16698 0 : {
16699 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16700 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
16701 0 : if (res) return res;
16702 : }
16703 : }
16704 : }
16705 : break;
16706 0 : case CFN_COND_SHL:
16707 0 : if (call_expr_nargs (_p1) == 4)
16708 : {
16709 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16710 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16711 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16712 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16713 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16714 : {
16715 0 : {
16716 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16717 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
16718 0 : if (res) return res;
16719 : }
16720 : }
16721 : }
16722 : break;
16723 0 : case CFN_COND_SHR:
16724 0 : if (call_expr_nargs (_p1) == 4)
16725 : {
16726 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16727 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16728 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16729 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16730 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16731 : {
16732 0 : {
16733 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16734 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
16735 0 : if (res) return res;
16736 : }
16737 : }
16738 : }
16739 : break;
16740 0 : case CFN_COND_SUB:
16741 0 : if (call_expr_nargs (_p1) == 4)
16742 : {
16743 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16744 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16745 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16746 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16747 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16748 : {
16749 0 : {
16750 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16751 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
16752 0 : if (res) return res;
16753 : }
16754 : }
16755 : }
16756 : break;
16757 0 : case CFN_COND_XOR:
16758 0 : if (call_expr_nargs (_p1) == 4)
16759 : {
16760 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16761 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16762 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16763 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16764 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16765 : {
16766 0 : {
16767 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16768 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
16769 0 : if (res) return res;
16770 : }
16771 : }
16772 : }
16773 : break;
16774 0 : case CFN_COND_COPYSIGN:
16775 0 : if (call_expr_nargs (_p1) == 4)
16776 : {
16777 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16778 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16779 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16780 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16781 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16782 : {
16783 0 : {
16784 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16785 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
16786 0 : if (res) return res;
16787 : }
16788 : }
16789 : }
16790 : break;
16791 0 : case CFN_COND_FMAX:
16792 0 : if (call_expr_nargs (_p1) == 4)
16793 : {
16794 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16795 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16796 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16797 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16798 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16799 : {
16800 0 : {
16801 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16802 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
16803 0 : if (res) return res;
16804 : }
16805 : }
16806 : }
16807 : break;
16808 0 : case CFN_COND_FMIN:
16809 0 : if (call_expr_nargs (_p1) == 4)
16810 : {
16811 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16812 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16813 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16814 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16815 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16816 : {
16817 0 : {
16818 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16819 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
16820 0 : if (res) return res;
16821 : }
16822 : }
16823 : }
16824 : break;
16825 0 : case CFN_COND_FNMA:
16826 0 : if (call_expr_nargs (_p1) == 5)
16827 : {
16828 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16829 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16830 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16831 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16832 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16833 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16834 : {
16835 0 : {
16836 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16837 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
16838 0 : if (res) return res;
16839 : }
16840 : }
16841 : }
16842 : break;
16843 0 : case CFN_COND_FNMS:
16844 0 : if (call_expr_nargs (_p1) == 5)
16845 : {
16846 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16847 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16848 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16849 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16850 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16851 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16852 : {
16853 0 : {
16854 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16855 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
16856 0 : if (res) return res;
16857 : }
16858 : }
16859 : }
16860 : break;
16861 0 : case CFN_COND_RDIV:
16862 0 : if (call_expr_nargs (_p1) == 4)
16863 : {
16864 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16865 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16866 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16867 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16868 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16869 : {
16870 0 : {
16871 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16872 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
16873 0 : if (res) return res;
16874 : }
16875 : }
16876 : }
16877 : break;
16878 : default:;
16879 : }
16880 : break;
16881 : default:;
16882 : }
16883 : return NULL_TREE;
16884 : }
16885 : #pragma GCC diagnostic pop
|