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 1132273042 : tree_nop_convert (tree t, tree *res_ops)
11 : {
12 1132273042 : const tree type = TREE_TYPE (t);
13 1132273042 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 1132273042 : if (TREE_SIDE_EFFECTS (t)) return false;
15 1088112925 : switch (TREE_CODE (t))
16 : {
17 234447035 : CASE_CONVERT:
18 234447035 : {
19 234447035 : tree _p0 = TREE_OPERAND (t, 0);
20 234447035 : {
21 234447035 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
22 234447035 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
23 : )
24 : {
25 191820374 : {
26 191820374 : res_ops[0] = captures[0];
27 191820374 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 0, __FILE__, __LINE__, false);
28 191820374 : return true;
29 : }
30 : }
31 : }
32 : break;
33 : }
34 4515510 : case VIEW_CONVERT_EXPR:
35 4515510 : {
36 4515510 : tree _p0 = TREE_OPERAND (t, 0);
37 4515510 : {
38 4515510 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
39 3208994 : if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[0]))
40 3208976 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
41 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[0])))
42 6733053 : && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0])))
43 : )
44 : {
45 2217537 : {
46 2217537 : res_ops[0] = captures[0];
47 2217537 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1, __FILE__, __LINE__, false);
48 2217537 : return true;
49 : }
50 : }
51 : }
52 2297973 : break;
53 : }
54 : default:;
55 : }
56 : return false;
57 : }
58 :
59 : bool
60 88752015 : tree_with_known_nonzero_bits (tree t)
61 : {
62 88752015 : const tree type = TREE_TYPE (t);
63 88752015 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
64 88752015 : if (TREE_SIDE_EFFECTS (t)) return false;
65 83754272 : switch (TREE_CODE (t))
66 : {
67 272569 : case BIT_IOR_EXPR:
68 272569 : {
69 272569 : tree _p0 = TREE_OPERAND (t, 0);
70 272569 : tree _p1 = TREE_OPERAND (t, 1);
71 272569 : if (tree_with_known_nonzero_bits_1 (_p0))
72 : {
73 265054 : {
74 265054 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
75 265054 : {
76 265054 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 39, __FILE__, __LINE__, false);
77 265054 : return true;
78 : }
79 : }
80 : }
81 7515 : if (tree_with_known_nonzero_bits_1 (_p1))
82 : {
83 186 : {
84 186 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
85 186 : {
86 186 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 39, __FILE__, __LINE__, false);
87 186 : return true;
88 : }
89 : }
90 : }
91 : break;
92 : }
93 83489032 : default:;
94 : }
95 83489032 : if (tree_with_known_nonzero_bits_1 (t))
96 : {
97 39280853 : {
98 39280853 : tree captures[1] ATTRIBUTE_UNUSED = { t };
99 39280853 : {
100 39280853 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 40, __FILE__, __LINE__, false);
101 39280853 : return true;
102 : }
103 : }
104 : }
105 : return false;
106 : }
107 :
108 : tree
109 15 : generic_simplify_4 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
110 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
111 : const enum tree_code ARG_UNUSED (op))
112 : {
113 15 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
114 15 : if (INTEGRAL_TYPE_P (type)
115 : )
116 : {
117 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail75;
118 15 : {
119 15 : tree res_op0;
120 15 : {
121 15 : tree _o1[2], _r1;
122 15 : _o1[0] = captures[1];
123 15 : _o1[1] = captures[4];
124 15 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
125 15 : res_op0 = _r1;
126 : }
127 15 : tree res_op1;
128 15 : res_op1 = captures[2];
129 15 : tree _r;
130 15 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
131 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 52, __FILE__, __LINE__, true);
132 15 : return _r;
133 : }
134 0 : next_after_fail75:;
135 : }
136 : return NULL_TREE;
137 : }
138 :
139 : tree
140 90 : generic_simplify_12 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
141 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
142 : {
143 90 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
144 90 : {
145 90 : bool wascmp;
146 90 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
147 90 : && (!wascmp || element_precision (type) == 1)
148 : )
149 : {
150 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail87;
151 0 : {
152 0 : tree _r;
153 0 : _r = captures[0];
154 0 : if (TREE_SIDE_EFFECTS (captures[1]))
155 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
156 0 : if (TREE_SIDE_EFFECTS (captures[2]))
157 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
158 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 60, __FILE__, __LINE__, true);
159 0 : return _r;
160 : }
161 0 : next_after_fail87:;
162 : }
163 : }
164 90 : return NULL_TREE;
165 : }
166 :
167 : tree
168 0 : generic_simplify_21 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
169 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
170 : {
171 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
172 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail96;
173 0 : {
174 0 : tree res_op0;
175 0 : res_op0 = captures[0];
176 0 : tree res_op1;
177 0 : res_op1 = captures[1];
178 0 : tree _r;
179 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
180 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 69, __FILE__, __LINE__, true);
181 : return _r;
182 : }
183 0 : next_after_fail96:;
184 0 : return NULL_TREE;
185 : }
186 :
187 : tree
188 113 : generic_simplify_29 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
189 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
190 : const enum tree_code ARG_UNUSED (opo),
191 : const enum tree_code ARG_UNUSED (opi))
192 : {
193 113 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
194 113 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail104;
195 113 : {
196 113 : tree res_op0;
197 113 : {
198 113 : tree _o1[1], _r1;
199 113 : _o1[0] = captures[1];
200 113 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
201 113 : res_op0 = _r1;
202 : }
203 113 : tree res_op1;
204 113 : res_op1 = captures[2];
205 113 : tree _r;
206 113 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
207 113 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 77, __FILE__, __LINE__, true);
208 : return _r;
209 : }
210 0 : next_after_fail104:;
211 0 : return NULL_TREE;
212 : }
213 :
214 : tree
215 242425 : generic_simplify_34 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
216 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
217 : const enum tree_code ARG_UNUSED (bitop),
218 : const enum tree_code ARG_UNUSED (rbitop),
219 : const enum tree_code ARG_UNUSED (resbitop))
220 : {
221 242425 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
222 242425 : {
223 242425 : bool wascmp;
224 242425 : if (bitwise_inverted_equal_p (captures[2], captures[0], wascmp)
225 242425 : && (!wascmp || element_precision (type) == 1)
226 : )
227 : {
228 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail109;
229 13 : {
230 13 : tree res_op0;
231 13 : res_op0 = captures[2];
232 13 : tree res_op1;
233 13 : res_op1 = captures[1];
234 13 : tree _r;
235 13 : _r = fold_build2_loc (loc, resbitop, type, res_op0, res_op1);
236 13 : if (TREE_SIDE_EFFECTS (captures[0]))
237 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
238 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 81, __FILE__, __LINE__, true);
239 13 : return _r;
240 : }
241 0 : next_after_fail109:;
242 : }
243 : }
244 242412 : return NULL_TREE;
245 : }
246 :
247 : tree
248 56 : generic_simplify_43 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
249 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
250 : const enum tree_code ARG_UNUSED (inner_op),
251 : const enum tree_code ARG_UNUSED (outer_op))
252 : {
253 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
254 56 : {
255 56 : bool fail = false;
256 56 : wide_int zero_mask_not;
257 56 : wide_int C0;
258 56 : wide_int cst_emit;
259 56 : if (TREE_CODE (captures[1]) == SSA_NAME)
260 0 : zero_mask_not = get_nonzero_bits (captures[1]);
261 : else
262 : fail = true;
263 56 : if (inner_op == BIT_XOR_EXPR)
264 : {
265 33 : C0 = wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3]));
266 33 : cst_emit = C0 | wi::to_wide (captures[3]);
267 : }
268 : else
269 : {
270 23 : C0 = wi::to_wide (captures[2]);
271 23 : cst_emit = C0 ^ wi::to_wide (captures[3]);
272 : }
273 56 : if (!fail && (C0 & zero_mask_not) == 0
274 : )
275 : {
276 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail120;
277 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail120;
278 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail120;
279 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail120;
280 0 : {
281 0 : tree res_op0;
282 0 : res_op0 = captures[1];
283 0 : tree res_op1;
284 0 : res_op1 = wide_int_to_tree (type, cst_emit);
285 0 : tree _r;
286 0 : _r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
287 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 91, __FILE__, __LINE__, true);
288 0 : return _r;
289 : }
290 56 : next_after_fail120:;
291 : }
292 : else
293 : {
294 56 : if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0
295 : )
296 : {
297 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail121;
298 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail121;
299 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail121;
300 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail121;
301 0 : {
302 0 : tree res_op0;
303 0 : res_op0 = captures[1];
304 0 : tree res_op1;
305 0 : res_op1 = wide_int_to_tree (type, cst_emit);
306 0 : tree _r;
307 0 : _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
308 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 92, __FILE__, __LINE__, true);
309 0 : return _r;
310 : }
311 56 : next_after_fail121:;
312 : }
313 : }
314 56 : }
315 56 : return NULL_TREE;
316 : }
317 :
318 : tree
319 7 : generic_simplify_57 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
320 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
321 : const enum tree_code ARG_UNUSED (op))
322 : {
323 7 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
324 7 : if (INTEGRAL_TYPE_P (type)
325 7 : && TYPE_OVERFLOW_WRAPS (type)
326 14 : && !TYPE_SATURATING (type)
327 : )
328 : {
329 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail138;
330 7 : {
331 7 : tree res_op0;
332 7 : {
333 7 : tree _o1[2], _r1;
334 7 : _o1[0] = captures[1];
335 7 : _o1[1] = captures[4];
336 7 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
337 7 : res_op0 = _r1;
338 : }
339 7 : tree res_op1;
340 7 : res_op1 = captures[2];
341 7 : tree _r;
342 7 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
343 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 106, __FILE__, __LINE__, true);
344 7 : return _r;
345 : }
346 0 : next_after_fail138:;
347 : }
348 : return NULL_TREE;
349 : }
350 :
351 : tree
352 895 : generic_simplify_65 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
353 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
354 : {
355 895 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
356 895 : if (!TYPE_SATURATING (type)
357 : )
358 : {
359 895 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
360 1790 : && !FIXED_POINT_TYPE_P (type)
361 : )
362 : {
363 895 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail154;
364 895 : {
365 895 : tree res_op0;
366 895 : res_op0 = captures[2];
367 895 : tree res_op1;
368 895 : res_op1 = captures[1];
369 895 : tree _r;
370 895 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
371 895 : if (TREE_SIDE_EFFECTS (captures[0]))
372 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
373 895 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 122, __FILE__, __LINE__, true);
374 895 : return _r;
375 : }
376 0 : next_after_fail154:;
377 : }
378 : }
379 : return NULL_TREE;
380 : }
381 :
382 : tree
383 9588 : generic_simplify_72 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
384 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
385 : const enum tree_code ARG_UNUSED (plusminus))
386 : {
387 9588 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
388 9588 : if (!TYPE_SATURATING (type)
389 9588 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
390 : )
391 : {
392 9422 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
393 : )
394 : {
395 4 : if ((!ANY_INTEGRAL_TYPE_P (type)
396 9418 : || TYPE_OVERFLOW_WRAPS (type)
397 3260 : || (INTEGRAL_TYPE_P (type)
398 3260 : && ((tree_expr_nonzero_p (captures[0])
399 136 : && expr_not_equal_to (captures[0],
400 9558 : wi::minus_one (TYPE_PRECISION (type)),
401 : gimple_match_ctx (captures[1])))
402 : || (plusminus == PLUS_EXPR
403 3124 : ? expr_not_equal_to (captures[2],
404 9441 : wi::max_value (TYPE_PRECISION (type), SIGNED),
405 : gimple_match_ctx (captures[1]))
406 3105 : : (expr_not_equal_to (captures[2],
407 12527 : wi::min_value (TYPE_PRECISION (type), SIGNED),
408 : gimple_match_ctx (captures[1]))
409 3087 : && expr_not_equal_to (captures[2],
410 6174 : wi::min_value (TYPE_PRECISION (type), SIGNED)
411 18683 : + 1, gimple_match_ctx (captures[1])))))))
412 12546 : && single_use (captures[1])
413 : )
414 : {
415 9404 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
416 9404 : {
417 9404 : tree res_op0;
418 9404 : {
419 9404 : tree _o1[2], _r1;
420 9404 : _o1[0] = build_one_cst (type);
421 9404 : _o1[1] = captures[2];
422 9404 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
423 9404 : res_op0 = _r1;
424 : }
425 9404 : tree res_op1;
426 9404 : res_op1 = captures[0];
427 9404 : tree _r;
428 9404 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
429 9404 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 130, __FILE__, __LINE__, true);
430 9404 : return _r;
431 : }
432 0 : next_after_fail162:;
433 : }
434 : }
435 : }
436 : return NULL_TREE;
437 : }
438 :
439 : tree
440 0 : generic_simplify_84 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
441 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
442 : {
443 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
444 0 : if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
445 : )
446 : {
447 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail175;
448 0 : {
449 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail175;
450 0 : tree res_op0;
451 0 : {
452 0 : tree _o1[2], _r1;
453 0 : {
454 0 : tree _o2[3], _r2;
455 0 : _o2[0] = unshare_expr (captures[2]);
456 0 : _o2[1] = captures[2];
457 0 : _o2[2] = captures[4];
458 0 : _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
459 0 : _o1[0] = _r2;
460 : }
461 0 : _o1[1] = captures[3];
462 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
463 0 : res_op0 = _r1;
464 : }
465 0 : tree res_op1;
466 0 : res_op1 = captures[5];
467 0 : tree _r;
468 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
469 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 143, __FILE__, __LINE__, true);
470 0 : return _r;
471 : }
472 : next_after_fail175:;
473 : }
474 : return NULL_TREE;
475 : }
476 :
477 : tree
478 1 : generic_simplify_91 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
479 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
480 : {
481 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
482 1 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
483 1 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
484 1 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
485 2 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
486 : )
487 : {
488 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail182;
489 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail182;
490 1 : {
491 1 : tree res_op0;
492 1 : {
493 1 : tree _o1[1], _r1;
494 1 : {
495 1 : tree _o2[2], _r2;
496 1 : _o2[0] = captures[1];
497 1 : _o2[1] = captures[2];
498 1 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
499 1 : _o1[0] = _r2;
500 : }
501 1 : if (TREE_TYPE (_o1[0]) != type)
502 : {
503 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
504 : }
505 : else
506 : _r1 = _o1[0];
507 1 : res_op0 = _r1;
508 : }
509 1 : tree _r;
510 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
511 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 150, __FILE__, __LINE__, true);
512 1 : return _r;
513 : }
514 : next_after_fail182:;
515 : }
516 : return NULL_TREE;
517 : }
518 :
519 : tree
520 11818 : generic_simplify_103 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
521 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
522 : {
523 11818 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
524 11818 : if (!TYPE_SATURATING (type)
525 : )
526 : {
527 11818 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
528 23636 : && !FIXED_POINT_TYPE_P (type)
529 : )
530 : {
531 11818 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
532 11818 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
533 3186 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
534 : )
535 : {
536 11642 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail198;
537 11642 : {
538 11642 : tree res_op0;
539 11642 : res_op0 = captures[1];
540 11642 : tree _r;
541 11642 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
542 11642 : if (TREE_SIDE_EFFECTS (captures[2]))
543 15 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
544 11642 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 165, __FILE__, __LINE__, true);
545 11642 : return _r;
546 : }
547 0 : next_after_fail198:;
548 : }
549 : }
550 : }
551 : return NULL_TREE;
552 : }
553 :
554 : tree
555 2 : generic_simplify_108 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
556 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
557 : const combined_fn ARG_UNUSED (logs))
558 : {
559 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
560 2 : if (flag_unsafe_math_optimizations
561 : )
562 : {
563 2 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
564 2 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
565 2 : && ! flag_trapping_math
566 4 : && ! flag_errno_math
567 : )
568 : {
569 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail205;
570 2 : {
571 2 : tree res_op0;
572 2 : {
573 2 : tree _o1[2], _r1;
574 2 : _o1[0] = captures[1];
575 2 : _o1[1] = captures[3];
576 2 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
577 2 : res_op0 = _r1;
578 : }
579 2 : tree _r;
580 2 : _r = maybe_build_call_expr_loc (loc, logs, type, 1, res_op0);
581 2 : if (!_r)
582 0 : goto next_after_fail205;
583 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 172, __FILE__, __LINE__, true);
584 2 : return _r;
585 : }
586 : next_after_fail205:;
587 : }
588 : }
589 : return NULL_TREE;
590 : }
591 :
592 : tree
593 0 : generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
594 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
595 : {
596 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
597 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail212;
598 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail212;
599 0 : {
600 0 : tree _r;
601 0 : _r = captures[2];
602 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
603 : return _r;
604 : }
605 : next_after_fail212:;
606 : return NULL_TREE;
607 : }
608 :
609 : tree
610 16 : generic_simplify_119 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
611 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
612 : {
613 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
614 32 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
615 32 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
616 : )
617 : {
618 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail216;
619 0 : {
620 0 : tree res_op0;
621 0 : res_op0 = captures[0];
622 0 : tree res_op1;
623 0 : {
624 0 : tree _o1[2], _r1;
625 0 : _o1[0] = captures[1];
626 0 : _o1[1] = build_one_cst (type);
627 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
628 0 : res_op1 = _r1;
629 : }
630 0 : tree _r;
631 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
632 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
633 0 : return _r;
634 : }
635 0 : next_after_fail216:;
636 : }
637 : return NULL_TREE;
638 : }
639 :
640 : tree
641 1 : generic_simplify_132 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
642 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
643 : {
644 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
645 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail229;
646 1 : {
647 1 : tree res_op0;
648 1 : {
649 1 : tree _o1[2], _r1;
650 1 : _o1[0] = captures[1];
651 1 : _o1[1] = captures[2];
652 1 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
653 1 : res_op0 = _r1;
654 : }
655 1 : tree _r;
656 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
657 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 191, __FILE__, __LINE__, true);
658 : return _r;
659 : }
660 0 : next_after_fail229:;
661 0 : return NULL_TREE;
662 : }
663 :
664 : tree
665 21 : generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
666 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
667 : const enum tree_code ARG_UNUSED (bitop),
668 : const enum tree_code ARG_UNUSED (rbitop))
669 : {
670 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
671 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail243;
672 21 : {
673 21 : tree _r;
674 21 : _r = captures[0];
675 21 : if (TREE_SIDE_EFFECTS (captures[1]))
676 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
677 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
678 : return _r;
679 : }
680 0 : next_after_fail243:;
681 0 : return NULL_TREE;
682 : }
683 :
684 : tree
685 0 : generic_simplify_146 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
686 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
687 : const enum tree_code ARG_UNUSED (bitop),
688 : const enum tree_code ARG_UNUSED (rbitop))
689 : {
690 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
691 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail247;
692 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail247;
693 0 : {
694 0 : tree res_op0;
695 0 : res_op0 = captures[0];
696 0 : tree res_op1;
697 0 : res_op1 = captures[2];
698 0 : tree _r;
699 0 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
700 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 199, __FILE__, __LINE__, true);
701 : return _r;
702 : }
703 : next_after_fail247:;
704 : return NULL_TREE;
705 : }
706 :
707 : tree
708 0 : generic_simplify_152 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
709 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
710 : const enum tree_code ARG_UNUSED (cmp),
711 : const enum tree_code ARG_UNUSED (icmp))
712 : {
713 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
714 0 : if (INTEGRAL_TYPE_P (type)
715 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
716 0 : && canonicalize_math_after_vectorization_p ()
717 : )
718 : {
719 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail254;
720 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail254;
721 : {
722 : tree res_op0;
723 : {
724 : tree _o1[3], _r1;
725 : _o1[0] = captures[0];
726 : _o1[1] = captures[3];
727 : _o1[2] = captures[5];
728 : _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
729 : res_op0 = _r1;
730 : }
731 : tree res_op1;
732 : res_op1 = build_one_cst (type);
733 : tree _r;
734 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
735 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 203, __FILE__, __LINE__, true);
736 : return _r;
737 : }
738 0 : next_after_fail254:;
739 : }
740 0 : return NULL_TREE;
741 : }
742 :
743 : tree
744 0 : generic_simplify_165 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
745 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
746 : {
747 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
748 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail288;
749 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
750 0 : {
751 0 : tree _r;
752 0 : _r = captures[2];
753 0 : if (TREE_SIDE_EFFECTS (captures[1]))
754 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
755 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 210, __FILE__, __LINE__, true);
756 : return _r;
757 : }
758 : next_after_fail288:;
759 : return NULL_TREE;
760 : }
761 :
762 : tree
763 396 : generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
764 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
765 : const enum tree_code ARG_UNUSED (code2),
766 : const enum tree_code ARG_UNUSED (code1))
767 : {
768 396 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
769 396 : if ((TREE_CODE (captures[2]) == INTEGER_CST
770 371 : && TREE_CODE (captures[5]) == INTEGER_CST)
771 396 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
772 1 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
773 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
774 25 : && bitwise_equal_p (captures[2], captures[5]))
775 : )
776 : {
777 371 : {
778 371 : bool one_before = false;
779 371 : bool one_after = false;
780 371 : int cmp = 0;
781 371 : bool allbits = true;
782 371 : if (TREE_CODE (captures[2]) == INTEGER_CST
783 371 : && TREE_CODE (captures[5]) == INTEGER_CST)
784 : {
785 371 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
786 371 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
787 371 : auto t2 = wi::to_wide (captures[5]);
788 371 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
789 371 : if (cmp < 0
790 371 : && t1 == t2 - 1)
791 : one_before = true;
792 371 : if (cmp > 0
793 371 : && t1 == t2 + 1)
794 : one_after = true;
795 : }
796 371 : bool val;
797 371 : switch (code2)
798 : {
799 362 : case EQ_EXPR: val = (cmp == 0); break;
800 0 : case NE_EXPR: val = (cmp != 0); break;
801 0 : case LT_EXPR: val = (cmp < 0); break;
802 9 : case GT_EXPR: val = (cmp > 0); break;
803 0 : case LE_EXPR: val = (cmp <= 0); break;
804 0 : case GE_EXPR: val = (cmp >= 0); break;
805 0 : default: gcc_unreachable ();
806 : }
807 371 : if (code1 == EQ_EXPR && val
808 : )
809 : {
810 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail298;
811 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail298;
812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail298;
813 0 : {
814 0 : tree _r;
815 0 : _r = captures[3];
816 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
817 0 : return _r;
818 : }
819 : next_after_fail298:;
820 : }
821 : else
822 : {
823 371 : if (code1 == NE_EXPR && val && allbits
824 : )
825 : {
826 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail299;
827 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail299;
828 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail299;
829 0 : {
830 0 : tree _r;
831 0 : _r = constant_boolean_node (true, type);
832 0 : if (TREE_SIDE_EFFECTS (captures[4]))
833 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
834 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
835 0 : return _r;
836 : }
837 : next_after_fail299:;
838 : }
839 : else
840 : {
841 371 : if (code1 == NE_EXPR && !val && allbits
842 : )
843 : {
844 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail300;
845 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail300;
846 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail300;
847 0 : {
848 0 : tree _r;
849 0 : _r = captures[0];
850 0 : if (TREE_SIDE_EFFECTS (captures[4]))
851 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
852 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
853 0 : return _r;
854 : }
855 : next_after_fail300:;
856 : }
857 : else
858 : {
859 371 : if (code1 == EQ_EXPR
860 371 : && code2 == GT_EXPR
861 9 : && cmp == 0
862 9 : && allbits
863 371 : && ((VECTOR_BOOLEAN_TYPE_P (type)
864 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
865 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
866 : )
867 : {
868 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail301;
869 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail301;
870 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail301;
871 0 : {
872 0 : tree res_op0;
873 0 : res_op0 = captures[4];
874 0 : tree res_op1;
875 0 : res_op1 = captures[5];
876 0 : tree _r;
877 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
878 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
879 0 : return _r;
880 : }
881 : next_after_fail301:;
882 : }
883 : else
884 : {
885 371 : if (code1 == EQ_EXPR
886 371 : && code2 == LT_EXPR
887 0 : && cmp == 0
888 0 : && allbits
889 371 : && ((VECTOR_BOOLEAN_TYPE_P (type)
890 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
891 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
892 : )
893 : {
894 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail302;
895 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail302;
896 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail302;
897 0 : {
898 0 : tree res_op0;
899 0 : res_op0 = captures[4];
900 0 : tree res_op1;
901 0 : res_op1 = captures[5];
902 0 : tree _r;
903 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
904 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
905 0 : return _r;
906 : }
907 : next_after_fail302:;
908 : }
909 : else
910 : {
911 371 : if (code1 == EQ_EXPR
912 371 : && code2 == GE_EXPR
913 : && one_before
914 0 : && allbits
915 371 : && ((VECTOR_BOOLEAN_TYPE_P (type)
916 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
917 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
918 : )
919 : {
920 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail303;
921 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail303;
922 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail303;
923 0 : {
924 0 : tree res_op0;
925 0 : res_op0 = captures[4];
926 0 : tree res_op1;
927 0 : {
928 0 : tree _o1[1], _r1;
929 0 : _o1[0] = captures[2];
930 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
931 : {
932 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
933 : }
934 : else
935 : _r1 = _o1[0];
936 0 : res_op1 = _r1;
937 : }
938 0 : tree _r;
939 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
940 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
941 0 : return _r;
942 : }
943 : next_after_fail303:;
944 : }
945 : else
946 : {
947 371 : if (code1 == EQ_EXPR
948 371 : && code2 == LE_EXPR
949 : && one_after
950 0 : && allbits
951 371 : && ((VECTOR_BOOLEAN_TYPE_P (type)
952 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
953 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
954 : )
955 : {
956 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail304;
957 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail304;
958 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail304;
959 0 : {
960 0 : tree res_op0;
961 0 : res_op0 = captures[4];
962 0 : tree res_op1;
963 0 : {
964 0 : tree _o1[1], _r1;
965 0 : _o1[0] = captures[2];
966 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
967 : {
968 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
969 : }
970 : else
971 : _r1 = _o1[0];
972 0 : res_op1 = _r1;
973 : }
974 0 : tree _r;
975 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
976 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
977 0 : return _r;
978 : }
979 : next_after_fail304:;
980 : }
981 : }
982 : }
983 : }
984 : }
985 : }
986 : }
987 : }
988 : }
989 : return NULL_TREE;
990 : }
991 :
992 : tree
993 99868 : generic_simplify_211 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
994 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
995 : const enum tree_code ARG_UNUSED (op))
996 : {
997 99868 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
998 199736 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
999 198152 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
1000 95694 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
1001 : && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
1002 99072 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1003 298016 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
1004 : )
1005 : {
1006 99063 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail354;
1007 99063 : {
1008 99063 : tree res_op0;
1009 99063 : res_op0 = captures[2];
1010 99063 : tree res_op1;
1011 99063 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1012 99063 : tree _r;
1013 99063 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1014 99063 : if (TREE_SIDE_EFFECTS (captures[3]))
1015 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1016 99063 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 264, __FILE__, __LINE__, true);
1017 99063 : return _r;
1018 : }
1019 0 : next_after_fail354:;
1020 : }
1021 : return NULL_TREE;
1022 : }
1023 :
1024 : tree
1025 25298 : generic_simplify_222 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1026 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1027 : const enum tree_code ARG_UNUSED (op))
1028 : {
1029 25298 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1030 50596 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1031 50482 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1032 22748 : || ((op == EQ_EXPR || op == NE_EXPR)
1033 1764 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
1034 50539 : && (CONSTANT_CLASS_P (captures[2]) || single_use (captures[1]))
1035 : )
1036 : {
1037 4257 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail378;
1038 4257 : {
1039 4257 : tree res_op0;
1040 4257 : res_op0 = captures[2];
1041 4257 : tree res_op1;
1042 4257 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1043 4257 : tree _r;
1044 4257 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1045 4257 : if (TREE_SIDE_EFFECTS (captures[0]))
1046 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1047 4257 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 292, __FILE__, __LINE__, true);
1048 4257 : return _r;
1049 : }
1050 0 : next_after_fail378:;
1051 : }
1052 : return NULL_TREE;
1053 : }
1054 :
1055 : tree
1056 39463601 : generic_simplify_230 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1057 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1058 : const enum tree_code ARG_UNUSED (cmp))
1059 : {
1060 39463601 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1061 78927376 : if (wi::bit_and_not (get_known_nonzero_bits (captures[1]),
1062 118390803 : get_nonzero_bits (captures[0])) != 0
1063 : )
1064 : {
1065 77543 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail386;
1066 77543 : {
1067 77543 : tree _r;
1068 77543 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1069 77543 : if (TREE_SIDE_EFFECTS (captures[0]))
1070 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1071 77543 : if (TREE_SIDE_EFFECTS (captures[1]))
1072 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1073 77543 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 299, __FILE__, __LINE__, true);
1074 77543 : return _r;
1075 : }
1076 0 : next_after_fail386:;
1077 : }
1078 : return NULL_TREE;
1079 : }
1080 :
1081 : tree
1082 0 : generic_simplify_238 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1083 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1084 : const enum tree_code ARG_UNUSED (cmp),
1085 : const enum tree_code ARG_UNUSED (icmp))
1086 : {
1087 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1088 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1089 : )
1090 : {
1091 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail398;
1092 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail398;
1093 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail398;
1094 0 : {
1095 0 : tree res_op0;
1096 0 : res_op0 = captures[0];
1097 0 : tree res_op1;
1098 0 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]),
1099 0 : wi::exact_log2 (wi::to_wide (captures[1])));
1100 0 : tree _r;
1101 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1102 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 311, __FILE__, __LINE__, true);
1103 0 : return _r;
1104 : }
1105 : next_after_fail398:;
1106 : }
1107 : return NULL_TREE;
1108 : }
1109 :
1110 : tree
1111 0 : generic_simplify_242 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1112 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1113 : const enum tree_code ARG_UNUSED (rotate),
1114 : const enum tree_code ARG_UNUSED (invrot),
1115 : const enum tree_code ARG_UNUSED (cmp))
1116 : {
1117 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1118 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail410;
1119 0 : {
1120 0 : tree res_op0;
1121 0 : res_op0 = captures[0];
1122 0 : tree res_op1;
1123 0 : res_op1 = captures[2];
1124 0 : tree _r;
1125 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1126 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1127 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1128 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 323, __FILE__, __LINE__, true);
1129 : return _r;
1130 : }
1131 0 : next_after_fail410:;
1132 0 : return NULL_TREE;
1133 : }
1134 :
1135 : tree
1136 27 : generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1137 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1138 : const enum tree_code ARG_UNUSED (cmp),
1139 : const combined_fn ARG_UNUSED (bswap))
1140 : {
1141 27 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1142 27 : {
1143 27 : tree ctype = TREE_TYPE (captures[1]);
1144 27 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
1145 27 : {
1146 27 : tree res_op0;
1147 27 : {
1148 27 : tree _o1[1], _r1;
1149 27 : _o1[0] = captures[0];
1150 27 : if (TREE_TYPE (_o1[0]) != ctype)
1151 : {
1152 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
1153 : }
1154 : else
1155 : _r1 = _o1[0];
1156 27 : res_op0 = _r1;
1157 : }
1158 27 : tree res_op1;
1159 27 : {
1160 27 : tree _o1[1], _r1;
1161 27 : _o1[0] = captures[1];
1162 27 : _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
1163 27 : if (!_r1)
1164 0 : goto next_after_fail415;
1165 27 : if (EXPR_P (_r1))
1166 27 : goto next_after_fail415;
1167 0 : res_op1 = _r1;
1168 : }
1169 0 : tree _r;
1170 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1171 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 328, __FILE__, __LINE__, true);
1172 : return _r;
1173 : }
1174 : next_after_fail415:;
1175 : }
1176 : return NULL_TREE;
1177 : }
1178 :
1179 : tree
1180 0 : generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1181 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1182 : const enum tree_code ARG_UNUSED (cmp))
1183 : {
1184 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1185 0 : if (single_use (captures[1]) && single_use (captures[3])
1186 : )
1187 : {
1188 0 : {
1189 0 : tree otype = TREE_TYPE (captures[0]);
1190 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail430;
1191 0 : {
1192 0 : tree res_op0;
1193 0 : {
1194 0 : tree _o1[1], _r1;
1195 0 : _o1[0] = captures[4];
1196 0 : if (TREE_TYPE (_o1[0]) != otype)
1197 : {
1198 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1199 : }
1200 : else
1201 : _r1 = _o1[0];
1202 0 : res_op0 = _r1;
1203 : }
1204 0 : tree res_op1;
1205 0 : {
1206 0 : tree _o1[1], _r1;
1207 0 : _o1[0] = captures[2];
1208 0 : if (TREE_TYPE (_o1[0]) != otype)
1209 : {
1210 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1211 : }
1212 : else
1213 : _r1 = _o1[0];
1214 0 : res_op1 = _r1;
1215 : }
1216 0 : tree _r;
1217 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1218 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 342, __FILE__, __LINE__, true);
1219 0 : return _r;
1220 : }
1221 0 : next_after_fail430:;
1222 : }
1223 : }
1224 0 : return NULL_TREE;
1225 : }
1226 :
1227 : tree
1228 22 : generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1229 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1230 : const combined_fn ARG_UNUSED (sq),
1231 : const enum tree_code ARG_UNUSED (cmp))
1232 : {
1233 22 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1234 22 : if (flag_unsafe_math_optimizations && ! flag_errno_math
1235 : )
1236 : {
1237 20 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
1238 : )
1239 : {
1240 2 : if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR
1241 : )
1242 : {
1243 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail450;
1244 1 : {
1245 1 : tree _r;
1246 1 : _r = constant_boolean_node (false, type);
1247 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1248 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1249 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1250 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1251 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 361, __FILE__, __LINE__, true);
1252 1 : return _r;
1253 : }
1254 0 : next_after_fail450:;
1255 0 : }
1256 : else
1257 : {
1258 1 : if (cmp == NE_EXPR || !HONOR_NANS (captures[0])
1259 : )
1260 : {
1261 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail451;
1262 1 : {
1263 1 : tree _r;
1264 1 : _r = constant_boolean_node (true, type);
1265 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1266 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1267 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1268 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1269 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 362, __FILE__, __LINE__, true);
1270 1 : return _r;
1271 : }
1272 0 : next_after_fail451:;
1273 : }
1274 : else
1275 : {
1276 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail452;
1277 0 : {
1278 0 : tree res_op0;
1279 0 : res_op0 = captures[0];
1280 0 : tree res_op1;
1281 0 : res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
1282 0 : tree _r;
1283 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1284 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1285 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1286 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 363, __FILE__, __LINE__, true);
1287 0 : return _r;
1288 : }
1289 0 : next_after_fail452:;
1290 : }
1291 : }
1292 : }
1293 : else
1294 : {
1295 18 : if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0)
1296 : )
1297 : {
1298 0 : if (cmp == LT_EXPR
1299 : )
1300 : {
1301 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail453;
1302 0 : {
1303 0 : tree _r;
1304 0 : _r = constant_boolean_node (false, type);
1305 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1306 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1307 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1308 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1309 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 364, __FILE__, __LINE__, true);
1310 0 : return _r;
1311 : }
1312 0 : next_after_fail453:;
1313 : }
1314 : else
1315 : {
1316 0 : if (cmp == GE_EXPR && !HONOR_NANS (captures[0])
1317 : )
1318 : {
1319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail454;
1320 0 : {
1321 0 : tree _r;
1322 0 : _r = constant_boolean_node (true, type);
1323 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1324 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1325 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1326 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1327 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 365, __FILE__, __LINE__, true);
1328 0 : return _r;
1329 : }
1330 0 : next_after_fail454:;
1331 : }
1332 : else
1333 : {
1334 0 : if (cmp == LE_EXPR
1335 : )
1336 : {
1337 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail455;
1338 0 : {
1339 0 : tree res_op0;
1340 0 : res_op0 = captures[0];
1341 0 : tree res_op1;
1342 0 : res_op1 = captures[1];
1343 0 : tree _r;
1344 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1345 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 366, __FILE__, __LINE__, true);
1346 0 : return _r;
1347 : }
1348 0 : next_after_fail455:;
1349 : }
1350 : else
1351 : {
1352 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail456;
1353 0 : {
1354 0 : tree res_op0;
1355 0 : res_op0 = captures[0];
1356 0 : tree res_op1;
1357 0 : res_op1 = captures[1];
1358 0 : tree _r;
1359 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1360 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 367, __FILE__, __LINE__, true);
1361 0 : return _r;
1362 : }
1363 0 : next_after_fail456:;
1364 : }
1365 : }
1366 : }
1367 : }
1368 : else
1369 : {
1370 18 : if ((cmp == LT_EXPR
1371 : || cmp == LE_EXPR
1372 : || cmp == GT_EXPR
1373 18 : || cmp == GE_EXPR)
1374 16 : && !REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
1375 34 : && !HONOR_SIGN_DEPENDENT_ROUNDING (TREE_TYPE (captures[0]))
1376 : )
1377 : {
1378 16 : {
1379 16 : REAL_VALUE_TYPE c2;
1380 16 : enum tree_code ncmp = cmp;
1381 16 : const real_format *fmt
1382 16 : = REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0])));
1383 32 : real_arithmetic (&c2, MULT_EXPR,
1384 16 : &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
1385 16 : real_convert (&c2, fmt, &c2);
1386 16 : if (!REAL_VALUE_ISINF (c2))
1387 : {
1388 13 : tree c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]),
1389 13 : build_real (TREE_TYPE (captures[0]), c2));
1390 13 : if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST)
1391 : ncmp = ERROR_MARK;
1392 13 : else if ((cmp == LT_EXPR || cmp == GE_EXPR)
1393 13 : && real_less (&TREE_REAL_CST (c3), &TREE_REAL_CST (captures[1])))
1394 4 : ncmp = cmp == LT_EXPR ? LE_EXPR : GT_EXPR;
1395 9 : else if ((cmp == LE_EXPR || cmp == GT_EXPR)
1396 13 : && real_less (&TREE_REAL_CST (captures[1]), &TREE_REAL_CST (c3)))
1397 1 : ncmp = cmp == LE_EXPR ? LT_EXPR : GE_EXPR;
1398 : else
1399 : {
1400 8 : REAL_VALUE_TYPE c2alt, tow;
1401 8 : if (cmp == LT_EXPR || cmp == GE_EXPR)
1402 5 : tow = dconst0;
1403 : else
1404 3 : tow = dconstinf;
1405 8 : real_nextafter (&c2alt, fmt, &c2, &tow);
1406 8 : real_convert (&c2alt, fmt, &c2alt);
1407 8 : if (REAL_VALUE_ISINF (c2alt))
1408 : ncmp = ERROR_MARK;
1409 : else
1410 : {
1411 8 : c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]),
1412 8 : build_real (TREE_TYPE (captures[0]), c2alt));
1413 8 : if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST)
1414 : ncmp = ERROR_MARK;
1415 8 : else if (real_equal (&TREE_REAL_CST (c3),
1416 8 : &TREE_REAL_CST (captures[1])))
1417 8 : c2 = c2alt;
1418 : }
1419 : }
1420 : }
1421 12 : if (cmp == GT_EXPR || cmp == GE_EXPR
1422 : )
1423 : {
1424 5 : if (REAL_VALUE_ISINF (c2)
1425 : )
1426 : {
1427 1 : if (HONOR_INFINITIES (captures[0])
1428 : )
1429 : {
1430 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail457;
1431 0 : {
1432 0 : tree res_op0;
1433 0 : res_op0 = captures[0];
1434 0 : tree res_op1;
1435 0 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1436 0 : tree _r;
1437 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1438 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1439 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1440 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 368, __FILE__, __LINE__, true);
1441 14 : return _r;
1442 : }
1443 0 : next_after_fail457:;
1444 : }
1445 : else
1446 : {
1447 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail458;
1448 1 : {
1449 1 : tree _r;
1450 1 : _r = constant_boolean_node (false, type);
1451 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1452 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1453 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1454 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1455 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 369, __FILE__, __LINE__, true);
1456 1 : return _r;
1457 : }
1458 0 : next_after_fail458:;
1459 : }
1460 : }
1461 : else
1462 : {
1463 4 : if (ncmp != ERROR_MARK
1464 : )
1465 : {
1466 4 : if (ncmp == GE_EXPR
1467 : )
1468 : {
1469 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail459;
1470 1 : {
1471 1 : tree res_op0;
1472 1 : res_op0 = captures[0];
1473 1 : tree res_op1;
1474 1 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1475 1 : tree _r;
1476 1 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1477 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1478 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1479 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 370, __FILE__, __LINE__, true);
1480 1 : return _r;
1481 : }
1482 0 : next_after_fail459:;
1483 : }
1484 : else
1485 : {
1486 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail460;
1487 3 : {
1488 3 : tree res_op0;
1489 3 : res_op0 = captures[0];
1490 3 : tree res_op1;
1491 3 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1492 3 : tree _r;
1493 3 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1494 3 : if (TREE_SIDE_EFFECTS (captures[1]))
1495 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1496 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 371, __FILE__, __LINE__, true);
1497 3 : return _r;
1498 : }
1499 0 : next_after_fail460:;
1500 : }
1501 : }
1502 : }
1503 : }
1504 : else
1505 : {
1506 11 : if (REAL_VALUE_ISINF (c2)
1507 : )
1508 : {
1509 2 : if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0])
1510 : )
1511 : {
1512 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail461;
1513 1 : {
1514 1 : tree _r;
1515 1 : _r = constant_boolean_node (true, type);
1516 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1517 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1518 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1519 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1520 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 372, __FILE__, __LINE__, true);
1521 1 : return _r;
1522 : }
1523 0 : next_after_fail461:;
1524 : }
1525 : else
1526 : {
1527 1 : if (! HONOR_NANS (captures[0])
1528 : )
1529 : {
1530 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail462;
1531 0 : {
1532 0 : tree res_op0;
1533 0 : res_op0 = captures[0];
1534 0 : tree res_op1;
1535 0 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1536 0 : tree _r;
1537 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1538 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1539 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1540 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 373, __FILE__, __LINE__, true);
1541 0 : return _r;
1542 : }
1543 0 : next_after_fail462:;
1544 : }
1545 : else
1546 : {
1547 1 : if (! HONOR_INFINITIES (captures[0])
1548 : )
1549 : {
1550 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail463;
1551 0 : {
1552 0 : tree res_op0;
1553 0 : res_op0 = captures[0];
1554 0 : tree res_op1;
1555 0 : res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
1556 0 : tree _r;
1557 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1558 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1559 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1560 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 374, __FILE__, __LINE__, true);
1561 0 : return _r;
1562 : }
1563 0 : next_after_fail463:;
1564 : }
1565 : else
1566 : {
1567 1 : if (1
1568 : )
1569 : {
1570 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail464;
1571 1 : {
1572 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail464;
1573 0 : tree res_op0;
1574 0 : {
1575 0 : tree _o1[2], _r1;
1576 0 : _o1[0] = unshare_expr (captures[0]);
1577 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1578 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1579 0 : res_op0 = _r1;
1580 : }
1581 0 : tree res_op1;
1582 0 : {
1583 0 : tree _o1[2], _r1;
1584 0 : _o1[0] = captures[0];
1585 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1586 0 : _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
1587 0 : res_op1 = _r1;
1588 : }
1589 0 : tree _r;
1590 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1591 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1592 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1593 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 375, __FILE__, __LINE__, true);
1594 0 : return _r;
1595 : }
1596 2 : next_after_fail464:;
1597 : }
1598 : }
1599 : }
1600 : }
1601 : }
1602 : else
1603 : {
1604 9 : if (ncmp != ERROR_MARK && ! HONOR_NANS (captures[0])
1605 : )
1606 : {
1607 8 : if (ncmp == LT_EXPR
1608 : )
1609 : {
1610 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
1611 4 : {
1612 4 : tree res_op0;
1613 4 : res_op0 = captures[0];
1614 4 : tree res_op1;
1615 4 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1616 4 : tree _r;
1617 4 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1618 4 : if (TREE_SIDE_EFFECTS (captures[1]))
1619 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1620 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 376, __FILE__, __LINE__, true);
1621 4 : return _r;
1622 : }
1623 0 : next_after_fail465:;
1624 : }
1625 : else
1626 : {
1627 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail466;
1628 4 : {
1629 4 : tree res_op0;
1630 4 : res_op0 = captures[0];
1631 4 : tree res_op1;
1632 4 : res_op1 = build_real (TREE_TYPE (captures[0]), c2);
1633 4 : tree _r;
1634 4 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1635 4 : if (TREE_SIDE_EFFECTS (captures[1]))
1636 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1637 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 377, __FILE__, __LINE__, true);
1638 4 : return _r;
1639 : }
1640 0 : next_after_fail466:;
1641 : }
1642 : }
1643 : else
1644 : {
1645 1 : if (ncmp != ERROR_MARK &&
1646 : 1
1647 : )
1648 : {
1649 1 : if (ncmp == LT_EXPR
1650 : )
1651 : {
1652 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail467;
1653 1 : {
1654 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail467;
1655 0 : tree res_op0;
1656 0 : {
1657 0 : tree _o1[2], _r1;
1658 0 : _o1[0] = unshare_expr (captures[0]);
1659 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1660 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1661 0 : res_op0 = _r1;
1662 : }
1663 0 : tree res_op1;
1664 0 : {
1665 0 : tree _o1[2], _r1;
1666 0 : _o1[0] = captures[0];
1667 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1668 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
1669 0 : res_op1 = _r1;
1670 : }
1671 0 : tree _r;
1672 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1673 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1674 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1675 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 378, __FILE__, __LINE__, true);
1676 0 : return _r;
1677 : }
1678 2 : next_after_fail467:;
1679 : }
1680 : else
1681 : {
1682 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail468;
1683 0 : {
1684 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail468;
1685 0 : tree res_op0;
1686 0 : {
1687 0 : tree _o1[2], _r1;
1688 0 : _o1[0] = unshare_expr (captures[0]);
1689 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
1690 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
1691 0 : res_op0 = _r1;
1692 : }
1693 0 : tree res_op1;
1694 0 : {
1695 0 : tree _o1[2], _r1;
1696 0 : _o1[0] = captures[0];
1697 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), c2);
1698 0 : _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
1699 0 : res_op1 = _r1;
1700 : }
1701 0 : tree _r;
1702 0 : _r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
1703 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1704 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1705 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 379, __FILE__, __LINE__, true);
1706 0 : return _r;
1707 : }
1708 2 : next_after_fail468:;
1709 : }
1710 : }
1711 : }
1712 : }
1713 : }
1714 : }
1715 : }
1716 : }
1717 : }
1718 : }
1719 : return NULL_TREE;
1720 : }
1721 :
1722 : tree
1723 0 : generic_simplify_335 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1724 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1725 : const combined_fn ARG_UNUSED (SQRT))
1726 : {
1727 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1728 0 : if (flag_unsafe_math_optimizations
1729 : )
1730 : {
1731 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail606;
1732 0 : {
1733 0 : tree res_op0;
1734 0 : res_op0 = captures[0];
1735 0 : tree _r;
1736 0 : _r = maybe_build_call_expr_loc (loc, SQRT, type, 1, res_op0);
1737 0 : if (!_r)
1738 0 : goto next_after_fail606;
1739 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 497, __FILE__, __LINE__, true);
1740 0 : return _r;
1741 : }
1742 : next_after_fail606:;
1743 : }
1744 : return NULL_TREE;
1745 : }
1746 :
1747 : tree
1748 4 : generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1749 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1750 : const combined_fn ARG_UNUSED (POW))
1751 : {
1752 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1753 4 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1754 : )
1755 : {
1756 4 : if (!TREE_OVERFLOW (captures[2])
1757 : )
1758 : {
1759 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail613;
1760 4 : {
1761 4 : tree res_op0;
1762 4 : res_op0 = captures[1];
1763 4 : tree res_op1;
1764 4 : {
1765 4 : tree _o1[2], _r1;
1766 4 : _o1[0] = captures[2];
1767 4 : _o1[1] = build_one_cst (type);
1768 4 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1769 4 : res_op1 = _r1;
1770 : }
1771 4 : tree _r;
1772 4 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1773 4 : if (!_r)
1774 0 : goto next_after_fail613;
1775 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 504, __FILE__, __LINE__, true);
1776 4 : return _r;
1777 : }
1778 : next_after_fail613:;
1779 : }
1780 : }
1781 : return NULL_TREE;
1782 : }
1783 :
1784 : tree
1785 9 : generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1786 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1787 : {
1788 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1789 9 : if (INTEGRAL_TYPE_P (type)
1790 9 : && !TYPE_UNSIGNED (type)
1791 : )
1792 : {
1793 9 : {
1794 9 : tree utype = unsigned_type_for (type);
1795 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail627;
1796 9 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail627;
1797 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail627;
1798 9 : {
1799 9 : tree res_op0;
1800 9 : {
1801 9 : tree _o1[2], _r1;
1802 9 : {
1803 9 : tree _o2[1], _r2;
1804 9 : _o2[0] = captures[0];
1805 9 : if (TREE_TYPE (_o2[0]) != utype)
1806 : {
1807 9 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1808 : }
1809 : else
1810 : _r2 = _o2[0];
1811 9 : _o1[0] = _r2;
1812 : }
1813 9 : {
1814 9 : tree _o2[1], _r2;
1815 9 : _o2[0] = captures[1];
1816 9 : if (TREE_TYPE (_o2[0]) != utype)
1817 : {
1818 9 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1819 : }
1820 : else
1821 : _r2 = _o2[0];
1822 9 : _o1[1] = _r2;
1823 : }
1824 9 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1825 9 : res_op0 = _r1;
1826 : }
1827 9 : tree _r;
1828 9 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1829 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 518, __FILE__, __LINE__, true);
1830 9 : return _r;
1831 : }
1832 : next_after_fail627:;
1833 : }
1834 : }
1835 : return NULL_TREE;
1836 : }
1837 :
1838 : tree
1839 0 : generic_simplify_357 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1840 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1841 : const enum tree_code ARG_UNUSED (op))
1842 : {
1843 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1844 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail634;
1845 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail634;
1846 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail634;
1847 0 : {
1848 0 : tree _r;
1849 0 : _r = captures[2];
1850 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 525, __FILE__, __LINE__, true);
1851 : return _r;
1852 : }
1853 : next_after_fail634:;
1854 : return NULL_TREE;
1855 : }
1856 :
1857 : tree
1858 0 : generic_simplify_364 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1859 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1860 : {
1861 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1862 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail641;
1863 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail641;
1864 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail641;
1865 0 : {
1866 0 : tree _r;
1867 0 : _r = captures[2];
1868 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 532, __FILE__, __LINE__, true);
1869 : return _r;
1870 : }
1871 : next_after_fail641:;
1872 : return NULL_TREE;
1873 : }
1874 :
1875 : tree
1876 9 : generic_simplify_370 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1877 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1878 : const combined_fn ARG_UNUSED (func))
1879 : {
1880 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1881 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail648;
1882 9 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail648;
1883 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail648;
1884 9 : {
1885 9 : tree _r;
1886 9 : _r = captures[2];
1887 9 : if (TREE_SIDE_EFFECTS (captures[1]))
1888 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1889 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 539, __FILE__, __LINE__, true);
1890 : return _r;
1891 : }
1892 : next_after_fail648:;
1893 : return NULL_TREE;
1894 : }
1895 :
1896 : tree
1897 1 : generic_simplify_378 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1898 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1899 : const enum tree_code ARG_UNUSED (cmp))
1900 : {
1901 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1902 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail659;
1903 1 : {
1904 1 : tree _r;
1905 1 : _r = constant_boolean_node (cmp == LT_EXPR, type);
1906 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1907 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1908 1 : if (TREE_SIDE_EFFECTS (captures[1]))
1909 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1910 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 548, __FILE__, __LINE__, true);
1911 : return _r;
1912 : }
1913 0 : next_after_fail659:;
1914 0 : return NULL_TREE;
1915 : }
1916 :
1917 : tree
1918 433 : generic_simplify_384 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1919 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1920 : const enum tree_code ARG_UNUSED (op))
1921 : {
1922 433 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1923 866 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1924 866 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1925 : )
1926 : {
1927 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail666;
1928 0 : {
1929 0 : tree res_op0;
1930 0 : res_op0 = captures[2];
1931 0 : tree res_op1;
1932 0 : res_op1 = captures[1];
1933 0 : tree _r;
1934 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1935 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1936 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1937 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 555, __FILE__, __LINE__, true);
1938 0 : return _r;
1939 : }
1940 0 : next_after_fail666:;
1941 : }
1942 : return NULL_TREE;
1943 : }
1944 :
1945 : tree
1946 6 : generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1947 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1948 : const enum tree_code ARG_UNUSED (cmp))
1949 : {
1950 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1951 12 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1952 12 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1953 : )
1954 : {
1955 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
1956 6 : {
1957 6 : tree res_op0;
1958 6 : res_op0 = captures[0];
1959 6 : tree res_op1;
1960 6 : res_op1 = captures[1];
1961 6 : tree _r;
1962 6 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1963 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
1964 6 : return _r;
1965 : }
1966 0 : next_after_fail673:;
1967 : }
1968 : return NULL_TREE;
1969 : }
1970 :
1971 : tree
1972 167 : generic_simplify_397 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1973 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1974 : const enum tree_code ARG_UNUSED (cmp),
1975 : const enum tree_code ARG_UNUSED (out))
1976 : {
1977 167 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1978 167 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1979 167 : && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
1980 156 : && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
1981 167 : && wi::to_wide (captures[4]) != 0
1982 0 : && single_use (captures[1])
1983 : )
1984 : {
1985 156 : {
1986 156 : unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
1987 156 : signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
1988 156 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail712;
1989 156 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail712;
1990 156 : {
1991 156 : tree res_op0;
1992 156 : res_op0 = captures[3];
1993 156 : tree res_op1;
1994 156 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
1995 156 : wi::max_value (prec, sign)
1996 468 : - wi::to_wide (captures[4]));
1997 156 : tree _r;
1998 156 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1999 156 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
2000 156 : return _r;
2001 : }
2002 : next_after_fail712:;
2003 : }
2004 : }
2005 : return NULL_TREE;
2006 : }
2007 :
2008 : tree
2009 50 : generic_simplify_405 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2010 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2011 : const enum tree_code ARG_UNUSED (op),
2012 : const enum tree_code ARG_UNUSED (cmp),
2013 : const combined_fn ARG_UNUSED (ctz))
2014 : {
2015 50 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2016 50 : {
2017 50 : bool ok = true;
2018 50 : HOST_WIDE_INT val = 0;
2019 50 : if (sanitize_flags_p (SANITIZE_BUILTIN)
2020 50 : && (!cfun
2021 32 : || (cfun->curr_properties & PROP_ssa) == 0))
2022 : ok = false;
2023 18 : else if (!tree_fits_shwi_p (captures[2]))
2024 : ok = false;
2025 : else
2026 : {
2027 18 : val = tree_to_shwi (captures[2]);
2028 18 : if (op == GT_EXPR || op == LE_EXPR)
2029 : {
2030 10 : if (val == HOST_WIDE_INT_MAX)
2031 : ok = false;
2032 : else
2033 10 : val++;
2034 : }
2035 : }
2036 50 : tree type0 = TREE_TYPE (captures[1]);
2037 50 : int prec = TYPE_PRECISION (type0);
2038 68 : if (ok && prec <= MAX_FIXED_MODE_SIZE
2039 : )
2040 : {
2041 18 : if (val <= 0
2042 : )
2043 : {
2044 8 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail723;
2045 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail723;
2046 8 : {
2047 8 : tree _r;
2048 8 : _r = constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
2049 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2050 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2051 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 595, __FILE__, __LINE__, true);
2052 8 : return _r;
2053 : }
2054 : next_after_fail723:;
2055 : }
2056 : else
2057 : {
2058 10 : if (val >= prec
2059 : )
2060 : {
2061 5 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail724;
2062 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail724;
2063 5 : {
2064 5 : tree _r;
2065 5 : _r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
2066 5 : if (TREE_SIDE_EFFECTS (captures[1]))
2067 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2068 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 596, __FILE__, __LINE__, true);
2069 5 : return _r;
2070 : }
2071 : next_after_fail724:;
2072 : }
2073 : else
2074 : {
2075 5 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail725;
2076 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail725;
2077 5 : {
2078 5 : tree res_op0;
2079 5 : {
2080 5 : tree _o1[2], _r1;
2081 5 : _o1[0] = captures[1];
2082 5 : _o1[1] = wide_int_to_tree (type0,
2083 5 : wi::mask (val, false, prec));
2084 5 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2085 5 : res_op0 = _r1;
2086 : }
2087 5 : tree res_op1;
2088 5 : res_op1 = build_zero_cst (type0);
2089 5 : tree _r;
2090 5 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2091 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 597, __FILE__, __LINE__, true);
2092 5 : return _r;
2093 : }
2094 : next_after_fail725:;
2095 : }
2096 : }
2097 : }
2098 : }
2099 : return NULL_TREE;
2100 : }
2101 :
2102 : tree
2103 355 : generic_simplify_418 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2104 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2105 : const enum tree_code ARG_UNUSED (shift),
2106 : const enum tree_code ARG_UNUSED (mod))
2107 : {
2108 355 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2109 355 : if (integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0
2110 : )
2111 : {
2112 280 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail744;
2113 280 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
2114 280 : {
2115 280 : tree res_op0;
2116 280 : res_op0 = captures[0];
2117 280 : tree res_op1;
2118 280 : {
2119 280 : tree _o1[2], _r1;
2120 280 : _o1[0] = captures[1];
2121 280 : {
2122 280 : tree _o2[2], _r2;
2123 280 : _o2[0] = captures[2];
2124 280 : _o2[1] = build_int_cst (TREE_TYPE (captures[2]),
2125 : 1);
2126 280 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2127 280 : _o1[1] = _r2;
2128 : }
2129 280 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2130 280 : res_op1 = _r1;
2131 : }
2132 280 : tree _r;
2133 280 : _r = fold_build2_loc (loc, shift, type, res_op0, res_op1);
2134 280 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 612, __FILE__, __LINE__, true);
2135 280 : return _r;
2136 : }
2137 : next_after_fail744:;
2138 : }
2139 : return NULL_TREE;
2140 : }
2141 :
2142 : tree
2143 27477 : generic_simplify_427 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2144 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2145 : const enum tree_code ARG_UNUSED (bit_op),
2146 : const enum tree_code ARG_UNUSED (shift))
2147 : {
2148 27477 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2149 27477 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
2150 : )
2151 : {
2152 27477 : {
2153 27477 : tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
2154 27477 : if (mask
2155 : )
2156 : {
2157 27470 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail756;
2158 27470 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail756;
2159 27470 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail756;
2160 27470 : {
2161 27470 : tree res_op0;
2162 27470 : {
2163 27470 : tree _o1[2], _r1;
2164 27470 : {
2165 27470 : tree _o2[1], _r2;
2166 27470 : _o2[0] = captures[2];
2167 27470 : if (TREE_TYPE (_o2[0]) != type)
2168 : {
2169 70 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
2170 : }
2171 : else
2172 : _r2 = _o2[0];
2173 27470 : _o1[0] = _r2;
2174 : }
2175 27470 : _o1[1] = captures[4];
2176 27470 : _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2177 27470 : res_op0 = _r1;
2178 : }
2179 27470 : tree res_op1;
2180 27470 : res_op1 = mask;
2181 27470 : tree _r;
2182 27470 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2183 27470 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
2184 27470 : return _r;
2185 : }
2186 : next_after_fail756:;
2187 : }
2188 : }
2189 : }
2190 : return NULL_TREE;
2191 : }
2192 :
2193 : tree
2194 94 : generic_simplify_433 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2195 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2196 : const enum tree_code ARG_UNUSED (minmax))
2197 : {
2198 94 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2199 94 : if (INTEGRAL_TYPE_P (type)
2200 94 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2201 94 : && types_match (type, TREE_TYPE (captures[1]))
2202 8 : && types_match (type, TREE_TYPE (captures[3]))
2203 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
2204 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
2205 94 : && TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (type)
2206 : )
2207 : {
2208 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail768;
2209 0 : {
2210 0 : tree res_op0;
2211 0 : res_op0 = captures[1];
2212 0 : tree res_op1;
2213 0 : res_op1 = captures[3];
2214 0 : tree _r;
2215 0 : _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
2216 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
2217 0 : return _r;
2218 : }
2219 0 : next_after_fail768:;
2220 : }
2221 : return NULL_TREE;
2222 : }
2223 :
2224 : tree
2225 8188566 : generic_simplify_436 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2226 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2227 : const enum tree_code ARG_UNUSED (op))
2228 : {
2229 8188566 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2230 8188566 : if (INTEGRAL_TYPE_P (type)
2231 7963628 : && op != MULT_EXPR
2232 7963628 : && op != RDIV_EXPR
2233 3900373 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2234 3582190 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2235 3582190 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2236 3532224 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2237 3532216 : && type_has_mode_precision_p (type)
2238 3523695 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2239 1300013 : && types_match (captures[2], type)
2240 8204140 : && (types_match (captures[2], captures[4])
2241 15574 : || poly_int_tree_p (captures[3]))
2242 : )
2243 : {
2244 12912 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2245 : )
2246 : {
2247 7898 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail774;
2248 7898 : {
2249 7898 : tree res_op0;
2250 7898 : res_op0 = captures[2];
2251 7898 : tree res_op1;
2252 7898 : {
2253 7898 : tree _o1[1], _r1;
2254 7898 : _o1[0] = captures[4];
2255 7898 : if (TREE_TYPE (_o1[0]) != type)
2256 : {
2257 7898 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2258 : }
2259 : else
2260 : _r1 = _o1[0];
2261 7898 : res_op1 = _r1;
2262 : }
2263 7898 : tree _r;
2264 7898 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2265 7898 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
2266 7898 : return _r;
2267 : }
2268 0 : next_after_fail774:;
2269 : }
2270 : else
2271 : {
2272 5014 : {
2273 5014 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2274 5014 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail775;
2275 5014 : {
2276 5014 : tree res_op0;
2277 5014 : {
2278 5014 : tree _o1[2], _r1;
2279 5014 : {
2280 5014 : tree _o2[1], _r2;
2281 5014 : _o2[0] = captures[2];
2282 5014 : if (TREE_TYPE (_o2[0]) != utype)
2283 : {
2284 5014 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2285 : }
2286 : else
2287 : _r2 = _o2[0];
2288 5014 : _o1[0] = _r2;
2289 : }
2290 5014 : {
2291 5014 : tree _o2[1], _r2;
2292 5014 : _o2[0] = captures[4];
2293 5014 : if (TREE_TYPE (_o2[0]) != utype)
2294 : {
2295 5014 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2296 : }
2297 : else
2298 : _r2 = _o2[0];
2299 5014 : _o1[1] = _r2;
2300 : }
2301 5014 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2302 5014 : res_op0 = _r1;
2303 : }
2304 5014 : tree _r;
2305 5014 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2306 5014 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 637, __FILE__, __LINE__, true);
2307 5014 : return _r;
2308 : }
2309 0 : next_after_fail775:;
2310 : }
2311 : }
2312 : }
2313 : else
2314 : {
2315 8143316 : if (FLOAT_TYPE_P (type)
2316 8207992 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2317 32338 : == DECIMAL_FLOAT_TYPE_P (type)
2318 : )
2319 : {
2320 32312 : {
2321 32312 : tree arg0 = strip_float_extensions (captures[2]);
2322 32312 : tree arg1 = strip_float_extensions (captures[4]);
2323 32312 : tree itype = TREE_TYPE (captures[0]);
2324 32312 : tree ty1 = TREE_TYPE (arg0);
2325 32312 : tree ty2 = TREE_TYPE (arg1);
2326 32312 : enum tree_code code = TREE_CODE (itype);
2327 0 : if (FLOAT_TYPE_P (ty1)
2328 32312 : && FLOAT_TYPE_P (ty2)
2329 : )
2330 : {
2331 32312 : {
2332 32312 : tree newtype = type;
2333 32312 : if (TYPE_MODE (ty1) == SDmode
2334 32050 : || TYPE_MODE (ty2) == SDmode
2335 64362 : || TYPE_MODE (type) == SDmode)
2336 262 : newtype = dfloat32_type_node;
2337 32312 : if (TYPE_MODE (ty1) == DDmode
2338 32180 : || TYPE_MODE (ty2) == DDmode
2339 64365 : || TYPE_MODE (type) == DDmode)
2340 259 : newtype = dfloat64_type_node;
2341 32312 : if (TYPE_MODE (ty1) == TDmode
2342 32312 : || TYPE_MODE (ty2) == TDmode
2343 64372 : || TYPE_MODE (type) == TDmode)
2344 267 : newtype = dfloat128_type_node;
2345 32312 : if ((newtype == dfloat32_type_node
2346 32312 : || newtype == dfloat64_type_node
2347 32185 : || newtype == dfloat128_type_node)
2348 394 : && newtype == type
2349 32318 : && types_match (newtype, type)
2350 : )
2351 : {
2352 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail776;
2353 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail776;
2354 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail776;
2355 0 : {
2356 0 : tree res_op0;
2357 0 : {
2358 0 : tree _o1[1], _r1;
2359 0 : _o1[0] = captures[2];
2360 0 : if (TREE_TYPE (_o1[0]) != newtype)
2361 : {
2362 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2363 : }
2364 : else
2365 : _r1 = _o1[0];
2366 0 : res_op0 = _r1;
2367 : }
2368 0 : tree res_op1;
2369 0 : {
2370 0 : tree _o1[1], _r1;
2371 0 : _o1[0] = captures[4];
2372 0 : if (TREE_TYPE (_o1[0]) != newtype)
2373 : {
2374 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2375 : }
2376 : else
2377 : _r1 = _o1[0];
2378 0 : res_op1 = _r1;
2379 : }
2380 0 : tree _r;
2381 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2382 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
2383 0 : return _r;
2384 : }
2385 : next_after_fail776:;
2386 : }
2387 : else
2388 : {
2389 32306 : {
2390 32306 : if (element_precision (ty1) > element_precision (newtype))
2391 14 : newtype = ty1;
2392 32306 : if (element_precision (ty2) > element_precision (newtype))
2393 4113 : newtype = ty2;
2394 32306 : if (element_precision (newtype) < element_precision (itype)
2395 15435 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2396 0 : || target_supports_op_p (newtype, op, optab_default))
2397 15435 : && (flag_unsafe_math_optimizations
2398 15410 : || (element_precision (newtype) == element_precision (type)
2399 15386 : && real_can_shorten_arithmetic (element_mode (itype),
2400 : element_mode (type))
2401 6701 : && !excess_precision_type (newtype)))
2402 35577 : && !types_match (itype, newtype)
2403 : )
2404 : {
2405 3271 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail777;
2406 3270 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail777;
2407 3262 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail777;
2408 3262 : {
2409 3262 : tree res_op0;
2410 3262 : {
2411 3262 : tree _o1[2], _r1;
2412 3262 : {
2413 3262 : tree _o2[1], _r2;
2414 3262 : _o2[0] = captures[2];
2415 3262 : if (TREE_TYPE (_o2[0]) != newtype)
2416 : {
2417 3 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2418 : }
2419 : else
2420 : _r2 = _o2[0];
2421 3262 : _o1[0] = _r2;
2422 : }
2423 3262 : {
2424 3262 : tree _o2[1], _r2;
2425 3262 : _o2[0] = captures[4];
2426 3262 : if (TREE_TYPE (_o2[0]) != newtype)
2427 : {
2428 3262 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2429 : }
2430 : else
2431 : _r2 = _o2[0];
2432 3262 : _o1[1] = _r2;
2433 : }
2434 3262 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2435 3262 : res_op0 = _r1;
2436 : }
2437 3262 : tree _r;
2438 3262 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2439 3262 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 639, __FILE__, __LINE__, true);
2440 3262 : return _r;
2441 : }
2442 : next_after_fail777:;
2443 : }
2444 : }
2445 : }
2446 : }
2447 : }
2448 : }
2449 : }
2450 : }
2451 : return NULL_TREE;
2452 : }
2453 :
2454 : tree
2455 2 : generic_simplify_467 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2456 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2457 : {
2458 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2459 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail814;
2460 2 : {
2461 2 : tree res_op0;
2462 2 : {
2463 2 : tree _o1[2], _r1;
2464 2 : _o1[0] = captures[1];
2465 2 : _o1[1] = captures[2];
2466 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2467 2 : res_op0 = _r1;
2468 : }
2469 2 : tree _r;
2470 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2471 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 667, __FILE__, __LINE__, true);
2472 : return _r;
2473 : }
2474 0 : next_after_fail814:;
2475 0 : return NULL_TREE;
2476 : }
2477 :
2478 : tree
2479 8 : generic_simplify_473 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2480 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2481 : const enum tree_code ARG_UNUSED (eqne))
2482 : {
2483 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2484 8 : if (eqne == EQ_EXPR
2485 : )
2486 : {
2487 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail820;
2488 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail820;
2489 4 : {
2490 4 : tree _r;
2491 4 : _r = constant_boolean_node (false, type);
2492 4 : if (TREE_SIDE_EFFECTS (captures[2]))
2493 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2494 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
2495 4 : return _r;
2496 : }
2497 : next_after_fail820:;
2498 : }
2499 : else
2500 : {
2501 4 : if (eqne == NE_EXPR
2502 : )
2503 : {
2504 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail821;
2505 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail821;
2506 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail821;
2507 4 : {
2508 4 : tree _r;
2509 4 : _r = captures[0];
2510 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2511 4 : return _r;
2512 : }
2513 : next_after_fail821:;
2514 : }
2515 : }
2516 : return NULL_TREE;
2517 : }
2518 :
2519 : tree
2520 3 : generic_simplify_484 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2521 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2522 : {
2523 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2524 6 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2525 6 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2526 : )
2527 : {
2528 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail865;
2529 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail865;
2530 3 : {
2531 3 : tree res_op0;
2532 3 : res_op0 = captures[3];
2533 3 : tree res_op1;
2534 3 : {
2535 3 : tree _o1[2], _r1;
2536 3 : _o1[0] = captures[1];
2537 3 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
2538 3 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2539 3 : res_op1 = _r1;
2540 : }
2541 3 : tree _r;
2542 3 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2543 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 692, __FILE__, __LINE__, true);
2544 3 : return _r;
2545 : }
2546 : next_after_fail865:;
2547 : }
2548 : return NULL_TREE;
2549 : }
2550 :
2551 : tree
2552 32682 : generic_simplify_491 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2553 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2554 : const enum tree_code ARG_UNUSED (shift))
2555 : {
2556 32682 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2557 32682 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2558 22380 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2559 22380 : && tree_fits_uhwi_p (captures[4])
2560 22380 : && tree_to_uhwi (captures[4]) > 0
2561 55062 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2562 : )
2563 : {
2564 22380 : {
2565 22380 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2566 22380 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2567 22380 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2568 22380 : tree shift_type = TREE_TYPE (captures[2]);
2569 22380 : unsigned int prec;
2570 22380 : if (shift == LSHIFT_EXPR)
2571 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2572 22380 : else if (shift == RSHIFT_EXPR
2573 22380 : && type_has_mode_precision_p (shift_type))
2574 : {
2575 22380 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2576 22380 : tree arg00 = captures[3];
2577 22380 : if (captures[2] != captures[3]
2578 22380 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2579 : {
2580 21973 : tree inner_type = TREE_TYPE (captures[3]);
2581 21973 : if (type_has_mode_precision_p (inner_type)
2582 21973 : && TYPE_PRECISION (inner_type) < prec)
2583 : {
2584 34 : prec = TYPE_PRECISION (inner_type);
2585 34 : if (shiftc < prec)
2586 34 : shift_type = inner_type;
2587 : }
2588 : }
2589 22380 : zerobits = HOST_WIDE_INT_M1U;
2590 22380 : if (shiftc < prec)
2591 : {
2592 22380 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2593 22380 : zerobits <<= prec - shiftc;
2594 : }
2595 22380 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2596 22380 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2597 : {
2598 73 : if ((mask & zerobits) == 0)
2599 59 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2600 : else
2601 : zerobits = 0;
2602 : }
2603 : }
2604 22366 : if ((mask & zerobits) == mask
2605 : )
2606 : {
2607 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail876;
2608 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail876;
2609 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail876;
2610 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail876;
2611 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail876;
2612 0 : {
2613 0 : tree _r;
2614 0 : _r = build_int_cst (type, 0);
2615 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
2616 0 : return _r;
2617 : }
2618 : next_after_fail876:;
2619 : }
2620 : else
2621 : {
2622 22380 : {
2623 22380 : newmask = mask | zerobits;
2624 22380 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2625 : )
2626 : {
2627 : {
2628 65 : for (prec = BITS_PER_UNIT;
2629 122 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2630 118 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2631 : break;
2632 57 : if (prec < HOST_BITS_PER_WIDE_INT
2633 4 : || newmask == HOST_WIDE_INT_M1U
2634 : )
2635 : {
2636 57 : {
2637 57 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2638 57 : if (!tree_int_cst_equal (newmaskt, captures[5])
2639 : )
2640 : {
2641 57 : if (shift_type != TREE_TYPE (captures[2])
2642 : )
2643 : {
2644 47 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail877;
2645 47 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail877;
2646 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail877;
2647 47 : {
2648 47 : tree res_op0;
2649 47 : {
2650 47 : tree _o1[1], _r1;
2651 47 : {
2652 47 : tree _o2[2], _r2;
2653 47 : {
2654 47 : tree _o3[1], _r3;
2655 47 : _o3[0] = captures[2];
2656 47 : if (TREE_TYPE (_o3[0]) != shift_type)
2657 : {
2658 47 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2659 : }
2660 : else
2661 : _r3 = _o3[0];
2662 47 : _o2[0] = _r3;
2663 : }
2664 47 : _o2[1] = captures[4];
2665 47 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2666 47 : _o1[0] = _r2;
2667 : }
2668 47 : if (TREE_TYPE (_o1[0]) != type)
2669 : {
2670 47 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2671 : }
2672 : else
2673 : _r1 = _o1[0];
2674 47 : res_op0 = _r1;
2675 : }
2676 47 : tree res_op1;
2677 47 : res_op1 = newmaskt;
2678 47 : tree _r;
2679 47 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2680 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
2681 47 : return _r;
2682 : }
2683 : next_after_fail877:;
2684 : }
2685 : else
2686 : {
2687 10 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail878;
2688 10 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail878;
2689 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail878;
2690 10 : {
2691 10 : tree res_op0;
2692 10 : res_op0 = captures[0];
2693 10 : tree res_op1;
2694 10 : res_op1 = newmaskt;
2695 10 : tree _r;
2696 10 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2697 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
2698 10 : return _r;
2699 : }
2700 : next_after_fail878:;
2701 : }
2702 : }
2703 : }
2704 : }
2705 : }
2706 : }
2707 : }
2708 : }
2709 : }
2710 : }
2711 : return NULL_TREE;
2712 : }
2713 :
2714 : tree
2715 108 : generic_simplify_501 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2716 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2717 : {
2718 108 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2719 108 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail892;
2720 108 : {
2721 108 : tree res_op0;
2722 108 : res_op0 = captures[1];
2723 108 : tree res_op1;
2724 108 : {
2725 108 : tree _o1[1], _r1;
2726 108 : _o1[0] = captures[2];
2727 108 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2728 108 : res_op1 = _r1;
2729 : }
2730 108 : tree _r;
2731 108 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2732 108 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 706, __FILE__, __LINE__, true);
2733 : return _r;
2734 : }
2735 0 : next_after_fail892:;
2736 0 : return NULL_TREE;
2737 : }
2738 :
2739 : tree
2740 0 : generic_simplify_508 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2741 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2742 : {
2743 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2744 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2745 : )
2746 : {
2747 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail899;
2748 0 : {
2749 0 : tree res_op0;
2750 0 : {
2751 0 : tree _o1[2], _r1;
2752 0 : _o1[0] = captures[0];
2753 0 : _o1[1] = captures[1];
2754 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2755 0 : res_op0 = _r1;
2756 : }
2757 0 : tree _r;
2758 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2759 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 713, __FILE__, __LINE__, true);
2760 0 : return _r;
2761 : }
2762 0 : next_after_fail899:;
2763 : }
2764 : return NULL_TREE;
2765 : }
2766 :
2767 : tree
2768 39333 : generic_simplify_514 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2769 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2770 : {
2771 39333 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2772 39333 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
2773 39333 : && !HONOR_SIGNED_ZEROS (type)
2774 : )
2775 : {
2776 39333 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail906;
2777 39333 : {
2778 39333 : tree res_op0;
2779 39333 : {
2780 39333 : tree _o1[1], _r1;
2781 39333 : _o1[0] = captures[1];
2782 39333 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2783 39333 : res_op0 = _r1;
2784 : }
2785 39333 : tree res_op1;
2786 39333 : res_op1 = captures[0];
2787 39333 : tree _r;
2788 39333 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2789 39333 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
2790 39333 : return _r;
2791 : }
2792 0 : next_after_fail906:;
2793 : }
2794 : return NULL_TREE;
2795 : }
2796 :
2797 : tree
2798 16 : generic_simplify_520 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2799 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2800 : const combined_fn ARG_UNUSED (fmas))
2801 : {
2802 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2803 16 : if (canonicalize_math_after_vectorization_p ()
2804 : )
2805 : {
2806 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
2807 : )
2808 : {
2809 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail913;
2810 : {
2811 : tree res_op0;
2812 : res_op0 = captures[1];
2813 : tree res_op1;
2814 : res_op1 = captures[2];
2815 : tree res_op2;
2816 : res_op2 = captures[3];
2817 : tree _r;
2818 : _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
2819 : if (!_r)
2820 : goto next_after_fail913;
2821 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 725, __FILE__, __LINE__, true);
2822 : return _r;
2823 : }
2824 16 : next_after_fail913:;
2825 : }
2826 : }
2827 16 : return NULL_TREE;
2828 : }
2829 :
2830 : tree
2831 0 : generic_simplify_532 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2832 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2833 : const enum tree_code ARG_UNUSED (minmax),
2834 : const enum tree_code ARG_UNUSED (cmp))
2835 : {
2836 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2837 0 : {
2838 0 : poly_int64 off0, off1;
2839 0 : tree base0, base1;
2840 0 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2841 : off0, off1,
2842 : 1
2843 : );
2844 0 : if (equal == 1
2845 : )
2846 : {
2847 0 : if (minmax == MIN_EXPR
2848 : )
2849 : {
2850 0 : if (known_le (off0, off1)
2851 : )
2852 : {
2853 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail933;
2854 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail933;
2855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail933;
2856 0 : {
2857 0 : tree _r;
2858 0 : _r = captures[0];
2859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
2860 0 : return _r;
2861 : }
2862 0 : next_after_fail933:;
2863 : }
2864 : else
2865 : {
2866 0 : if (known_gt (off0, off1)
2867 : )
2868 : {
2869 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail934;
2870 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail934;
2871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail934;
2872 0 : {
2873 0 : tree _r;
2874 0 : _r = captures[2];
2875 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
2876 0 : return _r;
2877 : }
2878 0 : next_after_fail934:;
2879 : }
2880 : }
2881 : }
2882 : else
2883 : {
2884 0 : if (known_ge (off0, off1)
2885 : )
2886 : {
2887 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail935;
2888 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail935;
2889 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
2890 0 : {
2891 0 : tree _r;
2892 0 : _r = captures[0];
2893 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
2894 0 : return _r;
2895 : }
2896 0 : next_after_fail935:;
2897 : }
2898 : else
2899 : {
2900 0 : if (known_lt (off0, off1)
2901 : )
2902 : {
2903 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail936;
2904 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail936;
2905 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail936;
2906 0 : {
2907 0 : tree _r;
2908 0 : _r = captures[2];
2909 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
2910 0 : return _r;
2911 : }
2912 0 : next_after_fail936:;
2913 : }
2914 : }
2915 : }
2916 : }
2917 : }
2918 0 : return NULL_TREE;
2919 : }
2920 :
2921 : tree
2922 0 : generic_simplify_553 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2923 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2924 : const combined_fn ARG_UNUSED (cond_len_op))
2925 : {
2926 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2927 0 : {
2928 0 : tree op_type = TREE_TYPE (captures[4]);
2929 0 : if (element_precision (type) == element_precision (op_type)
2930 : )
2931 : {
2932 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail960;
2933 0 : {
2934 0 : tree res_op0;
2935 0 : {
2936 0 : tree _o1[7], _r1;
2937 0 : _o1[0] = captures[0];
2938 0 : _o1[1] = captures[1];
2939 0 : _o1[2] = captures[2];
2940 0 : _o1[3] = captures[3];
2941 0 : {
2942 0 : tree _o2[1], _r2;
2943 0 : _o2[0] = captures[7];
2944 0 : if (TREE_TYPE (_o2[0]) != op_type)
2945 : {
2946 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2947 : }
2948 : else
2949 : _r2 = _o2[0];
2950 0 : _o1[4] = _r2;
2951 : }
2952 0 : _o1[5] = captures[5];
2953 0 : _o1[6] = captures[6];
2954 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 7, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5], _o1[6]);
2955 0 : if (!_r1)
2956 0 : goto next_after_fail960;
2957 0 : res_op0 = _r1;
2958 : }
2959 0 : tree _r;
2960 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2961 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2962 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2963 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 754, __FILE__, __LINE__, true);
2964 0 : return _r;
2965 : }
2966 : next_after_fail960:;
2967 : }
2968 : }
2969 : return NULL_TREE;
2970 : }
2971 :
2972 : tree
2973 0 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2974 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2975 : const enum tree_code ARG_UNUSED (cmp))
2976 : {
2977 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2978 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail975;
2979 0 : {
2980 0 : tree res_op0;
2981 0 : res_op0 = unshare_expr (captures[0]);
2982 0 : tree res_op1;
2983 0 : res_op1 = captures[0];
2984 0 : tree _r;
2985 0 : _r = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
2986 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 769, __FILE__, __LINE__, true);
2987 : return _r;
2988 : }
2989 0 : next_after_fail975:;
2990 0 : return NULL_TREE;
2991 : }
2992 :
2993 : tree
2994 0 : generic_simplify_571 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2995 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2996 : const combined_fn ARG_UNUSED (logs),
2997 : const combined_fn ARG_UNUSED (pows))
2998 : {
2999 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3000 0 : if (flag_unsafe_math_optimizations
3001 : )
3002 : {
3003 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail981;
3004 0 : {
3005 0 : tree res_op0;
3006 0 : res_op0 = captures[1];
3007 0 : tree res_op1;
3008 0 : {
3009 0 : tree _o1[1], _r1;
3010 0 : _o1[0] = captures[0];
3011 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
3012 0 : if (!_r1)
3013 0 : goto next_after_fail981;
3014 0 : res_op1 = _r1;
3015 : }
3016 0 : tree _r;
3017 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
3018 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 775, __FILE__, __LINE__, true);
3019 0 : return _r;
3020 : }
3021 : next_after_fail981:;
3022 : }
3023 : return NULL_TREE;
3024 : }
3025 :
3026 : tree
3027 0 : generic_simplify_579 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3028 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3029 : const combined_fn ARG_UNUSED (floors),
3030 : const combined_fn ARG_UNUSED (truncs))
3031 : {
3032 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3033 0 : if (canonicalize_math_p ()
3034 : )
3035 : {
3036 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail989;
3037 0 : {
3038 0 : tree res_op0;
3039 0 : res_op0 = captures[0];
3040 0 : tree _r;
3041 0 : _r = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
3042 0 : if (!_r)
3043 0 : goto next_after_fail989;
3044 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 783, __FILE__, __LINE__, true);
3045 0 : return _r;
3046 : }
3047 : next_after_fail989:;
3048 : }
3049 : return NULL_TREE;
3050 : }
3051 :
3052 : tree
3053 0 : generic_simplify_584 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3054 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3055 : const combined_fn ARG_UNUSED (floors))
3056 : {
3057 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3058 0 : if (canonicalize_math_p ()
3059 : )
3060 : {
3061 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail994;
3062 0 : {
3063 0 : tree res_op0;
3064 0 : res_op0 = captures[0];
3065 0 : tree _r;
3066 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3067 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
3068 0 : return _r;
3069 : }
3070 0 : next_after_fail994:;
3071 : }
3072 : return NULL_TREE;
3073 : }
3074 :
3075 : tree
3076 0 : generic_simplify_593 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3077 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3078 : const combined_fn ARG_UNUSED (fmas))
3079 : {
3080 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3081 0 : if (canonicalize_math_after_vectorization_p ()
3082 : )
3083 : {
3084 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
3085 : {
3086 : tree res_op0;
3087 : res_op0 = captures[0];
3088 : tree res_op1;
3089 : res_op1 = captures[1];
3090 : tree res_op2;
3091 : res_op2 = captures[2];
3092 : tree _r;
3093 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3094 : if (!_r)
3095 : goto next_after_fail1003;
3096 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
3097 : return _r;
3098 : }
3099 0 : next_after_fail1003:;
3100 : }
3101 0 : return NULL_TREE;
3102 : }
3103 :
3104 : tree
3105 0 : generic_simplify_602 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3106 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
3107 : const combined_fn ARG_UNUSED (fmas))
3108 : {
3109 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3110 0 : if (canonicalize_math_after_vectorization_p ()
3111 : )
3112 : {
3113 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1012;
3114 : {
3115 : tree res_op0;
3116 : res_op0 = captures[0];
3117 : tree res_op1;
3118 : res_op1 = captures[1];
3119 : tree res_op2;
3120 : res_op2 = captures[2];
3121 : tree res_op3;
3122 : res_op3 = captures[3];
3123 : tree res_op4;
3124 : res_op4 = captures[4];
3125 : tree _r;
3126 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3127 : if (!_r)
3128 : goto next_after_fail1012;
3129 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 806, __FILE__, __LINE__, true);
3130 : return _r;
3131 : }
3132 0 : next_after_fail1012:;
3133 : }
3134 0 : return NULL_TREE;
3135 : }
3136 :
3137 : tree
3138 0 : generic_simplify_612 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3139 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3140 : const combined_fn ARG_UNUSED (ctz))
3141 : {
3142 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3143 0 : {
3144 0 : tree t = TREE_TYPE (captures[0]);
3145 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1022;
3146 0 : {
3147 0 : tree res_op0;
3148 0 : {
3149 0 : tree _o1[1], _r1;
3150 0 : _o1[0] = captures[1];
3151 0 : if (TREE_TYPE (_o1[0]) != t)
3152 : {
3153 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3154 : }
3155 : else
3156 : _r1 = _o1[0];
3157 0 : res_op0 = _r1;
3158 : }
3159 0 : tree _r;
3160 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3161 0 : if (!_r)
3162 0 : goto next_after_fail1022;
3163 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 813, __FILE__, __LINE__, true);
3164 : return _r;
3165 : }
3166 : next_after_fail1022:;
3167 : }
3168 : return NULL_TREE;
3169 : }
3170 :
3171 : tree
3172 0 : generic_simplify_622 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3173 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3174 : const combined_fn ARG_UNUSED (bswap),
3175 : const combined_fn ARG_UNUSED (parity))
3176 : {
3177 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3178 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3179 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3180 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3181 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3182 : )
3183 : {
3184 0 : {
3185 0 : tree type0 = TREE_TYPE (captures[0]);
3186 0 : tree type1 = TREE_TYPE (captures[1]);
3187 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1033;
3188 0 : {
3189 0 : tree res_op0;
3190 0 : {
3191 0 : tree _o1[1], _r1;
3192 0 : {
3193 0 : tree _o2[1], _r2;
3194 0 : _o2[0] = captures[2];
3195 0 : if (TREE_TYPE (_o2[0]) != type1)
3196 : {
3197 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3198 : }
3199 : else
3200 : _r2 = _o2[0];
3201 0 : _o1[0] = _r2;
3202 : }
3203 0 : if (TREE_TYPE (_o1[0]) != type0)
3204 : {
3205 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3206 : }
3207 : else
3208 : _r1 = _o1[0];
3209 0 : res_op0 = _r1;
3210 : }
3211 0 : tree _r;
3212 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3213 0 : if (!_r)
3214 0 : goto next_after_fail1033;
3215 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 820, __FILE__, __LINE__, true);
3216 0 : return _r;
3217 : }
3218 : next_after_fail1033:;
3219 : }
3220 : }
3221 : return NULL_TREE;
3222 : }
3223 :
3224 : tree
3225 4343318 : generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3226 : {
3227 4343318 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3228 4343318 : switch (TREE_CODE (_p0))
3229 : {
3230 42133 : case PLUS_EXPR:
3231 42133 : {
3232 42133 : tree _q20 = TREE_OPERAND (_p0, 0);
3233 42133 : tree _q21 = TREE_OPERAND (_p0, 1);
3234 42133 : if (tree_negate_expr_p (_q21))
3235 : {
3236 39316 : {
3237 39316 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3238 39316 : tree res = generic_simplify_514 (loc, type, _p0, captures);
3239 39316 : if (res) return res;
3240 : }
3241 : }
3242 2817 : if (tree_negate_expr_p (_q20))
3243 : {
3244 17 : {
3245 17 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
3246 17 : tree res = generic_simplify_514 (loc, type, _p0, captures);
3247 17 : if (res) return res;
3248 : }
3249 : }
3250 : break;
3251 : }
3252 106890 : case MINUS_EXPR:
3253 106890 : {
3254 106890 : tree _q20 = TREE_OPERAND (_p0, 0);
3255 106890 : tree _q21 = TREE_OPERAND (_p0, 1);
3256 106890 : {
3257 106890 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3258 106890 : if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type))
3259 181649 : || (FLOAT_TYPE_P (type)
3260 74759 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
3261 74759 : && !HONOR_SIGNED_ZEROS (type))
3262 : )
3263 : {
3264 32188 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1080;
3265 32188 : {
3266 32188 : tree res_op0;
3267 32188 : res_op0 = captures[1];
3268 32188 : tree res_op1;
3269 32188 : res_op1 = captures[0];
3270 32188 : tree _r;
3271 32188 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3272 32188 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
3273 32188 : return _r;
3274 : }
3275 0 : next_after_fail1080:;
3276 : }
3277 : }
3278 74702 : break;
3279 : }
3280 16 : case POINTER_DIFF_EXPR:
3281 16 : {
3282 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3283 16 : tree _q21 = TREE_OPERAND (_p0, 1);
3284 16 : {
3285 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3286 16 : tree res = generic_simplify_515 (loc, type, _p0, captures);
3287 16 : if (res) return res;
3288 : }
3289 0 : break;
3290 : }
3291 6539 : case MULT_EXPR:
3292 6539 : {
3293 6539 : tree _q20 = TREE_OPERAND (_p0, 0);
3294 6539 : tree _q21 = TREE_OPERAND (_p0, 1);
3295 6539 : if (tree_negate_expr_p (_q21))
3296 : {
3297 2415 : {
3298 2415 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3299 2415 : tree res = generic_simplify_518 (loc, type, _p0, captures);
3300 2415 : if (res) return res;
3301 : }
3302 : }
3303 4516 : if (tree_negate_expr_p (_q20))
3304 : {
3305 28 : {
3306 28 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
3307 28 : tree res = generic_simplify_518 (loc, type, _p0, captures);
3308 28 : if (res) return res;
3309 : }
3310 : }
3311 : break;
3312 : }
3313 188 : case RDIV_EXPR:
3314 188 : {
3315 188 : tree _q20 = TREE_OPERAND (_p0, 0);
3316 188 : tree _q21 = TREE_OPERAND (_p0, 1);
3317 188 : if (tree_negate_expr_p (_q21))
3318 : {
3319 60 : {
3320 60 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3321 60 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3322 60 : && single_use (captures[0])
3323 : )
3324 : {
3325 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1081;
3326 60 : {
3327 60 : tree res_op0;
3328 60 : res_op0 = captures[1];
3329 60 : tree res_op1;
3330 60 : {
3331 60 : tree _o1[1], _r1;
3332 60 : _o1[0] = captures[2];
3333 60 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3334 60 : res_op1 = _r1;
3335 : }
3336 60 : tree _r;
3337 60 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3338 60 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
3339 60 : return _r;
3340 : }
3341 0 : next_after_fail1081:;
3342 : }
3343 : }
3344 : }
3345 128 : if (tree_negate_expr_p (_q20))
3346 : {
3347 0 : {
3348 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3349 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3350 0 : && single_use (captures[0])
3351 : )
3352 : {
3353 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1082;
3354 0 : {
3355 0 : tree res_op0;
3356 0 : {
3357 0 : tree _o1[1], _r1;
3358 0 : _o1[0] = captures[1];
3359 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3360 0 : res_op0 = _r1;
3361 : }
3362 0 : tree res_op1;
3363 0 : res_op1 = captures[2];
3364 0 : tree _r;
3365 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3366 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 860, __FILE__, __LINE__, true);
3367 0 : return _r;
3368 : }
3369 0 : next_after_fail1082:;
3370 : }
3371 : }
3372 : }
3373 : break;
3374 : }
3375 1461469 : CASE_CONVERT:
3376 1461469 : {
3377 1461469 : tree _q20 = TREE_OPERAND (_p0, 0);
3378 1461469 : switch (TREE_CODE (_q20))
3379 : {
3380 58 : case RSHIFT_EXPR:
3381 58 : {
3382 58 : tree _q30 = TREE_OPERAND (_q20, 0);
3383 58 : tree _q31 = TREE_OPERAND (_q20, 1);
3384 58 : switch (TREE_CODE (_q31))
3385 : {
3386 43 : case INTEGER_CST:
3387 43 : {
3388 43 : {
3389 43 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3390 43 : tree res = generic_simplify_519 (loc, type, _p0, captures);
3391 43 : if (res) return res;
3392 : }
3393 36 : break;
3394 : }
3395 : default:;
3396 : }
3397 : break;
3398 : }
3399 209 : case NEGATE_EXPR:
3400 209 : {
3401 209 : tree _q30 = TREE_OPERAND (_q20, 0);
3402 209 : {
3403 209 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3404 209 : if (!TYPE_SATURATING (type)
3405 : )
3406 : {
3407 209 : if (INTEGRAL_TYPE_P (type)
3408 209 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
3409 19 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3410 36 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
3411 208 : && !TYPE_OVERFLOW_SANITIZED (type)
3412 435 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
3413 : )
3414 : {
3415 208 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1083;
3416 208 : {
3417 208 : tree res_op0;
3418 208 : res_op0 = captures[0];
3419 208 : tree _r;
3420 208 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3421 208 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 861, __FILE__, __LINE__, true);
3422 208 : return _r;
3423 : }
3424 0 : next_after_fail1083:;
3425 : }
3426 : }
3427 : }
3428 : break;
3429 : }
3430 1461254 : default:;
3431 : }
3432 1461254 : {
3433 1461254 : tree _q20_pops[1];
3434 1461254 : if (tree_logical_inverted_value (_q20, _q20_pops))
3435 : {
3436 1 : tree _q30 = _q20_pops[0];
3437 1 : {
3438 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3439 1 : if (INTEGRAL_TYPE_P (type)
3440 1 : && TREE_CODE (type) != BOOLEAN_TYPE
3441 1 : && TYPE_PRECISION (type) > 1
3442 1 : && TREE_CODE (captures[2]) == SSA_NAME
3443 1 : && ssa_name_has_boolean_range (captures[2])
3444 : )
3445 : {
3446 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1084;
3447 0 : {
3448 0 : tree res_op0;
3449 0 : {
3450 0 : tree _o1[1], _r1;
3451 0 : _o1[0] = captures[2];
3452 0 : if (TREE_TYPE (_o1[0]) != type)
3453 : {
3454 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3455 : }
3456 : else
3457 : _r1 = _o1[0];
3458 0 : res_op0 = _r1;
3459 : }
3460 0 : tree res_op1;
3461 0 : res_op1 = build_all_ones_cst (type);
3462 0 : tree _r;
3463 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3464 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3465 0 : return _r;
3466 : }
3467 0 : next_after_fail1084:;
3468 : }
3469 : }
3470 : }
3471 : }
3472 1461254 : if (tree_negate_expr_p (_q20))
3473 : {
3474 1700 : {
3475 1700 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3476 1700 : if (!TYPE_SATURATING (type)
3477 : )
3478 : {
3479 1700 : if (SCALAR_FLOAT_TYPE_P (type)
3480 1700 : && ((DECIMAL_FLOAT_TYPE_P (type)
3481 0 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
3482 0 : && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0])))
3483 0 : || !HONOR_SIGN_DEPENDENT_ROUNDING (type))
3484 : )
3485 : {
3486 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1085;
3487 0 : {
3488 0 : tree res_op0;
3489 0 : {
3490 0 : tree _o1[1], _r1;
3491 0 : _o1[0] = captures[0];
3492 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3493 0 : res_op0 = _r1;
3494 : }
3495 0 : tree _r;
3496 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3497 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3498 0 : return _r;
3499 : }
3500 0 : next_after_fail1085:;
3501 : }
3502 : }
3503 : }
3504 : }
3505 : break;
3506 : }
3507 384 : case RSHIFT_EXPR:
3508 384 : {
3509 384 : tree _q20 = TREE_OPERAND (_p0, 0);
3510 384 : tree _q21 = TREE_OPERAND (_p0, 1);
3511 384 : switch (TREE_CODE (_q21))
3512 : {
3513 366 : case INTEGER_CST:
3514 366 : {
3515 366 : {
3516 366 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3517 366 : tree res = generic_simplify_519 (loc, type, _p0, captures);
3518 366 : if (res) return res;
3519 : }
3520 329 : break;
3521 : }
3522 : default:;
3523 : }
3524 : break;
3525 : }
3526 147 : case BIT_NOT_EXPR:
3527 147 : {
3528 147 : tree _q20 = TREE_OPERAND (_p0, 0);
3529 147 : {
3530 147 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3531 147 : tree res = generic_simplify_516 (loc, type, _p0, captures);
3532 147 : if (res) return res;
3533 : }
3534 0 : break;
3535 : }
3536 3799 : case NEGATE_EXPR:
3537 3799 : {
3538 3799 : tree _q20 = TREE_OPERAND (_p0, 0);
3539 3799 : {
3540 3799 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3541 3799 : tree res = generic_simplify_517 (loc, type, _p0, captures);
3542 3799 : if (res) return res;
3543 : }
3544 13 : break;
3545 : }
3546 72 : case VEC_COND_EXPR:
3547 72 : {
3548 72 : tree _q20 = TREE_OPERAND (_p0, 0);
3549 72 : tree _q21 = TREE_OPERAND (_p0, 1);
3550 72 : tree _q22 = TREE_OPERAND (_p0, 2);
3551 72 : {
3552 72 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3553 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1086;
3554 72 : {
3555 72 : tree res_op0;
3556 72 : res_op0 = captures[1];
3557 72 : tree res_op1;
3558 72 : {
3559 72 : tree _o1[1], _r1;
3560 72 : _o1[0] = captures[2];
3561 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3562 72 : if (EXPR_P (_r1))
3563 0 : goto next_after_fail1086;
3564 72 : res_op1 = _r1;
3565 : }
3566 72 : tree res_op2;
3567 72 : {
3568 72 : tree _o1[1], _r1;
3569 72 : _o1[0] = captures[3];
3570 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3571 72 : if (EXPR_P (_r1))
3572 0 : goto next_after_fail1086;
3573 72 : res_op2 = _r1;
3574 : }
3575 72 : tree _r;
3576 72 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3577 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
3578 72 : return _r;
3579 : }
3580 0 : next_after_fail1086:;
3581 : }
3582 0 : break;
3583 : }
3584 266640 : case CALL_EXPR:
3585 266640 : switch (get_call_combined_fn (_p0))
3586 : {
3587 12 : case CFN_BUILT_IN_FMA:
3588 12 : if (call_expr_nargs (_p0) == 3)
3589 : {
3590 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3591 12 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3592 12 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3593 12 : {
3594 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3595 12 : tree res = generic_simplify_520 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
3596 12 : if (res) return res;
3597 : }
3598 : }
3599 : break;
3600 0 : case CFN_COND_FMA:
3601 0 : if (call_expr_nargs (_p0) == 5)
3602 : {
3603 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3604 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3605 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3606 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3607 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3608 0 : {
3609 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3610 0 : const combined_fn fmas = CFN_COND_FMA;
3611 0 : if (canonicalize_math_after_vectorization_p ()
3612 : )
3613 : {
3614 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3615 : )
3616 : {
3617 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1087;
3618 : {
3619 : tree res_op0;
3620 : res_op0 = captures[1];
3621 : tree res_op1;
3622 : res_op1 = captures[2];
3623 : tree res_op2;
3624 : res_op2 = captures[3];
3625 : tree res_op3;
3626 : res_op3 = captures[4];
3627 : tree res_op4;
3628 : res_op4 = captures[5];
3629 : tree _r;
3630 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3631 : if (!_r)
3632 : goto next_after_fail1087;
3633 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3634 : return _r;
3635 : }
3636 0 : next_after_fail1087:;
3637 : }
3638 : }
3639 : }
3640 : }
3641 : break;
3642 4 : case CFN_BUILT_IN_FMAF:
3643 4 : if (call_expr_nargs (_p0) == 3)
3644 : {
3645 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3646 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3647 4 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3648 4 : {
3649 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3650 4 : tree res = generic_simplify_520 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
3651 4 : if (res) return res;
3652 : }
3653 : }
3654 : break;
3655 0 : case CFN_BUILT_IN_FMAL:
3656 0 : if (call_expr_nargs (_p0) == 3)
3657 : {
3658 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3659 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3660 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3661 0 : {
3662 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3663 0 : tree res = generic_simplify_520 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
3664 0 : if (res) return res;
3665 : }
3666 : }
3667 : break;
3668 0 : case CFN_FMA:
3669 0 : if (call_expr_nargs (_p0) == 3)
3670 : {
3671 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3672 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3673 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3674 0 : {
3675 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3676 0 : tree res = generic_simplify_520 (loc, type, _p0, captures, CFN_FMA);
3677 0 : if (res) return res;
3678 : }
3679 : }
3680 : break;
3681 0 : case CFN_FMS:
3682 0 : if (call_expr_nargs (_p0) == 3)
3683 : {
3684 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3685 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3686 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3687 0 : {
3688 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3689 0 : if (canonicalize_math_after_vectorization_p ()
3690 : )
3691 : {
3692 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3693 : )
3694 : {
3695 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1088;
3696 : {
3697 : tree res_op0;
3698 : res_op0 = captures[1];
3699 : tree res_op1;
3700 : res_op1 = captures[2];
3701 : tree res_op2;
3702 : res_op2 = captures[3];
3703 : tree _r;
3704 : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3705 : if (!_r)
3706 : goto next_after_fail1088;
3707 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 865, __FILE__, __LINE__, true);
3708 : return _r;
3709 : }
3710 0 : next_after_fail1088:;
3711 : }
3712 : }
3713 : }
3714 : }
3715 0 : if (call_expr_nargs (_p0) == 5)
3716 : {
3717 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3718 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3719 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3720 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3721 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3722 0 : {
3723 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3724 0 : if (canonicalize_math_after_vectorization_p ()
3725 : )
3726 : {
3727 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3728 : )
3729 : {
3730 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1089;
3731 : {
3732 : tree res_op0;
3733 : res_op0 = captures[1];
3734 : tree res_op1;
3735 : res_op1 = captures[2];
3736 : tree res_op2;
3737 : res_op2 = captures[3];
3738 : tree res_op3;
3739 : res_op3 = captures[4];
3740 : tree res_op4;
3741 : res_op4 = captures[5];
3742 : tree _r;
3743 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3744 : if (!_r)
3745 : goto next_after_fail1089;
3746 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 866, __FILE__, __LINE__, true);
3747 : return _r;
3748 : }
3749 0 : next_after_fail1089:;
3750 : }
3751 : }
3752 : }
3753 : }
3754 : break;
3755 0 : case CFN_COND_FNMA:
3756 0 : if (call_expr_nargs (_p0) == 5)
3757 : {
3758 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3759 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3760 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3761 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3762 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3763 0 : {
3764 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3765 0 : if (canonicalize_math_after_vectorization_p ()
3766 : )
3767 : {
3768 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3769 : )
3770 : {
3771 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1090;
3772 : {
3773 : tree res_op0;
3774 : res_op0 = captures[1];
3775 : tree res_op1;
3776 : res_op1 = captures[2];
3777 : tree res_op2;
3778 : res_op2 = captures[3];
3779 : tree res_op3;
3780 : res_op3 = captures[4];
3781 : tree res_op4;
3782 : res_op4 = captures[5];
3783 : tree _r;
3784 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3785 : if (!_r)
3786 : goto next_after_fail1090;
3787 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 867, __FILE__, __LINE__, true);
3788 : return _r;
3789 : }
3790 0 : next_after_fail1090:;
3791 : }
3792 : }
3793 : }
3794 : }
3795 : break;
3796 0 : case CFN_COND_FNMS:
3797 0 : if (call_expr_nargs (_p0) == 5)
3798 : {
3799 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3800 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3801 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3802 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3803 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3804 0 : {
3805 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3806 0 : if (canonicalize_math_after_vectorization_p ()
3807 : )
3808 : {
3809 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3810 : )
3811 : {
3812 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1091;
3813 : {
3814 : tree res_op0;
3815 : res_op0 = captures[1];
3816 : tree res_op1;
3817 : res_op1 = captures[2];
3818 : tree res_op2;
3819 : res_op2 = captures[3];
3820 : tree res_op3;
3821 : res_op3 = captures[4];
3822 : tree res_op4;
3823 : res_op4 = captures[5];
3824 : tree _r;
3825 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3826 : if (!_r)
3827 : goto next_after_fail1091;
3828 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
3829 : return _r;
3830 : }
3831 0 : next_after_fail1091:;
3832 : }
3833 : }
3834 : }
3835 : }
3836 : break;
3837 0 : case CFN_FNMA:
3838 0 : if (call_expr_nargs (_p0) == 3)
3839 : {
3840 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3841 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3842 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3843 0 : {
3844 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3845 0 : if (canonicalize_math_after_vectorization_p ()
3846 : )
3847 : {
3848 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3849 : )
3850 : {
3851 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1092;
3852 : {
3853 : tree res_op0;
3854 : res_op0 = captures[1];
3855 : tree res_op1;
3856 : res_op1 = captures[2];
3857 : tree res_op2;
3858 : res_op2 = captures[3];
3859 : tree _r;
3860 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3861 : if (!_r)
3862 : goto next_after_fail1092;
3863 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
3864 : return _r;
3865 : }
3866 0 : next_after_fail1092:;
3867 : }
3868 : }
3869 : }
3870 : }
3871 : break;
3872 0 : case CFN_FNMS:
3873 0 : if (call_expr_nargs (_p0) == 3)
3874 : {
3875 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3876 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3877 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3878 0 : {
3879 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3880 0 : if (canonicalize_math_after_vectorization_p ()
3881 : )
3882 : {
3883 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3884 : )
3885 : {
3886 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1093;
3887 : {
3888 : tree res_op0;
3889 : res_op0 = captures[1];
3890 : tree res_op1;
3891 : res_op1 = captures[2];
3892 : tree res_op2;
3893 : res_op2 = captures[3];
3894 : tree _r;
3895 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3896 : if (!_r)
3897 : goto next_after_fail1093;
3898 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 870, __FILE__, __LINE__, true);
3899 : return _r;
3900 : }
3901 0 : next_after_fail1093:;
3902 : }
3903 : }
3904 : }
3905 : }
3906 : break;
3907 : default:;
3908 : }
3909 : break;
3910 4265413 : default:;
3911 : }
3912 4265413 : {
3913 4265413 : tree _p0_pops[1];
3914 4265413 : if (tree_nop_convert (_p0, _p0_pops))
3915 : {
3916 1674901 : tree _q20 = _p0_pops[0];
3917 1674901 : switch (TREE_CODE (_q20))
3918 : {
3919 0 : case POINTER_DIFF_EXPR:
3920 0 : {
3921 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3922 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3923 0 : {
3924 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
3925 0 : tree res = generic_simplify_515 (loc, type, _p0, captures);
3926 0 : if (res) return res;
3927 : }
3928 0 : break;
3929 : }
3930 0 : case BIT_NOT_EXPR:
3931 0 : {
3932 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3933 0 : {
3934 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3935 0 : tree res = generic_simplify_516 (loc, type, _p0, captures);
3936 0 : if (res) return res;
3937 : }
3938 0 : break;
3939 : }
3940 0 : case NEGATE_EXPR:
3941 0 : {
3942 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3943 0 : {
3944 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3945 0 : tree res = generic_simplify_517 (loc, type, _p0, captures);
3946 0 : if (res) return res;
3947 : }
3948 0 : break;
3949 : }
3950 : default:;
3951 : }
3952 : }
3953 : }
3954 4265413 : {
3955 4265413 : tree _p0_pops[1];
3956 4265413 : if (tree_logical_inverted_value (_p0, _p0_pops))
3957 : {
3958 70 : tree _q20 = _p0_pops[0];
3959 70 : {
3960 70 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3961 70 : if (INTEGRAL_TYPE_P (type)
3962 70 : && TREE_CODE (type) != BOOLEAN_TYPE
3963 70 : && TYPE_PRECISION (type) > 1
3964 70 : && TREE_CODE (captures[2]) == SSA_NAME
3965 70 : && ssa_name_has_boolean_range (captures[2])
3966 : )
3967 : {
3968 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1094;
3969 0 : {
3970 0 : tree res_op0;
3971 0 : {
3972 0 : tree _o1[1], _r1;
3973 0 : _o1[0] = captures[2];
3974 0 : if (TREE_TYPE (_o1[0]) != type)
3975 : {
3976 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3977 : }
3978 : else
3979 : _r1 = _o1[0];
3980 0 : res_op0 = _r1;
3981 : }
3982 0 : tree res_op1;
3983 0 : res_op1 = build_all_ones_cst (type);
3984 0 : tree _r;
3985 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3986 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3987 0 : return _r;
3988 : }
3989 0 : next_after_fail1094:;
3990 : }
3991 : }
3992 : }
3993 : }
3994 4265413 : {
3995 4265413 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3996 4265413 : tree res = generic_simplify_439 (loc, type, _p0, captures);
3997 4265413 : if (res) return res;
3998 : }
3999 4251365 : return NULL_TREE;
4000 : }
4001 :
4002 : tree
4003 26743476 : generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4004 : {
4005 26743476 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4006 26743476 : switch (TREE_CODE (_p1))
4007 : {
4008 68 : case NEGATE_EXPR:
4009 68 : {
4010 68 : tree _q30 = TREE_OPERAND (_p1, 0);
4011 68 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4012 : {
4013 0 : {
4014 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4015 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4016 0 : if (res) return res;
4017 : }
4018 : }
4019 : break;
4020 : }
4021 26743476 : default:;
4022 : }
4023 26743476 : switch (TREE_CODE (_p0))
4024 : {
4025 1038 : case NEGATE_EXPR:
4026 1038 : {
4027 1038 : tree _q20 = TREE_OPERAND (_p0, 0);
4028 1038 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4029 : {
4030 83 : {
4031 83 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4032 83 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
4033 83 : if (res) return res;
4034 : }
4035 : }
4036 : break;
4037 : }
4038 0 : case CEIL_MOD_EXPR:
4039 0 : {
4040 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4041 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4042 0 : if (integer_pow2p (_q21))
4043 : {
4044 0 : if (integer_zerop (_p1))
4045 : {
4046 0 : {
4047 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4048 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
4049 0 : if (res) return res;
4050 : }
4051 : }
4052 : }
4053 : break;
4054 : }
4055 876 : case FLOOR_MOD_EXPR:
4056 876 : {
4057 876 : tree _q20 = TREE_OPERAND (_p0, 0);
4058 876 : tree _q21 = TREE_OPERAND (_p0, 1);
4059 876 : if (integer_pow2p (_q21))
4060 : {
4061 26 : if (integer_zerop (_p1))
4062 : {
4063 26 : {
4064 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4065 26 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
4066 26 : if (res) return res;
4067 : }
4068 : }
4069 : }
4070 : break;
4071 : }
4072 0 : case ROUND_MOD_EXPR:
4073 0 : {
4074 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4075 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4076 0 : if (integer_pow2p (_q21))
4077 : {
4078 0 : if (integer_zerop (_p1))
4079 : {
4080 0 : {
4081 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4082 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
4083 0 : if (res) return res;
4084 : }
4085 : }
4086 : }
4087 : break;
4088 : }
4089 89960 : case TRUNC_MOD_EXPR:
4090 89960 : {
4091 89960 : tree _q20 = TREE_OPERAND (_p0, 0);
4092 89960 : tree _q21 = TREE_OPERAND (_p0, 1);
4093 89960 : if (integer_pow2p (_q21))
4094 : {
4095 38491 : if (integer_zerop (_p1))
4096 : {
4097 549 : {
4098 549 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4099 549 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
4100 549 : if (res) return res;
4101 : }
4102 : }
4103 : }
4104 : break;
4105 : }
4106 5062063 : CASE_CONVERT:
4107 5062063 : {
4108 5062063 : tree _q20 = TREE_OPERAND (_p0, 0);
4109 5062063 : switch (TREE_CODE (_p1))
4110 : {
4111 2 : case LSHIFT_EXPR:
4112 2 : {
4113 2 : tree _q40 = TREE_OPERAND (_p1, 0);
4114 2 : tree _q41 = TREE_OPERAND (_p1, 1);
4115 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4116 : {
4117 0 : {
4118 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4119 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4120 0 : if (res) return res;
4121 : }
4122 : }
4123 : break;
4124 : }
4125 5062063 : default:;
4126 : }
4127 5062063 : {
4128 5062063 : tree _p1_pops[1];
4129 5062063 : if (tree_nop_convert (_p1, _p1_pops))
4130 : {
4131 1156979 : tree _q40 = _p1_pops[0];
4132 1156979 : switch (TREE_CODE (_q40))
4133 : {
4134 0 : case LSHIFT_EXPR:
4135 0 : {
4136 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4137 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4138 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4139 : {
4140 0 : {
4141 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
4142 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4143 0 : if (res) return res;
4144 : }
4145 : }
4146 : break;
4147 : }
4148 : default:;
4149 : }
4150 : }
4151 : }
4152 5062063 : switch (TREE_CODE (_q20))
4153 : {
4154 86 : case EXACT_DIV_EXPR:
4155 86 : {
4156 86 : tree _q30 = TREE_OPERAND (_q20, 0);
4157 86 : tree _q31 = TREE_OPERAND (_q20, 1);
4158 86 : switch (TREE_CODE (_q31))
4159 : {
4160 86 : case INTEGER_CST:
4161 86 : {
4162 86 : switch (TREE_CODE (_p1))
4163 : {
4164 0 : CASE_CONVERT:
4165 0 : {
4166 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4167 0 : switch (TREE_CODE (_q60))
4168 : {
4169 0 : case EXACT_DIV_EXPR:
4170 0 : {
4171 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4172 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4173 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
4174 : {
4175 0 : {
4176 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
4177 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR);
4178 0 : if (res) return res;
4179 : }
4180 : }
4181 : break;
4182 : }
4183 : default:;
4184 : }
4185 : break;
4186 : }
4187 : default:;
4188 : }
4189 : break;
4190 : }
4191 : default:;
4192 : }
4193 : break;
4194 : }
4195 5062063 : default:;
4196 : }
4197 5062063 : switch (TREE_CODE (_p1))
4198 : {
4199 29987 : case PLUS_EXPR:
4200 29987 : {
4201 29987 : tree _q40 = TREE_OPERAND (_p1, 0);
4202 29987 : tree _q41 = TREE_OPERAND (_p1, 1);
4203 29987 : switch (TREE_CODE (_q41))
4204 : {
4205 26 : CASE_CONVERT:
4206 26 : {
4207 26 : tree _q60 = TREE_OPERAND (_q41, 0);
4208 26 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4209 : {
4210 0 : {
4211 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4212 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4213 0 : if (res) return res;
4214 : }
4215 : }
4216 : break;
4217 : }
4218 29987 : default:;
4219 : }
4220 29987 : switch (TREE_CODE (_q40))
4221 : {
4222 4003 : CASE_CONVERT:
4223 4003 : {
4224 4003 : tree _q50 = TREE_OPERAND (_q40, 0);
4225 4003 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4226 : {
4227 0 : {
4228 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4229 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4230 0 : if (res) return res;
4231 : }
4232 : }
4233 : break;
4234 : }
4235 29987 : default:;
4236 : }
4237 29987 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4238 : {
4239 0 : {
4240 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4241 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4242 0 : if (res) return res;
4243 : }
4244 : }
4245 29987 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4246 : {
4247 0 : {
4248 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4249 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4250 0 : if (res) return res;
4251 : }
4252 : }
4253 : break;
4254 : }
4255 5062063 : default:;
4256 : }
4257 5062063 : {
4258 5062063 : tree _p1_pops[1];
4259 5062063 : if (tree_nop_convert (_p1, _p1_pops))
4260 : {
4261 1156979 : tree _q40 = _p1_pops[0];
4262 1156979 : switch (TREE_CODE (_q40))
4263 : {
4264 472 : case PLUS_EXPR:
4265 472 : {
4266 472 : tree _q50 = TREE_OPERAND (_q40, 0);
4267 472 : tree _q51 = TREE_OPERAND (_q40, 1);
4268 472 : switch (TREE_CODE (_q51))
4269 : {
4270 0 : CASE_CONVERT:
4271 0 : {
4272 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4273 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4274 : {
4275 0 : {
4276 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4277 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4278 0 : if (res) return res;
4279 : }
4280 : }
4281 : break;
4282 : }
4283 472 : default:;
4284 : }
4285 472 : switch (TREE_CODE (_q50))
4286 : {
4287 403 : CASE_CONVERT:
4288 403 : {
4289 403 : tree _q60 = TREE_OPERAND (_q50, 0);
4290 403 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4291 : {
4292 0 : {
4293 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4294 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4295 0 : if (res) return res;
4296 : }
4297 : }
4298 : break;
4299 : }
4300 472 : default:;
4301 : }
4302 472 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4303 : {
4304 0 : {
4305 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4306 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4307 0 : if (res) return res;
4308 : }
4309 : }
4310 472 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4311 : {
4312 0 : {
4313 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4314 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4315 0 : if (res) return res;
4316 : }
4317 : }
4318 : break;
4319 : }
4320 : default:;
4321 : }
4322 : }
4323 : }
4324 5062063 : break;
4325 : }
4326 26742898 : default:;
4327 : }
4328 26742898 : {
4329 26742898 : tree _p0_pops[1];
4330 26742898 : if (tree_nop_convert (_p0, _p0_pops))
4331 : {
4332 2982004 : tree _q20 = _p0_pops[0];
4333 2982004 : switch (TREE_CODE (_q20))
4334 : {
4335 1 : case LSHIFT_EXPR:
4336 1 : {
4337 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4338 1 : tree _q31 = TREE_OPERAND (_q20, 1);
4339 1 : switch (TREE_CODE (_p1))
4340 : {
4341 0 : CASE_CONVERT:
4342 0 : {
4343 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4344 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4345 : {
4346 0 : {
4347 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4348 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4349 0 : if (res) return res;
4350 : }
4351 : }
4352 : break;
4353 : }
4354 1 : default:;
4355 : }
4356 1 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4357 : {
4358 1 : {
4359 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4360 1 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4361 1 : if (res) return res;
4362 : }
4363 : }
4364 : break;
4365 : }
4366 2267 : case PLUS_EXPR:
4367 2267 : {
4368 2267 : tree _q30 = TREE_OPERAND (_q20, 0);
4369 2267 : tree _q31 = TREE_OPERAND (_q20, 1);
4370 2267 : switch (TREE_CODE (_q31))
4371 : {
4372 0 : CASE_CONVERT:
4373 0 : {
4374 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4375 0 : switch (TREE_CODE (_p1))
4376 : {
4377 0 : CASE_CONVERT:
4378 0 : {
4379 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4380 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
4381 : {
4382 0 : {
4383 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4384 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4385 0 : if (res) return res;
4386 : }
4387 : }
4388 : break;
4389 : }
4390 : default:;
4391 : }
4392 : break;
4393 : }
4394 2267 : default:;
4395 : }
4396 2267 : switch (TREE_CODE (_q30))
4397 : {
4398 1181 : CASE_CONVERT:
4399 1181 : {
4400 1181 : tree _q40 = TREE_OPERAND (_q30, 0);
4401 1181 : switch (TREE_CODE (_p1))
4402 : {
4403 10 : CASE_CONVERT:
4404 10 : {
4405 10 : tree _q70 = TREE_OPERAND (_p1, 0);
4406 10 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
4407 : {
4408 0 : {
4409 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4410 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4411 0 : if (res) return res;
4412 : }
4413 : }
4414 : break;
4415 : }
4416 1181 : default:;
4417 : }
4418 1181 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4419 : {
4420 0 : {
4421 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4422 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4423 0 : if (res) return res;
4424 : }
4425 : }
4426 : break;
4427 : }
4428 2267 : default:;
4429 : }
4430 2267 : switch (TREE_CODE (_q31))
4431 : {
4432 0 : CASE_CONVERT:
4433 0 : {
4434 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4435 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
4436 : {
4437 0 : {
4438 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4439 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4440 0 : if (res) return res;
4441 : }
4442 : }
4443 : break;
4444 : }
4445 2267 : default:;
4446 : }
4447 2267 : switch (TREE_CODE (_p1))
4448 : {
4449 79 : CASE_CONVERT:
4450 79 : {
4451 79 : tree _q60 = TREE_OPERAND (_p1, 0);
4452 79 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4453 : {
4454 0 : {
4455 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4456 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4457 0 : if (res) return res;
4458 : }
4459 : }
4460 79 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4461 : {
4462 0 : {
4463 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4464 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4465 0 : if (res) return res;
4466 : }
4467 : }
4468 : break;
4469 : }
4470 2267 : default:;
4471 : }
4472 2267 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4473 : {
4474 0 : {
4475 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4476 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4477 0 : if (res) return res;
4478 : }
4479 : }
4480 2267 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4481 : {
4482 0 : {
4483 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4484 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4485 0 : if (res) return res;
4486 : }
4487 : }
4488 : break;
4489 : }
4490 : default:;
4491 : }
4492 : }
4493 : }
4494 26742897 : {
4495 26742897 : tree _p1_pops[1];
4496 26742897 : if (tree_nop_convert (_p1, _p1_pops))
4497 : {
4498 1385636 : tree _q30 = _p1_pops[0];
4499 1385636 : switch (TREE_CODE (_q30))
4500 : {
4501 0 : case LSHIFT_EXPR:
4502 0 : {
4503 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4504 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4505 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
4506 : {
4507 0 : {
4508 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
4509 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4510 0 : if (res) return res;
4511 : }
4512 : }
4513 : break;
4514 : }
4515 : default:;
4516 : }
4517 : }
4518 : }
4519 26742897 : switch (TREE_CODE (_p0))
4520 : {
4521 1733 : case LSHIFT_EXPR:
4522 1733 : {
4523 1733 : tree _q20 = TREE_OPERAND (_p0, 0);
4524 1733 : tree _q21 = TREE_OPERAND (_p0, 1);
4525 1733 : switch (TREE_CODE (_p1))
4526 : {
4527 61 : CASE_CONVERT:
4528 61 : {
4529 61 : tree _q50 = TREE_OPERAND (_p1, 0);
4530 61 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4531 : {
4532 4 : {
4533 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4534 4 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4535 4 : if (res) return res;
4536 : }
4537 : }
4538 : break;
4539 : }
4540 1732 : default:;
4541 : }
4542 1732 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4543 : {
4544 27 : {
4545 27 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4546 27 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4547 27 : if (res) return res;
4548 : }
4549 : }
4550 1728 : if (tree_zero_one_valued_p (_q20))
4551 : {
4552 239 : switch (TREE_CODE (_q21))
4553 : {
4554 10 : case INTEGER_CST:
4555 10 : {
4556 10 : if (integer_zerop (_p1))
4557 : {
4558 2 : {
4559 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4560 2 : if (tree_fits_shwi_p (captures[1])
4561 2 : && tree_to_shwi (captures[1]) > 0
4562 4 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
4563 : )
4564 : {
4565 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1491;
4566 2 : {
4567 2 : tree res_op0;
4568 2 : res_op0 = captures[0];
4569 2 : tree res_op1;
4570 2 : res_op1 = captures[2];
4571 2 : tree _r;
4572 2 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4573 2 : if (TREE_SIDE_EFFECTS (captures[1]))
4574 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4575 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
4576 2 : return _r;
4577 : }
4578 0 : next_after_fail1491:;
4579 : }
4580 : }
4581 : }
4582 : break;
4583 : }
4584 : default:;
4585 : }
4586 : }
4587 : break;
4588 : }
4589 26742890 : default:;
4590 : }
4591 26742890 : switch (TREE_CODE (_p1))
4592 : {
4593 154 : case LSHIFT_EXPR:
4594 154 : {
4595 154 : tree _q30 = TREE_OPERAND (_p1, 0);
4596 154 : tree _q31 = TREE_OPERAND (_p1, 1);
4597 154 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4598 : {
4599 0 : {
4600 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4601 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4602 0 : if (res) return res;
4603 : }
4604 : }
4605 : break;
4606 : }
4607 26742890 : default:;
4608 : }
4609 26742890 : switch (TREE_CODE (_p0))
4610 : {
4611 45863 : case VIEW_CONVERT_EXPR:
4612 45863 : {
4613 45863 : tree _q20 = TREE_OPERAND (_p0, 0);
4614 45863 : if (tree_zero_one_valued_p (_q20))
4615 : {
4616 0 : if (integer_zerop (_p1))
4617 : {
4618 0 : {
4619 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4620 0 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
4621 0 : if (res) return res;
4622 : }
4623 : }
4624 : }
4625 : break;
4626 : }
4627 16794 : case RSHIFT_EXPR:
4628 16794 : {
4629 16794 : tree _q20 = TREE_OPERAND (_p0, 0);
4630 16794 : tree _q21 = TREE_OPERAND (_p0, 1);
4631 16794 : switch (TREE_CODE (_q21))
4632 : {
4633 15804 : case INTEGER_CST:
4634 15804 : {
4635 15804 : switch (TREE_CODE (_p1))
4636 : {
4637 60 : case RSHIFT_EXPR:
4638 60 : {
4639 60 : tree _q50 = TREE_OPERAND (_p1, 0);
4640 60 : tree _q51 = TREE_OPERAND (_p1, 1);
4641 60 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4642 : {
4643 16 : switch (TREE_CODE (_q51))
4644 : {
4645 16 : case INTEGER_CST:
4646 16 : {
4647 16 : {
4648 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4649 16 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
4650 16 : if (res) return res;
4651 : }
4652 15 : break;
4653 : }
4654 : default:;
4655 : }
4656 : }
4657 : break;
4658 : }
4659 15803 : default:;
4660 : }
4661 15803 : if (integer_zerop (_p1))
4662 : {
4663 1512 : {
4664 1512 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4665 1512 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
4666 1512 : if (res) return res;
4667 : }
4668 : }
4669 : break;
4670 : }
4671 : default:;
4672 : }
4673 : break;
4674 : }
4675 815972 : case BIT_AND_EXPR:
4676 815972 : {
4677 815972 : tree _q20 = TREE_OPERAND (_p0, 0);
4678 815972 : tree _q21 = TREE_OPERAND (_p0, 1);
4679 815972 : if (tree_truth_valued_p (_q20))
4680 : {
4681 21 : if (tree_truth_valued_p (_q21))
4682 : {
4683 20 : switch (TREE_CODE (_p1))
4684 : {
4685 0 : case BIT_XOR_EXPR:
4686 0 : {
4687 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4688 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4689 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4690 : {
4691 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4692 : {
4693 0 : {
4694 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4695 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1492;
4696 0 : {
4697 0 : tree res_op0;
4698 0 : {
4699 0 : tree _o1[2], _r1;
4700 0 : _o1[0] = captures[0];
4701 0 : _o1[1] = captures[1];
4702 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4703 0 : res_op0 = _r1;
4704 : }
4705 0 : tree _r;
4706 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4707 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
4708 0 : return _r;
4709 : }
4710 0 : next_after_fail1492:;
4711 : }
4712 : }
4713 : }
4714 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4715 : {
4716 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4717 : {
4718 0 : {
4719 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4720 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1493;
4721 0 : {
4722 0 : tree res_op0;
4723 0 : {
4724 0 : tree _o1[2], _r1;
4725 0 : _o1[0] = captures[0];
4726 0 : _o1[1] = captures[1];
4727 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4728 0 : res_op0 = _r1;
4729 : }
4730 0 : tree _r;
4731 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4732 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
4733 0 : return _r;
4734 : }
4735 0 : next_after_fail1493:;
4736 : }
4737 : }
4738 : }
4739 : break;
4740 : }
4741 : default:;
4742 : }
4743 : }
4744 : }
4745 : break;
4746 : }
4747 585 : case BIT_XOR_EXPR:
4748 585 : {
4749 585 : tree _q20 = TREE_OPERAND (_p0, 0);
4750 585 : tree _q21 = TREE_OPERAND (_p0, 1);
4751 585 : switch (TREE_CODE (_p1))
4752 : {
4753 0 : case BIT_AND_EXPR:
4754 0 : {
4755 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4756 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4757 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4758 : {
4759 0 : if (tree_truth_valued_p (_q50))
4760 : {
4761 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4762 : {
4763 0 : if (tree_truth_valued_p (_q51))
4764 : {
4765 0 : {
4766 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4767 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1494;
4768 0 : {
4769 0 : tree res_op0;
4770 0 : {
4771 0 : tree _o1[2], _r1;
4772 0 : _o1[0] = captures[0];
4773 0 : _o1[1] = captures[1];
4774 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4775 0 : res_op0 = _r1;
4776 : }
4777 0 : tree _r;
4778 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4779 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
4780 0 : return _r;
4781 : }
4782 0 : next_after_fail1494:;
4783 : }
4784 : }
4785 : }
4786 : }
4787 : }
4788 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4789 : {
4790 0 : if (tree_truth_valued_p (_q50))
4791 : {
4792 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4793 : {
4794 0 : if (tree_truth_valued_p (_q51))
4795 : {
4796 0 : {
4797 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4798 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1495;
4799 0 : {
4800 0 : tree res_op0;
4801 0 : {
4802 0 : tree _o1[2], _r1;
4803 0 : _o1[0] = captures[0];
4804 0 : _o1[1] = captures[1];
4805 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4806 0 : res_op0 = _r1;
4807 : }
4808 0 : tree _r;
4809 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4810 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
4811 0 : return _r;
4812 : }
4813 0 : next_after_fail1495:;
4814 : }
4815 : }
4816 : }
4817 : }
4818 : }
4819 : break;
4820 : }
4821 : default:;
4822 : }
4823 : break;
4824 : }
4825 403 : case BIT_NOT_EXPR:
4826 403 : {
4827 403 : tree _q20 = TREE_OPERAND (_p0, 0);
4828 403 : if (tree_truth_valued_p (_q20))
4829 : {
4830 0 : if (tree_truth_valued_p (_p1))
4831 : {
4832 0 : {
4833 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
4834 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures);
4835 0 : if (res) return res;
4836 : }
4837 : }
4838 : }
4839 : break;
4840 : }
4841 65451 : case MULT_EXPR:
4842 65451 : {
4843 65451 : tree _q20 = TREE_OPERAND (_p0, 0);
4844 65451 : tree _q21 = TREE_OPERAND (_p0, 1);
4845 65451 : switch (TREE_CODE (_p1))
4846 : {
4847 879 : case MULT_EXPR:
4848 879 : {
4849 879 : tree _q50 = TREE_OPERAND (_p1, 0);
4850 879 : tree _q51 = TREE_OPERAND (_p1, 1);
4851 879 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4852 : {
4853 568 : {
4854 568 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4855 568 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
4856 568 : if (res) return res;
4857 : }
4858 : }
4859 871 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4860 : {
4861 0 : {
4862 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4863 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
4864 0 : if (res) return res;
4865 : }
4866 : }
4867 871 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4868 : {
4869 0 : {
4870 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4871 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
4872 0 : if (res) return res;
4873 : }
4874 : }
4875 871 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4876 : {
4877 19 : {
4878 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4879 19 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
4880 19 : if (res) return res;
4881 : }
4882 : }
4883 : break;
4884 : }
4885 65443 : default:;
4886 : }
4887 65443 : switch (TREE_CODE (_q21))
4888 : {
4889 57626 : case INTEGER_CST:
4890 57626 : {
4891 57626 : switch (TREE_CODE (_p1))
4892 : {
4893 834 : case MULT_EXPR:
4894 834 : {
4895 834 : tree _q50 = TREE_OPERAND (_p1, 0);
4896 834 : tree _q51 = TREE_OPERAND (_p1, 1);
4897 834 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4898 : {
4899 528 : {
4900 528 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4901 528 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
4902 528 : if (res) return res;
4903 : }
4904 : }
4905 : break;
4906 : }
4907 : default:;
4908 : }
4909 : break;
4910 : }
4911 : default:;
4912 : }
4913 : break;
4914 : }
4915 7010 : case EXACT_DIV_EXPR:
4916 7010 : {
4917 7010 : tree _q20 = TREE_OPERAND (_p0, 0);
4918 7010 : tree _q21 = TREE_OPERAND (_p0, 1);
4919 7010 : switch (TREE_CODE (_q21))
4920 : {
4921 7010 : case INTEGER_CST:
4922 7010 : {
4923 7010 : switch (TREE_CODE (_p1))
4924 : {
4925 0 : case EXACT_DIV_EXPR:
4926 0 : {
4927 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4928 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4929 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4930 : {
4931 0 : {
4932 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
4933 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR);
4934 0 : if (res) return res;
4935 : }
4936 : }
4937 : break;
4938 : }
4939 : default:;
4940 : }
4941 : break;
4942 : }
4943 : default:;
4944 : }
4945 : break;
4946 : }
4947 5334 : case TRUNC_DIV_EXPR:
4948 5334 : {
4949 5334 : tree _q20 = TREE_OPERAND (_p0, 0);
4950 5334 : tree _q21 = TREE_OPERAND (_p0, 1);
4951 5334 : switch (TREE_CODE (_q21))
4952 : {
4953 3848 : case INTEGER_CST:
4954 3848 : {
4955 3848 : switch (TREE_CODE (_p1))
4956 : {
4957 986 : case INTEGER_CST:
4958 986 : {
4959 986 : {
4960 986 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4961 986 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR);
4962 986 : if (res) return res;
4963 : }
4964 21 : break;
4965 : }
4966 : default:;
4967 : }
4968 : break;
4969 : }
4970 : default:;
4971 : }
4972 : break;
4973 : }
4974 654309 : case PLUS_EXPR:
4975 654309 : {
4976 654309 : tree _q20 = TREE_OPERAND (_p0, 0);
4977 654309 : tree _q21 = TREE_OPERAND (_p0, 1);
4978 654309 : switch (TREE_CODE (_p1))
4979 : {
4980 50390 : case PLUS_EXPR:
4981 50390 : {
4982 50390 : tree _q50 = TREE_OPERAND (_p1, 0);
4983 50390 : tree _q51 = TREE_OPERAND (_p1, 1);
4984 50390 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4985 : {
4986 377 : {
4987 377 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4988 754 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4989 682 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4990 271 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4991 : )
4992 : {
4993 305 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1496;
4994 305 : {
4995 305 : tree res_op0;
4996 305 : res_op0 = captures[0];
4997 305 : tree res_op1;
4998 305 : res_op1 = captures[2];
4999 305 : tree _r;
5000 305 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5001 305 : if (TREE_SIDE_EFFECTS (captures[1]))
5002 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5003 305 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5004 305 : return _r;
5005 : }
5006 0 : next_after_fail1496:;
5007 : }
5008 : }
5009 : }
5010 50085 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5011 : {
5012 2 : {
5013 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5014 4 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5015 2 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5016 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5017 : )
5018 : {
5019 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1497;
5020 0 : {
5021 0 : tree res_op0;
5022 0 : res_op0 = captures[0];
5023 0 : tree res_op1;
5024 0 : res_op1 = captures[2];
5025 0 : tree _r;
5026 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5027 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5028 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5029 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5030 0 : return _r;
5031 : }
5032 0 : next_after_fail1497:;
5033 : }
5034 : }
5035 : }
5036 50085 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5037 : {
5038 2 : {
5039 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5040 4 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5041 2 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5042 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5043 : )
5044 : {
5045 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1498;
5046 0 : {
5047 0 : tree res_op0;
5048 0 : res_op0 = captures[0];
5049 0 : tree res_op1;
5050 0 : res_op1 = captures[2];
5051 0 : tree _r;
5052 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5053 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5054 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5055 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5056 0 : return _r;
5057 : }
5058 0 : next_after_fail1498:;
5059 : }
5060 : }
5061 : }
5062 50085 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5063 : {
5064 47 : {
5065 47 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5066 94 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5067 47 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5068 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5069 : )
5070 : {
5071 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1499;
5072 0 : {
5073 0 : tree res_op0;
5074 0 : res_op0 = captures[0];
5075 0 : tree res_op1;
5076 0 : res_op1 = captures[2];
5077 0 : tree _r;
5078 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5079 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5081 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5082 0 : return _r;
5083 : }
5084 0 : next_after_fail1499:;
5085 : }
5086 : }
5087 : }
5088 : break;
5089 : }
5090 654004 : default:;
5091 : }
5092 654004 : switch (TREE_CODE (_q21))
5093 : {
5094 2689 : CASE_CONVERT:
5095 2689 : {
5096 2689 : tree _q40 = TREE_OPERAND (_q21, 0);
5097 2689 : switch (TREE_CODE (_p1))
5098 : {
5099 158 : CASE_CONVERT:
5100 158 : {
5101 158 : tree _q60 = TREE_OPERAND (_p1, 0);
5102 158 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
5103 : {
5104 0 : {
5105 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5106 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5107 0 : if (res) return res;
5108 : }
5109 : }
5110 : break;
5111 : }
5112 : default:;
5113 : }
5114 : break;
5115 : }
5116 654004 : default:;
5117 : }
5118 654004 : switch (TREE_CODE (_q20))
5119 : {
5120 26143 : CASE_CONVERT:
5121 26143 : {
5122 26143 : tree _q30 = TREE_OPERAND (_q20, 0);
5123 26143 : switch (TREE_CODE (_p1))
5124 : {
5125 355 : CASE_CONVERT:
5126 355 : {
5127 355 : tree _q60 = TREE_OPERAND (_p1, 0);
5128 355 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5129 : {
5130 1 : {
5131 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5132 1 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5133 1 : if (res) return res;
5134 : }
5135 : }
5136 : break;
5137 : }
5138 26142 : default:;
5139 : }
5140 26142 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5141 : {
5142 0 : {
5143 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5144 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5145 0 : if (res) return res;
5146 : }
5147 : }
5148 : break;
5149 : }
5150 654003 : default:;
5151 : }
5152 654003 : switch (TREE_CODE (_q21))
5153 : {
5154 2689 : CASE_CONVERT:
5155 2689 : {
5156 2689 : tree _q40 = TREE_OPERAND (_q21, 0);
5157 2689 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5158 : {
5159 0 : {
5160 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5161 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5162 0 : if (res) return res;
5163 : }
5164 : }
5165 : break;
5166 : }
5167 654003 : default:;
5168 : }
5169 654003 : switch (TREE_CODE (_p1))
5170 : {
5171 13796 : CASE_CONVERT:
5172 13796 : {
5173 13796 : tree _q50 = TREE_OPERAND (_p1, 0);
5174 13796 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5175 : {
5176 0 : {
5177 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5178 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5179 0 : if (res) return res;
5180 : }
5181 : }
5182 13796 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5183 : {
5184 0 : {
5185 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5186 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5187 0 : if (res) return res;
5188 : }
5189 : }
5190 : break;
5191 : }
5192 654003 : default:;
5193 : }
5194 654003 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5195 : {
5196 2434 : {
5197 2434 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5198 2434 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5199 2434 : if (res) return res;
5200 : }
5201 : }
5202 651631 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5203 : {
5204 67 : {
5205 67 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5206 67 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5207 67 : if (res) return res;
5208 : }
5209 : }
5210 : break;
5211 : }
5212 61990 : case POINTER_PLUS_EXPR:
5213 61990 : {
5214 61990 : tree _q20 = TREE_OPERAND (_p0, 0);
5215 61990 : tree _q21 = TREE_OPERAND (_p0, 1);
5216 61990 : switch (TREE_CODE (_p1))
5217 : {
5218 2450 : case POINTER_PLUS_EXPR:
5219 2450 : {
5220 2450 : tree _q50 = TREE_OPERAND (_p1, 0);
5221 2450 : tree _q51 = TREE_OPERAND (_p1, 1);
5222 2450 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5223 : {
5224 14 : {
5225 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5226 14 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
5227 14 : if (res) return res;
5228 : }
5229 : }
5230 : break;
5231 : }
5232 61976 : default:;
5233 : }
5234 61976 : switch (TREE_CODE (_q20))
5235 : {
5236 1118 : CASE_CONVERT:
5237 1118 : {
5238 1118 : tree _q30 = TREE_OPERAND (_q20, 0);
5239 1118 : switch (TREE_CODE (_p1))
5240 : {
5241 84 : CASE_CONVERT:
5242 84 : {
5243 84 : tree _q60 = TREE_OPERAND (_p1, 0);
5244 84 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5245 : {
5246 54 : {
5247 54 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5248 54 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5249 54 : if (res) return res;
5250 : }
5251 : }
5252 : break;
5253 : }
5254 1064 : default:;
5255 : }
5256 1064 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5257 : {
5258 0 : {
5259 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5260 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5261 0 : if (res) return res;
5262 : }
5263 : }
5264 : break;
5265 : }
5266 61922 : default:;
5267 : }
5268 61922 : switch (TREE_CODE (_p1))
5269 : {
5270 443 : CASE_CONVERT:
5271 443 : {
5272 443 : tree _q50 = TREE_OPERAND (_p1, 0);
5273 443 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5274 : {
5275 0 : {
5276 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5277 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5278 0 : if (res) return res;
5279 : }
5280 : }
5281 : break;
5282 : }
5283 61922 : default:;
5284 : }
5285 61922 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5286 : {
5287 1545 : {
5288 1545 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5289 1545 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5290 1545 : if (res) return res;
5291 : }
5292 : }
5293 : break;
5294 : }
5295 152289 : case MINUS_EXPR:
5296 152289 : {
5297 152289 : tree _q20 = TREE_OPERAND (_p0, 0);
5298 152289 : tree _q21 = TREE_OPERAND (_p0, 1);
5299 152289 : switch (TREE_CODE (_p1))
5300 : {
5301 162 : case MINUS_EXPR:
5302 162 : {
5303 162 : tree _q50 = TREE_OPERAND (_p1, 0);
5304 162 : tree _q51 = TREE_OPERAND (_p1, 1);
5305 162 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5306 : {
5307 25 : {
5308 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5309 50 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5310 25 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5311 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5312 : )
5313 : {
5314 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1500;
5315 0 : {
5316 0 : tree res_op0;
5317 0 : res_op0 = captures[0];
5318 0 : tree res_op1;
5319 0 : res_op1 = captures[2];
5320 0 : tree _r;
5321 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5322 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5323 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5324 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
5325 0 : return _r;
5326 : }
5327 0 : next_after_fail1500:;
5328 : }
5329 : }
5330 : }
5331 162 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5332 : {
5333 25 : {
5334 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5335 50 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
5336 25 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
5337 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
5338 : )
5339 : {
5340 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1501;
5341 0 : {
5342 0 : tree res_op0;
5343 0 : res_op0 = captures[2];
5344 0 : tree res_op1;
5345 0 : res_op1 = captures[1];
5346 0 : tree _r;
5347 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5348 0 : if (TREE_SIDE_EFFECTS (captures[0]))
5349 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5350 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 930, __FILE__, __LINE__, true);
5351 0 : return _r;
5352 : }
5353 0 : next_after_fail1501:;
5354 : }
5355 : }
5356 : }
5357 : break;
5358 : }
5359 152289 : default:;
5360 : }
5361 152289 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5362 : {
5363 77 : {
5364 77 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5365 77 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5366 77 : if (res) return res;
5367 : }
5368 : }
5369 : break;
5370 : }
5371 31334 : case POINTER_DIFF_EXPR:
5372 31334 : {
5373 31334 : tree _q20 = TREE_OPERAND (_p0, 0);
5374 31334 : tree _q21 = TREE_OPERAND (_p0, 1);
5375 31334 : switch (TREE_CODE (_p1))
5376 : {
5377 993 : case POINTER_DIFF_EXPR:
5378 993 : {
5379 993 : tree _q50 = TREE_OPERAND (_p1, 0);
5380 993 : tree _q51 = TREE_OPERAND (_p1, 1);
5381 993 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5382 : {
5383 0 : {
5384 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5385 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5386 0 : if (res) return res;
5387 : }
5388 : }
5389 993 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5390 : {
5391 0 : {
5392 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5393 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
5394 0 : if (res) return res;
5395 : }
5396 : }
5397 : break;
5398 : }
5399 : default:;
5400 : }
5401 : break;
5402 : }
5403 26737456 : default:;
5404 : }
5405 26737456 : {
5406 26737456 : tree _p0_pops[1];
5407 26737456 : if (tree_logical_inverted_value (_p0, _p0_pops))
5408 : {
5409 7826 : tree _q20 = _p0_pops[0];
5410 7826 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5411 : {
5412 9 : if (tree_truth_valued_p (_p1))
5413 : {
5414 0 : {
5415 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5416 0 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
5417 0 : if (res) return res;
5418 : }
5419 : }
5420 : }
5421 : }
5422 : }
5423 26737456 : if (tree_truth_valued_p (_p0))
5424 : {
5425 630103 : switch (TREE_CODE (_p1))
5426 : {
5427 24 : case BIT_NOT_EXPR:
5428 24 : {
5429 24 : tree _q30 = TREE_OPERAND (_p1, 0);
5430 24 : if (tree_truth_valued_p (_q30))
5431 : {
5432 4 : {
5433 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5434 4 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures);
5435 4 : if (res) return res;
5436 : }
5437 : }
5438 : break;
5439 : }
5440 630103 : default:;
5441 : }
5442 630103 : {
5443 630103 : tree _p1_pops[1];
5444 630103 : if (tree_logical_inverted_value (_p1, _p1_pops))
5445 : {
5446 90 : tree _q30 = _p1_pops[0];
5447 90 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5448 : {
5449 0 : {
5450 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5451 0 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
5452 0 : if (res) return res;
5453 : }
5454 : }
5455 : }
5456 : }
5457 : }
5458 26737456 : switch (TREE_CODE (_p1))
5459 : {
5460 85362 : case PLUS_EXPR:
5461 85362 : {
5462 85362 : tree _q30 = TREE_OPERAND (_p1, 0);
5463 85362 : tree _q31 = TREE_OPERAND (_p1, 1);
5464 85362 : switch (TREE_CODE (_q31))
5465 : {
5466 26 : CASE_CONVERT:
5467 26 : {
5468 26 : tree _q50 = TREE_OPERAND (_q31, 0);
5469 26 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5470 : {
5471 0 : {
5472 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5473 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5474 0 : if (res) return res;
5475 : }
5476 : }
5477 : break;
5478 : }
5479 85362 : default:;
5480 : }
5481 85362 : switch (TREE_CODE (_q30))
5482 : {
5483 20449 : CASE_CONVERT:
5484 20449 : {
5485 20449 : tree _q40 = TREE_OPERAND (_q30, 0);
5486 20449 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5487 : {
5488 0 : {
5489 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5490 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5491 0 : if (res) return res;
5492 : }
5493 : }
5494 : break;
5495 : }
5496 85362 : default:;
5497 : }
5498 85362 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5499 : {
5500 0 : {
5501 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5502 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5503 0 : if (res) return res;
5504 : }
5505 : }
5506 85362 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5507 : {
5508 0 : {
5509 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5510 0 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
5511 0 : if (res) return res;
5512 : }
5513 : }
5514 : break;
5515 : }
5516 26737456 : default:;
5517 : }
5518 26737456 : {
5519 26737456 : tree _p1_pops[1];
5520 26737456 : if (tree_nop_convert (_p1, _p1_pops))
5521 : {
5522 1385579 : tree _q30 = _p1_pops[0];
5523 1385579 : switch (TREE_CODE (_q30))
5524 : {
5525 1728 : case PLUS_EXPR:
5526 1728 : {
5527 1728 : tree _q40 = TREE_OPERAND (_q30, 0);
5528 1728 : tree _q41 = TREE_OPERAND (_q30, 1);
5529 1728 : switch (TREE_CODE (_q41))
5530 : {
5531 2 : CASE_CONVERT:
5532 2 : {
5533 2 : tree _q60 = TREE_OPERAND (_q41, 0);
5534 2 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5535 : {
5536 0 : {
5537 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5538 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5539 0 : if (res) return res;
5540 : }
5541 : }
5542 : break;
5543 : }
5544 1728 : default:;
5545 : }
5546 1728 : switch (TREE_CODE (_q40))
5547 : {
5548 1623 : CASE_CONVERT:
5549 1623 : {
5550 1623 : tree _q50 = TREE_OPERAND (_q40, 0);
5551 1623 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5552 : {
5553 0 : {
5554 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5555 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5556 0 : if (res) return res;
5557 : }
5558 : }
5559 : break;
5560 : }
5561 1728 : default:;
5562 : }
5563 1728 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5564 : {
5565 0 : {
5566 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5567 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5568 0 : if (res) return res;
5569 : }
5570 : }
5571 1728 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5572 : {
5573 0 : {
5574 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5575 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
5576 0 : if (res) return res;
5577 : }
5578 : }
5579 : break;
5580 : }
5581 : default:;
5582 : }
5583 : }
5584 : }
5585 26737456 : switch (TREE_CODE (_p0))
5586 : {
5587 5062062 : CASE_CONVERT:
5588 5062062 : {
5589 5062062 : tree _q20 = TREE_OPERAND (_p0, 0);
5590 5062062 : switch (TREE_CODE (_p1))
5591 : {
5592 152 : case POINTER_PLUS_EXPR:
5593 152 : {
5594 152 : tree _q40 = TREE_OPERAND (_p1, 0);
5595 152 : tree _q41 = TREE_OPERAND (_p1, 1);
5596 152 : switch (TREE_CODE (_q40))
5597 : {
5598 96 : CASE_CONVERT:
5599 96 : {
5600 96 : tree _q50 = TREE_OPERAND (_q40, 0);
5601 96 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5602 : {
5603 3 : {
5604 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5605 3 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5606 3 : if (res) return res;
5607 : }
5608 : }
5609 : break;
5610 : }
5611 149 : default:;
5612 : }
5613 149 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
5614 : {
5615 0 : {
5616 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5617 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5618 0 : if (res) return res;
5619 : }
5620 : }
5621 : break;
5622 : }
5623 5062059 : default:;
5624 : }
5625 5062059 : {
5626 5062059 : tree _p1_pops[1];
5627 5062059 : if (tree_nop_convert (_p1, _p1_pops))
5628 : {
5629 1156979 : tree _q40 = _p1_pops[0];
5630 1156979 : switch (TREE_CODE (_q40))
5631 : {
5632 18 : case POINTER_PLUS_EXPR:
5633 18 : {
5634 18 : tree _q50 = TREE_OPERAND (_q40, 0);
5635 18 : tree _q51 = TREE_OPERAND (_q40, 1);
5636 18 : switch (TREE_CODE (_q50))
5637 : {
5638 0 : CASE_CONVERT:
5639 0 : {
5640 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5641 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5642 : {
5643 0 : {
5644 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5645 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5646 0 : if (res) return res;
5647 : }
5648 : }
5649 : break;
5650 : }
5651 18 : default:;
5652 : }
5653 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5654 : {
5655 0 : {
5656 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5657 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5658 0 : if (res) return res;
5659 : }
5660 : }
5661 : break;
5662 : }
5663 : default:;
5664 : }
5665 : }
5666 : }
5667 5062059 : break;
5668 : }
5669 26737453 : default:;
5670 : }
5671 26737453 : {
5672 26737453 : tree _p0_pops[1];
5673 26737453 : if (tree_nop_convert (_p0, _p0_pops))
5674 : {
5675 2982000 : tree _q20 = _p0_pops[0];
5676 2982000 : switch (TREE_CODE (_q20))
5677 : {
5678 97 : case POINTER_PLUS_EXPR:
5679 97 : {
5680 97 : tree _q30 = TREE_OPERAND (_q20, 0);
5681 97 : tree _q31 = TREE_OPERAND (_q20, 1);
5682 97 : switch (TREE_CODE (_q30))
5683 : {
5684 21 : CASE_CONVERT:
5685 21 : {
5686 21 : tree _q40 = TREE_OPERAND (_q30, 0);
5687 21 : switch (TREE_CODE (_p1))
5688 : {
5689 0 : CASE_CONVERT:
5690 0 : {
5691 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5692 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5693 : {
5694 0 : {
5695 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5696 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5697 0 : if (res) return res;
5698 : }
5699 : }
5700 : break;
5701 : }
5702 21 : default:;
5703 : }
5704 21 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5705 : {
5706 0 : {
5707 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5708 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5709 0 : if (res) return res;
5710 : }
5711 : }
5712 : break;
5713 : }
5714 97 : default:;
5715 : }
5716 97 : switch (TREE_CODE (_p1))
5717 : {
5718 27 : CASE_CONVERT:
5719 27 : {
5720 27 : tree _q60 = TREE_OPERAND (_p1, 0);
5721 27 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5722 : {
5723 0 : {
5724 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5725 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5726 0 : if (res) return res;
5727 : }
5728 : }
5729 : break;
5730 : }
5731 97 : default:;
5732 : }
5733 97 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5734 : {
5735 0 : {
5736 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5737 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5738 0 : if (res) return res;
5739 : }
5740 : }
5741 : break;
5742 : }
5743 : default:;
5744 : }
5745 : }
5746 : }
5747 26737453 : switch (TREE_CODE (_p1))
5748 : {
5749 6142 : case POINTER_PLUS_EXPR:
5750 6142 : {
5751 6142 : tree _q30 = TREE_OPERAND (_p1, 0);
5752 6142 : tree _q31 = TREE_OPERAND (_p1, 1);
5753 6142 : switch (TREE_CODE (_q30))
5754 : {
5755 3440 : CASE_CONVERT:
5756 3440 : {
5757 3440 : tree _q40 = TREE_OPERAND (_q30, 0);
5758 3440 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5759 : {
5760 0 : {
5761 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5762 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5763 0 : if (res) return res;
5764 : }
5765 : }
5766 : break;
5767 : }
5768 6142 : default:;
5769 : }
5770 6142 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5771 : {
5772 0 : {
5773 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5774 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5775 0 : if (res) return res;
5776 : }
5777 : }
5778 : break;
5779 : }
5780 26737453 : default:;
5781 : }
5782 26737453 : {
5783 26737453 : tree _p1_pops[1];
5784 26737453 : if (tree_nop_convert (_p1, _p1_pops))
5785 : {
5786 1385579 : tree _q30 = _p1_pops[0];
5787 1385579 : switch (TREE_CODE (_q30))
5788 : {
5789 32 : case POINTER_PLUS_EXPR:
5790 32 : {
5791 32 : tree _q40 = TREE_OPERAND (_q30, 0);
5792 32 : tree _q41 = TREE_OPERAND (_q30, 1);
5793 32 : switch (TREE_CODE (_q40))
5794 : {
5795 0 : CASE_CONVERT:
5796 0 : {
5797 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5798 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5799 : {
5800 0 : {
5801 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5802 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5803 0 : if (res) return res;
5804 : }
5805 : }
5806 : break;
5807 : }
5808 32 : default:;
5809 : }
5810 32 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5811 : {
5812 0 : {
5813 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5814 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
5815 0 : if (res) return res;
5816 : }
5817 : }
5818 : break;
5819 : }
5820 : default:;
5821 : }
5822 : }
5823 : }
5824 26737453 : switch (TREE_CODE (_p0))
5825 : {
5826 60377 : case POINTER_PLUS_EXPR:
5827 60377 : {
5828 60377 : tree _q20 = TREE_OPERAND (_p0, 0);
5829 60377 : tree _q21 = TREE_OPERAND (_p0, 1);
5830 60377 : switch (TREE_CODE (_p1))
5831 : {
5832 11916 : case ADDR_EXPR:
5833 11916 : {
5834 11916 : {
5835 11916 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5836 11916 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
5837 11916 : if (res) return res;
5838 : }
5839 11915 : break;
5840 : }
5841 60376 : default:;
5842 : }
5843 60376 : switch (TREE_CODE (_q20))
5844 : {
5845 1074 : case ADDR_EXPR:
5846 1074 : {
5847 1074 : switch (TREE_CODE (_p1))
5848 : {
5849 15 : case POINTER_PLUS_EXPR:
5850 15 : {
5851 15 : tree _q50 = TREE_OPERAND (_p1, 0);
5852 15 : tree _q51 = TREE_OPERAND (_p1, 1);
5853 15 : switch (TREE_CODE (_q50))
5854 : {
5855 6 : case ADDR_EXPR:
5856 6 : {
5857 6 : {
5858 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
5859 6 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR);
5860 6 : if (res) return res;
5861 : }
5862 6 : break;
5863 : }
5864 : default:;
5865 : }
5866 : break;
5867 : }
5868 : default:;
5869 : }
5870 : break;
5871 : }
5872 : default:;
5873 : }
5874 : break;
5875 : }
5876 83772 : case ADDR_EXPR:
5877 83772 : {
5878 83772 : switch (TREE_CODE (_p1))
5879 : {
5880 0 : case POINTER_PLUS_EXPR:
5881 0 : {
5882 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5883 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5884 0 : {
5885 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5886 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
5887 0 : if (res) return res;
5888 : }
5889 0 : break;
5890 : }
5891 : default:;
5892 : }
5893 : break;
5894 : }
5895 26737452 : default:;
5896 : }
5897 26737452 : switch (TREE_CODE (_p1))
5898 : {
5899 3391 : case MINUS_EXPR:
5900 3391 : {
5901 3391 : tree _q30 = TREE_OPERAND (_p1, 0);
5902 3391 : tree _q31 = TREE_OPERAND (_p1, 1);
5903 3391 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5904 : {
5905 0 : {
5906 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5907 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5908 0 : if (res) return res;
5909 : }
5910 : }
5911 : break;
5912 : }
5913 26737452 : default:;
5914 : }
5915 26737452 : switch (TREE_CODE (_p0))
5916 : {
5917 4369 : case TRUNC_DIV_EXPR:
5918 4369 : {
5919 4369 : tree _q20 = TREE_OPERAND (_p0, 0);
5920 4369 : tree _q21 = TREE_OPERAND (_p0, 1);
5921 4369 : if (integer_zerop (_p1))
5922 : {
5923 331 : {
5924 331 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5925 331 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
5926 331 : if (res) return res;
5927 : }
5928 : }
5929 : break;
5930 : }
5931 5062059 : CASE_CONVERT:
5932 5062059 : {
5933 5062059 : tree _q20 = TREE_OPERAND (_p0, 0);
5934 5062059 : switch (TREE_CODE (_p1))
5935 : {
5936 1543166 : CASE_CONVERT:
5937 1543166 : {
5938 1543166 : tree _q40 = TREE_OPERAND (_p1, 0);
5939 1543166 : switch (TREE_CODE (_q40))
5940 : {
5941 0 : case MINUS_EXPR:
5942 0 : {
5943 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5944 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5945 0 : switch (TREE_CODE (_q50))
5946 : {
5947 0 : case INTEGER_CST:
5948 0 : {
5949 0 : switch (TREE_CODE (_q51))
5950 : {
5951 0 : CASE_CONVERT:
5952 0 : {
5953 0 : tree _q70 = TREE_OPERAND (_q51, 0);
5954 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
5955 : {
5956 0 : {
5957 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5958 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
5959 0 : if (res) return res;
5960 : }
5961 : }
5962 : break;
5963 : }
5964 : default:;
5965 : }
5966 : break;
5967 : }
5968 : default:;
5969 : }
5970 : break;
5971 : }
5972 : default:;
5973 : }
5974 : break;
5975 : }
5976 5062059 : default:;
5977 : }
5978 5062059 : switch (TREE_CODE (_q20))
5979 : {
5980 244 : case MINUS_EXPR:
5981 244 : {
5982 244 : tree _q30 = TREE_OPERAND (_q20, 0);
5983 244 : tree _q31 = TREE_OPERAND (_q20, 1);
5984 244 : switch (TREE_CODE (_q30))
5985 : {
5986 56 : case INTEGER_CST:
5987 56 : {
5988 56 : switch (TREE_CODE (_q31))
5989 : {
5990 0 : CASE_CONVERT:
5991 0 : {
5992 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5993 0 : switch (TREE_CODE (_p1))
5994 : {
5995 0 : CASE_CONVERT:
5996 0 : {
5997 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5998 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
5999 : {
6000 0 : {
6001 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6002 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6003 0 : if (res) return res;
6004 : }
6005 : }
6006 : break;
6007 : }
6008 0 : default:;
6009 : }
6010 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
6011 : {
6012 0 : {
6013 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6014 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6015 0 : if (res) return res;
6016 : }
6017 : }
6018 : break;
6019 : }
6020 56 : default:;
6021 : }
6022 56 : switch (TREE_CODE (_p1))
6023 : {
6024 0 : CASE_CONVERT:
6025 0 : {
6026 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6027 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
6028 : {
6029 0 : {
6030 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6031 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6032 0 : if (res) return res;
6033 : }
6034 : }
6035 : break;
6036 : }
6037 56 : default:;
6038 : }
6039 56 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6040 : {
6041 0 : {
6042 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6043 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6044 0 : if (res) return res;
6045 : }
6046 : }
6047 : break;
6048 : }
6049 : default:;
6050 : }
6051 : break;
6052 : }
6053 5062059 : default:;
6054 : }
6055 5062059 : switch (TREE_CODE (_p1))
6056 : {
6057 1543166 : CASE_CONVERT:
6058 1543166 : {
6059 1543166 : tree _q40 = TREE_OPERAND (_p1, 0);
6060 1543166 : switch (TREE_CODE (_q40))
6061 : {
6062 0 : case MINUS_EXPR:
6063 0 : {
6064 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6065 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6066 0 : switch (TREE_CODE (_q50))
6067 : {
6068 0 : case INTEGER_CST:
6069 0 : {
6070 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6071 : {
6072 0 : {
6073 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
6074 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6075 0 : if (res) return res;
6076 : }
6077 : }
6078 : break;
6079 : }
6080 : default:;
6081 : }
6082 : break;
6083 : }
6084 : default:;
6085 : }
6086 : break;
6087 : }
6088 273 : case MINUS_EXPR:
6089 273 : {
6090 273 : tree _q40 = TREE_OPERAND (_p1, 0);
6091 273 : tree _q41 = TREE_OPERAND (_p1, 1);
6092 273 : switch (TREE_CODE (_q40))
6093 : {
6094 70 : case INTEGER_CST:
6095 70 : {
6096 70 : switch (TREE_CODE (_q41))
6097 : {
6098 12 : CASE_CONVERT:
6099 12 : {
6100 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6101 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6102 : {
6103 0 : {
6104 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6105 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6106 0 : if (res) return res;
6107 : }
6108 : }
6109 : break;
6110 : }
6111 70 : default:;
6112 : }
6113 70 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6114 : {
6115 0 : {
6116 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6117 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6118 0 : if (res) return res;
6119 : }
6120 : }
6121 : break;
6122 : }
6123 : default:;
6124 : }
6125 : break;
6126 : }
6127 : default:;
6128 : }
6129 : break;
6130 : }
6131 152212 : case MINUS_EXPR:
6132 152212 : {
6133 152212 : tree _q20 = TREE_OPERAND (_p0, 0);
6134 152212 : tree _q21 = TREE_OPERAND (_p0, 1);
6135 152212 : switch (TREE_CODE (_q20))
6136 : {
6137 40790 : case INTEGER_CST:
6138 40790 : {
6139 40790 : switch (TREE_CODE (_q21))
6140 : {
6141 23849 : CASE_CONVERT:
6142 23849 : {
6143 23849 : tree _q40 = TREE_OPERAND (_q21, 0);
6144 23849 : switch (TREE_CODE (_p1))
6145 : {
6146 0 : CASE_CONVERT:
6147 0 : {
6148 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6149 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
6150 : {
6151 0 : {
6152 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6153 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6154 0 : if (res) return res;
6155 : }
6156 : }
6157 : break;
6158 : }
6159 23849 : default:;
6160 : }
6161 23849 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6162 : {
6163 0 : {
6164 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6165 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6166 0 : if (res) return res;
6167 : }
6168 : }
6169 : break;
6170 : }
6171 40790 : default:;
6172 : }
6173 40790 : switch (TREE_CODE (_p1))
6174 : {
6175 22 : CASE_CONVERT:
6176 22 : {
6177 22 : tree _q50 = TREE_OPERAND (_p1, 0);
6178 22 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6179 : {
6180 0 : {
6181 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6182 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6183 0 : if (res) return res;
6184 : }
6185 : }
6186 : break;
6187 : }
6188 40790 : default:;
6189 : }
6190 40790 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6191 : {
6192 2 : {
6193 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6194 2 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6195 2 : if (res) return res;
6196 : }
6197 : }
6198 : break;
6199 : }
6200 : default:;
6201 : }
6202 : break;
6203 : }
6204 26737214 : default:;
6205 : }
6206 26737214 : switch (TREE_CODE (_p1))
6207 : {
6208 1830812 : CASE_CONVERT:
6209 1830812 : {
6210 1830812 : tree _q30 = TREE_OPERAND (_p1, 0);
6211 1830812 : switch (TREE_CODE (_q30))
6212 : {
6213 12 : case MINUS_EXPR:
6214 12 : {
6215 12 : tree _q40 = TREE_OPERAND (_q30, 0);
6216 12 : tree _q41 = TREE_OPERAND (_q30, 1);
6217 12 : switch (TREE_CODE (_q40))
6218 : {
6219 12 : case INTEGER_CST:
6220 12 : {
6221 12 : switch (TREE_CODE (_q41))
6222 : {
6223 12 : CASE_CONVERT:
6224 12 : {
6225 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6226 12 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6227 : {
6228 0 : {
6229 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6230 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6231 0 : if (res) return res;
6232 : }
6233 : }
6234 : break;
6235 : }
6236 12 : default:;
6237 : }
6238 12 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6239 : {
6240 0 : {
6241 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6242 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6243 0 : if (res) return res;
6244 : }
6245 : }
6246 : break;
6247 : }
6248 : default:;
6249 : }
6250 : break;
6251 : }
6252 : default:;
6253 : }
6254 : break;
6255 : }
6256 3391 : case MINUS_EXPR:
6257 3391 : {
6258 3391 : tree _q30 = TREE_OPERAND (_p1, 0);
6259 3391 : tree _q31 = TREE_OPERAND (_p1, 1);
6260 3391 : switch (TREE_CODE (_q30))
6261 : {
6262 208 : case INTEGER_CST:
6263 208 : {
6264 208 : switch (TREE_CODE (_q31))
6265 : {
6266 16 : CASE_CONVERT:
6267 16 : {
6268 16 : tree _q50 = TREE_OPERAND (_q31, 0);
6269 16 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6270 : {
6271 0 : {
6272 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6273 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6274 0 : if (res) return res;
6275 : }
6276 : }
6277 : break;
6278 : }
6279 208 : default:;
6280 : }
6281 208 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6282 : {
6283 0 : {
6284 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6285 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6286 0 : if (res) return res;
6287 : }
6288 : }
6289 : break;
6290 : }
6291 : default:;
6292 : }
6293 : break;
6294 : }
6295 26737214 : default:;
6296 : }
6297 26737214 : switch (TREE_CODE (_p0))
6298 : {
6299 1130 : case LT_EXPR:
6300 1130 : {
6301 1130 : tree _q20 = TREE_OPERAND (_p0, 0);
6302 1130 : tree _q21 = TREE_OPERAND (_p0, 1);
6303 1130 : switch (TREE_CODE (_p1))
6304 : {
6305 16 : case GT_EXPR:
6306 16 : {
6307 16 : tree _q50 = TREE_OPERAND (_p1, 0);
6308 16 : tree _q51 = TREE_OPERAND (_p1, 1);
6309 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6310 : {
6311 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6312 : {
6313 0 : {
6314 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6315 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6316 0 : if (res) return res;
6317 : }
6318 : }
6319 : }
6320 : break;
6321 : }
6322 0 : case EQ_EXPR:
6323 0 : {
6324 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6325 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6326 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6327 : {
6328 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6329 : {
6330 0 : {
6331 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6332 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6333 0 : if (res) return res;
6334 : }
6335 : }
6336 : }
6337 : break;
6338 : }
6339 2 : case NE_EXPR:
6340 2 : {
6341 2 : tree _q50 = TREE_OPERAND (_p1, 0);
6342 2 : tree _q51 = TREE_OPERAND (_p1, 1);
6343 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6344 : {
6345 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6346 : {
6347 0 : {
6348 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6349 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6350 0 : if (res) return res;
6351 : }
6352 : }
6353 : }
6354 : break;
6355 : }
6356 : default:;
6357 : }
6358 : break;
6359 : }
6360 1547 : case LE_EXPR:
6361 1547 : {
6362 1547 : tree _q20 = TREE_OPERAND (_p0, 0);
6363 1547 : tree _q21 = TREE_OPERAND (_p0, 1);
6364 1547 : switch (TREE_CODE (_p1))
6365 : {
6366 5 : case GE_EXPR:
6367 5 : {
6368 5 : tree _q50 = TREE_OPERAND (_p1, 0);
6369 5 : tree _q51 = TREE_OPERAND (_p1, 1);
6370 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6371 : {
6372 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6373 : {
6374 0 : {
6375 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6376 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6377 0 : if (res) return res;
6378 : }
6379 : }
6380 : }
6381 : break;
6382 : }
6383 0 : case EQ_EXPR:
6384 0 : {
6385 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6386 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6387 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6388 : {
6389 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6390 : {
6391 0 : {
6392 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6393 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6394 0 : if (res) return res;
6395 : }
6396 : }
6397 : }
6398 : break;
6399 : }
6400 8 : case NE_EXPR:
6401 8 : {
6402 8 : tree _q50 = TREE_OPERAND (_p1, 0);
6403 8 : tree _q51 = TREE_OPERAND (_p1, 1);
6404 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6405 : {
6406 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6407 : {
6408 0 : {
6409 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6410 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6411 0 : if (res) return res;
6412 : }
6413 : }
6414 : }
6415 : break;
6416 : }
6417 : default:;
6418 : }
6419 : break;
6420 : }
6421 64891 : case GT_EXPR:
6422 64891 : {
6423 64891 : tree _q20 = TREE_OPERAND (_p0, 0);
6424 64891 : tree _q21 = TREE_OPERAND (_p0, 1);
6425 64891 : switch (TREE_CODE (_p1))
6426 : {
6427 63144 : case GT_EXPR:
6428 63144 : {
6429 63144 : tree _q50 = TREE_OPERAND (_p1, 0);
6430 63144 : tree _q51 = TREE_OPERAND (_p1, 1);
6431 63144 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6432 : {
6433 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6434 : {
6435 0 : {
6436 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6437 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6438 0 : if (res) return res;
6439 : }
6440 0 : {
6441 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6442 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6443 0 : if (res) return res;
6444 : }
6445 : }
6446 : }
6447 : break;
6448 : }
6449 57 : case EQ_EXPR:
6450 57 : {
6451 57 : tree _q50 = TREE_OPERAND (_p1, 0);
6452 57 : tree _q51 = TREE_OPERAND (_p1, 1);
6453 57 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6454 : {
6455 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6456 : {
6457 0 : {
6458 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6459 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6460 0 : if (res) return res;
6461 : }
6462 : }
6463 : }
6464 : break;
6465 : }
6466 37 : case NE_EXPR:
6467 37 : {
6468 37 : tree _q50 = TREE_OPERAND (_p1, 0);
6469 37 : tree _q51 = TREE_OPERAND (_p1, 1);
6470 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6471 : {
6472 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6473 : {
6474 0 : {
6475 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6476 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6477 0 : if (res) return res;
6478 : }
6479 : }
6480 : }
6481 : break;
6482 : }
6483 41 : case LT_EXPR:
6484 41 : {
6485 41 : tree _q50 = TREE_OPERAND (_p1, 0);
6486 41 : tree _q51 = TREE_OPERAND (_p1, 1);
6487 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6488 : {
6489 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6490 : {
6491 0 : {
6492 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6493 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6494 0 : if (res) return res;
6495 : }
6496 : }
6497 : }
6498 : break;
6499 : }
6500 : default:;
6501 : }
6502 : break;
6503 : }
6504 6756 : case GE_EXPR:
6505 6756 : {
6506 6756 : tree _q20 = TREE_OPERAND (_p0, 0);
6507 6756 : tree _q21 = TREE_OPERAND (_p0, 1);
6508 6756 : switch (TREE_CODE (_p1))
6509 : {
6510 26 : case GE_EXPR:
6511 26 : {
6512 26 : tree _q50 = TREE_OPERAND (_p1, 0);
6513 26 : tree _q51 = TREE_OPERAND (_p1, 1);
6514 26 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6515 : {
6516 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6517 : {
6518 0 : {
6519 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6520 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6521 0 : if (res) return res;
6522 : }
6523 0 : {
6524 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6525 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6526 0 : if (res) return res;
6527 : }
6528 : }
6529 : }
6530 : break;
6531 : }
6532 90 : case EQ_EXPR:
6533 90 : {
6534 90 : tree _q50 = TREE_OPERAND (_p1, 0);
6535 90 : tree _q51 = TREE_OPERAND (_p1, 1);
6536 90 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6537 : {
6538 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6539 : {
6540 0 : {
6541 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6542 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6543 0 : if (res) return res;
6544 : }
6545 : }
6546 : }
6547 : break;
6548 : }
6549 56 : case NE_EXPR:
6550 56 : {
6551 56 : tree _q50 = TREE_OPERAND (_p1, 0);
6552 56 : tree _q51 = TREE_OPERAND (_p1, 1);
6553 56 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6554 : {
6555 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6556 : {
6557 0 : {
6558 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6559 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6560 0 : if (res) return res;
6561 : }
6562 : }
6563 : }
6564 : break;
6565 : }
6566 6 : case LE_EXPR:
6567 6 : {
6568 6 : tree _q50 = TREE_OPERAND (_p1, 0);
6569 6 : tree _q51 = TREE_OPERAND (_p1, 1);
6570 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6571 : {
6572 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6573 : {
6574 0 : {
6575 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6576 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6577 0 : if (res) return res;
6578 : }
6579 : }
6580 : }
6581 : break;
6582 : }
6583 : default:;
6584 : }
6585 : break;
6586 : }
6587 32145 : case EQ_EXPR:
6588 32145 : {
6589 32145 : tree _q20 = TREE_OPERAND (_p0, 0);
6590 32145 : tree _q21 = TREE_OPERAND (_p0, 1);
6591 32145 : switch (TREE_CODE (_p1))
6592 : {
6593 4 : case LT_EXPR:
6594 4 : {
6595 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6596 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6597 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6598 : {
6599 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6600 : {
6601 0 : {
6602 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6603 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6604 0 : if (res) return res;
6605 : }
6606 : }
6607 : }
6608 : break;
6609 : }
6610 4 : case LE_EXPR:
6611 4 : {
6612 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6613 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6614 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6615 : {
6616 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6617 : {
6618 0 : {
6619 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6620 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6621 0 : if (res) return res;
6622 : }
6623 : }
6624 : }
6625 : break;
6626 : }
6627 75 : case GT_EXPR:
6628 75 : {
6629 75 : tree _q50 = TREE_OPERAND (_p1, 0);
6630 75 : tree _q51 = TREE_OPERAND (_p1, 1);
6631 75 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6632 : {
6633 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6634 : {
6635 0 : {
6636 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6637 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6638 0 : if (res) return res;
6639 : }
6640 : }
6641 : }
6642 : break;
6643 : }
6644 112 : case GE_EXPR:
6645 112 : {
6646 112 : tree _q50 = TREE_OPERAND (_p1, 0);
6647 112 : tree _q51 = TREE_OPERAND (_p1, 1);
6648 112 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6649 : {
6650 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6651 : {
6652 0 : {
6653 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6654 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6655 0 : if (res) return res;
6656 : }
6657 : }
6658 : }
6659 : break;
6660 : }
6661 : default:;
6662 : }
6663 : break;
6664 : }
6665 11930 : case NE_EXPR:
6666 11930 : {
6667 11930 : tree _q20 = TREE_OPERAND (_p0, 0);
6668 11930 : tree _q21 = TREE_OPERAND (_p0, 1);
6669 11930 : switch (TREE_CODE (_p1))
6670 : {
6671 3 : case LT_EXPR:
6672 3 : {
6673 3 : tree _q50 = TREE_OPERAND (_p1, 0);
6674 3 : tree _q51 = TREE_OPERAND (_p1, 1);
6675 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6676 : {
6677 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6678 : {
6679 0 : {
6680 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6681 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6682 0 : if (res) return res;
6683 : }
6684 : }
6685 : }
6686 : break;
6687 : }
6688 0 : case LE_EXPR:
6689 0 : {
6690 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6691 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6692 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6693 : {
6694 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6695 : {
6696 0 : {
6697 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6698 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6699 0 : if (res) return res;
6700 : }
6701 : }
6702 : }
6703 : break;
6704 : }
6705 21 : case GT_EXPR:
6706 21 : {
6707 21 : tree _q50 = TREE_OPERAND (_p1, 0);
6708 21 : tree _q51 = TREE_OPERAND (_p1, 1);
6709 21 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6710 : {
6711 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6712 : {
6713 0 : {
6714 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6715 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6716 0 : if (res) return res;
6717 : }
6718 : }
6719 : }
6720 : break;
6721 : }
6722 2 : case GE_EXPR:
6723 2 : {
6724 2 : tree _q50 = TREE_OPERAND (_p1, 0);
6725 2 : tree _q51 = TREE_OPERAND (_p1, 1);
6726 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6727 : {
6728 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6729 : {
6730 0 : {
6731 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6732 0 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6733 0 : if (res) return res;
6734 : }
6735 : }
6736 : }
6737 : break;
6738 : }
6739 : default:;
6740 : }
6741 : break;
6742 : }
6743 10375 : case MIN_EXPR:
6744 10375 : {
6745 10375 : tree _q20 = TREE_OPERAND (_p0, 0);
6746 10375 : tree _q21 = TREE_OPERAND (_p0, 1);
6747 10375 : switch (TREE_CODE (_p1))
6748 : {
6749 0 : case MAX_EXPR:
6750 0 : {
6751 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6752 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6753 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6754 : {
6755 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6756 : {
6757 0 : {
6758 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6759 0 : if (!HONOR_NANS (captures[0])
6760 : )
6761 : {
6762 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1502;
6763 0 : {
6764 0 : tree res_op0;
6765 0 : res_op0 = captures[0];
6766 0 : tree res_op1;
6767 0 : res_op1 = captures[1];
6768 0 : tree _r;
6769 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
6771 0 : return _r;
6772 : }
6773 0 : next_after_fail1502:;
6774 : }
6775 : }
6776 : }
6777 : }
6778 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6779 : {
6780 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6781 : {
6782 0 : {
6783 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6784 0 : if (!HONOR_NANS (captures[0])
6785 : )
6786 : {
6787 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1503;
6788 0 : {
6789 0 : tree res_op0;
6790 0 : res_op0 = captures[0];
6791 0 : tree res_op1;
6792 0 : res_op1 = captures[1];
6793 0 : tree _r;
6794 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6795 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
6796 0 : return _r;
6797 : }
6798 0 : next_after_fail1503:;
6799 : }
6800 : }
6801 : }
6802 : }
6803 : break;
6804 : }
6805 10375 : default:;
6806 : }
6807 10375 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6808 : {
6809 0 : {
6810 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6811 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6812 0 : if (res) return res;
6813 : }
6814 : }
6815 10375 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6816 : {
6817 0 : {
6818 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6819 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6820 0 : if (res) return res;
6821 : }
6822 : }
6823 : break;
6824 : }
6825 658 : case MAX_EXPR:
6826 658 : {
6827 658 : tree _q20 = TREE_OPERAND (_p0, 0);
6828 658 : tree _q21 = TREE_OPERAND (_p0, 1);
6829 658 : switch (TREE_CODE (_p1))
6830 : {
6831 0 : case MIN_EXPR:
6832 0 : {
6833 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6834 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6835 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6836 : {
6837 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6838 : {
6839 0 : {
6840 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6841 0 : if (!HONOR_NANS (captures[0])
6842 : )
6843 : {
6844 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1504;
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, EQ_EXPR, type, res_op0, res_op1);
6852 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
6853 0 : return _r;
6854 : }
6855 0 : next_after_fail1504:;
6856 : }
6857 : }
6858 : }
6859 : }
6860 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6861 : {
6862 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6863 : {
6864 0 : {
6865 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6866 0 : if (!HONOR_NANS (captures[0])
6867 : )
6868 : {
6869 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1505;
6870 0 : {
6871 0 : tree res_op0;
6872 0 : res_op0 = captures[0];
6873 0 : tree res_op1;
6874 0 : res_op1 = captures[1];
6875 0 : tree _r;
6876 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6877 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
6878 0 : return _r;
6879 : }
6880 0 : next_after_fail1505:;
6881 : }
6882 : }
6883 : }
6884 : }
6885 : break;
6886 : }
6887 658 : default:;
6888 : }
6889 658 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6890 : {
6891 0 : {
6892 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6893 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6894 0 : if (res) return res;
6895 : }
6896 : }
6897 658 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6898 : {
6899 1 : {
6900 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6901 1 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6902 1 : if (res) return res;
6903 : }
6904 : }
6905 : break;
6906 : }
6907 26737214 : default:;
6908 : }
6909 26737214 : if (tree_with_possible_nonzero_bits (_p0))
6910 : {
6911 9465584 : if (tree_with_known_nonzero_bits (_p1))
6912 : {
6913 8078232 : {
6914 8078232 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6915 8078232 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR);
6916 8078232 : if (res) return res;
6917 : }
6918 : }
6919 : }
6920 26718404 : if (tree_with_known_nonzero_bits (_p0))
6921 : {
6922 6146269 : if (tree_with_possible_nonzero_bits (_p1))
6923 : {
6924 6114056 : {
6925 6114056 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
6926 6114056 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR);
6927 6114056 : if (res) return res;
6928 : }
6929 : }
6930 : }
6931 26717999 : switch (TREE_CODE (_p1))
6932 : {
6933 146 : case MIN_EXPR:
6934 146 : {
6935 146 : tree _q30 = TREE_OPERAND (_p1, 0);
6936 146 : tree _q31 = TREE_OPERAND (_p1, 1);
6937 146 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6938 : {
6939 0 : {
6940 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6941 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6942 0 : if (res) return res;
6943 : }
6944 : }
6945 146 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6946 : {
6947 0 : {
6948 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6949 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6950 0 : if (res) return res;
6951 : }
6952 : }
6953 : break;
6954 : }
6955 58 : case MAX_EXPR:
6956 58 : {
6957 58 : tree _q30 = TREE_OPERAND (_p1, 0);
6958 58 : tree _q31 = TREE_OPERAND (_p1, 1);
6959 58 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6960 : {
6961 0 : {
6962 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6963 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6964 0 : if (res) return res;
6965 : }
6966 : }
6967 58 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6968 : {
6969 0 : {
6970 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6971 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6972 0 : if (res) return res;
6973 : }
6974 : }
6975 : break;
6976 : }
6977 26717999 : default:;
6978 : }
6979 26717999 : switch (TREE_CODE (_p0))
6980 : {
6981 10375 : case MIN_EXPR:
6982 10375 : {
6983 10375 : tree _q20 = TREE_OPERAND (_p0, 0);
6984 10375 : tree _q21 = TREE_OPERAND (_p0, 1);
6985 10375 : switch (TREE_CODE (_q21))
6986 : {
6987 163 : case INTEGER_CST:
6988 163 : {
6989 163 : switch (TREE_CODE (_p1))
6990 : {
6991 0 : case INTEGER_CST:
6992 0 : {
6993 0 : {
6994 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6995 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6996 0 : if (res) return res;
6997 : }
6998 0 : break;
6999 : }
7000 : default:;
7001 : }
7002 : break;
7003 : }
7004 : default:;
7005 : }
7006 : break;
7007 : }
7008 658 : case MAX_EXPR:
7009 658 : {
7010 658 : tree _q20 = TREE_OPERAND (_p0, 0);
7011 658 : tree _q21 = TREE_OPERAND (_p0, 1);
7012 658 : switch (TREE_CODE (_q21))
7013 : {
7014 417 : case INTEGER_CST:
7015 417 : {
7016 417 : switch (TREE_CODE (_p1))
7017 : {
7018 42 : case INTEGER_CST:
7019 42 : {
7020 42 : {
7021 42 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7022 42 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, EQ_EXPR);
7023 42 : if (res) return res;
7024 : }
7025 0 : break;
7026 : }
7027 : default:;
7028 : }
7029 : break;
7030 : }
7031 616 : default:;
7032 : }
7033 616 : if (integer_zerop (_p1))
7034 : {
7035 11 : {
7036 11 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7037 11 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, EQ_EXPR);
7038 11 : if (res) return res;
7039 : }
7040 : }
7041 : break;
7042 : }
7043 815820 : case BIT_AND_EXPR:
7044 815820 : {
7045 815820 : tree _q20 = TREE_OPERAND (_p0, 0);
7046 815820 : tree _q21 = TREE_OPERAND (_p0, 1);
7047 815820 : switch (TREE_CODE (_q20))
7048 : {
7049 777 : case LSHIFT_EXPR:
7050 777 : {
7051 777 : tree _q30 = TREE_OPERAND (_q20, 0);
7052 777 : tree _q31 = TREE_OPERAND (_q20, 1);
7053 777 : if (integer_pow2p (_q30))
7054 : {
7055 769 : if (integer_pow2p (_q21))
7056 : {
7057 1 : if (integer_zerop (_p1))
7058 : {
7059 1 : {
7060 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7061 1 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7062 1 : if (res) return res;
7063 : }
7064 : }
7065 : }
7066 : }
7067 776 : switch (TREE_CODE (_q31))
7068 : {
7069 0 : case INTEGER_CST:
7070 0 : {
7071 0 : switch (TREE_CODE (_q21))
7072 : {
7073 0 : case INTEGER_CST:
7074 0 : {
7075 0 : switch (TREE_CODE (_p1))
7076 : {
7077 0 : case INTEGER_CST:
7078 0 : {
7079 0 : {
7080 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7081 0 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, EQ_EXPR);
7082 0 : if (res) return res;
7083 : }
7084 0 : break;
7085 : }
7086 : default:;
7087 : }
7088 : break;
7089 : }
7090 : default:;
7091 : }
7092 : break;
7093 : }
7094 776 : default:;
7095 : }
7096 776 : if (integer_onep (_q30))
7097 : {
7098 768 : if (integer_pow2p (_q21))
7099 : {
7100 0 : if (integer_zerop (_p1))
7101 : {
7102 0 : {
7103 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
7104 0 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7105 0 : if (res) return res;
7106 : }
7107 : }
7108 : }
7109 : }
7110 : break;
7111 : }
7112 2836 : case RSHIFT_EXPR:
7113 2836 : {
7114 2836 : tree _q30 = TREE_OPERAND (_q20, 0);
7115 2836 : tree _q31 = TREE_OPERAND (_q20, 1);
7116 2836 : if (integer_pow2p (_q30))
7117 : {
7118 1 : if (integer_pow2p (_q21))
7119 : {
7120 1 : if (integer_zerop (_p1))
7121 : {
7122 1 : {
7123 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7124 1 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7125 1 : if (res) return res;
7126 : }
7127 : }
7128 : }
7129 : }
7130 2835 : switch (TREE_CODE (_q31))
7131 : {
7132 472 : case INTEGER_CST:
7133 472 : {
7134 472 : switch (TREE_CODE (_q21))
7135 : {
7136 472 : case INTEGER_CST:
7137 472 : {
7138 472 : switch (TREE_CODE (_p1))
7139 : {
7140 472 : case INTEGER_CST:
7141 472 : {
7142 472 : {
7143 472 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7144 472 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, EQ_EXPR);
7145 472 : if (res) return res;
7146 : }
7147 0 : break;
7148 : }
7149 : default:;
7150 : }
7151 : break;
7152 : }
7153 : default:;
7154 : }
7155 : break;
7156 : }
7157 : default:;
7158 : }
7159 : break;
7160 : }
7161 815346 : default:;
7162 : }
7163 815346 : {
7164 815346 : tree _q20_pops[1];
7165 815346 : if (tree_nop_convert (_q20, _q20_pops))
7166 : {
7167 20829 : tree _q30 = _q20_pops[0];
7168 20829 : switch (TREE_CODE (_q30))
7169 : {
7170 0 : case LSHIFT_EXPR:
7171 0 : {
7172 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7173 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7174 0 : if (integer_onep (_q40))
7175 : {
7176 0 : if (integer_pow2p (_q21))
7177 : {
7178 0 : if (integer_zerop (_p1))
7179 : {
7180 0 : {
7181 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
7182 0 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7183 0 : if (res) return res;
7184 : }
7185 : }
7186 : }
7187 : }
7188 : break;
7189 : }
7190 : default:;
7191 : }
7192 : }
7193 : }
7194 815346 : break;
7195 : }
7196 1726 : case LSHIFT_EXPR:
7197 1726 : {
7198 1726 : tree _q20 = TREE_OPERAND (_p0, 0);
7199 1726 : tree _q21 = TREE_OPERAND (_p0, 1);
7200 1726 : switch (TREE_CODE (_q20))
7201 : {
7202 316 : case INTEGER_CST:
7203 316 : {
7204 316 : switch (TREE_CODE (_p1))
7205 : {
7206 20 : case INTEGER_CST:
7207 20 : {
7208 20 : {
7209 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7210 20 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR);
7211 20 : if (res) return res;
7212 : }
7213 3 : break;
7214 : }
7215 : default:;
7216 : }
7217 : break;
7218 : }
7219 : default:;
7220 : }
7221 : break;
7222 : }
7223 0 : case LROTATE_EXPR:
7224 0 : {
7225 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7226 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7227 0 : switch (TREE_CODE (_p1))
7228 : {
7229 0 : case LROTATE_EXPR:
7230 0 : {
7231 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7232 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7233 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7234 : {
7235 0 : {
7236 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7237 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7238 0 : if (res) return res;
7239 : }
7240 : }
7241 : break;
7242 : }
7243 0 : default:;
7244 : }
7245 0 : switch (TREE_CODE (_q21))
7246 : {
7247 0 : case INTEGER_CST:
7248 0 : {
7249 0 : switch (TREE_CODE (_p1))
7250 : {
7251 0 : case INTEGER_CST:
7252 0 : {
7253 0 : {
7254 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7255 0 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7256 0 : if (res) return res;
7257 : }
7258 0 : break;
7259 : }
7260 : default:;
7261 : }
7262 : break;
7263 : }
7264 0 : default:;
7265 : }
7266 0 : switch (TREE_CODE (_p1))
7267 : {
7268 0 : case INTEGER_CST:
7269 0 : {
7270 0 : {
7271 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7272 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7273 0 : if (res) return res;
7274 : }
7275 0 : break;
7276 : }
7277 : default:;
7278 : }
7279 : break;
7280 : }
7281 42 : case RROTATE_EXPR:
7282 42 : {
7283 42 : tree _q20 = TREE_OPERAND (_p0, 0);
7284 42 : tree _q21 = TREE_OPERAND (_p0, 1);
7285 42 : switch (TREE_CODE (_p1))
7286 : {
7287 0 : case RROTATE_EXPR:
7288 0 : {
7289 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7290 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7291 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7292 : {
7293 0 : {
7294 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7295 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7296 0 : if (res) return res;
7297 : }
7298 : }
7299 : break;
7300 : }
7301 42 : default:;
7302 : }
7303 42 : switch (TREE_CODE (_q21))
7304 : {
7305 42 : case INTEGER_CST:
7306 42 : {
7307 42 : 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_243 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7314 0 : if (res) return res;
7315 : }
7316 0 : break;
7317 : }
7318 : default:;
7319 : }
7320 : break;
7321 : }
7322 42 : default:;
7323 : }
7324 42 : switch (TREE_CODE (_p1))
7325 : {
7326 0 : case INTEGER_CST:
7327 0 : {
7328 0 : {
7329 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7330 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7331 0 : if (res) return res;
7332 : }
7333 0 : break;
7334 : }
7335 : default:;
7336 : }
7337 : break;
7338 : }
7339 65443 : case MULT_EXPR:
7340 65443 : {
7341 65443 : tree _q20 = TREE_OPERAND (_p0, 0);
7342 65443 : tree _q21 = TREE_OPERAND (_p0, 1);
7343 65443 : switch (TREE_CODE (_q20))
7344 : {
7345 66 : case TRUNC_DIV_EXPR:
7346 66 : {
7347 66 : tree _q30 = TREE_OPERAND (_q20, 0);
7348 66 : tree _q31 = TREE_OPERAND (_q20, 1);
7349 66 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7350 : {
7351 47 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7352 : {
7353 47 : {
7354 47 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7355 47 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures);
7356 47 : if (res) return res;
7357 : }
7358 : }
7359 : }
7360 : break;
7361 : }
7362 65396 : default:;
7363 : }
7364 65396 : switch (TREE_CODE (_q21))
7365 : {
7366 0 : case TRUNC_DIV_EXPR:
7367 0 : {
7368 0 : tree _q40 = TREE_OPERAND (_q21, 0);
7369 0 : tree _q41 = TREE_OPERAND (_q21, 1);
7370 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7371 : {
7372 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7373 : {
7374 0 : {
7375 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
7376 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures);
7377 0 : if (res) return res;
7378 : }
7379 : }
7380 : }
7381 : break;
7382 : }
7383 : default:;
7384 : }
7385 : break;
7386 : }
7387 26717419 : default:;
7388 : }
7389 26717419 : switch (TREE_CODE (_p1))
7390 : {
7391 14038 : case MULT_EXPR:
7392 14038 : {
7393 14038 : tree _q30 = TREE_OPERAND (_p1, 0);
7394 14038 : tree _q31 = TREE_OPERAND (_p1, 1);
7395 14038 : switch (TREE_CODE (_q30))
7396 : {
7397 0 : case TRUNC_DIV_EXPR:
7398 0 : {
7399 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7400 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7401 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7402 : {
7403 0 : if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
7404 : {
7405 0 : {
7406 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
7407 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures);
7408 0 : if (res) return res;
7409 : }
7410 : }
7411 : }
7412 : break;
7413 : }
7414 14038 : default:;
7415 : }
7416 14038 : switch (TREE_CODE (_q31))
7417 : {
7418 0 : case TRUNC_DIV_EXPR:
7419 0 : {
7420 0 : tree _q50 = TREE_OPERAND (_q31, 0);
7421 0 : tree _q51 = TREE_OPERAND (_q31, 1);
7422 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7423 : {
7424 0 : if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
7425 : {
7426 0 : {
7427 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
7428 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures);
7429 0 : if (res) return res;
7430 : }
7431 : }
7432 : }
7433 : break;
7434 : }
7435 : default:;
7436 : }
7437 : break;
7438 : }
7439 26717419 : default:;
7440 : }
7441 26717419 : switch (TREE_CODE (_p0))
7442 : {
7443 607 : case VEC_COND_EXPR:
7444 607 : {
7445 607 : tree _q20 = TREE_OPERAND (_p0, 0);
7446 607 : tree _q21 = TREE_OPERAND (_p0, 1);
7447 607 : tree _q22 = TREE_OPERAND (_p0, 2);
7448 607 : switch (TREE_CODE (_p1))
7449 : {
7450 107 : case VEC_COND_EXPR:
7451 107 : {
7452 107 : tree _q60 = TREE_OPERAND (_p1, 0);
7453 107 : tree _q61 = TREE_OPERAND (_p1, 1);
7454 107 : tree _q62 = TREE_OPERAND (_p1, 2);
7455 107 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7456 : {
7457 60 : {
7458 60 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7459 60 : if (VECTOR_TYPE_P (type)
7460 60 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7461 60 : || types_match (type, TREE_TYPE (captures[2]))
7462 60 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7463 : || (optimize_vectors_before_lowering_p ()
7464 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7465 : )
7466 : {
7467 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1506;
7468 60 : {
7469 60 : tree res_op0;
7470 60 : res_op0 = captures[1];
7471 60 : tree res_op1;
7472 60 : {
7473 60 : tree _o1[2], _r1;
7474 60 : _o1[0] = captures[2];
7475 60 : _o1[1] = captures[5];
7476 60 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7477 60 : if (EXPR_P (_r1))
7478 60 : goto next_after_fail1506;
7479 0 : res_op1 = _r1;
7480 : }
7481 0 : tree res_op2;
7482 0 : {
7483 0 : tree _o1[2], _r1;
7484 0 : _o1[0] = captures[3];
7485 0 : _o1[1] = captures[6];
7486 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7487 0 : if (EXPR_P (_r1))
7488 0 : goto next_after_fail1506;
7489 0 : res_op2 = _r1;
7490 : }
7491 0 : tree _r;
7492 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7493 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
7494 0 : return _r;
7495 : }
7496 60 : next_after_fail1506:;
7497 : }
7498 : }
7499 : }
7500 : break;
7501 : }
7502 607 : default:;
7503 : }
7504 607 : {
7505 607 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7506 607 : if (VECTOR_TYPE_P (type)
7507 607 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7508 607 : || types_match (type, TREE_TYPE (captures[2]))
7509 607 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7510 : || (optimize_vectors_before_lowering_p ()
7511 79 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7512 : )
7513 : {
7514 607 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1507;
7515 607 : {
7516 607 : if (! tree_invariant_p (captures[4])) goto next_after_fail1507;
7517 86 : tree res_op0;
7518 86 : res_op0 = captures[1];
7519 86 : tree res_op1;
7520 86 : {
7521 86 : tree _o1[2], _r1;
7522 86 : _o1[0] = captures[2];
7523 86 : _o1[1] = unshare_expr (captures[4]);
7524 86 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7525 86 : if (EXPR_P (_r1))
7526 48 : goto next_after_fail1507;
7527 38 : res_op1 = _r1;
7528 : }
7529 38 : tree res_op2;
7530 38 : {
7531 38 : tree _o1[2], _r1;
7532 38 : _o1[0] = captures[3];
7533 38 : _o1[1] = captures[4];
7534 38 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7535 38 : if (EXPR_P (_r1))
7536 17 : goto next_after_fail1507;
7537 21 : res_op2 = _r1;
7538 : }
7539 21 : tree _r;
7540 21 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7541 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
7542 21 : return _r;
7543 : }
7544 586 : next_after_fail1507:;
7545 : }
7546 : }
7547 586 : break;
7548 : }
7549 1926573 : case CALL_EXPR:
7550 1926573 : switch (get_call_combined_fn (_p0))
7551 : {
7552 1 : case CFN_BUILT_IN_BITREVERSE128:
7553 1 : if (call_expr_nargs (_p0) == 1)
7554 : {
7555 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7556 1 : switch (TREE_CODE (_p1))
7557 : {
7558 1 : case INTEGER_CST:
7559 1 : {
7560 1 : {
7561 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7562 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
7563 1 : if (res) return res;
7564 : }
7565 1 : break;
7566 : }
7567 0 : case CALL_EXPR:
7568 0 : switch (get_call_combined_fn (_p1))
7569 : {
7570 0 : case CFN_BUILT_IN_BITREVERSE128:
7571 0 : if (call_expr_nargs (_p1) == 1)
7572 : {
7573 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7574 0 : {
7575 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7576 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
7577 0 : if (res) return res;
7578 : }
7579 : }
7580 : break;
7581 : default:;
7582 : }
7583 : break;
7584 : default:;
7585 : }
7586 : }
7587 : break;
7588 1 : case CFN_BUILT_IN_BITREVERSE16:
7589 1 : if (call_expr_nargs (_p0) == 1)
7590 : {
7591 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7592 1 : switch (TREE_CODE (_p1))
7593 : {
7594 1 : case INTEGER_CST:
7595 1 : {
7596 1 : {
7597 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7598 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
7599 1 : if (res) return res;
7600 : }
7601 1 : break;
7602 : }
7603 0 : case CALL_EXPR:
7604 0 : switch (get_call_combined_fn (_p1))
7605 : {
7606 0 : case CFN_BUILT_IN_BITREVERSE16:
7607 0 : if (call_expr_nargs (_p1) == 1)
7608 : {
7609 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7610 0 : {
7611 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7612 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
7613 0 : if (res) return res;
7614 : }
7615 : }
7616 : break;
7617 : default:;
7618 : }
7619 : break;
7620 : default:;
7621 : }
7622 : }
7623 : break;
7624 1 : case CFN_BUILT_IN_BITREVERSE32:
7625 1 : if (call_expr_nargs (_p0) == 1)
7626 : {
7627 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7628 1 : switch (TREE_CODE (_p1))
7629 : {
7630 1 : case INTEGER_CST:
7631 1 : {
7632 1 : {
7633 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7634 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
7635 1 : if (res) return res;
7636 : }
7637 1 : break;
7638 : }
7639 0 : case CALL_EXPR:
7640 0 : switch (get_call_combined_fn (_p1))
7641 : {
7642 0 : case CFN_BUILT_IN_BITREVERSE32:
7643 0 : if (call_expr_nargs (_p1) == 1)
7644 : {
7645 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7646 0 : {
7647 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7648 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
7649 0 : if (res) return res;
7650 : }
7651 : }
7652 : break;
7653 : default:;
7654 : }
7655 : break;
7656 : default:;
7657 : }
7658 : }
7659 : break;
7660 1 : case CFN_BUILT_IN_BITREVERSE64:
7661 1 : if (call_expr_nargs (_p0) == 1)
7662 : {
7663 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7664 1 : switch (TREE_CODE (_p1))
7665 : {
7666 1 : case INTEGER_CST:
7667 1 : {
7668 1 : {
7669 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7670 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
7671 1 : if (res) return res;
7672 : }
7673 1 : break;
7674 : }
7675 0 : case CALL_EXPR:
7676 0 : switch (get_call_combined_fn (_p1))
7677 : {
7678 0 : case CFN_BUILT_IN_BITREVERSE64:
7679 0 : if (call_expr_nargs (_p1) == 1)
7680 : {
7681 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7682 0 : {
7683 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7684 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
7685 0 : if (res) return res;
7686 : }
7687 : }
7688 : break;
7689 : default:;
7690 : }
7691 : break;
7692 : default:;
7693 : }
7694 : }
7695 : break;
7696 0 : case CFN_BITREVERSE:
7697 0 : if (call_expr_nargs (_p0) == 1)
7698 : {
7699 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7700 0 : switch (TREE_CODE (_p1))
7701 : {
7702 0 : case INTEGER_CST:
7703 0 : {
7704 0 : {
7705 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7706 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
7707 0 : if (res) return res;
7708 : }
7709 0 : break;
7710 : }
7711 0 : case CALL_EXPR:
7712 0 : switch (get_call_combined_fn (_p1))
7713 : {
7714 0 : case CFN_BITREVERSE:
7715 0 : if (call_expr_nargs (_p1) == 1)
7716 : {
7717 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7718 0 : {
7719 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7720 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
7721 0 : if (res) return res;
7722 : }
7723 : }
7724 : break;
7725 : default:;
7726 : }
7727 : break;
7728 : default:;
7729 : }
7730 : }
7731 : break;
7732 0 : case CFN_BSWAP:
7733 0 : if (call_expr_nargs (_p0) == 1)
7734 : {
7735 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7736 0 : switch (TREE_CODE (_p1))
7737 : {
7738 0 : case INTEGER_CST:
7739 0 : {
7740 0 : {
7741 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7742 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
7743 0 : if (res) return res;
7744 : }
7745 0 : break;
7746 : }
7747 0 : case CALL_EXPR:
7748 0 : switch (get_call_combined_fn (_p1))
7749 : {
7750 0 : case CFN_BSWAP:
7751 0 : if (call_expr_nargs (_p1) == 1)
7752 : {
7753 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7754 0 : {
7755 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7756 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
7757 0 : if (res) return res;
7758 : }
7759 : }
7760 : break;
7761 : default:;
7762 : }
7763 : break;
7764 : default:;
7765 : }
7766 : }
7767 : break;
7768 0 : case CFN_BUILT_IN_BSWAP128:
7769 0 : if (call_expr_nargs (_p0) == 1)
7770 : {
7771 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7772 0 : switch (TREE_CODE (_p1))
7773 : {
7774 0 : case INTEGER_CST:
7775 0 : {
7776 0 : {
7777 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7778 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7779 0 : if (res) return res;
7780 : }
7781 0 : break;
7782 : }
7783 0 : case CALL_EXPR:
7784 0 : switch (get_call_combined_fn (_p1))
7785 : {
7786 0 : case CFN_BUILT_IN_BSWAP128:
7787 0 : if (call_expr_nargs (_p1) == 1)
7788 : {
7789 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7790 0 : {
7791 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7792 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7793 0 : if (res) return res;
7794 : }
7795 : }
7796 : break;
7797 : default:;
7798 : }
7799 : break;
7800 : default:;
7801 : }
7802 : }
7803 : break;
7804 1 : case CFN_BUILT_IN_BITREVERSE8:
7805 1 : if (call_expr_nargs (_p0) == 1)
7806 : {
7807 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7808 1 : switch (TREE_CODE (_p1))
7809 : {
7810 1 : case INTEGER_CST:
7811 1 : {
7812 1 : {
7813 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7814 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
7815 1 : if (res) return res;
7816 : }
7817 1 : break;
7818 : }
7819 0 : case CALL_EXPR:
7820 0 : switch (get_call_combined_fn (_p1))
7821 : {
7822 0 : case CFN_BUILT_IN_BITREVERSE8:
7823 0 : if (call_expr_nargs (_p1) == 1)
7824 : {
7825 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7826 0 : {
7827 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7828 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
7829 0 : if (res) return res;
7830 : }
7831 : }
7832 : break;
7833 : default:;
7834 : }
7835 : break;
7836 : default:;
7837 : }
7838 : }
7839 : break;
7840 2 : case CFN_BUILT_IN_BSWAP16:
7841 2 : if (call_expr_nargs (_p0) == 1)
7842 : {
7843 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7844 2 : switch (TREE_CODE (_p1))
7845 : {
7846 1 : case INTEGER_CST:
7847 1 : {
7848 1 : {
7849 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7850 1 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7851 1 : if (res) return res;
7852 : }
7853 1 : break;
7854 : }
7855 1 : case CALL_EXPR:
7856 1 : switch (get_call_combined_fn (_p1))
7857 : {
7858 1 : case CFN_BUILT_IN_BSWAP16:
7859 1 : if (call_expr_nargs (_p1) == 1)
7860 : {
7861 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7862 1 : {
7863 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7864 1 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7865 1 : if (res) return res;
7866 : }
7867 : }
7868 : break;
7869 : default:;
7870 : }
7871 : break;
7872 : default:;
7873 : }
7874 : }
7875 : break;
7876 6 : case CFN_BUILT_IN_BSWAP32:
7877 6 : if (call_expr_nargs (_p0) == 1)
7878 : {
7879 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7880 6 : switch (TREE_CODE (_p1))
7881 : {
7882 3 : case INTEGER_CST:
7883 3 : {
7884 3 : {
7885 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7886 3 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7887 3 : if (res) return res;
7888 : }
7889 3 : break;
7890 : }
7891 3 : case CALL_EXPR:
7892 3 : switch (get_call_combined_fn (_p1))
7893 : {
7894 3 : case CFN_BUILT_IN_BSWAP32:
7895 3 : if (call_expr_nargs (_p1) == 1)
7896 : {
7897 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7898 3 : {
7899 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7900 3 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7901 3 : if (res) return res;
7902 : }
7903 : }
7904 : break;
7905 : default:;
7906 : }
7907 : break;
7908 : default:;
7909 : }
7910 : }
7911 : break;
7912 6 : case CFN_BUILT_IN_BSWAP64:
7913 6 : if (call_expr_nargs (_p0) == 1)
7914 : {
7915 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7916 6 : switch (TREE_CODE (_p1))
7917 : {
7918 3 : case INTEGER_CST:
7919 3 : {
7920 3 : {
7921 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7922 3 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7923 3 : if (res) return res;
7924 : }
7925 3 : break;
7926 : }
7927 3 : case CALL_EXPR:
7928 3 : switch (get_call_combined_fn (_p1))
7929 : {
7930 3 : case CFN_BUILT_IN_BSWAP64:
7931 3 : if (call_expr_nargs (_p1) == 1)
7932 : {
7933 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7934 3 : {
7935 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7936 3 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7937 3 : if (res) return res;
7938 : }
7939 : }
7940 : break;
7941 : default:;
7942 : }
7943 : break;
7944 : default:;
7945 : }
7946 : }
7947 : break;
7948 : default:;
7949 : }
7950 : break;
7951 26717391 : default:;
7952 : }
7953 26717391 : switch (TREE_CODE (_p1))
7954 : {
7955 122 : case VEC_COND_EXPR:
7956 122 : {
7957 122 : tree _q30 = TREE_OPERAND (_p1, 0);
7958 122 : tree _q31 = TREE_OPERAND (_p1, 1);
7959 122 : tree _q32 = TREE_OPERAND (_p1, 2);
7960 122 : {
7961 122 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7962 122 : if (VECTOR_TYPE_P (type)
7963 122 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7964 122 : || types_match (type, TREE_TYPE (captures[3]))
7965 122 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7966 : || (optimize_vectors_before_lowering_p ()
7967 21 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7968 : )
7969 : {
7970 122 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1508;
7971 122 : {
7972 122 : if (! tree_invariant_p (captures[0])) goto next_after_fail1508;
7973 0 : tree res_op0;
7974 0 : res_op0 = captures[2];
7975 0 : tree res_op1;
7976 0 : {
7977 0 : tree _o1[2], _r1;
7978 0 : _o1[0] = unshare_expr (captures[0]);
7979 0 : _o1[1] = captures[3];
7980 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7981 0 : if (EXPR_P (_r1))
7982 0 : goto next_after_fail1508;
7983 0 : res_op1 = _r1;
7984 : }
7985 0 : tree res_op2;
7986 0 : {
7987 0 : tree _o1[2], _r1;
7988 0 : _o1[0] = captures[0];
7989 0 : _o1[1] = captures[4];
7990 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7991 0 : if (EXPR_P (_r1))
7992 0 : goto next_after_fail1508;
7993 0 : res_op2 = _r1;
7994 : }
7995 0 : tree _r;
7996 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7997 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
7998 0 : return _r;
7999 : }
8000 122 : next_after_fail1508:;
8001 : }
8002 : }
8003 122 : break;
8004 : }
8005 26717391 : default:;
8006 : }
8007 26717391 : switch (TREE_CODE (_p0))
8008 : {
8009 41183 : case COND_EXPR:
8010 41183 : {
8011 41183 : tree _q20 = TREE_OPERAND (_p0, 0);
8012 41183 : tree _q21 = TREE_OPERAND (_p0, 1);
8013 41183 : tree _q22 = TREE_OPERAND (_p0, 2);
8014 41183 : switch (TREE_CODE (_p1))
8015 : {
8016 37 : case COND_EXPR:
8017 37 : {
8018 37 : tree _q60 = TREE_OPERAND (_p1, 0);
8019 37 : tree _q61 = TREE_OPERAND (_p1, 1);
8020 37 : tree _q62 = TREE_OPERAND (_p1, 2);
8021 37 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8022 : {
8023 3 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8024 : {
8025 3 : {
8026 3 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8027 3 : const enum tree_code eqne = EQ_EXPR;
8028 3 : if (!HONOR_NANS (captures[1])
8029 3 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8030 3 : && types_match (type, TREE_TYPE (captures[0]))
8031 3 : && expr_no_side_effects_p (captures[1])
8032 4 : && expr_no_side_effects_p (captures[2])
8033 : )
8034 : {
8035 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1509;
8036 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1509;
8037 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1509;
8038 1 : {
8039 1 : tree res_op0;
8040 1 : {
8041 1 : tree _o1[2], _r1;
8042 1 : {
8043 1 : tree _o2[2], _r2;
8044 1 : _o2[0] = captures[0];
8045 1 : _o2[1] = captures[3];
8046 1 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8047 1 : _o1[0] = _r2;
8048 : }
8049 1 : {
8050 1 : tree _o2[2], _r2;
8051 1 : _o2[0] = captures[1];
8052 1 : _o2[1] = captures[2];
8053 1 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8054 1 : _o1[1] = _r2;
8055 : }
8056 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8057 1 : res_op0 = _r1;
8058 : }
8059 1 : tree res_op1;
8060 1 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8061 1 : tree res_op2;
8062 1 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8063 1 : tree _r;
8064 1 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8065 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
8066 1 : return _r;
8067 : }
8068 2 : next_after_fail1509:;
8069 : }
8070 : }
8071 : }
8072 : }
8073 36 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8074 : {
8075 7 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8076 : {
8077 7 : {
8078 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8079 7 : const enum tree_code eqne = EQ_EXPR;
8080 7 : if (!HONOR_NANS (captures[1])
8081 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8082 0 : && types_match (type, TREE_TYPE (captures[0]))
8083 0 : && expr_no_side_effects_p (captures[1])
8084 7 : && expr_no_side_effects_p (captures[2])
8085 : )
8086 : {
8087 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1510;
8088 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1510;
8089 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1510;
8090 0 : {
8091 0 : tree res_op0;
8092 0 : {
8093 0 : tree _o1[2], _r1;
8094 0 : {
8095 0 : tree _o2[2], _r2;
8096 0 : _o2[0] = captures[0];
8097 0 : _o2[1] = captures[3];
8098 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8099 0 : _o1[0] = _r2;
8100 : }
8101 0 : {
8102 0 : tree _o2[2], _r2;
8103 0 : _o2[0] = captures[1];
8104 0 : _o2[1] = captures[2];
8105 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8106 0 : _o1[1] = _r2;
8107 : }
8108 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8109 0 : res_op0 = _r1;
8110 : }
8111 0 : tree res_op1;
8112 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8113 0 : tree res_op2;
8114 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8115 0 : tree _r;
8116 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
8118 0 : return _r;
8119 : }
8120 7 : next_after_fail1510:;
8121 : }
8122 : }
8123 : }
8124 : }
8125 : break;
8126 : }
8127 : default:;
8128 : }
8129 : break;
8130 : }
8131 586 : case VEC_COND_EXPR:
8132 586 : {
8133 586 : tree _q20 = TREE_OPERAND (_p0, 0);
8134 586 : tree _q21 = TREE_OPERAND (_p0, 1);
8135 586 : tree _q22 = TREE_OPERAND (_p0, 2);
8136 586 : switch (TREE_CODE (_p1))
8137 : {
8138 107 : case VEC_COND_EXPR:
8139 107 : {
8140 107 : tree _q60 = TREE_OPERAND (_p1, 0);
8141 107 : tree _q61 = TREE_OPERAND (_p1, 1);
8142 107 : tree _q62 = TREE_OPERAND (_p1, 2);
8143 107 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8144 : {
8145 66 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8146 : {
8147 66 : {
8148 66 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8149 66 : const enum tree_code eqne = EQ_EXPR;
8150 66 : if (!HONOR_NANS (captures[1])
8151 6 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8152 6 : && types_match (type, TREE_TYPE (captures[0]))
8153 6 : && expr_no_side_effects_p (captures[1])
8154 72 : && expr_no_side_effects_p (captures[2])
8155 : )
8156 : {
8157 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
8158 6 : {
8159 6 : tree res_op0;
8160 6 : {
8161 6 : tree _o1[2], _r1;
8162 6 : {
8163 6 : tree _o2[2], _r2;
8164 6 : _o2[0] = captures[0];
8165 6 : _o2[1] = captures[3];
8166 6 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8167 6 : _o1[0] = _r2;
8168 : }
8169 6 : {
8170 6 : tree _o2[2], _r2;
8171 6 : _o2[0] = captures[1];
8172 6 : _o2[1] = captures[2];
8173 6 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8174 6 : _o1[1] = _r2;
8175 : }
8176 6 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8177 6 : res_op0 = _r1;
8178 : }
8179 6 : tree res_op1;
8180 6 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8181 6 : tree res_op2;
8182 6 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8183 6 : tree _r;
8184 6 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8185 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
8186 6 : return _r;
8187 : }
8188 0 : next_after_fail1511:;
8189 : }
8190 : }
8191 : }
8192 : }
8193 101 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8194 : {
8195 37 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8196 : {
8197 37 : {
8198 37 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8199 37 : const enum tree_code eqne = EQ_EXPR;
8200 37 : if (!HONOR_NANS (captures[1])
8201 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8202 0 : && types_match (type, TREE_TYPE (captures[0]))
8203 0 : && expr_no_side_effects_p (captures[1])
8204 37 : && expr_no_side_effects_p (captures[2])
8205 : )
8206 : {
8207 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
8208 0 : {
8209 0 : tree res_op0;
8210 0 : {
8211 0 : tree _o1[2], _r1;
8212 0 : {
8213 0 : tree _o2[2], _r2;
8214 0 : _o2[0] = captures[0];
8215 0 : _o2[1] = captures[3];
8216 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8217 0 : _o1[0] = _r2;
8218 : }
8219 0 : {
8220 0 : tree _o2[2], _r2;
8221 0 : _o2[0] = captures[1];
8222 0 : _o2[1] = captures[2];
8223 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
8224 0 : _o1[1] = _r2;
8225 : }
8226 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8227 0 : res_op0 = _r1;
8228 : }
8229 0 : tree res_op1;
8230 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
8231 0 : tree res_op2;
8232 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
8233 0 : tree _r;
8234 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8235 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
8236 0 : return _r;
8237 : }
8238 0 : next_after_fail1512:;
8239 : }
8240 : }
8241 : }
8242 : }
8243 : break;
8244 : }
8245 : default:;
8246 : }
8247 : break;
8248 : }
8249 1130 : case LT_EXPR:
8250 1130 : {
8251 1130 : tree _q20 = TREE_OPERAND (_p0, 0);
8252 1130 : tree _q21 = TREE_OPERAND (_p0, 1);
8253 1130 : if (integer_truep (_p1))
8254 : {
8255 5 : {
8256 5 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8257 5 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8258 5 : if (res) return res;
8259 : }
8260 : }
8261 1130 : if (integer_zerop (_p1))
8262 : {
8263 414 : {
8264 414 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8265 414 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
8266 414 : if (res) return res;
8267 : }
8268 : }
8269 : break;
8270 : }
8271 1547 : case LE_EXPR:
8272 1547 : {
8273 1547 : tree _q20 = TREE_OPERAND (_p0, 0);
8274 1547 : tree _q21 = TREE_OPERAND (_p0, 1);
8275 1547 : if (integer_truep (_p1))
8276 : {
8277 0 : {
8278 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8279 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8280 0 : if (res) return res;
8281 : }
8282 : }
8283 1547 : if (integer_zerop (_p1))
8284 : {
8285 683 : {
8286 683 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8287 683 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
8288 683 : if (res) return res;
8289 : }
8290 : }
8291 : break;
8292 : }
8293 32145 : case EQ_EXPR:
8294 32145 : {
8295 32145 : tree _q20 = TREE_OPERAND (_p0, 0);
8296 32145 : tree _q21 = TREE_OPERAND (_p0, 1);
8297 32145 : if (integer_truep (_p1))
8298 : {
8299 48 : {
8300 48 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8301 48 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8302 48 : if (res) return res;
8303 : }
8304 : }
8305 32140 : if (integer_zerop (_p1))
8306 : {
8307 7584 : {
8308 7584 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8309 7584 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
8310 7584 : if (res) return res;
8311 : }
8312 : }
8313 : break;
8314 : }
8315 11930 : case NE_EXPR:
8316 11930 : {
8317 11930 : tree _q20 = TREE_OPERAND (_p0, 0);
8318 11930 : tree _q21 = TREE_OPERAND (_p0, 1);
8319 11930 : if (integer_truep (_p1))
8320 : {
8321 126 : {
8322 126 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8323 126 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8324 126 : if (res) return res;
8325 : }
8326 : }
8327 11810 : if (integer_zerop (_p1))
8328 : {
8329 9899 : {
8330 9899 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8331 9899 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
8332 9899 : if (res) return res;
8333 : }
8334 : }
8335 : break;
8336 : }
8337 6756 : case GE_EXPR:
8338 6756 : {
8339 6756 : tree _q20 = TREE_OPERAND (_p0, 0);
8340 6756 : tree _q21 = TREE_OPERAND (_p0, 1);
8341 6756 : if (integer_truep (_p1))
8342 : {
8343 0 : {
8344 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8345 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8346 0 : if (res) return res;
8347 : }
8348 : }
8349 6756 : if (integer_zerop (_p1))
8350 : {
8351 5640 : {
8352 5640 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8353 5640 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
8354 5640 : if (res) return res;
8355 : }
8356 : }
8357 : break;
8358 : }
8359 64891 : case GT_EXPR:
8360 64891 : {
8361 64891 : tree _q20 = TREE_OPERAND (_p0, 0);
8362 64891 : tree _q21 = TREE_OPERAND (_p0, 1);
8363 64891 : if (integer_truep (_p1))
8364 : {
8365 0 : {
8366 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8367 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8368 0 : if (res) return res;
8369 : }
8370 : }
8371 64891 : if (integer_zerop (_p1))
8372 : {
8373 445 : {
8374 445 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8375 445 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
8376 445 : if (res) return res;
8377 : }
8378 : }
8379 : break;
8380 : }
8381 1023 : case UNORDERED_EXPR:
8382 1023 : {
8383 1023 : tree _q20 = TREE_OPERAND (_p0, 0);
8384 1023 : tree _q21 = TREE_OPERAND (_p0, 1);
8385 1023 : if (integer_truep (_p1))
8386 : {
8387 0 : {
8388 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8389 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8390 0 : if (res) return res;
8391 : }
8392 : }
8393 1023 : if (integer_zerop (_p1))
8394 : {
8395 1017 : {
8396 1017 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8397 1017 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
8398 1017 : if (res) return res;
8399 : }
8400 : }
8401 : break;
8402 : }
8403 0 : case ORDERED_EXPR:
8404 0 : {
8405 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8406 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8407 0 : if (integer_truep (_p1))
8408 : {
8409 0 : {
8410 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8411 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8412 0 : if (res) return res;
8413 : }
8414 : }
8415 0 : if (integer_zerop (_p1))
8416 : {
8417 0 : {
8418 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8419 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
8420 0 : if (res) return res;
8421 : }
8422 : }
8423 : break;
8424 : }
8425 0 : case UNLT_EXPR:
8426 0 : {
8427 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8428 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8429 0 : if (integer_truep (_p1))
8430 : {
8431 0 : {
8432 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8433 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8434 0 : if (res) return res;
8435 : }
8436 : }
8437 0 : if (integer_zerop (_p1))
8438 : {
8439 0 : {
8440 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8441 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
8442 0 : if (res) return res;
8443 : }
8444 : }
8445 : break;
8446 : }
8447 0 : case UNLE_EXPR:
8448 0 : {
8449 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8450 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8451 0 : if (integer_truep (_p1))
8452 : {
8453 0 : {
8454 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8455 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8456 0 : if (res) return res;
8457 : }
8458 : }
8459 0 : if (integer_zerop (_p1))
8460 : {
8461 0 : {
8462 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8463 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
8464 0 : if (res) return res;
8465 : }
8466 : }
8467 : break;
8468 : }
8469 0 : case UNGT_EXPR:
8470 0 : {
8471 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8472 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8473 0 : if (integer_truep (_p1))
8474 : {
8475 0 : {
8476 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8477 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8478 0 : if (res) return res;
8479 : }
8480 : }
8481 0 : if (integer_zerop (_p1))
8482 : {
8483 0 : {
8484 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8485 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
8486 0 : if (res) return res;
8487 : }
8488 : }
8489 : break;
8490 : }
8491 0 : case UNGE_EXPR:
8492 0 : {
8493 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8494 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8495 0 : if (integer_truep (_p1))
8496 : {
8497 0 : {
8498 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8499 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8500 0 : if (res) return res;
8501 : }
8502 : }
8503 0 : if (integer_zerop (_p1))
8504 : {
8505 0 : {
8506 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8507 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
8508 0 : if (res) return res;
8509 : }
8510 : }
8511 : break;
8512 : }
8513 0 : case UNEQ_EXPR:
8514 0 : {
8515 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8516 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8517 0 : if (integer_truep (_p1))
8518 : {
8519 0 : {
8520 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8521 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8522 0 : if (res) return res;
8523 : }
8524 : }
8525 0 : if (integer_zerop (_p1))
8526 : {
8527 0 : {
8528 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8529 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8530 0 : if (res) return res;
8531 : }
8532 : }
8533 : break;
8534 : }
8535 0 : case LTGT_EXPR:
8536 0 : {
8537 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8538 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8539 0 : if (integer_truep (_p1))
8540 : {
8541 0 : {
8542 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8543 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8544 0 : if (res) return res;
8545 : }
8546 : }
8547 0 : if (integer_zerop (_p1))
8548 : {
8549 0 : {
8550 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8551 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8552 0 : if (res) return res;
8553 : }
8554 : }
8555 : break;
8556 : }
8557 152211 : case MINUS_EXPR:
8558 152211 : {
8559 152211 : tree _q20 = TREE_OPERAND (_p0, 0);
8560 152211 : tree _q21 = TREE_OPERAND (_p0, 1);
8561 152211 : if (integer_zerop (_p1))
8562 : {
8563 56536 : {
8564 56536 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8565 56536 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR);
8566 56536 : if (res) return res;
8567 : }
8568 : }
8569 : break;
8570 : }
8571 31334 : case POINTER_DIFF_EXPR:
8572 31334 : {
8573 31334 : tree _q20 = TREE_OPERAND (_p0, 0);
8574 31334 : tree _q21 = TREE_OPERAND (_p0, 1);
8575 31334 : if (integer_zerop (_p1))
8576 : {
8577 1420 : {
8578 1420 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8579 1420 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, EQ_EXPR);
8580 1420 : if (res) return res;
8581 : }
8582 : }
8583 : break;
8584 : }
8585 65396 : case MULT_EXPR:
8586 65396 : {
8587 65396 : tree _q20 = TREE_OPERAND (_p0, 0);
8588 65396 : tree _q21 = TREE_OPERAND (_p0, 1);
8589 65396 : switch (TREE_CODE (_q21))
8590 : {
8591 57626 : case INTEGER_CST:
8592 57626 : {
8593 57626 : switch (TREE_CODE (_p1))
8594 : {
8595 9601 : case INTEGER_CST:
8596 9601 : {
8597 9601 : {
8598 9601 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8599 9601 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR);
8600 9601 : if (res) return res;
8601 : }
8602 8647 : break;
8603 : }
8604 56672 : default:;
8605 : }
8606 56672 : if (integer_zerop (_p1))
8607 : {
8608 4203 : {
8609 4203 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8610 4203 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8611 4203 : if (res) return res;
8612 : }
8613 : }
8614 : break;
8615 : }
8616 : default:;
8617 : }
8618 : break;
8619 : }
8620 26633571 : default:;
8621 : }
8622 26633571 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8623 : {
8624 99478 : {
8625 99478 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8626 99478 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, EQ_EXPR);
8627 99478 : if (res) return res;
8628 : }
8629 : }
8630 26539032 : switch (TREE_CODE (_p0))
8631 : {
8632 4992443 : CASE_CONVERT:
8633 4992443 : {
8634 4992443 : tree _q20 = TREE_OPERAND (_p0, 0);
8635 4992443 : switch (TREE_CODE (_p1))
8636 : {
8637 1473642 : CASE_CONVERT:
8638 1473642 : {
8639 1473642 : tree _q40 = TREE_OPERAND (_p1, 0);
8640 1473642 : {
8641 1473642 : tree _q40_pops[1];
8642 1473642 : if (tree_maybe_bit_not (_q40, _q40_pops))
8643 : {
8644 0 : tree _q50 = _q40_pops[0];
8645 0 : {
8646 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
8647 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8648 0 : if (res) return res;
8649 : }
8650 : }
8651 : }
8652 1473642 : break;
8653 : }
8654 4992443 : default:;
8655 : }
8656 4992443 : {
8657 4992443 : tree _q20_pops[1];
8658 4992443 : if (tree_maybe_bit_not (_q20, _q20_pops))
8659 : {
8660 232 : tree _q30 = _q20_pops[0];
8661 232 : switch (TREE_CODE (_p1))
8662 : {
8663 74 : CASE_CONVERT:
8664 74 : {
8665 74 : tree _q50 = TREE_OPERAND (_p1, 0);
8666 74 : {
8667 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
8668 74 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8669 74 : if (res) return res;
8670 : }
8671 74 : break;
8672 : }
8673 : default:;
8674 : }
8675 : }
8676 : }
8677 4992443 : break;
8678 : }
8679 26539032 : default:;
8680 : }
8681 26539032 : {
8682 26539032 : tree _p1_pops[1];
8683 26539032 : if (tree_maybe_bit_not (_p1, _p1_pops))
8684 : {
8685 18883543 : tree _q30 = _p1_pops[0];
8686 18883543 : {
8687 18883543 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8688 18883543 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8689 18883543 : if (res) return res;
8690 : }
8691 : }
8692 : }
8693 26539030 : switch (TREE_CODE (_p0))
8694 : {
8695 403 : case BIT_NOT_EXPR:
8696 403 : {
8697 403 : tree _q20 = TREE_OPERAND (_p0, 0);
8698 403 : switch (TREE_CODE (_p1))
8699 : {
8700 1 : case BIT_NOT_EXPR:
8701 1 : {
8702 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8703 1 : {
8704 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8705 1 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
8706 1 : if (res) return res;
8707 : }
8708 0 : break;
8709 : }
8710 402 : default:;
8711 : }
8712 402 : {
8713 402 : tree _p1_pops[1];
8714 402 : if (tree_nop_convert (_p1, _p1_pops))
8715 : {
8716 3 : tree _q40 = _p1_pops[0];
8717 3 : switch (TREE_CODE (_q40))
8718 : {
8719 0 : case BIT_NOT_EXPR:
8720 0 : {
8721 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8722 0 : {
8723 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8724 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
8725 0 : if (res) return res;
8726 : }
8727 0 : break;
8728 : }
8729 : default:;
8730 : }
8731 : }
8732 : }
8733 402 : if (CONSTANT_CLASS_P (_p1))
8734 : {
8735 195 : {
8736 195 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8737 195 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8738 195 : if (res) return res;
8739 : }
8740 : }
8741 : break;
8742 : }
8743 26538834 : default:;
8744 : }
8745 26538834 : {
8746 26538834 : tree _p0_pops[1];
8747 26538834 : if (tree_maybe_bit_not (_p0, _p0_pops))
8748 : {
8749 94371 : tree _q20 = _p0_pops[0];
8750 94371 : {
8751 94371 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
8752 94371 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8753 94371 : if (res) return res;
8754 : }
8755 : }
8756 : }
8757 26538833 : {
8758 26538833 : tree _p0_pops[1];
8759 26538833 : if (tree_nop_convert (_p0, _p0_pops))
8760 : {
8761 2912399 : tree _q20 = _p0_pops[0];
8762 2912399 : switch (TREE_CODE (_q20))
8763 : {
8764 41 : case BIT_NOT_EXPR:
8765 41 : {
8766 41 : tree _q30 = TREE_OPERAND (_q20, 0);
8767 41 : switch (TREE_CODE (_p1))
8768 : {
8769 0 : case BIT_NOT_EXPR:
8770 0 : {
8771 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8772 0 : {
8773 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8774 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR);
8775 0 : if (res) return res;
8776 : }
8777 0 : break;
8778 : }
8779 41 : default:;
8780 : }
8781 41 : {
8782 41 : tree _p1_pops[1];
8783 41 : if (tree_nop_convert (_p1, _p1_pops))
8784 : {
8785 0 : tree _q50 = _p1_pops[0];
8786 0 : switch (TREE_CODE (_q50))
8787 : {
8788 0 : case BIT_NOT_EXPR:
8789 0 : {
8790 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8791 0 : {
8792 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8793 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR);
8794 0 : if (res) return res;
8795 : }
8796 0 : break;
8797 : }
8798 : default:;
8799 : }
8800 : }
8801 : }
8802 41 : if (CONSTANT_CLASS_P (_p1))
8803 : {
8804 41 : {
8805 41 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8806 41 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8807 41 : if (res) return res;
8808 : }
8809 : }
8810 : break;
8811 : }
8812 : default:;
8813 : }
8814 : }
8815 : }
8816 26538792 : switch (TREE_CODE (_p1))
8817 : {
8818 923788 : case REAL_CST:
8819 923788 : {
8820 923788 : {
8821 923788 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8822 923788 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, EQ_EXPR);
8823 923788 : if (res) return res;
8824 : }
8825 922786 : break;
8826 : }
8827 26537790 : default:;
8828 : }
8829 26537790 : switch (TREE_CODE (_p0))
8830 : {
8831 651578 : case PLUS_EXPR:
8832 651578 : {
8833 651578 : tree _q20 = TREE_OPERAND (_p0, 0);
8834 651578 : tree _q21 = TREE_OPERAND (_p0, 1);
8835 651578 : switch (TREE_CODE (_q21))
8836 : {
8837 575 : case REAL_CST:
8838 575 : {
8839 575 : switch (TREE_CODE (_p1))
8840 : {
8841 405 : case REAL_CST:
8842 405 : {
8843 405 : {
8844 405 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8845 405 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
8846 405 : if (res) return res;
8847 : }
8848 405 : break;
8849 : }
8850 : default:;
8851 : }
8852 : break;
8853 : }
8854 : default:;
8855 : }
8856 : break;
8857 : }
8858 95675 : case MINUS_EXPR:
8859 95675 : {
8860 95675 : tree _q20 = TREE_OPERAND (_p0, 0);
8861 95675 : tree _q21 = TREE_OPERAND (_p0, 1);
8862 95675 : switch (TREE_CODE (_q21))
8863 : {
8864 60 : case REAL_CST:
8865 60 : {
8866 60 : switch (TREE_CODE (_p1))
8867 : {
8868 60 : case REAL_CST:
8869 60 : {
8870 60 : {
8871 60 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8872 60 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
8873 60 : if (res) return res;
8874 : }
8875 60 : break;
8876 : }
8877 : default:;
8878 : }
8879 : break;
8880 : }
8881 95675 : default:;
8882 : }
8883 95675 : switch (TREE_CODE (_q20))
8884 : {
8885 274 : case REAL_CST:
8886 274 : {
8887 274 : switch (TREE_CODE (_p1))
8888 : {
8889 245 : case REAL_CST:
8890 245 : {
8891 245 : {
8892 245 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8893 245 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR);
8894 245 : if (res) return res;
8895 : }
8896 244 : break;
8897 : }
8898 : default:;
8899 : }
8900 : break;
8901 : }
8902 : default:;
8903 : }
8904 : break;
8905 : }
8906 2632 : case FLOAT_EXPR:
8907 2632 : {
8908 2632 : tree _q20 = TREE_OPERAND (_p0, 0);
8909 2632 : switch (TREE_CODE (_p1))
8910 : {
8911 1 : case FLOAT_EXPR:
8912 1 : {
8913 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8914 1 : {
8915 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8916 1 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8917 1 : if (res) return res;
8918 : }
8919 0 : break;
8920 : }
8921 180 : case REAL_CST:
8922 180 : {
8923 180 : {
8924 180 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8925 180 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8926 180 : if (res) return res;
8927 : }
8928 149 : break;
8929 : }
8930 : default:;
8931 : }
8932 : break;
8933 : }
8934 7010 : case EXACT_DIV_EXPR:
8935 7010 : {
8936 7010 : tree _q20 = TREE_OPERAND (_p0, 0);
8937 7010 : tree _q21 = TREE_OPERAND (_p0, 1);
8938 7010 : switch (TREE_CODE (_p1))
8939 : {
8940 33 : case INTEGER_CST:
8941 33 : {
8942 33 : {
8943 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8944 33 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
8945 33 : if (res) return res;
8946 : }
8947 0 : break;
8948 : }
8949 : default:;
8950 : }
8951 : break;
8952 : }
8953 1035 : case NEGATE_EXPR:
8954 1035 : {
8955 1035 : tree _q20 = TREE_OPERAND (_p0, 0);
8956 1035 : switch (TREE_CODE (_p1))
8957 : {
8958 1 : case NEGATE_EXPR:
8959 1 : {
8960 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8961 1 : {
8962 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8963 1 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8964 1 : if (res) return res;
8965 : }
8966 0 : break;
8967 : }
8968 1034 : default:;
8969 : }
8970 1034 : if (CONSTANT_CLASS_P (_p1))
8971 : {
8972 210 : {
8973 210 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8974 210 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8975 210 : if (res) return res;
8976 : }
8977 : }
8978 : break;
8979 : }
8980 1372 : case ABS_EXPR:
8981 1372 : {
8982 1372 : tree _q20 = TREE_OPERAND (_p0, 0);
8983 1372 : if (zerop (_p1))
8984 : {
8985 66 : {
8986 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8987 66 : const enum tree_code eqne = EQ_EXPR;
8988 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
8989 66 : {
8990 66 : tree res_op0;
8991 66 : res_op0 = captures[0];
8992 66 : tree res_op1;
8993 66 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8994 66 : tree _r;
8995 66 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8996 66 : if (TREE_SIDE_EFFECTS (captures[1]))
8997 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8998 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 987, __FILE__, __LINE__, true);
8999 66 : return _r;
9000 : }
9001 0 : next_after_fail1513:;
9002 : }
9003 : }
9004 : break;
9005 : }
9006 1 : case ABSU_EXPR:
9007 1 : {
9008 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9009 1 : if (zerop (_p1))
9010 : {
9011 0 : {
9012 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9013 0 : const enum tree_code eqne = EQ_EXPR;
9014 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
9015 0 : {
9016 0 : tree res_op0;
9017 0 : res_op0 = captures[0];
9018 0 : tree res_op1;
9019 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
9020 0 : tree _r;
9021 0 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
9022 0 : if (TREE_SIDE_EFFECTS (captures[1]))
9023 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
9024 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 987, __FILE__, __LINE__, true);
9025 0 : return _r;
9026 : }
9027 0 : next_after_fail1514:;
9028 : }
9029 : }
9030 : break;
9031 : }
9032 4992366 : CASE_CONVERT:
9033 4992366 : {
9034 4992366 : tree _q20 = TREE_OPERAND (_p0, 0);
9035 4992366 : switch (TREE_CODE (_p1))
9036 : {
9037 1473642 : CASE_CONVERT:
9038 1473642 : {
9039 1473642 : tree _q40 = TREE_OPERAND (_p1, 0);
9040 1473642 : {
9041 1473642 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9042 1473642 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
9043 1473642 : if (res) return res;
9044 : }
9045 836146 : break;
9046 : }
9047 4354870 : default:;
9048 : }
9049 4354870 : {
9050 4354870 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
9051 4354870 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9052 4354870 : if (res) return res;
9053 : }
9054 2283746 : switch (TREE_CODE (_q20))
9055 : {
9056 3 : case BIT_IOR_EXPR:
9057 3 : {
9058 3 : tree _q30 = TREE_OPERAND (_q20, 0);
9059 3 : tree _q31 = TREE_OPERAND (_q20, 1);
9060 3 : switch (TREE_CODE (_q31))
9061 : {
9062 0 : case INTEGER_CST:
9063 0 : {
9064 0 : switch (TREE_CODE (_p1))
9065 : {
9066 0 : case INTEGER_CST:
9067 0 : {
9068 0 : {
9069 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9070 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9071 0 : if (res) return res;
9072 : }
9073 0 : break;
9074 : }
9075 : default:;
9076 : }
9077 : break;
9078 : }
9079 : default:;
9080 : }
9081 : break;
9082 : }
9083 : default:;
9084 : }
9085 : break;
9086 : }
9087 8738715 : case SSA_NAME:
9088 8738715 : {
9089 8738715 : switch (TREE_CODE (_p1))
9090 : {
9091 754446 : case ADDR_EXPR:
9092 754446 : {
9093 754446 : {
9094 754446 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9095 754446 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9096 754446 : if (res) return res;
9097 : }
9098 754446 : break;
9099 : }
9100 : default:;
9101 : }
9102 : break;
9103 : }
9104 33494 : case BIT_IOR_EXPR:
9105 33494 : {
9106 33494 : tree _q20 = TREE_OPERAND (_p0, 0);
9107 33494 : tree _q21 = TREE_OPERAND (_p0, 1);
9108 33494 : switch (TREE_CODE (_q21))
9109 : {
9110 1507 : case INTEGER_CST:
9111 1507 : {
9112 1507 : switch (TREE_CODE (_p1))
9113 : {
9114 464 : case INTEGER_CST:
9115 464 : {
9116 464 : {
9117 464 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9118 464 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9119 464 : if (res) return res;
9120 : }
9121 464 : break;
9122 : }
9123 : default:;
9124 : }
9125 : break;
9126 : }
9127 : default:;
9128 : }
9129 : break;
9130 : }
9131 581 : case BIT_XOR_EXPR:
9132 581 : {
9133 581 : tree _q20 = TREE_OPERAND (_p0, 0);
9134 581 : tree _q21 = TREE_OPERAND (_p0, 1);
9135 581 : if (integer_zerop (_p1))
9136 : {
9137 163 : {
9138 163 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9139 163 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
9140 163 : if (res) return res;
9141 : }
9142 : }
9143 418 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9144 : {
9145 29 : {
9146 29 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9147 29 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9148 29 : if (res) return res;
9149 : }
9150 : }
9151 389 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9152 : {
9153 30 : {
9154 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9155 30 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9156 30 : if (res) return res;
9157 : }
9158 : }
9159 : break;
9160 : }
9161 1926563 : case CALL_EXPR:
9162 1926563 : switch (get_call_combined_fn (_p0))
9163 : {
9164 3 : case CFN_BUILT_IN_SQRTF:
9165 3 : if (call_expr_nargs (_p0) == 1)
9166 : {
9167 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9168 3 : switch (TREE_CODE (_p1))
9169 : {
9170 0 : case REAL_CST:
9171 0 : {
9172 0 : {
9173 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9174 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
9175 0 : if (res) return res;
9176 : }
9177 0 : break;
9178 : }
9179 3 : case CALL_EXPR:
9180 3 : switch (get_call_combined_fn (_p1))
9181 : {
9182 3 : case CFN_BUILT_IN_SQRTF:
9183 3 : if (call_expr_nargs (_p1) == 1)
9184 : {
9185 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9186 3 : {
9187 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9188 3 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
9189 3 : if (res) return res;
9190 : }
9191 : }
9192 : break;
9193 : default:;
9194 : }
9195 : break;
9196 : default:;
9197 : }
9198 : }
9199 : break;
9200 3 : case CFN_BUILT_IN_SQRTL:
9201 3 : if (call_expr_nargs (_p0) == 1)
9202 : {
9203 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9204 3 : switch (TREE_CODE (_p1))
9205 : {
9206 0 : case REAL_CST:
9207 0 : {
9208 0 : {
9209 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9210 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
9211 0 : if (res) return res;
9212 : }
9213 0 : break;
9214 : }
9215 3 : case CALL_EXPR:
9216 3 : switch (get_call_combined_fn (_p1))
9217 : {
9218 3 : case CFN_BUILT_IN_SQRTL:
9219 3 : if (call_expr_nargs (_p1) == 1)
9220 : {
9221 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9222 3 : {
9223 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9224 3 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
9225 3 : if (res) return res;
9226 : }
9227 : }
9228 : break;
9229 : default:;
9230 : }
9231 : break;
9232 : default:;
9233 : }
9234 : }
9235 : break;
9236 0 : case CFN_BUILT_IN_SQRT:
9237 0 : if (call_expr_nargs (_p0) == 1)
9238 : {
9239 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9240 0 : switch (TREE_CODE (_p1))
9241 : {
9242 0 : case REAL_CST:
9243 0 : {
9244 0 : {
9245 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9246 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
9247 0 : if (res) return res;
9248 : }
9249 0 : break;
9250 : }
9251 0 : case CALL_EXPR:
9252 0 : switch (get_call_combined_fn (_p1))
9253 : {
9254 0 : case CFN_BUILT_IN_SQRT:
9255 0 : if (call_expr_nargs (_p1) == 1)
9256 : {
9257 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9258 0 : {
9259 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9260 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
9261 0 : if (res) return res;
9262 : }
9263 : }
9264 : break;
9265 : default:;
9266 : }
9267 : break;
9268 : default:;
9269 : }
9270 : }
9271 : break;
9272 0 : case CFN_SQRT:
9273 0 : if (call_expr_nargs (_p0) == 1)
9274 : {
9275 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9276 0 : switch (TREE_CODE (_p1))
9277 : {
9278 0 : case REAL_CST:
9279 0 : {
9280 0 : {
9281 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9282 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
9283 0 : if (res) return res;
9284 : }
9285 0 : break;
9286 : }
9287 0 : case CALL_EXPR:
9288 0 : switch (get_call_combined_fn (_p1))
9289 : {
9290 0 : case CFN_SQRT:
9291 0 : if (call_expr_nargs (_p1) == 1)
9292 : {
9293 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9294 0 : {
9295 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9296 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
9297 0 : if (res) return res;
9298 : }
9299 : }
9300 : break;
9301 : default:;
9302 : }
9303 : break;
9304 : default:;
9305 : }
9306 : }
9307 : break;
9308 : default:;
9309 : }
9310 : break;
9311 23828615 : default:;
9312 : }
9313 23828615 : switch (TREE_CODE (_p1))
9314 : {
9315 22 : case BIT_XOR_EXPR:
9316 22 : {
9317 22 : tree _q30 = TREE_OPERAND (_p1, 0);
9318 22 : tree _q31 = TREE_OPERAND (_p1, 1);
9319 22 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9320 : {
9321 0 : {
9322 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9323 0 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9324 0 : if (res) return res;
9325 : }
9326 : }
9327 22 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9328 : {
9329 0 : {
9330 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9331 0 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9332 0 : if (res) return res;
9333 : }
9334 : }
9335 : break;
9336 : }
9337 23828615 : default:;
9338 : }
9339 23828615 : switch (TREE_CODE (_p0))
9340 : {
9341 815346 : case BIT_AND_EXPR:
9342 815346 : {
9343 815346 : tree _q20 = TREE_OPERAND (_p0, 0);
9344 815346 : tree _q21 = TREE_OPERAND (_p0, 1);
9345 815346 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9346 : {
9347 137 : {
9348 137 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9349 137 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9350 137 : if (res) return res;
9351 : }
9352 : }
9353 815345 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9354 : {
9355 140634 : {
9356 140634 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9357 140634 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9358 140634 : if (res) return res;
9359 : }
9360 : }
9361 : break;
9362 : }
9363 23828614 : default:;
9364 : }
9365 23828614 : switch (TREE_CODE (_p1))
9366 : {
9367 24037 : case BIT_AND_EXPR:
9368 24037 : {
9369 24037 : tree _q30 = TREE_OPERAND (_p1, 0);
9370 24037 : tree _q31 = TREE_OPERAND (_p1, 1);
9371 24037 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9372 : {
9373 0 : {
9374 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
9375 0 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9376 0 : if (res) return res;
9377 : }
9378 : }
9379 24037 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9380 : {
9381 0 : {
9382 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9383 0 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
9384 0 : if (res) return res;
9385 : }
9386 : }
9387 : break;
9388 : }
9389 23828614 : default:;
9390 : }
9391 23828614 : switch (TREE_CODE (_p0))
9392 : {
9393 2283746 : CASE_CONVERT:
9394 2283746 : {
9395 2283746 : tree _q20 = TREE_OPERAND (_p0, 0);
9396 2283746 : switch (TREE_CODE (_q20))
9397 : {
9398 2 : case BIT_AND_EXPR:
9399 2 : {
9400 2 : tree _q30 = TREE_OPERAND (_q20, 0);
9401 2 : tree _q31 = TREE_OPERAND (_q20, 1);
9402 2 : switch (TREE_CODE (_q30))
9403 : {
9404 0 : CASE_CONVERT:
9405 0 : {
9406 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9407 0 : switch (TREE_CODE (_q31))
9408 : {
9409 0 : case INTEGER_CST:
9410 0 : {
9411 0 : switch (TREE_CODE (_p1))
9412 : {
9413 0 : CASE_CONVERT:
9414 0 : {
9415 0 : tree _q70 = TREE_OPERAND (_p1, 0);
9416 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
9417 : {
9418 0 : {
9419 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
9420 0 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
9421 0 : if (res) return res;
9422 : }
9423 : }
9424 : break;
9425 : }
9426 : default:;
9427 : }
9428 : break;
9429 : }
9430 : default:;
9431 : }
9432 : break;
9433 : }
9434 : default:;
9435 : }
9436 : break;
9437 : }
9438 2283746 : default:;
9439 : }
9440 2283746 : switch (TREE_CODE (_p1))
9441 : {
9442 836146 : CASE_CONVERT:
9443 836146 : {
9444 836146 : tree _q40 = TREE_OPERAND (_p1, 0);
9445 836146 : switch (TREE_CODE (_q40))
9446 : {
9447 7 : case BIT_AND_EXPR:
9448 7 : {
9449 7 : tree _q50 = TREE_OPERAND (_q40, 0);
9450 7 : tree _q51 = TREE_OPERAND (_q40, 1);
9451 7 : switch (TREE_CODE (_q50))
9452 : {
9453 7 : CASE_CONVERT:
9454 7 : {
9455 7 : tree _q60 = TREE_OPERAND (_q50, 0);
9456 7 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9457 : {
9458 0 : switch (TREE_CODE (_q51))
9459 : {
9460 0 : case INTEGER_CST:
9461 0 : {
9462 0 : {
9463 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
9464 0 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
9465 0 : if (res) return res;
9466 : }
9467 0 : break;
9468 : }
9469 : default:;
9470 : }
9471 : }
9472 : break;
9473 : }
9474 : default:;
9475 : }
9476 : break;
9477 : }
9478 : default:;
9479 : }
9480 : break;
9481 : }
9482 : default:;
9483 : }
9484 : break;
9485 : }
9486 33494 : case BIT_IOR_EXPR:
9487 33494 : {
9488 33494 : tree _q20 = TREE_OPERAND (_p0, 0);
9489 33494 : tree _q21 = TREE_OPERAND (_p0, 1);
9490 33494 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9491 : {
9492 24 : {
9493 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9494 24 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9495 24 : if (res) return res;
9496 : }
9497 : }
9498 33494 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9499 : {
9500 46 : {
9501 46 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9502 46 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9503 46 : if (res) return res;
9504 : }
9505 : }
9506 : break;
9507 : }
9508 23828614 : default:;
9509 : }
9510 23828614 : switch (TREE_CODE (_p1))
9511 : {
9512 618 : case BIT_IOR_EXPR:
9513 618 : {
9514 618 : tree _q30 = TREE_OPERAND (_p1, 0);
9515 618 : tree _q31 = TREE_OPERAND (_p1, 1);
9516 618 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
9517 : {
9518 0 : {
9519 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
9520 0 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9521 0 : if (res) return res;
9522 : }
9523 : }
9524 618 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9525 : {
9526 0 : {
9527 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
9528 0 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
9529 0 : if (res) return res;
9530 : }
9531 : }
9532 : break;
9533 : }
9534 23828614 : default:;
9535 : }
9536 23828614 : switch (TREE_CODE (_p0))
9537 : {
9538 2283746 : CASE_CONVERT:
9539 2283746 : {
9540 2283746 : tree _q20 = TREE_OPERAND (_p0, 0);
9541 2283746 : switch (TREE_CODE (_q20))
9542 : {
9543 984 : case BIT_XOR_EXPR:
9544 984 : {
9545 984 : tree _q30 = TREE_OPERAND (_q20, 0);
9546 984 : tree _q31 = TREE_OPERAND (_q20, 1);
9547 984 : switch (TREE_CODE (_q31))
9548 : {
9549 7 : case INTEGER_CST:
9550 7 : {
9551 7 : switch (TREE_CODE (_p1))
9552 : {
9553 0 : case INTEGER_CST:
9554 0 : {
9555 0 : {
9556 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9557 0 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
9558 0 : if (res) return res;
9559 : }
9560 0 : break;
9561 : }
9562 : default:;
9563 : }
9564 : break;
9565 : }
9566 : default:;
9567 : }
9568 : break;
9569 : }
9570 : default:;
9571 : }
9572 : break;
9573 : }
9574 359 : case BIT_XOR_EXPR:
9575 359 : {
9576 359 : tree _q20 = TREE_OPERAND (_p0, 0);
9577 359 : tree _q21 = TREE_OPERAND (_p0, 1);
9578 359 : switch (TREE_CODE (_q21))
9579 : {
9580 103 : case INTEGER_CST:
9581 103 : {
9582 103 : switch (TREE_CODE (_p1))
9583 : {
9584 16 : case INTEGER_CST:
9585 16 : {
9586 16 : {
9587 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9588 16 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
9589 16 : if (res) return res;
9590 : }
9591 0 : break;
9592 : }
9593 : default:;
9594 : }
9595 : break;
9596 : }
9597 : default:;
9598 : }
9599 : break;
9600 : }
9601 23828598 : default:;
9602 : }
9603 23828598 : {
9604 23828598 : tree _p0_pops[1];
9605 23828598 : if (tree_nop_convert (_p0, _p0_pops))
9606 : {
9607 1931815 : tree _q20 = _p0_pops[0];
9608 1931815 : if (integer_zerop (_p1))
9609 : {
9610 536103 : {
9611 536103 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9612 536103 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
9613 536103 : if (res) return res;
9614 : }
9615 : }
9616 : }
9617 : }
9618 23437370 : if (integer_zerop (_p1))
9619 : {
9620 9557493 : {
9621 9557493 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9622 9557493 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
9623 9557493 : if (res) return res;
9624 : }
9625 : }
9626 23363823 : switch (TREE_CODE (_p0))
9627 : {
9628 815345 : case BIT_AND_EXPR:
9629 815345 : {
9630 815345 : tree _q20 = TREE_OPERAND (_p0, 0);
9631 815345 : tree _q21 = TREE_OPERAND (_p0, 1);
9632 815345 : switch (TREE_CODE (_p1))
9633 : {
9634 23759 : case BIT_AND_EXPR:
9635 23759 : {
9636 23759 : tree _q50 = TREE_OPERAND (_p1, 0);
9637 23759 : tree _q51 = TREE_OPERAND (_p1, 1);
9638 23759 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9639 : {
9640 23234 : {
9641 23234 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9642 23234 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9643 23234 : if (res) return res;
9644 : }
9645 : }
9646 525 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9647 : {
9648 28 : {
9649 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9650 28 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9651 28 : if (res) return res;
9652 : }
9653 : }
9654 497 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9655 : {
9656 28 : {
9657 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
9658 28 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9659 28 : if (res) return res;
9660 : }
9661 : }
9662 469 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9663 : {
9664 28 : {
9665 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
9666 28 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9667 28 : if (res) return res;
9668 : }
9669 : }
9670 : break;
9671 : }
9672 792027 : default:;
9673 : }
9674 792027 : if (integer_pow2p (_q21))
9675 : {
9676 278771 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9677 : {
9678 107863 : {
9679 107863 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9680 107863 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
9681 107863 : if (res) return res;
9682 : }
9683 : }
9684 : }
9685 684184 : switch (TREE_CODE (_q20))
9686 : {
9687 46349 : CASE_CONVERT:
9688 46349 : {
9689 46349 : tree _q30 = TREE_OPERAND (_q20, 0);
9690 46349 : if (integer_pow2p (_q21))
9691 : {
9692 9677 : if (integer_zerop (_p1))
9693 : {
9694 9675 : {
9695 9675 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
9696 9675 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9697 9675 : if (res) return res;
9698 : }
9699 : }
9700 : }
9701 : break;
9702 : }
9703 683227 : default:;
9704 : }
9705 683227 : if (integer_pow2p (_q21))
9706 : {
9707 169971 : if (integer_zerop (_p1))
9708 : {
9709 169830 : {
9710 169830 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
9711 169830 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9712 169830 : if (res) return res;
9713 : }
9714 : }
9715 : }
9716 : break;
9717 : }
9718 1208 : case GE_EXPR:
9719 1208 : {
9720 1208 : tree _q20 = TREE_OPERAND (_p0, 0);
9721 1208 : tree _q21 = TREE_OPERAND (_p0, 1);
9722 1208 : if (integer_zerop (_q21))
9723 : {
9724 95 : switch (TREE_CODE (_p1))
9725 : {
9726 5 : case GE_EXPR:
9727 5 : {
9728 5 : tree _q50 = TREE_OPERAND (_p1, 0);
9729 5 : tree _q51 = TREE_OPERAND (_p1, 1);
9730 5 : if (integer_zerop (_q51))
9731 : {
9732 5 : {
9733 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9734 5 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
9735 5 : if (res) return res;
9736 : }
9737 : }
9738 : break;
9739 : }
9740 1 : case LT_EXPR:
9741 1 : {
9742 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9743 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9744 1 : if (integer_zerop (_q51))
9745 : {
9746 1 : {
9747 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
9748 1 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9749 1 : if (res) return res;
9750 : }
9751 : }
9752 : break;
9753 : }
9754 : default:;
9755 : }
9756 : }
9757 : break;
9758 : }
9759 836 : case LT_EXPR:
9760 836 : {
9761 836 : tree _q20 = TREE_OPERAND (_p0, 0);
9762 836 : tree _q21 = TREE_OPERAND (_p0, 1);
9763 836 : if (integer_zerop (_q21))
9764 : {
9765 139 : switch (TREE_CODE (_p1))
9766 : {
9767 11 : case LT_EXPR:
9768 11 : {
9769 11 : tree _q50 = TREE_OPERAND (_p1, 0);
9770 11 : tree _q51 = TREE_OPERAND (_p1, 1);
9771 11 : if (integer_zerop (_q51))
9772 : {
9773 9 : {
9774 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9775 9 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
9776 9 : if (res) return res;
9777 : }
9778 : }
9779 : break;
9780 : }
9781 1 : case GE_EXPR:
9782 1 : {
9783 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9784 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9785 1 : if (integer_zerop (_q51))
9786 : {
9787 1 : {
9788 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9789 1 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9790 1 : if (res) return res;
9791 : }
9792 : }
9793 : break;
9794 : }
9795 : default:;
9796 : }
9797 : }
9798 : break;
9799 : }
9800 33494 : case BIT_IOR_EXPR:
9801 33494 : {
9802 33494 : tree _q20 = TREE_OPERAND (_p0, 0);
9803 33494 : tree _q21 = TREE_OPERAND (_p0, 1);
9804 33494 : switch (TREE_CODE (_q21))
9805 : {
9806 658 : CASE_CONVERT:
9807 658 : {
9808 658 : tree _q40 = TREE_OPERAND (_q21, 0);
9809 658 : switch (TREE_CODE (_q40))
9810 : {
9811 0 : case NE_EXPR:
9812 0 : {
9813 0 : tree _q50 = TREE_OPERAND (_q40, 0);
9814 0 : tree _q51 = TREE_OPERAND (_q40, 1);
9815 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9816 : {
9817 0 : if (integer_zerop (_q51))
9818 : {
9819 0 : if (integer_zerop (_p1))
9820 : {
9821 0 : {
9822 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9823 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
9824 0 : if (res) return res;
9825 : }
9826 : }
9827 : }
9828 : }
9829 : break;
9830 : }
9831 : default:;
9832 : }
9833 : break;
9834 : }
9835 33494 : default:;
9836 : }
9837 33494 : switch (TREE_CODE (_q20))
9838 : {
9839 643 : CASE_CONVERT:
9840 643 : {
9841 643 : tree _q30 = TREE_OPERAND (_q20, 0);
9842 643 : switch (TREE_CODE (_q30))
9843 : {
9844 0 : case NE_EXPR:
9845 0 : {
9846 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9847 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9848 0 : if (integer_zerop (_q41))
9849 : {
9850 0 : if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
9851 : {
9852 0 : if (integer_zerop (_p1))
9853 : {
9854 0 : {
9855 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
9856 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
9857 0 : if (res) return res;
9858 : }
9859 : }
9860 : }
9861 : }
9862 : break;
9863 : }
9864 : default:;
9865 : }
9866 : break;
9867 : }
9868 33494 : default:;
9869 : }
9870 33494 : switch (TREE_CODE (_q21))
9871 : {
9872 1 : case NE_EXPR:
9873 1 : {
9874 1 : tree _q40 = TREE_OPERAND (_q21, 0);
9875 1 : tree _q41 = TREE_OPERAND (_q21, 1);
9876 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
9877 : {
9878 0 : if (integer_zerop (_q41))
9879 : {
9880 0 : if (integer_zerop (_p1))
9881 : {
9882 0 : {
9883 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9884 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
9885 0 : if (res) return res;
9886 : }
9887 : }
9888 : }
9889 : }
9890 : break;
9891 : }
9892 33494 : default:;
9893 : }
9894 33494 : switch (TREE_CODE (_q20))
9895 : {
9896 8 : case NE_EXPR:
9897 8 : {
9898 8 : tree _q30 = TREE_OPERAND (_q20, 0);
9899 8 : tree _q31 = TREE_OPERAND (_q20, 1);
9900 8 : if (integer_zerop (_q31))
9901 : {
9902 0 : if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
9903 : {
9904 0 : if (integer_zerop (_p1))
9905 : {
9906 0 : {
9907 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
9908 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
9909 0 : if (res) return res;
9910 : }
9911 : }
9912 : }
9913 : }
9914 : break;
9915 : }
9916 : default:;
9917 : }
9918 : break;
9919 : }
9920 1892515 : CASE_CONVERT:
9921 1892515 : {
9922 1892515 : tree _q20 = TREE_OPERAND (_p0, 0);
9923 1892515 : switch (TREE_CODE (_q20))
9924 : {
9925 506119 : case ADDR_EXPR:
9926 506119 : {
9927 506119 : switch (TREE_CODE (_p1))
9928 : {
9929 477998 : CASE_CONVERT:
9930 477998 : {
9931 477998 : tree _q40 = TREE_OPERAND (_p1, 0);
9932 477998 : switch (TREE_CODE (_q40))
9933 : {
9934 477998 : case ADDR_EXPR:
9935 477998 : {
9936 477998 : {
9937 477998 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
9938 477998 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR);
9939 477998 : if (res) return res;
9940 : }
9941 30 : break;
9942 : }
9943 : default:;
9944 : }
9945 : break;
9946 : }
9947 20894 : case ADDR_EXPR:
9948 20894 : {
9949 20894 : {
9950 20894 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9951 20894 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR);
9952 20894 : if (res) return res;
9953 : }
9954 7896 : break;
9955 : }
9956 : default:;
9957 : }
9958 : break;
9959 : }
9960 : default:;
9961 : }
9962 : break;
9963 : }
9964 18096 : case ADDR_EXPR:
9965 18096 : {
9966 18096 : switch (TREE_CODE (_p1))
9967 : {
9968 119 : CASE_CONVERT:
9969 119 : {
9970 119 : tree _q30 = TREE_OPERAND (_p1, 0);
9971 119 : switch (TREE_CODE (_q30))
9972 : {
9973 119 : case ADDR_EXPR:
9974 119 : {
9975 119 : {
9976 119 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
9977 119 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
9978 119 : if (res) return res;
9979 : }
9980 0 : break;
9981 : }
9982 : default:;
9983 : }
9984 : break;
9985 : }
9986 15597 : case ADDR_EXPR:
9987 15597 : {
9988 15597 : {
9989 15597 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9990 15597 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
9991 15597 : if (res) return res;
9992 : }
9993 7119 : break;
9994 : }
9995 : default:;
9996 : }
9997 : break;
9998 : }
9999 22731834 : default:;
10000 : }
10001 22731834 : {
10002 22731834 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10003 22731834 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10004 22731834 : if (res) return res;
10005 : }
10006 22728727 : switch (TREE_CODE (_p0))
10007 : {
10008 1401549 : CASE_CONVERT:
10009 1401549 : {
10010 1401549 : tree _q20 = TREE_OPERAND (_p0, 0);
10011 1401549 : switch (TREE_CODE (_p1))
10012 : {
10013 252690 : case INTEGER_CST:
10014 252690 : {
10015 252690 : {
10016 252690 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10017 252690 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR);
10018 252690 : if (res) return res;
10019 : }
10020 251308 : break;
10021 : }
10022 1400167 : default:;
10023 : }
10024 1400167 : switch (TREE_CODE (_q20))
10025 : {
10026 0 : case NE_EXPR:
10027 0 : {
10028 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10029 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10030 0 : switch (TREE_CODE (_q31))
10031 : {
10032 0 : case INTEGER_CST:
10033 0 : {
10034 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10035 : {
10036 0 : {
10037 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10038 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
10039 0 : if (res) return res;
10040 : }
10041 : }
10042 : break;
10043 : }
10044 : default:;
10045 : }
10046 : break;
10047 : }
10048 0 : case EQ_EXPR:
10049 0 : {
10050 0 : tree _q30 = TREE_OPERAND (_q20, 0);
10051 0 : tree _q31 = TREE_OPERAND (_q20, 1);
10052 0 : switch (TREE_CODE (_q31))
10053 : {
10054 0 : case INTEGER_CST:
10055 0 : {
10056 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
10057 : {
10058 0 : {
10059 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
10060 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10061 0 : if (res) return res;
10062 : }
10063 : }
10064 : break;
10065 : }
10066 : default:;
10067 : }
10068 : break;
10069 : }
10070 : default:;
10071 : }
10072 : break;
10073 : }
10074 22727345 : default:;
10075 : }
10076 22727345 : switch (TREE_CODE (_p1))
10077 : {
10078 645696 : CASE_CONVERT:
10079 645696 : {
10080 645696 : tree _q30 = TREE_OPERAND (_p1, 0);
10081 645696 : switch (TREE_CODE (_q30))
10082 : {
10083 0 : case NE_EXPR:
10084 0 : {
10085 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10086 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10087 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10088 : {
10089 0 : switch (TREE_CODE (_q41))
10090 : {
10091 0 : case INTEGER_CST:
10092 0 : {
10093 0 : {
10094 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10095 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
10096 0 : if (res) return res;
10097 : }
10098 0 : break;
10099 : }
10100 : default:;
10101 : }
10102 : }
10103 : break;
10104 : }
10105 0 : case EQ_EXPR:
10106 0 : {
10107 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10108 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10109 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10110 : {
10111 0 : switch (TREE_CODE (_q41))
10112 : {
10113 0 : case INTEGER_CST:
10114 0 : {
10115 0 : {
10116 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10117 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10118 0 : if (res) return res;
10119 : }
10120 0 : break;
10121 : }
10122 : default:;
10123 : }
10124 : }
10125 : break;
10126 : }
10127 : default:;
10128 : }
10129 : break;
10130 : }
10131 22727345 : default:;
10132 : }
10133 22727345 : if (integer_onep (_p1))
10134 : {
10135 1728514 : {
10136 1728514 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10137 1728514 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
10138 1728514 : && types_match (type, TREE_TYPE (captures[0]))
10139 : )
10140 : {
10141 114027 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1515;
10142 114027 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
10143 114027 : {
10144 114027 : tree res_op0;
10145 114027 : res_op0 = captures[0];
10146 114027 : tree _r;
10147 114027 : _r = non_lvalue_loc (loc, res_op0);
10148 114027 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 988, __FILE__, __LINE__, true);
10149 114027 : return _r;
10150 : }
10151 : next_after_fail1515:;
10152 : }
10153 : }
10154 : }
10155 22613318 : switch (TREE_CODE (_p0))
10156 : {
10157 682935 : case BIT_AND_EXPR:
10158 682935 : {
10159 682935 : tree _q20 = TREE_OPERAND (_p0, 0);
10160 682935 : tree _q21 = TREE_OPERAND (_p0, 1);
10161 682935 : switch (TREE_CODE (_q21))
10162 : {
10163 425 : case VECTOR_CST:
10164 425 : {
10165 425 : if (integer_zerop (_p1))
10166 : {
10167 398 : {
10168 398 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10169 398 : const enum tree_code cmp = EQ_EXPR;
10170 398 : const enum tree_code icmp = LE_EXPR;
10171 398 : {
10172 398 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10173 398 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10174 : )
10175 : {
10176 2 : {
10177 2 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10178 2 : ? optab_vector : optab_default;
10179 2 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10180 2 : if (target_supports_op_p (utype, icmp, optab)
10181 2 : || (optimize_vectors_before_lowering_p ()
10182 2 : && (!target_supports_op_p (type, cmp, optab)
10183 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10184 : )
10185 : {
10186 2 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10187 : )
10188 : {
10189 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1516;
10190 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
10191 2 : {
10192 2 : tree res_op0;
10193 2 : res_op0 = captures[1];
10194 2 : tree res_op1;
10195 2 : res_op1 = csts;
10196 2 : tree _r;
10197 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10198 2 : if (TREE_SIDE_EFFECTS (captures[2]))
10199 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10200 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
10201 2 : return _r;
10202 : }
10203 396 : next_after_fail1516:;
10204 : }
10205 : else
10206 : {
10207 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1517;
10208 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
10209 0 : {
10210 0 : tree res_op0;
10211 0 : {
10212 0 : tree _o1[1], _r1;
10213 0 : _o1[0] = captures[1];
10214 0 : if (TREE_TYPE (_o1[0]) != utype)
10215 : {
10216 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10217 : }
10218 : else
10219 : _r1 = _o1[0];
10220 0 : res_op0 = _r1;
10221 : }
10222 0 : tree res_op1;
10223 0 : res_op1 = csts;
10224 0 : tree _r;
10225 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10226 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10227 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10228 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
10229 0 : return _r;
10230 : }
10231 396 : next_after_fail1517:;
10232 : }
10233 : }
10234 : }
10235 : }
10236 : }
10237 : }
10238 : }
10239 : break;
10240 : }
10241 621839 : case INTEGER_CST:
10242 621839 : {
10243 621839 : if (integer_zerop (_p1))
10244 : {
10245 512079 : {
10246 512079 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10247 512079 : const enum tree_code cmp = EQ_EXPR;
10248 512079 : const enum tree_code icmp = LE_EXPR;
10249 512079 : {
10250 512079 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10251 512079 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10252 : )
10253 : {
10254 1046 : {
10255 1046 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10256 1046 : ? optab_vector : optab_default;
10257 1046 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10258 1046 : if (target_supports_op_p (utype, icmp, optab)
10259 1046 : || (optimize_vectors_before_lowering_p ()
10260 902 : && (!target_supports_op_p (type, cmp, optab)
10261 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10262 : )
10263 : {
10264 902 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10265 : )
10266 : {
10267 613 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1518;
10268 613 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
10269 613 : {
10270 613 : tree res_op0;
10271 613 : res_op0 = captures[1];
10272 613 : tree res_op1;
10273 613 : res_op1 = csts;
10274 613 : tree _r;
10275 613 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10276 613 : if (TREE_SIDE_EFFECTS (captures[2]))
10277 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10278 613 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
10279 613 : return _r;
10280 : }
10281 511177 : next_after_fail1518:;
10282 : }
10283 : else
10284 : {
10285 289 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1519;
10286 289 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
10287 289 : {
10288 289 : tree res_op0;
10289 289 : {
10290 289 : tree _o1[1], _r1;
10291 289 : _o1[0] = captures[1];
10292 289 : if (TREE_TYPE (_o1[0]) != utype)
10293 : {
10294 289 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10295 : }
10296 : else
10297 : _r1 = _o1[0];
10298 289 : res_op0 = _r1;
10299 : }
10300 289 : tree res_op1;
10301 289 : res_op1 = csts;
10302 289 : tree _r;
10303 289 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10304 289 : if (TREE_SIDE_EFFECTS (captures[2]))
10305 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10306 289 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
10307 289 : return _r;
10308 : }
10309 511177 : next_after_fail1519:;
10310 : }
10311 : }
10312 : }
10313 : }
10314 : }
10315 : }
10316 : }
10317 : break;
10318 : }
10319 682031 : default:;
10320 : }
10321 682031 : switch (TREE_CODE (_q20))
10322 : {
10323 0 : case VECTOR_CST:
10324 0 : {
10325 0 : if (integer_zerop (_p1))
10326 : {
10327 0 : {
10328 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10329 0 : const enum tree_code cmp = EQ_EXPR;
10330 0 : const enum tree_code icmp = LE_EXPR;
10331 0 : {
10332 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10333 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10334 : )
10335 : {
10336 0 : {
10337 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10338 0 : ? optab_vector : optab_default;
10339 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10340 0 : if (target_supports_op_p (utype, icmp, optab)
10341 0 : || (optimize_vectors_before_lowering_p ()
10342 0 : && (!target_supports_op_p (type, cmp, optab)
10343 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10344 : )
10345 : {
10346 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10347 : )
10348 : {
10349 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1520;
10350 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
10351 0 : {
10352 0 : tree res_op0;
10353 0 : res_op0 = captures[1];
10354 0 : tree res_op1;
10355 0 : res_op1 = csts;
10356 0 : tree _r;
10357 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10358 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10359 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10360 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
10361 0 : return _r;
10362 : }
10363 0 : next_after_fail1520:;
10364 : }
10365 : else
10366 : {
10367 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1521;
10368 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
10369 0 : {
10370 0 : tree res_op0;
10371 0 : {
10372 0 : tree _o1[1], _r1;
10373 0 : _o1[0] = captures[1];
10374 0 : if (TREE_TYPE (_o1[0]) != utype)
10375 : {
10376 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10377 : }
10378 : else
10379 : _r1 = _o1[0];
10380 0 : res_op0 = _r1;
10381 : }
10382 0 : tree res_op1;
10383 0 : res_op1 = csts;
10384 0 : tree _r;
10385 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10386 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10387 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10388 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
10389 0 : return _r;
10390 : }
10391 0 : next_after_fail1521:;
10392 : }
10393 : }
10394 : }
10395 : }
10396 : }
10397 : }
10398 : }
10399 : break;
10400 : }
10401 0 : case INTEGER_CST:
10402 0 : {
10403 0 : if (integer_zerop (_p1))
10404 : {
10405 0 : {
10406 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10407 0 : const enum tree_code cmp = EQ_EXPR;
10408 0 : const enum tree_code icmp = LE_EXPR;
10409 0 : {
10410 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
10411 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
10412 : )
10413 : {
10414 0 : {
10415 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
10416 0 : ? optab_vector : optab_default;
10417 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
10418 0 : if (target_supports_op_p (utype, icmp, optab)
10419 0 : || (optimize_vectors_before_lowering_p ()
10420 0 : && (!target_supports_op_p (type, cmp, optab)
10421 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
10422 : )
10423 : {
10424 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
10425 : )
10426 : {
10427 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1522;
10428 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
10429 0 : {
10430 0 : tree res_op0;
10431 0 : res_op0 = captures[1];
10432 0 : tree res_op1;
10433 0 : res_op1 = csts;
10434 0 : tree _r;
10435 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10436 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10437 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10438 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
10439 0 : return _r;
10440 : }
10441 0 : next_after_fail1522:;
10442 : }
10443 : else
10444 : {
10445 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1523;
10446 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
10447 0 : {
10448 0 : tree res_op0;
10449 0 : {
10450 0 : tree _o1[1], _r1;
10451 0 : _o1[0] = captures[1];
10452 0 : if (TREE_TYPE (_o1[0]) != utype)
10453 : {
10454 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
10455 : }
10456 : else
10457 : _r1 = _o1[0];
10458 0 : res_op0 = _r1;
10459 : }
10460 0 : tree res_op1;
10461 0 : res_op1 = csts;
10462 0 : tree _r;
10463 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
10464 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10465 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10466 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
10467 0 : return _r;
10468 : }
10469 0 : next_after_fail1523:;
10470 : }
10471 : }
10472 : }
10473 : }
10474 : }
10475 : }
10476 : }
10477 : break;
10478 : }
10479 : default:;
10480 : }
10481 : break;
10482 : }
10483 16754 : case RSHIFT_EXPR:
10484 16754 : {
10485 16754 : tree _q20 = TREE_OPERAND (_p0, 0);
10486 16754 : tree _q21 = TREE_OPERAND (_p0, 1);
10487 16754 : switch (TREE_CODE (_q20))
10488 : {
10489 1 : case MULT_EXPR:
10490 1 : {
10491 1 : tree _q30 = TREE_OPERAND (_q20, 0);
10492 1 : tree _q31 = TREE_OPERAND (_q20, 1);
10493 1 : switch (TREE_CODE (_q30))
10494 : {
10495 1 : CASE_CONVERT:
10496 1 : {
10497 1 : tree _q40 = TREE_OPERAND (_q30, 0);
10498 1 : switch (TREE_CODE (_q31))
10499 : {
10500 1 : CASE_CONVERT:
10501 1 : {
10502 1 : tree _q60 = TREE_OPERAND (_q31, 0);
10503 1 : switch (TREE_CODE (_q21))
10504 : {
10505 1 : case INTEGER_CST:
10506 1 : {
10507 1 : if (integer_zerop (_p1))
10508 : {
10509 1 : {
10510 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
10511 1 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR);
10512 1 : if (res) return res;
10513 : }
10514 : }
10515 : break;
10516 : }
10517 : default:;
10518 : }
10519 : break;
10520 : }
10521 : default:;
10522 : }
10523 : break;
10524 : }
10525 : default:;
10526 : }
10527 : break;
10528 : }
10529 : default:;
10530 : }
10531 : break;
10532 : }
10533 651566 : case PLUS_EXPR:
10534 651566 : {
10535 651566 : tree _q20 = TREE_OPERAND (_p0, 0);
10536 651566 : tree _q21 = TREE_OPERAND (_p0, 1);
10537 651566 : switch (TREE_CODE (_q21))
10538 : {
10539 605925 : case INTEGER_CST:
10540 605925 : {
10541 605925 : switch (TREE_CODE (_p1))
10542 : {
10543 339036 : case INTEGER_CST:
10544 339036 : {
10545 339036 : {
10546 339036 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10547 339036 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
10548 339036 : if (res) return res;
10549 : }
10550 14 : break;
10551 : }
10552 : default:;
10553 : }
10554 : break;
10555 : }
10556 : default:;
10557 : }
10558 : break;
10559 : }
10560 95674 : case MINUS_EXPR:
10561 95674 : {
10562 95674 : tree _q20 = TREE_OPERAND (_p0, 0);
10563 95674 : tree _q21 = TREE_OPERAND (_p0, 1);
10564 95674 : switch (TREE_CODE (_q21))
10565 : {
10566 19 : case INTEGER_CST:
10567 19 : {
10568 19 : switch (TREE_CODE (_p1))
10569 : {
10570 16 : case INTEGER_CST:
10571 16 : {
10572 16 : {
10573 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10574 16 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
10575 16 : if (res) return res;
10576 : }
10577 16 : break;
10578 : }
10579 : default:;
10580 : }
10581 : break;
10582 : }
10583 95674 : default:;
10584 : }
10585 95674 : switch (TREE_CODE (_q20))
10586 : {
10587 38322 : case INTEGER_CST:
10588 38322 : {
10589 38322 : switch (TREE_CODE (_p1))
10590 : {
10591 37286 : case INTEGER_CST:
10592 37286 : {
10593 37286 : {
10594 37286 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10595 37286 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
10596 37286 : if (res) return res;
10597 : }
10598 0 : break;
10599 : }
10600 : default:;
10601 : }
10602 : break;
10603 : }
10604 : default:;
10605 : }
10606 : break;
10607 : }
10608 1922329 : case CALL_EXPR:
10609 1922329 : switch (get_call_combined_fn (_p0))
10610 : {
10611 19 : case CFN_BUILT_IN_CLZ:
10612 19 : if (call_expr_nargs (_p0) == 1)
10613 : {
10614 19 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10615 19 : switch (TREE_CODE (_p1))
10616 : {
10617 19 : case INTEGER_CST:
10618 19 : {
10619 19 : {
10620 19 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10621 19 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
10622 19 : if (res) return res;
10623 : }
10624 16 : break;
10625 : }
10626 : default:;
10627 : }
10628 : }
10629 : break;
10630 17 : case CFN_BUILT_IN_CTZ:
10631 17 : if (call_expr_nargs (_p0) == 1)
10632 : {
10633 17 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10634 17 : switch (TREE_CODE (_p1))
10635 : {
10636 17 : case INTEGER_CST:
10637 17 : {
10638 17 : {
10639 17 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10640 17 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
10641 17 : if (res) return res;
10642 : }
10643 16 : break;
10644 : }
10645 : default:;
10646 : }
10647 : }
10648 : break;
10649 4 : case CFN_BUILT_IN_FFS:
10650 4 : if (call_expr_nargs (_p0) == 1)
10651 : {
10652 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10653 4 : switch (TREE_CODE (_p1))
10654 : {
10655 4 : case INTEGER_CST:
10656 4 : {
10657 4 : {
10658 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10659 4 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
10660 4 : if (res) return res;
10661 : }
10662 0 : break;
10663 : }
10664 : default:;
10665 : }
10666 : }
10667 : break;
10668 0 : case CFN_REDUC_IOR:
10669 0 : if (call_expr_nargs (_p0) == 1)
10670 : {
10671 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10672 0 : if (integer_zerop (_p1))
10673 : {
10674 0 : {
10675 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10676 0 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, EQ_EXPR);
10677 0 : if (res) return res;
10678 : }
10679 : }
10680 : }
10681 : break;
10682 0 : case CFN_BUILT_IN_FFSIMAX:
10683 0 : if (call_expr_nargs (_p0) == 1)
10684 : {
10685 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10686 0 : switch (TREE_CODE (_p1))
10687 : {
10688 0 : case INTEGER_CST:
10689 0 : {
10690 0 : {
10691 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10692 0 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
10693 0 : if (res) return res;
10694 : }
10695 0 : break;
10696 : }
10697 : default:;
10698 : }
10699 : }
10700 : break;
10701 15 : case CFN_BUILT_IN_POPCOUNT:
10702 15 : if (call_expr_nargs (_p0) == 1)
10703 : {
10704 15 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10705 15 : if (integer_zerop (_p1))
10706 : {
10707 1 : {
10708 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10709 1 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
10710 1 : if (res) return res;
10711 : }
10712 : }
10713 : }
10714 : break;
10715 0 : case CFN_BUILT_IN_CLZL:
10716 0 : if (call_expr_nargs (_p0) == 1)
10717 : {
10718 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10719 0 : 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_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
10726 0 : if (res) return res;
10727 : }
10728 0 : break;
10729 : }
10730 : default:;
10731 : }
10732 : }
10733 : break;
10734 16 : case CFN_BUILT_IN_CTZL:
10735 16 : if (call_expr_nargs (_p0) == 1)
10736 : {
10737 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10738 16 : switch (TREE_CODE (_p1))
10739 : {
10740 16 : case INTEGER_CST:
10741 16 : {
10742 16 : {
10743 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10744 16 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
10745 16 : if (res) return res;
10746 : }
10747 16 : break;
10748 : }
10749 : default:;
10750 : }
10751 : }
10752 : break;
10753 1 : case CFN_BUILT_IN_FFSL:
10754 1 : if (call_expr_nargs (_p0) == 1)
10755 : {
10756 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10757 1 : switch (TREE_CODE (_p1))
10758 : {
10759 1 : case INTEGER_CST:
10760 1 : {
10761 1 : {
10762 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10763 1 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
10764 1 : if (res) return res;
10765 : }
10766 0 : break;
10767 : }
10768 : default:;
10769 : }
10770 : }
10771 : break;
10772 7 : case CFN_BUILT_IN_POPCOUNTLL:
10773 7 : if (call_expr_nargs (_p0) == 1)
10774 : {
10775 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10776 7 : if (integer_zerop (_p1))
10777 : {
10778 1 : {
10779 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10780 1 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10781 1 : if (res) return res;
10782 : }
10783 : }
10784 : }
10785 : break;
10786 0 : case CFN_BUILT_IN_CTZIMAX:
10787 0 : if (call_expr_nargs (_p0) == 1)
10788 : {
10789 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10790 0 : switch (TREE_CODE (_p1))
10791 : {
10792 0 : case INTEGER_CST:
10793 0 : {
10794 0 : {
10795 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10796 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
10797 0 : if (res) return res;
10798 : }
10799 0 : break;
10800 : }
10801 : default:;
10802 : }
10803 : }
10804 : break;
10805 0 : case CFN_POPCOUNT:
10806 0 : if (call_expr_nargs (_p0) == 1)
10807 : {
10808 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10809 0 : if (integer_zerop (_p1))
10810 : {
10811 0 : {
10812 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10813 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
10814 0 : if (res) return res;
10815 : }
10816 : }
10817 : }
10818 : break;
10819 0 : case CFN_CLZ:
10820 0 : if (call_expr_nargs (_p0) == 1)
10821 : {
10822 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10823 0 : switch (TREE_CODE (_p1))
10824 : {
10825 0 : case INTEGER_CST:
10826 0 : {
10827 0 : {
10828 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10829 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
10830 0 : if (res) return res;
10831 : }
10832 0 : break;
10833 : }
10834 : default:;
10835 : }
10836 : }
10837 0 : if (call_expr_nargs (_p0) == 2)
10838 : {
10839 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10840 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10841 0 : switch (TREE_CODE (_p1))
10842 : {
10843 0 : case INTEGER_CST:
10844 0 : {
10845 0 : {
10846 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10847 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
10848 0 : if (res) return res;
10849 : }
10850 0 : break;
10851 : }
10852 : default:;
10853 : }
10854 : }
10855 : break;
10856 0 : case CFN_CTZ:
10857 0 : if (call_expr_nargs (_p0) == 1)
10858 : {
10859 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10860 0 : switch (TREE_CODE (_p1))
10861 : {
10862 0 : case INTEGER_CST:
10863 0 : {
10864 0 : {
10865 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10866 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
10867 0 : if (res) return res;
10868 : }
10869 0 : break;
10870 : }
10871 : default:;
10872 : }
10873 : }
10874 0 : if (call_expr_nargs (_p0) == 2)
10875 : {
10876 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10877 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10878 0 : switch (TREE_CODE (_p1))
10879 : {
10880 0 : case INTEGER_CST:
10881 0 : {
10882 0 : {
10883 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10884 0 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR);
10885 0 : if (res) return res;
10886 : }
10887 0 : break;
10888 : }
10889 : default:;
10890 : }
10891 : }
10892 : break;
10893 0 : case CFN_FFS:
10894 0 : if (call_expr_nargs (_p0) == 1)
10895 : {
10896 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10897 0 : switch (TREE_CODE (_p1))
10898 : {
10899 0 : case INTEGER_CST:
10900 0 : {
10901 0 : {
10902 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10903 0 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_FFS);
10904 0 : if (res) return res;
10905 : }
10906 0 : break;
10907 : }
10908 : default:;
10909 : }
10910 : }
10911 : break;
10912 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10913 0 : if (call_expr_nargs (_p0) == 1)
10914 : {
10915 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10916 0 : if (integer_zerop (_p1))
10917 : {
10918 0 : {
10919 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10920 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10921 0 : if (res) return res;
10922 : }
10923 : }
10924 : }
10925 : break;
10926 0 : case CFN_BUILT_IN_CLZIMAX:
10927 0 : if (call_expr_nargs (_p0) == 1)
10928 : {
10929 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10930 0 : switch (TREE_CODE (_p1))
10931 : {
10932 0 : case INTEGER_CST:
10933 0 : {
10934 0 : {
10935 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10936 0 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
10937 0 : if (res) return res;
10938 : }
10939 0 : break;
10940 : }
10941 : default:;
10942 : }
10943 : }
10944 : break;
10945 7 : case CFN_BUILT_IN_POPCOUNTL:
10946 7 : if (call_expr_nargs (_p0) == 1)
10947 : {
10948 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10949 7 : if (integer_zerop (_p1))
10950 : {
10951 1 : {
10952 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10953 1 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
10954 1 : if (res) return res;
10955 : }
10956 : }
10957 : }
10958 : break;
10959 16 : case CFN_BUILT_IN_CLZLL:
10960 16 : if (call_expr_nargs (_p0) == 1)
10961 : {
10962 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10963 16 : switch (TREE_CODE (_p1))
10964 : {
10965 16 : case INTEGER_CST:
10966 16 : {
10967 16 : {
10968 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10969 16 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
10970 16 : if (res) return res;
10971 : }
10972 16 : break;
10973 : }
10974 : default:;
10975 : }
10976 : }
10977 : break;
10978 0 : case CFN_BUILT_IN_CTZLL:
10979 0 : if (call_expr_nargs (_p0) == 1)
10980 : {
10981 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10982 0 : switch (TREE_CODE (_p1))
10983 : {
10984 0 : case INTEGER_CST:
10985 0 : {
10986 0 : {
10987 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10988 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10989 0 : if (res) return res;
10990 : }
10991 0 : break;
10992 : }
10993 : default:;
10994 : }
10995 : }
10996 : break;
10997 0 : case CFN_BUILT_IN_FFSLL:
10998 0 : if (call_expr_nargs (_p0) == 1)
10999 : {
11000 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11001 0 : switch (TREE_CODE (_p1))
11002 : {
11003 0 : case INTEGER_CST:
11004 0 : {
11005 0 : {
11006 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11007 0 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
11008 0 : if (res) return res;
11009 : }
11010 0 : break;
11011 : }
11012 : default:;
11013 : }
11014 : }
11015 : break;
11016 : default:;
11017 : }
11018 : break;
11019 : default:;
11020 : }
11021 : return NULL_TREE;
11022 : }
11023 :
11024 : tree
11025 79 : generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11026 : {
11027 79 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11028 79 : switch (TREE_CODE (_p0))
11029 : {
11030 0 : case VEC_COND_EXPR:
11031 0 : {
11032 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11033 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11034 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11035 0 : switch (TREE_CODE (_p1))
11036 : {
11037 0 : case VEC_COND_EXPR:
11038 0 : {
11039 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11040 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11041 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11042 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11043 : {
11044 0 : {
11045 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11046 0 : if (VECTOR_TYPE_P (type)
11047 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11048 0 : || types_match (type, TREE_TYPE (captures[2]))
11049 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11050 : || (optimize_vectors_before_lowering_p ()
11051 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11052 : )
11053 : {
11054 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1785;
11055 0 : {
11056 0 : tree res_op0;
11057 0 : res_op0 = captures[1];
11058 0 : tree res_op1;
11059 0 : {
11060 0 : tree _o1[2], _r1;
11061 0 : _o1[0] = captures[2];
11062 0 : _o1[1] = captures[5];
11063 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11064 0 : if (EXPR_P (_r1))
11065 0 : goto next_after_fail1785;
11066 0 : res_op1 = _r1;
11067 : }
11068 0 : tree res_op2;
11069 0 : {
11070 0 : tree _o1[2], _r1;
11071 0 : _o1[0] = captures[3];
11072 0 : _o1[1] = captures[6];
11073 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11074 0 : if (EXPR_P (_r1))
11075 0 : goto next_after_fail1785;
11076 0 : res_op2 = _r1;
11077 : }
11078 0 : tree _r;
11079 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
11081 0 : return _r;
11082 : }
11083 0 : next_after_fail1785:;
11084 : }
11085 : }
11086 : }
11087 : break;
11088 : }
11089 0 : default:;
11090 : }
11091 0 : {
11092 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11093 0 : if (VECTOR_TYPE_P (type)
11094 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11095 0 : || types_match (type, TREE_TYPE (captures[2]))
11096 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11097 : || (optimize_vectors_before_lowering_p ()
11098 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11099 : )
11100 : {
11101 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1786;
11102 0 : {
11103 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1786;
11104 0 : tree res_op0;
11105 0 : res_op0 = captures[1];
11106 0 : tree res_op1;
11107 0 : {
11108 0 : tree _o1[2], _r1;
11109 0 : _o1[0] = captures[2];
11110 0 : _o1[1] = unshare_expr (captures[4]);
11111 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11112 0 : if (EXPR_P (_r1))
11113 0 : goto next_after_fail1786;
11114 0 : res_op1 = _r1;
11115 : }
11116 0 : tree res_op2;
11117 0 : {
11118 0 : tree _o1[2], _r1;
11119 0 : _o1[0] = captures[3];
11120 0 : _o1[1] = captures[4];
11121 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11122 0 : if (EXPR_P (_r1))
11123 0 : goto next_after_fail1786;
11124 0 : res_op2 = _r1;
11125 : }
11126 0 : tree _r;
11127 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11128 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
11129 0 : return _r;
11130 : }
11131 0 : next_after_fail1786:;
11132 : }
11133 : }
11134 0 : break;
11135 : }
11136 79 : default:;
11137 : }
11138 79 : switch (TREE_CODE (_p1))
11139 : {
11140 0 : case VEC_COND_EXPR:
11141 0 : {
11142 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11143 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11144 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11145 0 : {
11146 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11147 0 : if (VECTOR_TYPE_P (type)
11148 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11149 0 : || types_match (type, TREE_TYPE (captures[3]))
11150 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11151 : || (optimize_vectors_before_lowering_p ()
11152 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11153 : )
11154 : {
11155 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1787;
11156 0 : {
11157 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1787;
11158 0 : tree res_op0;
11159 0 : res_op0 = captures[2];
11160 0 : tree res_op1;
11161 0 : {
11162 0 : tree _o1[2], _r1;
11163 0 : _o1[0] = unshare_expr (captures[0]);
11164 0 : _o1[1] = captures[3];
11165 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11166 0 : if (EXPR_P (_r1))
11167 0 : goto next_after_fail1787;
11168 0 : res_op1 = _r1;
11169 : }
11170 0 : tree res_op2;
11171 0 : {
11172 0 : tree _o1[2], _r1;
11173 0 : _o1[0] = captures[0];
11174 0 : _o1[1] = captures[4];
11175 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11176 0 : if (EXPR_P (_r1))
11177 0 : goto next_after_fail1787;
11178 0 : res_op2 = _r1;
11179 : }
11180 0 : tree _r;
11181 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11182 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
11183 0 : return _r;
11184 : }
11185 0 : next_after_fail1787:;
11186 : }
11187 : }
11188 0 : break;
11189 : }
11190 79 : default:;
11191 : }
11192 79 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11193 : {
11194 2 : {
11195 2 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11196 2 : if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
11197 : )
11198 : {
11199 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1788;
11200 0 : {
11201 0 : tree _r;
11202 0 : _r = constant_boolean_node (false, type);
11203 0 : if (TREE_SIDE_EFFECTS (captures[0]))
11204 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11205 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11206 0 : return _r;
11207 : }
11208 0 : next_after_fail1788:;
11209 : }
11210 : }
11211 : }
11212 79 : switch (TREE_CODE (_p0))
11213 : {
11214 0 : case FLOAT_EXPR:
11215 0 : {
11216 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11217 0 : switch (TREE_CODE (_p1))
11218 : {
11219 0 : case FLOAT_EXPR:
11220 0 : {
11221 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11222 0 : {
11223 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11224 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
11225 0 : if (res) return res;
11226 : }
11227 0 : break;
11228 : }
11229 : default:;
11230 : }
11231 : break;
11232 : }
11233 0 : case NEGATE_EXPR:
11234 0 : {
11235 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11236 0 : switch (TREE_CODE (_p1))
11237 : {
11238 0 : case NEGATE_EXPR:
11239 0 : {
11240 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11241 0 : {
11242 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11243 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11244 0 : if (res) return res;
11245 : }
11246 0 : break;
11247 : }
11248 0 : default:;
11249 : }
11250 0 : if (CONSTANT_CLASS_P (_p1))
11251 : {
11252 0 : {
11253 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11254 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11255 0 : if (res) return res;
11256 : }
11257 : }
11258 : break;
11259 : }
11260 79 : default:;
11261 : }
11262 79 : switch (TREE_CODE (_p1))
11263 : {
11264 2 : case REAL_CST:
11265 2 : {
11266 2 : {
11267 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11268 2 : tree res = generic_simplify_564 (loc, type, _p0, _p1, captures, LTGT_EXPR);
11269 2 : if (res) return res;
11270 : }
11271 2 : break;
11272 : }
11273 : default:;
11274 : }
11275 : return NULL_TREE;
11276 : }
11277 :
11278 : tree
11279 393860 : 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)
11280 : {
11281 393860 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11282 393860 : switch (TREE_CODE (_p0))
11283 : {
11284 1365 : case NE_EXPR:
11285 1365 : {
11286 1365 : tree _q20 = TREE_OPERAND (_p0, 0);
11287 1365 : tree _q21 = TREE_OPERAND (_p0, 1);
11288 1365 : if (uniform_integer_cst_p (_q21))
11289 : {
11290 431 : switch (TREE_CODE (_p1))
11291 : {
11292 35 : case PLUS_EXPR:
11293 35 : {
11294 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11295 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11296 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11297 : {
11298 24 : if (uniform_integer_cst_p (_q51))
11299 : {
11300 24 : if (uniform_integer_cst_p (_p2))
11301 : {
11302 24 : {
11303 24 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11304 24 : {
11305 24 : tree cst1 = uniform_integer_cst_p (captures[1]);
11306 24 : tree cst2 = uniform_integer_cst_p (captures[3]);
11307 24 : tree cst3 = uniform_integer_cst_p (captures[4]);
11308 24 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
11309 : )
11310 : {
11311 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1895;
11312 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1895;
11313 18 : {
11314 18 : tree _r;
11315 18 : _r = captures[2];
11316 18 : if (TREE_SIDE_EFFECTS (captures[1]))
11317 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11318 18 : if (TREE_SIDE_EFFECTS (captures[4]))
11319 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11320 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
11321 18 : return _r;
11322 : }
11323 6 : next_after_fail1895:;
11324 : }
11325 : }
11326 : }
11327 : }
11328 : }
11329 : }
11330 : break;
11331 : }
11332 : default:;
11333 : }
11334 : }
11335 : break;
11336 : }
11337 16552 : case VECTOR_CST:
11338 16552 : {
11339 16552 : {
11340 16552 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11341 16552 : if (integer_all_onesp (captures[0])
11342 : )
11343 : {
11344 3766 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1896;
11345 3766 : {
11346 3766 : tree _r;
11347 3766 : _r = captures[1];
11348 3766 : if (TREE_SIDE_EFFECTS (captures[0]))
11349 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11350 3766 : if (TREE_SIDE_EFFECTS (captures[2]))
11351 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11352 3766 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
11353 3766 : return _r;
11354 : }
11355 0 : next_after_fail1896:;
11356 : }
11357 : else
11358 : {
11359 12786 : if (integer_zerop (captures[0])
11360 : )
11361 : {
11362 2015 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1897;
11363 2015 : {
11364 2015 : tree _r;
11365 2015 : _r = captures[2];
11366 2015 : if (TREE_SIDE_EFFECTS (captures[0]))
11367 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11368 2015 : if (TREE_SIDE_EFFECTS (captures[1]))
11369 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11370 2015 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
11371 2015 : return _r;
11372 : }
11373 0 : next_after_fail1897:;
11374 : }
11375 : }
11376 : }
11377 10771 : break;
11378 : }
11379 388061 : default:;
11380 : }
11381 388061 : switch (TREE_CODE (_p1))
11382 : {
11383 324175 : case VECTOR_CST:
11384 324175 : {
11385 324175 : switch (TREE_CODE (_p2))
11386 : {
11387 314214 : case VECTOR_CST:
11388 314214 : {
11389 314214 : {
11390 314214 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11391 314214 : if (VECTOR_BOOLEAN_TYPE_P (type)
11392 314352 : && types_match (type, TREE_TYPE (captures[0]))
11393 : )
11394 : {
11395 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11396 : )
11397 : {
11398 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1898;
11399 28 : {
11400 28 : tree res_op0;
11401 28 : res_op0 = captures[0];
11402 28 : tree _r;
11403 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11404 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11405 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11406 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11407 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11408 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
11409 28 : return _r;
11410 : }
11411 0 : next_after_fail1898:;
11412 : }
11413 : else
11414 : {
11415 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11416 : )
11417 : {
11418 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1899;
11419 73 : {
11420 73 : tree _r;
11421 73 : _r = captures[0];
11422 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11423 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11424 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11425 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11426 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
11427 73 : return _r;
11428 : }
11429 0 : next_after_fail1899:;
11430 : }
11431 : }
11432 : }
11433 : }
11434 314113 : break;
11435 : }
11436 : default:;
11437 : }
11438 : break;
11439 : }
11440 387960 : default:;
11441 : }
11442 387960 : switch (TREE_CODE (_p0))
11443 : {
11444 1345 : case NE_EXPR:
11445 1345 : {
11446 1345 : tree _q20 = TREE_OPERAND (_p0, 0);
11447 1345 : tree _q21 = TREE_OPERAND (_p0, 1);
11448 1345 : switch (TREE_CODE (_p1))
11449 : {
11450 6 : case MINUS_EXPR:
11451 6 : {
11452 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11453 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11454 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11455 : {
11456 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11457 : {
11458 6 : if (integer_zerop (_p2))
11459 : {
11460 6 : {
11461 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11462 6 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures);
11463 6 : if (res) return res;
11464 : }
11465 : }
11466 : }
11467 : }
11468 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11469 : {
11470 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11471 : {
11472 0 : if (integer_zerop (_p2))
11473 : {
11474 0 : {
11475 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11476 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures);
11477 0 : if (res) return res;
11478 : }
11479 : }
11480 : }
11481 : }
11482 : break;
11483 : }
11484 6 : case BIT_XOR_EXPR:
11485 6 : {
11486 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11487 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11488 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11489 : {
11490 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11491 : {
11492 6 : if (integer_zerop (_p2))
11493 : {
11494 6 : {
11495 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11496 6 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures);
11497 6 : if (res) return res;
11498 : }
11499 : }
11500 : }
11501 : }
11502 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11503 : {
11504 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11505 : {
11506 0 : if (integer_zerop (_p2))
11507 : {
11508 0 : {
11509 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11510 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures);
11511 0 : if (res) return res;
11512 : }
11513 : }
11514 : }
11515 : }
11516 : break;
11517 : }
11518 6 : case BIT_AND_EXPR:
11519 6 : {
11520 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11521 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11522 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11523 : {
11524 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11525 : {
11526 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11527 : {
11528 6 : {
11529 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11530 6 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11531 6 : if (res) return res;
11532 : }
11533 : }
11534 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11535 : {
11536 0 : {
11537 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11538 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11539 0 : if (res) return res;
11540 : }
11541 : }
11542 : }
11543 : }
11544 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11545 : {
11546 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11547 : {
11548 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11549 : {
11550 0 : {
11551 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11552 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11553 0 : if (res) return res;
11554 : }
11555 : }
11556 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11557 : {
11558 0 : {
11559 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11560 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11561 0 : if (res) return res;
11562 : }
11563 : }
11564 : }
11565 : }
11566 : break;
11567 : }
11568 6 : case BIT_IOR_EXPR:
11569 6 : {
11570 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11571 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11572 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11573 : {
11574 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11575 : {
11576 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11577 : {
11578 6 : {
11579 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11580 6 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11581 6 : if (res) return res;
11582 : }
11583 : }
11584 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11585 : {
11586 0 : {
11587 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11588 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11589 0 : if (res) return res;
11590 : }
11591 : }
11592 : }
11593 : }
11594 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11595 : {
11596 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11597 : {
11598 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11599 : {
11600 0 : {
11601 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11602 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11603 0 : if (res) return res;
11604 : }
11605 : }
11606 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11607 : {
11608 0 : {
11609 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11610 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11611 0 : if (res) return res;
11612 : }
11613 : }
11614 : }
11615 : }
11616 : break;
11617 : }
11618 0 : case MIN_EXPR:
11619 0 : {
11620 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11621 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11622 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11623 : {
11624 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11625 : {
11626 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11627 : {
11628 0 : {
11629 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11630 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11631 0 : if (res) return res;
11632 : }
11633 : }
11634 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11635 : {
11636 0 : {
11637 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11638 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11639 0 : if (res) return res;
11640 : }
11641 : }
11642 : }
11643 : }
11644 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11645 : {
11646 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11647 : {
11648 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11649 : {
11650 0 : {
11651 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11652 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11653 0 : if (res) return res;
11654 : }
11655 : }
11656 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11657 : {
11658 0 : {
11659 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11660 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11661 0 : if (res) return res;
11662 : }
11663 : }
11664 : }
11665 : }
11666 : break;
11667 : }
11668 0 : case MAX_EXPR:
11669 0 : {
11670 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11671 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11672 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11673 : {
11674 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11675 : {
11676 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11677 : {
11678 0 : {
11679 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11680 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11681 0 : if (res) return res;
11682 : }
11683 : }
11684 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11685 : {
11686 0 : {
11687 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11688 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11689 0 : if (res) return res;
11690 : }
11691 : }
11692 : }
11693 : }
11694 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11695 : {
11696 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11697 : {
11698 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11699 : {
11700 0 : {
11701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11702 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11703 0 : if (res) return res;
11704 : }
11705 : }
11706 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11707 : {
11708 0 : {
11709 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11710 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11711 0 : if (res) return res;
11712 : }
11713 : }
11714 : }
11715 : }
11716 : break;
11717 : }
11718 6 : case MULT_EXPR:
11719 6 : {
11720 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11721 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11722 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11723 : {
11724 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11725 : {
11726 6 : switch (TREE_CODE (_p2))
11727 : {
11728 6 : case MULT_EXPR:
11729 6 : {
11730 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11731 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11732 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11733 : {
11734 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11735 : {
11736 6 : {
11737 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11738 6 : const enum tree_code op = MULT_EXPR;
11739 6 : if (ANY_INTEGRAL_TYPE_P (type)
11740 : )
11741 : {
11742 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1900;
11743 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1900;
11744 6 : {
11745 6 : tree _r;
11746 6 : _r = captures[2];
11747 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
11748 6 : return _r;
11749 : }
11750 0 : next_after_fail1900:;
11751 : }
11752 : }
11753 : }
11754 : }
11755 : break;
11756 : }
11757 : default:;
11758 : }
11759 : }
11760 : }
11761 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11762 : {
11763 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11764 : {
11765 0 : switch (TREE_CODE (_p2))
11766 : {
11767 0 : case MULT_EXPR:
11768 0 : {
11769 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11770 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11771 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11772 : {
11773 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11774 : {
11775 0 : {
11776 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11777 0 : const enum tree_code op = MULT_EXPR;
11778 0 : if (ANY_INTEGRAL_TYPE_P (type)
11779 : )
11780 : {
11781 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1901;
11782 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1901;
11783 0 : {
11784 0 : tree _r;
11785 0 : _r = captures[2];
11786 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
11787 0 : return _r;
11788 : }
11789 0 : next_after_fail1901:;
11790 : }
11791 : }
11792 : }
11793 : }
11794 : break;
11795 : }
11796 : default:;
11797 : }
11798 : }
11799 : }
11800 : break;
11801 : }
11802 35 : case PLUS_EXPR:
11803 35 : {
11804 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11805 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11806 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11807 : {
11808 24 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11809 : {
11810 12 : switch (TREE_CODE (_p2))
11811 : {
11812 6 : case PLUS_EXPR:
11813 6 : {
11814 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11815 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11816 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11817 : {
11818 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11819 : {
11820 6 : {
11821 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11822 6 : const enum tree_code op = PLUS_EXPR;
11823 6 : if (ANY_INTEGRAL_TYPE_P (type)
11824 : )
11825 : {
11826 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1902;
11827 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1902;
11828 6 : {
11829 6 : tree _r;
11830 6 : _r = captures[2];
11831 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
11832 6 : return _r;
11833 : }
11834 0 : next_after_fail1902:;
11835 : }
11836 : }
11837 : }
11838 : }
11839 : break;
11840 : }
11841 6 : case MULT_EXPR:
11842 6 : {
11843 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11844 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11845 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11846 : {
11847 6 : if (uniform_integer_cst_p (_q81))
11848 : {
11849 6 : {
11850 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11851 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11852 : )
11853 : {
11854 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1903;
11855 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1903;
11856 6 : {
11857 6 : tree _r;
11858 6 : _r = captures[2];
11859 6 : if (TREE_SIDE_EFFECTS (captures[3]))
11860 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11861 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11862 6 : return _r;
11863 : }
11864 0 : next_after_fail1903:;
11865 : }
11866 : }
11867 : }
11868 : }
11869 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11870 : {
11871 0 : if (uniform_integer_cst_p (_q81))
11872 : {
11873 0 : {
11874 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11875 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11876 : )
11877 : {
11878 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1904;
11879 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1904;
11880 0 : {
11881 0 : tree _r;
11882 0 : _r = captures[2];
11883 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11884 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11885 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11886 0 : return _r;
11887 : }
11888 0 : next_after_fail1904:;
11889 : }
11890 : }
11891 : }
11892 : }
11893 : break;
11894 : }
11895 : default:;
11896 : }
11897 : }
11898 : }
11899 23 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11900 : {
11901 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11902 : {
11903 0 : switch (TREE_CODE (_p2))
11904 : {
11905 0 : case PLUS_EXPR:
11906 0 : {
11907 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11908 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11909 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11910 : {
11911 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11912 : {
11913 0 : {
11914 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11915 0 : const enum tree_code op = PLUS_EXPR;
11916 0 : if (ANY_INTEGRAL_TYPE_P (type)
11917 : )
11918 : {
11919 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1905;
11920 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1905;
11921 0 : {
11922 0 : tree _r;
11923 0 : _r = captures[2];
11924 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
11925 0 : return _r;
11926 : }
11927 0 : next_after_fail1905:;
11928 : }
11929 : }
11930 : }
11931 : }
11932 : break;
11933 : }
11934 0 : case MULT_EXPR:
11935 0 : {
11936 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11937 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11938 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11939 : {
11940 0 : if (uniform_integer_cst_p (_q81))
11941 : {
11942 0 : {
11943 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11944 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11945 : )
11946 : {
11947 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1906;
11948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1906;
11949 0 : {
11950 0 : tree _r;
11951 0 : _r = captures[2];
11952 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11953 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11954 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11955 0 : return _r;
11956 : }
11957 0 : next_after_fail1906:;
11958 : }
11959 : }
11960 : }
11961 : }
11962 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11963 : {
11964 0 : if (uniform_integer_cst_p (_q81))
11965 : {
11966 0 : {
11967 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11968 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11969 : )
11970 : {
11971 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1907;
11972 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1907;
11973 0 : {
11974 0 : tree _r;
11975 0 : _r = captures[2];
11976 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11977 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11978 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11979 0 : return _r;
11980 : }
11981 0 : next_after_fail1907:;
11982 : }
11983 : }
11984 : }
11985 : }
11986 : break;
11987 : }
11988 : default:;
11989 : }
11990 : }
11991 : }
11992 : break;
11993 : }
11994 : default:;
11995 : }
11996 : break;
11997 : }
11998 387918 : default:;
11999 : }
12000 387918 : switch (TREE_CODE (_p1))
12001 : {
12002 6 : case VEC_COND_EXPR:
12003 6 : {
12004 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12005 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12006 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12007 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12008 : {
12009 0 : {
12010 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
12011 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1908;
12012 0 : {
12013 0 : tree res_op0;
12014 0 : res_op0 = captures[0];
12015 0 : tree res_op1;
12016 0 : res_op1 = captures[1];
12017 0 : tree res_op2;
12018 0 : res_op2 = captures[3];
12019 0 : tree _r;
12020 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12021 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12022 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12023 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
12024 0 : return _r;
12025 : }
12026 0 : next_after_fail1908:;
12027 : }
12028 : }
12029 : break;
12030 : }
12031 387918 : default:;
12032 : }
12033 387918 : switch (TREE_CODE (_p2))
12034 : {
12035 3 : case VEC_COND_EXPR:
12036 3 : {
12037 3 : tree _q40 = TREE_OPERAND (_p2, 0);
12038 3 : tree _q41 = TREE_OPERAND (_p2, 1);
12039 3 : tree _q42 = TREE_OPERAND (_p2, 2);
12040 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12041 : {
12042 0 : {
12043 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
12044 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1909;
12045 0 : {
12046 0 : tree res_op0;
12047 0 : res_op0 = captures[0];
12048 0 : tree res_op1;
12049 0 : res_op1 = captures[1];
12050 0 : tree res_op2;
12051 0 : res_op2 = captures[3];
12052 0 : tree _r;
12053 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12054 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12055 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12056 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12057 0 : return _r;
12058 : }
12059 0 : next_after_fail1909:;
12060 : }
12061 : }
12062 3 : {
12063 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
12064 3 : if (inverse_conditions_p (captures[0], captures[2])
12065 : )
12066 : {
12067 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1910;
12068 0 : {
12069 0 : tree res_op0;
12070 0 : res_op0 = captures[0];
12071 0 : tree res_op1;
12072 0 : res_op1 = captures[1];
12073 0 : tree res_op2;
12074 0 : res_op2 = captures[3];
12075 0 : tree _r;
12076 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12077 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12078 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12079 0 : if (TREE_SIDE_EFFECTS (captures[4]))
12080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
12081 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12082 0 : return _r;
12083 : }
12084 0 : next_after_fail1910:;
12085 : }
12086 : }
12087 3 : break;
12088 : }
12089 387918 : default:;
12090 : }
12091 387918 : switch (TREE_CODE (_p1))
12092 : {
12093 6 : case VEC_COND_EXPR:
12094 6 : {
12095 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12096 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12097 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12098 6 : {
12099 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
12100 6 : if (inverse_conditions_p (captures[0], captures[1])
12101 : )
12102 : {
12103 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
12104 0 : {
12105 0 : tree res_op0;
12106 0 : res_op0 = captures[0];
12107 0 : tree res_op1;
12108 0 : res_op1 = captures[3];
12109 0 : tree res_op2;
12110 0 : res_op2 = captures[4];
12111 0 : tree _r;
12112 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12113 0 : if (TREE_SIDE_EFFECTS (captures[1]))
12114 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12115 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12116 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
12118 0 : return _r;
12119 : }
12120 0 : next_after_fail1911:;
12121 : }
12122 : }
12123 6 : break;
12124 : }
12125 387918 : default:;
12126 : }
12127 387918 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
12128 : {
12129 36 : {
12130 36 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12131 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
12132 36 : {
12133 36 : tree _r;
12134 36 : _r = captures[1];
12135 36 : if (TREE_SIDE_EFFECTS (captures[0]))
12136 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12137 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
12138 36 : return _r;
12139 : }
12140 0 : next_after_fail1912:;
12141 : }
12142 : }
12143 387882 : switch (TREE_CODE (_p0))
12144 : {
12145 67150 : case EQ_EXPR:
12146 67150 : {
12147 67150 : tree _q20 = TREE_OPERAND (_p0, 0);
12148 67150 : tree _q21 = TREE_OPERAND (_p0, 1);
12149 67150 : if (zerop (_q21))
12150 : {
12151 1103 : switch (TREE_CODE (_p2))
12152 : {
12153 0 : case NEGATE_EXPR:
12154 0 : {
12155 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12156 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12157 : {
12158 0 : {
12159 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12160 0 : const enum tree_code cmp = EQ_EXPR;
12161 0 : if (!HONOR_SIGNED_ZEROS (type)
12162 0 : && bitwise_equal_p (captures[0], captures[1])
12163 : )
12164 : {
12165 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
12166 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1913;
12167 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
12168 0 : {
12169 0 : tree _r;
12170 0 : _r = captures[2];
12171 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12172 0 : return _r;
12173 : }
12174 0 : next_after_fail1913:;
12175 : }
12176 : }
12177 : }
12178 : break;
12179 : }
12180 1103 : default:;
12181 : }
12182 1103 : if (zerop (_p1))
12183 : {
12184 18 : switch (TREE_CODE (_p2))
12185 : {
12186 0 : case NEGATE_EXPR:
12187 0 : {
12188 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12189 0 : {
12190 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12191 0 : const enum tree_code cmp = EQ_EXPR;
12192 0 : if (!HONOR_SIGNED_ZEROS (type)
12193 0 : && bitwise_equal_p (captures[0], captures[2])
12194 : )
12195 : {
12196 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1914;
12197 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1914;
12198 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1914;
12199 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
12200 0 : {
12201 0 : tree _r;
12202 0 : _r = captures[1];
12203 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12204 0 : return _r;
12205 : }
12206 0 : next_after_fail1914:;
12207 : }
12208 : }
12209 0 : break;
12210 : }
12211 : default:;
12212 : }
12213 : }
12214 : }
12215 67150 : switch (TREE_CODE (_q20))
12216 : {
12217 0 : case MINUS_EXPR:
12218 0 : {
12219 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12220 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12221 0 : if (zerop (_q21))
12222 : {
12223 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12224 : {
12225 0 : switch (TREE_CODE (_p2))
12226 : {
12227 0 : case MINUS_EXPR:
12228 0 : {
12229 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12230 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12231 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12232 : {
12233 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12234 : {
12235 0 : {
12236 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12237 0 : const enum tree_code cmp = EQ_EXPR;
12238 0 : if (!HONOR_SIGNED_ZEROS (type)
12239 : )
12240 : {
12241 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
12242 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1915;
12243 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
12244 0 : {
12245 0 : tree _r;
12246 0 : _r = captures[3];
12247 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12248 0 : return _r;
12249 : }
12250 0 : next_after_fail1915:;
12251 : }
12252 : }
12253 : }
12254 : }
12255 : break;
12256 : }
12257 : default:;
12258 : }
12259 : }
12260 : }
12261 0 : if (integer_zerop (_q21))
12262 : {
12263 0 : if (integer_zerop (_p1))
12264 : {
12265 0 : switch (TREE_CODE (_p2))
12266 : {
12267 0 : case MINUS_EXPR:
12268 0 : {
12269 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12270 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12271 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12272 : {
12273 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12274 : {
12275 0 : {
12276 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12277 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12278 0 : if (res) return res;
12279 : }
12280 : }
12281 : }
12282 : break;
12283 : }
12284 : default:;
12285 : }
12286 : }
12287 : }
12288 : break;
12289 : }
12290 : default:;
12291 : }
12292 : break;
12293 : }
12294 0 : case UNEQ_EXPR:
12295 0 : {
12296 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12297 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12298 0 : if (zerop (_q21))
12299 : {
12300 0 : switch (TREE_CODE (_p2))
12301 : {
12302 0 : case NEGATE_EXPR:
12303 0 : {
12304 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12305 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12306 : {
12307 0 : {
12308 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12309 0 : const enum tree_code cmp = UNEQ_EXPR;
12310 0 : if (!HONOR_SIGNED_ZEROS (type)
12311 0 : && bitwise_equal_p (captures[0], captures[1])
12312 : )
12313 : {
12314 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1916;
12315 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1916;
12316 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
12317 0 : {
12318 0 : tree _r;
12319 0 : _r = captures[2];
12320 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12321 0 : return _r;
12322 : }
12323 0 : next_after_fail1916:;
12324 : }
12325 : }
12326 : }
12327 : break;
12328 : }
12329 0 : default:;
12330 : }
12331 0 : if (zerop (_p1))
12332 : {
12333 0 : switch (TREE_CODE (_p2))
12334 : {
12335 0 : case NEGATE_EXPR:
12336 0 : {
12337 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12338 0 : {
12339 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12340 0 : const enum tree_code cmp = UNEQ_EXPR;
12341 0 : if (!HONOR_SIGNED_ZEROS (type)
12342 0 : && bitwise_equal_p (captures[0], captures[2])
12343 : )
12344 : {
12345 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1917;
12346 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1917;
12347 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1917;
12348 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
12349 0 : {
12350 0 : tree _r;
12351 0 : _r = captures[1];
12352 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12353 0 : return _r;
12354 : }
12355 0 : next_after_fail1917:;
12356 : }
12357 : }
12358 0 : break;
12359 : }
12360 : default:;
12361 : }
12362 : }
12363 : }
12364 0 : switch (TREE_CODE (_q20))
12365 : {
12366 0 : case MINUS_EXPR:
12367 0 : {
12368 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12369 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12370 0 : if (zerop (_q21))
12371 : {
12372 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12373 : {
12374 0 : switch (TREE_CODE (_p2))
12375 : {
12376 0 : case MINUS_EXPR:
12377 0 : {
12378 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12379 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12380 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12381 : {
12382 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12383 : {
12384 0 : {
12385 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12386 0 : const enum tree_code cmp = UNEQ_EXPR;
12387 0 : if (!HONOR_SIGNED_ZEROS (type)
12388 : )
12389 : {
12390 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1918;
12391 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1918;
12392 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
12393 0 : {
12394 0 : tree _r;
12395 0 : _r = captures[3];
12396 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12397 0 : return _r;
12398 : }
12399 0 : next_after_fail1918:;
12400 : }
12401 : }
12402 : }
12403 : }
12404 : break;
12405 : }
12406 : default:;
12407 : }
12408 : }
12409 : }
12410 0 : if (integer_zerop (_q21))
12411 : {
12412 0 : if (integer_zerop (_p1))
12413 : {
12414 0 : switch (TREE_CODE (_p2))
12415 : {
12416 0 : case MINUS_EXPR:
12417 0 : {
12418 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12419 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12420 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12421 : {
12422 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12423 : {
12424 0 : {
12425 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12426 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12427 0 : if (res) return res;
12428 : }
12429 : }
12430 : }
12431 : break;
12432 : }
12433 : default:;
12434 : }
12435 : }
12436 : }
12437 : break;
12438 : }
12439 : default:;
12440 : }
12441 : break;
12442 : }
12443 1303 : case NE_EXPR:
12444 1303 : {
12445 1303 : tree _q20 = TREE_OPERAND (_p0, 0);
12446 1303 : tree _q21 = TREE_OPERAND (_p0, 1);
12447 1303 : if (zerop (_q21))
12448 : {
12449 336 : switch (TREE_CODE (_p2))
12450 : {
12451 0 : case NEGATE_EXPR:
12452 0 : {
12453 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12454 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12455 : {
12456 0 : {
12457 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12458 0 : const enum tree_code cmp = NE_EXPR;
12459 0 : if (!HONOR_SIGNED_ZEROS (type)
12460 0 : && bitwise_equal_p (captures[0], captures[1])
12461 : )
12462 : {
12463 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1919;
12464 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
12465 0 : {
12466 0 : tree _r;
12467 0 : _r = captures[1];
12468 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12469 0 : return _r;
12470 : }
12471 0 : next_after_fail1919:;
12472 : }
12473 : }
12474 : }
12475 : break;
12476 : }
12477 336 : default:;
12478 : }
12479 336 : if (integer_zerop (_p2))
12480 : {
12481 190 : {
12482 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12483 190 : const enum tree_code cmp = NE_EXPR;
12484 190 : if (!HONOR_SIGNED_ZEROS (type)
12485 190 : && bitwise_equal_p (captures[0], captures[1])
12486 : )
12487 : {
12488 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1920;
12489 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1920;
12490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
12491 0 : {
12492 0 : tree _r;
12493 0 : _r = captures[1];
12494 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12495 0 : return _r;
12496 : }
12497 190 : next_after_fail1920:;
12498 : }
12499 : }
12500 : }
12501 : }
12502 1303 : switch (TREE_CODE (_q20))
12503 : {
12504 40 : case MINUS_EXPR:
12505 40 : {
12506 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12507 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12508 40 : if (zerop (_q21))
12509 : {
12510 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12511 : {
12512 0 : switch (TREE_CODE (_p2))
12513 : {
12514 0 : case MINUS_EXPR:
12515 0 : {
12516 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12517 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12518 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12519 : {
12520 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12521 : {
12522 0 : {
12523 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12524 0 : const enum tree_code cmp = NE_EXPR;
12525 0 : if (!HONOR_SIGNED_ZEROS (type)
12526 : )
12527 : {
12528 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1921;
12529 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1921;
12530 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
12531 0 : {
12532 0 : tree _r;
12533 0 : _r = captures[0];
12534 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12535 0 : return _r;
12536 : }
12537 0 : next_after_fail1921:;
12538 : }
12539 : }
12540 : }
12541 : }
12542 : break;
12543 : }
12544 : default:;
12545 : }
12546 : }
12547 : }
12548 40 : if (integer_zerop (_q21))
12549 : {
12550 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12551 : {
12552 0 : if (integer_zerop (_p2))
12553 : {
12554 0 : {
12555 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12556 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12557 0 : if (res) return res;
12558 : }
12559 : }
12560 : }
12561 : }
12562 : break;
12563 : }
12564 : default:;
12565 : }
12566 : break;
12567 : }
12568 0 : case LTGT_EXPR:
12569 0 : {
12570 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12571 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12572 0 : if (zerop (_q21))
12573 : {
12574 0 : switch (TREE_CODE (_p2))
12575 : {
12576 0 : case NEGATE_EXPR:
12577 0 : {
12578 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12579 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12580 : {
12581 0 : {
12582 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12583 0 : const enum tree_code cmp = LTGT_EXPR;
12584 0 : if (!HONOR_SIGNED_ZEROS (type)
12585 0 : && bitwise_equal_p (captures[0], captures[1])
12586 : )
12587 : {
12588 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1922;
12589 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
12590 0 : {
12591 0 : tree _r;
12592 0 : _r = captures[1];
12593 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12594 0 : return _r;
12595 : }
12596 0 : next_after_fail1922:;
12597 : }
12598 : }
12599 : }
12600 : break;
12601 : }
12602 0 : default:;
12603 : }
12604 0 : if (integer_zerop (_p2))
12605 : {
12606 0 : {
12607 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12608 0 : const enum tree_code cmp = LTGT_EXPR;
12609 0 : if (!HONOR_SIGNED_ZEROS (type)
12610 0 : && bitwise_equal_p (captures[0], captures[1])
12611 : )
12612 : {
12613 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1923;
12614 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1923;
12615 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
12616 0 : {
12617 0 : tree _r;
12618 0 : _r = captures[1];
12619 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12620 0 : return _r;
12621 : }
12622 0 : next_after_fail1923:;
12623 : }
12624 : }
12625 : }
12626 : }
12627 0 : switch (TREE_CODE (_q20))
12628 : {
12629 0 : case MINUS_EXPR:
12630 0 : {
12631 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12632 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12633 0 : if (zerop (_q21))
12634 : {
12635 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12636 : {
12637 0 : switch (TREE_CODE (_p2))
12638 : {
12639 0 : case MINUS_EXPR:
12640 0 : {
12641 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12642 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12643 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12644 : {
12645 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12646 : {
12647 0 : {
12648 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12649 0 : const enum tree_code cmp = LTGT_EXPR;
12650 0 : if (!HONOR_SIGNED_ZEROS (type)
12651 : )
12652 : {
12653 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1924;
12654 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1924;
12655 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
12656 0 : {
12657 0 : tree _r;
12658 0 : _r = captures[0];
12659 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12660 0 : return _r;
12661 : }
12662 0 : next_after_fail1924:;
12663 : }
12664 : }
12665 : }
12666 : }
12667 : break;
12668 : }
12669 : default:;
12670 : }
12671 : }
12672 : }
12673 0 : if (integer_zerop (_q21))
12674 : {
12675 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12676 : {
12677 0 : if (integer_zerop (_p2))
12678 : {
12679 0 : {
12680 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12681 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12682 0 : if (res) return res;
12683 : }
12684 : }
12685 : }
12686 : }
12687 : break;
12688 : }
12689 : default:;
12690 : }
12691 : break;
12692 : }
12693 1198 : case GE_EXPR:
12694 1198 : {
12695 1198 : tree _q20 = TREE_OPERAND (_p0, 0);
12696 1198 : tree _q21 = TREE_OPERAND (_p0, 1);
12697 1198 : switch (TREE_CODE (_q20))
12698 : {
12699 3 : CASE_CONVERT:
12700 3 : {
12701 3 : tree _q30 = TREE_OPERAND (_q20, 0);
12702 3 : if (zerop (_q21))
12703 : {
12704 0 : switch (TREE_CODE (_p2))
12705 : {
12706 0 : case NEGATE_EXPR:
12707 0 : {
12708 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12709 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12710 : {
12711 0 : {
12712 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12713 0 : const enum tree_code cmp = GE_EXPR;
12714 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12715 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12716 0 : && element_precision (captures[1])
12717 0 : <= element_precision (captures[0])
12718 0 : && bitwise_equal_p (captures[1], captures[2])
12719 0 : && (!VECTOR_TYPE_P (type)
12720 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12721 : )
12722 : {
12723 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12724 : )
12725 : {
12726 0 : {
12727 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12728 0 : if (types_match (captures[0], stype)
12729 : )
12730 : {
12731 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1925;
12732 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
12733 0 : {
12734 0 : tree res_op0;
12735 0 : res_op0 = captures[0];
12736 0 : tree _r;
12737 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12738 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12739 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12740 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12741 0 : return _r;
12742 : }
12743 0 : next_after_fail1925:;
12744 : }
12745 : else
12746 : {
12747 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1926;
12748 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
12749 0 : {
12750 0 : tree res_op0;
12751 0 : {
12752 0 : tree _o1[1], _r1;
12753 0 : _o1[0] = captures[2];
12754 0 : if (TREE_TYPE (_o1[0]) != stype)
12755 : {
12756 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12757 : }
12758 : else
12759 : _r1 = _o1[0];
12760 0 : res_op0 = _r1;
12761 : }
12762 0 : tree _r;
12763 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12764 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
12765 0 : return _r;
12766 : }
12767 0 : next_after_fail1926:;
12768 : }
12769 : }
12770 : }
12771 : else
12772 : {
12773 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1927;
12774 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
12775 0 : {
12776 0 : tree res_op0;
12777 0 : res_op0 = captures[2];
12778 0 : tree _r;
12779 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12780 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
12781 0 : return _r;
12782 : }
12783 0 : next_after_fail1927:;
12784 : }
12785 : }
12786 : }
12787 : }
12788 : break;
12789 : }
12790 : default:;
12791 : }
12792 : }
12793 : break;
12794 : }
12795 1198 : default:;
12796 : }
12797 1198 : if (zerop (_q21))
12798 : {
12799 350 : switch (TREE_CODE (_p2))
12800 : {
12801 3 : case NEGATE_EXPR:
12802 3 : {
12803 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12804 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12805 : {
12806 3 : {
12807 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12808 3 : const enum tree_code cmp = GE_EXPR;
12809 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12810 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12811 6 : && element_precision (captures[1])
12812 3 : <= element_precision (captures[0])
12813 3 : && bitwise_equal_p (captures[1], captures[2])
12814 6 : && (!VECTOR_TYPE_P (type)
12815 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12816 : )
12817 : {
12818 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12819 : )
12820 : {
12821 0 : {
12822 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12823 0 : if (types_match (captures[0], stype)
12824 : )
12825 : {
12826 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1928;
12827 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
12828 0 : {
12829 0 : tree res_op0;
12830 0 : res_op0 = captures[0];
12831 0 : tree _r;
12832 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12833 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12834 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12835 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12836 0 : return _r;
12837 : }
12838 0 : next_after_fail1928:;
12839 : }
12840 : else
12841 : {
12842 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1929;
12843 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
12844 0 : {
12845 0 : tree res_op0;
12846 0 : {
12847 0 : tree _o1[1], _r1;
12848 0 : _o1[0] = captures[2];
12849 0 : if (TREE_TYPE (_o1[0]) != stype)
12850 : {
12851 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12852 : }
12853 : else
12854 : _r1 = _o1[0];
12855 0 : res_op0 = _r1;
12856 : }
12857 0 : tree _r;
12858 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
12860 0 : return _r;
12861 : }
12862 0 : next_after_fail1929:;
12863 : }
12864 : }
12865 : }
12866 : else
12867 : {
12868 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1930;
12869 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
12870 3 : {
12871 3 : tree res_op0;
12872 3 : res_op0 = captures[2];
12873 3 : tree _r;
12874 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12875 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
12876 3 : return _r;
12877 : }
12878 0 : next_after_fail1930:;
12879 : }
12880 : }
12881 : }
12882 : }
12883 : break;
12884 : }
12885 : default:;
12886 : }
12887 : }
12888 1195 : switch (TREE_CODE (_q20))
12889 : {
12890 0 : case MINUS_EXPR:
12891 0 : {
12892 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12893 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12894 0 : if (zerop (_q21))
12895 : {
12896 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12897 : {
12898 0 : switch (TREE_CODE (_p2))
12899 : {
12900 0 : case MINUS_EXPR:
12901 0 : {
12902 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12903 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12904 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12905 : {
12906 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12907 : {
12908 0 : {
12909 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12910 0 : const enum tree_code cmp = GE_EXPR;
12911 0 : if (!HONOR_SIGNED_ZEROS (type)
12912 0 : && !TYPE_UNSIGNED (type)
12913 0 : && (!VECTOR_TYPE_P (type)
12914 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12915 : )
12916 : {
12917 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1931;
12918 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1931;
12919 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
12920 0 : {
12921 0 : tree res_op0;
12922 0 : res_op0 = captures[0];
12923 0 : tree _r;
12924 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12925 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
12926 0 : return _r;
12927 : }
12928 0 : next_after_fail1931:;
12929 : }
12930 : }
12931 : }
12932 : }
12933 : break;
12934 : }
12935 : default:;
12936 : }
12937 : }
12938 : }
12939 : break;
12940 : }
12941 : default:;
12942 : }
12943 : break;
12944 : }
12945 66453 : case GT_EXPR:
12946 66453 : {
12947 66453 : tree _q20 = TREE_OPERAND (_p0, 0);
12948 66453 : tree _q21 = TREE_OPERAND (_p0, 1);
12949 66453 : switch (TREE_CODE (_q20))
12950 : {
12951 13 : CASE_CONVERT:
12952 13 : {
12953 13 : tree _q30 = TREE_OPERAND (_q20, 0);
12954 13 : if (zerop (_q21))
12955 : {
12956 1 : switch (TREE_CODE (_p2))
12957 : {
12958 0 : case NEGATE_EXPR:
12959 0 : {
12960 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12961 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12962 : {
12963 0 : {
12964 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12965 0 : const enum tree_code cmp = GT_EXPR;
12966 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12967 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12968 0 : && element_precision (captures[1])
12969 0 : <= element_precision (captures[0])
12970 0 : && bitwise_equal_p (captures[1], captures[2])
12971 0 : && (!VECTOR_TYPE_P (type)
12972 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12973 : )
12974 : {
12975 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12976 : )
12977 : {
12978 0 : {
12979 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12980 0 : if (types_match (captures[0], stype)
12981 : )
12982 : {
12983 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1932;
12984 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
12985 0 : {
12986 0 : tree res_op0;
12987 0 : res_op0 = captures[0];
12988 0 : tree _r;
12989 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12990 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12991 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12992 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12993 0 : return _r;
12994 : }
12995 0 : next_after_fail1932:;
12996 : }
12997 : else
12998 : {
12999 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1933;
13000 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
13001 0 : {
13002 0 : tree res_op0;
13003 0 : {
13004 0 : tree _o1[1], _r1;
13005 0 : _o1[0] = captures[2];
13006 0 : if (TREE_TYPE (_o1[0]) != stype)
13007 : {
13008 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13009 : }
13010 : else
13011 : _r1 = _o1[0];
13012 0 : res_op0 = _r1;
13013 : }
13014 0 : tree _r;
13015 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13016 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13017 0 : return _r;
13018 : }
13019 0 : next_after_fail1933:;
13020 : }
13021 : }
13022 : }
13023 : else
13024 : {
13025 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1934;
13026 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
13027 0 : {
13028 0 : tree res_op0;
13029 0 : res_op0 = captures[2];
13030 0 : tree _r;
13031 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13032 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13033 0 : return _r;
13034 : }
13035 0 : next_after_fail1934:;
13036 : }
13037 : }
13038 : }
13039 : }
13040 : break;
13041 : }
13042 : default:;
13043 : }
13044 : }
13045 : break;
13046 : }
13047 66453 : default:;
13048 : }
13049 66453 : if (zerop (_q21))
13050 : {
13051 84 : switch (TREE_CODE (_p2))
13052 : {
13053 6 : case NEGATE_EXPR:
13054 6 : {
13055 6 : tree _q60 = TREE_OPERAND (_p2, 0);
13056 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13057 : {
13058 6 : {
13059 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13060 6 : const enum tree_code cmp = GT_EXPR;
13061 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13062 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13063 12 : && element_precision (captures[1])
13064 6 : <= element_precision (captures[0])
13065 6 : && bitwise_equal_p (captures[1], captures[2])
13066 12 : && (!VECTOR_TYPE_P (type)
13067 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13068 : )
13069 : {
13070 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13071 : )
13072 : {
13073 0 : {
13074 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13075 0 : if (types_match (captures[0], stype)
13076 : )
13077 : {
13078 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1935;
13079 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
13080 0 : {
13081 0 : tree res_op0;
13082 0 : res_op0 = captures[0];
13083 0 : tree _r;
13084 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13085 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13086 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13087 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13088 0 : return _r;
13089 : }
13090 0 : next_after_fail1935:;
13091 : }
13092 : else
13093 : {
13094 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1936;
13095 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
13096 0 : {
13097 0 : tree res_op0;
13098 0 : {
13099 0 : tree _o1[1], _r1;
13100 0 : _o1[0] = captures[2];
13101 0 : if (TREE_TYPE (_o1[0]) != stype)
13102 : {
13103 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13104 : }
13105 : else
13106 : _r1 = _o1[0];
13107 0 : res_op0 = _r1;
13108 : }
13109 0 : tree _r;
13110 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13111 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13112 0 : return _r;
13113 : }
13114 0 : next_after_fail1936:;
13115 : }
13116 : }
13117 : }
13118 : else
13119 : {
13120 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1937;
13121 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
13122 6 : {
13123 6 : tree res_op0;
13124 6 : res_op0 = captures[2];
13125 6 : tree _r;
13126 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13127 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13128 6 : return _r;
13129 : }
13130 0 : next_after_fail1937:;
13131 : }
13132 : }
13133 : }
13134 : }
13135 : break;
13136 : }
13137 : default:;
13138 : }
13139 : }
13140 66447 : switch (TREE_CODE (_q20))
13141 : {
13142 0 : case MINUS_EXPR:
13143 0 : {
13144 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13145 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13146 0 : if (zerop (_q21))
13147 : {
13148 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13149 : {
13150 0 : switch (TREE_CODE (_p2))
13151 : {
13152 0 : case MINUS_EXPR:
13153 0 : {
13154 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13155 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13156 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13157 : {
13158 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13159 : {
13160 0 : {
13161 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13162 0 : const enum tree_code cmp = GT_EXPR;
13163 0 : if (!HONOR_SIGNED_ZEROS (type)
13164 0 : && !TYPE_UNSIGNED (type)
13165 0 : && (!VECTOR_TYPE_P (type)
13166 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13167 : )
13168 : {
13169 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1938;
13170 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1938;
13171 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
13172 0 : {
13173 0 : tree res_op0;
13174 0 : res_op0 = captures[0];
13175 0 : tree _r;
13176 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13177 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13178 0 : return _r;
13179 : }
13180 0 : next_after_fail1938:;
13181 : }
13182 : }
13183 : }
13184 : }
13185 : break;
13186 : }
13187 : default:;
13188 : }
13189 : }
13190 : }
13191 : break;
13192 : }
13193 : default:;
13194 : }
13195 : break;
13196 : }
13197 971 : case LE_EXPR:
13198 971 : {
13199 971 : tree _q20 = TREE_OPERAND (_p0, 0);
13200 971 : tree _q21 = TREE_OPERAND (_p0, 1);
13201 971 : switch (TREE_CODE (_q20))
13202 : {
13203 62 : CASE_CONVERT:
13204 62 : {
13205 62 : tree _q30 = TREE_OPERAND (_q20, 0);
13206 62 : if (zerop (_q21))
13207 : {
13208 0 : switch (TREE_CODE (_p2))
13209 : {
13210 0 : case NEGATE_EXPR:
13211 0 : {
13212 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13213 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13214 : {
13215 0 : {
13216 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13217 0 : const enum tree_code cmp = LE_EXPR;
13218 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13219 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13220 0 : && element_precision (captures[1])
13221 0 : <= element_precision (captures[0])
13222 0 : && bitwise_equal_p (captures[1], captures[2])
13223 0 : && (!VECTOR_TYPE_P (type)
13224 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13225 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13226 : )
13227 : {
13228 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13229 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13230 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13231 : )
13232 : {
13233 0 : {
13234 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13235 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13236 0 : if (types_match (captures[0], stype)
13237 : )
13238 : {
13239 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1939;
13240 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
13241 0 : {
13242 0 : tree res_op0;
13243 0 : {
13244 0 : tree _o1[1], _r1;
13245 0 : {
13246 0 : tree _o2[1], _r2;
13247 0 : _o2[0] = captures[0];
13248 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13249 0 : _o1[0] = _r2;
13250 : }
13251 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13252 0 : res_op0 = _r1;
13253 : }
13254 0 : tree _r;
13255 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13256 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13257 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13258 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13259 0 : return _r;
13260 : }
13261 0 : next_after_fail1939:;
13262 : }
13263 : else
13264 : {
13265 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1940;
13266 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
13267 0 : {
13268 0 : tree res_op0;
13269 0 : {
13270 0 : tree _o1[1], _r1;
13271 0 : {
13272 0 : tree _o2[1], _r2;
13273 0 : {
13274 0 : tree _o3[1], _r3;
13275 0 : _o3[0] = captures[2];
13276 0 : if (TREE_TYPE (_o3[0]) != stype)
13277 : {
13278 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13279 : }
13280 : else
13281 : _r3 = _o3[0];
13282 0 : _o2[0] = _r3;
13283 : }
13284 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13285 0 : _o1[0] = _r2;
13286 : }
13287 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13288 0 : res_op0 = _r1;
13289 : }
13290 0 : tree _r;
13291 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13292 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13293 0 : return _r;
13294 : }
13295 0 : next_after_fail1940:;
13296 : }
13297 : }
13298 : }
13299 : else
13300 : {
13301 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1941;
13302 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
13303 0 : {
13304 0 : tree res_op0;
13305 0 : {
13306 0 : tree _o1[1], _r1;
13307 0 : {
13308 0 : tree _o2[1], _r2;
13309 0 : _o2[0] = captures[2];
13310 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13311 0 : _o1[0] = _r2;
13312 : }
13313 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13314 0 : res_op0 = _r1;
13315 : }
13316 0 : tree _r;
13317 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13318 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13319 0 : return _r;
13320 : }
13321 0 : next_after_fail1941:;
13322 : }
13323 : }
13324 : }
13325 : }
13326 : break;
13327 : }
13328 : default:;
13329 : }
13330 : }
13331 : break;
13332 : }
13333 971 : default:;
13334 : }
13335 971 : if (zerop (_q21))
13336 : {
13337 18 : switch (TREE_CODE (_p2))
13338 : {
13339 0 : case NEGATE_EXPR:
13340 0 : {
13341 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13342 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13343 : {
13344 0 : {
13345 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13346 0 : const enum tree_code cmp = LE_EXPR;
13347 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13348 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13349 0 : && element_precision (captures[1])
13350 0 : <= element_precision (captures[0])
13351 0 : && bitwise_equal_p (captures[1], captures[2])
13352 0 : && (!VECTOR_TYPE_P (type)
13353 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13354 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13355 : )
13356 : {
13357 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13358 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13359 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13360 : )
13361 : {
13362 0 : {
13363 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13364 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13365 0 : if (types_match (captures[0], stype)
13366 : )
13367 : {
13368 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1942;
13369 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
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[0];
13377 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _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 (TREE_SIDE_EFFECTS (captures[2]))
13386 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13387 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13388 0 : return _r;
13389 : }
13390 0 : next_after_fail1942:;
13391 : }
13392 : else
13393 : {
13394 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1943;
13395 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
13396 0 : {
13397 0 : tree res_op0;
13398 0 : {
13399 0 : tree _o1[1], _r1;
13400 0 : {
13401 0 : tree _o2[1], _r2;
13402 0 : {
13403 0 : tree _o3[1], _r3;
13404 0 : _o3[0] = captures[2];
13405 0 : if (TREE_TYPE (_o3[0]) != stype)
13406 : {
13407 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13408 : }
13409 : else
13410 : _r3 = _o3[0];
13411 0 : _o2[0] = _r3;
13412 : }
13413 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13414 0 : _o1[0] = _r2;
13415 : }
13416 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13417 0 : res_op0 = _r1;
13418 : }
13419 0 : tree _r;
13420 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13421 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13422 0 : return _r;
13423 : }
13424 0 : next_after_fail1943:;
13425 : }
13426 : }
13427 : }
13428 : else
13429 : {
13430 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1944;
13431 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
13432 0 : {
13433 0 : tree res_op0;
13434 0 : {
13435 0 : tree _o1[1], _r1;
13436 0 : {
13437 0 : tree _o2[1], _r2;
13438 0 : _o2[0] = captures[2];
13439 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13440 0 : _o1[0] = _r2;
13441 : }
13442 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13443 0 : res_op0 = _r1;
13444 : }
13445 0 : tree _r;
13446 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13447 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13448 0 : return _r;
13449 : }
13450 0 : next_after_fail1944:;
13451 : }
13452 : }
13453 : }
13454 : }
13455 : break;
13456 : }
13457 : default:;
13458 : }
13459 : }
13460 971 : switch (TREE_CODE (_q20))
13461 : {
13462 0 : case MINUS_EXPR:
13463 0 : {
13464 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13465 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13466 0 : if (zerop (_q21))
13467 : {
13468 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13469 : {
13470 0 : switch (TREE_CODE (_p2))
13471 : {
13472 0 : case MINUS_EXPR:
13473 0 : {
13474 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13475 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13476 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13477 : {
13478 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13479 : {
13480 0 : {
13481 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13482 0 : const enum tree_code cmp = LE_EXPR;
13483 0 : if (!HONOR_SIGNED_ZEROS (type)
13484 0 : && !TYPE_UNSIGNED (type)
13485 : )
13486 : {
13487 0 : if (ANY_INTEGRAL_TYPE_P (type)
13488 0 : && !TYPE_OVERFLOW_WRAPS (type)
13489 0 : && (!VECTOR_TYPE_P (type)
13490 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13491 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13492 : )
13493 : {
13494 0 : {
13495 0 : tree utype = unsigned_type_for (type);
13496 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1945;
13497 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1945;
13498 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
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[0];
13506 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _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", 1076, __FILE__, __LINE__, true);
13515 0 : return _r;
13516 : }
13517 0 : next_after_fail1945:;
13518 : }
13519 : }
13520 : else
13521 : {
13522 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1946;
13523 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1946;
13524 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
13525 0 : {
13526 0 : tree res_op0;
13527 0 : {
13528 0 : tree _o1[1], _r1;
13529 0 : _o1[0] = captures[0];
13530 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13531 0 : res_op0 = _r1;
13532 : }
13533 0 : tree _r;
13534 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13535 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13536 0 : return _r;
13537 : }
13538 0 : next_after_fail1946:;
13539 : }
13540 : }
13541 : }
13542 : }
13543 : }
13544 : break;
13545 : }
13546 : default:;
13547 : }
13548 : }
13549 : }
13550 : break;
13551 : }
13552 : default:;
13553 : }
13554 : break;
13555 : }
13556 20799 : case LT_EXPR:
13557 20799 : {
13558 20799 : tree _q20 = TREE_OPERAND (_p0, 0);
13559 20799 : tree _q21 = TREE_OPERAND (_p0, 1);
13560 20799 : switch (TREE_CODE (_q20))
13561 : {
13562 162 : CASE_CONVERT:
13563 162 : {
13564 162 : tree _q30 = TREE_OPERAND (_q20, 0);
13565 162 : if (zerop (_q21))
13566 : {
13567 83 : switch (TREE_CODE (_p2))
13568 : {
13569 0 : case NEGATE_EXPR:
13570 0 : {
13571 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13572 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13573 : {
13574 0 : {
13575 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13576 0 : const enum tree_code cmp = LT_EXPR;
13577 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13578 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13579 0 : && element_precision (captures[1])
13580 0 : <= element_precision (captures[0])
13581 0 : && bitwise_equal_p (captures[1], captures[2])
13582 0 : && (!VECTOR_TYPE_P (type)
13583 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13584 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13585 : )
13586 : {
13587 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13588 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13589 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13590 : )
13591 : {
13592 0 : {
13593 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13594 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13595 0 : if (types_match (captures[0], stype)
13596 : )
13597 : {
13598 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1947;
13599 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
13600 0 : {
13601 0 : tree res_op0;
13602 0 : {
13603 0 : tree _o1[1], _r1;
13604 0 : {
13605 0 : tree _o2[1], _r2;
13606 0 : _o2[0] = captures[0];
13607 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13608 0 : _o1[0] = _r2;
13609 : }
13610 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13611 0 : res_op0 = _r1;
13612 : }
13613 0 : tree _r;
13614 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13615 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13616 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13617 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13618 0 : return _r;
13619 : }
13620 0 : next_after_fail1947:;
13621 : }
13622 : else
13623 : {
13624 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1948;
13625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
13626 0 : {
13627 0 : tree res_op0;
13628 0 : {
13629 0 : tree _o1[1], _r1;
13630 0 : {
13631 0 : tree _o2[1], _r2;
13632 0 : {
13633 0 : tree _o3[1], _r3;
13634 0 : _o3[0] = captures[2];
13635 0 : if (TREE_TYPE (_o3[0]) != stype)
13636 : {
13637 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13638 : }
13639 : else
13640 : _r3 = _o3[0];
13641 0 : _o2[0] = _r3;
13642 : }
13643 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13644 0 : _o1[0] = _r2;
13645 : }
13646 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13647 0 : res_op0 = _r1;
13648 : }
13649 0 : tree _r;
13650 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13651 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13652 0 : return _r;
13653 : }
13654 0 : next_after_fail1948:;
13655 : }
13656 : }
13657 : }
13658 : else
13659 : {
13660 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1949;
13661 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
13662 0 : {
13663 0 : tree res_op0;
13664 0 : {
13665 0 : tree _o1[1], _r1;
13666 0 : {
13667 0 : tree _o2[1], _r2;
13668 0 : _o2[0] = captures[2];
13669 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13670 0 : _o1[0] = _r2;
13671 : }
13672 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13673 0 : res_op0 = _r1;
13674 : }
13675 0 : tree _r;
13676 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13677 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13678 0 : return _r;
13679 : }
13680 0 : next_after_fail1949:;
13681 : }
13682 : }
13683 : }
13684 : }
13685 : break;
13686 : }
13687 : default:;
13688 : }
13689 : }
13690 : break;
13691 : }
13692 20799 : default:;
13693 : }
13694 20799 : if (zerop (_q21))
13695 : {
13696 633 : switch (TREE_CODE (_p2))
13697 : {
13698 16 : case NEGATE_EXPR:
13699 16 : {
13700 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13701 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13702 : {
13703 16 : {
13704 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13705 16 : const enum tree_code cmp = LT_EXPR;
13706 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13707 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13708 32 : && element_precision (captures[1])
13709 16 : <= element_precision (captures[0])
13710 16 : && bitwise_equal_p (captures[1], captures[2])
13711 32 : && (!VECTOR_TYPE_P (type)
13712 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13713 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13714 : )
13715 : {
13716 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13717 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13718 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13719 : )
13720 : {
13721 0 : {
13722 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13723 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13724 0 : if (types_match (captures[0], stype)
13725 : )
13726 : {
13727 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1950;
13728 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
13729 0 : {
13730 0 : tree res_op0;
13731 0 : {
13732 0 : tree _o1[1], _r1;
13733 0 : {
13734 0 : tree _o2[1], _r2;
13735 0 : _o2[0] = captures[0];
13736 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13737 0 : _o1[0] = _r2;
13738 : }
13739 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13740 0 : res_op0 = _r1;
13741 : }
13742 0 : tree _r;
13743 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13744 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13745 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13746 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13747 0 : return _r;
13748 : }
13749 16 : next_after_fail1950:;
13750 : }
13751 : else
13752 : {
13753 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1951;
13754 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
13755 0 : {
13756 0 : tree res_op0;
13757 0 : {
13758 0 : tree _o1[1], _r1;
13759 0 : {
13760 0 : tree _o2[1], _r2;
13761 0 : {
13762 0 : tree _o3[1], _r3;
13763 0 : _o3[0] = captures[2];
13764 0 : if (TREE_TYPE (_o3[0]) != stype)
13765 : {
13766 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13767 : }
13768 : else
13769 : _r3 = _o3[0];
13770 0 : _o2[0] = _r3;
13771 : }
13772 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13773 0 : _o1[0] = _r2;
13774 : }
13775 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13776 0 : res_op0 = _r1;
13777 : }
13778 0 : tree _r;
13779 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13780 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13781 0 : return _r;
13782 : }
13783 16 : next_after_fail1951:;
13784 : }
13785 : }
13786 : }
13787 : else
13788 : {
13789 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1952;
13790 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
13791 0 : {
13792 0 : tree res_op0;
13793 0 : {
13794 0 : tree _o1[1], _r1;
13795 0 : {
13796 0 : tree _o2[1], _r2;
13797 0 : _o2[0] = captures[2];
13798 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13799 0 : _o1[0] = _r2;
13800 : }
13801 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13802 0 : res_op0 = _r1;
13803 : }
13804 0 : tree _r;
13805 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13806 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13807 0 : return _r;
13808 : }
13809 16 : next_after_fail1952:;
13810 : }
13811 : }
13812 : }
13813 : }
13814 : break;
13815 : }
13816 : default:;
13817 : }
13818 : }
13819 20799 : switch (TREE_CODE (_q20))
13820 : {
13821 0 : case MINUS_EXPR:
13822 0 : {
13823 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13824 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13825 0 : if (zerop (_q21))
13826 : {
13827 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13828 : {
13829 0 : switch (TREE_CODE (_p2))
13830 : {
13831 0 : case MINUS_EXPR:
13832 0 : {
13833 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13834 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13835 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13836 : {
13837 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13838 : {
13839 0 : {
13840 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13841 0 : const enum tree_code cmp = LT_EXPR;
13842 0 : if (!HONOR_SIGNED_ZEROS (type)
13843 0 : && !TYPE_UNSIGNED (type)
13844 : )
13845 : {
13846 0 : if (ANY_INTEGRAL_TYPE_P (type)
13847 0 : && !TYPE_OVERFLOW_WRAPS (type)
13848 0 : && (!VECTOR_TYPE_P (type)
13849 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13850 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13851 : )
13852 : {
13853 0 : {
13854 0 : tree utype = unsigned_type_for (type);
13855 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1953;
13856 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1953;
13857 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
13858 0 : {
13859 0 : tree res_op0;
13860 0 : {
13861 0 : tree _o1[1], _r1;
13862 0 : {
13863 0 : tree _o2[1], _r2;
13864 0 : _o2[0] = captures[0];
13865 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13866 0 : _o1[0] = _r2;
13867 : }
13868 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13869 0 : res_op0 = _r1;
13870 : }
13871 0 : tree _r;
13872 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13873 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13874 0 : return _r;
13875 : }
13876 0 : next_after_fail1953:;
13877 : }
13878 : }
13879 : else
13880 : {
13881 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1954;
13882 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1954;
13883 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
13884 0 : {
13885 0 : tree res_op0;
13886 0 : {
13887 0 : tree _o1[1], _r1;
13888 0 : _o1[0] = captures[0];
13889 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13890 0 : res_op0 = _r1;
13891 : }
13892 0 : tree _r;
13893 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13894 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13895 0 : return _r;
13896 : }
13897 0 : next_after_fail1954:;
13898 : }
13899 : }
13900 : }
13901 : }
13902 : }
13903 : break;
13904 : }
13905 : default:;
13906 : }
13907 : }
13908 : }
13909 : break;
13910 : }
13911 : default:;
13912 : }
13913 : break;
13914 : }
13915 387873 : default:;
13916 : }
13917 387873 : {
13918 387873 : tree _p0_pops[1];
13919 387873 : if (tree_logical_inverted_value (_p0, _p0_pops))
13920 : {
13921 986 : tree _q20 = _p0_pops[0];
13922 986 : if (tree_truth_valued_p (_q20))
13923 : {
13924 0 : {
13925 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13926 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13927 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13928 : )
13929 : {
13930 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
13931 0 : {
13932 0 : tree res_op0;
13933 0 : res_op0 = captures[0];
13934 0 : tree res_op1;
13935 0 : res_op1 = captures[2];
13936 0 : tree res_op2;
13937 0 : res_op2 = captures[1];
13938 0 : tree _r;
13939 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13940 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13941 0 : return _r;
13942 : }
13943 0 : next_after_fail1955:;
13944 : }
13945 : }
13946 : }
13947 : }
13948 : }
13949 387873 : switch (TREE_CODE (_p1))
13950 : {
13951 0 : case VIEW_CONVERT_EXPR:
13952 0 : {
13953 0 : tree _q30 = TREE_OPERAND (_p1, 0);
13954 0 : switch (TREE_CODE (_q30))
13955 : {
13956 0 : case CALL_EXPR:
13957 0 : switch (get_call_combined_fn (_q30))
13958 : {
13959 0 : case CFN_COND_ADD:
13960 0 : if (call_expr_nargs (_q30) == 4)
13961 : {
13962 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13963 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13964 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13965 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13966 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13967 : {
13968 0 : {
13969 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13970 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13971 0 : if (res) return res;
13972 : }
13973 : }
13974 : }
13975 : break;
13976 0 : case CFN_COND_AND:
13977 0 : if (call_expr_nargs (_q30) == 4)
13978 : {
13979 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13980 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13981 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13982 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13983 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13984 : {
13985 0 : {
13986 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13987 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13988 0 : if (res) return res;
13989 : }
13990 : }
13991 : }
13992 : break;
13993 0 : case CFN_COND_DIV:
13994 0 : if (call_expr_nargs (_q30) == 4)
13995 : {
13996 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13997 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13998 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13999 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14000 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14001 : {
14002 0 : {
14003 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14004 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14005 0 : if (res) return res;
14006 : }
14007 : }
14008 : }
14009 : break;
14010 0 : case CFN_COND_IOR:
14011 0 : if (call_expr_nargs (_q30) == 4)
14012 : {
14013 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14014 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14015 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14016 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14017 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14018 : {
14019 0 : {
14020 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14021 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14022 0 : if (res) return res;
14023 : }
14024 : }
14025 : }
14026 : break;
14027 0 : case CFN_COND_MAX:
14028 0 : if (call_expr_nargs (_q30) == 4)
14029 : {
14030 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14031 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14032 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14033 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14034 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14035 : {
14036 0 : {
14037 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14038 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14039 0 : if (res) return res;
14040 : }
14041 : }
14042 : }
14043 : break;
14044 0 : case CFN_COND_MIN:
14045 0 : if (call_expr_nargs (_q30) == 4)
14046 : {
14047 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14048 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14049 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14050 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14051 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14052 : {
14053 0 : {
14054 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14055 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14056 0 : if (res) return res;
14057 : }
14058 : }
14059 : }
14060 : break;
14061 0 : case CFN_COND_MOD:
14062 0 : if (call_expr_nargs (_q30) == 4)
14063 : {
14064 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14065 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14066 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14067 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14068 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14069 : {
14070 0 : {
14071 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14072 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14073 0 : if (res) return res;
14074 : }
14075 : }
14076 : }
14077 : break;
14078 0 : case CFN_COND_MUL:
14079 0 : if (call_expr_nargs (_q30) == 4)
14080 : {
14081 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14082 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14083 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14084 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14085 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14086 : {
14087 0 : {
14088 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14089 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14090 0 : if (res) return res;
14091 : }
14092 : }
14093 : }
14094 : break;
14095 0 : case CFN_COND_SHL:
14096 0 : if (call_expr_nargs (_q30) == 4)
14097 : {
14098 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14099 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14100 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14101 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14102 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14103 : {
14104 0 : {
14105 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14106 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14107 0 : if (res) return res;
14108 : }
14109 : }
14110 : }
14111 : break;
14112 0 : case CFN_COND_SHR:
14113 0 : if (call_expr_nargs (_q30) == 4)
14114 : {
14115 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14116 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14117 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14118 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14119 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14120 : {
14121 0 : {
14122 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14123 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14124 0 : if (res) return res;
14125 : }
14126 : }
14127 : }
14128 : break;
14129 0 : case CFN_COND_SUB:
14130 0 : if (call_expr_nargs (_q30) == 4)
14131 : {
14132 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14133 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14134 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14135 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14136 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14137 : {
14138 0 : {
14139 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14140 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14141 0 : if (res) return res;
14142 : }
14143 : }
14144 : }
14145 : break;
14146 0 : case CFN_COND_XOR:
14147 0 : if (call_expr_nargs (_q30) == 4)
14148 : {
14149 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14150 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14151 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14152 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14153 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14154 : {
14155 0 : {
14156 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14157 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14158 0 : if (res) return res;
14159 : }
14160 : }
14161 : }
14162 : break;
14163 0 : case CFN_COND_COPYSIGN:
14164 0 : if (call_expr_nargs (_q30) == 4)
14165 : {
14166 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14167 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14168 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14169 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14170 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14171 : {
14172 0 : {
14173 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14174 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14175 0 : if (res) return res;
14176 : }
14177 : }
14178 : }
14179 : break;
14180 0 : case CFN_COND_FMAX:
14181 0 : if (call_expr_nargs (_q30) == 4)
14182 : {
14183 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14184 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14185 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14186 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14187 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14188 : {
14189 0 : {
14190 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14191 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14192 0 : if (res) return res;
14193 : }
14194 : }
14195 : }
14196 : break;
14197 0 : case CFN_COND_FMIN:
14198 0 : if (call_expr_nargs (_q30) == 4)
14199 : {
14200 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14201 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14202 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14203 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14204 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14205 : {
14206 0 : {
14207 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14208 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14209 0 : if (res) return res;
14210 : }
14211 : }
14212 : }
14213 : break;
14214 0 : case CFN_COND_RDIV:
14215 0 : if (call_expr_nargs (_q30) == 4)
14216 : {
14217 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14218 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14219 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14220 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14221 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14222 : {
14223 0 : {
14224 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14225 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14226 0 : if (res) return res;
14227 : }
14228 : }
14229 : }
14230 : break;
14231 : default:;
14232 : }
14233 : break;
14234 : default:;
14235 : }
14236 : break;
14237 : }
14238 12 : case CALL_EXPR:
14239 12 : switch (get_call_combined_fn (_p1))
14240 : {
14241 0 : case CFN_COND_ADD:
14242 0 : if (call_expr_nargs (_p1) == 4)
14243 : {
14244 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14245 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14246 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14247 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14248 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14249 : {
14250 0 : {
14251 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14252 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14253 0 : if (res) return res;
14254 : }
14255 : }
14256 : }
14257 : break;
14258 0 : case CFN_COND_AND:
14259 0 : if (call_expr_nargs (_p1) == 4)
14260 : {
14261 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14262 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14263 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14264 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14265 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14266 : {
14267 0 : {
14268 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14269 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14270 0 : if (res) return res;
14271 : }
14272 : }
14273 : }
14274 : break;
14275 0 : case CFN_COND_DIV:
14276 0 : if (call_expr_nargs (_p1) == 4)
14277 : {
14278 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14279 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14280 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14281 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14282 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14283 : {
14284 0 : {
14285 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14286 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14287 0 : if (res) return res;
14288 : }
14289 : }
14290 : }
14291 : break;
14292 0 : case CFN_COND_IOR:
14293 0 : if (call_expr_nargs (_p1) == 4)
14294 : {
14295 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14296 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14297 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14298 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14299 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14300 : {
14301 0 : {
14302 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14303 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14304 0 : if (res) return res;
14305 : }
14306 : }
14307 : }
14308 : break;
14309 0 : case CFN_COND_MAX:
14310 0 : if (call_expr_nargs (_p1) == 4)
14311 : {
14312 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14313 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14314 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14315 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14316 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14317 : {
14318 0 : {
14319 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14320 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14321 0 : if (res) return res;
14322 : }
14323 : }
14324 : }
14325 : break;
14326 0 : case CFN_COND_MIN:
14327 0 : if (call_expr_nargs (_p1) == 4)
14328 : {
14329 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14330 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14331 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14332 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14333 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14334 : {
14335 0 : {
14336 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14337 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14338 0 : if (res) return res;
14339 : }
14340 : }
14341 : }
14342 : break;
14343 0 : case CFN_COND_MOD:
14344 0 : if (call_expr_nargs (_p1) == 4)
14345 : {
14346 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14347 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14348 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14349 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14350 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14351 : {
14352 0 : {
14353 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14354 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14355 0 : if (res) return res;
14356 : }
14357 : }
14358 : }
14359 : break;
14360 0 : case CFN_COND_MUL:
14361 0 : if (call_expr_nargs (_p1) == 4)
14362 : {
14363 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14364 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14365 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14366 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14367 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14368 : {
14369 0 : {
14370 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14371 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14372 0 : if (res) return res;
14373 : }
14374 : }
14375 : }
14376 : break;
14377 0 : case CFN_COND_SHL:
14378 0 : if (call_expr_nargs (_p1) == 4)
14379 : {
14380 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14381 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14382 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14383 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14384 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14385 : {
14386 0 : {
14387 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14388 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14389 0 : if (res) return res;
14390 : }
14391 : }
14392 : }
14393 : break;
14394 0 : case CFN_COND_SHR:
14395 0 : if (call_expr_nargs (_p1) == 4)
14396 : {
14397 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14398 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14399 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14400 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14401 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14402 : {
14403 0 : {
14404 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14405 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14406 0 : if (res) return res;
14407 : }
14408 : }
14409 : }
14410 : break;
14411 0 : case CFN_COND_SUB:
14412 0 : if (call_expr_nargs (_p1) == 4)
14413 : {
14414 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14415 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14416 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14417 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14418 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14419 : {
14420 0 : {
14421 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14422 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14423 0 : if (res) return res;
14424 : }
14425 : }
14426 : }
14427 : break;
14428 0 : case CFN_COND_XOR:
14429 0 : if (call_expr_nargs (_p1) == 4)
14430 : {
14431 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14432 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14433 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14434 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14435 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14436 : {
14437 0 : {
14438 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14439 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14440 0 : if (res) return res;
14441 : }
14442 : }
14443 : }
14444 : break;
14445 0 : case CFN_COND_COPYSIGN:
14446 0 : if (call_expr_nargs (_p1) == 4)
14447 : {
14448 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14449 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14450 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14451 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14452 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14453 : {
14454 0 : {
14455 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14456 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14457 0 : if (res) return res;
14458 : }
14459 : }
14460 : }
14461 : break;
14462 0 : case CFN_COND_FMAX:
14463 0 : if (call_expr_nargs (_p1) == 4)
14464 : {
14465 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14466 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14467 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14468 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14469 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14470 : {
14471 0 : {
14472 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14473 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14474 0 : if (res) return res;
14475 : }
14476 : }
14477 : }
14478 : break;
14479 0 : case CFN_COND_FMIN:
14480 0 : if (call_expr_nargs (_p1) == 4)
14481 : {
14482 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14483 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14484 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14485 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14486 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14487 : {
14488 0 : {
14489 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14490 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14491 0 : if (res) return res;
14492 : }
14493 : }
14494 : }
14495 : break;
14496 0 : case CFN_COND_RDIV:
14497 0 : if (call_expr_nargs (_p1) == 4)
14498 : {
14499 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14500 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14501 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14502 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14503 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14504 : {
14505 0 : {
14506 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14507 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14508 0 : if (res) return res;
14509 : }
14510 : }
14511 : }
14512 : break;
14513 : default:;
14514 : }
14515 : break;
14516 387873 : default:;
14517 : }
14518 387873 : switch (TREE_CODE (_p2))
14519 : {
14520 0 : case VIEW_CONVERT_EXPR:
14521 0 : {
14522 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14523 0 : switch (TREE_CODE (_q40))
14524 : {
14525 0 : case CALL_EXPR:
14526 0 : switch (get_call_combined_fn (_q40))
14527 : {
14528 0 : case CFN_COND_ADD:
14529 0 : if (call_expr_nargs (_q40) == 4)
14530 : {
14531 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14532 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14533 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14534 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14535 0 : {
14536 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14537 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14538 0 : if (res) return res;
14539 : }
14540 : }
14541 : break;
14542 0 : case CFN_COND_AND:
14543 0 : if (call_expr_nargs (_q40) == 4)
14544 : {
14545 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14546 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14547 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14548 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14549 0 : {
14550 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14551 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14552 0 : if (res) return res;
14553 : }
14554 : }
14555 : break;
14556 0 : case CFN_COND_DIV:
14557 0 : if (call_expr_nargs (_q40) == 4)
14558 : {
14559 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14560 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14561 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14562 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14563 0 : {
14564 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14565 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14566 0 : if (res) return res;
14567 : }
14568 : }
14569 : break;
14570 0 : case CFN_COND_IOR:
14571 0 : if (call_expr_nargs (_q40) == 4)
14572 : {
14573 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14574 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14575 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14576 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14577 0 : {
14578 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14579 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14580 0 : if (res) return res;
14581 : }
14582 : }
14583 : break;
14584 0 : case CFN_COND_MAX:
14585 0 : if (call_expr_nargs (_q40) == 4)
14586 : {
14587 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14588 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14589 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14590 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14591 0 : {
14592 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14593 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14594 0 : if (res) return res;
14595 : }
14596 : }
14597 : break;
14598 0 : case CFN_COND_MIN:
14599 0 : if (call_expr_nargs (_q40) == 4)
14600 : {
14601 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14602 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14603 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14604 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14605 0 : {
14606 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14607 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14608 0 : if (res) return res;
14609 : }
14610 : }
14611 : break;
14612 0 : case CFN_COND_MOD:
14613 0 : if (call_expr_nargs (_q40) == 4)
14614 : {
14615 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14616 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14617 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14618 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14619 0 : {
14620 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14621 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14622 0 : if (res) return res;
14623 : }
14624 : }
14625 : break;
14626 0 : case CFN_COND_MUL:
14627 0 : if (call_expr_nargs (_q40) == 4)
14628 : {
14629 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14630 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14631 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14632 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14633 0 : {
14634 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14635 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14636 0 : if (res) return res;
14637 : }
14638 : }
14639 : break;
14640 0 : case CFN_COND_SHL:
14641 0 : if (call_expr_nargs (_q40) == 4)
14642 : {
14643 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14644 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14645 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14646 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14647 0 : {
14648 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14649 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14650 0 : if (res) return res;
14651 : }
14652 : }
14653 : break;
14654 0 : case CFN_COND_SHR:
14655 0 : if (call_expr_nargs (_q40) == 4)
14656 : {
14657 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14658 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14659 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14660 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14661 0 : {
14662 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14663 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14664 0 : if (res) return res;
14665 : }
14666 : }
14667 : break;
14668 0 : case CFN_COND_SUB:
14669 0 : if (call_expr_nargs (_q40) == 4)
14670 : {
14671 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14672 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14673 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14674 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14675 0 : {
14676 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14677 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14678 0 : if (res) return res;
14679 : }
14680 : }
14681 : break;
14682 0 : case CFN_COND_XOR:
14683 0 : if (call_expr_nargs (_q40) == 4)
14684 : {
14685 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14686 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14687 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14688 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14689 0 : {
14690 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14691 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14692 0 : if (res) return res;
14693 : }
14694 : }
14695 : break;
14696 0 : case CFN_COND_COPYSIGN:
14697 0 : if (call_expr_nargs (_q40) == 4)
14698 : {
14699 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14700 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14701 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14702 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14703 0 : {
14704 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14705 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14706 0 : if (res) return res;
14707 : }
14708 : }
14709 : break;
14710 0 : case CFN_COND_FMAX:
14711 0 : if (call_expr_nargs (_q40) == 4)
14712 : {
14713 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14714 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14715 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14716 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14717 0 : {
14718 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14719 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14720 0 : if (res) return res;
14721 : }
14722 : }
14723 : break;
14724 0 : case CFN_COND_FMIN:
14725 0 : if (call_expr_nargs (_q40) == 4)
14726 : {
14727 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14728 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14729 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14730 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14731 0 : {
14732 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14733 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14734 0 : if (res) return res;
14735 : }
14736 : }
14737 : break;
14738 0 : case CFN_COND_RDIV:
14739 0 : if (call_expr_nargs (_q40) == 4)
14740 : {
14741 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14742 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14743 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14744 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14745 0 : {
14746 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14747 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14748 0 : if (res) return res;
14749 : }
14750 : }
14751 : break;
14752 : default:;
14753 : }
14754 : break;
14755 : default:;
14756 : }
14757 : break;
14758 : }
14759 12 : case CALL_EXPR:
14760 12 : switch (get_call_combined_fn (_p2))
14761 : {
14762 0 : case CFN_COND_ADD:
14763 0 : if (call_expr_nargs (_p2) == 4)
14764 : {
14765 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14766 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14767 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14768 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14769 0 : {
14770 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14771 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14772 0 : if (res) return res;
14773 : }
14774 : }
14775 : break;
14776 0 : case CFN_COND_AND:
14777 0 : if (call_expr_nargs (_p2) == 4)
14778 : {
14779 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14780 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14781 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14782 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14783 0 : {
14784 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14785 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14786 0 : if (res) return res;
14787 : }
14788 : }
14789 : break;
14790 0 : case CFN_COND_DIV:
14791 0 : if (call_expr_nargs (_p2) == 4)
14792 : {
14793 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14794 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14795 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14796 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14797 0 : {
14798 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14799 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14800 0 : if (res) return res;
14801 : }
14802 : }
14803 : break;
14804 0 : case CFN_COND_IOR:
14805 0 : if (call_expr_nargs (_p2) == 4)
14806 : {
14807 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14808 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14809 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14810 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14811 0 : {
14812 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14813 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14814 0 : if (res) return res;
14815 : }
14816 : }
14817 : break;
14818 0 : case CFN_COND_MAX:
14819 0 : if (call_expr_nargs (_p2) == 4)
14820 : {
14821 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14822 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14823 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14824 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14825 0 : {
14826 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14827 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14828 0 : if (res) return res;
14829 : }
14830 : }
14831 : break;
14832 0 : case CFN_COND_MIN:
14833 0 : if (call_expr_nargs (_p2) == 4)
14834 : {
14835 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14836 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14837 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14838 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14839 0 : {
14840 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14841 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14842 0 : if (res) return res;
14843 : }
14844 : }
14845 : break;
14846 0 : case CFN_COND_MOD:
14847 0 : if (call_expr_nargs (_p2) == 4)
14848 : {
14849 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14850 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14851 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14852 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14853 0 : {
14854 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14855 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14856 0 : if (res) return res;
14857 : }
14858 : }
14859 : break;
14860 0 : case CFN_COND_MUL:
14861 0 : if (call_expr_nargs (_p2) == 4)
14862 : {
14863 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14864 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14865 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14866 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14867 0 : {
14868 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14869 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14870 0 : if (res) return res;
14871 : }
14872 : }
14873 : break;
14874 0 : case CFN_COND_SHL:
14875 0 : if (call_expr_nargs (_p2) == 4)
14876 : {
14877 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14878 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14879 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14880 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14881 0 : {
14882 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14883 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14884 0 : if (res) return res;
14885 : }
14886 : }
14887 : break;
14888 0 : case CFN_COND_SHR:
14889 0 : if (call_expr_nargs (_p2) == 4)
14890 : {
14891 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14892 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14893 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14894 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14895 0 : {
14896 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14897 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14898 0 : if (res) return res;
14899 : }
14900 : }
14901 : break;
14902 0 : case CFN_COND_SUB:
14903 0 : if (call_expr_nargs (_p2) == 4)
14904 : {
14905 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14906 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14907 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14908 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14909 0 : {
14910 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14911 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14912 0 : if (res) return res;
14913 : }
14914 : }
14915 : break;
14916 0 : case CFN_COND_XOR:
14917 0 : if (call_expr_nargs (_p2) == 4)
14918 : {
14919 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14920 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14921 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14922 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14923 0 : {
14924 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14925 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14926 0 : if (res) return res;
14927 : }
14928 : }
14929 : break;
14930 0 : case CFN_COND_COPYSIGN:
14931 0 : if (call_expr_nargs (_p2) == 4)
14932 : {
14933 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14934 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14935 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14936 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14937 0 : {
14938 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14939 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14940 0 : if (res) return res;
14941 : }
14942 : }
14943 : break;
14944 0 : case CFN_COND_FMAX:
14945 0 : if (call_expr_nargs (_p2) == 4)
14946 : {
14947 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14948 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14949 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14950 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14951 0 : {
14952 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14953 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14954 0 : if (res) return res;
14955 : }
14956 : }
14957 : break;
14958 0 : case CFN_COND_FMIN:
14959 0 : if (call_expr_nargs (_p2) == 4)
14960 : {
14961 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14962 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14963 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14964 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14965 0 : {
14966 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14967 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14968 0 : if (res) return res;
14969 : }
14970 : }
14971 : break;
14972 0 : case CFN_COND_RDIV:
14973 0 : if (call_expr_nargs (_p2) == 4)
14974 : {
14975 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14976 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14977 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14978 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14979 0 : {
14980 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14981 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14982 0 : if (res) return res;
14983 : }
14984 : }
14985 : break;
14986 : default:;
14987 : }
14988 : break;
14989 387873 : default:;
14990 : }
14991 387873 : switch (TREE_CODE (_p1))
14992 : {
14993 0 : case VIEW_CONVERT_EXPR:
14994 0 : {
14995 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14996 0 : switch (TREE_CODE (_q30))
14997 : {
14998 0 : case CALL_EXPR:
14999 0 : switch (get_call_combined_fn (_q30))
15000 : {
15001 0 : case CFN_COND_FMA:
15002 0 : if (call_expr_nargs (_q30) == 5)
15003 : {
15004 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15005 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15006 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15007 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15008 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15009 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15010 : {
15011 0 : {
15012 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15013 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15014 0 : if (res) return res;
15015 : }
15016 : }
15017 : }
15018 : break;
15019 0 : case CFN_COND_FMS:
15020 0 : if (call_expr_nargs (_q30) == 5)
15021 : {
15022 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15023 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15024 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15025 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15026 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15027 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15028 : {
15029 0 : {
15030 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15031 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15032 0 : if (res) return res;
15033 : }
15034 : }
15035 : }
15036 : break;
15037 0 : case CFN_COND_FNMA:
15038 0 : if (call_expr_nargs (_q30) == 5)
15039 : {
15040 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15041 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15042 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15043 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15044 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15045 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15046 : {
15047 0 : {
15048 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15049 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15050 0 : if (res) return res;
15051 : }
15052 : }
15053 : }
15054 : break;
15055 0 : case CFN_COND_FNMS:
15056 0 : if (call_expr_nargs (_q30) == 5)
15057 : {
15058 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15059 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15060 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15061 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15062 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15063 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15064 : {
15065 0 : {
15066 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15067 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15068 0 : if (res) return res;
15069 : }
15070 : }
15071 : }
15072 : break;
15073 : default:;
15074 : }
15075 : break;
15076 : default:;
15077 : }
15078 : break;
15079 : }
15080 12 : case CALL_EXPR:
15081 12 : switch (get_call_combined_fn (_p1))
15082 : {
15083 0 : case CFN_COND_FMA:
15084 0 : if (call_expr_nargs (_p1) == 5)
15085 : {
15086 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15087 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15088 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15089 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15090 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15091 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15092 : {
15093 0 : {
15094 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15095 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15096 0 : if (res) return res;
15097 : }
15098 : }
15099 : }
15100 : break;
15101 0 : case CFN_COND_FMS:
15102 0 : if (call_expr_nargs (_p1) == 5)
15103 : {
15104 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15105 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15106 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15107 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15108 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15109 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15110 : {
15111 0 : {
15112 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15113 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15114 0 : if (res) return res;
15115 : }
15116 : }
15117 : }
15118 : break;
15119 0 : case CFN_COND_FNMA:
15120 0 : if (call_expr_nargs (_p1) == 5)
15121 : {
15122 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15123 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15124 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15125 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15126 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15127 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15128 : {
15129 0 : {
15130 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15131 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15132 0 : if (res) return res;
15133 : }
15134 : }
15135 : }
15136 : break;
15137 0 : case CFN_COND_FNMS:
15138 0 : if (call_expr_nargs (_p1) == 5)
15139 : {
15140 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15141 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15142 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15143 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15144 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15145 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15146 : {
15147 0 : {
15148 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15149 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15150 0 : if (res) return res;
15151 : }
15152 : }
15153 : }
15154 : break;
15155 : default:;
15156 : }
15157 : break;
15158 387873 : default:;
15159 : }
15160 387873 : switch (TREE_CODE (_p2))
15161 : {
15162 0 : case VIEW_CONVERT_EXPR:
15163 0 : {
15164 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15165 0 : switch (TREE_CODE (_q40))
15166 : {
15167 0 : case CALL_EXPR:
15168 0 : switch (get_call_combined_fn (_q40))
15169 : {
15170 0 : case CFN_COND_FMA:
15171 0 : if (call_expr_nargs (_q40) == 5)
15172 : {
15173 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15174 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15175 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15176 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15177 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15178 0 : {
15179 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15180 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15181 0 : if (res) return res;
15182 : }
15183 : }
15184 : break;
15185 0 : case CFN_COND_FMS:
15186 0 : if (call_expr_nargs (_q40) == 5)
15187 : {
15188 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15189 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15190 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15191 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15192 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15193 0 : {
15194 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15195 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15196 0 : if (res) return res;
15197 : }
15198 : }
15199 : break;
15200 0 : case CFN_COND_FNMA:
15201 0 : if (call_expr_nargs (_q40) == 5)
15202 : {
15203 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15204 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15205 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15206 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15207 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15208 0 : {
15209 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15210 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15211 0 : if (res) return res;
15212 : }
15213 : }
15214 : break;
15215 0 : case CFN_COND_FNMS:
15216 0 : if (call_expr_nargs (_q40) == 5)
15217 : {
15218 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15219 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15220 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15221 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15222 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15223 0 : {
15224 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15225 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15226 0 : if (res) return res;
15227 : }
15228 : }
15229 : break;
15230 : default:;
15231 : }
15232 : break;
15233 : default:;
15234 : }
15235 : break;
15236 : }
15237 12 : case CALL_EXPR:
15238 12 : switch (get_call_combined_fn (_p2))
15239 : {
15240 0 : case CFN_COND_FMA:
15241 0 : if (call_expr_nargs (_p2) == 5)
15242 : {
15243 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15244 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15245 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15246 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15247 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15248 0 : {
15249 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15250 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15251 0 : if (res) return res;
15252 : }
15253 : }
15254 : break;
15255 0 : case CFN_COND_FMS:
15256 0 : if (call_expr_nargs (_p2) == 5)
15257 : {
15258 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15259 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15260 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15261 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15262 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15263 0 : {
15264 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15265 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15266 0 : if (res) return res;
15267 : }
15268 : }
15269 : break;
15270 0 : case CFN_COND_FNMA:
15271 0 : if (call_expr_nargs (_p2) == 5)
15272 : {
15273 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15274 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15275 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15276 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15277 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15278 0 : {
15279 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15280 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15281 0 : if (res) return res;
15282 : }
15283 : }
15284 : break;
15285 0 : case CFN_COND_FNMS:
15286 0 : if (call_expr_nargs (_p2) == 5)
15287 : {
15288 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15289 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15290 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15291 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15292 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15293 0 : {
15294 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15295 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15296 0 : if (res) return res;
15297 : }
15298 : }
15299 : break;
15300 : default:;
15301 : }
15302 : break;
15303 387873 : default:;
15304 : }
15305 387873 : switch (TREE_CODE (_p1))
15306 : {
15307 0 : case VIEW_CONVERT_EXPR:
15308 0 : {
15309 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15310 0 : switch (TREE_CODE (_q30))
15311 : {
15312 0 : case CALL_EXPR:
15313 0 : switch (get_call_combined_fn (_q30))
15314 : {
15315 0 : case CFN_COND_LEN_ADD:
15316 0 : if (call_expr_nargs (_q30) == 6)
15317 : {
15318 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15319 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15320 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15321 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15322 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15323 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15324 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15325 : {
15326 0 : {
15327 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15328 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15329 0 : if (res) return res;
15330 : }
15331 : }
15332 : }
15333 : break;
15334 0 : case CFN_COND_LEN_AND:
15335 0 : if (call_expr_nargs (_q30) == 6)
15336 : {
15337 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15338 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15339 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15340 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15341 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15342 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15343 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15344 : {
15345 0 : {
15346 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15347 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15348 0 : if (res) return res;
15349 : }
15350 : }
15351 : }
15352 : break;
15353 0 : case CFN_COND_LEN_DIV:
15354 0 : if (call_expr_nargs (_q30) == 6)
15355 : {
15356 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15357 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15358 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15359 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15360 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15361 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15362 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15363 : {
15364 0 : {
15365 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15366 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15367 0 : if (res) return res;
15368 : }
15369 : }
15370 : }
15371 : break;
15372 0 : case CFN_COND_LEN_IOR:
15373 0 : if (call_expr_nargs (_q30) == 6)
15374 : {
15375 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15376 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15377 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15378 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15379 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15380 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15381 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15382 : {
15383 0 : {
15384 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15385 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15386 0 : if (res) return res;
15387 : }
15388 : }
15389 : }
15390 : break;
15391 0 : case CFN_COND_LEN_MAX:
15392 0 : if (call_expr_nargs (_q30) == 6)
15393 : {
15394 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15395 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15396 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15397 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15398 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15399 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15400 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15401 : {
15402 0 : {
15403 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15404 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15405 0 : if (res) return res;
15406 : }
15407 : }
15408 : }
15409 : break;
15410 0 : case CFN_COND_LEN_MIN:
15411 0 : if (call_expr_nargs (_q30) == 6)
15412 : {
15413 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15414 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15415 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15416 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15417 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15418 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15419 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15420 : {
15421 0 : {
15422 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15423 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15424 0 : if (res) return res;
15425 : }
15426 : }
15427 : }
15428 : break;
15429 0 : case CFN_COND_LEN_MOD:
15430 0 : if (call_expr_nargs (_q30) == 6)
15431 : {
15432 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15433 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15434 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15435 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15436 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15437 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15438 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15439 : {
15440 0 : {
15441 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15442 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15443 0 : if (res) return res;
15444 : }
15445 : }
15446 : }
15447 : break;
15448 0 : case CFN_COND_LEN_MUL:
15449 0 : if (call_expr_nargs (_q30) == 6)
15450 : {
15451 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15452 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15453 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15454 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15455 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15456 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15457 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15458 : {
15459 0 : {
15460 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15461 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15462 0 : if (res) return res;
15463 : }
15464 : }
15465 : }
15466 : break;
15467 0 : case CFN_COND_LEN_SHL:
15468 0 : if (call_expr_nargs (_q30) == 6)
15469 : {
15470 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15471 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15472 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15473 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15474 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15475 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15476 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15477 : {
15478 0 : {
15479 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15480 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15481 0 : if (res) return res;
15482 : }
15483 : }
15484 : }
15485 : break;
15486 0 : case CFN_COND_LEN_SHR:
15487 0 : if (call_expr_nargs (_q30) == 6)
15488 : {
15489 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15490 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15491 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15492 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15493 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15494 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15495 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15496 : {
15497 0 : {
15498 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15499 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15500 0 : if (res) return res;
15501 : }
15502 : }
15503 : }
15504 : break;
15505 0 : case CFN_COND_LEN_SUB:
15506 0 : if (call_expr_nargs (_q30) == 6)
15507 : {
15508 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15509 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15510 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15511 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15512 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15513 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15514 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15515 : {
15516 0 : {
15517 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15518 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15519 0 : if (res) return res;
15520 : }
15521 : }
15522 : }
15523 : break;
15524 0 : case CFN_COND_LEN_XOR:
15525 0 : if (call_expr_nargs (_q30) == 6)
15526 : {
15527 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15528 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15529 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15530 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15531 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15532 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15533 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15534 : {
15535 0 : {
15536 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15537 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15538 0 : if (res) return res;
15539 : }
15540 : }
15541 : }
15542 : break;
15543 0 : case CFN_COND_LEN_FMAX:
15544 0 : if (call_expr_nargs (_q30) == 6)
15545 : {
15546 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15547 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15548 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15549 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15550 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15551 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15552 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15553 : {
15554 0 : {
15555 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15556 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15557 0 : if (res) return res;
15558 : }
15559 : }
15560 : }
15561 : break;
15562 0 : case CFN_COND_LEN_FMIN:
15563 0 : if (call_expr_nargs (_q30) == 6)
15564 : {
15565 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15566 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15567 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15568 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15569 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15570 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15571 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15572 : {
15573 0 : {
15574 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15575 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15576 0 : if (res) return res;
15577 : }
15578 : }
15579 : }
15580 : break;
15581 0 : case CFN_COND_LEN_RDIV:
15582 0 : if (call_expr_nargs (_q30) == 6)
15583 : {
15584 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15585 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15586 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15587 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15588 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15589 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15590 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15591 : {
15592 0 : {
15593 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15594 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15595 0 : if (res) return res;
15596 : }
15597 : }
15598 : }
15599 : break;
15600 0 : case CFN_COND_LEN_COPYSIGN:
15601 0 : if (call_expr_nargs (_q30) == 6)
15602 : {
15603 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15604 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15605 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15606 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15607 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15608 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15609 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15610 : {
15611 0 : {
15612 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15613 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15614 0 : if (res) return res;
15615 : }
15616 : }
15617 : }
15618 : break;
15619 : default:;
15620 : }
15621 : break;
15622 : default:;
15623 : }
15624 : break;
15625 : }
15626 12 : case CALL_EXPR:
15627 12 : switch (get_call_combined_fn (_p1))
15628 : {
15629 0 : case CFN_COND_LEN_ADD:
15630 0 : if (call_expr_nargs (_p1) == 6)
15631 : {
15632 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15633 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15634 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15635 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15636 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15637 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15638 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15639 : {
15640 0 : {
15641 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15642 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15643 0 : if (res) return res;
15644 : }
15645 : }
15646 : }
15647 : break;
15648 0 : case CFN_COND_LEN_AND:
15649 0 : if (call_expr_nargs (_p1) == 6)
15650 : {
15651 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15652 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15653 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15654 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15655 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15656 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15657 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15658 : {
15659 0 : {
15660 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15661 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15662 0 : if (res) return res;
15663 : }
15664 : }
15665 : }
15666 : break;
15667 0 : case CFN_COND_LEN_DIV:
15668 0 : if (call_expr_nargs (_p1) == 6)
15669 : {
15670 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15671 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15672 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15673 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15674 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15675 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15676 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15677 : {
15678 0 : {
15679 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15680 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15681 0 : if (res) return res;
15682 : }
15683 : }
15684 : }
15685 : break;
15686 0 : case CFN_COND_LEN_IOR:
15687 0 : if (call_expr_nargs (_p1) == 6)
15688 : {
15689 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15690 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15691 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15692 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15693 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15694 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15695 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15696 : {
15697 0 : {
15698 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15699 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15700 0 : if (res) return res;
15701 : }
15702 : }
15703 : }
15704 : break;
15705 0 : case CFN_COND_LEN_MAX:
15706 0 : if (call_expr_nargs (_p1) == 6)
15707 : {
15708 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15709 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15710 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15711 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15712 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15713 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15714 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15715 : {
15716 0 : {
15717 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15718 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15719 0 : if (res) return res;
15720 : }
15721 : }
15722 : }
15723 : break;
15724 0 : case CFN_COND_LEN_MIN:
15725 0 : if (call_expr_nargs (_p1) == 6)
15726 : {
15727 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15728 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15729 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15730 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15731 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15732 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15733 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15734 : {
15735 0 : {
15736 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15737 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15738 0 : if (res) return res;
15739 : }
15740 : }
15741 : }
15742 : break;
15743 0 : case CFN_COND_LEN_MOD:
15744 0 : if (call_expr_nargs (_p1) == 6)
15745 : {
15746 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15747 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15748 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15749 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15750 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15751 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15752 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15753 : {
15754 0 : {
15755 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15756 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15757 0 : if (res) return res;
15758 : }
15759 : }
15760 : }
15761 : break;
15762 0 : case CFN_COND_LEN_MUL:
15763 0 : if (call_expr_nargs (_p1) == 6)
15764 : {
15765 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15766 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15767 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15768 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15769 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15770 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15771 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15772 : {
15773 0 : {
15774 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15775 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15776 0 : if (res) return res;
15777 : }
15778 : }
15779 : }
15780 : break;
15781 0 : case CFN_COND_LEN_SHL:
15782 0 : if (call_expr_nargs (_p1) == 6)
15783 : {
15784 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15785 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15786 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15787 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15788 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15789 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15790 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15791 : {
15792 0 : {
15793 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15794 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15795 0 : if (res) return res;
15796 : }
15797 : }
15798 : }
15799 : break;
15800 0 : case CFN_COND_LEN_SHR:
15801 0 : if (call_expr_nargs (_p1) == 6)
15802 : {
15803 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15804 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15805 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15806 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15807 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15808 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15809 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15810 : {
15811 0 : {
15812 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15813 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15814 0 : if (res) return res;
15815 : }
15816 : }
15817 : }
15818 : break;
15819 0 : case CFN_COND_LEN_SUB:
15820 0 : if (call_expr_nargs (_p1) == 6)
15821 : {
15822 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15823 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15824 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15825 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15826 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15827 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15828 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15829 : {
15830 0 : {
15831 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15832 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15833 0 : if (res) return res;
15834 : }
15835 : }
15836 : }
15837 : break;
15838 0 : case CFN_COND_LEN_XOR:
15839 0 : if (call_expr_nargs (_p1) == 6)
15840 : {
15841 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15842 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15843 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15844 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15845 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15846 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15847 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15848 : {
15849 0 : {
15850 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15851 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15852 0 : if (res) return res;
15853 : }
15854 : }
15855 : }
15856 : break;
15857 0 : case CFN_COND_LEN_FMAX:
15858 0 : if (call_expr_nargs (_p1) == 6)
15859 : {
15860 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15861 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15862 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15863 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15864 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15865 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15866 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15867 : {
15868 0 : {
15869 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15870 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15871 0 : if (res) return res;
15872 : }
15873 : }
15874 : }
15875 : break;
15876 0 : case CFN_COND_LEN_FMIN:
15877 0 : if (call_expr_nargs (_p1) == 6)
15878 : {
15879 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15880 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15881 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15882 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15883 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15884 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15885 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15886 : {
15887 0 : {
15888 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15889 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15890 0 : if (res) return res;
15891 : }
15892 : }
15893 : }
15894 : break;
15895 0 : case CFN_COND_LEN_RDIV:
15896 0 : if (call_expr_nargs (_p1) == 6)
15897 : {
15898 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15899 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15900 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15901 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15902 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15903 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15904 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15905 : {
15906 0 : {
15907 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15908 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15909 0 : if (res) return res;
15910 : }
15911 : }
15912 : }
15913 : break;
15914 0 : case CFN_COND_LEN_COPYSIGN:
15915 0 : if (call_expr_nargs (_p1) == 6)
15916 : {
15917 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15918 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15919 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15920 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15921 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15922 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15923 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15924 : {
15925 0 : {
15926 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15927 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15928 0 : if (res) return res;
15929 : }
15930 : }
15931 : }
15932 : break;
15933 : default:;
15934 : }
15935 : break;
15936 387873 : default:;
15937 : }
15938 387873 : switch (TREE_CODE (_p2))
15939 : {
15940 0 : case VIEW_CONVERT_EXPR:
15941 0 : {
15942 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15943 0 : switch (TREE_CODE (_q40))
15944 : {
15945 0 : case CALL_EXPR:
15946 0 : switch (get_call_combined_fn (_q40))
15947 : {
15948 0 : case CFN_COND_LEN_ADD:
15949 0 : if (call_expr_nargs (_q40) == 6)
15950 : {
15951 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15952 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15953 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15954 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15955 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15956 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15957 0 : {
15958 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15959 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15960 0 : if (res) return res;
15961 : }
15962 : }
15963 : break;
15964 0 : case CFN_COND_LEN_AND:
15965 0 : if (call_expr_nargs (_q40) == 6)
15966 : {
15967 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15968 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15969 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15970 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15971 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15972 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15973 0 : {
15974 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15975 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15976 0 : if (res) return res;
15977 : }
15978 : }
15979 : break;
15980 0 : case CFN_COND_LEN_DIV:
15981 0 : if (call_expr_nargs (_q40) == 6)
15982 : {
15983 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15984 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15985 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15986 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15987 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15988 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15989 0 : {
15990 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15991 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15992 0 : if (res) return res;
15993 : }
15994 : }
15995 : break;
15996 0 : case CFN_COND_LEN_IOR:
15997 0 : if (call_expr_nargs (_q40) == 6)
15998 : {
15999 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16000 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16001 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16002 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16003 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16004 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16005 0 : {
16006 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16007 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16008 0 : if (res) return res;
16009 : }
16010 : }
16011 : break;
16012 0 : case CFN_COND_LEN_MAX:
16013 0 : if (call_expr_nargs (_q40) == 6)
16014 : {
16015 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16016 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16017 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16018 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16019 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16020 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16021 0 : {
16022 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16023 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16024 0 : if (res) return res;
16025 : }
16026 : }
16027 : break;
16028 0 : case CFN_COND_LEN_MIN:
16029 0 : if (call_expr_nargs (_q40) == 6)
16030 : {
16031 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16032 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16033 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16034 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16035 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16036 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16037 0 : {
16038 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16039 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16040 0 : if (res) return res;
16041 : }
16042 : }
16043 : break;
16044 0 : case CFN_COND_LEN_MOD:
16045 0 : if (call_expr_nargs (_q40) == 6)
16046 : {
16047 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16048 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16049 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16050 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16051 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16052 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16053 0 : {
16054 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16055 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16056 0 : if (res) return res;
16057 : }
16058 : }
16059 : break;
16060 0 : case CFN_COND_LEN_MUL:
16061 0 : if (call_expr_nargs (_q40) == 6)
16062 : {
16063 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16064 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16065 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16066 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16067 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16068 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16069 0 : {
16070 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16071 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16072 0 : if (res) return res;
16073 : }
16074 : }
16075 : break;
16076 0 : case CFN_COND_LEN_SHL:
16077 0 : if (call_expr_nargs (_q40) == 6)
16078 : {
16079 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16080 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16081 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16082 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16083 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16084 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16085 0 : {
16086 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16087 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16088 0 : if (res) return res;
16089 : }
16090 : }
16091 : break;
16092 0 : case CFN_COND_LEN_SHR:
16093 0 : if (call_expr_nargs (_q40) == 6)
16094 : {
16095 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16096 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16097 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16098 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16099 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16100 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16101 0 : {
16102 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16103 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16104 0 : if (res) return res;
16105 : }
16106 : }
16107 : break;
16108 0 : case CFN_COND_LEN_SUB:
16109 0 : if (call_expr_nargs (_q40) == 6)
16110 : {
16111 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16112 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16113 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16114 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16115 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16116 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16117 0 : {
16118 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16119 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16120 0 : if (res) return res;
16121 : }
16122 : }
16123 : break;
16124 0 : case CFN_COND_LEN_XOR:
16125 0 : if (call_expr_nargs (_q40) == 6)
16126 : {
16127 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16128 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16129 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16130 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16131 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16132 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16133 0 : {
16134 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16135 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16136 0 : if (res) return res;
16137 : }
16138 : }
16139 : break;
16140 0 : case CFN_COND_LEN_FMAX:
16141 0 : if (call_expr_nargs (_q40) == 6)
16142 : {
16143 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16144 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16145 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16146 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16147 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16148 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16149 0 : {
16150 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16151 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16152 0 : if (res) return res;
16153 : }
16154 : }
16155 : break;
16156 0 : case CFN_COND_LEN_FMIN:
16157 0 : if (call_expr_nargs (_q40) == 6)
16158 : {
16159 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16160 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16161 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16162 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16163 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16164 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16165 0 : {
16166 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16167 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16168 0 : if (res) return res;
16169 : }
16170 : }
16171 : break;
16172 0 : case CFN_COND_LEN_RDIV:
16173 0 : if (call_expr_nargs (_q40) == 6)
16174 : {
16175 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16176 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16177 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16178 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16179 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16180 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16181 0 : {
16182 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16183 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16184 0 : if (res) return res;
16185 : }
16186 : }
16187 : break;
16188 0 : case CFN_COND_LEN_COPYSIGN:
16189 0 : if (call_expr_nargs (_q40) == 6)
16190 : {
16191 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16192 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16193 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16194 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16195 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16196 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16197 0 : {
16198 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16199 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16200 0 : if (res) return res;
16201 : }
16202 : }
16203 : break;
16204 : default:;
16205 : }
16206 : break;
16207 : default:;
16208 : }
16209 : break;
16210 : }
16211 12 : case CALL_EXPR:
16212 12 : switch (get_call_combined_fn (_p2))
16213 : {
16214 0 : case CFN_COND_LEN_ADD:
16215 0 : if (call_expr_nargs (_p2) == 6)
16216 : {
16217 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16218 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16219 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16220 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16221 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16222 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16223 0 : {
16224 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16225 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16226 0 : if (res) return res;
16227 : }
16228 : }
16229 : break;
16230 0 : case CFN_COND_LEN_AND:
16231 0 : if (call_expr_nargs (_p2) == 6)
16232 : {
16233 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16234 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16235 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16236 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16237 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16238 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16239 0 : {
16240 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16241 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16242 0 : if (res) return res;
16243 : }
16244 : }
16245 : break;
16246 0 : case CFN_COND_LEN_DIV:
16247 0 : if (call_expr_nargs (_p2) == 6)
16248 : {
16249 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16250 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16251 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16252 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16253 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16254 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16255 0 : {
16256 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16257 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16258 0 : if (res) return res;
16259 : }
16260 : }
16261 : break;
16262 0 : case CFN_COND_LEN_IOR:
16263 0 : if (call_expr_nargs (_p2) == 6)
16264 : {
16265 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16266 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16267 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16268 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16269 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16270 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16271 0 : {
16272 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16273 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16274 0 : if (res) return res;
16275 : }
16276 : }
16277 : break;
16278 0 : case CFN_COND_LEN_MAX:
16279 0 : if (call_expr_nargs (_p2) == 6)
16280 : {
16281 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16282 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16283 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16284 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16285 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16286 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16287 0 : {
16288 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16289 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16290 0 : if (res) return res;
16291 : }
16292 : }
16293 : break;
16294 0 : case CFN_COND_LEN_MIN:
16295 0 : if (call_expr_nargs (_p2) == 6)
16296 : {
16297 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16298 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16299 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16300 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16301 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16302 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16303 0 : {
16304 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16305 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16306 0 : if (res) return res;
16307 : }
16308 : }
16309 : break;
16310 0 : case CFN_COND_LEN_MOD:
16311 0 : if (call_expr_nargs (_p2) == 6)
16312 : {
16313 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16314 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16315 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16316 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16317 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16318 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16319 0 : {
16320 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16321 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16322 0 : if (res) return res;
16323 : }
16324 : }
16325 : break;
16326 0 : case CFN_COND_LEN_MUL:
16327 0 : if (call_expr_nargs (_p2) == 6)
16328 : {
16329 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16330 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16331 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16332 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16333 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16334 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16335 0 : {
16336 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16337 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16338 0 : if (res) return res;
16339 : }
16340 : }
16341 : break;
16342 0 : case CFN_COND_LEN_SHL:
16343 0 : if (call_expr_nargs (_p2) == 6)
16344 : {
16345 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16346 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16347 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16348 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16349 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16350 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16351 0 : {
16352 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16353 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16354 0 : if (res) return res;
16355 : }
16356 : }
16357 : break;
16358 0 : case CFN_COND_LEN_SHR:
16359 0 : if (call_expr_nargs (_p2) == 6)
16360 : {
16361 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16362 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16363 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16364 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16365 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16366 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16367 0 : {
16368 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16369 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16370 0 : if (res) return res;
16371 : }
16372 : }
16373 : break;
16374 0 : case CFN_COND_LEN_SUB:
16375 0 : if (call_expr_nargs (_p2) == 6)
16376 : {
16377 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16378 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16379 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16380 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16381 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16382 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16383 0 : {
16384 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16385 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16386 0 : if (res) return res;
16387 : }
16388 : }
16389 : break;
16390 0 : case CFN_COND_LEN_XOR:
16391 0 : if (call_expr_nargs (_p2) == 6)
16392 : {
16393 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16394 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16395 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16396 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16397 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16398 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16399 0 : {
16400 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16401 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16402 0 : if (res) return res;
16403 : }
16404 : }
16405 : break;
16406 0 : case CFN_COND_LEN_FMAX:
16407 0 : if (call_expr_nargs (_p2) == 6)
16408 : {
16409 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16410 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16411 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16412 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16413 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16414 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16415 0 : {
16416 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16417 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16418 0 : if (res) return res;
16419 : }
16420 : }
16421 : break;
16422 0 : case CFN_COND_LEN_FMIN:
16423 0 : if (call_expr_nargs (_p2) == 6)
16424 : {
16425 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16426 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16427 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16428 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16429 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16430 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16431 0 : {
16432 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16433 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16434 0 : if (res) return res;
16435 : }
16436 : }
16437 : break;
16438 0 : case CFN_COND_LEN_RDIV:
16439 0 : if (call_expr_nargs (_p2) == 6)
16440 : {
16441 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16442 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16443 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16444 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16445 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16446 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16447 0 : {
16448 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16449 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16450 0 : if (res) return res;
16451 : }
16452 : }
16453 : break;
16454 0 : case CFN_COND_LEN_COPYSIGN:
16455 0 : if (call_expr_nargs (_p2) == 6)
16456 : {
16457 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16458 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16459 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16460 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16461 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16462 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16463 0 : {
16464 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16465 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16466 0 : if (res) return res;
16467 : }
16468 : }
16469 : break;
16470 : default:;
16471 : }
16472 : break;
16473 387873 : default:;
16474 : }
16475 387873 : switch (TREE_CODE (_p1))
16476 : {
16477 0 : case VIEW_CONVERT_EXPR:
16478 0 : {
16479 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16480 0 : switch (TREE_CODE (_q30))
16481 : {
16482 0 : case CALL_EXPR:
16483 0 : switch (get_call_combined_fn (_q30))
16484 : {
16485 0 : case CFN_COND_LEN_FMA:
16486 0 : if (call_expr_nargs (_q30) == 7)
16487 : {
16488 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16489 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16490 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16491 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16492 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16493 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16494 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16495 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16496 : {
16497 0 : {
16498 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16499 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16500 0 : if (res) return res;
16501 : }
16502 : }
16503 : }
16504 : break;
16505 0 : case CFN_COND_LEN_FMS:
16506 0 : if (call_expr_nargs (_q30) == 7)
16507 : {
16508 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16509 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16510 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16511 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16512 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16513 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16514 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16515 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16516 : {
16517 0 : {
16518 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16519 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16520 0 : if (res) return res;
16521 : }
16522 : }
16523 : }
16524 : break;
16525 0 : case CFN_COND_LEN_FNMA:
16526 0 : if (call_expr_nargs (_q30) == 7)
16527 : {
16528 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16529 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16530 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16531 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16532 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16533 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16534 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16535 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16536 : {
16537 0 : {
16538 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16539 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16540 0 : if (res) return res;
16541 : }
16542 : }
16543 : }
16544 : break;
16545 0 : case CFN_COND_LEN_FNMS:
16546 0 : if (call_expr_nargs (_q30) == 7)
16547 : {
16548 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16549 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16550 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16551 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16552 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16553 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16554 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16555 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16556 : {
16557 0 : {
16558 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16559 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16560 0 : if (res) return res;
16561 : }
16562 : }
16563 : }
16564 : break;
16565 : default:;
16566 : }
16567 : break;
16568 : default:;
16569 : }
16570 : break;
16571 : }
16572 12 : case CALL_EXPR:
16573 12 : switch (get_call_combined_fn (_p1))
16574 : {
16575 0 : case CFN_COND_LEN_FMA:
16576 0 : if (call_expr_nargs (_p1) == 7)
16577 : {
16578 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16579 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16580 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16581 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16582 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16583 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16584 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16585 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16586 : {
16587 0 : {
16588 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16589 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16590 0 : if (res) return res;
16591 : }
16592 : }
16593 : }
16594 : break;
16595 0 : case CFN_COND_LEN_FMS:
16596 0 : if (call_expr_nargs (_p1) == 7)
16597 : {
16598 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16599 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16600 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16601 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16602 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16603 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16604 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16605 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16606 : {
16607 0 : {
16608 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16609 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16610 0 : if (res) return res;
16611 : }
16612 : }
16613 : }
16614 : break;
16615 0 : case CFN_COND_LEN_FNMA:
16616 0 : if (call_expr_nargs (_p1) == 7)
16617 : {
16618 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16619 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16620 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16621 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16622 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16623 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16624 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16625 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16626 : {
16627 0 : {
16628 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16629 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16630 0 : if (res) return res;
16631 : }
16632 : }
16633 : }
16634 : break;
16635 0 : case CFN_COND_LEN_FNMS:
16636 0 : if (call_expr_nargs (_p1) == 7)
16637 : {
16638 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16639 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16640 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16641 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16642 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16643 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16644 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16645 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16646 : {
16647 0 : {
16648 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16649 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16650 0 : if (res) return res;
16651 : }
16652 : }
16653 : }
16654 : break;
16655 : default:;
16656 : }
16657 : break;
16658 387873 : default:;
16659 : }
16660 387873 : switch (TREE_CODE (_p2))
16661 : {
16662 0 : case VIEW_CONVERT_EXPR:
16663 0 : {
16664 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16665 0 : switch (TREE_CODE (_q40))
16666 : {
16667 0 : case CALL_EXPR:
16668 0 : switch (get_call_combined_fn (_q40))
16669 : {
16670 0 : case CFN_COND_LEN_FMA:
16671 0 : if (call_expr_nargs (_q40) == 7)
16672 : {
16673 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16674 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16675 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16676 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16677 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16678 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16679 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16680 0 : {
16681 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16682 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16683 0 : if (res) return res;
16684 : }
16685 : }
16686 : break;
16687 0 : case CFN_COND_LEN_FMS:
16688 0 : if (call_expr_nargs (_q40) == 7)
16689 : {
16690 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16691 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16692 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16693 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16694 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16695 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16696 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16697 0 : {
16698 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16699 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16700 0 : if (res) return res;
16701 : }
16702 : }
16703 : break;
16704 0 : case CFN_COND_LEN_FNMA:
16705 0 : if (call_expr_nargs (_q40) == 7)
16706 : {
16707 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16708 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16709 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16710 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16711 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16712 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16713 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16714 0 : {
16715 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16716 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16717 0 : if (res) return res;
16718 : }
16719 : }
16720 : break;
16721 0 : case CFN_COND_LEN_FNMS:
16722 0 : if (call_expr_nargs (_q40) == 7)
16723 : {
16724 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16725 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16726 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16727 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16728 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16729 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16730 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16731 0 : {
16732 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16733 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16734 0 : if (res) return res;
16735 : }
16736 : }
16737 : break;
16738 : default:;
16739 : }
16740 : break;
16741 : default:;
16742 : }
16743 : break;
16744 : }
16745 12 : case CALL_EXPR:
16746 12 : switch (get_call_combined_fn (_p2))
16747 : {
16748 0 : case CFN_COND_LEN_FMA:
16749 0 : if (call_expr_nargs (_p2) == 7)
16750 : {
16751 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16752 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16753 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16754 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16755 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16756 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16757 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16758 0 : {
16759 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16760 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16761 0 : if (res) return res;
16762 : }
16763 : }
16764 : break;
16765 0 : case CFN_COND_LEN_FMS:
16766 0 : if (call_expr_nargs (_p2) == 7)
16767 : {
16768 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16769 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16770 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16771 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16772 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16773 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16774 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16775 0 : {
16776 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16777 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16778 0 : if (res) return res;
16779 : }
16780 : }
16781 : break;
16782 0 : case CFN_COND_LEN_FNMA:
16783 0 : if (call_expr_nargs (_p2) == 7)
16784 : {
16785 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16786 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16787 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16788 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16789 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16790 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16791 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16792 0 : {
16793 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16794 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16795 0 : if (res) return res;
16796 : }
16797 : }
16798 : break;
16799 0 : case CFN_COND_LEN_FNMS:
16800 0 : if (call_expr_nargs (_p2) == 7)
16801 : {
16802 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16803 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16804 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16805 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16806 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16807 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16808 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16809 0 : {
16810 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16811 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16812 0 : if (res) return res;
16813 : }
16814 : }
16815 : break;
16816 : default:;
16817 : }
16818 : break;
16819 387873 : default:;
16820 : }
16821 387873 : switch (TREE_CODE (_p1))
16822 : {
16823 12 : case CALL_EXPR:
16824 12 : switch (get_call_combined_fn (_p1))
16825 : {
16826 0 : case CFN_COND_ADD:
16827 0 : if (call_expr_nargs (_p1) == 4)
16828 : {
16829 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16830 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16831 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16832 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16833 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16834 : {
16835 0 : {
16836 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16837 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16838 0 : if (res) return res;
16839 : }
16840 : }
16841 : }
16842 : break;
16843 0 : case CFN_COND_AND:
16844 0 : if (call_expr_nargs (_p1) == 4)
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 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16851 : {
16852 0 : {
16853 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16854 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16855 0 : if (res) return res;
16856 : }
16857 : }
16858 : }
16859 : break;
16860 0 : case CFN_COND_DIV:
16861 0 : if (call_expr_nargs (_p1) == 4)
16862 : {
16863 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16864 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16865 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16866 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16867 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16868 : {
16869 0 : {
16870 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16871 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16872 0 : if (res) return res;
16873 : }
16874 : }
16875 : }
16876 : break;
16877 0 : case CFN_COND_FMA:
16878 0 : if (call_expr_nargs (_p1) == 5)
16879 : {
16880 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16881 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16882 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16883 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16884 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16885 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16886 : {
16887 0 : {
16888 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16889 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16890 0 : if (res) return res;
16891 : }
16892 : }
16893 : }
16894 : break;
16895 0 : case CFN_COND_FMS:
16896 0 : if (call_expr_nargs (_p1) == 5)
16897 : {
16898 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16899 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16900 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16901 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16902 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16903 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16904 : {
16905 0 : {
16906 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16907 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16908 0 : if (res) return res;
16909 : }
16910 : }
16911 : }
16912 : break;
16913 0 : case CFN_COND_IOR:
16914 0 : if (call_expr_nargs (_p1) == 4)
16915 : {
16916 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16917 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16918 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16919 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16920 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16921 : {
16922 0 : {
16923 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16924 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16925 0 : if (res) return res;
16926 : }
16927 : }
16928 : }
16929 : break;
16930 0 : case CFN_COND_MAX:
16931 0 : if (call_expr_nargs (_p1) == 4)
16932 : {
16933 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16934 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16935 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16936 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16937 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16938 : {
16939 0 : {
16940 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16941 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16942 0 : if (res) return res;
16943 : }
16944 : }
16945 : }
16946 : break;
16947 0 : case CFN_COND_MIN:
16948 0 : if (call_expr_nargs (_p1) == 4)
16949 : {
16950 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16951 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16952 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16953 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16954 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16955 : {
16956 0 : {
16957 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16958 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
16959 0 : if (res) return res;
16960 : }
16961 : }
16962 : }
16963 : break;
16964 0 : case CFN_COND_MOD:
16965 0 : if (call_expr_nargs (_p1) == 4)
16966 : {
16967 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16968 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16969 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16970 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16971 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16972 : {
16973 0 : {
16974 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16975 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
16976 0 : if (res) return res;
16977 : }
16978 : }
16979 : }
16980 : break;
16981 0 : case CFN_COND_MUL:
16982 0 : if (call_expr_nargs (_p1) == 4)
16983 : {
16984 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16985 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16986 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16987 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16988 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16989 : {
16990 0 : {
16991 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16992 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
16993 0 : if (res) return res;
16994 : }
16995 : }
16996 : }
16997 : break;
16998 0 : case CFN_COND_SHL:
16999 0 : if (call_expr_nargs (_p1) == 4)
17000 : {
17001 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17002 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17003 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17004 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17005 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17006 : {
17007 0 : {
17008 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17009 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
17010 0 : if (res) return res;
17011 : }
17012 : }
17013 : }
17014 : break;
17015 0 : case CFN_COND_SHR:
17016 0 : if (call_expr_nargs (_p1) == 4)
17017 : {
17018 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17019 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17020 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17021 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17022 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17023 : {
17024 0 : {
17025 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17026 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
17027 0 : if (res) return res;
17028 : }
17029 : }
17030 : }
17031 : break;
17032 0 : case CFN_COND_SUB:
17033 0 : if (call_expr_nargs (_p1) == 4)
17034 : {
17035 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17036 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17037 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17038 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17039 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17040 : {
17041 0 : {
17042 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17043 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
17044 0 : if (res) return res;
17045 : }
17046 : }
17047 : }
17048 : break;
17049 0 : case CFN_COND_XOR:
17050 0 : if (call_expr_nargs (_p1) == 4)
17051 : {
17052 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17053 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17054 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17055 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17056 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17057 : {
17058 0 : {
17059 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17060 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
17061 0 : if (res) return res;
17062 : }
17063 : }
17064 : }
17065 : break;
17066 0 : case CFN_COND_COPYSIGN:
17067 0 : if (call_expr_nargs (_p1) == 4)
17068 : {
17069 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17070 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17071 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17072 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17073 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17074 : {
17075 0 : {
17076 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17077 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
17078 0 : if (res) return res;
17079 : }
17080 : }
17081 : }
17082 : break;
17083 0 : case CFN_COND_FMAX:
17084 0 : if (call_expr_nargs (_p1) == 4)
17085 : {
17086 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17087 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17088 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17089 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17090 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17091 : {
17092 0 : {
17093 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17094 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17095 0 : if (res) return res;
17096 : }
17097 : }
17098 : }
17099 : break;
17100 0 : case CFN_COND_FMIN:
17101 0 : if (call_expr_nargs (_p1) == 4)
17102 : {
17103 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17104 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17105 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17106 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17107 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17108 : {
17109 0 : {
17110 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17111 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17112 0 : if (res) return res;
17113 : }
17114 : }
17115 : }
17116 : break;
17117 0 : case CFN_COND_FNMA:
17118 0 : if (call_expr_nargs (_p1) == 5)
17119 : {
17120 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17121 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17122 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17123 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17124 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17125 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17126 : {
17127 0 : {
17128 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17129 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17130 0 : if (res) return res;
17131 : }
17132 : }
17133 : }
17134 : break;
17135 0 : case CFN_COND_FNMS:
17136 0 : if (call_expr_nargs (_p1) == 5)
17137 : {
17138 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17139 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17140 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17141 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17142 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17143 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17144 : {
17145 0 : {
17146 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17147 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17148 0 : if (res) return res;
17149 : }
17150 : }
17151 : }
17152 : break;
17153 0 : case CFN_COND_RDIV:
17154 0 : if (call_expr_nargs (_p1) == 4)
17155 : {
17156 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17157 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17158 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17159 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17160 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17161 : {
17162 0 : {
17163 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17164 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17165 0 : if (res) return res;
17166 : }
17167 : }
17168 : }
17169 : break;
17170 : default:;
17171 : }
17172 : break;
17173 : default:;
17174 : }
17175 : return NULL_TREE;
17176 : }
17177 : #pragma GCC diagnostic pop
|