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 1108013006 : tree_nop_convert (tree t, tree *res_ops)
11 : {
12 1108013006 : const tree type = TREE_TYPE (t);
13 1108013006 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 1108013006 : if (TREE_SIDE_EFFECTS (t)) return false;
15 1063734142 : switch (TREE_CODE (t))
16 : {
17 215349582 : CASE_CONVERT:
18 215349582 : {
19 215349582 : tree _p0 = TREE_OPERAND (t, 0);
20 215349582 : {
21 215349582 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
22 215349582 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
23 : )
24 : {
25 173676662 : {
26 173676662 : res_ops[0] = captures[0];
27 173676662 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 0, __FILE__, __LINE__, false);
28 173676662 : return true;
29 : }
30 : }
31 : }
32 : break;
33 : }
34 4515471 : case VIEW_CONVERT_EXPR:
35 4515471 : {
36 4515471 : tree _p0 = TREE_OPERAND (t, 0);
37 4515471 : {
38 4515471 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
39 3208993 : if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[0]))
40 3208975 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
41 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[0])))
42 6733013 : && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0])))
43 : )
44 : {
45 2217536 : {
46 2217536 : res_ops[0] = captures[0];
47 2217536 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1, __FILE__, __LINE__, false);
48 2217536 : return true;
49 : }
50 : }
51 : }
52 2297935 : break;
53 : }
54 : default:;
55 : }
56 : return false;
57 : }
58 :
59 : bool
60 87554206 : tree_with_known_nonzero_bits (tree t)
61 : {
62 87554206 : const tree type = TREE_TYPE (t);
63 87554206 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
64 87554206 : if (TREE_SIDE_EFFECTS (t)) return false;
65 82547567 : switch (TREE_CODE (t))
66 : {
67 273203 : case BIT_IOR_EXPR:
68 273203 : {
69 273203 : tree _p0 = TREE_OPERAND (t, 0);
70 273203 : tree _p1 = TREE_OPERAND (t, 1);
71 273203 : if (tree_with_known_nonzero_bits_1 (_p0))
72 : {
73 265692 : {
74 265692 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
75 265692 : {
76 265692 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 39, __FILE__, __LINE__, false);
77 265692 : return true;
78 : }
79 : }
80 : }
81 7511 : 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 82281689 : default:;
94 : }
95 82281689 : if (tree_with_known_nonzero_bits_1 (t))
96 : {
97 39386395 : {
98 39386395 : tree captures[1] ATTRIBUTE_UNUSED = { t };
99 39386395 : {
100 39386395 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 40, __FILE__, __LINE__, false);
101 39386395 : 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 112 : 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 112 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
194 112 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail104;
195 112 : {
196 112 : tree res_op0;
197 112 : {
198 112 : tree _o1[1], _r1;
199 112 : _o1[0] = captures[1];
200 112 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
201 112 : res_op0 = _r1;
202 : }
203 112 : tree res_op1;
204 112 : res_op1 = captures[2];
205 112 : tree _r;
206 112 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
207 112 : 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 240629 : 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 240629 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
222 240629 : {
223 240629 : bool wascmp;
224 240629 : if (bitwise_inverted_equal_p (captures[2], captures[0], wascmp)
225 240629 : && (!wascmp || element_precision (type) == 1)
226 : )
227 : {
228 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail109;
229 12 : {
230 12 : tree res_op0;
231 12 : res_op0 = captures[2];
232 12 : tree res_op1;
233 12 : res_op1 = captures[1];
234 12 : tree _r;
235 12 : _r = fold_build2_loc (loc, resbitop, type, res_op0, res_op1);
236 12 : if (TREE_SIDE_EFFECTS (captures[0]))
237 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
238 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 81, __FILE__, __LINE__, true);
239 12 : return _r;
240 : }
241 0 : next_after_fail109:;
242 : }
243 : }
244 240617 : 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 832 : 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 832 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
356 832 : if (!TYPE_SATURATING (type)
357 : )
358 : {
359 832 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
360 1664 : && !FIXED_POINT_TYPE_P (type)
361 : )
362 : {
363 832 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail154;
364 832 : {
365 832 : tree res_op0;
366 832 : res_op0 = captures[2];
367 832 : tree res_op1;
368 832 : res_op1 = captures[1];
369 832 : tree _r;
370 832 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
371 832 : if (TREE_SIDE_EFFECTS (captures[0]))
372 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
373 832 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 122, __FILE__, __LINE__, true);
374 832 : return _r;
375 : }
376 0 : next_after_fail154:;
377 : }
378 : }
379 : return NULL_TREE;
380 : }
381 :
382 : tree
383 9642 : 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 9642 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
388 9642 : if (!TYPE_SATURATING (type)
389 9642 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
390 : )
391 : {
392 9476 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
393 : )
394 : {
395 4 : if ((!ANY_INTEGRAL_TYPE_P (type)
396 9472 : || TYPE_OVERFLOW_WRAPS (type)
397 3283 : || (INTEGRAL_TYPE_P (type)
398 3283 : && ((tree_expr_nonzero_p (captures[0])
399 136 : && expr_not_equal_to (captures[0],
400 9612 : wi::minus_one (TYPE_PRECISION (type)),
401 : gimple_match_ctx (captures[1])))
402 : || (plusminus == PLUS_EXPR
403 3147 : ? expr_not_equal_to (captures[2],
404 9494 : wi::max_value (TYPE_PRECISION (type), SIGNED),
405 : gimple_match_ctx (captures[1]))
406 3129 : : (expr_not_equal_to (captures[2],
407 12605 : wi::min_value (TYPE_PRECISION (type), SIGNED),
408 : gimple_match_ctx (captures[1]))
409 3105 : && expr_not_equal_to (captures[2],
410 6210 : wi::min_value (TYPE_PRECISION (type), SIGNED)
411 18791 : + 1, gimple_match_ctx (captures[1])))))))
412 12623 : && single_use (captures[1])
413 : )
414 : {
415 9452 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
416 9452 : {
417 9452 : tree res_op0;
418 9452 : {
419 9452 : tree _o1[2], _r1;
420 9452 : _o1[0] = build_one_cst (type);
421 9452 : _o1[1] = captures[2];
422 9452 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
423 9452 : res_op0 = _r1;
424 : }
425 9452 : tree res_op1;
426 9452 : res_op1 = captures[0];
427 9452 : tree _r;
428 9452 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
429 9452 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 130, __FILE__, __LINE__, true);
430 9452 : 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 11119 : 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 11119 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
524 11119 : if (!TYPE_SATURATING (type)
525 : )
526 : {
527 11119 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
528 22238 : && !FIXED_POINT_TYPE_P (type)
529 : )
530 : {
531 11119 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
532 11119 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
533 2988 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
534 : )
535 : {
536 10999 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail198;
537 10999 : {
538 10999 : tree res_op0;
539 10999 : res_op0 = captures[1];
540 10999 : tree _r;
541 10999 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
542 10999 : if (TREE_SIDE_EFFECTS (captures[2]))
543 15 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
544 10999 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 165, __FILE__, __LINE__, true);
545 10999 : 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 19817 : 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 19817 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
597 19817 : {
598 19817 : bool wascmp;
599 19817 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
600 19817 : && (!wascmp || element_precision (type) == 1)
601 : )
602 : {
603 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail212;
604 1 : {
605 1 : tree res_op0;
606 1 : res_op0 = captures[0];
607 1 : tree res_op1;
608 1 : {
609 1 : tree _o1[1], _r1;
610 1 : _o1[0] = captures[3];
611 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
612 1 : res_op1 = _r1;
613 : }
614 1 : tree _r;
615 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
616 1 : if (TREE_SIDE_EFFECTS (captures[2]))
617 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
618 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
619 1 : return _r;
620 : }
621 0 : next_after_fail212:;
622 : }
623 : }
624 19816 : return NULL_TREE;
625 : }
626 :
627 : tree
628 2 : generic_simplify_124 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
629 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
630 : {
631 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
632 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail221;
633 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail221;
634 2 : {
635 2 : tree res_op0;
636 2 : res_op0 = captures[0];
637 2 : tree res_op1;
638 2 : res_op1 = captures[3];
639 2 : tree _r;
640 2 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
641 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
642 : return _r;
643 : }
644 : next_after_fail221:;
645 : return NULL_TREE;
646 : }
647 :
648 : tree
649 0 : generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
650 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
651 : const enum tree_code ARG_UNUSED (op))
652 : {
653 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
654 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail232;
655 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail232;
656 0 : {
657 0 : tree _r;
658 0 : _r = captures[0];
659 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 183, __FILE__, __LINE__, true);
660 : return _r;
661 : }
662 : next_after_fail232:;
663 : return NULL_TREE;
664 : }
665 :
666 : tree
667 0 : generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
668 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
669 : const enum tree_code ARG_UNUSED (bitop),
670 : const enum tree_code ARG_UNUSED (rbitop))
671 : {
672 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
673 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail245;
674 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail245;
675 0 : {
676 0 : tree _r;
677 0 : _r = captures[2];
678 0 : if (TREE_SIDE_EFFECTS (captures[1]))
679 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
680 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
681 : return _r;
682 : }
683 : next_after_fail245:;
684 : return NULL_TREE;
685 : }
686 :
687 : tree
688 0 : generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
689 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
690 : const enum tree_code ARG_UNUSED (op))
691 : {
692 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
693 0 : if (bitwise_equal_p (captures[4], captures[7])
694 : )
695 : {
696 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail252;
697 0 : {
698 0 : tree res_op0;
699 0 : {
700 0 : tree _o1[2], _r1;
701 0 : {
702 0 : tree _o2[2], _r2;
703 0 : _o2[0] = captures[5];
704 0 : {
705 0 : tree _o3[1], _r3;
706 0 : _o3[0] = captures[6];
707 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
708 : {
709 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
710 : }
711 : else
712 : _r3 = _o3[0];
713 0 : _o2[1] = _r3;
714 : }
715 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
716 0 : _o1[0] = _r2;
717 : }
718 0 : {
719 0 : tree _o2[1], _r2;
720 0 : _o2[0] = captures[4];
721 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
722 : {
723 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
724 : }
725 : else
726 : _r2 = _o2[0];
727 0 : _o1[1] = _r2;
728 : }
729 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
730 0 : res_op0 = _r1;
731 : }
732 0 : tree _r;
733 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
734 0 : if (TREE_SIDE_EFFECTS (captures[7]))
735 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
736 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
737 0 : return _r;
738 : }
739 0 : next_after_fail252:;
740 : }
741 : return NULL_TREE;
742 : }
743 :
744 : tree
745 0 : generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
746 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
747 : {
748 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
749 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail286;
750 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail286;
751 0 : {
752 0 : tree _r;
753 0 : _r = constant_boolean_node (true, type);
754 0 : if (TREE_SIDE_EFFECTS (captures[1]))
755 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
756 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
757 : return _r;
758 : }
759 : next_after_fail286:;
760 : return NULL_TREE;
761 : }
762 :
763 : tree
764 429 : generic_simplify_167 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
765 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
766 : const enum tree_code ARG_UNUSED (code2),
767 : const enum tree_code ARG_UNUSED (code1))
768 : {
769 429 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
770 429 : if ((TREE_CODE (captures[2]) == INTEGER_CST
771 405 : && TREE_CODE (captures[5]) == INTEGER_CST)
772 429 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
773 1 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
774 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
775 24 : && bitwise_equal_p (captures[2], captures[5]))
776 : )
777 : {
778 405 : {
779 405 : bool one_before = false;
780 405 : bool one_after = false;
781 405 : int cmp = 0;
782 405 : bool allbits = true;
783 405 : if (TREE_CODE (captures[2]) == INTEGER_CST
784 405 : && TREE_CODE (captures[5]) == INTEGER_CST)
785 : {
786 405 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
787 405 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
788 405 : auto t2 = wi::to_wide (captures[5]);
789 405 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
790 405 : if (cmp < 0
791 405 : && t1 == t2 - 1)
792 : one_before = true;
793 405 : if (cmp > 0
794 405 : && t1 == t2 + 1)
795 : one_after = true;
796 : }
797 405 : bool val;
798 405 : switch (code2)
799 : {
800 396 : case EQ_EXPR: val = (cmp == 0); break;
801 0 : case NE_EXPR: val = (cmp != 0); break;
802 0 : case LT_EXPR: val = (cmp < 0); break;
803 9 : case GT_EXPR: val = (cmp > 0); break;
804 0 : case LE_EXPR: val = (cmp <= 0); break;
805 0 : case GE_EXPR: val = (cmp >= 0); break;
806 0 : default: gcc_unreachable ();
807 : }
808 405 : if (code1 == EQ_EXPR && val
809 : )
810 : {
811 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail297;
812 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail297;
813 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail297;
814 0 : {
815 0 : tree _r;
816 0 : _r = captures[3];
817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
818 0 : return _r;
819 : }
820 : next_after_fail297:;
821 : }
822 : else
823 : {
824 405 : if (code1 == NE_EXPR && val && allbits
825 : )
826 : {
827 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail298;
828 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail298;
829 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail298;
830 0 : {
831 0 : tree _r;
832 0 : _r = constant_boolean_node (true, type);
833 0 : if (TREE_SIDE_EFFECTS (captures[4]))
834 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
835 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
836 0 : return _r;
837 : }
838 : next_after_fail298:;
839 : }
840 : else
841 : {
842 405 : if (code1 == NE_EXPR && !val && allbits
843 : )
844 : {
845 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail299;
846 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail299;
847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail299;
848 0 : {
849 0 : tree _r;
850 0 : _r = captures[0];
851 0 : if (TREE_SIDE_EFFECTS (captures[4]))
852 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
853 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
854 0 : return _r;
855 : }
856 : next_after_fail299:;
857 : }
858 : else
859 : {
860 405 : if (code1 == EQ_EXPR
861 405 : && code2 == GT_EXPR
862 9 : && cmp == 0
863 9 : && allbits
864 405 : && ((VECTOR_BOOLEAN_TYPE_P (type)
865 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
866 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
867 : )
868 : {
869 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail300;
870 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail300;
871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail300;
872 0 : {
873 0 : tree res_op0;
874 0 : res_op0 = captures[4];
875 0 : tree res_op1;
876 0 : res_op1 = captures[5];
877 0 : tree _r;
878 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
880 0 : return _r;
881 : }
882 : next_after_fail300:;
883 : }
884 : else
885 : {
886 405 : if (code1 == EQ_EXPR
887 405 : && code2 == LT_EXPR
888 0 : && cmp == 0
889 0 : && allbits
890 405 : && ((VECTOR_BOOLEAN_TYPE_P (type)
891 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
892 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
893 : )
894 : {
895 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail301;
896 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail301;
897 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail301;
898 0 : {
899 0 : tree res_op0;
900 0 : res_op0 = captures[4];
901 0 : tree res_op1;
902 0 : res_op1 = captures[5];
903 0 : tree _r;
904 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
905 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
906 0 : return _r;
907 : }
908 : next_after_fail301:;
909 : }
910 : else
911 : {
912 405 : if (code1 == EQ_EXPR
913 405 : && code2 == GE_EXPR
914 : && one_before
915 0 : && allbits
916 405 : && ((VECTOR_BOOLEAN_TYPE_P (type)
917 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
918 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
919 : )
920 : {
921 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail302;
922 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail302;
923 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail302;
924 0 : {
925 0 : tree res_op0;
926 0 : res_op0 = captures[4];
927 0 : tree res_op1;
928 0 : {
929 0 : tree _o1[1], _r1;
930 0 : _o1[0] = captures[2];
931 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
932 : {
933 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
934 : }
935 : else
936 : _r1 = _o1[0];
937 0 : res_op1 = _r1;
938 : }
939 0 : tree _r;
940 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
941 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
942 0 : return _r;
943 : }
944 : next_after_fail302:;
945 : }
946 : else
947 : {
948 405 : if (code1 == EQ_EXPR
949 405 : && code2 == LE_EXPR
950 : && one_after
951 0 : && allbits
952 405 : && ((VECTOR_BOOLEAN_TYPE_P (type)
953 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
954 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
955 : )
956 : {
957 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail303;
958 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail303;
959 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail303;
960 0 : {
961 0 : tree res_op0;
962 0 : res_op0 = captures[4];
963 0 : tree res_op1;
964 0 : {
965 0 : tree _o1[1], _r1;
966 0 : _o1[0] = captures[2];
967 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
968 : {
969 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
970 : }
971 : else
972 : _r1 = _o1[0];
973 0 : res_op1 = _r1;
974 : }
975 0 : tree _r;
976 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
977 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
978 0 : return _r;
979 : }
980 : next_after_fail303:;
981 : }
982 : }
983 : }
984 : }
985 : }
986 : }
987 : }
988 : }
989 : }
990 : return NULL_TREE;
991 : }
992 :
993 : tree
994 31 : generic_simplify_212 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
995 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
996 : const enum tree_code ARG_UNUSED (cmp),
997 : const enum tree_code ARG_UNUSED (icmp))
998 : {
999 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1000 62 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1001 29 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1002 13 : && type_has_mode_precision_p (TREE_TYPE (captures[0]))
1003 13 : && types_match (captures[0], captures[2])
1004 13 : && tree_fits_shwi_p (captures[1])
1005 13 : && tree_to_shwi (captures[1]) > 0
1006 44 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
1007 : )
1008 : {
1009 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail355;
1010 13 : {
1011 13 : tree res_op0;
1012 13 : {
1013 13 : tree _o1[2], _r1;
1014 13 : _o1[0] = captures[0];
1015 13 : _o1[1] = captures[2];
1016 13 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1017 13 : res_op0 = _r1;
1018 : }
1019 13 : tree res_op1;
1020 13 : {
1021 13 : tree _o1[2], _r1;
1022 13 : _o1[0] = build_one_cst (TREE_TYPE (captures[0]));
1023 13 : _o1[1] = captures[1];
1024 13 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1025 13 : res_op1 = _r1;
1026 : }
1027 13 : tree _r;
1028 13 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1029 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 269, __FILE__, __LINE__, true);
1030 13 : return _r;
1031 : }
1032 0 : next_after_fail355:;
1033 : }
1034 : return NULL_TREE;
1035 : }
1036 :
1037 : tree
1038 43 : generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1039 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1040 : const enum tree_code ARG_UNUSED (op))
1041 : {
1042 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1043 43 : if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
1044 : )
1045 : {
1046 43 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail376;
1047 43 : {
1048 43 : tree res_op0;
1049 43 : res_op0 = captures[1];
1050 43 : tree res_op1;
1051 43 : res_op1 = captures[3];
1052 43 : tree _r;
1053 43 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1054 43 : if (TREE_SIDE_EFFECTS (captures[2]))
1055 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1056 43 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 290, __FILE__, __LINE__, true);
1057 43 : return _r;
1058 : }
1059 0 : next_after_fail376:;
1060 : }
1061 : return NULL_TREE;
1062 : }
1063 :
1064 : tree
1065 0 : generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1066 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1067 : const enum tree_code ARG_UNUSED (cmp1),
1068 : const enum tree_code ARG_UNUSED (cmp2),
1069 : const enum tree_code ARG_UNUSED (rcmp))
1070 : {
1071 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1072 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1073 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
1074 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1075 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
1076 : )
1077 : {
1078 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail384;
1079 0 : {
1080 0 : tree res_op0;
1081 0 : res_op0 = captures[0];
1082 0 : tree res_op1;
1083 0 : res_op1 = captures[1];
1084 0 : tree _r;
1085 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 297, __FILE__, __LINE__, true);
1087 0 : return _r;
1088 : }
1089 0 : next_after_fail384:;
1090 : }
1091 : return NULL_TREE;
1092 : }
1093 :
1094 : tree
1095 2 : generic_simplify_236 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1096 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1097 : const enum tree_code ARG_UNUSED (cmp),
1098 : const enum tree_code ARG_UNUSED (icmp))
1099 : {
1100 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1101 2 : if (tree_int_cst_sgn (captures[0]) > 0
1102 : )
1103 : {
1104 2 : {
1105 2 : int c1 = wi::clz (wi::to_wide (captures[0]));
1106 2 : int c2 = wi::clz (wi::to_wide (captures[2]));
1107 2 : if (c1 > c2
1108 : )
1109 : {
1110 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail396;
1111 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail396;
1112 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail396;
1113 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail396;
1114 0 : {
1115 0 : tree _r;
1116 0 : _r = constant_boolean_node (cmp == NE_EXPR ? false : true, type);
1117 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1118 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1119 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 309, __FILE__, __LINE__, true);
1120 0 : return _r;
1121 : }
1122 : next_after_fail396:;
1123 : }
1124 : else
1125 : {
1126 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail397;
1127 2 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail397;
1128 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail397;
1129 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail397;
1130 2 : {
1131 2 : tree res_op0;
1132 2 : res_op0 = captures[1];
1133 2 : tree res_op1;
1134 2 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), c2 - c1);
1135 2 : tree _r;
1136 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1137 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 310, __FILE__, __LINE__, true);
1138 2 : return _r;
1139 : }
1140 : next_after_fail397:;
1141 : }
1142 : }
1143 : }
1144 : return NULL_TREE;
1145 : }
1146 :
1147 : tree
1148 179 : generic_simplify_245 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1149 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1150 : const enum tree_code ARG_UNUSED (cmp),
1151 : const enum tree_code ARG_UNUSED (icmp),
1152 : const enum tree_code ARG_UNUSED (ncmp))
1153 : {
1154 179 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1155 179 : if (types_match (type, TREE_TYPE (captures[0]))
1156 : )
1157 : {
1158 125 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail413;
1159 125 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail413;
1160 125 : {
1161 125 : tree res_op0;
1162 125 : res_op0 = captures[1];
1163 125 : tree res_op1;
1164 125 : res_op1 = captures[2];
1165 125 : tree _r;
1166 125 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1167 125 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 326, __FILE__, __LINE__, true);
1168 125 : return _r;
1169 : }
1170 : next_after_fail413:;
1171 : }
1172 : return NULL_TREE;
1173 : }
1174 :
1175 : tree
1176 45301667 : generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1177 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1178 : const enum tree_code ARG_UNUSED (cmp))
1179 : {
1180 45301667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1181 45301667 : {
1182 45301667 : bool wascmp;
1183 45301667 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1184 45301667 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
1185 : )
1186 : {
1187 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail426;
1188 5 : {
1189 5 : tree _r;
1190 5 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1191 5 : if (TREE_SIDE_EFFECTS (captures[0]))
1192 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1193 5 : if (TREE_SIDE_EFFECTS (captures[1]))
1194 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1195 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 338, __FILE__, __LINE__, true);
1196 5 : return _r;
1197 : }
1198 0 : next_after_fail426:;
1199 : }
1200 : }
1201 45301662 : return NULL_TREE;
1202 : }
1203 :
1204 : tree
1205 8863 : generic_simplify_257 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1206 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1207 : const enum tree_code ARG_UNUSED (op),
1208 : const enum tree_code ARG_UNUSED (cmp))
1209 : {
1210 8863 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1211 8863 : if (flag_unsafe_math_optimizations
1212 : )
1213 : {
1214 5 : {
1215 8 : tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR,
1216 5 : TREE_TYPE (captures[1]), captures[2], captures[1]);
1217 5 : if (tem && !TREE_OVERFLOW (tem)
1218 : )
1219 : {
1220 4 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail445;
1221 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail445;
1222 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail445;
1223 4 : {
1224 4 : tree res_op0;
1225 4 : res_op0 = captures[0];
1226 4 : tree res_op1;
1227 4 : res_op1 = tem;
1228 4 : tree _r;
1229 4 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1230 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 356, __FILE__, __LINE__, true);
1231 4 : return _r;
1232 : }
1233 : next_after_fail445:;
1234 : }
1235 : }
1236 : }
1237 : return NULL_TREE;
1238 : }
1239 :
1240 : tree
1241 69 : generic_simplify_263 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1242 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1243 : const enum tree_code ARG_UNUSED (cmp))
1244 : {
1245 69 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1246 69 : if (!integer_zerop (captures[1])
1247 : )
1248 : {
1249 69 : if (wi::to_wide (captures[2]) == 0
1250 : )
1251 : {
1252 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail476;
1253 22 : {
1254 22 : tree res_op0;
1255 22 : res_op0 = captures[0];
1256 22 : tree res_op1;
1257 22 : res_op1 = captures[2];
1258 22 : tree _r;
1259 22 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1260 22 : if (TREE_SIDE_EFFECTS (captures[1]))
1261 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1262 22 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 387, __FILE__, __LINE__, true);
1263 22 : return _r;
1264 : }
1265 0 : next_after_fail476:;
1266 : }
1267 : else
1268 : {
1269 47 : if (TREE_CODE (captures[1]) == INTEGER_CST
1270 : )
1271 : {
1272 47 : {
1273 47 : wi::overflow_type ovf;
1274 47 : wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
1275 94 : TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
1276 47 : if (ovf
1277 : )
1278 : {
1279 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail477;
1280 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail477;
1281 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail477;
1282 0 : {
1283 0 : tree _r;
1284 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1285 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1286 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1287 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 388, __FILE__, __LINE__, true);
1288 0 : return _r;
1289 : }
1290 0 : next_after_fail477:;
1291 : }
1292 : else
1293 : {
1294 47 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail478;
1295 47 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail478;
1296 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail478;
1297 47 : {
1298 47 : tree res_op0;
1299 47 : res_op0 = captures[0];
1300 47 : tree res_op1;
1301 47 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
1302 47 : tree _r;
1303 47 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1304 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 389, __FILE__, __LINE__, true);
1305 47 : return _r;
1306 : }
1307 0 : next_after_fail478:;
1308 : }
1309 47 : }
1310 : }
1311 : }
1312 : }
1313 : return NULL_TREE;
1314 : }
1315 :
1316 : tree
1317 25607 : generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1318 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1319 : const enum tree_code ARG_UNUSED (cmp))
1320 : {
1321 25607 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1322 25607 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail502;
1323 25607 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail502;
1324 25607 : {
1325 25607 : tree res_op0;
1326 25607 : res_op0 = captures[0];
1327 25607 : tree res_op1;
1328 25607 : res_op1 = captures[1];
1329 25607 : tree _r;
1330 25607 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1331 25607 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 405, __FILE__, __LINE__, true);
1332 : return _r;
1333 : }
1334 : next_after_fail502:;
1335 : return NULL_TREE;
1336 : }
1337 :
1338 : tree
1339 146017 : generic_simplify_272 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1340 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1341 : const enum tree_code ARG_UNUSED (cmp))
1342 : {
1343 146017 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1344 146017 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail504;
1345 146017 : {
1346 146017 : tree res_op0;
1347 146017 : {
1348 146017 : tree _o1[2], _r1;
1349 146017 : _o1[0] = captures[0];
1350 146017 : {
1351 146017 : tree _o2[1], _r2;
1352 146017 : _o2[0] = captures[1];
1353 146017 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1354 146017 : if (EXPR_P (_r2))
1355 145988 : goto next_after_fail504;
1356 29 : _o1[1] = _r2;
1357 : }
1358 29 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1359 29 : res_op0 = _r1;
1360 : }
1361 29 : tree res_op1;
1362 29 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1363 29 : tree _r;
1364 29 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1365 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1366 : return _r;
1367 : }
1368 : next_after_fail504:;
1369 : return NULL_TREE;
1370 : }
1371 :
1372 : tree
1373 29357670 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1374 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1375 : const enum tree_code ARG_UNUSED (cmp))
1376 : {
1377 29357670 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1378 29357670 : if (tree_expr_nonzero_p (captures[0])
1379 : )
1380 : {
1381 1347299 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail508;
1382 1347299 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail508;
1383 1347299 : {
1384 1347299 : tree _r;
1385 1347299 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1386 1347299 : if (TREE_SIDE_EFFECTS (captures[0]))
1387 6708 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1388 1347299 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 411, __FILE__, __LINE__, true);
1389 1347299 : return _r;
1390 : }
1391 : next_after_fail508:;
1392 : }
1393 : return NULL_TREE;
1394 : }
1395 :
1396 : tree
1397 84 : generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1398 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1399 : const enum tree_code ARG_UNUSED (sgncmp),
1400 : const enum tree_code ARG_UNUSED (cmp),
1401 : const enum tree_code ARG_UNUSED (ncmp))
1402 : {
1403 84 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1404 168 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1405 84 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1406 168 : && types_match (captures[0], captures[2])
1407 : )
1408 : {
1409 84 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail513;
1410 84 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail513;
1411 84 : {
1412 84 : tree res_op0;
1413 84 : {
1414 84 : tree _o1[2], _r1;
1415 84 : _o1[0] = captures[0];
1416 84 : _o1[1] = captures[2];
1417 84 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1418 84 : res_op0 = _r1;
1419 : }
1420 84 : tree res_op1;
1421 84 : res_op1 = captures[1];
1422 84 : tree _r;
1423 84 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1424 84 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 415, __FILE__, __LINE__, true);
1425 84 : return _r;
1426 : }
1427 : next_after_fail513:;
1428 : }
1429 : return NULL_TREE;
1430 : }
1431 :
1432 : tree
1433 52480352 : generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1434 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1435 : const enum tree_code ARG_UNUSED (neeq))
1436 : {
1437 52480352 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1438 93552168 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
1439 52490754 : && ptrs_compare_unequal (captures[0], captures[1])
1440 : )
1441 : {
1442 11949 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail533;
1443 11949 : {
1444 11949 : tree _r;
1445 11949 : _r = constant_boolean_node (neeq != EQ_EXPR, type);
1446 11949 : if (TREE_SIDE_EFFECTS (captures[0]))
1447 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1448 11949 : if (TREE_SIDE_EFFECTS (captures[1]))
1449 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1450 11949 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
1451 11949 : return _r;
1452 : }
1453 0 : next_after_fail533:;
1454 : }
1455 : return NULL_TREE;
1456 : }
1457 :
1458 : tree
1459 1044521 : generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1460 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1461 : const enum tree_code ARG_UNUSED (op),
1462 : const enum tree_code ARG_UNUSED (rop),
1463 : const enum tree_code ARG_UNUSED (cmp))
1464 : {
1465 1044521 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1466 2089042 : if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
1467 1044521 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
1468 1044208 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1]))
1469 2088585 : && !TYPE_SATURATING (TREE_TYPE (captures[1]))
1470 : )
1471 : {
1472 1044064 : {
1473 1044064 : tree res = int_const_binop (rop, captures[3], captures[2]);
1474 1044064 : if (TREE_OVERFLOW (res)
1475 1044064 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1476 : )
1477 : {
1478 7587 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail541;
1479 7587 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail541;
1480 7587 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail541;
1481 7587 : {
1482 7587 : tree _r;
1483 7587 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1484 7587 : if (TREE_SIDE_EFFECTS (captures[1]))
1485 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1486 7587 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 434, __FILE__, __LINE__, true);
1487 7587 : return _r;
1488 : }
1489 : next_after_fail541:;
1490 : }
1491 : else
1492 : {
1493 1036477 : if (single_use (captures[0]) || wi::to_wide (res) == 0
1494 : )
1495 : {
1496 1036477 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail542;
1497 1036477 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail542;
1498 1036477 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail542;
1499 1036477 : {
1500 1036477 : tree res_op0;
1501 1036477 : res_op0 = captures[1];
1502 1036477 : tree res_op1;
1503 1036477 : res_op1 = TREE_OVERFLOW (res)
1504 1036477 : ? drop_tree_overflow (res) : res;
1505 1036477 : tree _r;
1506 1036477 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1507 1036477 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 435, __FILE__, __LINE__, true);
1508 1036477 : return _r;
1509 : }
1510 : next_after_fail542:;
1511 : }
1512 : }
1513 : }
1514 : }
1515 : return NULL_TREE;
1516 : }
1517 :
1518 : tree
1519 0 : generic_simplify_294 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1520 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1521 : const enum tree_code ARG_UNUSED (op),
1522 : const enum tree_code ARG_UNUSED (cmp))
1523 : {
1524 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1525 0 : if (integer_zerop (captures[3]) && single_use (captures[0])
1526 : )
1527 : {
1528 0 : {
1529 0 : tree type0 = TREE_TYPE (captures[1]);
1530 0 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1531 0 : if (integer_zerop (captures[2]))
1532 : stype = NULL_TREE;
1533 0 : if (stype
1534 : )
1535 : {
1536 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail554;
1537 0 : {
1538 0 : tree res_op0;
1539 0 : {
1540 0 : tree _o1[1], _r1;
1541 0 : _o1[0] = captures[1];
1542 0 : if (TREE_TYPE (_o1[0]) != stype)
1543 : {
1544 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1545 : }
1546 : else
1547 : _r1 = _o1[0];
1548 0 : res_op0 = _r1;
1549 : }
1550 0 : tree res_op1;
1551 0 : res_op1 = build_zero_cst (stype);
1552 0 : tree _r;
1553 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1554 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1555 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1556 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1557 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1558 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 447, __FILE__, __LINE__, true);
1559 0 : return _r;
1560 : }
1561 0 : next_after_fail554:;
1562 : }
1563 : }
1564 : }
1565 : else
1566 : {
1567 0 : {
1568 0 : bool ok = true;
1569 0 : tree type0 = TREE_TYPE (captures[1]);
1570 0 : if (wi::to_widest (captures[2]) == TYPE_PRECISION (type0) - 1)
1571 : ok = false;
1572 0 : if (ok && wi::to_wide (captures[3]) == (TYPE_PRECISION (type0) - 1)
1573 : )
1574 : {
1575 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail555;
1576 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail555;
1577 0 : {
1578 0 : tree res_op0;
1579 0 : res_op0 = captures[1];
1580 0 : tree res_op1;
1581 0 : res_op1 = build_one_cst (type0);
1582 0 : tree _r;
1583 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1584 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1585 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1586 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 448, __FILE__, __LINE__, true);
1587 0 : return _r;
1588 : }
1589 : next_after_fail555:;
1590 : }
1591 : }
1592 : }
1593 : return NULL_TREE;
1594 : }
1595 :
1596 : tree
1597 0 : generic_simplify_303 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1598 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1599 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1600 : {
1601 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1602 0 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
1603 : )
1604 : {
1605 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail569;
1606 0 : {
1607 0 : tree res_op0;
1608 0 : {
1609 0 : tree _o1[1], _r1;
1610 0 : _o1[0] = captures[0];
1611 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1612 0 : res_op0 = _r1;
1613 : }
1614 0 : tree res_op1;
1615 0 : res_op1 = captures[1];
1616 0 : tree _r;
1617 0 : _r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
1618 0 : if (!_r)
1619 0 : goto next_after_fail569;
1620 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 462, __FILE__, __LINE__, true);
1621 0 : return _r;
1622 : }
1623 : next_after_fail569:;
1624 : }
1625 : return NULL_TREE;
1626 : }
1627 :
1628 : tree
1629 0 : generic_simplify_308 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1630 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1631 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1632 : {
1633 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1634 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail574;
1635 0 : {
1636 0 : tree res_op0;
1637 0 : res_op0 = captures[0];
1638 0 : tree _r;
1639 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1640 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1641 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1642 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 467, __FILE__, __LINE__, true);
1643 : return _r;
1644 : }
1645 0 : next_after_fail574:;
1646 0 : return NULL_TREE;
1647 : }
1648 :
1649 : tree
1650 1 : generic_simplify_315 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1651 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1652 : const enum tree_code ARG_UNUSED (div))
1653 : {
1654 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1655 1 : if (INTEGRAL_TYPE_P (type)
1656 1 : && TYPE_OVERFLOW_UNDEFINED (type)
1657 1 : && !integer_zerop (captures[0])
1658 2 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1659 : )
1660 : {
1661 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail583;
1662 1 : {
1663 1 : tree res_op0;
1664 1 : {
1665 1 : tree _o1[2], _r1;
1666 1 : _o1[0] = captures[0];
1667 1 : _o1[1] = build_zero_cst (type);
1668 1 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
1669 1 : res_op0 = _r1;
1670 : }
1671 1 : tree res_op1;
1672 1 : res_op1 = build_minus_one_cst (type);
1673 1 : tree res_op2;
1674 1 : res_op2 = build_one_cst (type);
1675 1 : tree _r;
1676 1 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
1677 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 474, __FILE__, __LINE__, true);
1678 1 : return _r;
1679 : }
1680 0 : next_after_fail583:;
1681 : }
1682 : return NULL_TREE;
1683 : }
1684 :
1685 : tree
1686 2282425 : generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1687 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1688 : const enum tree_code ARG_UNUSED (floor_divmod),
1689 : const enum tree_code ARG_UNUSED (trunc_divmod))
1690 : {
1691 2282425 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1692 0 : if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
1693 2282425 : && TYPE_UNSIGNED (type)
1694 : )
1695 : {
1696 2273311 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail591;
1697 2273311 : {
1698 2273311 : tree res_op0;
1699 2273311 : res_op0 = captures[0];
1700 2273311 : tree res_op1;
1701 2273311 : res_op1 = captures[1];
1702 2273311 : tree _r;
1703 2273311 : _r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
1704 2273311 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 482, __FILE__, __LINE__, true);
1705 2273311 : return _r;
1706 : }
1707 0 : next_after_fail591:;
1708 : }
1709 : return NULL_TREE;
1710 : }
1711 :
1712 : tree
1713 7033 : generic_simplify_328 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1714 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1715 : const enum tree_code ARG_UNUSED (mod))
1716 : {
1717 7033 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1718 0 : if (ANY_INTEGRAL_TYPE_P (type)
1719 7033 : && TYPE_OVERFLOW_UNDEFINED (type)
1720 14066 : && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1721 195 : TYPE_SIGN (type))
1722 : )
1723 : {
1724 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail597;
1725 0 : {
1726 0 : tree _r;
1727 0 : _r = build_zero_cst (type);
1728 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1729 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1730 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1731 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1732 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1733 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1734 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
1735 0 : return _r;
1736 : }
1737 0 : next_after_fail597:;
1738 : }
1739 : return NULL_TREE;
1740 : }
1741 :
1742 : tree
1743 0 : generic_simplify_341 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1744 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1745 : const enum tree_code ARG_UNUSED (op),
1746 : const combined_fn ARG_UNUSED (bt),
1747 : const combined_fn ARG_UNUSED (bf),
1748 : const combined_fn ARG_UNUSED (floor),
1749 : const combined_fn ARG_UNUSED (ceil))
1750 : {
1751 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1752 0 : if (!HONOR_SIGNED_ZEROS (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
1753 : )
1754 : {
1755 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail612;
1756 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail612;
1757 0 : {
1758 0 : tree res_op0;
1759 0 : {
1760 0 : tree _o1[2], _r1;
1761 0 : _o1[0] = captures[1];
1762 0 : _o1[1] = build_real (type, dconsthalf);
1763 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1764 0 : res_op0 = _r1;
1765 : }
1766 0 : tree _r;
1767 0 : _r = maybe_build_call_expr_loc (loc, floor, type, 1, res_op0);
1768 0 : if (!_r)
1769 0 : goto next_after_fail612;
1770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
1771 0 : return _r;
1772 : }
1773 : next_after_fail612:;
1774 : }
1775 : return NULL_TREE;
1776 : }
1777 :
1778 : tree
1779 0 : generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1780 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1781 : const enum tree_code ARG_UNUSED (cmp))
1782 : {
1783 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1784 0 : if (INTEGRAL_TYPE_P (type)
1785 : )
1786 : {
1787 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail627;
1788 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail627;
1789 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail627;
1790 0 : {
1791 0 : tree res_op0;
1792 0 : res_op0 = captures[0];
1793 0 : tree res_op1;
1794 0 : res_op1 = captures[1];
1795 0 : tree _r;
1796 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1797 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 518, __FILE__, __LINE__, true);
1798 0 : return _r;
1799 : }
1800 : next_after_fail627:;
1801 : }
1802 : return NULL_TREE;
1803 : }
1804 :
1805 : tree
1806 0 : generic_simplify_354 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1807 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1808 : const enum tree_code ARG_UNUSED (op))
1809 : {
1810 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1811 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail631;
1812 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail631;
1813 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail631;
1814 0 : {
1815 0 : tree _r;
1816 0 : _r = captures[2];
1817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 522, __FILE__, __LINE__, true);
1818 : return _r;
1819 : }
1820 : next_after_fail631:;
1821 : return NULL_TREE;
1822 : }
1823 :
1824 : tree
1825 184 : generic_simplify_360 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1826 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1827 : const enum tree_code ARG_UNUSED (op))
1828 : {
1829 184 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1830 184 : if (bitwise_equal_p (captures[0], captures[3])
1831 184 : && expr_no_side_effects_p (captures[2])
1832 : )
1833 : {
1834 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail637;
1835 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail637;
1836 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail637;
1837 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
1838 1 : {
1839 1 : tree _r;
1840 1 : _r = captures[1];
1841 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 528, __FILE__, __LINE__, true);
1842 1 : return _r;
1843 : }
1844 : next_after_fail637:;
1845 : }
1846 : return NULL_TREE;
1847 : }
1848 :
1849 : tree
1850 6 : generic_simplify_366 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1851 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1852 : const enum tree_code ARG_UNUSED (neeq),
1853 : const combined_fn ARG_UNUSED (sign))
1854 : {
1855 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1856 6 : if (neeq == NE_EXPR
1857 : )
1858 : {
1859 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail643;
1860 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail643;
1861 3 : {
1862 3 : tree res_op0;
1863 3 : res_op0 = captures[0];
1864 3 : tree _r;
1865 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1866 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
1867 3 : return _r;
1868 : }
1869 : next_after_fail643:;
1870 : }
1871 : else
1872 : {
1873 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail644;
1874 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail644;
1875 3 : {
1876 3 : tree res_op0;
1877 3 : {
1878 3 : tree _o1[1], _r1;
1879 3 : _o1[0] = captures[0];
1880 3 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1881 3 : res_op0 = _r1;
1882 : }
1883 3 : tree _r;
1884 3 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
1885 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
1886 3 : return _r;
1887 : }
1888 : next_after_fail644:;
1889 : }
1890 : return NULL_TREE;
1891 : }
1892 :
1893 : tree
1894 83877 : generic_simplify_379 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1895 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1896 : const enum tree_code ARG_UNUSED (op))
1897 : {
1898 83877 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1899 167754 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1900 83877 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1901 167754 : && wi::only_sign_bit_p (wi::to_wide (captures[1]))
1902 : )
1903 : {
1904 5 : {
1905 5 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1906 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail661;
1907 5 : {
1908 5 : tree res_op0;
1909 5 : {
1910 5 : tree _o1[1], _r1;
1911 5 : _o1[0] = captures[0];
1912 5 : if (TREE_TYPE (_o1[0]) != stype)
1913 : {
1914 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1915 : }
1916 : else
1917 : _r1 = _o1[0];
1918 5 : res_op0 = _r1;
1919 : }
1920 5 : tree res_op1;
1921 5 : {
1922 5 : tree _o1[1], _r1;
1923 5 : _o1[0] = captures[2];
1924 5 : if (TREE_TYPE (_o1[0]) != stype)
1925 : {
1926 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1927 : }
1928 : else
1929 : _r1 = _o1[0];
1930 5 : res_op1 = _r1;
1931 : }
1932 5 : tree _r;
1933 5 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1934 5 : if (TREE_SIDE_EFFECTS (captures[1]))
1935 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1936 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 550, __FILE__, __LINE__, true);
1937 5 : return _r;
1938 : }
1939 0 : next_after_fail661:;
1940 : }
1941 : }
1942 : return NULL_TREE;
1943 : }
1944 :
1945 : tree
1946 9566340 : generic_simplify_389 (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 : const enum tree_code ARG_UNUSED (acmp))
1950 : {
1951 9566340 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1952 9566340 : {
1953 9566340 : tree cst = uniform_integer_cst_p (captures[1]);
1954 9566340 : if (tree_int_cst_sgn (cst) == 1
1955 : )
1956 : {
1957 3955688 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail672;
1958 3955688 : {
1959 3955688 : tree res_op0;
1960 3955688 : res_op0 = captures[0];
1961 3955688 : tree res_op1;
1962 3955688 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
1963 3955688 : wide_int_to_tree (TREE_TYPE (cst),
1964 3955688 : wi::to_wide (cst) - 1));
1965 3955688 : tree _r;
1966 3955688 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
1967 3955688 : if (TREE_SIDE_EFFECTS (captures[1]))
1968 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1969 3955688 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
1970 3955688 : return _r;
1971 : }
1972 0 : next_after_fail672:;
1973 : }
1974 : }
1975 : return NULL_TREE;
1976 : }
1977 :
1978 : tree
1979 0 : generic_simplify_399 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1980 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1981 : const enum tree_code ARG_UNUSED (cmp),
1982 : const enum tree_code ARG_UNUSED (out))
1983 : {
1984 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1985 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1986 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1987 : )
1988 : {
1989 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail714;
1990 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail714;
1991 0 : {
1992 0 : tree res_op0;
1993 0 : {
1994 0 : tree _o1[1], _r1;
1995 0 : _o1[0] = captures[0];
1996 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
1997 0 : res_op0 = _r1;
1998 : }
1999 0 : tree res_op1;
2000 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2001 0 : tree _r;
2002 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2003 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 586, __FILE__, __LINE__, true);
2004 0 : return _r;
2005 : }
2006 : next_after_fail714:;
2007 : }
2008 : return NULL_TREE;
2009 : }
2010 :
2011 : tree
2012 20242146 : generic_simplify_406 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2013 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2014 : const enum tree_code ARG_UNUSED (cmp),
2015 : const enum tree_code ARG_UNUSED (acmp))
2016 : {
2017 20242146 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2018 20242146 : {
2019 20242146 : tree cst = uniform_integer_cst_p (captures[1]);
2020 20242146 : if (tree_int_cst_sgn (cst) == -1
2021 : )
2022 : {
2023 176864 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail728;
2024 176864 : {
2025 176864 : tree res_op0;
2026 176864 : res_op0 = captures[0];
2027 176864 : tree res_op1;
2028 176864 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2029 176864 : wide_int_to_tree (TREE_TYPE (cst),
2030 176864 : wi::to_wide (cst)
2031 353728 : + 1));
2032 176864 : tree _r;
2033 176864 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2034 176864 : if (TREE_SIDE_EFFECTS (captures[1]))
2035 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2036 176864 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 600, __FILE__, __LINE__, true);
2037 176864 : return _r;
2038 : }
2039 0 : next_after_fail728:;
2040 : }
2041 : }
2042 : return NULL_TREE;
2043 : }
2044 :
2045 : tree
2046 0 : generic_simplify_409 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2047 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2048 : const enum tree_code ARG_UNUSED (cmp),
2049 : const enum tree_code ARG_UNUSED (out))
2050 : {
2051 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2052 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2053 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2054 : )
2055 : {
2056 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail731;
2057 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail731;
2058 0 : {
2059 0 : tree res_op0;
2060 0 : {
2061 0 : tree _o1[1], _r1;
2062 0 : _o1[0] = captures[0];
2063 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2064 0 : res_op0 = _r1;
2065 : }
2066 0 : tree res_op1;
2067 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2068 0 : tree _r;
2069 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2070 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
2071 0 : return _r;
2072 : }
2073 : next_after_fail731:;
2074 : }
2075 : return NULL_TREE;
2076 : }
2077 :
2078 : tree
2079 43 : generic_simplify_414 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2080 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2081 : const enum tree_code ARG_UNUSED (cmp),
2082 : const enum tree_code ARG_UNUSED (cmp2),
2083 : const enum tree_code ARG_UNUSED (cmp3),
2084 : const enum tree_code ARG_UNUSED (bit_op),
2085 : const combined_fn ARG_UNUSED (ffs))
2086 : {
2087 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2088 43 : {
2089 43 : int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2090 43 : if (integer_zerop (captures[2])
2091 : )
2092 : {
2093 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
2094 11 : {
2095 11 : tree res_op0;
2096 11 : res_op0 = captures[1];
2097 11 : tree res_op1;
2098 11 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2099 11 : tree _r;
2100 11 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2101 11 : if (TREE_SIDE_EFFECTS (captures[2]))
2102 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2103 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 604, __FILE__, __LINE__, true);
2104 27 : return _r;
2105 : }
2106 0 : next_after_fail736:;
2107 : }
2108 : else
2109 : {
2110 32 : if (tree_int_cst_sgn (captures[2]) < 0
2111 : )
2112 : {
2113 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail737;
2114 0 : {
2115 0 : tree _r;
2116 0 : _r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
2117 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2118 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2119 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2120 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2121 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
2122 0 : return _r;
2123 : }
2124 0 : next_after_fail737:;
2125 : }
2126 : else
2127 : {
2128 32 : if (wi::to_widest (captures[2]) >= prec
2129 : )
2130 : {
2131 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail738;
2132 14 : {
2133 14 : tree _r;
2134 14 : _r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
2135 14 : if (TREE_SIDE_EFFECTS (captures[1]))
2136 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2137 14 : if (TREE_SIDE_EFFECTS (captures[2]))
2138 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2139 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 606, __FILE__, __LINE__, true);
2140 14 : return _r;
2141 : }
2142 0 : next_after_fail738:;
2143 : }
2144 : else
2145 : {
2146 18 : if (wi::to_widest (captures[2]) == prec - 1
2147 : )
2148 : {
2149 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail739;
2150 2 : {
2151 2 : tree res_op0;
2152 2 : res_op0 = captures[1];
2153 2 : tree res_op1;
2154 2 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
2155 2 : wi::shifted_mask (prec - 1, 1,
2156 : false, prec));
2157 2 : tree _r;
2158 2 : _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
2159 2 : if (TREE_SIDE_EFFECTS (captures[2]))
2160 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2161 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
2162 2 : return _r;
2163 : }
2164 0 : next_after_fail739:;
2165 : }
2166 : else
2167 : {
2168 16 : if (single_use (captures[0])
2169 : )
2170 : {
2171 16 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail740;
2172 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail740;
2173 16 : {
2174 16 : if (! tree_invariant_p (captures[1])) goto next_after_fail740;
2175 0 : tree res_op0;
2176 0 : {
2177 0 : tree _o1[2], _r1;
2178 0 : _o1[0] = unshare_expr (captures[1]);
2179 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2180 0 : _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
2181 0 : res_op0 = _r1;
2182 : }
2183 0 : tree res_op1;
2184 0 : {
2185 0 : tree _o1[2], _r1;
2186 0 : {
2187 0 : tree _o2[2], _r2;
2188 0 : _o2[0] = captures[1];
2189 0 : _o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
2190 0 : wi::mask (tree_to_uhwi (captures[2]),
2191 : false, prec));
2192 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2193 0 : _o1[0] = _r2;
2194 : }
2195 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2196 0 : _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
2197 0 : res_op1 = _r1;
2198 : }
2199 0 : tree _r;
2200 0 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2201 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
2202 0 : return _r;
2203 : }
2204 16 : next_after_fail740:;
2205 : }
2206 : }
2207 : }
2208 : }
2209 : }
2210 : }
2211 16 : return NULL_TREE;
2212 : }
2213 :
2214 : tree
2215 4808053 : generic_simplify_436 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2216 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2217 : {
2218 4808053 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2219 4808053 : if (INTEGRAL_TYPE_P (type)
2220 2646011 : && TYPE_PRECISION (type) == 1
2221 4822142 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
2222 : )
2223 : {
2224 14089 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
2225 14089 : {
2226 14089 : tree res_op0;
2227 14089 : res_op0 = captures[0];
2228 14089 : tree _r;
2229 14089 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2230 14089 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 637, __FILE__, __LINE__, true);
2231 14089 : return _r;
2232 : }
2233 0 : next_after_fail783:;
2234 : }
2235 : return NULL_TREE;
2236 : }
2237 :
2238 : tree
2239 0 : generic_simplify_439 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2240 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2241 : const combined_fn ARG_UNUSED (coshs),
2242 : const combined_fn ARG_UNUSED (atanhs),
2243 : const combined_fn ARG_UNUSED (sqrts))
2244 : {
2245 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2246 0 : if (!flag_errno_math
2247 : )
2248 : {
2249 0 : {
2250 0 : tree t_one = build_one_cst (type);
2251 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail786;
2252 0 : {
2253 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail786;
2254 0 : tree res_op0;
2255 0 : res_op0 = t_one;
2256 0 : tree res_op1;
2257 0 : {
2258 0 : tree _o1[1], _r1;
2259 0 : {
2260 0 : tree _o2[2], _r2;
2261 0 : {
2262 0 : tree _o3[2], _r3;
2263 0 : _o3[0] = t_one;
2264 0 : _o3[1] = unshare_expr (captures[1]);
2265 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2266 0 : _o2[0] = _r3;
2267 : }
2268 0 : {
2269 0 : tree _o3[2], _r3;
2270 0 : _o3[0] = t_one;
2271 0 : _o3[1] = captures[1];
2272 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2273 0 : _o2[1] = _r3;
2274 : }
2275 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2276 0 : _o1[0] = _r2;
2277 : }
2278 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
2279 0 : if (!_r1)
2280 0 : goto next_after_fail786;
2281 0 : res_op1 = _r1;
2282 : }
2283 0 : tree _r;
2284 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
2285 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
2286 0 : return _r;
2287 : }
2288 : next_after_fail786:;
2289 : }
2290 : }
2291 : return NULL_TREE;
2292 : }
2293 :
2294 : tree
2295 0 : generic_simplify_443 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2296 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2297 : const combined_fn ARG_UNUSED (POW))
2298 : {
2299 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2300 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail790;
2301 0 : {
2302 0 : tree _r;
2303 0 : _r = captures[0];
2304 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2305 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2306 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 644, __FILE__, __LINE__, true);
2307 : return _r;
2308 : }
2309 0 : next_after_fail790:;
2310 0 : return NULL_TREE;
2311 : }
2312 :
2313 : tree
2314 0 : generic_simplify_447 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2315 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2316 : const combined_fn ARG_UNUSED (HYPOT))
2317 : {
2318 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail794;
2320 0 : {
2321 0 : tree res_op0;
2322 0 : res_op0 = captures[0];
2323 0 : tree _r;
2324 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
2325 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2326 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2327 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 648, __FILE__, __LINE__, true);
2328 : return _r;
2329 : }
2330 0 : next_after_fail794:;
2331 0 : return NULL_TREE;
2332 : }
2333 :
2334 : tree
2335 4910738 : generic_simplify_449 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2336 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2337 : {
2338 4910738 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2339 4910738 : {
2340 4910738 : bool wascmp;
2341 4910738 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2342 4910738 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
2343 : )
2344 : {
2345 115 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail796;
2346 115 : {
2347 115 : tree _r;
2348 115 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2349 115 : if (TREE_SIDE_EFFECTS (captures[0]))
2350 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2351 115 : if (TREE_SIDE_EFFECTS (captures[1]))
2352 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2353 115 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2354 115 : return _r;
2355 : }
2356 0 : next_after_fail796:;
2357 : }
2358 : }
2359 4910623 : return NULL_TREE;
2360 : }
2361 :
2362 : tree
2363 82 : generic_simplify_457 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2364 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2365 : const enum tree_code ARG_UNUSED (bitop),
2366 : const enum tree_code ARG_UNUSED (op))
2367 : {
2368 82 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2369 82 : {
2370 82 : tree pmop[2];
2371 82 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], bitop,
2372 : captures[2], captures[3], captures[4], ERROR_MARK, NULL_TREE,
2373 : NULL_TREE, pmop);
2374 82 : if (utype
2375 : )
2376 : {
2377 22 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail804;
2378 22 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail804;
2379 22 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail804;
2380 22 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail804;
2381 22 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail804;
2382 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail804;
2383 22 : {
2384 22 : tree res_op0;
2385 22 : {
2386 22 : tree _o1[2], _r1;
2387 22 : {
2388 22 : tree _o2[2], _r2;
2389 22 : {
2390 22 : tree _o3[1], _r3;
2391 22 : _o3[0] = pmop[0];
2392 22 : if (TREE_TYPE (_o3[0]) != utype)
2393 : {
2394 10 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2395 : }
2396 : else
2397 : _r3 = _o3[0];
2398 22 : _o2[0] = _r3;
2399 : }
2400 22 : {
2401 22 : tree _o3[1], _r3;
2402 22 : _o3[0] = pmop[1];
2403 22 : if (TREE_TYPE (_o3[0]) != utype)
2404 : {
2405 10 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2406 : }
2407 : else
2408 : _r3 = _o3[0];
2409 22 : _o2[1] = _r3;
2410 : }
2411 22 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2412 22 : _o1[0] = _r2;
2413 : }
2414 22 : {
2415 22 : tree _o2[1], _r2;
2416 22 : _o2[0] = captures[5];
2417 22 : if (TREE_TYPE (_o2[0]) != utype)
2418 : {
2419 10 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2420 : }
2421 : else
2422 : _r2 = _o2[0];
2423 22 : _o1[1] = _r2;
2424 : }
2425 22 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2426 22 : res_op0 = _r1;
2427 : }
2428 22 : tree _r;
2429 22 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2430 22 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 657, __FILE__, __LINE__, true);
2431 22 : return _r;
2432 : }
2433 60 : next_after_fail804:;
2434 : }
2435 : }
2436 60 : return NULL_TREE;
2437 : }
2438 :
2439 : tree
2440 201 : generic_simplify_473 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2441 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2442 : const enum tree_code ARG_UNUSED (code2),
2443 : const enum tree_code ARG_UNUSED (code1))
2444 : {
2445 201 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2446 201 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2447 2 : && TREE_CODE (captures[5]) == INTEGER_CST)
2448 201 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2449 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2450 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2451 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2452 199 : && bitwise_equal_p (captures[2], captures[5]))
2453 : )
2454 : {
2455 2 : {
2456 2 : bool one_before = false;
2457 2 : bool one_after = false;
2458 2 : int cmp = 0;
2459 2 : bool allbits = true;
2460 2 : if (TREE_CODE (captures[2]) == INTEGER_CST
2461 2 : && TREE_CODE (captures[5]) == INTEGER_CST)
2462 : {
2463 2 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2464 2 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2465 2 : auto t2 = wi::to_wide (captures[5]);
2466 2 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2467 2 : if (cmp < 0
2468 2 : && t1 == t2 - 1)
2469 : one_before = true;
2470 2 : if (cmp > 0
2471 2 : && t1 == t2 + 1)
2472 : one_after = true;
2473 : }
2474 2 : bool val;
2475 2 : switch (code2)
2476 : {
2477 0 : case EQ_EXPR: val = (cmp == 0); break;
2478 2 : case NE_EXPR: val = (cmp != 0); break;
2479 0 : case LT_EXPR: val = (cmp < 0); break;
2480 0 : case GT_EXPR: val = (cmp > 0); break;
2481 0 : case LE_EXPR: val = (cmp <= 0); break;
2482 0 : case GE_EXPR: val = (cmp >= 0); break;
2483 0 : default: gcc_unreachable ();
2484 : }
2485 2 : if (code1 == EQ_EXPR && val
2486 : )
2487 : {
2488 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail828;
2489 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail828;
2490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
2491 0 : {
2492 0 : tree _r;
2493 0 : _r = captures[0];
2494 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2495 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2496 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
2497 0 : return _r;
2498 : }
2499 : next_after_fail828:;
2500 : }
2501 : else
2502 : {
2503 2 : if (code1 == EQ_EXPR && !val
2504 : )
2505 : {
2506 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail829;
2507 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail829;
2508 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
2509 0 : {
2510 0 : tree _r;
2511 0 : _r = constant_boolean_node (false, type);
2512 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2513 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2514 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2515 0 : return _r;
2516 : }
2517 : next_after_fail829:;
2518 : }
2519 : else
2520 : {
2521 2 : if (code1 == NE_EXPR && !val && allbits
2522 : )
2523 : {
2524 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail830;
2525 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail830;
2526 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail830;
2527 0 : {
2528 0 : tree _r;
2529 0 : _r = captures[3];
2530 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
2531 0 : return _r;
2532 : }
2533 : next_after_fail830:;
2534 : }
2535 : else
2536 : {
2537 2 : if ((code1 == NE_EXPR
2538 2 : && code2 == GE_EXPR
2539 0 : && cmp == 0
2540 0 : && allbits)
2541 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2542 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2543 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2544 : )
2545 : {
2546 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail831;
2547 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail831;
2548 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail831;
2549 0 : {
2550 0 : tree res_op0;
2551 0 : res_op0 = captures[4];
2552 0 : tree res_op1;
2553 0 : {
2554 0 : tree _o1[1], _r1;
2555 0 : _o1[0] = captures[2];
2556 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2557 : {
2558 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2559 : }
2560 : else
2561 : _r1 = _o1[0];
2562 0 : res_op1 = _r1;
2563 : }
2564 0 : tree _r;
2565 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2566 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
2567 0 : return _r;
2568 : }
2569 : next_after_fail831:;
2570 : }
2571 : else
2572 : {
2573 2 : if ((code1 == NE_EXPR
2574 2 : && code2 == LE_EXPR
2575 0 : && cmp == 0
2576 0 : && allbits)
2577 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2578 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2579 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2580 : )
2581 : {
2582 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail832;
2583 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail832;
2584 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
2585 0 : {
2586 0 : tree res_op0;
2587 0 : res_op0 = captures[4];
2588 0 : tree res_op1;
2589 0 : {
2590 0 : tree _o1[1], _r1;
2591 0 : _o1[0] = captures[2];
2592 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2593 : {
2594 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2595 : }
2596 : else
2597 : _r1 = _o1[0];
2598 0 : res_op1 = _r1;
2599 : }
2600 0 : tree _r;
2601 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2602 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
2603 0 : return _r;
2604 : }
2605 : next_after_fail832:;
2606 : }
2607 : else
2608 : {
2609 2 : if ((code1 == NE_EXPR
2610 2 : && code2 == GT_EXPR
2611 : && one_after
2612 0 : && allbits)
2613 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2614 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2615 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2616 : )
2617 : {
2618 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail833;
2619 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail833;
2620 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail833;
2621 0 : {
2622 0 : tree res_op0;
2623 0 : res_op0 = captures[4];
2624 0 : tree res_op1;
2625 0 : {
2626 0 : tree _o1[1], _r1;
2627 0 : _o1[0] = captures[2];
2628 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2629 : {
2630 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2631 : }
2632 : else
2633 : _r1 = _o1[0];
2634 0 : res_op1 = _r1;
2635 : }
2636 0 : tree _r;
2637 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2638 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
2639 0 : return _r;
2640 : }
2641 : next_after_fail833:;
2642 : }
2643 : else
2644 : {
2645 2 : if ((code1 == NE_EXPR
2646 2 : && code2 == LT_EXPR
2647 : && one_before
2648 0 : && allbits)
2649 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2650 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2651 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2652 : )
2653 : {
2654 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail834;
2655 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail834;
2656 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
2657 0 : {
2658 0 : tree res_op0;
2659 0 : res_op0 = captures[4];
2660 0 : tree res_op1;
2661 0 : {
2662 0 : tree _o1[1], _r1;
2663 0 : _o1[0] = captures[2];
2664 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2665 : {
2666 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2667 : }
2668 : else
2669 : _r1 = _o1[0];
2670 0 : res_op1 = _r1;
2671 : }
2672 0 : tree _r;
2673 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
2675 0 : return _r;
2676 : }
2677 : next_after_fail834:;
2678 : }
2679 : }
2680 : }
2681 : }
2682 : }
2683 : }
2684 : }
2685 : }
2686 : }
2687 : return NULL_TREE;
2688 : }
2689 :
2690 : tree
2691 0 : generic_simplify_505 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2692 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2693 : {
2694 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2695 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2696 : )
2697 : {
2698 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail896;
2699 0 : {
2700 0 : tree res_op0;
2701 0 : {
2702 0 : tree _o1[2], _r1;
2703 0 : _o1[0] = captures[0];
2704 0 : _o1[1] = captures[1];
2705 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2706 0 : res_op0 = _r1;
2707 : }
2708 0 : tree _r;
2709 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2710 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
2711 0 : return _r;
2712 : }
2713 0 : next_after_fail896:;
2714 : }
2715 : return NULL_TREE;
2716 : }
2717 :
2718 : tree
2719 38932 : generic_simplify_511 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2720 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2721 : {
2722 38932 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2723 38932 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
2724 38932 : && !HONOR_SIGNED_ZEROS (type)
2725 : )
2726 : {
2727 38932 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail903;
2728 38932 : {
2729 38932 : tree res_op0;
2730 38932 : {
2731 38932 : tree _o1[1], _r1;
2732 38932 : _o1[0] = captures[1];
2733 38932 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2734 38932 : res_op0 = _r1;
2735 : }
2736 38932 : tree res_op1;
2737 38932 : res_op1 = captures[0];
2738 38932 : tree _r;
2739 38932 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2740 38932 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 715, __FILE__, __LINE__, true);
2741 38932 : return _r;
2742 : }
2743 0 : next_after_fail903:;
2744 : }
2745 : return NULL_TREE;
2746 : }
2747 :
2748 : tree
2749 16 : generic_simplify_517 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2750 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2751 : const combined_fn ARG_UNUSED (fmas))
2752 : {
2753 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2754 16 : if (canonicalize_math_after_vectorization_p ()
2755 : )
2756 : {
2757 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
2758 : )
2759 : {
2760 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail910;
2761 : {
2762 : tree res_op0;
2763 : res_op0 = captures[1];
2764 : tree res_op1;
2765 : res_op1 = captures[2];
2766 : tree res_op2;
2767 : res_op2 = captures[3];
2768 : tree _r;
2769 : _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
2770 : if (!_r)
2771 : goto next_after_fail910;
2772 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 722, __FILE__, __LINE__, true);
2773 : return _r;
2774 : }
2775 16 : next_after_fail910:;
2776 : }
2777 : }
2778 16 : return NULL_TREE;
2779 : }
2780 :
2781 : tree
2782 0 : generic_simplify_529 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2783 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2784 : const enum tree_code ARG_UNUSED (minmax),
2785 : const enum tree_code ARG_UNUSED (cmp))
2786 : {
2787 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2788 0 : {
2789 0 : poly_int64 off0, off1;
2790 0 : tree base0, base1;
2791 0 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2792 : off0, off1,
2793 : 1
2794 : );
2795 0 : if (equal == 1
2796 : )
2797 : {
2798 0 : if (minmax == MIN_EXPR
2799 : )
2800 : {
2801 0 : if (known_le (off0, off1)
2802 : )
2803 : {
2804 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail930;
2805 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail930;
2806 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
2807 0 : {
2808 0 : tree _r;
2809 0 : _r = captures[0];
2810 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
2811 0 : return _r;
2812 : }
2813 0 : next_after_fail930:;
2814 : }
2815 : else
2816 : {
2817 0 : if (known_gt (off0, off1)
2818 : )
2819 : {
2820 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail931;
2821 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail931;
2822 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail931;
2823 0 : {
2824 0 : tree _r;
2825 0 : _r = captures[2];
2826 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
2827 0 : return _r;
2828 : }
2829 0 : next_after_fail931:;
2830 : }
2831 : }
2832 : }
2833 : else
2834 : {
2835 0 : if (known_ge (off0, off1)
2836 : )
2837 : {
2838 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail932;
2839 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail932;
2840 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail932;
2841 0 : {
2842 0 : tree _r;
2843 0 : _r = captures[0];
2844 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
2845 0 : return _r;
2846 : }
2847 0 : next_after_fail932:;
2848 : }
2849 : else
2850 : {
2851 0 : if (known_lt (off0, off1)
2852 : )
2853 : {
2854 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail933;
2855 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail933;
2856 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail933;
2857 0 : {
2858 0 : tree _r;
2859 0 : _r = captures[2];
2860 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
2861 0 : return _r;
2862 : }
2863 0 : next_after_fail933:;
2864 : }
2865 : }
2866 : }
2867 : }
2868 : }
2869 0 : return NULL_TREE;
2870 : }
2871 :
2872 : tree
2873 0 : generic_simplify_550 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2874 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2875 : const combined_fn ARG_UNUSED (cond_len_op))
2876 : {
2877 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2878 0 : {
2879 0 : tree op_type = TREE_TYPE (captures[4]);
2880 0 : if (element_precision (type) == element_precision (op_type)
2881 : )
2882 : {
2883 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail957;
2884 0 : {
2885 0 : tree res_op0;
2886 0 : {
2887 0 : tree _o1[7], _r1;
2888 0 : _o1[0] = captures[0];
2889 0 : _o1[1] = captures[1];
2890 0 : _o1[2] = captures[2];
2891 0 : _o1[3] = captures[3];
2892 0 : {
2893 0 : tree _o2[1], _r2;
2894 0 : _o2[0] = captures[7];
2895 0 : if (TREE_TYPE (_o2[0]) != op_type)
2896 : {
2897 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2898 : }
2899 : else
2900 : _r2 = _o2[0];
2901 0 : _o1[4] = _r2;
2902 : }
2903 0 : _o1[5] = captures[5];
2904 0 : _o1[6] = captures[6];
2905 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]);
2906 0 : if (!_r1)
2907 0 : goto next_after_fail957;
2908 0 : res_op0 = _r1;
2909 : }
2910 0 : tree _r;
2911 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2912 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2913 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2914 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 751, __FILE__, __LINE__, true);
2915 0 : return _r;
2916 : }
2917 : next_after_fail957:;
2918 : }
2919 : }
2920 : return NULL_TREE;
2921 : }
2922 :
2923 : tree
2924 1813770 : generic_simplify_561 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2925 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2926 : const enum tree_code ARG_UNUSED (cmp))
2927 : {
2928 1813770 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2929 1813770 : if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
2930 1813770 : && (cmp != LTGT_EXPR || ! flag_trapping_math)
2931 : )
2932 : {
2933 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail971;
2934 10 : {
2935 10 : tree _r;
2936 20 : _r = constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
2937 10 : ? false : true, type);
2938 10 : if (TREE_SIDE_EFFECTS (captures[0]))
2939 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2940 10 : if (TREE_SIDE_EFFECTS (captures[1]))
2941 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2942 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 765, __FILE__, __LINE__, true);
2943 10 : return _r;
2944 : }
2945 0 : next_after_fail971:;
2946 : }
2947 : return NULL_TREE;
2948 : }
2949 :
2950 : tree
2951 0 : generic_simplify_571 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2952 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2953 : const combined_fn ARG_UNUSED (sinhs),
2954 : const combined_fn ARG_UNUSED (atanhs),
2955 : const combined_fn ARG_UNUSED (sqrts))
2956 : {
2957 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2958 0 : if (!flag_errno_math
2959 : )
2960 : {
2961 0 : {
2962 0 : tree t_one = build_one_cst (type);
2963 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail981;
2964 0 : {
2965 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail981;
2966 0 : tree res_op0;
2967 0 : res_op0 = unshare_expr (captures[1]);
2968 0 : tree res_op1;
2969 0 : {
2970 0 : tree _o1[1], _r1;
2971 0 : {
2972 0 : tree _o2[2], _r2;
2973 0 : {
2974 0 : tree _o3[2], _r3;
2975 0 : _o3[0] = t_one;
2976 0 : _o3[1] = unshare_expr (captures[1]);
2977 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2978 0 : _o2[0] = _r3;
2979 : }
2980 0 : {
2981 0 : tree _o3[2], _r3;
2982 0 : _o3[0] = t_one;
2983 0 : _o3[1] = captures[1];
2984 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2985 0 : _o2[1] = _r3;
2986 : }
2987 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2988 0 : _o1[0] = _r2;
2989 : }
2990 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
2991 0 : if (!_r1)
2992 0 : goto next_after_fail981;
2993 0 : res_op1 = _r1;
2994 : }
2995 0 : tree _r;
2996 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
2997 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 775, __FILE__, __LINE__, true);
2998 0 : return _r;
2999 : }
3000 : next_after_fail981:;
3001 : }
3002 : }
3003 : return NULL_TREE;
3004 : }
3005 :
3006 : tree
3007 0 : generic_simplify_587 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3008 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3009 : const combined_fn ARG_UNUSED (SIGNBIT))
3010 : {
3011 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3012 0 : if (!HONOR_SIGNED_ZEROS (captures[0])
3013 : )
3014 : {
3015 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail997;
3016 0 : {
3017 0 : tree res_op0;
3018 0 : {
3019 0 : tree _o1[2], _r1;
3020 0 : _o1[0] = captures[0];
3021 0 : _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
3022 0 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3023 0 : res_op0 = _r1;
3024 : }
3025 0 : tree _r;
3026 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3027 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 791, __FILE__, __LINE__, true);
3028 0 : return _r;
3029 : }
3030 0 : next_after_fail997:;
3031 : }
3032 : return NULL_TREE;
3033 : }
3034 :
3035 : tree
3036 0 : generic_simplify_597 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3037 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3038 : {
3039 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3040 0 : if (canonicalize_math_after_vectorization_p ()
3041 : )
3042 : {
3043 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1007;
3044 : {
3045 : tree res_op0;
3046 : res_op0 = captures[0];
3047 : tree res_op1;
3048 : res_op1 = captures[1];
3049 : tree res_op2;
3050 : res_op2 = captures[2];
3051 : tree _r;
3052 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3053 : if (!_r)
3054 : goto next_after_fail1007;
3055 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 801, __FILE__, __LINE__, true);
3056 : return _r;
3057 : }
3058 0 : next_after_fail1007:;
3059 : }
3060 0 : return NULL_TREE;
3061 : }
3062 :
3063 : tree
3064 0 : generic_simplify_606 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3065 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3066 : const combined_fn ARG_UNUSED (ctz))
3067 : {
3068 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3069 0 : {
3070 0 : tree t = TREE_TYPE (captures[0]);
3071 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1016;
3072 0 : {
3073 0 : tree res_op0;
3074 0 : {
3075 0 : tree _o1[1], _r1;
3076 0 : _o1[0] = captures[1];
3077 0 : if (TREE_TYPE (_o1[0]) != t)
3078 : {
3079 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3080 : }
3081 : else
3082 : _r1 = _o1[0];
3083 0 : res_op0 = _r1;
3084 : }
3085 0 : tree _r;
3086 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3087 0 : if (!_r)
3088 0 : goto next_after_fail1016;
3089 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 810, __FILE__, __LINE__, true);
3090 : return _r;
3091 : }
3092 : next_after_fail1016:;
3093 : }
3094 : return NULL_TREE;
3095 : }
3096 :
3097 : tree
3098 0 : generic_simplify_615 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3099 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3100 : const combined_fn ARG_UNUSED (pfun))
3101 : {
3102 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3103 0 : if (INTEGRAL_TYPE_P (type)
3104 : )
3105 : {
3106 0 : {
3107 0 : wide_int nz = tree_nonzero_bits (captures[0]);
3108 0 : if (nz == 1
3109 : )
3110 : {
3111 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1025;
3112 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1025;
3113 0 : {
3114 0 : tree res_op0;
3115 0 : res_op0 = captures[0];
3116 0 : tree _r;
3117 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3118 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 814, __FILE__, __LINE__, true);
3119 0 : return _r;
3120 : }
3121 0 : next_after_fail1025:;
3122 : }
3123 : else
3124 : {
3125 0 : if (wi::popcount (nz) == 1
3126 : )
3127 : {
3128 0 : {
3129 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3130 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1026;
3131 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1026;
3132 0 : {
3133 0 : tree res_op0;
3134 0 : {
3135 0 : tree _o1[2], _r1;
3136 0 : {
3137 0 : tree _o2[1], _r2;
3138 0 : _o2[0] = captures[0];
3139 0 : if (TREE_TYPE (_o2[0]) != utype)
3140 : {
3141 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3142 : }
3143 : else
3144 : _r2 = _o2[0];
3145 0 : _o1[0] = _r2;
3146 : }
3147 0 : _o1[1] = build_int_cst (integer_type_node,
3148 0 : wi::ctz (nz));
3149 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o1[0], _o1[1]);
3150 0 : res_op0 = _r1;
3151 : }
3152 0 : tree _r;
3153 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3154 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
3155 0 : return _r;
3156 : }
3157 0 : next_after_fail1026:;
3158 : }
3159 : }
3160 : }
3161 0 : }
3162 : }
3163 : return NULL_TREE;
3164 : }
3165 :
3166 : tree
3167 2770267 : generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3168 : {
3169 2770267 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3170 2770267 : switch (TREE_CODE (_p0))
3171 : {
3172 1134 : case BIT_AND_EXPR:
3173 1134 : {
3174 1134 : tree _q20 = TREE_OPERAND (_p0, 0);
3175 1134 : tree _q21 = TREE_OPERAND (_p0, 1);
3176 1134 : switch (TREE_CODE (_q20))
3177 : {
3178 33 : case BIT_NOT_EXPR:
3179 33 : {
3180 33 : tree _q30 = TREE_OPERAND (_q20, 0);
3181 33 : {
3182 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3183 33 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3184 33 : if (res) return res;
3185 : }
3186 0 : break;
3187 : }
3188 1101 : default:;
3189 : }
3190 1101 : switch (TREE_CODE (_q21))
3191 : {
3192 9 : case BIT_NOT_EXPR:
3193 9 : {
3194 9 : tree _q40 = TREE_OPERAND (_q21, 0);
3195 9 : {
3196 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3197 9 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3198 9 : if (res) return res;
3199 : }
3200 0 : break;
3201 : }
3202 : default:;
3203 : }
3204 : break;
3205 : }
3206 1209 : case BIT_IOR_EXPR:
3207 1209 : {
3208 1209 : tree _q20 = TREE_OPERAND (_p0, 0);
3209 1209 : tree _q21 = TREE_OPERAND (_p0, 1);
3210 1209 : switch (TREE_CODE (_q20))
3211 : {
3212 68 : case BIT_NOT_EXPR:
3213 68 : {
3214 68 : tree _q30 = TREE_OPERAND (_q20, 0);
3215 68 : {
3216 68 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3217 68 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3218 68 : if (res) return res;
3219 : }
3220 0 : break;
3221 : }
3222 1141 : default:;
3223 : }
3224 1141 : switch (TREE_CODE (_q21))
3225 : {
3226 40 : case BIT_NOT_EXPR:
3227 40 : {
3228 40 : tree _q40 = TREE_OPERAND (_q21, 0);
3229 40 : {
3230 40 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3231 40 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3232 40 : if (res) return res;
3233 : }
3234 0 : break;
3235 : }
3236 : default:;
3237 : }
3238 : break;
3239 : }
3240 148 : case MINUS_EXPR:
3241 148 : {
3242 148 : tree _q20 = TREE_OPERAND (_p0, 0);
3243 148 : tree _q21 = TREE_OPERAND (_p0, 1);
3244 148 : switch (TREE_CODE (_q20))
3245 : {
3246 1 : case BIT_NOT_EXPR:
3247 1 : {
3248 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3249 1 : {
3250 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3251 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1065;
3252 1 : {
3253 1 : tree res_op0;
3254 1 : res_op0 = captures[0];
3255 1 : tree res_op1;
3256 1 : res_op1 = captures[1];
3257 1 : tree _r;
3258 1 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3259 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
3260 1 : return _r;
3261 : }
3262 0 : next_after_fail1065:;
3263 : }
3264 0 : break;
3265 : }
3266 147 : default:;
3267 : }
3268 147 : {
3269 147 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3270 147 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1066;
3271 147 : {
3272 147 : tree res_op0;
3273 147 : {
3274 147 : tree _o1[1], _r1;
3275 147 : _o1[0] = captures[1];
3276 147 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3277 147 : res_op0 = _r1;
3278 : }
3279 147 : tree res_op1;
3280 147 : res_op1 = captures[2];
3281 147 : tree _r;
3282 147 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3283 147 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
3284 147 : return _r;
3285 : }
3286 0 : next_after_fail1066:;
3287 : }
3288 0 : if (integer_each_onep (_q21))
3289 : {
3290 0 : {
3291 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3292 0 : tree res = generic_simplify_499 (loc, type, _p0, captures);
3293 0 : if (res) return res;
3294 : }
3295 : }
3296 : break;
3297 : }
3298 90460 : case PLUS_EXPR:
3299 90460 : {
3300 90460 : tree _q20 = TREE_OPERAND (_p0, 0);
3301 90460 : tree _q21 = TREE_OPERAND (_p0, 1);
3302 90460 : switch (TREE_CODE (_q20))
3303 : {
3304 16 : case BIT_NOT_EXPR:
3305 16 : {
3306 16 : tree _q30 = TREE_OPERAND (_q20, 0);
3307 16 : {
3308 16 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3309 16 : tree res = generic_simplify_500 (loc, type, _p0, captures);
3310 16 : if (res) return res;
3311 : }
3312 0 : break;
3313 : }
3314 90444 : default:;
3315 : }
3316 90444 : switch (TREE_CODE (_q21))
3317 : {
3318 1 : case BIT_NOT_EXPR:
3319 1 : {
3320 1 : tree _q40 = TREE_OPERAND (_q21, 0);
3321 1 : {
3322 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3323 1 : tree res = generic_simplify_500 (loc, type, _p0, captures);
3324 1 : if (res) return res;
3325 : }
3326 0 : break;
3327 : }
3328 75577 : case INTEGER_CST:
3329 75577 : {
3330 75577 : {
3331 75577 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3332 75577 : if ((INTEGRAL_TYPE_P (type)
3333 75577 : && TYPE_UNSIGNED (type))
3334 89439 : || (!TYPE_OVERFLOW_SANITIZED (type)
3335 13854 : && may_negate_without_overflow_p (captures[2]))
3336 : )
3337 : {
3338 75562 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1067;
3339 75562 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1067;
3340 75562 : {
3341 75562 : tree res_op0;
3342 75562 : {
3343 75562 : tree _o1[1], _r1;
3344 75562 : _o1[0] = captures[1];
3345 75562 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3346 75562 : res_op0 = _r1;
3347 : }
3348 75562 : tree res_op1;
3349 75562 : res_op1 = const_unop (NEGATE_EXPR, type, captures[2]);
3350 75562 : tree _r;
3351 75562 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3352 75562 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 847, __FILE__, __LINE__, true);
3353 75562 : return _r;
3354 : }
3355 15 : next_after_fail1067:;
3356 : }
3357 : }
3358 15 : break;
3359 : }
3360 14881 : default:;
3361 : }
3362 14881 : if (integer_all_onesp (_q21))
3363 : {
3364 0 : {
3365 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3366 0 : tree res = generic_simplify_501 (loc, type, _p0, captures);
3367 0 : if (res) return res;
3368 : }
3369 : }
3370 : break;
3371 : }
3372 394 : case RSHIFT_EXPR:
3373 394 : {
3374 394 : tree _q20 = TREE_OPERAND (_p0, 0);
3375 394 : tree _q21 = TREE_OPERAND (_p0, 1);
3376 394 : {
3377 394 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3378 394 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
3379 : )
3380 : {
3381 291 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1068;
3382 291 : {
3383 291 : tree res_op0;
3384 291 : {
3385 291 : tree _o1[1], _r1;
3386 291 : _o1[0] = captures[1];
3387 291 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3388 291 : if (EXPR_P (_r1))
3389 285 : goto next_after_fail1068;
3390 6 : res_op0 = _r1;
3391 : }
3392 6 : tree res_op1;
3393 6 : res_op1 = captures[2];
3394 6 : tree _r;
3395 6 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
3396 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 848, __FILE__, __LINE__, true);
3397 6 : return _r;
3398 : }
3399 373 : next_after_fail1068:;
3400 : }
3401 : else
3402 : {
3403 206 : if (INTEGRAL_TYPE_P (type)
3404 206 : && !wi::neg_p (tree_nonzero_bits (captures[1]))
3405 : )
3406 : {
3407 15 : {
3408 15 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
3409 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1069;
3410 15 : {
3411 15 : tree res_op0;
3412 15 : {
3413 15 : tree _o1[2], _r1;
3414 15 : {
3415 15 : tree _o2[1], _r2;
3416 15 : {
3417 15 : tree _o3[1], _r3;
3418 15 : _o3[0] = captures[1];
3419 15 : if (TREE_TYPE (_o3[0]) != stype)
3420 : {
3421 15 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
3422 : }
3423 : else
3424 : _r3 = _o3[0];
3425 15 : _o2[0] = _r3;
3426 : }
3427 15 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3428 15 : if (EXPR_P (_r2))
3429 0 : goto next_after_fail1069;
3430 15 : _o1[0] = _r2;
3431 : }
3432 15 : _o1[1] = captures[2];
3433 15 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3434 15 : res_op0 = _r1;
3435 : }
3436 15 : tree _r;
3437 15 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3438 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 849, __FILE__, __LINE__, true);
3439 15 : return _r;
3440 : }
3441 373 : next_after_fail1069:;
3442 : }
3443 : }
3444 : }
3445 : }
3446 373 : switch (TREE_CODE (_q20))
3447 : {
3448 40 : CASE_CONVERT:
3449 40 : {
3450 40 : tree _q30 = TREE_OPERAND (_q20, 0);
3451 40 : switch (TREE_CODE (_q30))
3452 : {
3453 2 : case BIT_NOT_EXPR:
3454 2 : {
3455 2 : tree _q40 = TREE_OPERAND (_q30, 0);
3456 2 : {
3457 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3458 2 : tree res = generic_simplify_502 (loc, type, _p0, captures);
3459 2 : if (res) return res;
3460 : }
3461 1 : break;
3462 : }
3463 : default:;
3464 : }
3465 : break;
3466 : }
3467 29 : case BIT_NOT_EXPR:
3468 29 : {
3469 29 : tree _q30 = TREE_OPERAND (_q20, 0);
3470 29 : {
3471 29 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3472 29 : tree res = generic_simplify_502 (loc, type, _p0, captures);
3473 29 : if (res) return res;
3474 : }
3475 8 : break;
3476 : }
3477 : default:;
3478 : }
3479 : break;
3480 : }
3481 86 : case BIT_NOT_EXPR:
3482 86 : {
3483 86 : tree _q20 = TREE_OPERAND (_p0, 0);
3484 86 : {
3485 86 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3486 86 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1070;
3487 86 : {
3488 86 : tree res_op0;
3489 86 : res_op0 = captures[0];
3490 86 : tree _r;
3491 86 : _r = non_lvalue_loc (loc, res_op0);
3492 86 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 850, __FILE__, __LINE__, true);
3493 2770267 : return _r;
3494 : }
3495 0 : next_after_fail1070:;
3496 : }
3497 0 : break;
3498 : }
3499 995098 : CASE_CONVERT:
3500 995098 : {
3501 995098 : tree _q20 = TREE_OPERAND (_p0, 0);
3502 995098 : switch (TREE_CODE (_q20))
3503 : {
3504 25 : case NEGATE_EXPR:
3505 25 : {
3506 25 : tree _q30 = TREE_OPERAND (_q20, 0);
3507 25 : {
3508 25 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3509 25 : tree res = generic_simplify_503 (loc, type, _p0, captures);
3510 25 : if (res) return res;
3511 : }
3512 0 : break;
3513 : }
3514 892 : case MINUS_EXPR:
3515 892 : {
3516 892 : tree _q30 = TREE_OPERAND (_q20, 0);
3517 892 : tree _q31 = TREE_OPERAND (_q20, 1);
3518 892 : if (integer_each_onep (_q31))
3519 : {
3520 28 : {
3521 28 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3522 28 : tree res = generic_simplify_499 (loc, type, _p0, captures);
3523 28 : if (res) return res;
3524 : }
3525 : }
3526 : break;
3527 : }
3528 53836 : case PLUS_EXPR:
3529 53836 : {
3530 53836 : tree _q30 = TREE_OPERAND (_q20, 0);
3531 53836 : tree _q31 = TREE_OPERAND (_q20, 1);
3532 53836 : if (integer_all_onesp (_q31))
3533 : {
3534 3792 : {
3535 3792 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3536 3792 : tree res = generic_simplify_501 (loc, type, _p0, captures);
3537 3792 : if (res) return res;
3538 : }
3539 : }
3540 : break;
3541 : }
3542 145 : case BIT_XOR_EXPR:
3543 145 : {
3544 145 : tree _q30 = TREE_OPERAND (_q20, 0);
3545 145 : tree _q31 = TREE_OPERAND (_q20, 1);
3546 145 : switch (TREE_CODE (_q31))
3547 : {
3548 7 : case INTEGER_CST:
3549 7 : {
3550 7 : {
3551 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3552 7 : tree res = generic_simplify_504 (loc, type, _p0, captures);
3553 7 : if (res) return res;
3554 : }
3555 0 : break;
3556 : }
3557 138 : default:;
3558 : }
3559 138 : switch (TREE_CODE (_q30))
3560 : {
3561 0 : case BIT_NOT_EXPR:
3562 0 : {
3563 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3564 0 : {
3565 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
3566 0 : tree res = generic_simplify_505 (loc, type, _p0, captures);
3567 0 : if (res) return res;
3568 : }
3569 0 : break;
3570 : }
3571 138 : default:;
3572 : }
3573 138 : switch (TREE_CODE (_q31))
3574 : {
3575 0 : case BIT_NOT_EXPR:
3576 0 : {
3577 0 : tree _q50 = TREE_OPERAND (_q31, 0);
3578 0 : {
3579 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
3580 0 : tree res = generic_simplify_505 (loc, type, _p0, captures);
3581 0 : if (res) return res;
3582 : }
3583 0 : break;
3584 : }
3585 : default:;
3586 : }
3587 : break;
3588 : }
3589 93 : case RSHIFT_EXPR:
3590 93 : {
3591 93 : tree _q30 = TREE_OPERAND (_q20, 0);
3592 93 : tree _q31 = TREE_OPERAND (_q20, 1);
3593 93 : switch (TREE_CODE (_q30))
3594 : {
3595 17 : CASE_CONVERT:
3596 17 : {
3597 17 : tree _q40 = TREE_OPERAND (_q30, 0);
3598 17 : switch (TREE_CODE (_q40))
3599 : {
3600 1 : case BIT_NOT_EXPR:
3601 1 : {
3602 1 : tree _q50 = TREE_OPERAND (_q40, 0);
3603 1 : {
3604 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3605 1 : tree res = generic_simplify_506 (loc, type, _p0, captures);
3606 1 : if (res) return res;
3607 : }
3608 0 : break;
3609 : }
3610 : default:;
3611 : }
3612 : break;
3613 : }
3614 3 : case BIT_NOT_EXPR:
3615 3 : {
3616 3 : tree _q40 = TREE_OPERAND (_q30, 0);
3617 3 : {
3618 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3619 3 : tree res = generic_simplify_506 (loc, type, _p0, captures);
3620 3 : if (res) return res;
3621 : }
3622 1 : break;
3623 : }
3624 : default:;
3625 : }
3626 : break;
3627 : }
3628 0 : case LROTATE_EXPR:
3629 0 : {
3630 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3631 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3632 0 : switch (TREE_CODE (_q30))
3633 : {
3634 0 : CASE_CONVERT:
3635 0 : {
3636 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3637 0 : switch (TREE_CODE (_q40))
3638 : {
3639 0 : case BIT_NOT_EXPR:
3640 0 : {
3641 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3642 0 : {
3643 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3644 0 : tree res = generic_simplify_507 (loc, type, _p0, captures, LROTATE_EXPR);
3645 0 : if (res) return res;
3646 : }
3647 0 : break;
3648 : }
3649 : default:;
3650 : }
3651 : break;
3652 : }
3653 0 : case BIT_NOT_EXPR:
3654 0 : {
3655 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3656 0 : {
3657 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3658 0 : tree res = generic_simplify_507 (loc, type, _p0, captures, LROTATE_EXPR);
3659 0 : if (res) return res;
3660 : }
3661 0 : break;
3662 : }
3663 : default:;
3664 : }
3665 : break;
3666 : }
3667 0 : case RROTATE_EXPR:
3668 0 : {
3669 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3670 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3671 0 : switch (TREE_CODE (_q30))
3672 : {
3673 0 : CASE_CONVERT:
3674 0 : {
3675 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3676 0 : switch (TREE_CODE (_q40))
3677 : {
3678 0 : case BIT_NOT_EXPR:
3679 0 : {
3680 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3681 0 : {
3682 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3683 0 : tree res = generic_simplify_507 (loc, type, _p0, captures, RROTATE_EXPR);
3684 0 : if (res) return res;
3685 : }
3686 0 : break;
3687 : }
3688 : default:;
3689 : }
3690 : break;
3691 : }
3692 0 : case BIT_NOT_EXPR:
3693 0 : {
3694 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3695 0 : {
3696 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3697 0 : tree res = generic_simplify_507 (loc, type, _p0, captures, RROTATE_EXPR);
3698 0 : if (res) return res;
3699 : }
3700 0 : break;
3701 : }
3702 : default:;
3703 : }
3704 : break;
3705 : }
3706 : default:;
3707 : }
3708 : break;
3709 : }
3710 120 : case NEGATE_EXPR:
3711 120 : {
3712 120 : tree _q20 = TREE_OPERAND (_p0, 0);
3713 120 : {
3714 120 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3715 120 : tree res = generic_simplify_503 (loc, type, _p0, captures);
3716 120 : if (res) return res;
3717 : }
3718 0 : break;
3719 : }
3720 1572 : case BIT_XOR_EXPR:
3721 1572 : {
3722 1572 : tree _q20 = TREE_OPERAND (_p0, 0);
3723 1572 : tree _q21 = TREE_OPERAND (_p0, 1);
3724 1572 : switch (TREE_CODE (_q21))
3725 : {
3726 22 : case INTEGER_CST:
3727 22 : {
3728 22 : {
3729 22 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3730 22 : tree res = generic_simplify_504 (loc, type, _p0, captures);
3731 22 : if (res) return res;
3732 : }
3733 0 : break;
3734 : }
3735 1550 : default:;
3736 : }
3737 1550 : switch (TREE_CODE (_q20))
3738 : {
3739 0 : case BIT_NOT_EXPR:
3740 0 : {
3741 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3742 0 : {
3743 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3744 0 : tree res = generic_simplify_505 (loc, type, _p0, captures);
3745 0 : if (res) return res;
3746 : }
3747 0 : break;
3748 : }
3749 1550 : default:;
3750 : }
3751 1550 : switch (TREE_CODE (_q21))
3752 : {
3753 0 : case BIT_NOT_EXPR:
3754 0 : {
3755 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3756 0 : {
3757 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3758 0 : tree res = generic_simplify_505 (loc, type, _p0, captures);
3759 0 : if (res) return res;
3760 : }
3761 0 : break;
3762 : }
3763 1550 : default:;
3764 : }
3765 1550 : if (tree_truth_valued_p (_q20))
3766 : {
3767 31 : if (tree_truth_valued_p (_q21))
3768 : {
3769 7 : {
3770 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3771 14 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3772 14 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
3773 : )
3774 : {
3775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1071;
3776 0 : {
3777 0 : tree res_op0;
3778 0 : {
3779 0 : tree _o1[2], _r1;
3780 0 : _o1[0] = captures[1];
3781 0 : _o1[1] = captures[2];
3782 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
3783 0 : res_op0 = _r1;
3784 : }
3785 0 : tree _r;
3786 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3787 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 851, __FILE__, __LINE__, true);
3788 0 : return _r;
3789 : }
3790 0 : next_after_fail1071:;
3791 : }
3792 : }
3793 : }
3794 : }
3795 : break;
3796 : }
3797 0 : case MIN_EXPR:
3798 0 : {
3799 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3800 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3801 0 : switch (TREE_CODE (_q20))
3802 : {
3803 0 : case BIT_NOT_EXPR:
3804 0 : {
3805 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3806 0 : {
3807 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3808 0 : tree res = generic_simplify_508 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3809 0 : if (res) return res;
3810 : }
3811 0 : break;
3812 : }
3813 0 : default:;
3814 : }
3815 0 : switch (TREE_CODE (_q21))
3816 : {
3817 0 : case BIT_NOT_EXPR:
3818 0 : {
3819 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3820 0 : {
3821 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3822 0 : tree res = generic_simplify_508 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3823 0 : if (res) return res;
3824 : }
3825 0 : break;
3826 : }
3827 : default:;
3828 : }
3829 : break;
3830 : }
3831 0 : case MAX_EXPR:
3832 0 : {
3833 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3834 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3835 0 : switch (TREE_CODE (_q20))
3836 : {
3837 0 : case BIT_NOT_EXPR:
3838 0 : {
3839 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3840 0 : {
3841 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3842 0 : tree res = generic_simplify_508 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3843 0 : if (res) return res;
3844 : }
3845 0 : break;
3846 : }
3847 0 : default:;
3848 : }
3849 0 : switch (TREE_CODE (_q21))
3850 : {
3851 0 : case BIT_NOT_EXPR:
3852 0 : {
3853 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3854 0 : {
3855 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3856 0 : tree res = generic_simplify_508 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3857 0 : if (res) return res;
3858 : }
3859 0 : break;
3860 : }
3861 : default:;
3862 : }
3863 : break;
3864 : }
3865 1 : case LROTATE_EXPR:
3866 1 : {
3867 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3868 1 : tree _q21 = TREE_OPERAND (_p0, 1);
3869 1 : switch (TREE_CODE (_q20))
3870 : {
3871 0 : CASE_CONVERT:
3872 0 : {
3873 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3874 0 : switch (TREE_CODE (_q30))
3875 : {
3876 0 : case BIT_NOT_EXPR:
3877 0 : {
3878 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3879 0 : {
3880 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3881 0 : tree res = generic_simplify_509 (loc, type, _p0, captures, LROTATE_EXPR);
3882 0 : if (res) return res;
3883 : }
3884 0 : break;
3885 : }
3886 : default:;
3887 : }
3888 : break;
3889 : }
3890 1 : case BIT_NOT_EXPR:
3891 1 : {
3892 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3893 1 : {
3894 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3895 1 : tree res = generic_simplify_509 (loc, type, _p0, captures, LROTATE_EXPR);
3896 1 : if (res) return res;
3897 : }
3898 0 : break;
3899 : }
3900 : default:;
3901 : }
3902 : break;
3903 : }
3904 1 : case RROTATE_EXPR:
3905 1 : {
3906 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3907 1 : tree _q21 = TREE_OPERAND (_p0, 1);
3908 1 : switch (TREE_CODE (_q20))
3909 : {
3910 0 : CASE_CONVERT:
3911 0 : {
3912 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3913 0 : switch (TREE_CODE (_q30))
3914 : {
3915 0 : case BIT_NOT_EXPR:
3916 0 : {
3917 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3918 0 : {
3919 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3920 0 : tree res = generic_simplify_509 (loc, type, _p0, captures, RROTATE_EXPR);
3921 0 : if (res) return res;
3922 : }
3923 0 : break;
3924 : }
3925 : default:;
3926 : }
3927 : break;
3928 : }
3929 1 : case BIT_NOT_EXPR:
3930 1 : {
3931 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3932 1 : {
3933 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3934 1 : tree res = generic_simplify_509 (loc, type, _p0, captures, RROTATE_EXPR);
3935 1 : if (res) return res;
3936 : }
3937 0 : break;
3938 : }
3939 : default:;
3940 : }
3941 : break;
3942 : }
3943 32 : case VEC_COND_EXPR:
3944 32 : {
3945 32 : tree _q20 = TREE_OPERAND (_p0, 0);
3946 32 : tree _q21 = TREE_OPERAND (_p0, 1);
3947 32 : tree _q22 = TREE_OPERAND (_p0, 2);
3948 32 : {
3949 32 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3950 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1072;
3951 32 : {
3952 32 : tree res_op0;
3953 32 : res_op0 = captures[1];
3954 32 : tree res_op1;
3955 32 : {
3956 32 : tree _o1[1], _r1;
3957 32 : _o1[0] = captures[2];
3958 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
3959 32 : if (EXPR_P (_r1))
3960 0 : goto next_after_fail1072;
3961 32 : res_op1 = _r1;
3962 : }
3963 32 : tree res_op2;
3964 32 : {
3965 32 : tree _o1[1], _r1;
3966 32 : _o1[0] = captures[3];
3967 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
3968 32 : if (EXPR_P (_r1))
3969 0 : goto next_after_fail1072;
3970 32 : res_op2 = _r1;
3971 : }
3972 32 : tree _r;
3973 32 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3974 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3975 32 : return _r;
3976 : }
3977 0 : next_after_fail1072:;
3978 : }
3979 0 : break;
3980 : }
3981 4 : case LT_EXPR:
3982 4 : {
3983 4 : tree _q20 = TREE_OPERAND (_p0, 0);
3984 4 : tree _q21 = TREE_OPERAND (_p0, 1);
3985 4 : {
3986 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3987 4 : tree res = generic_simplify_510 (loc, type, _p0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
3988 4 : if (res) return res;
3989 : }
3990 4 : break;
3991 : }
3992 4 : case LE_EXPR:
3993 4 : {
3994 4 : tree _q20 = TREE_OPERAND (_p0, 0);
3995 4 : tree _q21 = TREE_OPERAND (_p0, 1);
3996 4 : {
3997 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3998 4 : tree res = generic_simplify_510 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
3999 4 : if (res) return res;
4000 : }
4001 4 : break;
4002 : }
4003 63 : case EQ_EXPR:
4004 63 : {
4005 63 : tree _q20 = TREE_OPERAND (_p0, 0);
4006 63 : tree _q21 = TREE_OPERAND (_p0, 1);
4007 63 : {
4008 63 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4009 63 : tree res = generic_simplify_510 (loc, type, _p0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
4010 63 : if (res) return res;
4011 : }
4012 56 : break;
4013 : }
4014 112 : case NE_EXPR:
4015 112 : {
4016 112 : tree _q20 = TREE_OPERAND (_p0, 0);
4017 112 : tree _q21 = TREE_OPERAND (_p0, 1);
4018 112 : {
4019 112 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4020 112 : tree res = generic_simplify_510 (loc, type, _p0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
4021 112 : if (res) return res;
4022 : }
4023 107 : break;
4024 : }
4025 0 : case GE_EXPR:
4026 0 : {
4027 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4028 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4029 0 : {
4030 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4031 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
4032 0 : if (res) return res;
4033 : }
4034 0 : break;
4035 : }
4036 66 : case GT_EXPR:
4037 66 : {
4038 66 : tree _q20 = TREE_OPERAND (_p0, 0);
4039 66 : tree _q21 = TREE_OPERAND (_p0, 1);
4040 66 : {
4041 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4042 66 : tree res = generic_simplify_510 (loc, type, _p0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
4043 66 : if (res) return res;
4044 : }
4045 66 : break;
4046 : }
4047 0 : case UNORDERED_EXPR:
4048 0 : {
4049 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4050 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4051 0 : {
4052 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4053 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
4054 0 : if (res) return res;
4055 : }
4056 0 : break;
4057 : }
4058 0 : case ORDERED_EXPR:
4059 0 : {
4060 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4061 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4062 0 : {
4063 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4064 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
4065 0 : if (res) return res;
4066 : }
4067 0 : break;
4068 : }
4069 0 : case UNLT_EXPR:
4070 0 : {
4071 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4072 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4073 0 : {
4074 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4075 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
4076 0 : if (res) return res;
4077 : }
4078 0 : break;
4079 : }
4080 0 : case UNLE_EXPR:
4081 0 : {
4082 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4083 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4084 0 : {
4085 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4086 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
4087 0 : if (res) return res;
4088 : }
4089 0 : break;
4090 : }
4091 0 : case UNGT_EXPR:
4092 0 : {
4093 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4094 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4095 0 : {
4096 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4097 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
4098 0 : if (res) return res;
4099 : }
4100 0 : break;
4101 : }
4102 0 : case UNGE_EXPR:
4103 0 : {
4104 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4105 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4106 0 : {
4107 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4108 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
4109 0 : if (res) return res;
4110 : }
4111 0 : break;
4112 : }
4113 0 : case UNEQ_EXPR:
4114 0 : {
4115 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4116 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4117 0 : {
4118 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4119 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
4120 0 : if (res) return res;
4121 : }
4122 0 : break;
4123 : }
4124 0 : case LTGT_EXPR:
4125 0 : {
4126 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4127 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4128 0 : {
4129 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4130 0 : tree res = generic_simplify_510 (loc, type, _p0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
4131 0 : if (res) return res;
4132 : }
4133 0 : break;
4134 : }
4135 : default:;
4136 : }
4137 : return NULL_TREE;
4138 : }
4139 :
4140 : tree
4141 2219392 : generic_simplify_TRUNC_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4142 : {
4143 2219392 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4144 2219392 : if (integer_onep (_p1))
4145 : {
4146 20804 : {
4147 20804 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4148 20804 : tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4149 20804 : if (res) return res;
4150 : }
4151 : }
4152 2198588 : switch (TREE_CODE (_p0))
4153 : {
4154 158387 : CASE_CONVERT:
4155 158387 : {
4156 158387 : tree _q20 = TREE_OPERAND (_p0, 0);
4157 158387 : switch (TREE_CODE (_p1))
4158 : {
4159 36549 : CASE_CONVERT:
4160 36549 : {
4161 36549 : tree _q40 = TREE_OPERAND (_p1, 0);
4162 36549 : switch (TREE_CODE (_q40))
4163 : {
4164 0 : case LSHIFT_EXPR:
4165 0 : {
4166 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4167 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4168 0 : if (integer_onep (_q50))
4169 : {
4170 0 : {
4171 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
4172 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4173 0 : if (res) return res;
4174 : }
4175 : }
4176 : break;
4177 : }
4178 : default:;
4179 : }
4180 : break;
4181 : }
4182 8 : case LSHIFT_EXPR:
4183 8 : {
4184 8 : tree _q40 = TREE_OPERAND (_p1, 0);
4185 8 : tree _q41 = TREE_OPERAND (_p1, 1);
4186 8 : if (integer_onep (_q40))
4187 : {
4188 7 : {
4189 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
4190 7 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4191 7 : if (res) return res;
4192 : }
4193 : }
4194 : break;
4195 : }
4196 : default:;
4197 : }
4198 : break;
4199 : }
4200 2198588 : default:;
4201 : }
4202 2198588 : switch (TREE_CODE (_p1))
4203 : {
4204 129687 : CASE_CONVERT:
4205 129687 : {
4206 129687 : tree _q30 = TREE_OPERAND (_p1, 0);
4207 129687 : switch (TREE_CODE (_q30))
4208 : {
4209 7 : case LSHIFT_EXPR:
4210 7 : {
4211 7 : tree _q40 = TREE_OPERAND (_q30, 0);
4212 7 : tree _q41 = TREE_OPERAND (_q30, 1);
4213 7 : if (integer_onep (_q40))
4214 : {
4215 7 : {
4216 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
4217 7 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4218 7 : if (res) return res;
4219 : }
4220 : }
4221 : break;
4222 : }
4223 : default:;
4224 : }
4225 : break;
4226 : }
4227 33 : case LSHIFT_EXPR:
4228 33 : {
4229 33 : tree _q30 = TREE_OPERAND (_p1, 0);
4230 33 : tree _q31 = TREE_OPERAND (_p1, 1);
4231 33 : if (integer_onep (_q30))
4232 : {
4233 16 : {
4234 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
4235 16 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4236 16 : if (res) return res;
4237 : }
4238 : }
4239 : break;
4240 : }
4241 2198579 : default:;
4242 : }
4243 2198579 : if (integer_zerop (_p0))
4244 : {
4245 2358 : {
4246 2358 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4247 2358 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4248 2358 : if (res) return res;
4249 : }
4250 : }
4251 2196846 : switch (TREE_CODE (_p1))
4252 : {
4253 13395 : case SSA_NAME:
4254 13395 : {
4255 13395 : {
4256 13395 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4257 13395 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4258 13395 : if (res) return res;
4259 : }
4260 13395 : break;
4261 : }
4262 2196846 : default:;
4263 : }
4264 2196846 : if (integer_minus_onep (_p1))
4265 : {
4266 2520 : {
4267 2520 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4268 2520 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4269 2520 : if (res) return res;
4270 : }
4271 : }
4272 2195224 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4273 : {
4274 892 : {
4275 892 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4276 892 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4277 892 : if (res) return res;
4278 : }
4279 : }
4280 2195113 : switch (TREE_CODE (_p1))
4281 : {
4282 1 : case ABS_EXPR:
4283 1 : {
4284 1 : tree _q30 = TREE_OPERAND (_p1, 0);
4285 1 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4286 : {
4287 1 : {
4288 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4289 1 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4290 1 : if (res) return res;
4291 : }
4292 : }
4293 : break;
4294 : }
4295 2195112 : default:;
4296 : }
4297 2195112 : switch (TREE_CODE (_p0))
4298 : {
4299 0 : case ABS_EXPR:
4300 0 : {
4301 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4302 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4303 : {
4304 0 : {
4305 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4306 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4307 0 : if (res) return res;
4308 : }
4309 : }
4310 : break;
4311 : }
4312 2195112 : default:;
4313 : }
4314 2195112 : switch (TREE_CODE (_p1))
4315 : {
4316 657 : case NEGATE_EXPR:
4317 657 : {
4318 657 : tree _q30 = TREE_OPERAND (_p1, 0);
4319 657 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4320 : {
4321 1 : {
4322 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4323 1 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4324 1 : if (res) return res;
4325 : }
4326 : }
4327 : break;
4328 : }
4329 2195111 : default:;
4330 : }
4331 2195111 : switch (TREE_CODE (_p0))
4332 : {
4333 368 : case NEGATE_EXPR:
4334 368 : {
4335 368 : tree _q20 = TREE_OPERAND (_p0, 0);
4336 368 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4337 : {
4338 0 : {
4339 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4340 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4341 0 : if (res) return res;
4342 : }
4343 : }
4344 : break;
4345 : }
4346 9203 : case TRUNC_DIV_EXPR:
4347 9203 : {
4348 9203 : tree _q20 = TREE_OPERAND (_p0, 0);
4349 9203 : tree _q21 = TREE_OPERAND (_p0, 1);
4350 9203 : switch (TREE_CODE (_q21))
4351 : {
4352 9114 : case INTEGER_CST:
4353 9114 : {
4354 9114 : switch (TREE_CODE (_p1))
4355 : {
4356 9113 : case INTEGER_CST:
4357 9113 : {
4358 9113 : {
4359 9113 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4360 9113 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4361 9113 : if (res) return res;
4362 : }
4363 9113 : break;
4364 : }
4365 : default:;
4366 : }
4367 : break;
4368 : }
4369 : default:;
4370 : }
4371 : break;
4372 : }
4373 158346 : CASE_CONVERT:
4374 158346 : {
4375 158346 : tree _q20 = TREE_OPERAND (_p0, 0);
4376 158346 : switch (TREE_CODE (_q20))
4377 : {
4378 0 : case BIT_AND_EXPR:
4379 0 : {
4380 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4381 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4382 0 : switch (TREE_CODE (_q31))
4383 : {
4384 0 : case INTEGER_CST:
4385 0 : {
4386 0 : switch (TREE_CODE (_p1))
4387 : {
4388 0 : case INTEGER_CST:
4389 0 : {
4390 0 : {
4391 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4392 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4393 0 : if (res) return res;
4394 : }
4395 0 : break;
4396 : }
4397 : default:;
4398 : }
4399 : break;
4400 : }
4401 : default:;
4402 : }
4403 : break;
4404 : }
4405 : default:;
4406 : }
4407 : break;
4408 : }
4409 45702 : case BIT_AND_EXPR:
4410 45702 : {
4411 45702 : tree _q20 = TREE_OPERAND (_p0, 0);
4412 45702 : tree _q21 = TREE_OPERAND (_p0, 1);
4413 45702 : switch (TREE_CODE (_q21))
4414 : {
4415 45676 : case INTEGER_CST:
4416 45676 : {
4417 45676 : switch (TREE_CODE (_p1))
4418 : {
4419 45672 : case INTEGER_CST:
4420 45672 : {
4421 45672 : {
4422 45672 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4423 45672 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4424 45672 : if (res) return res;
4425 : }
4426 45671 : break;
4427 : }
4428 : default:;
4429 : }
4430 : break;
4431 : }
4432 : default:;
4433 : }
4434 : break;
4435 : }
4436 36194 : case MULT_EXPR:
4437 36194 : {
4438 36194 : tree _q20 = TREE_OPERAND (_p0, 0);
4439 36194 : tree _q21 = TREE_OPERAND (_p0, 1);
4440 36194 : if (integer_pow2p (_q21))
4441 : {
4442 5941 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4443 : {
4444 5579 : {
4445 5579 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4446 5579 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4447 5579 : if (res) return res;
4448 : }
4449 : }
4450 : }
4451 30756 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4452 : {
4453 163 : {
4454 163 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4455 163 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4456 163 : if (res) return res;
4457 : }
4458 : }
4459 30608 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4460 : {
4461 22 : {
4462 22 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4463 22 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4464 22 : if (res) return res;
4465 : }
4466 : }
4467 30599 : switch (TREE_CODE (_q21))
4468 : {
4469 30273 : case INTEGER_CST:
4470 30273 : {
4471 30273 : switch (TREE_CODE (_p1))
4472 : {
4473 3 : case MULT_EXPR:
4474 3 : {
4475 3 : tree _q50 = TREE_OPERAND (_p1, 0);
4476 3 : tree _q51 = TREE_OPERAND (_p1, 1);
4477 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4478 : {
4479 3 : switch (TREE_CODE (_q51))
4480 : {
4481 3 : case INTEGER_CST:
4482 3 : {
4483 3 : {
4484 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4485 3 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4486 3 : if (res) return res;
4487 : }
4488 0 : break;
4489 : }
4490 : default:;
4491 : }
4492 : }
4493 : break;
4494 : }
4495 : default:;
4496 : }
4497 : break;
4498 : }
4499 : default:;
4500 : }
4501 : break;
4502 : }
4503 0 : case VEC_COND_EXPR:
4504 0 : {
4505 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4506 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4507 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4508 0 : switch (TREE_CODE (_p1))
4509 : {
4510 0 : case VEC_COND_EXPR:
4511 0 : {
4512 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4513 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4514 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4515 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4516 : {
4517 0 : {
4518 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4519 0 : if (VECTOR_TYPE_P (type)
4520 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4521 : || types_match (type, TREE_TYPE (captures[2]))
4522 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4523 : || (optimize_vectors_before_lowering_p ()
4524 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4525 : )
4526 : {
4527 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1573;
4528 0 : {
4529 0 : tree res_op0;
4530 0 : res_op0 = captures[1];
4531 0 : tree res_op1;
4532 0 : {
4533 0 : tree _o1[2], _r1;
4534 0 : _o1[0] = captures[2];
4535 0 : _o1[1] = captures[5];
4536 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4537 0 : if (EXPR_P (_r1))
4538 0 : goto next_after_fail1573;
4539 0 : res_op1 = _r1;
4540 : }
4541 0 : tree res_op2;
4542 0 : {
4543 0 : tree _o1[2], _r1;
4544 0 : _o1[0] = captures[3];
4545 0 : _o1[1] = captures[6];
4546 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4547 0 : if (EXPR_P (_r1))
4548 0 : goto next_after_fail1573;
4549 0 : res_op2 = _r1;
4550 : }
4551 0 : tree _r;
4552 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4553 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
4554 0 : return _r;
4555 : }
4556 0 : next_after_fail1573:;
4557 : }
4558 : }
4559 : }
4560 : break;
4561 : }
4562 0 : default:;
4563 : }
4564 0 : {
4565 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4566 0 : if (VECTOR_TYPE_P (type)
4567 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4568 : || types_match (type, TREE_TYPE (captures[2]))
4569 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4570 : || (optimize_vectors_before_lowering_p ()
4571 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4572 : )
4573 : {
4574 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1574;
4575 0 : {
4576 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1574;
4577 0 : tree res_op0;
4578 0 : res_op0 = captures[1];
4579 0 : tree res_op1;
4580 0 : {
4581 0 : tree _o1[2], _r1;
4582 0 : _o1[0] = captures[2];
4583 0 : _o1[1] = unshare_expr (captures[4]);
4584 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4585 0 : if (EXPR_P (_r1))
4586 0 : goto next_after_fail1574;
4587 0 : res_op1 = _r1;
4588 : }
4589 0 : tree res_op2;
4590 0 : {
4591 0 : tree _o1[2], _r1;
4592 0 : _o1[0] = captures[3];
4593 0 : _o1[1] = captures[4];
4594 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4595 0 : if (EXPR_P (_r1))
4596 0 : goto next_after_fail1574;
4597 0 : res_op2 = _r1;
4598 : }
4599 0 : tree _r;
4600 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4601 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4602 0 : return _r;
4603 : }
4604 0 : next_after_fail1574:;
4605 : }
4606 : }
4607 0 : break;
4608 : }
4609 2189512 : default:;
4610 : }
4611 2189512 : if (integer_onep (_p0))
4612 : {
4613 1225 : {
4614 1225 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4615 1225 : if (INTEGRAL_TYPE_P (type)
4616 1222 : && TYPE_PRECISION (type) > 1
4617 1222 : && !integer_zerop (captures[1])
4618 1693 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
4619 : )
4620 : {
4621 411 : if (TYPE_UNSIGNED (type)
4622 : )
4623 : {
4624 54 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1575;
4625 54 : {
4626 54 : tree res_op0;
4627 54 : {
4628 54 : tree _o1[2], _r1;
4629 54 : _o1[0] = captures[1];
4630 54 : _o1[1] = build_one_cst (type);
4631 54 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
4632 54 : res_op0 = _r1;
4633 : }
4634 54 : tree _r;
4635 54 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4636 54 : if (TREE_SIDE_EFFECTS (captures[0]))
4637 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4638 54 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
4639 54 : return _r;
4640 : }
4641 0 : next_after_fail1575:;
4642 : }
4643 : else
4644 : {
4645 357 : if (fold_before_rtl_expansion_p ()
4646 : )
4647 : {
4648 0 : {
4649 0 : tree utype = unsigned_type_for (type);
4650 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1576;
4651 0 : {
4652 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail1576;
4653 0 : tree res_op0;
4654 0 : {
4655 0 : tree _o1[2], _r1;
4656 0 : {
4657 0 : tree _o2[2], _r2;
4658 0 : {
4659 0 : tree _o3[1], _r3;
4660 0 : _o3[0] = unshare_expr (captures[1]);
4661 0 : if (TREE_TYPE (_o3[0]) != utype)
4662 : {
4663 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
4664 : }
4665 : else
4666 : _r3 = _o3[0];
4667 0 : _o2[0] = _r3;
4668 : }
4669 0 : _o2[1] = build_one_cst (utype);
4670 0 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4671 0 : _o1[0] = _r2;
4672 : }
4673 0 : _o1[1] = build_int_cst (utype, 2);
4674 0 : _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
4675 0 : res_op0 = _r1;
4676 : }
4677 0 : tree res_op1;
4678 0 : res_op1 = captures[1];
4679 0 : tree res_op2;
4680 0 : res_op2 = build_zero_cst (type);
4681 0 : tree _r;
4682 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4683 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4684 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4685 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
4686 0 : return _r;
4687 : }
4688 1171 : next_after_fail1576:;
4689 : }
4690 : }
4691 : }
4692 : }
4693 : }
4694 : }
4695 2189458 : switch (TREE_CODE (_p1))
4696 : {
4697 0 : case VEC_COND_EXPR:
4698 0 : {
4699 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4700 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4701 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4702 0 : {
4703 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4704 0 : if (VECTOR_TYPE_P (type)
4705 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4706 : || types_match (type, TREE_TYPE (captures[3]))
4707 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4708 : || (optimize_vectors_before_lowering_p ()
4709 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4710 : )
4711 : {
4712 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1577;
4713 0 : {
4714 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1577;
4715 0 : tree res_op0;
4716 0 : res_op0 = captures[2];
4717 0 : tree res_op1;
4718 0 : {
4719 0 : tree _o1[2], _r1;
4720 0 : _o1[0] = unshare_expr (captures[0]);
4721 0 : _o1[1] = captures[3];
4722 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4723 0 : if (EXPR_P (_r1))
4724 0 : goto next_after_fail1577;
4725 0 : res_op1 = _r1;
4726 : }
4727 0 : tree res_op2;
4728 0 : {
4729 0 : tree _o1[2], _r1;
4730 0 : _o1[0] = captures[0];
4731 0 : _o1[1] = captures[4];
4732 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4733 0 : if (EXPR_P (_r1))
4734 0 : goto next_after_fail1577;
4735 0 : res_op2 = _r1;
4736 : }
4737 0 : tree _r;
4738 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4739 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
4740 0 : return _r;
4741 : }
4742 0 : next_after_fail1577:;
4743 : }
4744 : }
4745 0 : break;
4746 : }
4747 : default:;
4748 : }
4749 : return NULL_TREE;
4750 : }
4751 :
4752 : tree
4753 0 : generic_simplify_ROUND_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4754 : {
4755 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4756 0 : if (integer_onep (_p1))
4757 : {
4758 0 : {
4759 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4760 0 : tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4761 0 : if (res) return res;
4762 : }
4763 : }
4764 0 : if (integer_zerop (_p0))
4765 : {
4766 0 : {
4767 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4768 0 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4769 0 : if (res) return res;
4770 : }
4771 : }
4772 0 : switch (TREE_CODE (_p1))
4773 : {
4774 0 : case SSA_NAME:
4775 0 : {
4776 0 : {
4777 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4778 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4779 0 : if (res) return res;
4780 : }
4781 0 : break;
4782 : }
4783 0 : default:;
4784 : }
4785 0 : if (integer_minus_onep (_p1))
4786 : {
4787 0 : {
4788 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4789 0 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4790 0 : if (res) return res;
4791 : }
4792 : }
4793 0 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4794 : {
4795 0 : {
4796 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4797 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4798 0 : if (res) return res;
4799 : }
4800 : }
4801 0 : switch (TREE_CODE (_p1))
4802 : {
4803 0 : case ABS_EXPR:
4804 0 : {
4805 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4806 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4807 : {
4808 0 : {
4809 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4810 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4811 0 : if (res) return res;
4812 : }
4813 : }
4814 : break;
4815 : }
4816 0 : default:;
4817 : }
4818 0 : switch (TREE_CODE (_p0))
4819 : {
4820 0 : case ABS_EXPR:
4821 0 : {
4822 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4823 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4824 : {
4825 0 : {
4826 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4827 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4828 0 : if (res) return res;
4829 : }
4830 : }
4831 : break;
4832 : }
4833 0 : default:;
4834 : }
4835 0 : switch (TREE_CODE (_p1))
4836 : {
4837 0 : case NEGATE_EXPR:
4838 0 : {
4839 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4840 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4841 : {
4842 0 : {
4843 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4844 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4845 0 : if (res) return res;
4846 : }
4847 : }
4848 : break;
4849 : }
4850 0 : default:;
4851 : }
4852 0 : switch (TREE_CODE (_p0))
4853 : {
4854 0 : case NEGATE_EXPR:
4855 0 : {
4856 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4857 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4858 : {
4859 0 : {
4860 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4861 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4862 0 : if (res) return res;
4863 : }
4864 : }
4865 : break;
4866 : }
4867 0 : CASE_CONVERT:
4868 0 : {
4869 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4870 0 : switch (TREE_CODE (_q20))
4871 : {
4872 0 : case BIT_AND_EXPR:
4873 0 : {
4874 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4875 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4876 0 : switch (TREE_CODE (_q31))
4877 : {
4878 0 : case INTEGER_CST:
4879 0 : {
4880 0 : switch (TREE_CODE (_p1))
4881 : {
4882 0 : case INTEGER_CST:
4883 0 : {
4884 0 : {
4885 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4886 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4887 0 : if (res) return res;
4888 : }
4889 0 : break;
4890 : }
4891 : default:;
4892 : }
4893 : break;
4894 : }
4895 : default:;
4896 : }
4897 : break;
4898 : }
4899 : default:;
4900 : }
4901 : break;
4902 : }
4903 0 : case BIT_AND_EXPR:
4904 0 : {
4905 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4906 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4907 0 : switch (TREE_CODE (_q21))
4908 : {
4909 0 : case INTEGER_CST:
4910 0 : {
4911 0 : switch (TREE_CODE (_p1))
4912 : {
4913 0 : case INTEGER_CST:
4914 0 : {
4915 0 : {
4916 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4917 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4918 0 : if (res) return res;
4919 : }
4920 0 : break;
4921 : }
4922 : default:;
4923 : }
4924 : break;
4925 : }
4926 : default:;
4927 : }
4928 : break;
4929 : }
4930 0 : case MULT_EXPR:
4931 0 : {
4932 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4933 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4934 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4935 : {
4936 0 : {
4937 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4938 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4939 0 : if (res) return res;
4940 : }
4941 : }
4942 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4943 : {
4944 0 : {
4945 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4946 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4947 0 : if (res) return res;
4948 : }
4949 : }
4950 0 : switch (TREE_CODE (_q21))
4951 : {
4952 0 : case INTEGER_CST:
4953 0 : {
4954 0 : switch (TREE_CODE (_p1))
4955 : {
4956 0 : case MULT_EXPR:
4957 0 : {
4958 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4959 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4960 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4961 : {
4962 0 : switch (TREE_CODE (_q51))
4963 : {
4964 0 : case INTEGER_CST:
4965 0 : {
4966 0 : {
4967 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4968 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4969 0 : if (res) return res;
4970 : }
4971 0 : break;
4972 : }
4973 : default:;
4974 : }
4975 : }
4976 : break;
4977 : }
4978 : default:;
4979 : }
4980 : break;
4981 : }
4982 : default:;
4983 : }
4984 : break;
4985 : }
4986 0 : case VEC_COND_EXPR:
4987 0 : {
4988 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4989 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4990 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4991 0 : switch (TREE_CODE (_p1))
4992 : {
4993 0 : case VEC_COND_EXPR:
4994 0 : {
4995 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4996 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4997 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4998 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4999 : {
5000 0 : {
5001 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5002 0 : if (VECTOR_TYPE_P (type)
5003 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5004 : || types_match (type, TREE_TYPE (captures[2]))
5005 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5006 : || (optimize_vectors_before_lowering_p ()
5007 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5008 : )
5009 : {
5010 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1584;
5011 0 : {
5012 0 : tree res_op0;
5013 0 : res_op0 = captures[1];
5014 0 : tree res_op1;
5015 0 : {
5016 0 : tree _o1[2], _r1;
5017 0 : _o1[0] = captures[2];
5018 0 : _o1[1] = captures[5];
5019 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5020 0 : if (EXPR_P (_r1))
5021 0 : goto next_after_fail1584;
5022 0 : res_op1 = _r1;
5023 : }
5024 0 : tree res_op2;
5025 0 : {
5026 0 : tree _o1[2], _r1;
5027 0 : _o1[0] = captures[3];
5028 0 : _o1[1] = captures[6];
5029 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5030 0 : if (EXPR_P (_r1))
5031 0 : goto next_after_fail1584;
5032 0 : res_op2 = _r1;
5033 : }
5034 0 : tree _r;
5035 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5036 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
5037 0 : return _r;
5038 : }
5039 0 : next_after_fail1584:;
5040 : }
5041 : }
5042 : }
5043 : break;
5044 : }
5045 0 : default:;
5046 : }
5047 0 : {
5048 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5049 0 : if (VECTOR_TYPE_P (type)
5050 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5051 : || types_match (type, TREE_TYPE (captures[2]))
5052 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5053 : || (optimize_vectors_before_lowering_p ()
5054 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5055 : )
5056 : {
5057 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1585;
5058 0 : {
5059 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1585;
5060 0 : tree res_op0;
5061 0 : res_op0 = captures[1];
5062 0 : tree res_op1;
5063 0 : {
5064 0 : tree _o1[2], _r1;
5065 0 : _o1[0] = captures[2];
5066 0 : _o1[1] = unshare_expr (captures[4]);
5067 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5068 0 : if (EXPR_P (_r1))
5069 0 : goto next_after_fail1585;
5070 0 : res_op1 = _r1;
5071 : }
5072 0 : tree res_op2;
5073 0 : {
5074 0 : tree _o1[2], _r1;
5075 0 : _o1[0] = captures[3];
5076 0 : _o1[1] = captures[4];
5077 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5078 0 : if (EXPR_P (_r1))
5079 0 : goto next_after_fail1585;
5080 0 : res_op2 = _r1;
5081 : }
5082 0 : tree _r;
5083 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5084 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
5085 0 : return _r;
5086 : }
5087 0 : next_after_fail1585:;
5088 : }
5089 : }
5090 0 : break;
5091 : }
5092 0 : default:;
5093 : }
5094 0 : switch (TREE_CODE (_p1))
5095 : {
5096 0 : case VEC_COND_EXPR:
5097 0 : {
5098 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5099 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5100 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5101 0 : {
5102 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5103 0 : if (VECTOR_TYPE_P (type)
5104 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5105 : || types_match (type, TREE_TYPE (captures[3]))
5106 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5107 : || (optimize_vectors_before_lowering_p ()
5108 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5109 : )
5110 : {
5111 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1586;
5112 0 : {
5113 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1586;
5114 0 : tree res_op0;
5115 0 : res_op0 = captures[2];
5116 0 : tree res_op1;
5117 0 : {
5118 0 : tree _o1[2], _r1;
5119 0 : _o1[0] = unshare_expr (captures[0]);
5120 0 : _o1[1] = captures[3];
5121 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5122 0 : if (EXPR_P (_r1))
5123 0 : goto next_after_fail1586;
5124 0 : res_op1 = _r1;
5125 : }
5126 0 : tree res_op2;
5127 0 : {
5128 0 : tree _o1[2], _r1;
5129 0 : _o1[0] = captures[0];
5130 0 : _o1[1] = captures[4];
5131 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5132 0 : if (EXPR_P (_r1))
5133 0 : goto next_after_fail1586;
5134 0 : res_op2 = _r1;
5135 : }
5136 0 : tree _r;
5137 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5138 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
5139 0 : return _r;
5140 : }
5141 0 : next_after_fail1586:;
5142 : }
5143 : }
5144 0 : break;
5145 : }
5146 : default:;
5147 : }
5148 : return NULL_TREE;
5149 : }
5150 :
5151 : tree
5152 6224538 : generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5153 : {
5154 6224538 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5155 6224538 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5156 : {
5157 762 : {
5158 762 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5159 3 : if (FLOAT_TYPE_P (type)
5160 762 : && ! HONOR_NANS (type)
5161 764 : && ! HONOR_INFINITIES (type)
5162 : )
5163 : {
5164 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1593;
5165 2 : {
5166 2 : tree _r;
5167 2 : _r = build_one_cst (type);
5168 2 : if (TREE_SIDE_EFFECTS (captures[0]))
5169 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5170 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 991, __FILE__, __LINE__, true);
5171 2 : return _r;
5172 : }
5173 0 : next_after_fail1593:;
5174 : }
5175 : }
5176 : }
5177 6224536 : switch (TREE_CODE (_p1))
5178 : {
5179 18854 : case NEGATE_EXPR:
5180 18854 : {
5181 18854 : tree _q30 = TREE_OPERAND (_p1, 0);
5182 18854 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5183 : {
5184 0 : {
5185 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5186 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
5187 0 : if (res) return res;
5188 : }
5189 : }
5190 : break;
5191 : }
5192 6224536 : default:;
5193 : }
5194 6224536 : switch (TREE_CODE (_p0))
5195 : {
5196 94352 : case NEGATE_EXPR:
5197 94352 : {
5198 94352 : tree _q20 = TREE_OPERAND (_p0, 0);
5199 94352 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5200 : {
5201 2 : {
5202 2 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5203 2 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
5204 2 : if (res) return res;
5205 : }
5206 : }
5207 : break;
5208 : }
5209 541136 : CASE_CONVERT:
5210 541136 : {
5211 541136 : tree _q20 = TREE_OPERAND (_p0, 0);
5212 541136 : switch (TREE_CODE (_p1))
5213 : {
5214 25081 : CASE_CONVERT:
5215 25081 : {
5216 25081 : tree _q40 = TREE_OPERAND (_p1, 0);
5217 25081 : switch (TREE_CODE (_q40))
5218 : {
5219 0 : case ABS_EXPR:
5220 0 : {
5221 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5222 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5223 : {
5224 0 : {
5225 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5226 0 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures);
5227 0 : if (res) return res;
5228 : }
5229 : }
5230 : break;
5231 : }
5232 : default:;
5233 : }
5234 : break;
5235 : }
5236 541136 : default:;
5237 : }
5238 541136 : switch (TREE_CODE (_q20))
5239 : {
5240 0 : case ABS_EXPR:
5241 0 : {
5242 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5243 0 : switch (TREE_CODE (_p1))
5244 : {
5245 0 : CASE_CONVERT:
5246 0 : {
5247 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5248 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
5249 : {
5250 0 : {
5251 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
5252 0 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures);
5253 0 : if (res) return res;
5254 : }
5255 : }
5256 : break;
5257 : }
5258 : default:;
5259 : }
5260 : break;
5261 : }
5262 : default:;
5263 : }
5264 : break;
5265 : }
5266 6224536 : default:;
5267 : }
5268 6224536 : switch (TREE_CODE (_p1))
5269 : {
5270 48 : case ABS_EXPR:
5271 48 : {
5272 48 : tree _q30 = TREE_OPERAND (_p1, 0);
5273 48 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5274 : {
5275 0 : {
5276 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5277 0 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures);
5278 0 : if (res) return res;
5279 : }
5280 : }
5281 : break;
5282 : }
5283 6224536 : default:;
5284 : }
5285 6224536 : switch (TREE_CODE (_p0))
5286 : {
5287 146 : case ABS_EXPR:
5288 146 : {
5289 146 : tree _q20 = TREE_OPERAND (_p0, 0);
5290 146 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5291 : {
5292 0 : {
5293 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5294 0 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures);
5295 0 : if (res) return res;
5296 : }
5297 : }
5298 : break;
5299 : }
5300 6224536 : default:;
5301 : }
5302 6224536 : if (real_onep (_p1))
5303 : {
5304 86 : {
5305 86 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5306 86 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5307 : )
5308 : {
5309 86 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1594;
5310 86 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1594;
5311 86 : {
5312 86 : tree res_op0;
5313 86 : res_op0 = captures[0];
5314 86 : tree _r;
5315 86 : _r = non_lvalue_loc (loc, res_op0);
5316 86 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 992, __FILE__, __LINE__, true);
5317 86 : return _r;
5318 : }
5319 : next_after_fail1594:;
5320 : }
5321 : }
5322 : }
5323 6224450 : if (real_minus_onep (_p1))
5324 : {
5325 36 : {
5326 36 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5327 36 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5328 : )
5329 : {
5330 36 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1595;
5331 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1595;
5332 36 : {
5333 36 : tree res_op0;
5334 36 : res_op0 = captures[0];
5335 36 : tree _r;
5336 36 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
5337 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 993, __FILE__, __LINE__, true);
5338 36 : return _r;
5339 : }
5340 : next_after_fail1595:;
5341 : }
5342 : }
5343 : }
5344 6224414 : switch (TREE_CODE (_p0))
5345 : {
5346 37298 : case RDIV_EXPR:
5347 37298 : {
5348 37298 : tree _q20 = TREE_OPERAND (_p0, 0);
5349 37298 : tree _q21 = TREE_OPERAND (_p0, 1);
5350 37298 : {
5351 37298 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5352 37298 : if (flag_reciprocal_math
5353 : )
5354 : {
5355 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1596;
5356 12 : {
5357 12 : tree res_op0;
5358 12 : res_op0 = captures[1];
5359 12 : tree res_op1;
5360 12 : {
5361 12 : tree _o1[2], _r1;
5362 12 : _o1[0] = captures[2];
5363 12 : _o1[1] = captures[3];
5364 12 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5365 12 : res_op1 = _r1;
5366 : }
5367 12 : tree _r;
5368 12 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5369 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 994, __FILE__, __LINE__, true);
5370 12 : return _r;
5371 : }
5372 0 : next_after_fail1596:;
5373 : }
5374 : }
5375 37286 : break;
5376 : }
5377 6224402 : default:;
5378 : }
5379 6224402 : switch (TREE_CODE (_p1))
5380 : {
5381 955465 : case MULT_EXPR:
5382 955465 : {
5383 955465 : tree _q30 = TREE_OPERAND (_p1, 0);
5384 955465 : tree _q31 = TREE_OPERAND (_p1, 1);
5385 955465 : switch (TREE_CODE (_q31))
5386 : {
5387 374998 : case REAL_CST:
5388 374998 : {
5389 374998 : {
5390 374998 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5391 374998 : if (flag_reciprocal_math
5392 : )
5393 : {
5394 224 : {
5395 224 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
5396 224 : if (tem
5397 : )
5398 : {
5399 224 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1597;
5400 224 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1597;
5401 224 : {
5402 224 : tree res_op0;
5403 224 : {
5404 224 : tree _o1[2], _r1;
5405 224 : _o1[0] = captures[0];
5406 224 : _o1[1] = tem;
5407 224 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5408 224 : res_op0 = _r1;
5409 : }
5410 224 : tree res_op1;
5411 224 : res_op1 = captures[2];
5412 224 : tree _r;
5413 224 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5414 224 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
5415 224 : return _r;
5416 : }
5417 374774 : next_after_fail1597:;
5418 : }
5419 : }
5420 : }
5421 : }
5422 374774 : break;
5423 : }
5424 : default:;
5425 : }
5426 : break;
5427 : }
5428 1 : case RDIV_EXPR:
5429 1 : {
5430 1 : tree _q30 = TREE_OPERAND (_p1, 0);
5431 1 : tree _q31 = TREE_OPERAND (_p1, 1);
5432 1 : {
5433 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5434 1 : if (flag_reciprocal_math
5435 : )
5436 : {
5437 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1598;
5438 1 : {
5439 1 : tree res_op0;
5440 1 : {
5441 1 : tree _o1[2], _r1;
5442 1 : _o1[0] = captures[0];
5443 1 : _o1[1] = captures[2];
5444 1 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5445 1 : res_op0 = _r1;
5446 : }
5447 1 : tree res_op1;
5448 1 : res_op1 = captures[3];
5449 1 : tree _r;
5450 1 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5451 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
5452 1 : return _r;
5453 : }
5454 0 : next_after_fail1598:;
5455 : }
5456 : }
5457 0 : break;
5458 : }
5459 18854 : case NEGATE_EXPR:
5460 18854 : {
5461 18854 : tree _q30 = TREE_OPERAND (_p1, 0);
5462 18854 : {
5463 18854 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5464 18854 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1599;
5465 18854 : {
5466 18854 : tree res_op0;
5467 18854 : {
5468 18854 : tree _o1[1], _r1;
5469 18854 : _o1[0] = captures[0];
5470 18854 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5471 18854 : res_op0 = _r1;
5472 : }
5473 18854 : tree res_op1;
5474 18854 : res_op1 = captures[1];
5475 18854 : tree _r;
5476 18854 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5477 18854 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
5478 18854 : return _r;
5479 : }
5480 0 : next_after_fail1599:;
5481 : }
5482 0 : break;
5483 : }
5484 1058916 : case REAL_CST:
5485 1058916 : {
5486 1058916 : {
5487 1058916 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5488 1058916 : if (optimize
5489 : )
5490 : {
5491 1052589 : if (flag_reciprocal_math
5492 1052589 : && !real_zerop (captures[1])
5493 : )
5494 : {
5495 571 : {
5496 571 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5497 571 : if (tem
5498 : )
5499 : {
5500 570 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1600;
5501 570 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1600;
5502 570 : {
5503 570 : tree res_op0;
5504 570 : res_op0 = captures[0];
5505 570 : tree res_op1;
5506 570 : res_op1 = tem;
5507 570 : tree _r;
5508 570 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5509 570 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
5510 570 : return _r;
5511 : }
5512 739718 : next_after_fail1600:;
5513 : }
5514 : }
5515 : }
5516 : else
5517 : {
5518 1052018 : if (REAL_CST != COMPLEX_CST
5519 : )
5520 : {
5521 1052018 : {
5522 1052018 : tree inverse = exact_inverse (type, captures[1]);
5523 1052018 : if (inverse
5524 : )
5525 : {
5526 318628 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1601;
5527 318628 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1601;
5528 318628 : {
5529 318628 : tree res_op0;
5530 318628 : res_op0 = captures[0];
5531 318628 : tree res_op1;
5532 318628 : res_op1 = inverse;
5533 318628 : tree _r;
5534 318628 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5535 318628 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
5536 318628 : return _r;
5537 : }
5538 739718 : next_after_fail1601:;
5539 : }
5540 : }
5541 : }
5542 : }
5543 : }
5544 : }
5545 739718 : break;
5546 : }
5547 114 : case COMPLEX_CST:
5548 114 : {
5549 114 : {
5550 114 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5551 114 : if (optimize
5552 : )
5553 : {
5554 106 : if (flag_reciprocal_math
5555 106 : && !real_zerop (captures[1])
5556 : )
5557 : {
5558 7 : {
5559 7 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5560 7 : if (tem
5561 : )
5562 : {
5563 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1602;
5564 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1602;
5565 7 : {
5566 7 : tree res_op0;
5567 7 : res_op0 = captures[0];
5568 7 : tree res_op1;
5569 7 : res_op1 = tem;
5570 7 : tree _r;
5571 7 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5572 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
5573 7 : return _r;
5574 : }
5575 107 : next_after_fail1602:;
5576 : }
5577 : }
5578 : }
5579 : else
5580 : {
5581 : if (COMPLEX_CST != COMPLEX_CST
5582 : )
5583 : {
5584 : {
5585 : tree inverse = exact_inverse (type, captures[1]);
5586 : if (inverse
5587 : )
5588 : {
5589 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1603;
5590 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1603;
5591 : {
5592 : tree res_op0;
5593 : res_op0 = captures[0];
5594 : tree res_op1;
5595 : res_op1 = inverse;
5596 : tree _r;
5597 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5598 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
5599 : return _r;
5600 : }
5601 : next_after_fail1603:;
5602 : }
5603 : }
5604 : }
5605 : }
5606 : }
5607 : }
5608 107 : break;
5609 : }
5610 45 : case VECTOR_CST:
5611 45 : {
5612 45 : {
5613 45 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5614 45 : if (optimize
5615 : )
5616 : {
5617 41 : if (flag_reciprocal_math
5618 41 : && !real_zerop (captures[1])
5619 : )
5620 : {
5621 4 : {
5622 4 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5623 4 : if (tem
5624 : )
5625 : {
5626 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1604;
5627 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1604;
5628 0 : {
5629 0 : tree res_op0;
5630 0 : res_op0 = captures[0];
5631 0 : tree res_op1;
5632 0 : res_op1 = tem;
5633 0 : tree _r;
5634 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5635 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
5636 0 : return _r;
5637 : }
5638 15 : next_after_fail1604:;
5639 : }
5640 : }
5641 : }
5642 : else
5643 : {
5644 37 : if (VECTOR_CST != COMPLEX_CST
5645 : )
5646 : {
5647 37 : {
5648 37 : tree inverse = exact_inverse (type, captures[1]);
5649 37 : if (inverse
5650 : )
5651 : {
5652 30 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1605;
5653 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1605;
5654 30 : {
5655 30 : tree res_op0;
5656 30 : res_op0 = captures[0];
5657 30 : tree res_op1;
5658 30 : res_op1 = inverse;
5659 30 : tree _r;
5660 30 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5661 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 999, __FILE__, __LINE__, true);
5662 30 : return _r;
5663 : }
5664 15 : next_after_fail1605:;
5665 : }
5666 : }
5667 : }
5668 : }
5669 : }
5670 : }
5671 15 : break;
5672 : }
5673 5886088 : default:;
5674 : }
5675 5886088 : switch (TREE_CODE (_p0))
5676 : {
5677 0 : case VEC_COND_EXPR:
5678 0 : {
5679 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5680 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5681 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5682 0 : switch (TREE_CODE (_p1))
5683 : {
5684 0 : case VEC_COND_EXPR:
5685 0 : {
5686 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5687 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5688 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5689 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5690 : {
5691 0 : {
5692 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5693 0 : if (VECTOR_TYPE_P (type)
5694 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5695 : || types_match (type, TREE_TYPE (captures[2]))
5696 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5697 : || (optimize_vectors_before_lowering_p ()
5698 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5699 : )
5700 : {
5701 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1606;
5702 0 : {
5703 0 : tree res_op0;
5704 0 : res_op0 = captures[1];
5705 0 : tree res_op1;
5706 0 : {
5707 0 : tree _o1[2], _r1;
5708 0 : _o1[0] = captures[2];
5709 0 : _o1[1] = captures[5];
5710 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5711 0 : if (EXPR_P (_r1))
5712 0 : goto next_after_fail1606;
5713 0 : res_op1 = _r1;
5714 : }
5715 0 : tree res_op2;
5716 0 : {
5717 0 : tree _o1[2], _r1;
5718 0 : _o1[0] = captures[3];
5719 0 : _o1[1] = captures[6];
5720 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5721 0 : if (EXPR_P (_r1))
5722 0 : goto next_after_fail1606;
5723 0 : res_op2 = _r1;
5724 : }
5725 0 : tree _r;
5726 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5727 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
5728 0 : return _r;
5729 : }
5730 0 : next_after_fail1606:;
5731 : }
5732 : }
5733 : }
5734 : break;
5735 : }
5736 0 : default:;
5737 : }
5738 0 : {
5739 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5740 0 : if (VECTOR_TYPE_P (type)
5741 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5742 : || types_match (type, TREE_TYPE (captures[2]))
5743 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5744 : || (optimize_vectors_before_lowering_p ()
5745 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5746 : )
5747 : {
5748 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1607;
5749 0 : {
5750 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1607;
5751 0 : tree res_op0;
5752 0 : res_op0 = captures[1];
5753 0 : tree res_op1;
5754 0 : {
5755 0 : tree _o1[2], _r1;
5756 0 : _o1[0] = captures[2];
5757 0 : _o1[1] = unshare_expr (captures[4]);
5758 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5759 0 : if (EXPR_P (_r1))
5760 0 : goto next_after_fail1607;
5761 0 : res_op1 = _r1;
5762 : }
5763 0 : tree res_op2;
5764 0 : {
5765 0 : tree _o1[2], _r1;
5766 0 : _o1[0] = captures[3];
5767 0 : _o1[1] = captures[4];
5768 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5769 0 : if (EXPR_P (_r1))
5770 0 : goto next_after_fail1607;
5771 0 : res_op2 = _r1;
5772 : }
5773 0 : tree _r;
5774 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5775 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
5776 0 : return _r;
5777 : }
5778 0 : next_after_fail1607:;
5779 : }
5780 : }
5781 0 : break;
5782 : }
5783 5886088 : default:;
5784 : }
5785 5886088 : switch (TREE_CODE (_p1))
5786 : {
5787 0 : case VEC_COND_EXPR:
5788 0 : {
5789 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5790 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5791 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5792 0 : {
5793 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5794 0 : if (VECTOR_TYPE_P (type)
5795 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5796 : || types_match (type, TREE_TYPE (captures[3]))
5797 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5798 : || (optimize_vectors_before_lowering_p ()
5799 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5800 : )
5801 : {
5802 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1608;
5803 0 : {
5804 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1608;
5805 0 : tree res_op0;
5806 0 : res_op0 = captures[2];
5807 0 : tree res_op1;
5808 0 : {
5809 0 : tree _o1[2], _r1;
5810 0 : _o1[0] = unshare_expr (captures[0]);
5811 0 : _o1[1] = captures[3];
5812 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5813 0 : if (EXPR_P (_r1))
5814 0 : goto next_after_fail1608;
5815 0 : res_op1 = _r1;
5816 : }
5817 0 : tree res_op2;
5818 0 : {
5819 0 : tree _o1[2], _r1;
5820 0 : _o1[0] = captures[0];
5821 0 : _o1[1] = captures[4];
5822 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5823 0 : if (EXPR_P (_r1))
5824 0 : goto next_after_fail1608;
5825 0 : res_op2 = _r1;
5826 : }
5827 0 : tree _r;
5828 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5829 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
5830 0 : return _r;
5831 : }
5832 0 : next_after_fail1608:;
5833 : }
5834 : }
5835 0 : break;
5836 : }
5837 789312 : case CALL_EXPR:
5838 789312 : switch (get_call_combined_fn (_p1))
5839 : {
5840 20 : case CFN_BUILT_IN_SQRTF:
5841 20 : if (call_expr_nargs (_p1) == 1)
5842 : {
5843 20 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5844 20 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5845 : {
5846 0 : {
5847 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5848 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
5849 0 : if (res) return res;
5850 : }
5851 : }
5852 20 : switch (TREE_CODE (_q30))
5853 : {
5854 0 : case RDIV_EXPR:
5855 0 : {
5856 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5857 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5858 0 : {
5859 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
5860 0 : if (flag_unsafe_math_optimizations
5861 : )
5862 : {
5863 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1609;
5864 0 : {
5865 0 : tree res_op0;
5866 0 : res_op0 = captures[0];
5867 0 : tree res_op1;
5868 0 : {
5869 0 : tree _o1[1], _r1;
5870 0 : {
5871 0 : tree _o2[2], _r2;
5872 0 : _o2[0] = captures[4];
5873 0 : _o2[1] = captures[3];
5874 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5875 0 : _o1[0] = _r2;
5876 : }
5877 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
5878 0 : if (!_r1)
5879 0 : goto next_after_fail1609;
5880 0 : res_op1 = _r1;
5881 : }
5882 0 : tree _r;
5883 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5884 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
5885 0 : return _r;
5886 : }
5887 0 : next_after_fail1609:;
5888 : }
5889 : }
5890 0 : break;
5891 : }
5892 : default:;
5893 : }
5894 : }
5895 : break;
5896 0 : case CFN_BUILT_IN_SQRTL:
5897 0 : if (call_expr_nargs (_p1) == 1)
5898 : {
5899 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5900 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5901 : {
5902 0 : {
5903 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5904 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
5905 0 : if (res) return res;
5906 : }
5907 : }
5908 0 : switch (TREE_CODE (_q30))
5909 : {
5910 0 : case RDIV_EXPR:
5911 0 : {
5912 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5913 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5914 0 : {
5915 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
5916 0 : if (flag_unsafe_math_optimizations
5917 : )
5918 : {
5919 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1610;
5920 0 : {
5921 0 : tree res_op0;
5922 0 : res_op0 = captures[0];
5923 0 : tree res_op1;
5924 0 : {
5925 0 : tree _o1[1], _r1;
5926 0 : {
5927 0 : tree _o2[2], _r2;
5928 0 : _o2[0] = captures[4];
5929 0 : _o2[1] = captures[3];
5930 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5931 0 : _o1[0] = _r2;
5932 : }
5933 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
5934 0 : if (!_r1)
5935 0 : goto next_after_fail1610;
5936 0 : res_op1 = _r1;
5937 : }
5938 0 : tree _r;
5939 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5940 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
5941 0 : return _r;
5942 : }
5943 0 : next_after_fail1610:;
5944 : }
5945 : }
5946 0 : break;
5947 : }
5948 : default:;
5949 : }
5950 : }
5951 : break;
5952 27 : case CFN_BUILT_IN_EXP:
5953 27 : if (call_expr_nargs (_p1) == 1)
5954 : {
5955 27 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5956 27 : {
5957 27 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
5958 27 : if (flag_unsafe_math_optimizations
5959 : )
5960 : {
5961 27 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1611;
5962 27 : {
5963 27 : tree res_op0;
5964 27 : res_op0 = captures[0];
5965 27 : tree res_op1;
5966 27 : {
5967 27 : tree _o1[1], _r1;
5968 27 : {
5969 27 : tree _o2[1], _r2;
5970 27 : _o2[0] = captures[2];
5971 27 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
5972 27 : _o1[0] = _r2;
5973 : }
5974 27 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
5975 27 : if (!_r1)
5976 0 : goto next_after_fail1611;
5977 27 : res_op1 = _r1;
5978 : }
5979 27 : tree _r;
5980 27 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5981 27 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
5982 27 : return _r;
5983 : }
5984 0 : next_after_fail1611:;
5985 : }
5986 : }
5987 : }
5988 : break;
5989 24 : case CFN_BUILT_IN_EXP10F:
5990 24 : if (call_expr_nargs (_p1) == 1)
5991 : {
5992 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5993 24 : {
5994 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
5995 24 : if (flag_unsafe_math_optimizations
5996 : )
5997 : {
5998 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1612;
5999 24 : {
6000 24 : tree res_op0;
6001 24 : res_op0 = captures[0];
6002 24 : tree res_op1;
6003 24 : {
6004 24 : tree _o1[1], _r1;
6005 24 : {
6006 24 : tree _o2[1], _r2;
6007 24 : _o2[0] = captures[2];
6008 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6009 24 : _o1[0] = _r2;
6010 : }
6011 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6012 24 : if (!_r1)
6013 0 : goto next_after_fail1612;
6014 24 : res_op1 = _r1;
6015 : }
6016 24 : tree _r;
6017 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6018 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6019 24 : return _r;
6020 : }
6021 0 : next_after_fail1612:;
6022 : }
6023 : }
6024 : }
6025 : break;
6026 24 : case CFN_BUILT_IN_EXP10L:
6027 24 : if (call_expr_nargs (_p1) == 1)
6028 : {
6029 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6030 24 : {
6031 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6032 24 : if (flag_unsafe_math_optimizations
6033 : )
6034 : {
6035 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1613;
6036 24 : {
6037 24 : tree res_op0;
6038 24 : res_op0 = captures[0];
6039 24 : tree res_op1;
6040 24 : {
6041 24 : tree _o1[1], _r1;
6042 24 : {
6043 24 : tree _o2[1], _r2;
6044 24 : _o2[0] = captures[2];
6045 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6046 24 : _o1[0] = _r2;
6047 : }
6048 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6049 24 : if (!_r1)
6050 0 : goto next_after_fail1613;
6051 24 : res_op1 = _r1;
6052 : }
6053 24 : tree _r;
6054 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6055 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6056 24 : return _r;
6057 : }
6058 0 : next_after_fail1613:;
6059 : }
6060 : }
6061 : }
6062 : break;
6063 3 : case CFN_BUILT_IN_CBRT:
6064 3 : if (call_expr_nargs (_p1) == 1)
6065 : {
6066 3 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6067 3 : switch (TREE_CODE (_q30))
6068 : {
6069 2 : case RDIV_EXPR:
6070 2 : {
6071 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6072 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6073 2 : {
6074 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6075 2 : if (flag_unsafe_math_optimizations
6076 : )
6077 : {
6078 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1614;
6079 2 : {
6080 2 : tree res_op0;
6081 2 : res_op0 = captures[0];
6082 2 : tree res_op1;
6083 2 : {
6084 2 : tree _o1[1], _r1;
6085 2 : {
6086 2 : tree _o2[2], _r2;
6087 2 : _o2[0] = captures[4];
6088 2 : _o2[1] = captures[3];
6089 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6090 2 : _o1[0] = _r2;
6091 : }
6092 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6093 2 : if (!_r1)
6094 0 : goto next_after_fail1614;
6095 2 : res_op1 = _r1;
6096 : }
6097 2 : tree _r;
6098 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6099 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
6100 2 : return _r;
6101 : }
6102 0 : next_after_fail1614:;
6103 : }
6104 : }
6105 0 : break;
6106 : }
6107 : default:;
6108 : }
6109 : }
6110 : break;
6111 24 : case CFN_BUILT_IN_EXP2:
6112 24 : if (call_expr_nargs (_p1) == 1)
6113 : {
6114 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6115 24 : {
6116 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6117 24 : if (flag_unsafe_math_optimizations
6118 : )
6119 : {
6120 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1615;
6121 24 : {
6122 24 : tree res_op0;
6123 24 : res_op0 = captures[0];
6124 24 : tree res_op1;
6125 24 : {
6126 24 : tree _o1[1], _r1;
6127 24 : {
6128 24 : tree _o2[1], _r2;
6129 24 : _o2[0] = captures[2];
6130 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6131 24 : _o1[0] = _r2;
6132 : }
6133 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6134 24 : if (!_r1)
6135 0 : goto next_after_fail1615;
6136 24 : res_op1 = _r1;
6137 : }
6138 24 : tree _r;
6139 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6140 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6141 24 : return _r;
6142 : }
6143 0 : next_after_fail1615:;
6144 : }
6145 : }
6146 : }
6147 : break;
6148 25 : case CFN_BUILT_IN_EXPF:
6149 25 : if (call_expr_nargs (_p1) == 1)
6150 : {
6151 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6152 25 : {
6153 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6154 25 : if (flag_unsafe_math_optimizations
6155 : )
6156 : {
6157 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1616;
6158 25 : {
6159 25 : tree res_op0;
6160 25 : res_op0 = captures[0];
6161 25 : tree res_op1;
6162 25 : {
6163 25 : tree _o1[1], _r1;
6164 25 : {
6165 25 : tree _o2[1], _r2;
6166 25 : _o2[0] = captures[2];
6167 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6168 25 : _o1[0] = _r2;
6169 : }
6170 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6171 25 : if (!_r1)
6172 0 : goto next_after_fail1616;
6173 25 : res_op1 = _r1;
6174 : }
6175 25 : tree _r;
6176 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6177 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6178 25 : return _r;
6179 : }
6180 0 : next_after_fail1616:;
6181 : }
6182 : }
6183 : }
6184 : break;
6185 25 : case CFN_BUILT_IN_EXPL:
6186 25 : if (call_expr_nargs (_p1) == 1)
6187 : {
6188 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6189 25 : {
6190 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6191 25 : if (flag_unsafe_math_optimizations
6192 : )
6193 : {
6194 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1617;
6195 25 : {
6196 25 : tree res_op0;
6197 25 : res_op0 = captures[0];
6198 25 : tree res_op1;
6199 25 : {
6200 25 : tree _o1[1], _r1;
6201 25 : {
6202 25 : tree _o2[1], _r2;
6203 25 : _o2[0] = captures[2];
6204 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6205 25 : _o1[0] = _r2;
6206 : }
6207 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6208 25 : if (!_r1)
6209 0 : goto next_after_fail1617;
6210 25 : res_op1 = _r1;
6211 : }
6212 25 : tree _r;
6213 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6214 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6215 25 : return _r;
6216 : }
6217 0 : next_after_fail1617:;
6218 : }
6219 : }
6220 : }
6221 : break;
6222 298 : case CFN_BUILT_IN_SQRT:
6223 298 : if (call_expr_nargs (_p1) == 1)
6224 : {
6225 298 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6226 298 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6227 : {
6228 0 : {
6229 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6230 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
6231 0 : if (res) return res;
6232 : }
6233 : }
6234 298 : switch (TREE_CODE (_q30))
6235 : {
6236 2 : case RDIV_EXPR:
6237 2 : {
6238 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6239 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6240 2 : {
6241 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6242 2 : if (flag_unsafe_math_optimizations
6243 : )
6244 : {
6245 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1618;
6246 2 : {
6247 2 : tree res_op0;
6248 2 : res_op0 = captures[0];
6249 2 : tree res_op1;
6250 2 : {
6251 2 : tree _o1[1], _r1;
6252 2 : {
6253 2 : tree _o2[2], _r2;
6254 2 : _o2[0] = captures[4];
6255 2 : _o2[1] = captures[3];
6256 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6257 2 : _o1[0] = _r2;
6258 : }
6259 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6260 2 : if (!_r1)
6261 0 : goto next_after_fail1618;
6262 2 : res_op1 = _r1;
6263 : }
6264 2 : tree _r;
6265 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6266 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
6267 2 : return _r;
6268 : }
6269 0 : next_after_fail1618:;
6270 : }
6271 : }
6272 0 : break;
6273 : }
6274 : default:;
6275 : }
6276 : }
6277 : break;
6278 0 : case CFN_EXP:
6279 0 : if (call_expr_nargs (_p1) == 1)
6280 : {
6281 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6282 0 : {
6283 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6284 0 : if (flag_unsafe_math_optimizations
6285 : )
6286 : {
6287 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1619;
6288 0 : {
6289 0 : tree res_op0;
6290 0 : res_op0 = captures[0];
6291 0 : tree res_op1;
6292 0 : {
6293 0 : tree _o1[1], _r1;
6294 0 : {
6295 0 : tree _o2[1], _r2;
6296 0 : _o2[0] = captures[2];
6297 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6298 0 : _o1[0] = _r2;
6299 : }
6300 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
6301 0 : if (!_r1)
6302 0 : goto next_after_fail1619;
6303 0 : res_op1 = _r1;
6304 : }
6305 0 : tree _r;
6306 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6307 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6308 0 : return _r;
6309 : }
6310 0 : next_after_fail1619:;
6311 : }
6312 : }
6313 : }
6314 : break;
6315 24 : case CFN_BUILT_IN_POW10F:
6316 24 : if (call_expr_nargs (_p1) == 1)
6317 : {
6318 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6319 24 : {
6320 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6321 24 : if (flag_unsafe_math_optimizations
6322 : )
6323 : {
6324 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1620;
6325 24 : {
6326 24 : tree res_op0;
6327 24 : res_op0 = captures[0];
6328 24 : tree res_op1;
6329 24 : {
6330 24 : tree _o1[1], _r1;
6331 24 : {
6332 24 : tree _o2[1], _r2;
6333 24 : _o2[0] = captures[2];
6334 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6335 24 : _o1[0] = _r2;
6336 : }
6337 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6338 24 : if (!_r1)
6339 24 : goto next_after_fail1620;
6340 0 : res_op1 = _r1;
6341 : }
6342 0 : tree _r;
6343 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6344 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6345 0 : return _r;
6346 : }
6347 24 : next_after_fail1620:;
6348 : }
6349 : }
6350 : }
6351 : break;
6352 24 : case CFN_BUILT_IN_POW10L:
6353 24 : if (call_expr_nargs (_p1) == 1)
6354 : {
6355 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6356 24 : {
6357 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6358 24 : if (flag_unsafe_math_optimizations
6359 : )
6360 : {
6361 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1621;
6362 24 : {
6363 24 : tree res_op0;
6364 24 : res_op0 = captures[0];
6365 24 : tree res_op1;
6366 24 : {
6367 24 : tree _o1[1], _r1;
6368 24 : {
6369 24 : tree _o2[1], _r2;
6370 24 : _o2[0] = captures[2];
6371 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6372 24 : _o1[0] = _r2;
6373 : }
6374 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6375 24 : if (!_r1)
6376 24 : goto next_after_fail1621;
6377 0 : res_op1 = _r1;
6378 : }
6379 0 : tree _r;
6380 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6381 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6382 0 : return _r;
6383 : }
6384 24 : next_after_fail1621:;
6385 : }
6386 : }
6387 : }
6388 : break;
6389 0 : case CFN_EXP2:
6390 0 : if (call_expr_nargs (_p1) == 1)
6391 : {
6392 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6393 0 : {
6394 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6395 0 : if (flag_unsafe_math_optimizations
6396 : )
6397 : {
6398 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1622;
6399 0 : {
6400 0 : tree res_op0;
6401 0 : res_op0 = captures[0];
6402 0 : tree res_op1;
6403 0 : {
6404 0 : tree _o1[1], _r1;
6405 0 : {
6406 0 : tree _o2[1], _r2;
6407 0 : _o2[0] = captures[2];
6408 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6409 0 : _o1[0] = _r2;
6410 : }
6411 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6412 0 : if (!_r1)
6413 0 : goto next_after_fail1622;
6414 0 : res_op1 = _r1;
6415 : }
6416 0 : tree _r;
6417 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6418 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6419 0 : return _r;
6420 : }
6421 0 : next_after_fail1622:;
6422 : }
6423 : }
6424 : }
6425 : break;
6426 0 : case CFN_SQRT:
6427 0 : if (call_expr_nargs (_p1) == 1)
6428 : {
6429 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6430 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6431 : {
6432 0 : {
6433 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6434 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_SQRT);
6435 0 : if (res) return res;
6436 : }
6437 : }
6438 0 : switch (TREE_CODE (_q30))
6439 : {
6440 0 : case RDIV_EXPR:
6441 0 : {
6442 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6443 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6444 0 : {
6445 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6446 0 : if (flag_unsafe_math_optimizations
6447 : )
6448 : {
6449 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1623;
6450 0 : {
6451 0 : tree res_op0;
6452 0 : res_op0 = captures[0];
6453 0 : tree res_op1;
6454 0 : {
6455 0 : tree _o1[1], _r1;
6456 0 : {
6457 0 : tree _o2[2], _r2;
6458 0 : _o2[0] = captures[4];
6459 0 : _o2[1] = captures[3];
6460 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6461 0 : _o1[0] = _r2;
6462 : }
6463 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6464 0 : if (!_r1)
6465 0 : goto next_after_fail1623;
6466 0 : res_op1 = _r1;
6467 : }
6468 0 : tree _r;
6469 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6470 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
6471 0 : return _r;
6472 : }
6473 0 : next_after_fail1623:;
6474 : }
6475 : }
6476 0 : break;
6477 : }
6478 : default:;
6479 : }
6480 : }
6481 : break;
6482 0 : case CFN_EXP10:
6483 0 : if (call_expr_nargs (_p1) == 1)
6484 : {
6485 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6486 0 : {
6487 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6488 0 : if (flag_unsafe_math_optimizations
6489 : )
6490 : {
6491 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1624;
6492 0 : {
6493 0 : tree res_op0;
6494 0 : res_op0 = captures[0];
6495 0 : tree res_op1;
6496 0 : {
6497 0 : tree _o1[1], _r1;
6498 0 : {
6499 0 : tree _o2[1], _r2;
6500 0 : _o2[0] = captures[2];
6501 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6502 0 : _o1[0] = _r2;
6503 : }
6504 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6505 0 : if (!_r1)
6506 0 : goto next_after_fail1624;
6507 0 : res_op1 = _r1;
6508 : }
6509 0 : tree _r;
6510 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6511 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6512 0 : return _r;
6513 : }
6514 0 : next_after_fail1624:;
6515 : }
6516 : }
6517 : }
6518 : break;
6519 0 : case CFN_BUILT_IN_CBRTF:
6520 0 : if (call_expr_nargs (_p1) == 1)
6521 : {
6522 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6523 0 : switch (TREE_CODE (_q30))
6524 : {
6525 0 : case RDIV_EXPR:
6526 0 : {
6527 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6528 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6529 0 : {
6530 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6531 0 : if (flag_unsafe_math_optimizations
6532 : )
6533 : {
6534 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1625;
6535 0 : {
6536 0 : tree res_op0;
6537 0 : res_op0 = captures[0];
6538 0 : tree res_op1;
6539 0 : {
6540 0 : tree _o1[1], _r1;
6541 0 : {
6542 0 : tree _o2[2], _r2;
6543 0 : _o2[0] = captures[4];
6544 0 : _o2[1] = captures[3];
6545 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6546 0 : _o1[0] = _r2;
6547 : }
6548 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6549 0 : if (!_r1)
6550 0 : goto next_after_fail1625;
6551 0 : res_op1 = _r1;
6552 : }
6553 0 : tree _r;
6554 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6555 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
6556 0 : return _r;
6557 : }
6558 0 : next_after_fail1625:;
6559 : }
6560 : }
6561 0 : break;
6562 : }
6563 : default:;
6564 : }
6565 : }
6566 : break;
6567 0 : case CFN_BUILT_IN_CBRTL:
6568 0 : if (call_expr_nargs (_p1) == 1)
6569 : {
6570 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6571 0 : switch (TREE_CODE (_q30))
6572 : {
6573 0 : case RDIV_EXPR:
6574 0 : {
6575 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6576 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6577 0 : {
6578 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6579 0 : if (flag_unsafe_math_optimizations
6580 : )
6581 : {
6582 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1626;
6583 0 : {
6584 0 : tree res_op0;
6585 0 : res_op0 = captures[0];
6586 0 : tree res_op1;
6587 0 : {
6588 0 : tree _o1[1], _r1;
6589 0 : {
6590 0 : tree _o2[2], _r2;
6591 0 : _o2[0] = captures[4];
6592 0 : _o2[1] = captures[3];
6593 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6594 0 : _o1[0] = _r2;
6595 : }
6596 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6597 0 : if (!_r1)
6598 0 : goto next_after_fail1626;
6599 0 : res_op1 = _r1;
6600 : }
6601 0 : tree _r;
6602 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6603 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
6604 0 : return _r;
6605 : }
6606 0 : next_after_fail1626:;
6607 : }
6608 : }
6609 0 : break;
6610 : }
6611 : default:;
6612 : }
6613 : }
6614 : break;
6615 24 : case CFN_BUILT_IN_EXP10:
6616 24 : if (call_expr_nargs (_p1) == 1)
6617 : {
6618 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6619 24 : {
6620 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6621 24 : if (flag_unsafe_math_optimizations
6622 : )
6623 : {
6624 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1627;
6625 24 : {
6626 24 : tree res_op0;
6627 24 : res_op0 = captures[0];
6628 24 : tree res_op1;
6629 24 : {
6630 24 : tree _o1[1], _r1;
6631 24 : {
6632 24 : tree _o2[1], _r2;
6633 24 : _o2[0] = captures[2];
6634 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6635 24 : _o1[0] = _r2;
6636 : }
6637 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6638 24 : if (!_r1)
6639 0 : goto next_after_fail1627;
6640 24 : res_op1 = _r1;
6641 : }
6642 24 : tree _r;
6643 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6644 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6645 24 : return _r;
6646 : }
6647 0 : next_after_fail1627:;
6648 : }
6649 : }
6650 : }
6651 : break;
6652 24 : case CFN_BUILT_IN_EXP2F:
6653 24 : if (call_expr_nargs (_p1) == 1)
6654 : {
6655 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6656 24 : {
6657 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6658 24 : if (flag_unsafe_math_optimizations
6659 : )
6660 : {
6661 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1628;
6662 24 : {
6663 24 : tree res_op0;
6664 24 : res_op0 = captures[0];
6665 24 : tree res_op1;
6666 24 : {
6667 24 : tree _o1[1], _r1;
6668 24 : {
6669 24 : tree _o2[1], _r2;
6670 24 : _o2[0] = captures[2];
6671 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6672 24 : _o1[0] = _r2;
6673 : }
6674 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6675 24 : if (!_r1)
6676 0 : goto next_after_fail1628;
6677 24 : res_op1 = _r1;
6678 : }
6679 24 : tree _r;
6680 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6681 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6682 24 : return _r;
6683 : }
6684 0 : next_after_fail1628:;
6685 : }
6686 : }
6687 : }
6688 : break;
6689 24 : case CFN_BUILT_IN_EXP2L:
6690 24 : if (call_expr_nargs (_p1) == 1)
6691 : {
6692 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6693 24 : {
6694 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6695 24 : if (flag_unsafe_math_optimizations
6696 : )
6697 : {
6698 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1629;
6699 24 : {
6700 24 : tree res_op0;
6701 24 : res_op0 = captures[0];
6702 24 : tree res_op1;
6703 24 : {
6704 24 : tree _o1[1], _r1;
6705 24 : {
6706 24 : tree _o2[1], _r2;
6707 24 : _o2[0] = captures[2];
6708 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6709 24 : _o1[0] = _r2;
6710 : }
6711 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6712 24 : if (!_r1)
6713 0 : goto next_after_fail1629;
6714 24 : res_op1 = _r1;
6715 : }
6716 24 : tree _r;
6717 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6718 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6719 24 : return _r;
6720 : }
6721 0 : next_after_fail1629:;
6722 : }
6723 : }
6724 : }
6725 : break;
6726 24 : case CFN_BUILT_IN_POW10:
6727 24 : if (call_expr_nargs (_p1) == 1)
6728 : {
6729 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6730 24 : {
6731 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6732 24 : if (flag_unsafe_math_optimizations
6733 : )
6734 : {
6735 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1630;
6736 24 : {
6737 24 : tree res_op0;
6738 24 : res_op0 = captures[0];
6739 24 : tree res_op1;
6740 24 : {
6741 24 : tree _o1[1], _r1;
6742 24 : {
6743 24 : tree _o2[1], _r2;
6744 24 : _o2[0] = captures[2];
6745 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6746 24 : _o1[0] = _r2;
6747 : }
6748 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6749 24 : if (!_r1)
6750 24 : goto next_after_fail1630;
6751 0 : res_op1 = _r1;
6752 : }
6753 0 : tree _r;
6754 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6755 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
6756 0 : return _r;
6757 : }
6758 24 : next_after_fail1630:;
6759 : }
6760 : }
6761 : }
6762 : break;
6763 : default:;
6764 : }
6765 : break;
6766 5885863 : default:;
6767 : }
6768 5885863 : switch (TREE_CODE (_p0))
6769 : {
6770 189707 : case CALL_EXPR:
6771 189707 : switch (get_call_combined_fn (_p0))
6772 : {
6773 1 : case CFN_BUILT_IN_SINHF:
6774 1 : if (call_expr_nargs (_p0) == 1)
6775 : {
6776 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6777 1 : switch (TREE_CODE (_p1))
6778 : {
6779 1 : case CALL_EXPR:
6780 1 : switch (get_call_combined_fn (_p1))
6781 : {
6782 1 : case CFN_BUILT_IN_COSHF:
6783 1 : if (call_expr_nargs (_p1) == 1)
6784 : {
6785 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6786 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6787 : {
6788 1 : {
6789 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6790 1 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF);
6791 1 : if (res) return res;
6792 : }
6793 : }
6794 : }
6795 : break;
6796 : default:;
6797 : }
6798 : break;
6799 : default:;
6800 : }
6801 : }
6802 : break;
6803 1 : case CFN_BUILT_IN_SINHL:
6804 1 : if (call_expr_nargs (_p0) == 1)
6805 : {
6806 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6807 1 : switch (TREE_CODE (_p1))
6808 : {
6809 1 : case CALL_EXPR:
6810 1 : switch (get_call_combined_fn (_p1))
6811 : {
6812 1 : case CFN_BUILT_IN_COSHL:
6813 1 : if (call_expr_nargs (_p1) == 1)
6814 : {
6815 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6816 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6817 : {
6818 1 : {
6819 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6820 1 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL);
6821 1 : if (res) return res;
6822 : }
6823 : }
6824 : }
6825 : break;
6826 : default:;
6827 : }
6828 : break;
6829 : default:;
6830 : }
6831 : }
6832 : break;
6833 1 : case CFN_BUILT_IN_TANHF:
6834 1 : if (call_expr_nargs (_p0) == 1)
6835 : {
6836 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6837 1 : switch (TREE_CODE (_p1))
6838 : {
6839 1 : case CALL_EXPR:
6840 1 : switch (get_call_combined_fn (_p1))
6841 : {
6842 1 : case CFN_BUILT_IN_SINHF:
6843 1 : if (call_expr_nargs (_p1) == 1)
6844 : {
6845 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6846 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6847 : {
6848 1 : {
6849 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6850 1 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF);
6851 1 : if (res) return res;
6852 : }
6853 : }
6854 : }
6855 : break;
6856 : default:;
6857 : }
6858 : break;
6859 : default:;
6860 : }
6861 : }
6862 : break;
6863 1 : case CFN_BUILT_IN_TANHL:
6864 1 : if (call_expr_nargs (_p0) == 1)
6865 : {
6866 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6867 1 : switch (TREE_CODE (_p1))
6868 : {
6869 1 : case CALL_EXPR:
6870 1 : switch (get_call_combined_fn (_p1))
6871 : {
6872 1 : case CFN_BUILT_IN_SINHL:
6873 1 : if (call_expr_nargs (_p1) == 1)
6874 : {
6875 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6876 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6877 : {
6878 1 : {
6879 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6880 1 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL);
6881 1 : if (res) return res;
6882 : }
6883 : }
6884 : }
6885 : break;
6886 : default:;
6887 : }
6888 : break;
6889 : default:;
6890 : }
6891 : }
6892 : break;
6893 2 : case CFN_BUILT_IN_COS:
6894 2 : if (call_expr_nargs (_p0) == 1)
6895 : {
6896 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6897 2 : switch (TREE_CODE (_p1))
6898 : {
6899 2 : case CALL_EXPR:
6900 2 : switch (get_call_combined_fn (_p1))
6901 : {
6902 2 : case CFN_BUILT_IN_SIN:
6903 2 : if (call_expr_nargs (_p1) == 1)
6904 : {
6905 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6906 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6907 : {
6908 2 : {
6909 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6910 2 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
6911 2 : if (res) return res;
6912 : }
6913 : }
6914 : }
6915 : break;
6916 : default:;
6917 : }
6918 : break;
6919 : default:;
6920 : }
6921 : }
6922 : break;
6923 4 : case CFN_BUILT_IN_POW:
6924 4 : if (call_expr_nargs (_p0) == 2)
6925 : {
6926 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6927 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
6928 4 : switch (TREE_CODE (_q21))
6929 : {
6930 4 : case REAL_CST:
6931 4 : {
6932 4 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6933 : {
6934 4 : {
6935 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
6936 4 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
6937 4 : if (res) return res;
6938 : }
6939 : }
6940 : break;
6941 : }
6942 : default:;
6943 : }
6944 : }
6945 : break;
6946 86 : case CFN_BUILT_IN_SIN:
6947 86 : if (call_expr_nargs (_p0) == 1)
6948 : {
6949 86 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6950 86 : switch (TREE_CODE (_p1))
6951 : {
6952 4 : case CALL_EXPR:
6953 4 : switch (get_call_combined_fn (_p1))
6954 : {
6955 2 : case CFN_BUILT_IN_COS:
6956 2 : if (call_expr_nargs (_p1) == 1)
6957 : {
6958 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6959 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6960 : {
6961 2 : {
6962 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6963 2 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
6964 2 : if (res) return res;
6965 : }
6966 : }
6967 : }
6968 : break;
6969 2 : case CFN_BUILT_IN_TAN:
6970 2 : if (call_expr_nargs (_p1) == 1)
6971 : {
6972 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6973 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6974 : {
6975 2 : {
6976 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6977 2 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
6978 2 : if (res) return res;
6979 : }
6980 : }
6981 : }
6982 : break;
6983 : default:;
6984 : }
6985 : break;
6986 : default:;
6987 : }
6988 : }
6989 : break;
6990 2 : case CFN_BUILT_IN_TAN:
6991 2 : if (call_expr_nargs (_p0) == 1)
6992 : {
6993 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6994 2 : switch (TREE_CODE (_p1))
6995 : {
6996 2 : case CALL_EXPR:
6997 2 : switch (get_call_combined_fn (_p1))
6998 : {
6999 2 : case CFN_BUILT_IN_SIN:
7000 2 : if (call_expr_nargs (_p1) == 1)
7001 : {
7002 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7003 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7004 : {
7005 2 : {
7006 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7007 2 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
7008 2 : if (res) return res;
7009 : }
7010 : }
7011 : }
7012 : break;
7013 : default:;
7014 : }
7015 : break;
7016 : default:;
7017 : }
7018 : }
7019 : break;
7020 2 : case CFN_BUILT_IN_COSF:
7021 2 : if (call_expr_nargs (_p0) == 1)
7022 : {
7023 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7024 2 : switch (TREE_CODE (_p1))
7025 : {
7026 2 : case CALL_EXPR:
7027 2 : switch (get_call_combined_fn (_p1))
7028 : {
7029 2 : case CFN_BUILT_IN_SINF:
7030 2 : if (call_expr_nargs (_p1) == 1)
7031 : {
7032 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7033 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7034 : {
7035 2 : {
7036 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7037 2 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
7038 2 : if (res) return res;
7039 : }
7040 : }
7041 : }
7042 : break;
7043 : default:;
7044 : }
7045 : break;
7046 : default:;
7047 : }
7048 : }
7049 : break;
7050 2 : case CFN_BUILT_IN_COSL:
7051 2 : if (call_expr_nargs (_p0) == 1)
7052 : {
7053 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7054 2 : switch (TREE_CODE (_p1))
7055 : {
7056 2 : case CALL_EXPR:
7057 2 : switch (get_call_combined_fn (_p1))
7058 : {
7059 2 : case CFN_BUILT_IN_SINL:
7060 2 : if (call_expr_nargs (_p1) == 1)
7061 : {
7062 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7063 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7064 : {
7065 2 : {
7066 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7067 2 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
7068 2 : if (res) return res;
7069 : }
7070 : }
7071 : }
7072 : break;
7073 : default:;
7074 : }
7075 : break;
7076 : default:;
7077 : }
7078 : }
7079 : break;
7080 1 : case CFN_BUILT_IN_POWF:
7081 1 : if (call_expr_nargs (_p0) == 2)
7082 : {
7083 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7084 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7085 1 : switch (TREE_CODE (_q21))
7086 : {
7087 1 : case REAL_CST:
7088 1 : {
7089 1 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7090 : {
7091 0 : {
7092 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7093 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7094 0 : if (res) return res;
7095 : }
7096 : }
7097 : break;
7098 : }
7099 : default:;
7100 : }
7101 : }
7102 : break;
7103 0 : case CFN_BUILT_IN_POWL:
7104 0 : if (call_expr_nargs (_p0) == 2)
7105 : {
7106 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7107 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7108 0 : switch (TREE_CODE (_q21))
7109 : {
7110 0 : case REAL_CST:
7111 0 : {
7112 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7113 : {
7114 0 : {
7115 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7116 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7117 0 : if (res) return res;
7118 : }
7119 : }
7120 : break;
7121 : }
7122 : default:;
7123 : }
7124 : }
7125 : break;
7126 4 : case CFN_BUILT_IN_SINF:
7127 4 : if (call_expr_nargs (_p0) == 1)
7128 : {
7129 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7130 4 : switch (TREE_CODE (_p1))
7131 : {
7132 4 : case CALL_EXPR:
7133 4 : switch (get_call_combined_fn (_p1))
7134 : {
7135 2 : case CFN_BUILT_IN_COSF:
7136 2 : if (call_expr_nargs (_p1) == 1)
7137 : {
7138 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7139 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7140 : {
7141 2 : {
7142 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7143 2 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
7144 2 : if (res) return res;
7145 : }
7146 : }
7147 : }
7148 : break;
7149 2 : case CFN_BUILT_IN_TANF:
7150 2 : if (call_expr_nargs (_p1) == 1)
7151 : {
7152 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7153 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7154 : {
7155 2 : {
7156 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7157 2 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
7158 2 : if (res) return res;
7159 : }
7160 : }
7161 : }
7162 : break;
7163 : default:;
7164 : }
7165 : break;
7166 : default:;
7167 : }
7168 : }
7169 : break;
7170 135 : case CFN_BUILT_IN_SINH:
7171 135 : if (call_expr_nargs (_p0) == 1)
7172 : {
7173 135 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7174 135 : switch (TREE_CODE (_p1))
7175 : {
7176 3 : case CALL_EXPR:
7177 3 : switch (get_call_combined_fn (_p1))
7178 : {
7179 3 : case CFN_BUILT_IN_COSH:
7180 3 : if (call_expr_nargs (_p1) == 1)
7181 : {
7182 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7183 3 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7184 : {
7185 3 : {
7186 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7187 3 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH);
7188 3 : if (res) return res;
7189 : }
7190 : }
7191 : }
7192 : break;
7193 : default:;
7194 : }
7195 : break;
7196 : default:;
7197 : }
7198 : }
7199 : break;
7200 4 : case CFN_BUILT_IN_SINL:
7201 4 : if (call_expr_nargs (_p0) == 1)
7202 : {
7203 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7204 4 : switch (TREE_CODE (_p1))
7205 : {
7206 4 : case CALL_EXPR:
7207 4 : switch (get_call_combined_fn (_p1))
7208 : {
7209 2 : case CFN_BUILT_IN_COSL:
7210 2 : if (call_expr_nargs (_p1) == 1)
7211 : {
7212 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7213 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7214 : {
7215 2 : {
7216 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7217 2 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
7218 2 : if (res) return res;
7219 : }
7220 : }
7221 : }
7222 : break;
7223 2 : case CFN_BUILT_IN_TANL:
7224 2 : if (call_expr_nargs (_p1) == 1)
7225 : {
7226 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7227 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7228 : {
7229 2 : {
7230 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7231 2 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
7232 2 : if (res) return res;
7233 : }
7234 : }
7235 : }
7236 : break;
7237 : default:;
7238 : }
7239 : break;
7240 : default:;
7241 : }
7242 : }
7243 : break;
7244 2 : case CFN_BUILT_IN_TANF:
7245 2 : if (call_expr_nargs (_p0) == 1)
7246 : {
7247 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7248 2 : switch (TREE_CODE (_p1))
7249 : {
7250 2 : case CALL_EXPR:
7251 2 : switch (get_call_combined_fn (_p1))
7252 : {
7253 2 : case CFN_BUILT_IN_SINF:
7254 2 : if (call_expr_nargs (_p1) == 1)
7255 : {
7256 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7257 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7258 : {
7259 2 : {
7260 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7261 2 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
7262 2 : if (res) return res;
7263 : }
7264 : }
7265 : }
7266 : break;
7267 : default:;
7268 : }
7269 : break;
7270 : default:;
7271 : }
7272 : }
7273 : break;
7274 1 : case CFN_BUILT_IN_TANH:
7275 1 : if (call_expr_nargs (_p0) == 1)
7276 : {
7277 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7278 1 : switch (TREE_CODE (_p1))
7279 : {
7280 1 : case CALL_EXPR:
7281 1 : switch (get_call_combined_fn (_p1))
7282 : {
7283 1 : case CFN_BUILT_IN_SINH:
7284 1 : if (call_expr_nargs (_p1) == 1)
7285 : {
7286 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7287 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7288 : {
7289 1 : {
7290 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7291 1 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH);
7292 1 : if (res) return res;
7293 : }
7294 : }
7295 : }
7296 : break;
7297 : default:;
7298 : }
7299 : break;
7300 : default:;
7301 : }
7302 : }
7303 : break;
7304 2 : case CFN_BUILT_IN_TANL:
7305 2 : if (call_expr_nargs (_p0) == 1)
7306 : {
7307 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7308 2 : switch (TREE_CODE (_p1))
7309 : {
7310 2 : case CALL_EXPR:
7311 2 : switch (get_call_combined_fn (_p1))
7312 : {
7313 2 : case CFN_BUILT_IN_SINL:
7314 2 : if (call_expr_nargs (_p1) == 1)
7315 : {
7316 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7317 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7318 : {
7319 2 : {
7320 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7321 2 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
7322 2 : if (res) return res;
7323 : }
7324 : }
7325 : }
7326 : break;
7327 : default:;
7328 : }
7329 : break;
7330 : default:;
7331 : }
7332 : }
7333 : break;
7334 0 : case CFN_COS:
7335 0 : if (call_expr_nargs (_p0) == 1)
7336 : {
7337 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7338 0 : switch (TREE_CODE (_p1))
7339 : {
7340 0 : case CALL_EXPR:
7341 0 : switch (get_call_combined_fn (_p1))
7342 : {
7343 0 : case CFN_SIN:
7344 0 : if (call_expr_nargs (_p1) == 1)
7345 : {
7346 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7347 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7348 : {
7349 0 : {
7350 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7351 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_COS, CFN_SIN, CFN_TAN);
7352 0 : if (res) return res;
7353 : }
7354 : }
7355 : }
7356 : break;
7357 : default:;
7358 : }
7359 : break;
7360 : default:;
7361 : }
7362 : }
7363 : break;
7364 0 : case CFN_POW:
7365 0 : if (call_expr_nargs (_p0) == 2)
7366 : {
7367 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7368 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7369 0 : switch (TREE_CODE (_q21))
7370 : {
7371 0 : case REAL_CST:
7372 0 : {
7373 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7374 : {
7375 0 : {
7376 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7377 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_POW);
7378 0 : if (res) return res;
7379 : }
7380 : }
7381 : break;
7382 : }
7383 : default:;
7384 : }
7385 : }
7386 : break;
7387 0 : case CFN_SIN:
7388 0 : if (call_expr_nargs (_p0) == 1)
7389 : {
7390 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7391 0 : switch (TREE_CODE (_p1))
7392 : {
7393 0 : case CALL_EXPR:
7394 0 : switch (get_call_combined_fn (_p1))
7395 : {
7396 0 : case CFN_COS:
7397 0 : if (call_expr_nargs (_p1) == 1)
7398 : {
7399 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7400 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7401 : {
7402 0 : {
7403 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7404 0 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_COS, CFN_TAN);
7405 0 : if (res) return res;
7406 : }
7407 : }
7408 : }
7409 : break;
7410 0 : case CFN_TAN:
7411 0 : if (call_expr_nargs (_p1) == 1)
7412 : {
7413 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7414 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7415 : {
7416 0 : {
7417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7418 0 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_TAN, CFN_COS);
7419 0 : if (res) return res;
7420 : }
7421 : }
7422 : }
7423 : break;
7424 : default:;
7425 : }
7426 : break;
7427 : default:;
7428 : }
7429 : }
7430 : break;
7431 0 : case CFN_TAN:
7432 0 : if (call_expr_nargs (_p0) == 1)
7433 : {
7434 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7435 0 : switch (TREE_CODE (_p1))
7436 : {
7437 0 : case CALL_EXPR:
7438 0 : switch (get_call_combined_fn (_p1))
7439 : {
7440 0 : case CFN_SIN:
7441 0 : if (call_expr_nargs (_p1) == 1)
7442 : {
7443 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7444 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7445 : {
7446 0 : {
7447 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7448 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_SIN, CFN_COS);
7449 0 : if (res) return res;
7450 : }
7451 : }
7452 : }
7453 : break;
7454 : default:;
7455 : }
7456 : break;
7457 : default:;
7458 : }
7459 : }
7460 : break;
7461 0 : case CFN_SINH:
7462 0 : if (call_expr_nargs (_p0) == 1)
7463 : {
7464 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7465 0 : switch (TREE_CODE (_p1))
7466 : {
7467 0 : case CALL_EXPR:
7468 0 : switch (get_call_combined_fn (_p1))
7469 : {
7470 0 : case CFN_COSH:
7471 0 : if (call_expr_nargs (_p1) == 1)
7472 : {
7473 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7474 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7475 : {
7476 0 : {
7477 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7478 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_SINH, CFN_COSH, CFN_TANH);
7479 0 : if (res) return res;
7480 : }
7481 : }
7482 : }
7483 : break;
7484 : default:;
7485 : }
7486 : break;
7487 : default:;
7488 : }
7489 : }
7490 : break;
7491 0 : case CFN_TANH:
7492 0 : if (call_expr_nargs (_p0) == 1)
7493 : {
7494 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7495 0 : switch (TREE_CODE (_p1))
7496 : {
7497 0 : case CALL_EXPR:
7498 0 : switch (get_call_combined_fn (_p1))
7499 : {
7500 0 : case CFN_SINH:
7501 0 : if (call_expr_nargs (_p1) == 1)
7502 : {
7503 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7504 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7505 : {
7506 0 : {
7507 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7508 0 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_TANH, CFN_SINH, CFN_COSH);
7509 0 : if (res) return res;
7510 : }
7511 : }
7512 : }
7513 : break;
7514 : default:;
7515 : }
7516 : break;
7517 : default:;
7518 : }
7519 : }
7520 : break;
7521 : default:;
7522 : }
7523 : break;
7524 5885829 : default:;
7525 : }
7526 5885829 : switch (TREE_CODE (_p1))
7527 : {
7528 789057 : case CALL_EXPR:
7529 789057 : switch (get_call_combined_fn (_p1))
7530 : {
7531 22 : case CFN_BUILT_IN_POW:
7532 22 : if (call_expr_nargs (_p1) == 2)
7533 : {
7534 22 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7535 22 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7536 22 : {
7537 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7538 22 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
7539 22 : if (res) return res;
7540 : }
7541 : }
7542 : break;
7543 2 : case CFN_BUILT_IN_POWF:
7544 2 : if (call_expr_nargs (_p1) == 2)
7545 : {
7546 2 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7547 2 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7548 2 : {
7549 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7550 2 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7551 2 : if (res) return res;
7552 : }
7553 : }
7554 : break;
7555 0 : case CFN_BUILT_IN_POWL:
7556 0 : if (call_expr_nargs (_p1) == 2)
7557 : {
7558 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7559 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7560 0 : {
7561 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7562 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7563 0 : if (res) return res;
7564 : }
7565 : }
7566 : break;
7567 0 : case CFN_POW:
7568 0 : if (call_expr_nargs (_p1) == 2)
7569 : {
7570 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7571 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7572 0 : {
7573 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7574 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_POW);
7575 0 : if (res) return res;
7576 : }
7577 : }
7578 : break;
7579 : default:;
7580 : }
7581 : break;
7582 : default:;
7583 : }
7584 : return NULL_TREE;
7585 : }
7586 :
7587 : tree
7588 6611039 : generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7589 : {
7590 6611039 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7591 6611039 : switch (TREE_CODE (_p0))
7592 : {
7593 2001 : case RDIV_EXPR:
7594 2001 : {
7595 2001 : tree _q20 = TREE_OPERAND (_p0, 0);
7596 2001 : tree _q21 = TREE_OPERAND (_p0, 1);
7597 2001 : switch (TREE_CODE (_q20))
7598 : {
7599 46 : case REAL_CST:
7600 46 : {
7601 46 : if (real_zerop (_p1))
7602 : {
7603 2 : {
7604 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7605 2 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
7606 2 : if (res) return res;
7607 : }
7608 : }
7609 : break;
7610 : }
7611 : default:;
7612 : }
7613 : break;
7614 : }
7615 1208 : case TRUNC_MOD_EXPR:
7616 1208 : {
7617 1208 : tree _q20 = TREE_OPERAND (_p0, 0);
7618 1208 : tree _q21 = TREE_OPERAND (_p0, 1);
7619 1208 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7620 : {
7621 26 : {
7622 26 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7623 26 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
7624 26 : if (res) return res;
7625 : }
7626 : }
7627 : break;
7628 : }
7629 31439 : case MULT_EXPR:
7630 31439 : {
7631 31439 : tree _q20 = TREE_OPERAND (_p0, 0);
7632 31439 : tree _q21 = TREE_OPERAND (_p0, 1);
7633 31439 : switch (TREE_CODE (_p1))
7634 : {
7635 6969 : case MULT_EXPR:
7636 6969 : {
7637 6969 : tree _q50 = TREE_OPERAND (_p1, 0);
7638 6969 : tree _q51 = TREE_OPERAND (_p1, 1);
7639 6969 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7640 : {
7641 4709 : {
7642 4709 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7643 4709 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
7644 4709 : if (res) return res;
7645 : }
7646 : }
7647 2798 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7648 : {
7649 0 : {
7650 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7651 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
7652 0 : if (res) return res;
7653 : }
7654 : }
7655 2798 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7656 : {
7657 0 : {
7658 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7659 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
7660 0 : if (res) return res;
7661 : }
7662 : }
7663 2798 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7664 : {
7665 1 : {
7666 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7667 1 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
7668 1 : if (res) return res;
7669 : }
7670 : }
7671 : break;
7672 : }
7673 : default:;
7674 : }
7675 : break;
7676 : }
7677 1004379 : CASE_CONVERT:
7678 1004379 : {
7679 1004379 : tree _q20 = TREE_OPERAND (_p0, 0);
7680 1004379 : switch (TREE_CODE (_q20))
7681 : {
7682 157 : case EXACT_DIV_EXPR:
7683 157 : {
7684 157 : tree _q30 = TREE_OPERAND (_q20, 0);
7685 157 : tree _q31 = TREE_OPERAND (_q20, 1);
7686 157 : switch (TREE_CODE (_q31))
7687 : {
7688 157 : case INTEGER_CST:
7689 157 : {
7690 157 : switch (TREE_CODE (_p1))
7691 : {
7692 43 : CASE_CONVERT:
7693 43 : {
7694 43 : tree _q60 = TREE_OPERAND (_p1, 0);
7695 43 : switch (TREE_CODE (_q60))
7696 : {
7697 0 : case EXACT_DIV_EXPR:
7698 0 : {
7699 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7700 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7701 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7702 : {
7703 0 : {
7704 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7705 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, GE_EXPR);
7706 0 : if (res) return res;
7707 : }
7708 : }
7709 : break;
7710 : }
7711 : default:;
7712 : }
7713 : break;
7714 : }
7715 : default:;
7716 : }
7717 : break;
7718 : }
7719 : default:;
7720 : }
7721 : break;
7722 : }
7723 : default:;
7724 : }
7725 : break;
7726 : }
7727 8045 : case EXACT_DIV_EXPR:
7728 8045 : {
7729 8045 : tree _q20 = TREE_OPERAND (_p0, 0);
7730 8045 : tree _q21 = TREE_OPERAND (_p0, 1);
7731 8045 : switch (TREE_CODE (_q21))
7732 : {
7733 8045 : case INTEGER_CST:
7734 8045 : {
7735 8045 : switch (TREE_CODE (_p1))
7736 : {
7737 0 : case EXACT_DIV_EXPR:
7738 0 : {
7739 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7740 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7741 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7742 : {
7743 0 : {
7744 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7745 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, GE_EXPR);
7746 0 : if (res) return res;
7747 : }
7748 : }
7749 : break;
7750 : }
7751 : default:;
7752 : }
7753 : break;
7754 : }
7755 : default:;
7756 : }
7757 : break;
7758 : }
7759 41474 : case TRUNC_DIV_EXPR:
7760 41474 : {
7761 41474 : tree _q20 = TREE_OPERAND (_p0, 0);
7762 41474 : tree _q21 = TREE_OPERAND (_p0, 1);
7763 41474 : switch (TREE_CODE (_q21))
7764 : {
7765 40944 : case INTEGER_CST:
7766 40944 : {
7767 40944 : switch (TREE_CODE (_p1))
7768 : {
7769 40026 : case INTEGER_CST:
7770 40026 : {
7771 40026 : {
7772 40026 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7773 40026 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, GE_EXPR);
7774 40026 : if (res) return res;
7775 : }
7776 0 : break;
7777 : }
7778 : default:;
7779 : }
7780 : break;
7781 : }
7782 : default:;
7783 : }
7784 : break;
7785 : }
7786 790321 : case PLUS_EXPR:
7787 790321 : {
7788 790321 : tree _q20 = TREE_OPERAND (_p0, 0);
7789 790321 : tree _q21 = TREE_OPERAND (_p0, 1);
7790 790321 : switch (TREE_CODE (_p1))
7791 : {
7792 52217 : case PLUS_EXPR:
7793 52217 : {
7794 52217 : tree _q50 = TREE_OPERAND (_p1, 0);
7795 52217 : tree _q51 = TREE_OPERAND (_p1, 1);
7796 52217 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7797 : {
7798 1430 : {
7799 1430 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7800 1430 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
7801 1430 : if (res) return res;
7802 : }
7803 : }
7804 52217 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7805 : {
7806 17 : {
7807 17 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7808 17 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
7809 17 : if (res) return res;
7810 : }
7811 : }
7812 52217 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7813 : {
7814 16 : {
7815 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7816 16 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
7817 16 : if (res) return res;
7818 : }
7819 : }
7820 52217 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7821 : {
7822 961 : {
7823 961 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7824 961 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
7825 961 : if (res) return res;
7826 : }
7827 : }
7828 : break;
7829 : }
7830 790273 : default:;
7831 : }
7832 790273 : switch (TREE_CODE (_q21))
7833 : {
7834 677719 : case INTEGER_CST:
7835 677719 : {
7836 677719 : switch (TREE_CODE (_p1))
7837 : {
7838 15112 : case PLUS_EXPR:
7839 15112 : {
7840 15112 : tree _q50 = TREE_OPERAND (_p1, 0);
7841 15112 : tree _q51 = TREE_OPERAND (_p1, 1);
7842 15112 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7843 : {
7844 1426 : {
7845 1426 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7846 1426 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GE_EXPR);
7847 1426 : if (res) return res;
7848 : }
7849 : }
7850 : break;
7851 : }
7852 : default:;
7853 : }
7854 : break;
7855 : }
7856 790273 : default:;
7857 : }
7858 790273 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7859 : {
7860 53794 : {
7861 53794 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7862 53794 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR);
7863 53794 : if (res) return res;
7864 : }
7865 : }
7866 756118 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7867 : {
7868 24573 : {
7869 24573 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7870 24573 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR);
7871 24573 : if (res) return res;
7872 : }
7873 : }
7874 : break;
7875 : }
7876 118135 : case MINUS_EXPR:
7877 118135 : {
7878 118135 : tree _q20 = TREE_OPERAND (_p0, 0);
7879 118135 : tree _q21 = TREE_OPERAND (_p0, 1);
7880 118135 : switch (TREE_CODE (_p1))
7881 : {
7882 1400 : case MINUS_EXPR:
7883 1400 : {
7884 1400 : tree _q50 = TREE_OPERAND (_p1, 0);
7885 1400 : tree _q51 = TREE_OPERAND (_p1, 1);
7886 1400 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7887 : {
7888 14 : {
7889 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7890 14 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GE_EXPR);
7891 14 : if (res) return res;
7892 : }
7893 : }
7894 1400 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7895 : {
7896 22 : {
7897 22 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7898 22 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
7899 22 : if (res) return res;
7900 : }
7901 : }
7902 : break;
7903 : }
7904 : default:;
7905 : }
7906 : break;
7907 : }
7908 2374 : case POINTER_DIFF_EXPR:
7909 2374 : {
7910 2374 : tree _q20 = TREE_OPERAND (_p0, 0);
7911 2374 : tree _q21 = TREE_OPERAND (_p0, 1);
7912 2374 : switch (TREE_CODE (_p1))
7913 : {
7914 32 : case POINTER_DIFF_EXPR:
7915 32 : {
7916 32 : tree _q50 = TREE_OPERAND (_p1, 0);
7917 32 : tree _q51 = TREE_OPERAND (_p1, 1);
7918 32 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7919 : {
7920 0 : {
7921 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7922 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, GE_EXPR);
7923 0 : if (res) return res;
7924 : }
7925 : }
7926 32 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7927 : {
7928 0 : {
7929 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
7930 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, GE_EXPR);
7931 0 : if (res) return res;
7932 : }
7933 : }
7934 : break;
7935 : }
7936 : default:;
7937 : }
7938 : break;
7939 : }
7940 6529067 : default:;
7941 : }
7942 6529067 : switch (TREE_CODE (_p1))
7943 : {
7944 58998 : case PLUS_EXPR:
7945 58998 : {
7946 58998 : tree _q30 = TREE_OPERAND (_p1, 0);
7947 58998 : tree _q31 = TREE_OPERAND (_p1, 1);
7948 58998 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7949 : {
7950 0 : {
7951 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7952 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
7953 0 : if (res) return res;
7954 : }
7955 : }
7956 58998 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7957 : {
7958 0 : {
7959 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7960 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
7961 0 : if (res) return res;
7962 : }
7963 : }
7964 : break;
7965 : }
7966 2408 : case MINUS_EXPR:
7967 2408 : {
7968 2408 : tree _q30 = TREE_OPERAND (_p1, 0);
7969 2408 : tree _q31 = TREE_OPERAND (_p1, 1);
7970 2408 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7971 : {
7972 0 : {
7973 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7974 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GE_EXPR);
7975 0 : if (res) return res;
7976 : }
7977 : }
7978 : break;
7979 : }
7980 6529067 : default:;
7981 : }
7982 6529067 : switch (TREE_CODE (_p0))
7983 : {
7984 118135 : case MINUS_EXPR:
7985 118135 : {
7986 118135 : tree _q20 = TREE_OPERAND (_p0, 0);
7987 118135 : tree _q21 = TREE_OPERAND (_p0, 1);
7988 118135 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7989 : {
7990 2744 : {
7991 2744 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
7992 2744 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LE_EXPR);
7993 2744 : if (res) return res;
7994 : }
7995 : }
7996 : break;
7997 : }
7998 1065 : case BIT_IOR_EXPR:
7999 1065 : {
8000 1065 : tree _q20 = TREE_OPERAND (_p0, 0);
8001 1065 : tree _q21 = TREE_OPERAND (_p0, 1);
8002 1065 : if (tree_expr_nonnegative_p (_q20))
8003 : {
8004 222 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8005 : {
8006 0 : {
8007 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8008 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8009 0 : if (res) return res;
8010 : }
8011 : }
8012 : }
8013 1065 : if (tree_expr_nonnegative_p (_q21))
8014 : {
8015 296 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8016 : {
8017 0 : {
8018 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8019 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8020 0 : if (res) return res;
8021 : }
8022 : }
8023 : }
8024 : break;
8025 : }
8026 6529066 : default:;
8027 : }
8028 6529066 : switch (TREE_CODE (_p1))
8029 : {
8030 195 : case BIT_AND_EXPR:
8031 195 : {
8032 195 : tree _q30 = TREE_OPERAND (_p1, 0);
8033 195 : tree _q31 = TREE_OPERAND (_p1, 1);
8034 195 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8035 : {
8036 0 : if (tree_expr_nonnegative_p (_q30))
8037 : {
8038 0 : {
8039 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8040 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8041 0 : if (res) return res;
8042 : }
8043 : }
8044 : }
8045 195 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8046 : {
8047 0 : if (tree_expr_nonnegative_p (_q31))
8048 : {
8049 0 : {
8050 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8051 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8052 0 : if (res) return res;
8053 : }
8054 : }
8055 : }
8056 : break;
8057 : }
8058 6529066 : default:;
8059 : }
8060 6529066 : switch (TREE_CODE (_p0))
8061 : {
8062 838 : case MAX_EXPR:
8063 838 : {
8064 838 : tree _q20 = TREE_OPERAND (_p0, 0);
8065 838 : tree _q21 = TREE_OPERAND (_p0, 1);
8066 838 : switch (TREE_CODE (_p1))
8067 : {
8068 0 : case MIN_EXPR:
8069 0 : {
8070 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8071 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8072 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8073 : {
8074 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8075 : {
8076 0 : {
8077 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8078 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LE_EXPR);
8079 0 : if (res) return res;
8080 : }
8081 : }
8082 : }
8083 : break;
8084 : }
8085 : default:;
8086 : }
8087 : break;
8088 : }
8089 2966 : case MIN_EXPR:
8090 2966 : {
8091 2966 : tree _q20 = TREE_OPERAND (_p0, 0);
8092 2966 : tree _q21 = TREE_OPERAND (_p0, 1);
8093 2966 : switch (TREE_CODE (_p1))
8094 : {
8095 27 : case MAX_EXPR:
8096 27 : {
8097 27 : tree _q50 = TREE_OPERAND (_p1, 0);
8098 27 : tree _q51 = TREE_OPERAND (_p1, 1);
8099 27 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8100 : {
8101 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8102 : {
8103 0 : {
8104 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8105 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
8106 0 : if (res) return res;
8107 : }
8108 : }
8109 : }
8110 : break;
8111 : }
8112 2966 : default:;
8113 : }
8114 2966 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8115 : {
8116 0 : {
8117 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8118 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8119 0 : if (res) return res;
8120 : }
8121 : }
8122 2966 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8123 : {
8124 1 : {
8125 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8126 1 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8127 1 : if (res) return res;
8128 : }
8129 : }
8130 : break;
8131 : }
8132 6529065 : default:;
8133 : }
8134 6529065 : switch (TREE_CODE (_p1))
8135 : {
8136 202 : case MAX_EXPR:
8137 202 : {
8138 202 : tree _q30 = TREE_OPERAND (_p1, 0);
8139 202 : tree _q31 = TREE_OPERAND (_p1, 1);
8140 202 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8141 : {
8142 0 : {
8143 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8144 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8145 0 : if (res) return res;
8146 : }
8147 : }
8148 202 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8149 : {
8150 0 : {
8151 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8152 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8153 0 : if (res) return res;
8154 : }
8155 : }
8156 : break;
8157 : }
8158 1771 : case MIN_EXPR:
8159 1771 : {
8160 1771 : tree _q30 = TREE_OPERAND (_p1, 0);
8161 1771 : tree _q31 = TREE_OPERAND (_p1, 1);
8162 1771 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8163 : {
8164 0 : {
8165 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8166 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8167 0 : if (res) return res;
8168 : }
8169 : }
8170 1771 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8171 : {
8172 0 : {
8173 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8174 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8175 0 : if (res) return res;
8176 : }
8177 : }
8178 : break;
8179 : }
8180 6529065 : default:;
8181 : }
8182 6529065 : switch (TREE_CODE (_p0))
8183 : {
8184 838 : case MAX_EXPR:
8185 838 : {
8186 838 : tree _q20 = TREE_OPERAND (_p0, 0);
8187 838 : tree _q21 = TREE_OPERAND (_p0, 1);
8188 838 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8189 : {
8190 0 : {
8191 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8192 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8193 0 : if (res) return res;
8194 : }
8195 : }
8196 838 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8197 : {
8198 2 : {
8199 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8200 2 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8201 2 : if (res) return res;
8202 : }
8203 : }
8204 836 : switch (TREE_CODE (_q21))
8205 : {
8206 759 : case INTEGER_CST:
8207 759 : {
8208 759 : switch (TREE_CODE (_p1))
8209 : {
8210 0 : case INTEGER_CST:
8211 0 : {
8212 0 : {
8213 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8214 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
8215 0 : if (res) return res;
8216 : }
8217 0 : break;
8218 : }
8219 : default:;
8220 : }
8221 : break;
8222 : }
8223 : default:;
8224 : }
8225 : break;
8226 : }
8227 2965 : case MIN_EXPR:
8228 2965 : {
8229 2965 : tree _q20 = TREE_OPERAND (_p0, 0);
8230 2965 : tree _q21 = TREE_OPERAND (_p0, 1);
8231 2965 : switch (TREE_CODE (_q21))
8232 : {
8233 995 : case INTEGER_CST:
8234 995 : {
8235 995 : switch (TREE_CODE (_p1))
8236 : {
8237 0 : case INTEGER_CST:
8238 0 : {
8239 0 : {
8240 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8241 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
8242 0 : if (res) return res;
8243 : }
8244 0 : break;
8245 : }
8246 : default:;
8247 : }
8248 : break;
8249 : }
8250 : default:;
8251 : }
8252 : break;
8253 : }
8254 1004379 : CASE_CONVERT:
8255 1004379 : {
8256 1004379 : tree _q20 = TREE_OPERAND (_p0, 0);
8257 1004379 : switch (TREE_CODE (_q20))
8258 : {
8259 0 : case GE_EXPR:
8260 0 : {
8261 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8262 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8263 0 : if (tree_zero_one_valued_p (_q30))
8264 : {
8265 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
8266 : {
8267 0 : {
8268 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
8269 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GE_EXPR);
8270 0 : if (res) return res;
8271 : }
8272 : }
8273 : }
8274 : break;
8275 : }
8276 : default:;
8277 : }
8278 : break;
8279 : }
8280 41 : case GE_EXPR:
8281 41 : {
8282 41 : tree _q20 = TREE_OPERAND (_p0, 0);
8283 41 : tree _q21 = TREE_OPERAND (_p0, 1);
8284 41 : if (tree_zero_one_valued_p (_q20))
8285 : {
8286 15 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8287 : {
8288 3 : {
8289 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8290 3 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GE_EXPR);
8291 3 : if (res) return res;
8292 : }
8293 : }
8294 : }
8295 : break;
8296 : }
8297 6 : case VEC_COND_EXPR:
8298 6 : {
8299 6 : tree _q20 = TREE_OPERAND (_p0, 0);
8300 6 : tree _q21 = TREE_OPERAND (_p0, 1);
8301 6 : tree _q22 = TREE_OPERAND (_p0, 2);
8302 6 : switch (TREE_CODE (_p1))
8303 : {
8304 0 : case VEC_COND_EXPR:
8305 0 : {
8306 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8307 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8308 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8309 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8310 : {
8311 0 : {
8312 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8313 0 : if (VECTOR_TYPE_P (type)
8314 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8315 0 : || types_match (type, TREE_TYPE (captures[2]))
8316 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8317 : || (optimize_vectors_before_lowering_p ()
8318 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8319 : )
8320 : {
8321 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1642;
8322 0 : {
8323 0 : tree res_op0;
8324 0 : res_op0 = captures[1];
8325 0 : tree res_op1;
8326 0 : {
8327 0 : tree _o1[2], _r1;
8328 0 : _o1[0] = captures[2];
8329 0 : _o1[1] = captures[5];
8330 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8331 0 : if (EXPR_P (_r1))
8332 0 : goto next_after_fail1642;
8333 0 : res_op1 = _r1;
8334 : }
8335 0 : tree res_op2;
8336 0 : {
8337 0 : tree _o1[2], _r1;
8338 0 : _o1[0] = captures[3];
8339 0 : _o1[1] = captures[6];
8340 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8341 0 : if (EXPR_P (_r1))
8342 0 : goto next_after_fail1642;
8343 0 : res_op2 = _r1;
8344 : }
8345 0 : tree _r;
8346 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8347 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
8348 0 : return _r;
8349 : }
8350 0 : next_after_fail1642:;
8351 : }
8352 : }
8353 : }
8354 : break;
8355 : }
8356 6 : default:;
8357 : }
8358 6 : {
8359 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8360 6 : if (VECTOR_TYPE_P (type)
8361 6 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8362 6 : || types_match (type, TREE_TYPE (captures[2]))
8363 6 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8364 : || (optimize_vectors_before_lowering_p ()
8365 2 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8366 : )
8367 : {
8368 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1643;
8369 6 : {
8370 6 : if (! tree_invariant_p (captures[4])) goto next_after_fail1643;
8371 5 : tree res_op0;
8372 5 : res_op0 = captures[1];
8373 5 : tree res_op1;
8374 5 : {
8375 5 : tree _o1[2], _r1;
8376 5 : _o1[0] = captures[2];
8377 5 : _o1[1] = unshare_expr (captures[4]);
8378 5 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8379 5 : if (EXPR_P (_r1))
8380 1 : goto next_after_fail1643;
8381 4 : res_op1 = _r1;
8382 : }
8383 4 : tree res_op2;
8384 4 : {
8385 4 : tree _o1[2], _r1;
8386 4 : _o1[0] = captures[3];
8387 4 : _o1[1] = captures[4];
8388 4 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8389 4 : if (EXPR_P (_r1))
8390 0 : goto next_after_fail1643;
8391 4 : res_op2 = _r1;
8392 : }
8393 4 : tree _r;
8394 4 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8395 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
8396 4 : return _r;
8397 : }
8398 2 : next_after_fail1643:;
8399 : }
8400 : }
8401 2 : break;
8402 : }
8403 6529056 : default:;
8404 : }
8405 6529056 : switch (TREE_CODE (_p1))
8406 : {
8407 0 : case VEC_COND_EXPR:
8408 0 : {
8409 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8410 0 : tree _q31 = TREE_OPERAND (_p1, 1);
8411 0 : tree _q32 = TREE_OPERAND (_p1, 2);
8412 0 : {
8413 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8414 0 : if (VECTOR_TYPE_P (type)
8415 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8416 0 : || types_match (type, TREE_TYPE (captures[3]))
8417 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8418 : || (optimize_vectors_before_lowering_p ()
8419 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8420 : )
8421 : {
8422 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1644;
8423 0 : {
8424 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1644;
8425 0 : tree res_op0;
8426 0 : res_op0 = captures[2];
8427 0 : tree res_op1;
8428 0 : {
8429 0 : tree _o1[2], _r1;
8430 0 : _o1[0] = unshare_expr (captures[0]);
8431 0 : _o1[1] = captures[3];
8432 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8433 0 : if (EXPR_P (_r1))
8434 0 : goto next_after_fail1644;
8435 0 : res_op1 = _r1;
8436 : }
8437 0 : tree res_op2;
8438 0 : {
8439 0 : tree _o1[2], _r1;
8440 0 : _o1[0] = captures[0];
8441 0 : _o1[1] = captures[4];
8442 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8443 0 : if (EXPR_P (_r1))
8444 0 : goto next_after_fail1644;
8445 0 : res_op2 = _r1;
8446 : }
8447 0 : tree _r;
8448 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8449 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
8450 0 : return _r;
8451 : }
8452 0 : next_after_fail1644:;
8453 : }
8454 : }
8455 0 : break;
8456 : }
8457 6529056 : default:;
8458 : }
8459 6529056 : if (uniform_integer_cst_p (_p1))
8460 : {
8461 3291107 : {
8462 3291107 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8463 3291107 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
8464 3291107 : if (res) return res;
8465 : }
8466 : }
8467 5051834 : switch (TREE_CODE (_p0))
8468 : {
8469 23825 : case MULT_EXPR:
8470 23825 : {
8471 23825 : tree _q20 = TREE_OPERAND (_p0, 0);
8472 23825 : tree _q21 = TREE_OPERAND (_p0, 1);
8473 23825 : switch (TREE_CODE (_q21))
8474 : {
8475 19906 : case INTEGER_CST:
8476 19906 : {
8477 19906 : if (integer_zerop (_p1))
8478 : {
8479 2746 : {
8480 2746 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8481 2746 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8482 2746 : if (res) return res;
8483 : }
8484 : }
8485 : break;
8486 : }
8487 : default:;
8488 : }
8489 : break;
8490 : }
8491 5051542 : default:;
8492 : }
8493 5051542 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8494 : {
8495 37628 : {
8496 37628 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8497 37628 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GE_EXPR);
8498 37628 : if (res) return res;
8499 : }
8500 : }
8501 5013951 : switch (TREE_CODE (_p0))
8502 : {
8503 422 : case BIT_NOT_EXPR:
8504 422 : {
8505 422 : tree _q20 = TREE_OPERAND (_p0, 0);
8506 422 : switch (TREE_CODE (_p1))
8507 : {
8508 1 : case BIT_NOT_EXPR:
8509 1 : {
8510 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8511 1 : {
8512 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8513 1 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GE_EXPR);
8514 1 : if (res) return res;
8515 : }
8516 0 : break;
8517 : }
8518 421 : default:;
8519 : }
8520 421 : {
8521 421 : tree _p1_pops[1];
8522 421 : if (tree_nop_convert (_p1, _p1_pops))
8523 : {
8524 50 : tree _q40 = _p1_pops[0];
8525 50 : switch (TREE_CODE (_q40))
8526 : {
8527 0 : case BIT_NOT_EXPR:
8528 0 : {
8529 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8530 0 : {
8531 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8532 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GE_EXPR);
8533 0 : if (res) return res;
8534 : }
8535 0 : break;
8536 : }
8537 : default:;
8538 : }
8539 : }
8540 : }
8541 421 : if (CONSTANT_CLASS_P (_p1))
8542 : {
8543 98 : {
8544 98 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8545 98 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8546 98 : if (res) return res;
8547 : }
8548 : }
8549 : break;
8550 : }
8551 5013852 : default:;
8552 : }
8553 5013852 : {
8554 5013852 : tree _p0_pops[1];
8555 5013852 : if (tree_nop_convert (_p0, _p0_pops))
8556 : {
8557 226503 : tree _q20 = _p0_pops[0];
8558 226503 : switch (TREE_CODE (_q20))
8559 : {
8560 4 : case BIT_NOT_EXPR:
8561 4 : {
8562 4 : tree _q30 = TREE_OPERAND (_q20, 0);
8563 4 : switch (TREE_CODE (_p1))
8564 : {
8565 0 : case BIT_NOT_EXPR:
8566 0 : {
8567 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8568 0 : {
8569 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8570 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR);
8571 0 : if (res) return res;
8572 : }
8573 0 : break;
8574 : }
8575 4 : default:;
8576 : }
8577 4 : {
8578 4 : tree _p1_pops[1];
8579 4 : if (tree_nop_convert (_p1, _p1_pops))
8580 : {
8581 0 : tree _q50 = _p1_pops[0];
8582 0 : switch (TREE_CODE (_q50))
8583 : {
8584 0 : case BIT_NOT_EXPR:
8585 0 : {
8586 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8587 0 : {
8588 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8589 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR);
8590 0 : if (res) return res;
8591 : }
8592 0 : break;
8593 : }
8594 : default:;
8595 : }
8596 : }
8597 : }
8598 4 : if (CONSTANT_CLASS_P (_p1))
8599 : {
8600 0 : {
8601 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8602 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8603 0 : if (res) return res;
8604 : }
8605 : }
8606 : break;
8607 : }
8608 : default:;
8609 : }
8610 : }
8611 : }
8612 5013852 : switch (TREE_CODE (_p1))
8613 : {
8614 627759 : case REAL_CST:
8615 627759 : {
8616 627759 : {
8617 627759 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8618 627759 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GE_EXPR);
8619 627759 : if (res) return res;
8620 : }
8621 627690 : break;
8622 : }
8623 5013783 : default:;
8624 : }
8625 5013783 : switch (TREE_CODE (_p0))
8626 : {
8627 674729 : case PLUS_EXPR:
8628 674729 : {
8629 674729 : tree _q20 = TREE_OPERAND (_p0, 0);
8630 674729 : tree _q21 = TREE_OPERAND (_p0, 1);
8631 674729 : switch (TREE_CODE (_q21))
8632 : {
8633 168 : case REAL_CST:
8634 168 : {
8635 168 : switch (TREE_CODE (_p1))
8636 : {
8637 20 : case REAL_CST:
8638 20 : {
8639 20 : {
8640 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8641 20 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR);
8642 20 : if (res) return res;
8643 : }
8644 20 : break;
8645 : }
8646 : default:;
8647 : }
8648 : break;
8649 : }
8650 562280 : case INTEGER_CST:
8651 562280 : {
8652 562280 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8653 : {
8654 16008 : {
8655 16008 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8656 16008 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8657 16008 : if (res) return res;
8658 : }
8659 : }
8660 : break;
8661 : }
8662 : default:;
8663 : }
8664 : break;
8665 : }
8666 58470 : case MINUS_EXPR:
8667 58470 : {
8668 58470 : tree _q20 = TREE_OPERAND (_p0, 0);
8669 58470 : tree _q21 = TREE_OPERAND (_p0, 1);
8670 58470 : switch (TREE_CODE (_q21))
8671 : {
8672 31 : case REAL_CST:
8673 31 : {
8674 31 : switch (TREE_CODE (_p1))
8675 : {
8676 31 : case REAL_CST:
8677 31 : {
8678 31 : {
8679 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8680 31 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, MINUS_EXPR, GE_EXPR);
8681 31 : if (res) return res;
8682 : }
8683 31 : break;
8684 : }
8685 : default:;
8686 : }
8687 : break;
8688 : }
8689 58470 : default:;
8690 : }
8691 58470 : switch (TREE_CODE (_q20))
8692 : {
8693 24 : case REAL_CST:
8694 24 : {
8695 24 : switch (TREE_CODE (_p1))
8696 : {
8697 0 : case REAL_CST:
8698 0 : {
8699 0 : {
8700 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8701 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, GE_EXPR);
8702 0 : if (res) return res;
8703 : }
8704 0 : break;
8705 : }
8706 : default:;
8707 : }
8708 : break;
8709 : }
8710 : default:;
8711 : }
8712 : break;
8713 : }
8714 39338 : case FLOAT_EXPR:
8715 39338 : {
8716 39338 : tree _q20 = TREE_OPERAND (_p0, 0);
8717 39338 : switch (TREE_CODE (_p1))
8718 : {
8719 7 : case FLOAT_EXPR:
8720 7 : {
8721 7 : tree _q40 = TREE_OPERAND (_p1, 0);
8722 7 : {
8723 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8724 7 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8725 7 : if (res) return res;
8726 : }
8727 0 : break;
8728 : }
8729 37859 : case REAL_CST:
8730 37859 : {
8731 37859 : {
8732 37859 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8733 37859 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8734 37859 : if (res) return res;
8735 : }
8736 18966 : break;
8737 : }
8738 : default:;
8739 : }
8740 : break;
8741 : }
8742 8006 : case EXACT_DIV_EXPR:
8743 8006 : {
8744 8006 : tree _q20 = TREE_OPERAND (_p0, 0);
8745 8006 : tree _q21 = TREE_OPERAND (_p0, 1);
8746 8006 : switch (TREE_CODE (_q21))
8747 : {
8748 8006 : case INTEGER_CST:
8749 8006 : {
8750 8006 : switch (TREE_CODE (_p1))
8751 : {
8752 0 : case INTEGER_CST:
8753 0 : {
8754 0 : {
8755 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8756 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GE_EXPR);
8757 0 : if (res) return res;
8758 : }
8759 0 : break;
8760 : }
8761 : default:;
8762 : }
8763 : break;
8764 : }
8765 : default:;
8766 : }
8767 : break;
8768 : }
8769 599518 : CASE_CONVERT:
8770 599518 : {
8771 599518 : tree _q20 = TREE_OPERAND (_p0, 0);
8772 599518 : switch (TREE_CODE (_q20))
8773 : {
8774 157 : case EXACT_DIV_EXPR:
8775 157 : {
8776 157 : tree _q30 = TREE_OPERAND (_q20, 0);
8777 157 : tree _q31 = TREE_OPERAND (_q20, 1);
8778 157 : switch (TREE_CODE (_q31))
8779 : {
8780 157 : case INTEGER_CST:
8781 157 : {
8782 157 : switch (TREE_CODE (_p1))
8783 : {
8784 0 : case INTEGER_CST:
8785 0 : {
8786 0 : {
8787 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8788 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
8789 0 : if (res) return res;
8790 : }
8791 0 : break;
8792 : }
8793 : default:;
8794 : }
8795 : break;
8796 : }
8797 : default:;
8798 : }
8799 : break;
8800 : }
8801 599518 : default:;
8802 : }
8803 599518 : switch (TREE_CODE (_p1))
8804 : {
8805 94701 : CASE_CONVERT:
8806 94701 : {
8807 94701 : tree _q40 = TREE_OPERAND (_p1, 0);
8808 94701 : {
8809 94701 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8810 94701 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, GE_EXPR);
8811 94701 : if (res) return res;
8812 : }
8813 58034 : break;
8814 : }
8815 562851 : default:;
8816 : }
8817 562851 : {
8818 562851 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8819 562851 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, GE_EXPR);
8820 562851 : if (res) return res;
8821 : }
8822 309042 : switch (TREE_CODE (_q20))
8823 : {
8824 1449 : case ADDR_EXPR:
8825 1449 : {
8826 1449 : switch (TREE_CODE (_p1))
8827 : {
8828 1378 : CASE_CONVERT:
8829 1378 : {
8830 1378 : tree _q40 = TREE_OPERAND (_p1, 0);
8831 1378 : switch (TREE_CODE (_q40))
8832 : {
8833 1378 : case ADDR_EXPR:
8834 1378 : {
8835 1378 : {
8836 1378 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8837 1378 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GE_EXPR);
8838 1378 : if (res) return res;
8839 : }
8840 178 : break;
8841 : }
8842 : default:;
8843 : }
8844 : break;
8845 : }
8846 7 : case ADDR_EXPR:
8847 7 : {
8848 7 : {
8849 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8850 7 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GE_EXPR);
8851 7 : if (res) return res;
8852 : }
8853 0 : break;
8854 : }
8855 : default:;
8856 : }
8857 : break;
8858 : }
8859 307835 : default:;
8860 : }
8861 307835 : if (uniform_integer_cst_p (_p1))
8862 : {
8863 97300 : {
8864 97300 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8865 97300 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR);
8866 97300 : if (res) return res;
8867 : }
8868 : }
8869 : break;
8870 : }
8871 787 : case NEGATE_EXPR:
8872 787 : {
8873 787 : tree _q20 = TREE_OPERAND (_p0, 0);
8874 787 : switch (TREE_CODE (_p1))
8875 : {
8876 0 : case NEGATE_EXPR:
8877 0 : {
8878 0 : tree _q40 = TREE_OPERAND (_p1, 0);
8879 0 : {
8880 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8881 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8882 0 : if (res) return res;
8883 : }
8884 0 : break;
8885 : }
8886 787 : default:;
8887 : }
8888 787 : if (CONSTANT_CLASS_P (_p1))
8889 : {
8890 270 : {
8891 270 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8892 270 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8893 270 : if (res) return res;
8894 : }
8895 : }
8896 : break;
8897 : }
8898 7630 : case ADDR_EXPR:
8899 7630 : {
8900 7630 : switch (TREE_CODE (_p1))
8901 : {
8902 0 : CASE_CONVERT:
8903 0 : {
8904 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8905 0 : switch (TREE_CODE (_q30))
8906 : {
8907 0 : case ADDR_EXPR:
8908 0 : {
8909 0 : {
8910 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8911 0 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, GE_EXPR);
8912 0 : if (res) return res;
8913 : }
8914 0 : break;
8915 : }
8916 : default:;
8917 : }
8918 : break;
8919 : }
8920 7262 : case ADDR_EXPR:
8921 7262 : {
8922 7262 : {
8923 7262 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8924 7262 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, GE_EXPR);
8925 7262 : if (res) return res;
8926 : }
8927 92 : break;
8928 : }
8929 : default:;
8930 : }
8931 : break;
8932 : }
8933 227561 : case CALL_EXPR:
8934 227561 : switch (get_call_combined_fn (_p0))
8935 : {
8936 2 : case CFN_BUILT_IN_SQRTF:
8937 2 : if (call_expr_nargs (_p0) == 1)
8938 : {
8939 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8940 2 : switch (TREE_CODE (_p1))
8941 : {
8942 2 : case REAL_CST:
8943 2 : {
8944 2 : {
8945 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8946 2 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
8947 2 : if (res) return res;
8948 : }
8949 0 : break;
8950 : }
8951 0 : case CALL_EXPR:
8952 0 : switch (get_call_combined_fn (_p1))
8953 : {
8954 0 : case CFN_BUILT_IN_SQRTF:
8955 0 : if (call_expr_nargs (_p1) == 1)
8956 : {
8957 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8958 0 : {
8959 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8960 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
8961 0 : if (res) return res;
8962 : }
8963 : }
8964 : break;
8965 : default:;
8966 : }
8967 : break;
8968 : default:;
8969 : }
8970 : }
8971 : break;
8972 0 : case CFN_BUILT_IN_SQRTL:
8973 0 : if (call_expr_nargs (_p0) == 1)
8974 : {
8975 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8976 0 : switch (TREE_CODE (_p1))
8977 : {
8978 0 : case REAL_CST:
8979 0 : {
8980 0 : {
8981 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8982 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
8983 0 : if (res) return res;
8984 : }
8985 0 : break;
8986 : }
8987 0 : case CALL_EXPR:
8988 0 : switch (get_call_combined_fn (_p1))
8989 : {
8990 0 : case CFN_BUILT_IN_SQRTL:
8991 0 : if (call_expr_nargs (_p1) == 1)
8992 : {
8993 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8994 0 : {
8995 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8996 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
8997 0 : if (res) return res;
8998 : }
8999 : }
9000 : break;
9001 : default:;
9002 : }
9003 : break;
9004 : default:;
9005 : }
9006 : }
9007 : break;
9008 1 : case CFN_BUILT_IN_SQRT:
9009 1 : if (call_expr_nargs (_p0) == 1)
9010 : {
9011 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9012 1 : switch (TREE_CODE (_p1))
9013 : {
9014 1 : case REAL_CST:
9015 1 : {
9016 1 : {
9017 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9018 1 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
9019 1 : if (res) return res;
9020 : }
9021 1 : break;
9022 : }
9023 0 : case CALL_EXPR:
9024 0 : switch (get_call_combined_fn (_p1))
9025 : {
9026 0 : case CFN_BUILT_IN_SQRT:
9027 0 : if (call_expr_nargs (_p1) == 1)
9028 : {
9029 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9030 0 : {
9031 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9032 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
9033 0 : if (res) return res;
9034 : }
9035 : }
9036 : break;
9037 : default:;
9038 : }
9039 : break;
9040 : default:;
9041 : }
9042 : }
9043 : break;
9044 0 : case CFN_SQRT:
9045 0 : if (call_expr_nargs (_p0) == 1)
9046 : {
9047 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9048 0 : switch (TREE_CODE (_p1))
9049 : {
9050 0 : case REAL_CST:
9051 0 : {
9052 0 : {
9053 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9054 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9055 0 : if (res) return res;
9056 : }
9057 0 : break;
9058 : }
9059 0 : case CALL_EXPR:
9060 0 : switch (get_call_combined_fn (_p1))
9061 : {
9062 0 : case CFN_SQRT:
9063 0 : if (call_expr_nargs (_p1) == 1)
9064 : {
9065 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9066 0 : {
9067 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9068 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9069 0 : if (res) return res;
9070 : }
9071 : }
9072 : break;
9073 : default:;
9074 : }
9075 : break;
9076 : default:;
9077 : }
9078 : }
9079 : break;
9080 : default:;
9081 : }
9082 : break;
9083 4669582 : default:;
9084 : }
9085 4669582 : if (uniform_integer_cst_p (_p1))
9086 : {
9087 1549446 : {
9088 1549446 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9089 1549446 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GE_EXPR);
9090 1549446 : if (res) return res;
9091 : }
9092 : }
9093 4373078 : switch (TREE_CODE (_p0))
9094 : {
9095 296796 : CASE_CONVERT:
9096 296796 : {
9097 296796 : tree _q20 = TREE_OPERAND (_p0, 0);
9098 296796 : switch (TREE_CODE (_q20))
9099 : {
9100 31851 : case PLUS_EXPR:
9101 31851 : {
9102 31851 : tree _q30 = TREE_OPERAND (_q20, 0);
9103 31851 : tree _q31 = TREE_OPERAND (_q20, 1);
9104 31851 : switch (TREE_CODE (_q30))
9105 : {
9106 23139 : CASE_CONVERT:
9107 23139 : {
9108 23139 : tree _q40 = TREE_OPERAND (_q30, 0);
9109 23139 : switch (TREE_CODE (_q31))
9110 : {
9111 23138 : case INTEGER_CST:
9112 23138 : {
9113 23138 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
9114 : {
9115 132 : {
9116 132 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
9117 132 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9118 132 : if (res) return res;
9119 : }
9120 : }
9121 : break;
9122 : }
9123 : default:;
9124 : }
9125 : break;
9126 : }
9127 : default:;
9128 : }
9129 : break;
9130 : }
9131 : default:;
9132 : }
9133 : break;
9134 : }
9135 4373018 : default:;
9136 : }
9137 4373018 : switch (TREE_CODE (_p1))
9138 : {
9139 220525 : CASE_CONVERT:
9140 220525 : {
9141 220525 : tree _q30 = TREE_OPERAND (_p1, 0);
9142 220525 : switch (TREE_CODE (_q30))
9143 : {
9144 266 : case PLUS_EXPR:
9145 266 : {
9146 266 : tree _q40 = TREE_OPERAND (_q30, 0);
9147 266 : tree _q41 = TREE_OPERAND (_q30, 1);
9148 266 : switch (TREE_CODE (_q40))
9149 : {
9150 204 : CASE_CONVERT:
9151 204 : {
9152 204 : tree _q50 = TREE_OPERAND (_q40, 0);
9153 204 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9154 : {
9155 0 : switch (TREE_CODE (_q41))
9156 : {
9157 0 : case INTEGER_CST:
9158 0 : {
9159 0 : {
9160 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
9161 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9162 0 : if (res) return res;
9163 : }
9164 0 : break;
9165 : }
9166 : default:;
9167 : }
9168 : }
9169 : break;
9170 : }
9171 : default:;
9172 : }
9173 : break;
9174 : }
9175 : default:;
9176 : }
9177 : break;
9178 : }
9179 58998 : case PLUS_EXPR:
9180 58998 : {
9181 58998 : tree _q30 = TREE_OPERAND (_p1, 0);
9182 58998 : tree _q31 = TREE_OPERAND (_p1, 1);
9183 58998 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9184 : {
9185 0 : switch (TREE_CODE (_q31))
9186 : {
9187 0 : case INTEGER_CST:
9188 0 : {
9189 0 : {
9190 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
9191 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9192 0 : if (res) return res;
9193 : }
9194 0 : break;
9195 : }
9196 : default:;
9197 : }
9198 : }
9199 : break;
9200 : }
9201 2408 : case MINUS_EXPR:
9202 2408 : {
9203 2408 : tree _q30 = TREE_OPERAND (_p1, 0);
9204 2408 : tree _q31 = TREE_OPERAND (_p1, 1);
9205 2408 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9206 : {
9207 0 : {
9208 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9209 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LE_EXPR);
9210 0 : if (res) return res;
9211 : }
9212 : }
9213 : break;
9214 : }
9215 4373018 : default:;
9216 : }
9217 4373018 : switch (TREE_CODE (_p0))
9218 : {
9219 587776 : case PLUS_EXPR:
9220 587776 : {
9221 587776 : tree _q20 = TREE_OPERAND (_p0, 0);
9222 587776 : tree _q21 = TREE_OPERAND (_p0, 1);
9223 587776 : switch (TREE_CODE (_q20))
9224 : {
9225 141 : case MINUS_EXPR:
9226 141 : {
9227 141 : tree _q30 = TREE_OPERAND (_q20, 0);
9228 141 : tree _q31 = TREE_OPERAND (_q20, 1);
9229 141 : if (integer_minus_onep (_q21))
9230 : {
9231 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9232 : {
9233 1 : {
9234 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9235 1 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GE_EXPR);
9236 1 : if (res) return res;
9237 : }
9238 : }
9239 : }
9240 : break;
9241 : }
9242 : default:;
9243 : }
9244 : break;
9245 : }
9246 4373017 : default:;
9247 : }
9248 4373017 : switch (TREE_CODE (_p1))
9249 : {
9250 0 : case REALPART_EXPR:
9251 0 : {
9252 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9253 0 : switch (TREE_CODE (_q30))
9254 : {
9255 0 : case CALL_EXPR:
9256 0 : switch (get_call_combined_fn (_q30))
9257 : {
9258 0 : case CFN_SUB_OVERFLOW:
9259 0 : if (call_expr_nargs (_q30) == 2)
9260 : {
9261 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
9262 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
9263 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9264 : {
9265 0 : {
9266 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
9267 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
9268 0 : if (res) return res;
9269 : }
9270 : }
9271 : }
9272 : break;
9273 : default:;
9274 : }
9275 : break;
9276 : default:;
9277 : }
9278 : break;
9279 : }
9280 4373017 : default:;
9281 : }
9282 4373017 : switch (TREE_CODE (_p0))
9283 : {
9284 0 : case REALPART_EXPR:
9285 0 : {
9286 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9287 0 : switch (TREE_CODE (_q20))
9288 : {
9289 0 : case CALL_EXPR:
9290 0 : switch (get_call_combined_fn (_q20))
9291 : {
9292 0 : case CFN_ADD_OVERFLOW:
9293 0 : if (call_expr_nargs (_q20) == 2)
9294 : {
9295 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9296 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
9297 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9298 : {
9299 0 : {
9300 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
9301 0 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9302 0 : if (res) return res;
9303 : }
9304 : }
9305 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9306 : {
9307 0 : {
9308 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
9309 0 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9310 0 : if (res) return res;
9311 : }
9312 : }
9313 : }
9314 : break;
9315 : default:;
9316 : }
9317 : break;
9318 : default:;
9319 : }
9320 : break;
9321 : }
9322 1441 : case TRUNC_DIV_EXPR:
9323 1441 : {
9324 1441 : tree _q20 = TREE_OPERAND (_p0, 0);
9325 1441 : tree _q21 = TREE_OPERAND (_p0, 1);
9326 1441 : if (integer_all_onesp (_q20))
9327 : {
9328 33 : {
9329 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
9330 33 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9331 33 : if (res) return res;
9332 : }
9333 : }
9334 : break;
9335 : }
9336 22077 : case MULT_EXPR:
9337 22077 : {
9338 22077 : tree _q20 = TREE_OPERAND (_p0, 0);
9339 22077 : tree _q21 = TREE_OPERAND (_p0, 1);
9340 22077 : switch (TREE_CODE (_q21))
9341 : {
9342 305 : case REAL_CST:
9343 305 : {
9344 305 : switch (TREE_CODE (_p1))
9345 : {
9346 43 : case REAL_CST:
9347 43 : {
9348 43 : {
9349 43 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9350 43 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9351 43 : if (res) return res;
9352 : }
9353 43 : break;
9354 : }
9355 : default:;
9356 : }
9357 : break;
9358 : }
9359 : default:;
9360 : }
9361 : break;
9362 : }
9363 151 : case REAL_CST:
9364 151 : {
9365 151 : switch (TREE_CODE (_p1))
9366 : {
9367 0 : case CALL_EXPR:
9368 0 : switch (get_call_combined_fn (_p1))
9369 : {
9370 0 : case CFN_BUILT_IN_EXP:
9371 0 : if (call_expr_nargs (_p1) == 1)
9372 : {
9373 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9374 0 : {
9375 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9376 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9377 0 : if (res) return res;
9378 : }
9379 : }
9380 : break;
9381 0 : case CFN_BUILT_IN_LOG:
9382 0 : if (call_expr_nargs (_p1) == 1)
9383 : {
9384 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9385 0 : {
9386 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9387 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9388 0 : if (res) return res;
9389 : }
9390 : }
9391 : break;
9392 0 : case CFN_BUILT_IN_EXP10F:
9393 0 : if (call_expr_nargs (_p1) == 1)
9394 : {
9395 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9396 0 : {
9397 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9398 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9399 0 : if (res) return res;
9400 : }
9401 : }
9402 : break;
9403 0 : case CFN_BUILT_IN_EXP10L:
9404 0 : if (call_expr_nargs (_p1) == 1)
9405 : {
9406 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9407 0 : {
9408 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9409 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9410 0 : if (res) return res;
9411 : }
9412 : }
9413 : break;
9414 0 : case CFN_BUILT_IN_EXP2:
9415 0 : if (call_expr_nargs (_p1) == 1)
9416 : {
9417 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9418 0 : {
9419 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9420 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9421 0 : if (res) return res;
9422 : }
9423 : }
9424 : break;
9425 0 : case CFN_BUILT_IN_EXPF:
9426 0 : if (call_expr_nargs (_p1) == 1)
9427 : {
9428 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9429 0 : {
9430 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9431 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9432 0 : if (res) return res;
9433 : }
9434 : }
9435 : break;
9436 0 : case CFN_BUILT_IN_EXPL:
9437 0 : if (call_expr_nargs (_p1) == 1)
9438 : {
9439 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9440 0 : {
9441 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9442 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9443 0 : if (res) return res;
9444 : }
9445 : }
9446 : break;
9447 0 : case CFN_BUILT_IN_LOG2:
9448 0 : if (call_expr_nargs (_p1) == 1)
9449 : {
9450 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9451 0 : {
9452 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9453 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9454 0 : if (res) return res;
9455 : }
9456 : }
9457 : break;
9458 0 : case CFN_BUILT_IN_LOGF:
9459 0 : if (call_expr_nargs (_p1) == 1)
9460 : {
9461 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9462 0 : {
9463 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9464 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9465 0 : if (res) return res;
9466 : }
9467 : }
9468 : break;
9469 0 : case CFN_BUILT_IN_LOGL:
9470 0 : if (call_expr_nargs (_p1) == 1)
9471 : {
9472 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9473 0 : {
9474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9475 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9476 0 : if (res) return res;
9477 : }
9478 : }
9479 : break;
9480 0 : case CFN_BUILT_IN_LOG10F:
9481 0 : if (call_expr_nargs (_p1) == 1)
9482 : {
9483 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9484 0 : {
9485 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9486 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9487 0 : if (res) return res;
9488 : }
9489 : }
9490 : break;
9491 0 : case CFN_BUILT_IN_LOG10L:
9492 0 : if (call_expr_nargs (_p1) == 1)
9493 : {
9494 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9495 0 : {
9496 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9497 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9498 0 : if (res) return res;
9499 : }
9500 : }
9501 : break;
9502 0 : case CFN_EXP:
9503 0 : if (call_expr_nargs (_p1) == 1)
9504 : {
9505 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9506 0 : {
9507 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9508 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9509 0 : if (res) return res;
9510 : }
9511 : }
9512 : break;
9513 0 : case CFN_LOG:
9514 0 : if (call_expr_nargs (_p1) == 1)
9515 : {
9516 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9517 0 : {
9518 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9519 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9520 0 : if (res) return res;
9521 : }
9522 : }
9523 : break;
9524 0 : case CFN_EXP2:
9525 0 : if (call_expr_nargs (_p1) == 1)
9526 : {
9527 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9528 0 : {
9529 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9530 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9531 0 : if (res) return res;
9532 : }
9533 : }
9534 : break;
9535 0 : case CFN_LOG2:
9536 0 : if (call_expr_nargs (_p1) == 1)
9537 : {
9538 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9539 0 : {
9540 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9541 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9542 0 : if (res) return res;
9543 : }
9544 : }
9545 : break;
9546 0 : case CFN_EXP10:
9547 0 : if (call_expr_nargs (_p1) == 1)
9548 : {
9549 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9550 0 : {
9551 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9552 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9553 0 : if (res) return res;
9554 : }
9555 : }
9556 : break;
9557 0 : case CFN_LOG10:
9558 0 : if (call_expr_nargs (_p1) == 1)
9559 : {
9560 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9561 0 : {
9562 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9563 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9564 0 : if (res) return res;
9565 : }
9566 : }
9567 : break;
9568 0 : case CFN_BUILT_IN_EXP10:
9569 0 : if (call_expr_nargs (_p1) == 1)
9570 : {
9571 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9572 0 : {
9573 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9574 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9575 0 : if (res) return res;
9576 : }
9577 : }
9578 : break;
9579 0 : case CFN_BUILT_IN_EXP2F:
9580 0 : if (call_expr_nargs (_p1) == 1)
9581 : {
9582 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9583 0 : {
9584 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9585 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9586 0 : if (res) return res;
9587 : }
9588 : }
9589 : break;
9590 0 : case CFN_BUILT_IN_EXP2L:
9591 0 : if (call_expr_nargs (_p1) == 1)
9592 : {
9593 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9594 0 : {
9595 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9596 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9597 0 : if (res) return res;
9598 : }
9599 : }
9600 : break;
9601 0 : case CFN_BUILT_IN_LOG10:
9602 0 : if (call_expr_nargs (_p1) == 1)
9603 : {
9604 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9605 0 : {
9606 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9607 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9608 0 : if (res) return res;
9609 : }
9610 : }
9611 : break;
9612 0 : case CFN_BUILT_IN_LOG2F:
9613 0 : if (call_expr_nargs (_p1) == 1)
9614 : {
9615 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9616 0 : {
9617 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9618 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9619 0 : if (res) return res;
9620 : }
9621 : }
9622 : break;
9623 0 : case CFN_BUILT_IN_LOG2L:
9624 0 : if (call_expr_nargs (_p1) == 1)
9625 : {
9626 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9627 0 : {
9628 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9629 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9630 0 : if (res) return res;
9631 : }
9632 : }
9633 : break;
9634 : default:;
9635 : }
9636 : break;
9637 : default:;
9638 : }
9639 : break;
9640 : }
9641 587775 : case PLUS_EXPR:
9642 587775 : {
9643 587775 : tree _q20 = TREE_OPERAND (_p0, 0);
9644 587775 : tree _q21 = TREE_OPERAND (_p0, 1);
9645 587775 : switch (TREE_CODE (_q21))
9646 : {
9647 475326 : case INTEGER_CST:
9648 475326 : {
9649 475326 : switch (TREE_CODE (_p1))
9650 : {
9651 116450 : case INTEGER_CST:
9652 116450 : {
9653 116450 : {
9654 116450 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9655 116450 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR, LE_EXPR);
9656 116450 : if (res) return res;
9657 : }
9658 56338 : break;
9659 : }
9660 : default:;
9661 : }
9662 : break;
9663 : }
9664 : default:;
9665 : }
9666 : break;
9667 : }
9668 58026 : case MINUS_EXPR:
9669 58026 : {
9670 58026 : tree _q20 = TREE_OPERAND (_p0, 0);
9671 58026 : tree _q21 = TREE_OPERAND (_p0, 1);
9672 58026 : switch (TREE_CODE (_q21))
9673 : {
9674 7 : case INTEGER_CST:
9675 7 : {
9676 7 : switch (TREE_CODE (_p1))
9677 : {
9678 7 : case INTEGER_CST:
9679 7 : {
9680 7 : {
9681 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9682 7 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR, LE_EXPR);
9683 7 : if (res) return res;
9684 : }
9685 0 : break;
9686 : }
9687 : default:;
9688 : }
9689 : break;
9690 : }
9691 58019 : default:;
9692 : }
9693 58019 : switch (TREE_CODE (_q20))
9694 : {
9695 1584 : case INTEGER_CST:
9696 1584 : {
9697 1584 : switch (TREE_CODE (_p1))
9698 : {
9699 547 : case INTEGER_CST:
9700 547 : {
9701 547 : {
9702 547 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9703 547 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9704 547 : if (res) return res;
9705 : }
9706 0 : break;
9707 : }
9708 : default:;
9709 : }
9710 : break;
9711 : }
9712 : default:;
9713 : }
9714 : break;
9715 : }
9716 227389 : case CALL_EXPR:
9717 227389 : switch (get_call_combined_fn (_p0))
9718 : {
9719 1 : case CFN_BUILT_IN_CTZ:
9720 1 : if (call_expr_nargs (_p0) == 1)
9721 : {
9722 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9723 1 : switch (TREE_CODE (_p1))
9724 : {
9725 1 : case INTEGER_CST:
9726 1 : {
9727 1 : {
9728 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9729 1 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9730 1 : if (res) return res;
9731 : }
9732 0 : break;
9733 : }
9734 : default:;
9735 : }
9736 : }
9737 : break;
9738 1 : case CFN_BUILT_IN_EXP:
9739 1 : if (call_expr_nargs (_p0) == 1)
9740 : {
9741 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9742 1 : switch (TREE_CODE (_p1))
9743 : {
9744 1 : case REAL_CST:
9745 1 : {
9746 1 : {
9747 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9748 1 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9749 1 : if (res) return res;
9750 : }
9751 1 : break;
9752 : }
9753 : default:;
9754 : }
9755 : }
9756 : break;
9757 1 : case CFN_BUILT_IN_LOG:
9758 1 : if (call_expr_nargs (_p0) == 1)
9759 : {
9760 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9761 1 : switch (TREE_CODE (_p1))
9762 : {
9763 0 : case REAL_CST:
9764 0 : {
9765 0 : {
9766 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9767 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9768 0 : if (res) return res;
9769 : }
9770 0 : break;
9771 : }
9772 : default:;
9773 : }
9774 : }
9775 : break;
9776 0 : case CFN_BUILT_IN_EXP10F:
9777 0 : if (call_expr_nargs (_p0) == 1)
9778 : {
9779 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9780 0 : switch (TREE_CODE (_p1))
9781 : {
9782 0 : case REAL_CST:
9783 0 : {
9784 0 : {
9785 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9786 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
9787 0 : if (res) return res;
9788 : }
9789 0 : break;
9790 : }
9791 : default:;
9792 : }
9793 : }
9794 : break;
9795 0 : case CFN_BUILT_IN_EXP10L:
9796 0 : if (call_expr_nargs (_p0) == 1)
9797 : {
9798 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9799 0 : switch (TREE_CODE (_p1))
9800 : {
9801 0 : case REAL_CST:
9802 0 : {
9803 0 : {
9804 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9805 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
9806 0 : if (res) return res;
9807 : }
9808 0 : break;
9809 : }
9810 : default:;
9811 : }
9812 : }
9813 : break;
9814 0 : case CFN_BUILT_IN_CTZL:
9815 0 : if (call_expr_nargs (_p0) == 1)
9816 : {
9817 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9818 0 : switch (TREE_CODE (_p1))
9819 : {
9820 0 : case INTEGER_CST:
9821 0 : {
9822 0 : {
9823 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9824 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9825 0 : if (res) return res;
9826 : }
9827 0 : break;
9828 : }
9829 : default:;
9830 : }
9831 : }
9832 : break;
9833 0 : case CFN_BUILT_IN_EXP2:
9834 0 : if (call_expr_nargs (_p0) == 1)
9835 : {
9836 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9837 0 : switch (TREE_CODE (_p1))
9838 : {
9839 0 : case REAL_CST:
9840 0 : {
9841 0 : {
9842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9843 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
9844 0 : if (res) return res;
9845 : }
9846 0 : break;
9847 : }
9848 : default:;
9849 : }
9850 : }
9851 : break;
9852 0 : case CFN_BUILT_IN_EXPF:
9853 0 : if (call_expr_nargs (_p0) == 1)
9854 : {
9855 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9856 0 : switch (TREE_CODE (_p1))
9857 : {
9858 0 : case REAL_CST:
9859 0 : {
9860 0 : {
9861 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9862 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
9863 0 : if (res) return res;
9864 : }
9865 0 : break;
9866 : }
9867 : default:;
9868 : }
9869 : }
9870 : break;
9871 0 : case CFN_BUILT_IN_EXPL:
9872 0 : if (call_expr_nargs (_p0) == 1)
9873 : {
9874 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9875 0 : switch (TREE_CODE (_p1))
9876 : {
9877 0 : case REAL_CST:
9878 0 : {
9879 0 : {
9880 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9881 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
9882 0 : if (res) return res;
9883 : }
9884 0 : break;
9885 : }
9886 : default:;
9887 : }
9888 : }
9889 : break;
9890 0 : case CFN_BUILT_IN_LOG2:
9891 0 : if (call_expr_nargs (_p0) == 1)
9892 : {
9893 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9894 0 : switch (TREE_CODE (_p1))
9895 : {
9896 0 : case REAL_CST:
9897 0 : {
9898 0 : {
9899 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9900 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
9901 0 : if (res) return res;
9902 : }
9903 0 : break;
9904 : }
9905 : default:;
9906 : }
9907 : }
9908 : break;
9909 0 : case CFN_BUILT_IN_LOGF:
9910 0 : if (call_expr_nargs (_p0) == 1)
9911 : {
9912 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9913 0 : switch (TREE_CODE (_p1))
9914 : {
9915 0 : case REAL_CST:
9916 0 : {
9917 0 : {
9918 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9919 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
9920 0 : if (res) return res;
9921 : }
9922 0 : break;
9923 : }
9924 : default:;
9925 : }
9926 : }
9927 : break;
9928 0 : case CFN_BUILT_IN_LOGL:
9929 0 : if (call_expr_nargs (_p0) == 1)
9930 : {
9931 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9932 0 : switch (TREE_CODE (_p1))
9933 : {
9934 0 : case REAL_CST:
9935 0 : {
9936 0 : {
9937 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9938 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
9939 0 : if (res) return res;
9940 : }
9941 0 : break;
9942 : }
9943 : default:;
9944 : }
9945 : }
9946 : break;
9947 0 : case CFN_BUILT_IN_LOG10F:
9948 0 : if (call_expr_nargs (_p0) == 1)
9949 : {
9950 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9951 0 : switch (TREE_CODE (_p1))
9952 : {
9953 0 : case REAL_CST:
9954 0 : {
9955 0 : {
9956 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9957 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
9958 0 : if (res) return res;
9959 : }
9960 0 : break;
9961 : }
9962 : default:;
9963 : }
9964 : }
9965 : break;
9966 0 : case CFN_BUILT_IN_LOG10L:
9967 0 : if (call_expr_nargs (_p0) == 1)
9968 : {
9969 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9970 0 : switch (TREE_CODE (_p1))
9971 : {
9972 0 : case REAL_CST:
9973 0 : {
9974 0 : {
9975 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9976 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
9977 0 : if (res) return res;
9978 : }
9979 0 : break;
9980 : }
9981 : default:;
9982 : }
9983 : }
9984 : break;
9985 0 : case CFN_BUILT_IN_CTZIMAX:
9986 0 : if (call_expr_nargs (_p0) == 1)
9987 : {
9988 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9989 0 : switch (TREE_CODE (_p1))
9990 : {
9991 0 : case INTEGER_CST:
9992 0 : {
9993 0 : {
9994 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9995 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9996 0 : if (res) return res;
9997 : }
9998 0 : break;
9999 : }
10000 : default:;
10001 : }
10002 : }
10003 : break;
10004 0 : case CFN_CTZ:
10005 0 : if (call_expr_nargs (_p0) == 2)
10006 : {
10007 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10008 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10009 0 : switch (TREE_CODE (_p1))
10010 : {
10011 0 : case INTEGER_CST:
10012 0 : {
10013 0 : {
10014 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10015 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
10016 0 : if (res) return res;
10017 : }
10018 0 : break;
10019 : }
10020 : default:;
10021 : }
10022 : }
10023 0 : if (call_expr_nargs (_p0) == 1)
10024 : {
10025 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10026 0 : switch (TREE_CODE (_p1))
10027 : {
10028 0 : case INTEGER_CST:
10029 0 : {
10030 0 : {
10031 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10032 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_CTZ);
10033 0 : if (res) return res;
10034 : }
10035 0 : break;
10036 : }
10037 : default:;
10038 : }
10039 : }
10040 : break;
10041 0 : case CFN_EXP:
10042 0 : if (call_expr_nargs (_p0) == 1)
10043 : {
10044 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10045 0 : switch (TREE_CODE (_p1))
10046 : {
10047 0 : case REAL_CST:
10048 0 : {
10049 0 : {
10050 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10051 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10052 0 : if (res) return res;
10053 : }
10054 0 : break;
10055 : }
10056 : default:;
10057 : }
10058 : }
10059 : break;
10060 0 : case CFN_LOG:
10061 0 : if (call_expr_nargs (_p0) == 1)
10062 : {
10063 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10064 0 : switch (TREE_CODE (_p1))
10065 : {
10066 0 : case REAL_CST:
10067 0 : {
10068 0 : {
10069 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10070 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10071 0 : if (res) return res;
10072 : }
10073 0 : break;
10074 : }
10075 : default:;
10076 : }
10077 : }
10078 : break;
10079 0 : case CFN_EXP2:
10080 0 : if (call_expr_nargs (_p0) == 1)
10081 : {
10082 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10083 0 : switch (TREE_CODE (_p1))
10084 : {
10085 0 : case REAL_CST:
10086 0 : {
10087 0 : {
10088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10089 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10090 0 : if (res) return res;
10091 : }
10092 0 : break;
10093 : }
10094 : default:;
10095 : }
10096 : }
10097 : break;
10098 0 : case CFN_LOG2:
10099 0 : if (call_expr_nargs (_p0) == 1)
10100 : {
10101 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10102 0 : switch (TREE_CODE (_p1))
10103 : {
10104 0 : case REAL_CST:
10105 0 : {
10106 0 : {
10107 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10108 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10109 0 : if (res) return res;
10110 : }
10111 0 : break;
10112 : }
10113 : default:;
10114 : }
10115 : }
10116 : break;
10117 0 : case CFN_EXP10:
10118 0 : if (call_expr_nargs (_p0) == 1)
10119 : {
10120 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10121 0 : switch (TREE_CODE (_p1))
10122 : {
10123 0 : case REAL_CST:
10124 0 : {
10125 0 : {
10126 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10127 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10128 0 : if (res) return res;
10129 : }
10130 0 : break;
10131 : }
10132 : default:;
10133 : }
10134 : }
10135 : break;
10136 0 : case CFN_BUILT_IN_CTZLL:
10137 0 : if (call_expr_nargs (_p0) == 1)
10138 : {
10139 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10140 0 : switch (TREE_CODE (_p1))
10141 : {
10142 0 : case INTEGER_CST:
10143 0 : {
10144 0 : {
10145 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10146 0 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10147 0 : if (res) return res;
10148 : }
10149 0 : break;
10150 : }
10151 : default:;
10152 : }
10153 : }
10154 : break;
10155 0 : case CFN_LOG10:
10156 0 : if (call_expr_nargs (_p0) == 1)
10157 : {
10158 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10159 0 : switch (TREE_CODE (_p1))
10160 : {
10161 0 : case REAL_CST:
10162 0 : {
10163 0 : {
10164 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10165 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10166 0 : if (res) return res;
10167 : }
10168 0 : break;
10169 : }
10170 : default:;
10171 : }
10172 : }
10173 : break;
10174 0 : case CFN_BUILT_IN_EXP10:
10175 0 : if (call_expr_nargs (_p0) == 1)
10176 : {
10177 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10178 0 : switch (TREE_CODE (_p1))
10179 : {
10180 0 : case REAL_CST:
10181 0 : {
10182 0 : {
10183 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10184 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10185 0 : if (res) return res;
10186 : }
10187 0 : break;
10188 : }
10189 : default:;
10190 : }
10191 : }
10192 : break;
10193 0 : case CFN_BUILT_IN_EXP2F:
10194 0 : if (call_expr_nargs (_p0) == 1)
10195 : {
10196 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10197 0 : switch (TREE_CODE (_p1))
10198 : {
10199 0 : case REAL_CST:
10200 0 : {
10201 0 : {
10202 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10203 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10204 0 : if (res) return res;
10205 : }
10206 0 : break;
10207 : }
10208 : default:;
10209 : }
10210 : }
10211 : break;
10212 0 : case CFN_BUILT_IN_EXP2L:
10213 0 : if (call_expr_nargs (_p0) == 1)
10214 : {
10215 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10216 0 : switch (TREE_CODE (_p1))
10217 : {
10218 0 : case REAL_CST:
10219 0 : {
10220 0 : {
10221 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10222 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10223 0 : if (res) return res;
10224 : }
10225 0 : break;
10226 : }
10227 : default:;
10228 : }
10229 : }
10230 : break;
10231 0 : case CFN_BUILT_IN_LOG10:
10232 0 : if (call_expr_nargs (_p0) == 1)
10233 : {
10234 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10235 0 : switch (TREE_CODE (_p1))
10236 : {
10237 0 : case REAL_CST:
10238 0 : {
10239 0 : {
10240 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10241 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10242 0 : if (res) return res;
10243 : }
10244 0 : break;
10245 : }
10246 : default:;
10247 : }
10248 : }
10249 : break;
10250 0 : case CFN_BUILT_IN_LOG2F:
10251 0 : if (call_expr_nargs (_p0) == 1)
10252 : {
10253 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10254 0 : switch (TREE_CODE (_p1))
10255 : {
10256 0 : case REAL_CST:
10257 0 : {
10258 0 : {
10259 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10260 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10261 0 : if (res) return res;
10262 : }
10263 0 : break;
10264 : }
10265 : default:;
10266 : }
10267 : }
10268 : break;
10269 0 : case CFN_BUILT_IN_LOG2L:
10270 0 : if (call_expr_nargs (_p0) == 1)
10271 : {
10272 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10273 0 : switch (TREE_CODE (_p1))
10274 : {
10275 0 : case REAL_CST:
10276 0 : {
10277 0 : {
10278 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10279 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10280 0 : if (res) return res;
10281 : }
10282 0 : break;
10283 : }
10284 : default:;
10285 : }
10286 : }
10287 : break;
10288 : default:;
10289 : }
10290 : break;
10291 : default:;
10292 : }
10293 : return NULL_TREE;
10294 : }
10295 :
10296 : tree
10297 1891 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10298 : {
10299 1891 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10300 1891 : if (integer_all_onesp (_p0))
10301 : {
10302 0 : {
10303 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10304 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10305 0 : if (res) return res;
10306 : }
10307 : }
10308 1891 : if (integer_zerop (_p1))
10309 : {
10310 0 : {
10311 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10312 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10313 0 : if (res) return res;
10314 : }
10315 : }
10316 1891 : if (integer_zerop (_p0))
10317 : {
10318 0 : {
10319 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10320 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10321 0 : if (res) return res;
10322 : }
10323 : }
10324 1891 : switch (TREE_CODE (_p1))
10325 : {
10326 0 : case VECTOR_CST:
10327 0 : {
10328 0 : {
10329 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10330 0 : tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10331 0 : if (res) return res;
10332 : }
10333 0 : break;
10334 : }
10335 0 : case CONSTRUCTOR:
10336 0 : {
10337 0 : {
10338 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10339 0 : tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10340 0 : if (res) return res;
10341 : }
10342 0 : break;
10343 : }
10344 1238 : case INTEGER_CST:
10345 1238 : {
10346 1238 : {
10347 1238 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10348 1238 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1754;
10349 1238 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1754;
10350 1238 : {
10351 1238 : tree res_op0;
10352 1238 : res_op0 = captures[0];
10353 1238 : tree res_op1;
10354 1238 : res_op1 = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
10355 1238 : build_int_cst (TREE_TYPE (captures[1]),
10356 1238 : element_precision (type)), captures[1]);
10357 1238 : tree _r;
10358 1238 : _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
10359 1238 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
10360 1238 : return _r;
10361 : }
10362 0 : next_after_fail1754:;
10363 : }
10364 0 : break;
10365 : }
10366 0 : case MINUS_EXPR:
10367 0 : {
10368 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10369 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10370 0 : switch (TREE_CODE (_q30))
10371 : {
10372 0 : case INTEGER_CST:
10373 0 : {
10374 0 : {
10375 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10376 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
10377 0 : if (res) return res;
10378 : }
10379 0 : break;
10380 : }
10381 : default:;
10382 : }
10383 : break;
10384 : }
10385 653 : default:;
10386 : }
10387 653 : switch (TREE_CODE (_p0))
10388 : {
10389 0 : case LROTATE_EXPR:
10390 0 : {
10391 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10392 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10393 0 : switch (TREE_CODE (_q21))
10394 : {
10395 0 : case INTEGER_CST:
10396 0 : {
10397 0 : switch (TREE_CODE (_p1))
10398 : {
10399 0 : case INTEGER_CST:
10400 0 : {
10401 0 : {
10402 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10403 0 : tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10404 0 : if (res) return res;
10405 : }
10406 0 : break;
10407 : }
10408 : default:;
10409 : }
10410 : break;
10411 : }
10412 : default:;
10413 : }
10414 : break;
10415 : }
10416 : default:;
10417 : }
10418 : return NULL_TREE;
10419 : }
10420 :
10421 : tree
10422 2736 : generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10423 : {
10424 2736 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10425 2736 : if (integer_all_onesp (_p0))
10426 : {
10427 0 : {
10428 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10429 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10430 0 : if (res) return res;
10431 : }
10432 : }
10433 2736 : if (integer_zerop (_p1))
10434 : {
10435 1 : {
10436 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10437 1 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10438 1 : if (res) return res;
10439 : }
10440 : }
10441 2735 : if (integer_zerop (_p0))
10442 : {
10443 0 : {
10444 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10445 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10446 0 : if (res) return res;
10447 : }
10448 : }
10449 2735 : switch (TREE_CODE (_p1))
10450 : {
10451 0 : case VECTOR_CST:
10452 0 : {
10453 0 : {
10454 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10455 0 : tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10456 0 : if (res) return res;
10457 : }
10458 0 : break;
10459 : }
10460 0 : case CONSTRUCTOR:
10461 0 : {
10462 0 : {
10463 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10464 0 : tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10465 0 : if (res) return res;
10466 : }
10467 0 : break;
10468 : }
10469 0 : case MINUS_EXPR:
10470 0 : {
10471 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10472 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10473 0 : switch (TREE_CODE (_q30))
10474 : {
10475 0 : case INTEGER_CST:
10476 0 : {
10477 0 : {
10478 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10479 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
10480 0 : if (res) return res;
10481 : }
10482 0 : break;
10483 : }
10484 : default:;
10485 : }
10486 : break;
10487 : }
10488 2735 : default:;
10489 : }
10490 2735 : switch (TREE_CODE (_p0))
10491 : {
10492 0 : case RROTATE_EXPR:
10493 0 : {
10494 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10495 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10496 0 : switch (TREE_CODE (_q21))
10497 : {
10498 0 : case INTEGER_CST:
10499 0 : {
10500 0 : switch (TREE_CODE (_p1))
10501 : {
10502 0 : case INTEGER_CST:
10503 0 : {
10504 0 : {
10505 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10506 0 : tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10507 0 : if (res) return res;
10508 : }
10509 0 : break;
10510 : }
10511 : default:;
10512 : }
10513 : break;
10514 : }
10515 : default:;
10516 : }
10517 : break;
10518 : }
10519 : default:;
10520 : }
10521 : return NULL_TREE;
10522 : }
10523 :
10524 : tree
10525 573915 : generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10526 : {
10527 573915 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10528 573915 : switch (TREE_CODE (_p0))
10529 : {
10530 40 : case REALPART_EXPR:
10531 40 : {
10532 40 : tree _q20 = TREE_OPERAND (_p0, 0);
10533 40 : switch (TREE_CODE (_p1))
10534 : {
10535 30 : case IMAGPART_EXPR:
10536 30 : {
10537 30 : tree _q40 = TREE_OPERAND (_p1, 0);
10538 30 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10539 : {
10540 30 : {
10541 30 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10542 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1755;
10543 30 : {
10544 30 : tree _r;
10545 30 : _r = captures[0];
10546 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
10547 30 : return _r;
10548 : }
10549 0 : next_after_fail1755:;
10550 : }
10551 : }
10552 : break;
10553 : }
10554 : default:;
10555 : }
10556 : break;
10557 : }
10558 : default:;
10559 : }
10560 : return NULL_TREE;
10561 : }
10562 :
10563 : tree
10564 742052 : generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10565 : {
10566 742052 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10567 742052 : switch (TREE_CODE (_p0))
10568 : {
10569 0 : case VEC_COND_EXPR:
10570 0 : {
10571 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10572 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10573 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10574 0 : switch (TREE_CODE (_p1))
10575 : {
10576 0 : case VEC_COND_EXPR:
10577 0 : {
10578 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10579 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10580 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10581 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10582 : {
10583 0 : {
10584 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10585 0 : if (VECTOR_TYPE_P (type)
10586 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10587 0 : || types_match (type, TREE_TYPE (captures[2]))
10588 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10589 : || (optimize_vectors_before_lowering_p ()
10590 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10591 : )
10592 : {
10593 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1756;
10594 0 : {
10595 0 : tree res_op0;
10596 0 : res_op0 = captures[1];
10597 0 : tree res_op1;
10598 0 : {
10599 0 : tree _o1[2], _r1;
10600 0 : _o1[0] = captures[2];
10601 0 : _o1[1] = captures[5];
10602 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10603 0 : if (EXPR_P (_r1))
10604 0 : goto next_after_fail1756;
10605 0 : res_op1 = _r1;
10606 : }
10607 0 : tree res_op2;
10608 0 : {
10609 0 : tree _o1[2], _r1;
10610 0 : _o1[0] = captures[3];
10611 0 : _o1[1] = captures[6];
10612 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10613 0 : if (EXPR_P (_r1))
10614 0 : goto next_after_fail1756;
10615 0 : res_op2 = _r1;
10616 : }
10617 0 : tree _r;
10618 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10619 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
10620 0 : return _r;
10621 : }
10622 0 : next_after_fail1756:;
10623 : }
10624 : }
10625 : }
10626 : break;
10627 : }
10628 0 : default:;
10629 : }
10630 0 : {
10631 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10632 0 : if (VECTOR_TYPE_P (type)
10633 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10634 0 : || types_match (type, TREE_TYPE (captures[2]))
10635 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10636 : || (optimize_vectors_before_lowering_p ()
10637 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10638 : )
10639 : {
10640 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1757;
10641 0 : {
10642 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1757;
10643 0 : tree res_op0;
10644 0 : res_op0 = captures[1];
10645 0 : tree res_op1;
10646 0 : {
10647 0 : tree _o1[2], _r1;
10648 0 : _o1[0] = captures[2];
10649 0 : _o1[1] = unshare_expr (captures[4]);
10650 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10651 0 : if (EXPR_P (_r1))
10652 0 : goto next_after_fail1757;
10653 0 : res_op1 = _r1;
10654 : }
10655 0 : tree res_op2;
10656 0 : {
10657 0 : tree _o1[2], _r1;
10658 0 : _o1[0] = captures[3];
10659 0 : _o1[1] = captures[4];
10660 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10661 0 : if (EXPR_P (_r1))
10662 0 : goto next_after_fail1757;
10663 0 : res_op2 = _r1;
10664 : }
10665 0 : tree _r;
10666 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10667 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
10668 0 : return _r;
10669 : }
10670 0 : next_after_fail1757:;
10671 : }
10672 : }
10673 0 : break;
10674 : }
10675 742052 : default:;
10676 : }
10677 742052 : switch (TREE_CODE (_p1))
10678 : {
10679 0 : case VEC_COND_EXPR:
10680 0 : {
10681 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10682 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10683 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10684 0 : {
10685 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10686 0 : if (VECTOR_TYPE_P (type)
10687 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10688 0 : || types_match (type, TREE_TYPE (captures[3]))
10689 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10690 : || (optimize_vectors_before_lowering_p ()
10691 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10692 : )
10693 : {
10694 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1758;
10695 0 : {
10696 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1758;
10697 0 : tree res_op0;
10698 0 : res_op0 = captures[2];
10699 0 : tree res_op1;
10700 0 : {
10701 0 : tree _o1[2], _r1;
10702 0 : _o1[0] = unshare_expr (captures[0]);
10703 0 : _o1[1] = captures[3];
10704 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10705 0 : if (EXPR_P (_r1))
10706 0 : goto next_after_fail1758;
10707 0 : res_op1 = _r1;
10708 : }
10709 0 : tree res_op2;
10710 0 : {
10711 0 : tree _o1[2], _r1;
10712 0 : _o1[0] = captures[0];
10713 0 : _o1[1] = captures[4];
10714 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10715 0 : if (EXPR_P (_r1))
10716 0 : goto next_after_fail1758;
10717 0 : res_op2 = _r1;
10718 : }
10719 0 : tree _r;
10720 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10721 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
10722 0 : return _r;
10723 : }
10724 0 : next_after_fail1758:;
10725 : }
10726 : }
10727 0 : break;
10728 : }
10729 742052 : default:;
10730 : }
10731 742052 : switch (TREE_CODE (_p0))
10732 : {
10733 0 : case FLOAT_EXPR:
10734 0 : {
10735 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10736 0 : switch (TREE_CODE (_p1))
10737 : {
10738 0 : case FLOAT_EXPR:
10739 0 : {
10740 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10741 0 : {
10742 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10743 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10744 0 : if (res) return res;
10745 : }
10746 0 : break;
10747 : }
10748 : default:;
10749 : }
10750 : break;
10751 : }
10752 18 : case NEGATE_EXPR:
10753 18 : {
10754 18 : tree _q20 = TREE_OPERAND (_p0, 0);
10755 18 : switch (TREE_CODE (_p1))
10756 : {
10757 18 : case NEGATE_EXPR:
10758 18 : {
10759 18 : tree _q40 = TREE_OPERAND (_p1, 0);
10760 18 : {
10761 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10762 18 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10763 18 : if (res) return res;
10764 : }
10765 0 : break;
10766 : }
10767 0 : default:;
10768 : }
10769 0 : if (CONSTANT_CLASS_P (_p1))
10770 : {
10771 0 : {
10772 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10773 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10774 0 : if (res) return res;
10775 : }
10776 : }
10777 : break;
10778 : }
10779 742034 : default:;
10780 : }
10781 742034 : switch (TREE_CODE (_p1))
10782 : {
10783 519 : case REAL_CST:
10784 519 : {
10785 519 : {
10786 519 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10787 519 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
10788 519 : if (res) return res;
10789 : }
10790 519 : break;
10791 : }
10792 742034 : default:;
10793 : }
10794 742034 : {
10795 742034 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10796 742034 : if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
10797 : )
10798 : {
10799 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1759;
10800 0 : {
10801 0 : tree _r;
10802 0 : _r = constant_boolean_node (true, type);
10803 0 : if (TREE_SIDE_EFFECTS (captures[0]))
10804 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10805 0 : if (TREE_SIDE_EFFECTS (captures[1]))
10806 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10807 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
10808 0 : return _r;
10809 : }
10810 0 : next_after_fail1759:;
10811 : }
10812 : else
10813 : {
10814 742034 : if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
10815 : )
10816 : {
10817 35 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1760;
10818 35 : {
10819 35 : tree _r;
10820 35 : _r = constant_boolean_node (false, type);
10821 35 : if (TREE_SIDE_EFFECTS (captures[0]))
10822 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10823 35 : if (TREE_SIDE_EFFECTS (captures[1]))
10824 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10825 35 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
10826 35 : return _r;
10827 : }
10828 0 : next_after_fail1760:;
10829 : }
10830 : }
10831 : }
10832 741999 : return NULL_TREE;
10833 : }
10834 :
10835 : tree
10836 706748 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10837 : {
10838 706748 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10839 706748 : switch (TREE_CODE (_p0))
10840 : {
10841 0 : case VEC_COND_EXPR:
10842 0 : {
10843 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10844 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10845 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10846 0 : switch (TREE_CODE (_p1))
10847 : {
10848 0 : case VEC_COND_EXPR:
10849 0 : {
10850 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10851 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10852 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10853 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10854 : {
10855 0 : {
10856 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10857 0 : if (VECTOR_TYPE_P (type)
10858 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10859 0 : || types_match (type, TREE_TYPE (captures[2]))
10860 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10861 : || (optimize_vectors_before_lowering_p ()
10862 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10863 : )
10864 : {
10865 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1766;
10866 0 : {
10867 0 : tree res_op0;
10868 0 : res_op0 = captures[1];
10869 0 : tree res_op1;
10870 0 : {
10871 0 : tree _o1[2], _r1;
10872 0 : _o1[0] = captures[2];
10873 0 : _o1[1] = captures[5];
10874 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10875 0 : if (EXPR_P (_r1))
10876 0 : goto next_after_fail1766;
10877 0 : res_op1 = _r1;
10878 : }
10879 0 : tree res_op2;
10880 0 : {
10881 0 : tree _o1[2], _r1;
10882 0 : _o1[0] = captures[3];
10883 0 : _o1[1] = captures[6];
10884 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10885 0 : if (EXPR_P (_r1))
10886 0 : goto next_after_fail1766;
10887 0 : res_op2 = _r1;
10888 : }
10889 0 : tree _r;
10890 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10891 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
10892 0 : return _r;
10893 : }
10894 0 : next_after_fail1766:;
10895 : }
10896 : }
10897 : }
10898 : break;
10899 : }
10900 0 : default:;
10901 : }
10902 0 : {
10903 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10904 0 : if (VECTOR_TYPE_P (type)
10905 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10906 0 : || types_match (type, TREE_TYPE (captures[2]))
10907 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10908 : || (optimize_vectors_before_lowering_p ()
10909 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10910 : )
10911 : {
10912 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1767;
10913 0 : {
10914 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1767;
10915 0 : tree res_op0;
10916 0 : res_op0 = captures[1];
10917 0 : tree res_op1;
10918 0 : {
10919 0 : tree _o1[2], _r1;
10920 0 : _o1[0] = captures[2];
10921 0 : _o1[1] = unshare_expr (captures[4]);
10922 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10923 0 : if (EXPR_P (_r1))
10924 0 : goto next_after_fail1767;
10925 0 : res_op1 = _r1;
10926 : }
10927 0 : tree res_op2;
10928 0 : {
10929 0 : tree _o1[2], _r1;
10930 0 : _o1[0] = captures[3];
10931 0 : _o1[1] = captures[4];
10932 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10933 0 : if (EXPR_P (_r1))
10934 0 : goto next_after_fail1767;
10935 0 : res_op2 = _r1;
10936 : }
10937 0 : tree _r;
10938 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10939 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
10940 0 : return _r;
10941 : }
10942 0 : next_after_fail1767:;
10943 : }
10944 : }
10945 0 : break;
10946 : }
10947 706748 : default:;
10948 : }
10949 706748 : switch (TREE_CODE (_p1))
10950 : {
10951 0 : case VEC_COND_EXPR:
10952 0 : {
10953 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10954 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10955 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10956 0 : {
10957 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10958 0 : if (VECTOR_TYPE_P (type)
10959 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10960 0 : || types_match (type, TREE_TYPE (captures[3]))
10961 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10962 : || (optimize_vectors_before_lowering_p ()
10963 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10964 : )
10965 : {
10966 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1768;
10967 0 : {
10968 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1768;
10969 0 : tree res_op0;
10970 0 : res_op0 = captures[2];
10971 0 : tree res_op1;
10972 0 : {
10973 0 : tree _o1[2], _r1;
10974 0 : _o1[0] = unshare_expr (captures[0]);
10975 0 : _o1[1] = captures[3];
10976 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10977 0 : if (EXPR_P (_r1))
10978 0 : goto next_after_fail1768;
10979 0 : res_op1 = _r1;
10980 : }
10981 0 : tree res_op2;
10982 0 : {
10983 0 : tree _o1[2], _r1;
10984 0 : _o1[0] = captures[0];
10985 0 : _o1[1] = captures[4];
10986 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10987 0 : if (EXPR_P (_r1))
10988 0 : goto next_after_fail1768;
10989 0 : res_op2 = _r1;
10990 : }
10991 0 : tree _r;
10992 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10993 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
10994 0 : return _r;
10995 : }
10996 0 : next_after_fail1768:;
10997 : }
10998 : }
10999 0 : break;
11000 : }
11001 706748 : default:;
11002 : }
11003 706748 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11004 : {
11005 0 : {
11006 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11007 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11008 0 : if (res) return res;
11009 : }
11010 : }
11011 706748 : switch (TREE_CODE (_p0))
11012 : {
11013 283 : case FLOAT_EXPR:
11014 283 : {
11015 283 : tree _q20 = TREE_OPERAND (_p0, 0);
11016 283 : switch (TREE_CODE (_p1))
11017 : {
11018 0 : case FLOAT_EXPR:
11019 0 : {
11020 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11021 0 : {
11022 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11023 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
11024 0 : if (res) return res;
11025 : }
11026 0 : break;
11027 : }
11028 : default:;
11029 : }
11030 : break;
11031 : }
11032 0 : case NEGATE_EXPR:
11033 0 : {
11034 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11035 0 : switch (TREE_CODE (_p1))
11036 : {
11037 0 : case NEGATE_EXPR:
11038 0 : {
11039 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11040 0 : {
11041 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11042 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
11043 0 : if (res) return res;
11044 : }
11045 0 : break;
11046 : }
11047 0 : default:;
11048 : }
11049 0 : if (CONSTANT_CLASS_P (_p1))
11050 : {
11051 0 : {
11052 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11053 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
11054 0 : if (res) return res;
11055 : }
11056 : }
11057 : break;
11058 : }
11059 706748 : default:;
11060 : }
11061 706748 : switch (TREE_CODE (_p1))
11062 : {
11063 354800 : case REAL_CST:
11064 354800 : {
11065 354800 : {
11066 354800 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11067 354800 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11068 354800 : if (res) return res;
11069 : }
11070 354798 : break;
11071 : }
11072 : default:;
11073 : }
11074 : return NULL_TREE;
11075 : }
11076 :
11077 : tree
11078 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)
11079 : {
11080 79 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11081 79 : switch (TREE_CODE (_p0))
11082 : {
11083 0 : case VEC_COND_EXPR:
11084 0 : {
11085 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11086 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11087 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11088 0 : switch (TREE_CODE (_p1))
11089 : {
11090 0 : case VEC_COND_EXPR:
11091 0 : {
11092 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11093 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11094 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11095 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11096 : {
11097 0 : {
11098 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11099 0 : if (VECTOR_TYPE_P (type)
11100 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11101 0 : || types_match (type, TREE_TYPE (captures[2]))
11102 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11103 : || (optimize_vectors_before_lowering_p ()
11104 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11105 : )
11106 : {
11107 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1781;
11108 0 : {
11109 0 : tree res_op0;
11110 0 : res_op0 = captures[1];
11111 0 : tree res_op1;
11112 0 : {
11113 0 : tree _o1[2], _r1;
11114 0 : _o1[0] = captures[2];
11115 0 : _o1[1] = captures[5];
11116 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11117 0 : if (EXPR_P (_r1))
11118 0 : goto next_after_fail1781;
11119 0 : res_op1 = _r1;
11120 : }
11121 0 : tree res_op2;
11122 0 : {
11123 0 : tree _o1[2], _r1;
11124 0 : _o1[0] = captures[3];
11125 0 : _o1[1] = captures[6];
11126 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11127 0 : if (EXPR_P (_r1))
11128 0 : goto next_after_fail1781;
11129 0 : res_op2 = _r1;
11130 : }
11131 0 : tree _r;
11132 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11133 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
11134 0 : return _r;
11135 : }
11136 0 : next_after_fail1781:;
11137 : }
11138 : }
11139 : }
11140 : break;
11141 : }
11142 0 : default:;
11143 : }
11144 0 : {
11145 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11146 0 : if (VECTOR_TYPE_P (type)
11147 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11148 0 : || types_match (type, TREE_TYPE (captures[2]))
11149 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11150 : || (optimize_vectors_before_lowering_p ()
11151 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11152 : )
11153 : {
11154 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1782;
11155 0 : {
11156 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1782;
11157 0 : tree res_op0;
11158 0 : res_op0 = captures[1];
11159 0 : tree res_op1;
11160 0 : {
11161 0 : tree _o1[2], _r1;
11162 0 : _o1[0] = captures[2];
11163 0 : _o1[1] = unshare_expr (captures[4]);
11164 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11165 0 : if (EXPR_P (_r1))
11166 0 : goto next_after_fail1782;
11167 0 : res_op1 = _r1;
11168 : }
11169 0 : tree res_op2;
11170 0 : {
11171 0 : tree _o1[2], _r1;
11172 0 : _o1[0] = captures[3];
11173 0 : _o1[1] = captures[4];
11174 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11175 0 : if (EXPR_P (_r1))
11176 0 : goto next_after_fail1782;
11177 0 : res_op2 = _r1;
11178 : }
11179 0 : tree _r;
11180 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11181 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
11182 0 : return _r;
11183 : }
11184 0 : next_after_fail1782:;
11185 : }
11186 : }
11187 0 : break;
11188 : }
11189 79 : default:;
11190 : }
11191 79 : switch (TREE_CODE (_p1))
11192 : {
11193 0 : case VEC_COND_EXPR:
11194 0 : {
11195 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11196 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11197 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11198 0 : {
11199 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11200 0 : if (VECTOR_TYPE_P (type)
11201 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11202 0 : || types_match (type, TREE_TYPE (captures[3]))
11203 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11204 : || (optimize_vectors_before_lowering_p ()
11205 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11206 : )
11207 : {
11208 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1783;
11209 0 : {
11210 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1783;
11211 0 : tree res_op0;
11212 0 : res_op0 = captures[2];
11213 0 : tree res_op1;
11214 0 : {
11215 0 : tree _o1[2], _r1;
11216 0 : _o1[0] = unshare_expr (captures[0]);
11217 0 : _o1[1] = captures[3];
11218 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11219 0 : if (EXPR_P (_r1))
11220 0 : goto next_after_fail1783;
11221 0 : res_op1 = _r1;
11222 : }
11223 0 : tree res_op2;
11224 0 : {
11225 0 : tree _o1[2], _r1;
11226 0 : _o1[0] = captures[0];
11227 0 : _o1[1] = captures[4];
11228 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11229 0 : if (EXPR_P (_r1))
11230 0 : goto next_after_fail1783;
11231 0 : res_op2 = _r1;
11232 : }
11233 0 : tree _r;
11234 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11235 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
11236 0 : return _r;
11237 : }
11238 0 : next_after_fail1783:;
11239 : }
11240 : }
11241 0 : break;
11242 : }
11243 79 : default:;
11244 : }
11245 79 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11246 : {
11247 2 : {
11248 2 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11249 2 : if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
11250 : )
11251 : {
11252 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1784;
11253 0 : {
11254 0 : tree _r;
11255 0 : _r = constant_boolean_node (false, type);
11256 0 : if (TREE_SIDE_EFFECTS (captures[0]))
11257 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11258 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
11259 0 : return _r;
11260 : }
11261 0 : next_after_fail1784:;
11262 : }
11263 : }
11264 : }
11265 79 : switch (TREE_CODE (_p0))
11266 : {
11267 0 : case FLOAT_EXPR:
11268 0 : {
11269 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11270 0 : switch (TREE_CODE (_p1))
11271 : {
11272 0 : case FLOAT_EXPR:
11273 0 : {
11274 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11275 0 : {
11276 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11277 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
11278 0 : if (res) return res;
11279 : }
11280 0 : break;
11281 : }
11282 : default:;
11283 : }
11284 : break;
11285 : }
11286 0 : case NEGATE_EXPR:
11287 0 : {
11288 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11289 0 : switch (TREE_CODE (_p1))
11290 : {
11291 0 : case NEGATE_EXPR:
11292 0 : {
11293 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11294 0 : {
11295 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11296 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11297 0 : if (res) return res;
11298 : }
11299 0 : break;
11300 : }
11301 0 : default:;
11302 : }
11303 0 : if (CONSTANT_CLASS_P (_p1))
11304 : {
11305 0 : {
11306 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11307 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11308 0 : if (res) return res;
11309 : }
11310 : }
11311 : break;
11312 : }
11313 79 : default:;
11314 : }
11315 79 : switch (TREE_CODE (_p1))
11316 : {
11317 2 : case REAL_CST:
11318 2 : {
11319 2 : {
11320 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11321 2 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, LTGT_EXPR);
11322 2 : if (res) return res;
11323 : }
11324 2 : break;
11325 : }
11326 : default:;
11327 : }
11328 : return NULL_TREE;
11329 : }
11330 :
11331 : tree
11332 391960 : 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)
11333 : {
11334 391960 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11335 391960 : switch (TREE_CODE (_p0))
11336 : {
11337 1355 : case NE_EXPR:
11338 1355 : {
11339 1355 : tree _q20 = TREE_OPERAND (_p0, 0);
11340 1355 : tree _q21 = TREE_OPERAND (_p0, 1);
11341 1355 : if (uniform_integer_cst_p (_q21))
11342 : {
11343 431 : switch (TREE_CODE (_p1))
11344 : {
11345 35 : case PLUS_EXPR:
11346 35 : {
11347 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11348 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11349 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11350 : {
11351 24 : if (uniform_integer_cst_p (_q51))
11352 : {
11353 24 : if (uniform_integer_cst_p (_p2))
11354 : {
11355 24 : {
11356 24 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11357 24 : {
11358 24 : tree cst1 = uniform_integer_cst_p (captures[1]);
11359 24 : tree cst2 = uniform_integer_cst_p (captures[3]);
11360 24 : tree cst3 = uniform_integer_cst_p (captures[4]);
11361 24 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
11362 : )
11363 : {
11364 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1891;
11365 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1891;
11366 18 : {
11367 18 : tree _r;
11368 18 : _r = captures[2];
11369 18 : if (TREE_SIDE_EFFECTS (captures[1]))
11370 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11371 18 : if (TREE_SIDE_EFFECTS (captures[4]))
11372 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11373 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
11374 18 : return _r;
11375 : }
11376 6 : next_after_fail1891:;
11377 : }
11378 : }
11379 : }
11380 : }
11381 : }
11382 : }
11383 : break;
11384 : }
11385 : default:;
11386 : }
11387 : }
11388 : break;
11389 : }
11390 16519 : case VECTOR_CST:
11391 16519 : {
11392 16519 : {
11393 16519 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11394 16519 : if (integer_all_onesp (captures[0])
11395 : )
11396 : {
11397 3748 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1892;
11398 3748 : {
11399 3748 : tree _r;
11400 3748 : _r = captures[1];
11401 3748 : if (TREE_SIDE_EFFECTS (captures[0]))
11402 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11403 3748 : if (TREE_SIDE_EFFECTS (captures[2]))
11404 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11405 3748 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
11406 3748 : return _r;
11407 : }
11408 0 : next_after_fail1892:;
11409 : }
11410 : else
11411 : {
11412 12771 : if (integer_zerop (captures[0])
11413 : )
11414 : {
11415 2003 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1893;
11416 2003 : {
11417 2003 : tree _r;
11418 2003 : _r = captures[2];
11419 2003 : if (TREE_SIDE_EFFECTS (captures[0]))
11420 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11421 2003 : if (TREE_SIDE_EFFECTS (captures[1]))
11422 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11423 2003 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
11424 2003 : return _r;
11425 : }
11426 0 : next_after_fail1893:;
11427 : }
11428 : }
11429 : }
11430 10768 : break;
11431 : }
11432 386191 : default:;
11433 : }
11434 386191 : switch (TREE_CODE (_p1))
11435 : {
11436 322808 : case VECTOR_CST:
11437 322808 : {
11438 322808 : switch (TREE_CODE (_p2))
11439 : {
11440 312847 : case VECTOR_CST:
11441 312847 : {
11442 312847 : {
11443 312847 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11444 312847 : if (VECTOR_BOOLEAN_TYPE_P (type)
11445 312985 : && types_match (type, TREE_TYPE (captures[0]))
11446 : )
11447 : {
11448 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11449 : )
11450 : {
11451 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1894;
11452 28 : {
11453 28 : tree res_op0;
11454 28 : res_op0 = captures[0];
11455 28 : tree _r;
11456 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11457 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11458 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11459 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11460 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11461 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
11462 28 : return _r;
11463 : }
11464 0 : next_after_fail1894:;
11465 : }
11466 : else
11467 : {
11468 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11469 : )
11470 : {
11471 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1895;
11472 73 : {
11473 73 : tree _r;
11474 73 : _r = captures[0];
11475 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11476 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11477 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11478 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11479 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
11480 73 : return _r;
11481 : }
11482 0 : next_after_fail1895:;
11483 : }
11484 : }
11485 : }
11486 : }
11487 312746 : break;
11488 : }
11489 : default:;
11490 : }
11491 : break;
11492 : }
11493 386090 : default:;
11494 : }
11495 386090 : switch (TREE_CODE (_p0))
11496 : {
11497 1335 : case NE_EXPR:
11498 1335 : {
11499 1335 : tree _q20 = TREE_OPERAND (_p0, 0);
11500 1335 : tree _q21 = TREE_OPERAND (_p0, 1);
11501 1335 : switch (TREE_CODE (_p1))
11502 : {
11503 6 : case MINUS_EXPR:
11504 6 : {
11505 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11506 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11507 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11508 : {
11509 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11510 : {
11511 6 : if (integer_zerop (_p2))
11512 : {
11513 6 : {
11514 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11515 6 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures);
11516 6 : if (res) return res;
11517 : }
11518 : }
11519 : }
11520 : }
11521 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11522 : {
11523 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11524 : {
11525 0 : if (integer_zerop (_p2))
11526 : {
11527 0 : {
11528 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11529 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures);
11530 0 : if (res) return res;
11531 : }
11532 : }
11533 : }
11534 : }
11535 : break;
11536 : }
11537 6 : case BIT_XOR_EXPR:
11538 6 : {
11539 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11540 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11541 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11542 : {
11543 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11544 : {
11545 6 : if (integer_zerop (_p2))
11546 : {
11547 6 : {
11548 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11549 6 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures);
11550 6 : if (res) return res;
11551 : }
11552 : }
11553 : }
11554 : }
11555 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11556 : {
11557 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11558 : {
11559 0 : if (integer_zerop (_p2))
11560 : {
11561 0 : {
11562 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11563 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures);
11564 0 : if (res) return res;
11565 : }
11566 : }
11567 : }
11568 : }
11569 : break;
11570 : }
11571 6 : case BIT_AND_EXPR:
11572 6 : {
11573 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11574 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11575 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11576 : {
11577 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11578 : {
11579 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11580 : {
11581 6 : {
11582 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11583 6 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11584 6 : if (res) return res;
11585 : }
11586 : }
11587 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11588 : {
11589 0 : {
11590 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11591 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11592 0 : if (res) return res;
11593 : }
11594 : }
11595 : }
11596 : }
11597 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11598 : {
11599 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11600 : {
11601 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11602 : {
11603 0 : {
11604 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11605 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11606 0 : if (res) return res;
11607 : }
11608 : }
11609 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11610 : {
11611 0 : {
11612 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11613 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11614 0 : if (res) return res;
11615 : }
11616 : }
11617 : }
11618 : }
11619 : break;
11620 : }
11621 6 : case BIT_IOR_EXPR:
11622 6 : {
11623 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11624 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11625 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11626 : {
11627 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11628 : {
11629 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11630 : {
11631 6 : {
11632 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11633 6 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11634 6 : if (res) return res;
11635 : }
11636 : }
11637 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11638 : {
11639 0 : {
11640 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11641 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11642 0 : if (res) return res;
11643 : }
11644 : }
11645 : }
11646 : }
11647 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11648 : {
11649 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11650 : {
11651 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11652 : {
11653 0 : {
11654 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11655 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11656 0 : if (res) return res;
11657 : }
11658 : }
11659 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11660 : {
11661 0 : {
11662 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11663 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11664 0 : if (res) return res;
11665 : }
11666 : }
11667 : }
11668 : }
11669 : break;
11670 : }
11671 0 : case MIN_EXPR:
11672 0 : {
11673 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11674 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11675 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11676 : {
11677 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11678 : {
11679 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11680 : {
11681 0 : {
11682 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11683 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11684 0 : if (res) return res;
11685 : }
11686 : }
11687 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11688 : {
11689 0 : {
11690 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11691 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11692 0 : if (res) return res;
11693 : }
11694 : }
11695 : }
11696 : }
11697 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11698 : {
11699 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11700 : {
11701 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11702 : {
11703 0 : {
11704 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11705 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11706 0 : if (res) return res;
11707 : }
11708 : }
11709 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11710 : {
11711 0 : {
11712 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11713 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11714 0 : if (res) return res;
11715 : }
11716 : }
11717 : }
11718 : }
11719 : break;
11720 : }
11721 0 : case MAX_EXPR:
11722 0 : {
11723 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11724 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11725 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11726 : {
11727 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11728 : {
11729 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11730 : {
11731 0 : {
11732 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11733 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11734 0 : if (res) return res;
11735 : }
11736 : }
11737 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11738 : {
11739 0 : {
11740 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11741 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11742 0 : if (res) return res;
11743 : }
11744 : }
11745 : }
11746 : }
11747 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11748 : {
11749 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11750 : {
11751 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11752 : {
11753 0 : {
11754 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11755 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11756 0 : if (res) return res;
11757 : }
11758 : }
11759 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11760 : {
11761 0 : {
11762 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11763 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11764 0 : if (res) return res;
11765 : }
11766 : }
11767 : }
11768 : }
11769 : break;
11770 : }
11771 6 : case MULT_EXPR:
11772 6 : {
11773 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11774 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11775 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11776 : {
11777 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11778 : {
11779 6 : switch (TREE_CODE (_p2))
11780 : {
11781 6 : case MULT_EXPR:
11782 6 : {
11783 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11784 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11785 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11786 : {
11787 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11788 : {
11789 6 : {
11790 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11791 6 : const enum tree_code op = MULT_EXPR;
11792 6 : if (ANY_INTEGRAL_TYPE_P (type)
11793 : )
11794 : {
11795 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1896;
11796 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1896;
11797 6 : {
11798 6 : tree _r;
11799 6 : _r = captures[2];
11800 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
11801 6 : return _r;
11802 : }
11803 0 : next_after_fail1896:;
11804 : }
11805 : }
11806 : }
11807 : }
11808 : break;
11809 : }
11810 : default:;
11811 : }
11812 : }
11813 : }
11814 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11815 : {
11816 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11817 : {
11818 0 : switch (TREE_CODE (_p2))
11819 : {
11820 0 : case MULT_EXPR:
11821 0 : {
11822 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11823 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11824 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11825 : {
11826 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11827 : {
11828 0 : {
11829 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11830 0 : const enum tree_code op = MULT_EXPR;
11831 0 : if (ANY_INTEGRAL_TYPE_P (type)
11832 : )
11833 : {
11834 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1897;
11835 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1897;
11836 0 : {
11837 0 : tree _r;
11838 0 : _r = captures[2];
11839 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
11840 0 : return _r;
11841 : }
11842 0 : next_after_fail1897:;
11843 : }
11844 : }
11845 : }
11846 : }
11847 : break;
11848 : }
11849 : default:;
11850 : }
11851 : }
11852 : }
11853 : break;
11854 : }
11855 35 : case PLUS_EXPR:
11856 35 : {
11857 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11858 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11859 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11860 : {
11861 24 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11862 : {
11863 12 : switch (TREE_CODE (_p2))
11864 : {
11865 6 : case PLUS_EXPR:
11866 6 : {
11867 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11868 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11869 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11870 : {
11871 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11872 : {
11873 6 : {
11874 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11875 6 : const enum tree_code op = PLUS_EXPR;
11876 6 : if (ANY_INTEGRAL_TYPE_P (type)
11877 : )
11878 : {
11879 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1898;
11880 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1898;
11881 6 : {
11882 6 : tree _r;
11883 6 : _r = captures[2];
11884 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
11885 6 : return _r;
11886 : }
11887 0 : next_after_fail1898:;
11888 : }
11889 : }
11890 : }
11891 : }
11892 : break;
11893 : }
11894 6 : case MULT_EXPR:
11895 6 : {
11896 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11897 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11898 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11899 : {
11900 6 : if (uniform_integer_cst_p (_q81))
11901 : {
11902 6 : {
11903 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11904 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11905 : )
11906 : {
11907 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1899;
11908 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1899;
11909 6 : {
11910 6 : tree _r;
11911 6 : _r = captures[2];
11912 6 : if (TREE_SIDE_EFFECTS (captures[3]))
11913 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11914 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
11915 6 : return _r;
11916 : }
11917 0 : next_after_fail1899:;
11918 : }
11919 : }
11920 : }
11921 : }
11922 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11923 : {
11924 0 : if (uniform_integer_cst_p (_q81))
11925 : {
11926 0 : {
11927 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11928 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11929 : )
11930 : {
11931 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1900;
11932 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1900;
11933 0 : {
11934 0 : tree _r;
11935 0 : _r = captures[2];
11936 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11937 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11938 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
11939 0 : return _r;
11940 : }
11941 0 : next_after_fail1900:;
11942 : }
11943 : }
11944 : }
11945 : }
11946 : break;
11947 : }
11948 : default:;
11949 : }
11950 : }
11951 : }
11952 23 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11953 : {
11954 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11955 : {
11956 0 : switch (TREE_CODE (_p2))
11957 : {
11958 0 : case PLUS_EXPR:
11959 0 : {
11960 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11961 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11962 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11963 : {
11964 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11965 : {
11966 0 : {
11967 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11968 0 : const enum tree_code op = PLUS_EXPR;
11969 0 : if (ANY_INTEGRAL_TYPE_P (type)
11970 : )
11971 : {
11972 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1901;
11973 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1901;
11974 0 : {
11975 0 : tree _r;
11976 0 : _r = captures[2];
11977 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
11978 0 : return _r;
11979 : }
11980 0 : next_after_fail1901:;
11981 : }
11982 : }
11983 : }
11984 : }
11985 : break;
11986 : }
11987 0 : case MULT_EXPR:
11988 0 : {
11989 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11990 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11991 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11992 : {
11993 0 : if (uniform_integer_cst_p (_q81))
11994 : {
11995 0 : {
11996 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11997 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11998 : )
11999 : {
12000 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1902;
12001 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1902;
12002 0 : {
12003 0 : tree _r;
12004 0 : _r = captures[2];
12005 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12006 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12007 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12008 0 : return _r;
12009 : }
12010 0 : next_after_fail1902:;
12011 : }
12012 : }
12013 : }
12014 : }
12015 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12016 : {
12017 0 : if (uniform_integer_cst_p (_q81))
12018 : {
12019 0 : {
12020 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
12021 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12022 : )
12023 : {
12024 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1903;
12025 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1903;
12026 0 : {
12027 0 : tree _r;
12028 0 : _r = captures[2];
12029 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12030 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12031 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12032 0 : return _r;
12033 : }
12034 0 : next_after_fail1903:;
12035 : }
12036 : }
12037 : }
12038 : }
12039 : break;
12040 : }
12041 : default:;
12042 : }
12043 : }
12044 : }
12045 : break;
12046 : }
12047 : default:;
12048 : }
12049 : break;
12050 : }
12051 386048 : default:;
12052 : }
12053 386048 : switch (TREE_CODE (_p1))
12054 : {
12055 6 : case VEC_COND_EXPR:
12056 6 : {
12057 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12058 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12059 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12060 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12061 : {
12062 0 : {
12063 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
12064 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1904;
12065 0 : {
12066 0 : tree res_op0;
12067 0 : res_op0 = captures[0];
12068 0 : tree res_op1;
12069 0 : res_op1 = captures[1];
12070 0 : tree res_op2;
12071 0 : res_op2 = captures[3];
12072 0 : tree _r;
12073 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12074 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12075 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12076 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
12077 0 : return _r;
12078 : }
12079 0 : next_after_fail1904:;
12080 : }
12081 : }
12082 : break;
12083 : }
12084 386048 : default:;
12085 : }
12086 386048 : switch (TREE_CODE (_p2))
12087 : {
12088 3 : case VEC_COND_EXPR:
12089 3 : {
12090 3 : tree _q40 = TREE_OPERAND (_p2, 0);
12091 3 : tree _q41 = TREE_OPERAND (_p2, 1);
12092 3 : tree _q42 = TREE_OPERAND (_p2, 2);
12093 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12094 : {
12095 0 : {
12096 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
12097 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1905;
12098 0 : {
12099 0 : tree res_op0;
12100 0 : res_op0 = captures[0];
12101 0 : tree res_op1;
12102 0 : res_op1 = captures[1];
12103 0 : tree res_op2;
12104 0 : res_op2 = captures[3];
12105 0 : tree _r;
12106 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12107 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12108 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12109 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1053, __FILE__, __LINE__, true);
12110 0 : return _r;
12111 : }
12112 0 : next_after_fail1905:;
12113 : }
12114 : }
12115 3 : {
12116 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
12117 3 : if (inverse_conditions_p (captures[0], captures[2])
12118 : )
12119 : {
12120 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1906;
12121 0 : {
12122 0 : tree res_op0;
12123 0 : res_op0 = captures[0];
12124 0 : tree res_op1;
12125 0 : res_op1 = captures[1];
12126 0 : tree res_op2;
12127 0 : res_op2 = captures[3];
12128 0 : tree _r;
12129 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12130 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12131 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12132 0 : if (TREE_SIDE_EFFECTS (captures[4]))
12133 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
12134 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12135 0 : return _r;
12136 : }
12137 0 : next_after_fail1906:;
12138 : }
12139 : }
12140 3 : break;
12141 : }
12142 386048 : default:;
12143 : }
12144 386048 : switch (TREE_CODE (_p1))
12145 : {
12146 6 : case VEC_COND_EXPR:
12147 6 : {
12148 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12149 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12150 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12151 6 : {
12152 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
12153 6 : if (inverse_conditions_p (captures[0], captures[1])
12154 : )
12155 : {
12156 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1907;
12157 0 : {
12158 0 : tree res_op0;
12159 0 : res_op0 = captures[0];
12160 0 : tree res_op1;
12161 0 : res_op1 = captures[3];
12162 0 : tree res_op2;
12163 0 : res_op2 = captures[4];
12164 0 : tree _r;
12165 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12166 0 : if (TREE_SIDE_EFFECTS (captures[1]))
12167 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12168 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12169 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12170 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12171 0 : return _r;
12172 : }
12173 0 : next_after_fail1907:;
12174 : }
12175 : }
12176 6 : break;
12177 : }
12178 386048 : default:;
12179 : }
12180 386048 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
12181 : {
12182 33 : {
12183 33 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12184 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1908;
12185 33 : {
12186 33 : tree _r;
12187 33 : _r = captures[1];
12188 33 : if (TREE_SIDE_EFFECTS (captures[0]))
12189 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12190 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
12191 33 : return _r;
12192 : }
12193 0 : next_after_fail1908:;
12194 : }
12195 : }
12196 386015 : switch (TREE_CODE (_p0))
12197 : {
12198 67129 : case EQ_EXPR:
12199 67129 : {
12200 67129 : tree _q20 = TREE_OPERAND (_p0, 0);
12201 67129 : tree _q21 = TREE_OPERAND (_p0, 1);
12202 67129 : if (zerop (_q21))
12203 : {
12204 1087 : switch (TREE_CODE (_p2))
12205 : {
12206 0 : case NEGATE_EXPR:
12207 0 : {
12208 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12209 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12210 : {
12211 0 : {
12212 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12213 0 : const enum tree_code cmp = EQ_EXPR;
12214 0 : if (!HONOR_SIGNED_ZEROS (type)
12215 0 : && bitwise_equal_p (captures[0], captures[1])
12216 : )
12217 : {
12218 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1909;
12219 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1909;
12220 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1909;
12221 0 : {
12222 0 : tree _r;
12223 0 : _r = captures[2];
12224 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12225 0 : return _r;
12226 : }
12227 0 : next_after_fail1909:;
12228 : }
12229 : }
12230 : }
12231 : break;
12232 : }
12233 1087 : default:;
12234 : }
12235 1087 : if (zerop (_p1))
12236 : {
12237 18 : switch (TREE_CODE (_p2))
12238 : {
12239 0 : case NEGATE_EXPR:
12240 0 : {
12241 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12242 0 : {
12243 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12244 0 : const enum tree_code cmp = EQ_EXPR;
12245 0 : if (!HONOR_SIGNED_ZEROS (type)
12246 0 : && bitwise_equal_p (captures[0], captures[2])
12247 : )
12248 : {
12249 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1910;
12250 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1910;
12251 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1910;
12252 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1910;
12253 0 : {
12254 0 : tree _r;
12255 0 : _r = captures[1];
12256 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12257 0 : return _r;
12258 : }
12259 0 : next_after_fail1910:;
12260 : }
12261 : }
12262 0 : break;
12263 : }
12264 : default:;
12265 : }
12266 : }
12267 : }
12268 67129 : switch (TREE_CODE (_q20))
12269 : {
12270 0 : case MINUS_EXPR:
12271 0 : {
12272 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12273 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12274 0 : if (zerop (_q21))
12275 : {
12276 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12277 : {
12278 0 : switch (TREE_CODE (_p2))
12279 : {
12280 0 : case MINUS_EXPR:
12281 0 : {
12282 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12283 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12284 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12285 : {
12286 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12287 : {
12288 0 : {
12289 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12290 0 : const enum tree_code cmp = EQ_EXPR;
12291 0 : if (!HONOR_SIGNED_ZEROS (type)
12292 : )
12293 : {
12294 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1911;
12295 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1911;
12296 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
12297 0 : {
12298 0 : tree _r;
12299 0 : _r = captures[3];
12300 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
12301 0 : return _r;
12302 : }
12303 0 : next_after_fail1911:;
12304 : }
12305 : }
12306 : }
12307 : }
12308 : break;
12309 : }
12310 : default:;
12311 : }
12312 : }
12313 : }
12314 0 : if (integer_zerop (_q21))
12315 : {
12316 0 : if (integer_zerop (_p1))
12317 : {
12318 0 : switch (TREE_CODE (_p2))
12319 : {
12320 0 : case MINUS_EXPR:
12321 0 : {
12322 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12323 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12324 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12325 : {
12326 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12327 : {
12328 0 : {
12329 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12330 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12331 0 : if (res) return res;
12332 : }
12333 : }
12334 : }
12335 : break;
12336 : }
12337 : default:;
12338 : }
12339 : }
12340 : }
12341 : break;
12342 : }
12343 : default:;
12344 : }
12345 : break;
12346 : }
12347 0 : case UNEQ_EXPR:
12348 0 : {
12349 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12350 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12351 0 : if (zerop (_q21))
12352 : {
12353 0 : switch (TREE_CODE (_p2))
12354 : {
12355 0 : case NEGATE_EXPR:
12356 0 : {
12357 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12358 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12359 : {
12360 0 : {
12361 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12362 0 : const enum tree_code cmp = UNEQ_EXPR;
12363 0 : if (!HONOR_SIGNED_ZEROS (type)
12364 0 : && bitwise_equal_p (captures[0], captures[1])
12365 : )
12366 : {
12367 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1912;
12368 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1912;
12369 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
12370 0 : {
12371 0 : tree _r;
12372 0 : _r = captures[2];
12373 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
12374 0 : return _r;
12375 : }
12376 0 : next_after_fail1912:;
12377 : }
12378 : }
12379 : }
12380 : break;
12381 : }
12382 0 : default:;
12383 : }
12384 0 : if (zerop (_p1))
12385 : {
12386 0 : switch (TREE_CODE (_p2))
12387 : {
12388 0 : case NEGATE_EXPR:
12389 0 : {
12390 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12391 0 : {
12392 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12393 0 : const enum tree_code cmp = UNEQ_EXPR;
12394 0 : if (!HONOR_SIGNED_ZEROS (type)
12395 0 : && bitwise_equal_p (captures[0], captures[2])
12396 : )
12397 : {
12398 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
12399 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1913;
12400 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1913;
12401 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
12402 0 : {
12403 0 : tree _r;
12404 0 : _r = captures[1];
12405 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
12406 0 : return _r;
12407 : }
12408 0 : next_after_fail1913:;
12409 : }
12410 : }
12411 0 : break;
12412 : }
12413 : default:;
12414 : }
12415 : }
12416 : }
12417 0 : switch (TREE_CODE (_q20))
12418 : {
12419 0 : case MINUS_EXPR:
12420 0 : {
12421 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12422 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12423 0 : if (zerop (_q21))
12424 : {
12425 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12426 : {
12427 0 : switch (TREE_CODE (_p2))
12428 : {
12429 0 : case MINUS_EXPR:
12430 0 : {
12431 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12432 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12433 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12434 : {
12435 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12436 : {
12437 0 : {
12438 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12439 0 : const enum tree_code cmp = UNEQ_EXPR;
12440 0 : if (!HONOR_SIGNED_ZEROS (type)
12441 : )
12442 : {
12443 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1914;
12444 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1914;
12445 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
12446 0 : {
12447 0 : tree _r;
12448 0 : _r = captures[3];
12449 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
12450 0 : return _r;
12451 : }
12452 0 : next_after_fail1914:;
12453 : }
12454 : }
12455 : }
12456 : }
12457 : break;
12458 : }
12459 : default:;
12460 : }
12461 : }
12462 : }
12463 0 : if (integer_zerop (_q21))
12464 : {
12465 0 : if (integer_zerop (_p1))
12466 : {
12467 0 : switch (TREE_CODE (_p2))
12468 : {
12469 0 : case MINUS_EXPR:
12470 0 : {
12471 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12472 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12473 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12474 : {
12475 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12476 : {
12477 0 : {
12478 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12479 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12480 0 : if (res) return res;
12481 : }
12482 : }
12483 : }
12484 : break;
12485 : }
12486 : default:;
12487 : }
12488 : }
12489 : }
12490 : break;
12491 : }
12492 : default:;
12493 : }
12494 : break;
12495 : }
12496 1293 : case NE_EXPR:
12497 1293 : {
12498 1293 : tree _q20 = TREE_OPERAND (_p0, 0);
12499 1293 : tree _q21 = TREE_OPERAND (_p0, 1);
12500 1293 : if (zerop (_q21))
12501 : {
12502 336 : switch (TREE_CODE (_p2))
12503 : {
12504 0 : case NEGATE_EXPR:
12505 0 : {
12506 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12507 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12508 : {
12509 0 : {
12510 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12511 0 : const enum tree_code cmp = NE_EXPR;
12512 0 : if (!HONOR_SIGNED_ZEROS (type)
12513 0 : && bitwise_equal_p (captures[0], captures[1])
12514 : )
12515 : {
12516 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
12517 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
12518 0 : {
12519 0 : tree _r;
12520 0 : _r = captures[1];
12521 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
12522 0 : return _r;
12523 : }
12524 0 : next_after_fail1915:;
12525 : }
12526 : }
12527 : }
12528 : break;
12529 : }
12530 336 : default:;
12531 : }
12532 336 : if (integer_zerop (_p2))
12533 : {
12534 190 : {
12535 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12536 190 : const enum tree_code cmp = NE_EXPR;
12537 190 : if (!HONOR_SIGNED_ZEROS (type)
12538 190 : && bitwise_equal_p (captures[0], captures[1])
12539 : )
12540 : {
12541 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1916;
12542 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1916;
12543 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
12544 0 : {
12545 0 : tree _r;
12546 0 : _r = captures[1];
12547 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12548 0 : return _r;
12549 : }
12550 190 : next_after_fail1916:;
12551 : }
12552 : }
12553 : }
12554 : }
12555 1293 : switch (TREE_CODE (_q20))
12556 : {
12557 40 : case MINUS_EXPR:
12558 40 : {
12559 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12560 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12561 40 : if (zerop (_q21))
12562 : {
12563 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12564 : {
12565 0 : switch (TREE_CODE (_p2))
12566 : {
12567 0 : case MINUS_EXPR:
12568 0 : {
12569 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12570 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12571 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12572 : {
12573 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12574 : {
12575 0 : {
12576 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12577 0 : const enum tree_code cmp = NE_EXPR;
12578 0 : if (!HONOR_SIGNED_ZEROS (type)
12579 : )
12580 : {
12581 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1917;
12582 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1917;
12583 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
12584 0 : {
12585 0 : tree _r;
12586 0 : _r = captures[0];
12587 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12588 0 : return _r;
12589 : }
12590 0 : next_after_fail1917:;
12591 : }
12592 : }
12593 : }
12594 : }
12595 : break;
12596 : }
12597 : default:;
12598 : }
12599 : }
12600 : }
12601 40 : if (integer_zerop (_q21))
12602 : {
12603 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12604 : {
12605 0 : if (integer_zerop (_p2))
12606 : {
12607 0 : {
12608 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12609 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12610 0 : if (res) return res;
12611 : }
12612 : }
12613 : }
12614 : }
12615 : break;
12616 : }
12617 : default:;
12618 : }
12619 : break;
12620 : }
12621 0 : case LTGT_EXPR:
12622 0 : {
12623 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12624 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12625 0 : if (zerop (_q21))
12626 : {
12627 0 : switch (TREE_CODE (_p2))
12628 : {
12629 0 : case NEGATE_EXPR:
12630 0 : {
12631 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12632 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12633 : {
12634 0 : {
12635 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12636 0 : const enum tree_code cmp = LTGT_EXPR;
12637 0 : if (!HONOR_SIGNED_ZEROS (type)
12638 0 : && bitwise_equal_p (captures[0], captures[1])
12639 : )
12640 : {
12641 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1918;
12642 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
12643 0 : {
12644 0 : tree _r;
12645 0 : _r = captures[1];
12646 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
12647 0 : return _r;
12648 : }
12649 0 : next_after_fail1918:;
12650 : }
12651 : }
12652 : }
12653 : break;
12654 : }
12655 0 : default:;
12656 : }
12657 0 : if (integer_zerop (_p2))
12658 : {
12659 0 : {
12660 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12661 0 : const enum tree_code cmp = LTGT_EXPR;
12662 0 : if (!HONOR_SIGNED_ZEROS (type)
12663 0 : && bitwise_equal_p (captures[0], captures[1])
12664 : )
12665 : {
12666 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1919;
12667 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1919;
12668 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
12669 0 : {
12670 0 : tree _r;
12671 0 : _r = captures[1];
12672 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
12673 0 : return _r;
12674 : }
12675 0 : next_after_fail1919:;
12676 : }
12677 : }
12678 : }
12679 : }
12680 0 : switch (TREE_CODE (_q20))
12681 : {
12682 0 : case MINUS_EXPR:
12683 0 : {
12684 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12685 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12686 0 : if (zerop (_q21))
12687 : {
12688 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12689 : {
12690 0 : switch (TREE_CODE (_p2))
12691 : {
12692 0 : case MINUS_EXPR:
12693 0 : {
12694 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12695 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12696 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12697 : {
12698 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12699 : {
12700 0 : {
12701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12702 0 : const enum tree_code cmp = LTGT_EXPR;
12703 0 : if (!HONOR_SIGNED_ZEROS (type)
12704 : )
12705 : {
12706 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1920;
12707 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1920;
12708 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
12709 0 : {
12710 0 : tree _r;
12711 0 : _r = captures[0];
12712 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
12713 0 : return _r;
12714 : }
12715 0 : next_after_fail1920:;
12716 : }
12717 : }
12718 : }
12719 : }
12720 : break;
12721 : }
12722 : default:;
12723 : }
12724 : }
12725 : }
12726 0 : if (integer_zerop (_q21))
12727 : {
12728 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12729 : {
12730 0 : if (integer_zerop (_p2))
12731 : {
12732 0 : {
12733 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12734 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12735 0 : if (res) return res;
12736 : }
12737 : }
12738 : }
12739 : }
12740 : break;
12741 : }
12742 : default:;
12743 : }
12744 : break;
12745 : }
12746 1177 : case GE_EXPR:
12747 1177 : {
12748 1177 : tree _q20 = TREE_OPERAND (_p0, 0);
12749 1177 : tree _q21 = TREE_OPERAND (_p0, 1);
12750 1177 : switch (TREE_CODE (_q20))
12751 : {
12752 3 : CASE_CONVERT:
12753 3 : {
12754 3 : tree _q30 = TREE_OPERAND (_q20, 0);
12755 3 : if (zerop (_q21))
12756 : {
12757 0 : switch (TREE_CODE (_p2))
12758 : {
12759 0 : case NEGATE_EXPR:
12760 0 : {
12761 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12762 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12763 : {
12764 0 : {
12765 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12766 0 : const enum tree_code cmp = GE_EXPR;
12767 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12768 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12769 0 : && element_precision (captures[1])
12770 0 : <= element_precision (captures[0])
12771 0 : && bitwise_equal_p (captures[1], captures[2])
12772 0 : && (!VECTOR_TYPE_P (type)
12773 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12774 : )
12775 : {
12776 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12777 : )
12778 : {
12779 0 : {
12780 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12781 0 : if (types_match (captures[0], stype)
12782 : )
12783 : {
12784 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1921;
12785 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
12786 0 : {
12787 0 : tree res_op0;
12788 0 : res_op0 = captures[0];
12789 0 : tree _r;
12790 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12791 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12792 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12793 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12794 0 : return _r;
12795 : }
12796 0 : next_after_fail1921:;
12797 : }
12798 : else
12799 : {
12800 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1922;
12801 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
12802 0 : {
12803 0 : tree res_op0;
12804 0 : {
12805 0 : tree _o1[1], _r1;
12806 0 : _o1[0] = captures[2];
12807 0 : if (TREE_TYPE (_o1[0]) != stype)
12808 : {
12809 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12810 : }
12811 : else
12812 : _r1 = _o1[0];
12813 0 : res_op0 = _r1;
12814 : }
12815 0 : tree _r;
12816 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12818 0 : return _r;
12819 : }
12820 0 : next_after_fail1922:;
12821 : }
12822 : }
12823 : }
12824 : else
12825 : {
12826 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1923;
12827 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
12828 0 : {
12829 0 : tree res_op0;
12830 0 : res_op0 = captures[2];
12831 0 : tree _r;
12832 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12833 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12834 0 : return _r;
12835 : }
12836 0 : next_after_fail1923:;
12837 : }
12838 : }
12839 : }
12840 : }
12841 : break;
12842 : }
12843 : default:;
12844 : }
12845 : }
12846 : break;
12847 : }
12848 1177 : default:;
12849 : }
12850 1177 : if (zerop (_q21))
12851 : {
12852 334 : switch (TREE_CODE (_p2))
12853 : {
12854 3 : case NEGATE_EXPR:
12855 3 : {
12856 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12857 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12858 : {
12859 3 : {
12860 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12861 3 : const enum tree_code cmp = GE_EXPR;
12862 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12863 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12864 6 : && element_precision (captures[1])
12865 3 : <= element_precision (captures[0])
12866 3 : && bitwise_equal_p (captures[1], captures[2])
12867 6 : && (!VECTOR_TYPE_P (type)
12868 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12869 : )
12870 : {
12871 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12872 : )
12873 : {
12874 0 : {
12875 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12876 0 : if (types_match (captures[0], stype)
12877 : )
12878 : {
12879 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1924;
12880 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
12881 0 : {
12882 0 : tree res_op0;
12883 0 : res_op0 = captures[0];
12884 0 : tree _r;
12885 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12886 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12887 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12888 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12889 0 : return _r;
12890 : }
12891 0 : next_after_fail1924:;
12892 : }
12893 : else
12894 : {
12895 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1925;
12896 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
12897 0 : {
12898 0 : tree res_op0;
12899 0 : {
12900 0 : tree _o1[1], _r1;
12901 0 : _o1[0] = captures[2];
12902 0 : if (TREE_TYPE (_o1[0]) != stype)
12903 : {
12904 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12905 : }
12906 : else
12907 : _r1 = _o1[0];
12908 0 : res_op0 = _r1;
12909 : }
12910 0 : tree _r;
12911 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12912 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12913 0 : return _r;
12914 : }
12915 0 : next_after_fail1925:;
12916 : }
12917 : }
12918 : }
12919 : else
12920 : {
12921 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1926;
12922 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
12923 3 : {
12924 3 : tree res_op0;
12925 3 : res_op0 = captures[2];
12926 3 : tree _r;
12927 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12928 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12929 3 : return _r;
12930 : }
12931 0 : next_after_fail1926:;
12932 : }
12933 : }
12934 : }
12935 : }
12936 : break;
12937 : }
12938 : default:;
12939 : }
12940 : }
12941 1174 : switch (TREE_CODE (_q20))
12942 : {
12943 0 : case MINUS_EXPR:
12944 0 : {
12945 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12946 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12947 0 : if (zerop (_q21))
12948 : {
12949 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12950 : {
12951 0 : switch (TREE_CODE (_p2))
12952 : {
12953 0 : case MINUS_EXPR:
12954 0 : {
12955 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12956 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12957 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12958 : {
12959 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12960 : {
12961 0 : {
12962 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12963 0 : const enum tree_code cmp = GE_EXPR;
12964 0 : if (!HONOR_SIGNED_ZEROS (type)
12965 0 : && !TYPE_UNSIGNED (type)
12966 0 : && (!VECTOR_TYPE_P (type)
12967 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12968 : )
12969 : {
12970 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1927;
12971 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1927;
12972 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
12973 0 : {
12974 0 : tree res_op0;
12975 0 : res_op0 = captures[0];
12976 0 : tree _r;
12977 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12978 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
12979 0 : return _r;
12980 : }
12981 0 : next_after_fail1927:;
12982 : }
12983 : }
12984 : }
12985 : }
12986 : break;
12987 : }
12988 : default:;
12989 : }
12990 : }
12991 : }
12992 : break;
12993 : }
12994 : default:;
12995 : }
12996 : break;
12997 : }
12998 66427 : case GT_EXPR:
12999 66427 : {
13000 66427 : tree _q20 = TREE_OPERAND (_p0, 0);
13001 66427 : tree _q21 = TREE_OPERAND (_p0, 1);
13002 66427 : switch (TREE_CODE (_q20))
13003 : {
13004 13 : CASE_CONVERT:
13005 13 : {
13006 13 : tree _q30 = TREE_OPERAND (_q20, 0);
13007 13 : if (zerop (_q21))
13008 : {
13009 1 : switch (TREE_CODE (_p2))
13010 : {
13011 0 : case NEGATE_EXPR:
13012 0 : {
13013 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13014 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13015 : {
13016 0 : {
13017 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13018 0 : const enum tree_code cmp = GT_EXPR;
13019 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13020 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13021 0 : && element_precision (captures[1])
13022 0 : <= element_precision (captures[0])
13023 0 : && bitwise_equal_p (captures[1], captures[2])
13024 0 : && (!VECTOR_TYPE_P (type)
13025 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13026 : )
13027 : {
13028 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13029 : )
13030 : {
13031 0 : {
13032 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13033 0 : if (types_match (captures[0], stype)
13034 : )
13035 : {
13036 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1928;
13037 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
13038 0 : {
13039 0 : tree res_op0;
13040 0 : res_op0 = captures[0];
13041 0 : tree _r;
13042 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13043 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13044 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13045 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
13046 0 : return _r;
13047 : }
13048 0 : next_after_fail1928:;
13049 : }
13050 : else
13051 : {
13052 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1929;
13053 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
13054 0 : {
13055 0 : tree res_op0;
13056 0 : {
13057 0 : tree _o1[1], _r1;
13058 0 : _o1[0] = captures[2];
13059 0 : if (TREE_TYPE (_o1[0]) != stype)
13060 : {
13061 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13062 : }
13063 : else
13064 : _r1 = _o1[0];
13065 0 : res_op0 = _r1;
13066 : }
13067 0 : tree _r;
13068 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13069 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13070 0 : return _r;
13071 : }
13072 0 : next_after_fail1929:;
13073 : }
13074 : }
13075 : }
13076 : else
13077 : {
13078 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1930;
13079 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
13080 0 : {
13081 0 : tree res_op0;
13082 0 : res_op0 = captures[2];
13083 0 : tree _r;
13084 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13085 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13086 0 : return _r;
13087 : }
13088 0 : next_after_fail1930:;
13089 : }
13090 : }
13091 : }
13092 : }
13093 : break;
13094 : }
13095 : default:;
13096 : }
13097 : }
13098 : break;
13099 : }
13100 66427 : default:;
13101 : }
13102 66427 : if (zerop (_q21))
13103 : {
13104 84 : switch (TREE_CODE (_p2))
13105 : {
13106 6 : case NEGATE_EXPR:
13107 6 : {
13108 6 : tree _q60 = TREE_OPERAND (_p2, 0);
13109 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13110 : {
13111 6 : {
13112 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13113 6 : const enum tree_code cmp = GT_EXPR;
13114 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13115 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13116 12 : && element_precision (captures[1])
13117 6 : <= element_precision (captures[0])
13118 6 : && bitwise_equal_p (captures[1], captures[2])
13119 12 : && (!VECTOR_TYPE_P (type)
13120 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13121 : )
13122 : {
13123 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13124 : )
13125 : {
13126 0 : {
13127 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13128 0 : if (types_match (captures[0], stype)
13129 : )
13130 : {
13131 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1931;
13132 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
13133 0 : {
13134 0 : tree res_op0;
13135 0 : res_op0 = captures[0];
13136 0 : tree _r;
13137 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13138 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13139 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13140 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
13141 0 : return _r;
13142 : }
13143 0 : next_after_fail1931:;
13144 : }
13145 : else
13146 : {
13147 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1932;
13148 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
13149 0 : {
13150 0 : tree res_op0;
13151 0 : {
13152 0 : tree _o1[1], _r1;
13153 0 : _o1[0] = captures[2];
13154 0 : if (TREE_TYPE (_o1[0]) != stype)
13155 : {
13156 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13157 : }
13158 : else
13159 : _r1 = _o1[0];
13160 0 : res_op0 = _r1;
13161 : }
13162 0 : tree _r;
13163 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13164 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
13165 0 : return _r;
13166 : }
13167 0 : next_after_fail1932:;
13168 : }
13169 : }
13170 : }
13171 : else
13172 : {
13173 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1933;
13174 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
13175 6 : {
13176 6 : tree res_op0;
13177 6 : res_op0 = captures[2];
13178 6 : tree _r;
13179 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13180 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
13181 6 : return _r;
13182 : }
13183 0 : next_after_fail1933:;
13184 : }
13185 : }
13186 : }
13187 : }
13188 : break;
13189 : }
13190 : default:;
13191 : }
13192 : }
13193 66421 : switch (TREE_CODE (_q20))
13194 : {
13195 0 : case MINUS_EXPR:
13196 0 : {
13197 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13198 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13199 0 : if (zerop (_q21))
13200 : {
13201 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13202 : {
13203 0 : switch (TREE_CODE (_p2))
13204 : {
13205 0 : case MINUS_EXPR:
13206 0 : {
13207 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13208 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13209 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13210 : {
13211 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13212 : {
13213 0 : {
13214 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13215 0 : const enum tree_code cmp = GT_EXPR;
13216 0 : if (!HONOR_SIGNED_ZEROS (type)
13217 0 : && !TYPE_UNSIGNED (type)
13218 0 : && (!VECTOR_TYPE_P (type)
13219 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13220 : )
13221 : {
13222 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1934;
13223 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1934;
13224 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
13225 0 : {
13226 0 : tree res_op0;
13227 0 : res_op0 = captures[0];
13228 0 : tree _r;
13229 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13230 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
13231 0 : return _r;
13232 : }
13233 0 : next_after_fail1934:;
13234 : }
13235 : }
13236 : }
13237 : }
13238 : break;
13239 : }
13240 : default:;
13241 : }
13242 : }
13243 : }
13244 : break;
13245 : }
13246 : default:;
13247 : }
13248 : break;
13249 : }
13250 966 : case LE_EXPR:
13251 966 : {
13252 966 : tree _q20 = TREE_OPERAND (_p0, 0);
13253 966 : tree _q21 = TREE_OPERAND (_p0, 1);
13254 966 : switch (TREE_CODE (_q20))
13255 : {
13256 62 : CASE_CONVERT:
13257 62 : {
13258 62 : tree _q30 = TREE_OPERAND (_q20, 0);
13259 62 : if (zerop (_q21))
13260 : {
13261 0 : switch (TREE_CODE (_p2))
13262 : {
13263 0 : case NEGATE_EXPR:
13264 0 : {
13265 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13266 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13267 : {
13268 0 : {
13269 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13270 0 : const enum tree_code cmp = LE_EXPR;
13271 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13272 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13273 0 : && element_precision (captures[1])
13274 0 : <= element_precision (captures[0])
13275 0 : && bitwise_equal_p (captures[1], captures[2])
13276 0 : && (!VECTOR_TYPE_P (type)
13277 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13278 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13279 : )
13280 : {
13281 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13282 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13283 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13284 : )
13285 : {
13286 0 : {
13287 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13288 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13289 0 : if (types_match (captures[0], stype)
13290 : )
13291 : {
13292 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1935;
13293 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
13294 0 : {
13295 0 : tree res_op0;
13296 0 : {
13297 0 : tree _o1[1], _r1;
13298 0 : {
13299 0 : tree _o2[1], _r2;
13300 0 : _o2[0] = captures[0];
13301 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13302 0 : _o1[0] = _r2;
13303 : }
13304 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13305 0 : res_op0 = _r1;
13306 : }
13307 0 : tree _r;
13308 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13309 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13310 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13311 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13312 0 : return _r;
13313 : }
13314 0 : next_after_fail1935:;
13315 : }
13316 : else
13317 : {
13318 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1936;
13319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
13320 0 : {
13321 0 : tree res_op0;
13322 0 : {
13323 0 : tree _o1[1], _r1;
13324 0 : {
13325 0 : tree _o2[1], _r2;
13326 0 : {
13327 0 : tree _o3[1], _r3;
13328 0 : _o3[0] = captures[2];
13329 0 : if (TREE_TYPE (_o3[0]) != stype)
13330 : {
13331 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13332 : }
13333 : else
13334 : _r3 = _o3[0];
13335 0 : _o2[0] = _r3;
13336 : }
13337 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13338 0 : _o1[0] = _r2;
13339 : }
13340 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13341 0 : res_op0 = _r1;
13342 : }
13343 0 : tree _r;
13344 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13345 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13346 0 : return _r;
13347 : }
13348 0 : next_after_fail1936:;
13349 : }
13350 : }
13351 : }
13352 : else
13353 : {
13354 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1937;
13355 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
13356 0 : {
13357 0 : tree res_op0;
13358 0 : {
13359 0 : tree _o1[1], _r1;
13360 0 : {
13361 0 : tree _o2[1], _r2;
13362 0 : _o2[0] = captures[2];
13363 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13364 0 : _o1[0] = _r2;
13365 : }
13366 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13367 0 : res_op0 = _r1;
13368 : }
13369 0 : tree _r;
13370 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13371 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13372 0 : return _r;
13373 : }
13374 0 : next_after_fail1937:;
13375 : }
13376 : }
13377 : }
13378 : }
13379 : break;
13380 : }
13381 : default:;
13382 : }
13383 : }
13384 : break;
13385 : }
13386 966 : default:;
13387 : }
13388 966 : if (zerop (_q21))
13389 : {
13390 18 : switch (TREE_CODE (_p2))
13391 : {
13392 0 : case NEGATE_EXPR:
13393 0 : {
13394 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13395 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13396 : {
13397 0 : {
13398 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13399 0 : const enum tree_code cmp = LE_EXPR;
13400 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13401 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13402 0 : && element_precision (captures[1])
13403 0 : <= element_precision (captures[0])
13404 0 : && bitwise_equal_p (captures[1], captures[2])
13405 0 : && (!VECTOR_TYPE_P (type)
13406 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13407 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13408 : )
13409 : {
13410 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13411 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13412 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13413 : )
13414 : {
13415 0 : {
13416 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13417 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13418 0 : if (types_match (captures[0], stype)
13419 : )
13420 : {
13421 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1938;
13422 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
13423 0 : {
13424 0 : tree res_op0;
13425 0 : {
13426 0 : tree _o1[1], _r1;
13427 0 : {
13428 0 : tree _o2[1], _r2;
13429 0 : _o2[0] = captures[0];
13430 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13431 0 : _o1[0] = _r2;
13432 : }
13433 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13434 0 : res_op0 = _r1;
13435 : }
13436 0 : tree _r;
13437 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13438 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13439 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13440 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13441 0 : return _r;
13442 : }
13443 0 : next_after_fail1938:;
13444 : }
13445 : else
13446 : {
13447 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1939;
13448 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
13449 0 : {
13450 0 : tree res_op0;
13451 0 : {
13452 0 : tree _o1[1], _r1;
13453 0 : {
13454 0 : tree _o2[1], _r2;
13455 0 : {
13456 0 : tree _o3[1], _r3;
13457 0 : _o3[0] = captures[2];
13458 0 : if (TREE_TYPE (_o3[0]) != stype)
13459 : {
13460 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13461 : }
13462 : else
13463 : _r3 = _o3[0];
13464 0 : _o2[0] = _r3;
13465 : }
13466 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13467 0 : _o1[0] = _r2;
13468 : }
13469 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13470 0 : res_op0 = _r1;
13471 : }
13472 0 : tree _r;
13473 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13474 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13475 0 : return _r;
13476 : }
13477 0 : next_after_fail1939:;
13478 : }
13479 : }
13480 : }
13481 : else
13482 : {
13483 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1940;
13484 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
13485 0 : {
13486 0 : tree res_op0;
13487 0 : {
13488 0 : tree _o1[1], _r1;
13489 0 : {
13490 0 : tree _o2[1], _r2;
13491 0 : _o2[0] = captures[2];
13492 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13493 0 : _o1[0] = _r2;
13494 : }
13495 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13496 0 : res_op0 = _r1;
13497 : }
13498 0 : tree _r;
13499 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13500 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13501 0 : return _r;
13502 : }
13503 0 : next_after_fail1940:;
13504 : }
13505 : }
13506 : }
13507 : }
13508 : break;
13509 : }
13510 : default:;
13511 : }
13512 : }
13513 966 : switch (TREE_CODE (_q20))
13514 : {
13515 0 : case MINUS_EXPR:
13516 0 : {
13517 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13518 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13519 0 : if (zerop (_q21))
13520 : {
13521 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13522 : {
13523 0 : switch (TREE_CODE (_p2))
13524 : {
13525 0 : case MINUS_EXPR:
13526 0 : {
13527 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13528 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13529 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13530 : {
13531 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13532 : {
13533 0 : {
13534 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13535 0 : const enum tree_code cmp = LE_EXPR;
13536 0 : if (!HONOR_SIGNED_ZEROS (type)
13537 0 : && !TYPE_UNSIGNED (type)
13538 : )
13539 : {
13540 0 : if (ANY_INTEGRAL_TYPE_P (type)
13541 0 : && !TYPE_OVERFLOW_WRAPS (type)
13542 0 : && (!VECTOR_TYPE_P (type)
13543 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13544 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13545 : )
13546 : {
13547 0 : {
13548 0 : tree utype = unsigned_type_for (type);
13549 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1941;
13550 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1941;
13551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
13552 0 : {
13553 0 : tree res_op0;
13554 0 : {
13555 0 : tree _o1[1], _r1;
13556 0 : {
13557 0 : tree _o2[1], _r2;
13558 0 : _o2[0] = captures[0];
13559 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13560 0 : _o1[0] = _r2;
13561 : }
13562 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13563 0 : res_op0 = _r1;
13564 : }
13565 0 : tree _r;
13566 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13567 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13568 0 : return _r;
13569 : }
13570 0 : next_after_fail1941:;
13571 : }
13572 : }
13573 : else
13574 : {
13575 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1942;
13576 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1942;
13577 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
13578 0 : {
13579 0 : tree res_op0;
13580 0 : {
13581 0 : tree _o1[1], _r1;
13582 0 : _o1[0] = captures[0];
13583 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13584 0 : res_op0 = _r1;
13585 : }
13586 0 : tree _r;
13587 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13588 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13589 0 : return _r;
13590 : }
13591 0 : next_after_fail1942:;
13592 : }
13593 : }
13594 : }
13595 : }
13596 : }
13597 : break;
13598 : }
13599 : default:;
13600 : }
13601 : }
13602 : }
13603 : break;
13604 : }
13605 : default:;
13606 : }
13607 : break;
13608 : }
13609 20789 : case LT_EXPR:
13610 20789 : {
13611 20789 : tree _q20 = TREE_OPERAND (_p0, 0);
13612 20789 : tree _q21 = TREE_OPERAND (_p0, 1);
13613 20789 : switch (TREE_CODE (_q20))
13614 : {
13615 162 : CASE_CONVERT:
13616 162 : {
13617 162 : tree _q30 = TREE_OPERAND (_q20, 0);
13618 162 : if (zerop (_q21))
13619 : {
13620 83 : switch (TREE_CODE (_p2))
13621 : {
13622 0 : case NEGATE_EXPR:
13623 0 : {
13624 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13625 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13626 : {
13627 0 : {
13628 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13629 0 : const enum tree_code cmp = LT_EXPR;
13630 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13631 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13632 0 : && element_precision (captures[1])
13633 0 : <= element_precision (captures[0])
13634 0 : && bitwise_equal_p (captures[1], captures[2])
13635 0 : && (!VECTOR_TYPE_P (type)
13636 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13637 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13638 : )
13639 : {
13640 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13641 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13642 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13643 : )
13644 : {
13645 0 : {
13646 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13647 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13648 0 : if (types_match (captures[0], stype)
13649 : )
13650 : {
13651 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1943;
13652 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
13653 0 : {
13654 0 : tree res_op0;
13655 0 : {
13656 0 : tree _o1[1], _r1;
13657 0 : {
13658 0 : tree _o2[1], _r2;
13659 0 : _o2[0] = captures[0];
13660 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13661 0 : _o1[0] = _r2;
13662 : }
13663 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13664 0 : res_op0 = _r1;
13665 : }
13666 0 : tree _r;
13667 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13668 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13669 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13670 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13671 0 : return _r;
13672 : }
13673 0 : next_after_fail1943:;
13674 : }
13675 : else
13676 : {
13677 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1944;
13678 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
13679 0 : {
13680 0 : tree res_op0;
13681 0 : {
13682 0 : tree _o1[1], _r1;
13683 0 : {
13684 0 : tree _o2[1], _r2;
13685 0 : {
13686 0 : tree _o3[1], _r3;
13687 0 : _o3[0] = captures[2];
13688 0 : if (TREE_TYPE (_o3[0]) != stype)
13689 : {
13690 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13691 : }
13692 : else
13693 : _r3 = _o3[0];
13694 0 : _o2[0] = _r3;
13695 : }
13696 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13697 0 : _o1[0] = _r2;
13698 : }
13699 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13700 0 : res_op0 = _r1;
13701 : }
13702 0 : tree _r;
13703 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13704 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13705 0 : return _r;
13706 : }
13707 0 : next_after_fail1944:;
13708 : }
13709 : }
13710 : }
13711 : else
13712 : {
13713 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1945;
13714 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
13715 0 : {
13716 0 : tree res_op0;
13717 0 : {
13718 0 : tree _o1[1], _r1;
13719 0 : {
13720 0 : tree _o2[1], _r2;
13721 0 : _o2[0] = captures[2];
13722 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13723 0 : _o1[0] = _r2;
13724 : }
13725 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13726 0 : res_op0 = _r1;
13727 : }
13728 0 : tree _r;
13729 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13730 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13731 0 : return _r;
13732 : }
13733 0 : next_after_fail1945:;
13734 : }
13735 : }
13736 : }
13737 : }
13738 : break;
13739 : }
13740 : default:;
13741 : }
13742 : }
13743 : break;
13744 : }
13745 20789 : default:;
13746 : }
13747 20789 : if (zerop (_q21))
13748 : {
13749 633 : switch (TREE_CODE (_p2))
13750 : {
13751 16 : case NEGATE_EXPR:
13752 16 : {
13753 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13754 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13755 : {
13756 16 : {
13757 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13758 16 : const enum tree_code cmp = LT_EXPR;
13759 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13760 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13761 32 : && element_precision (captures[1])
13762 16 : <= element_precision (captures[0])
13763 16 : && bitwise_equal_p (captures[1], captures[2])
13764 32 : && (!VECTOR_TYPE_P (type)
13765 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13766 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13767 : )
13768 : {
13769 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13770 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13771 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13772 : )
13773 : {
13774 0 : {
13775 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13776 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13777 0 : if (types_match (captures[0], stype)
13778 : )
13779 : {
13780 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1946;
13781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
13782 0 : {
13783 0 : tree res_op0;
13784 0 : {
13785 0 : tree _o1[1], _r1;
13786 0 : {
13787 0 : tree _o2[1], _r2;
13788 0 : _o2[0] = captures[0];
13789 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13790 0 : _o1[0] = _r2;
13791 : }
13792 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13793 0 : res_op0 = _r1;
13794 : }
13795 0 : tree _r;
13796 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13797 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13798 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13799 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13800 0 : return _r;
13801 : }
13802 16 : next_after_fail1946:;
13803 : }
13804 : else
13805 : {
13806 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1947;
13807 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
13808 0 : {
13809 0 : tree res_op0;
13810 0 : {
13811 0 : tree _o1[1], _r1;
13812 0 : {
13813 0 : tree _o2[1], _r2;
13814 0 : {
13815 0 : tree _o3[1], _r3;
13816 0 : _o3[0] = captures[2];
13817 0 : if (TREE_TYPE (_o3[0]) != stype)
13818 : {
13819 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13820 : }
13821 : else
13822 : _r3 = _o3[0];
13823 0 : _o2[0] = _r3;
13824 : }
13825 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13826 0 : _o1[0] = _r2;
13827 : }
13828 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13829 0 : res_op0 = _r1;
13830 : }
13831 0 : tree _r;
13832 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13833 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13834 0 : return _r;
13835 : }
13836 16 : next_after_fail1947:;
13837 : }
13838 : }
13839 : }
13840 : else
13841 : {
13842 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1948;
13843 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
13844 0 : {
13845 0 : tree res_op0;
13846 0 : {
13847 0 : tree _o1[1], _r1;
13848 0 : {
13849 0 : tree _o2[1], _r2;
13850 0 : _o2[0] = captures[2];
13851 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13852 0 : _o1[0] = _r2;
13853 : }
13854 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13855 0 : res_op0 = _r1;
13856 : }
13857 0 : tree _r;
13858 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13860 0 : return _r;
13861 : }
13862 16 : next_after_fail1948:;
13863 : }
13864 : }
13865 : }
13866 : }
13867 : break;
13868 : }
13869 : default:;
13870 : }
13871 : }
13872 20789 : switch (TREE_CODE (_q20))
13873 : {
13874 0 : case MINUS_EXPR:
13875 0 : {
13876 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13877 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13878 0 : if (zerop (_q21))
13879 : {
13880 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13881 : {
13882 0 : switch (TREE_CODE (_p2))
13883 : {
13884 0 : case MINUS_EXPR:
13885 0 : {
13886 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13887 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13888 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13889 : {
13890 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13891 : {
13892 0 : {
13893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13894 0 : const enum tree_code cmp = LT_EXPR;
13895 0 : if (!HONOR_SIGNED_ZEROS (type)
13896 0 : && !TYPE_UNSIGNED (type)
13897 : )
13898 : {
13899 0 : if (ANY_INTEGRAL_TYPE_P (type)
13900 0 : && !TYPE_OVERFLOW_WRAPS (type)
13901 0 : && (!VECTOR_TYPE_P (type)
13902 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13903 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13904 : )
13905 : {
13906 0 : {
13907 0 : tree utype = unsigned_type_for (type);
13908 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1949;
13909 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1949;
13910 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
13911 0 : {
13912 0 : tree res_op0;
13913 0 : {
13914 0 : tree _o1[1], _r1;
13915 0 : {
13916 0 : tree _o2[1], _r2;
13917 0 : _o2[0] = captures[0];
13918 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13919 0 : _o1[0] = _r2;
13920 : }
13921 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13922 0 : res_op0 = _r1;
13923 : }
13924 0 : tree _r;
13925 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13926 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13927 0 : return _r;
13928 : }
13929 0 : next_after_fail1949:;
13930 : }
13931 : }
13932 : else
13933 : {
13934 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1950;
13935 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1950;
13936 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
13937 0 : {
13938 0 : tree res_op0;
13939 0 : {
13940 0 : tree _o1[1], _r1;
13941 0 : _o1[0] = captures[0];
13942 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13943 0 : res_op0 = _r1;
13944 : }
13945 0 : tree _r;
13946 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13947 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13948 0 : return _r;
13949 : }
13950 0 : next_after_fail1950:;
13951 : }
13952 : }
13953 : }
13954 : }
13955 : }
13956 : break;
13957 : }
13958 : default:;
13959 : }
13960 : }
13961 : }
13962 : break;
13963 : }
13964 : default:;
13965 : }
13966 : break;
13967 : }
13968 386006 : default:;
13969 : }
13970 386006 : {
13971 386006 : tree _p0_pops[1];
13972 386006 : if (tree_logical_inverted_value (_p0, _p0_pops))
13973 : {
13974 970 : tree _q20 = _p0_pops[0];
13975 970 : if (tree_truth_valued_p (_q20))
13976 : {
13977 0 : {
13978 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13979 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13980 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13981 : )
13982 : {
13983 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
13984 0 : {
13985 0 : tree res_op0;
13986 0 : res_op0 = captures[0];
13987 0 : tree res_op1;
13988 0 : res_op1 = captures[2];
13989 0 : tree res_op2;
13990 0 : res_op2 = captures[1];
13991 0 : tree _r;
13992 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13993 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13994 0 : return _r;
13995 : }
13996 0 : next_after_fail1951:;
13997 : }
13998 : }
13999 : }
14000 : }
14001 : }
14002 386006 : switch (TREE_CODE (_p1))
14003 : {
14004 0 : case VIEW_CONVERT_EXPR:
14005 0 : {
14006 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14007 0 : switch (TREE_CODE (_q30))
14008 : {
14009 0 : case CALL_EXPR:
14010 0 : switch (get_call_combined_fn (_q30))
14011 : {
14012 0 : case CFN_COND_ADD:
14013 0 : if (call_expr_nargs (_q30) == 4)
14014 : {
14015 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14016 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14017 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14018 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14019 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14020 : {
14021 0 : {
14022 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14023 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14024 0 : if (res) return res;
14025 : }
14026 : }
14027 : }
14028 : break;
14029 0 : case CFN_COND_AND:
14030 0 : if (call_expr_nargs (_q30) == 4)
14031 : {
14032 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14033 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14034 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14035 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14036 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14037 : {
14038 0 : {
14039 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14040 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14041 0 : if (res) return res;
14042 : }
14043 : }
14044 : }
14045 : break;
14046 0 : case CFN_COND_DIV:
14047 0 : if (call_expr_nargs (_q30) == 4)
14048 : {
14049 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14050 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14051 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14052 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14053 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14054 : {
14055 0 : {
14056 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14057 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14058 0 : if (res) return res;
14059 : }
14060 : }
14061 : }
14062 : break;
14063 0 : case CFN_COND_IOR:
14064 0 : if (call_expr_nargs (_q30) == 4)
14065 : {
14066 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14067 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14068 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14069 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14070 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14071 : {
14072 0 : {
14073 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14074 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14075 0 : if (res) return res;
14076 : }
14077 : }
14078 : }
14079 : break;
14080 0 : case CFN_COND_MAX:
14081 0 : if (call_expr_nargs (_q30) == 4)
14082 : {
14083 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14084 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14085 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14086 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14087 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14088 : {
14089 0 : {
14090 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14091 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14092 0 : if (res) return res;
14093 : }
14094 : }
14095 : }
14096 : break;
14097 0 : case CFN_COND_MIN:
14098 0 : if (call_expr_nargs (_q30) == 4)
14099 : {
14100 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14101 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14102 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14103 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14104 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14105 : {
14106 0 : {
14107 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14108 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14109 0 : if (res) return res;
14110 : }
14111 : }
14112 : }
14113 : break;
14114 0 : case CFN_COND_MOD:
14115 0 : if (call_expr_nargs (_q30) == 4)
14116 : {
14117 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14118 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14119 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14120 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14121 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14122 : {
14123 0 : {
14124 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14125 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14126 0 : if (res) return res;
14127 : }
14128 : }
14129 : }
14130 : break;
14131 0 : case CFN_COND_MUL:
14132 0 : if (call_expr_nargs (_q30) == 4)
14133 : {
14134 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14135 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14136 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14137 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14138 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14139 : {
14140 0 : {
14141 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14142 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14143 0 : if (res) return res;
14144 : }
14145 : }
14146 : }
14147 : break;
14148 0 : case CFN_COND_SHL:
14149 0 : if (call_expr_nargs (_q30) == 4)
14150 : {
14151 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14152 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14153 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14154 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14155 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14156 : {
14157 0 : {
14158 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14159 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14160 0 : if (res) return res;
14161 : }
14162 : }
14163 : }
14164 : break;
14165 0 : case CFN_COND_SHR:
14166 0 : if (call_expr_nargs (_q30) == 4)
14167 : {
14168 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14169 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14170 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14171 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14172 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14173 : {
14174 0 : {
14175 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14176 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14177 0 : if (res) return res;
14178 : }
14179 : }
14180 : }
14181 : break;
14182 0 : case CFN_COND_SUB:
14183 0 : if (call_expr_nargs (_q30) == 4)
14184 : {
14185 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14186 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14187 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14188 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14189 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14190 : {
14191 0 : {
14192 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14193 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14194 0 : if (res) return res;
14195 : }
14196 : }
14197 : }
14198 : break;
14199 0 : case CFN_COND_XOR:
14200 0 : if (call_expr_nargs (_q30) == 4)
14201 : {
14202 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14203 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14204 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14205 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14206 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14207 : {
14208 0 : {
14209 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14210 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14211 0 : if (res) return res;
14212 : }
14213 : }
14214 : }
14215 : break;
14216 0 : case CFN_COND_COPYSIGN:
14217 0 : if (call_expr_nargs (_q30) == 4)
14218 : {
14219 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14220 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14221 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14222 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14223 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14224 : {
14225 0 : {
14226 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14227 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14228 0 : if (res) return res;
14229 : }
14230 : }
14231 : }
14232 : break;
14233 0 : case CFN_COND_FMAX:
14234 0 : if (call_expr_nargs (_q30) == 4)
14235 : {
14236 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14237 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14238 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14239 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14240 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14241 : {
14242 0 : {
14243 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14244 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14245 0 : if (res) return res;
14246 : }
14247 : }
14248 : }
14249 : break;
14250 0 : case CFN_COND_FMIN:
14251 0 : if (call_expr_nargs (_q30) == 4)
14252 : {
14253 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14254 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14255 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14256 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14257 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14258 : {
14259 0 : {
14260 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14261 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14262 0 : if (res) return res;
14263 : }
14264 : }
14265 : }
14266 : break;
14267 0 : case CFN_COND_RDIV:
14268 0 : if (call_expr_nargs (_q30) == 4)
14269 : {
14270 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14271 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14272 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14273 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14274 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14275 : {
14276 0 : {
14277 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14278 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14279 0 : if (res) return res;
14280 : }
14281 : }
14282 : }
14283 : break;
14284 : default:;
14285 : }
14286 : break;
14287 : default:;
14288 : }
14289 : break;
14290 : }
14291 12 : case CALL_EXPR:
14292 12 : switch (get_call_combined_fn (_p1))
14293 : {
14294 0 : case CFN_COND_ADD:
14295 0 : if (call_expr_nargs (_p1) == 4)
14296 : {
14297 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14298 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14299 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14300 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14301 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14302 : {
14303 0 : {
14304 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14305 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14306 0 : if (res) return res;
14307 : }
14308 : }
14309 : }
14310 : break;
14311 0 : case CFN_COND_AND:
14312 0 : if (call_expr_nargs (_p1) == 4)
14313 : {
14314 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14315 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14316 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14317 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14318 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14319 : {
14320 0 : {
14321 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14322 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14323 0 : if (res) return res;
14324 : }
14325 : }
14326 : }
14327 : break;
14328 0 : case CFN_COND_DIV:
14329 0 : if (call_expr_nargs (_p1) == 4)
14330 : {
14331 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14332 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14333 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14334 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14335 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14336 : {
14337 0 : {
14338 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14339 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14340 0 : if (res) return res;
14341 : }
14342 : }
14343 : }
14344 : break;
14345 0 : case CFN_COND_IOR:
14346 0 : if (call_expr_nargs (_p1) == 4)
14347 : {
14348 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14349 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14350 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14351 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14352 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14353 : {
14354 0 : {
14355 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14356 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14357 0 : if (res) return res;
14358 : }
14359 : }
14360 : }
14361 : break;
14362 0 : case CFN_COND_MAX:
14363 0 : if (call_expr_nargs (_p1) == 4)
14364 : {
14365 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14366 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14367 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14368 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14369 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14370 : {
14371 0 : {
14372 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14373 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14374 0 : if (res) return res;
14375 : }
14376 : }
14377 : }
14378 : break;
14379 0 : case CFN_COND_MIN:
14380 0 : if (call_expr_nargs (_p1) == 4)
14381 : {
14382 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14383 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14384 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14385 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14386 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14387 : {
14388 0 : {
14389 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14390 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14391 0 : if (res) return res;
14392 : }
14393 : }
14394 : }
14395 : break;
14396 0 : case CFN_COND_MOD:
14397 0 : if (call_expr_nargs (_p1) == 4)
14398 : {
14399 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14400 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14401 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14402 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14403 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14404 : {
14405 0 : {
14406 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14407 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14408 0 : if (res) return res;
14409 : }
14410 : }
14411 : }
14412 : break;
14413 0 : case CFN_COND_MUL:
14414 0 : if (call_expr_nargs (_p1) == 4)
14415 : {
14416 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14417 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14418 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14419 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14420 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14421 : {
14422 0 : {
14423 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14424 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14425 0 : if (res) return res;
14426 : }
14427 : }
14428 : }
14429 : break;
14430 0 : case CFN_COND_SHL:
14431 0 : if (call_expr_nargs (_p1) == 4)
14432 : {
14433 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14434 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14435 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14436 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14437 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14438 : {
14439 0 : {
14440 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14441 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14442 0 : if (res) return res;
14443 : }
14444 : }
14445 : }
14446 : break;
14447 0 : case CFN_COND_SHR:
14448 0 : if (call_expr_nargs (_p1) == 4)
14449 : {
14450 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14451 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14452 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14453 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14454 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14455 : {
14456 0 : {
14457 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14458 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14459 0 : if (res) return res;
14460 : }
14461 : }
14462 : }
14463 : break;
14464 0 : case CFN_COND_SUB:
14465 0 : if (call_expr_nargs (_p1) == 4)
14466 : {
14467 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14468 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14469 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14470 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14471 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14472 : {
14473 0 : {
14474 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14475 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14476 0 : if (res) return res;
14477 : }
14478 : }
14479 : }
14480 : break;
14481 0 : case CFN_COND_XOR:
14482 0 : if (call_expr_nargs (_p1) == 4)
14483 : {
14484 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14485 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14486 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14487 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14488 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14489 : {
14490 0 : {
14491 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14492 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14493 0 : if (res) return res;
14494 : }
14495 : }
14496 : }
14497 : break;
14498 0 : case CFN_COND_COPYSIGN:
14499 0 : if (call_expr_nargs (_p1) == 4)
14500 : {
14501 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14502 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14503 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14504 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14505 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14506 : {
14507 0 : {
14508 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14509 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14510 0 : if (res) return res;
14511 : }
14512 : }
14513 : }
14514 : break;
14515 0 : case CFN_COND_FMAX:
14516 0 : if (call_expr_nargs (_p1) == 4)
14517 : {
14518 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14519 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14520 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14521 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14522 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14523 : {
14524 0 : {
14525 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14526 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14527 0 : if (res) return res;
14528 : }
14529 : }
14530 : }
14531 : break;
14532 0 : case CFN_COND_FMIN:
14533 0 : if (call_expr_nargs (_p1) == 4)
14534 : {
14535 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14536 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14537 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14538 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14539 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14540 : {
14541 0 : {
14542 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14543 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14544 0 : if (res) return res;
14545 : }
14546 : }
14547 : }
14548 : break;
14549 0 : case CFN_COND_RDIV:
14550 0 : if (call_expr_nargs (_p1) == 4)
14551 : {
14552 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14553 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14554 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14555 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14556 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14557 : {
14558 0 : {
14559 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14560 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14561 0 : if (res) return res;
14562 : }
14563 : }
14564 : }
14565 : break;
14566 : default:;
14567 : }
14568 : break;
14569 386006 : default:;
14570 : }
14571 386006 : switch (TREE_CODE (_p2))
14572 : {
14573 0 : case VIEW_CONVERT_EXPR:
14574 0 : {
14575 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14576 0 : switch (TREE_CODE (_q40))
14577 : {
14578 0 : case CALL_EXPR:
14579 0 : switch (get_call_combined_fn (_q40))
14580 : {
14581 0 : case CFN_COND_ADD:
14582 0 : if (call_expr_nargs (_q40) == 4)
14583 : {
14584 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14585 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14586 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14587 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14588 0 : {
14589 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14590 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14591 0 : if (res) return res;
14592 : }
14593 : }
14594 : break;
14595 0 : case CFN_COND_AND:
14596 0 : if (call_expr_nargs (_q40) == 4)
14597 : {
14598 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14599 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14600 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14601 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14602 0 : {
14603 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14604 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14605 0 : if (res) return res;
14606 : }
14607 : }
14608 : break;
14609 0 : case CFN_COND_DIV:
14610 0 : if (call_expr_nargs (_q40) == 4)
14611 : {
14612 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14613 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14614 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14615 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14616 0 : {
14617 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14618 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14619 0 : if (res) return res;
14620 : }
14621 : }
14622 : break;
14623 0 : case CFN_COND_IOR:
14624 0 : if (call_expr_nargs (_q40) == 4)
14625 : {
14626 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14627 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14628 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14629 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14630 0 : {
14631 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14632 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14633 0 : if (res) return res;
14634 : }
14635 : }
14636 : break;
14637 0 : case CFN_COND_MAX:
14638 0 : if (call_expr_nargs (_q40) == 4)
14639 : {
14640 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14641 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14642 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14643 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14644 0 : {
14645 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14646 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14647 0 : if (res) return res;
14648 : }
14649 : }
14650 : break;
14651 0 : case CFN_COND_MIN:
14652 0 : if (call_expr_nargs (_q40) == 4)
14653 : {
14654 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14655 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14656 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14657 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14658 0 : {
14659 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14660 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14661 0 : if (res) return res;
14662 : }
14663 : }
14664 : break;
14665 0 : case CFN_COND_MOD:
14666 0 : if (call_expr_nargs (_q40) == 4)
14667 : {
14668 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14669 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14670 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14671 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14672 0 : {
14673 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14674 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14675 0 : if (res) return res;
14676 : }
14677 : }
14678 : break;
14679 0 : case CFN_COND_MUL:
14680 0 : if (call_expr_nargs (_q40) == 4)
14681 : {
14682 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14683 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14684 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14685 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14686 0 : {
14687 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14688 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14689 0 : if (res) return res;
14690 : }
14691 : }
14692 : break;
14693 0 : case CFN_COND_SHL:
14694 0 : if (call_expr_nargs (_q40) == 4)
14695 : {
14696 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14697 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14698 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14699 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14700 0 : {
14701 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14702 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14703 0 : if (res) return res;
14704 : }
14705 : }
14706 : break;
14707 0 : case CFN_COND_SHR:
14708 0 : if (call_expr_nargs (_q40) == 4)
14709 : {
14710 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14711 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14712 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14713 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14714 0 : {
14715 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14716 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14717 0 : if (res) return res;
14718 : }
14719 : }
14720 : break;
14721 0 : case CFN_COND_SUB:
14722 0 : if (call_expr_nargs (_q40) == 4)
14723 : {
14724 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14725 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14726 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14727 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14728 0 : {
14729 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14730 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14731 0 : if (res) return res;
14732 : }
14733 : }
14734 : break;
14735 0 : case CFN_COND_XOR:
14736 0 : if (call_expr_nargs (_q40) == 4)
14737 : {
14738 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14739 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14740 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14741 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14742 0 : {
14743 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14744 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14745 0 : if (res) return res;
14746 : }
14747 : }
14748 : break;
14749 0 : case CFN_COND_COPYSIGN:
14750 0 : if (call_expr_nargs (_q40) == 4)
14751 : {
14752 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14753 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14754 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14755 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14756 0 : {
14757 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14758 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14759 0 : if (res) return res;
14760 : }
14761 : }
14762 : break;
14763 0 : case CFN_COND_FMAX:
14764 0 : if (call_expr_nargs (_q40) == 4)
14765 : {
14766 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14767 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14768 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14769 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14770 0 : {
14771 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14772 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14773 0 : if (res) return res;
14774 : }
14775 : }
14776 : break;
14777 0 : case CFN_COND_FMIN:
14778 0 : if (call_expr_nargs (_q40) == 4)
14779 : {
14780 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14781 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14782 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14783 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14784 0 : {
14785 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14786 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14787 0 : if (res) return res;
14788 : }
14789 : }
14790 : break;
14791 0 : case CFN_COND_RDIV:
14792 0 : if (call_expr_nargs (_q40) == 4)
14793 : {
14794 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14795 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14796 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14797 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14798 0 : {
14799 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14800 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14801 0 : if (res) return res;
14802 : }
14803 : }
14804 : break;
14805 : default:;
14806 : }
14807 : break;
14808 : default:;
14809 : }
14810 : break;
14811 : }
14812 12 : case CALL_EXPR:
14813 12 : switch (get_call_combined_fn (_p2))
14814 : {
14815 0 : case CFN_COND_ADD:
14816 0 : if (call_expr_nargs (_p2) == 4)
14817 : {
14818 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14819 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14820 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14821 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14822 0 : {
14823 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14824 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14825 0 : if (res) return res;
14826 : }
14827 : }
14828 : break;
14829 0 : case CFN_COND_AND:
14830 0 : if (call_expr_nargs (_p2) == 4)
14831 : {
14832 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14833 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14834 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14835 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14836 0 : {
14837 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14838 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14839 0 : if (res) return res;
14840 : }
14841 : }
14842 : break;
14843 0 : case CFN_COND_DIV:
14844 0 : if (call_expr_nargs (_p2) == 4)
14845 : {
14846 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14847 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14848 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14849 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14850 0 : {
14851 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14852 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14853 0 : if (res) return res;
14854 : }
14855 : }
14856 : break;
14857 0 : case CFN_COND_IOR:
14858 0 : if (call_expr_nargs (_p2) == 4)
14859 : {
14860 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14861 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14862 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14863 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14864 0 : {
14865 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14866 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14867 0 : if (res) return res;
14868 : }
14869 : }
14870 : break;
14871 0 : case CFN_COND_MAX:
14872 0 : if (call_expr_nargs (_p2) == 4)
14873 : {
14874 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14875 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14876 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14877 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14878 0 : {
14879 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14880 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14881 0 : if (res) return res;
14882 : }
14883 : }
14884 : break;
14885 0 : case CFN_COND_MIN:
14886 0 : if (call_expr_nargs (_p2) == 4)
14887 : {
14888 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14889 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14890 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14891 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14892 0 : {
14893 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14894 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14895 0 : if (res) return res;
14896 : }
14897 : }
14898 : break;
14899 0 : case CFN_COND_MOD:
14900 0 : if (call_expr_nargs (_p2) == 4)
14901 : {
14902 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14903 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14904 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14905 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14906 0 : {
14907 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14908 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14909 0 : if (res) return res;
14910 : }
14911 : }
14912 : break;
14913 0 : case CFN_COND_MUL:
14914 0 : if (call_expr_nargs (_p2) == 4)
14915 : {
14916 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14917 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14918 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14919 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14920 0 : {
14921 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14922 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14923 0 : if (res) return res;
14924 : }
14925 : }
14926 : break;
14927 0 : case CFN_COND_SHL:
14928 0 : if (call_expr_nargs (_p2) == 4)
14929 : {
14930 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14931 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14932 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14933 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14934 0 : {
14935 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14936 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14937 0 : if (res) return res;
14938 : }
14939 : }
14940 : break;
14941 0 : case CFN_COND_SHR:
14942 0 : if (call_expr_nargs (_p2) == 4)
14943 : {
14944 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14945 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14946 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14947 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14948 0 : {
14949 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14950 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14951 0 : if (res) return res;
14952 : }
14953 : }
14954 : break;
14955 0 : case CFN_COND_SUB:
14956 0 : if (call_expr_nargs (_p2) == 4)
14957 : {
14958 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14959 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14960 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14961 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14962 0 : {
14963 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14964 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14965 0 : if (res) return res;
14966 : }
14967 : }
14968 : break;
14969 0 : case CFN_COND_XOR:
14970 0 : if (call_expr_nargs (_p2) == 4)
14971 : {
14972 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14973 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14974 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14975 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14976 0 : {
14977 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14978 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14979 0 : if (res) return res;
14980 : }
14981 : }
14982 : break;
14983 0 : case CFN_COND_COPYSIGN:
14984 0 : if (call_expr_nargs (_p2) == 4)
14985 : {
14986 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14987 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14988 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14989 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14990 0 : {
14991 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14992 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14993 0 : if (res) return res;
14994 : }
14995 : }
14996 : break;
14997 0 : case CFN_COND_FMAX:
14998 0 : if (call_expr_nargs (_p2) == 4)
14999 : {
15000 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15001 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15002 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15003 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15004 0 : {
15005 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15006 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
15007 0 : if (res) return res;
15008 : }
15009 : }
15010 : break;
15011 0 : case CFN_COND_FMIN:
15012 0 : if (call_expr_nargs (_p2) == 4)
15013 : {
15014 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15015 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15016 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15017 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15018 0 : {
15019 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15020 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15021 0 : if (res) return res;
15022 : }
15023 : }
15024 : break;
15025 0 : case CFN_COND_RDIV:
15026 0 : if (call_expr_nargs (_p2) == 4)
15027 : {
15028 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15029 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15030 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15031 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15032 0 : {
15033 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15034 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15035 0 : if (res) return res;
15036 : }
15037 : }
15038 : break;
15039 : default:;
15040 : }
15041 : break;
15042 386006 : default:;
15043 : }
15044 386006 : switch (TREE_CODE (_p1))
15045 : {
15046 0 : case VIEW_CONVERT_EXPR:
15047 0 : {
15048 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15049 0 : switch (TREE_CODE (_q30))
15050 : {
15051 0 : case CALL_EXPR:
15052 0 : switch (get_call_combined_fn (_q30))
15053 : {
15054 0 : case CFN_COND_FMA:
15055 0 : if (call_expr_nargs (_q30) == 5)
15056 : {
15057 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15058 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15059 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15060 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15061 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15062 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15063 : {
15064 0 : {
15065 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15066 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15067 0 : if (res) return res;
15068 : }
15069 : }
15070 : }
15071 : break;
15072 0 : case CFN_COND_FMS:
15073 0 : if (call_expr_nargs (_q30) == 5)
15074 : {
15075 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15076 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15077 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15078 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15079 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15080 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15081 : {
15082 0 : {
15083 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15084 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15085 0 : if (res) return res;
15086 : }
15087 : }
15088 : }
15089 : break;
15090 0 : case CFN_COND_FNMA:
15091 0 : if (call_expr_nargs (_q30) == 5)
15092 : {
15093 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15094 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15095 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15096 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15097 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15098 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15099 : {
15100 0 : {
15101 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15102 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15103 0 : if (res) return res;
15104 : }
15105 : }
15106 : }
15107 : break;
15108 0 : case CFN_COND_FNMS:
15109 0 : if (call_expr_nargs (_q30) == 5)
15110 : {
15111 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15112 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15113 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15114 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15115 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15116 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15117 : {
15118 0 : {
15119 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15120 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15121 0 : if (res) return res;
15122 : }
15123 : }
15124 : }
15125 : break;
15126 : default:;
15127 : }
15128 : break;
15129 : default:;
15130 : }
15131 : break;
15132 : }
15133 12 : case CALL_EXPR:
15134 12 : switch (get_call_combined_fn (_p1))
15135 : {
15136 0 : case CFN_COND_FMA:
15137 0 : if (call_expr_nargs (_p1) == 5)
15138 : {
15139 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15140 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15141 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15142 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15143 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15144 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15145 : {
15146 0 : {
15147 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15148 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15149 0 : if (res) return res;
15150 : }
15151 : }
15152 : }
15153 : break;
15154 0 : case CFN_COND_FMS:
15155 0 : if (call_expr_nargs (_p1) == 5)
15156 : {
15157 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15158 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15159 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15160 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15161 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15162 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15163 : {
15164 0 : {
15165 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15166 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15167 0 : if (res) return res;
15168 : }
15169 : }
15170 : }
15171 : break;
15172 0 : case CFN_COND_FNMA:
15173 0 : if (call_expr_nargs (_p1) == 5)
15174 : {
15175 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15176 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15177 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15178 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15179 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15180 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15181 : {
15182 0 : {
15183 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15184 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15185 0 : if (res) return res;
15186 : }
15187 : }
15188 : }
15189 : break;
15190 0 : case CFN_COND_FNMS:
15191 0 : if (call_expr_nargs (_p1) == 5)
15192 : {
15193 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15194 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15195 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15196 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15197 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15198 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15199 : {
15200 0 : {
15201 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15202 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15203 0 : if (res) return res;
15204 : }
15205 : }
15206 : }
15207 : break;
15208 : default:;
15209 : }
15210 : break;
15211 386006 : default:;
15212 : }
15213 386006 : switch (TREE_CODE (_p2))
15214 : {
15215 0 : case VIEW_CONVERT_EXPR:
15216 0 : {
15217 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15218 0 : switch (TREE_CODE (_q40))
15219 : {
15220 0 : case CALL_EXPR:
15221 0 : switch (get_call_combined_fn (_q40))
15222 : {
15223 0 : case CFN_COND_FMA:
15224 0 : if (call_expr_nargs (_q40) == 5)
15225 : {
15226 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15227 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15228 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15229 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15230 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15231 0 : {
15232 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15233 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15234 0 : if (res) return res;
15235 : }
15236 : }
15237 : break;
15238 0 : case CFN_COND_FMS:
15239 0 : if (call_expr_nargs (_q40) == 5)
15240 : {
15241 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15242 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15243 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15244 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15245 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15246 0 : {
15247 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15248 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15249 0 : if (res) return res;
15250 : }
15251 : }
15252 : break;
15253 0 : case CFN_COND_FNMA:
15254 0 : if (call_expr_nargs (_q40) == 5)
15255 : {
15256 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15257 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15258 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15259 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15260 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15261 0 : {
15262 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15263 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15264 0 : if (res) return res;
15265 : }
15266 : }
15267 : break;
15268 0 : case CFN_COND_FNMS:
15269 0 : if (call_expr_nargs (_q40) == 5)
15270 : {
15271 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15272 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15273 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15274 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15275 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15276 0 : {
15277 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15278 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15279 0 : if (res) return res;
15280 : }
15281 : }
15282 : break;
15283 : default:;
15284 : }
15285 : break;
15286 : default:;
15287 : }
15288 : break;
15289 : }
15290 12 : case CALL_EXPR:
15291 12 : switch (get_call_combined_fn (_p2))
15292 : {
15293 0 : case CFN_COND_FMA:
15294 0 : if (call_expr_nargs (_p2) == 5)
15295 : {
15296 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15297 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15298 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15299 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15300 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15301 0 : {
15302 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15303 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15304 0 : if (res) return res;
15305 : }
15306 : }
15307 : break;
15308 0 : case CFN_COND_FMS:
15309 0 : if (call_expr_nargs (_p2) == 5)
15310 : {
15311 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15312 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15313 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15314 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15315 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15316 0 : {
15317 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15318 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15319 0 : if (res) return res;
15320 : }
15321 : }
15322 : break;
15323 0 : case CFN_COND_FNMA:
15324 0 : if (call_expr_nargs (_p2) == 5)
15325 : {
15326 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15327 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15328 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15329 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15330 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15331 0 : {
15332 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15333 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15334 0 : if (res) return res;
15335 : }
15336 : }
15337 : break;
15338 0 : case CFN_COND_FNMS:
15339 0 : if (call_expr_nargs (_p2) == 5)
15340 : {
15341 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15342 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15343 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15344 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15345 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15346 0 : {
15347 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15348 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15349 0 : if (res) return res;
15350 : }
15351 : }
15352 : break;
15353 : default:;
15354 : }
15355 : break;
15356 386006 : default:;
15357 : }
15358 386006 : switch (TREE_CODE (_p1))
15359 : {
15360 0 : case VIEW_CONVERT_EXPR:
15361 0 : {
15362 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15363 0 : switch (TREE_CODE (_q30))
15364 : {
15365 0 : case CALL_EXPR:
15366 0 : switch (get_call_combined_fn (_q30))
15367 : {
15368 0 : case CFN_COND_LEN_ADD:
15369 0 : if (call_expr_nargs (_q30) == 6)
15370 : {
15371 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15372 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15373 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15374 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15375 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15376 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15377 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15378 : {
15379 0 : {
15380 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15381 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15382 0 : if (res) return res;
15383 : }
15384 : }
15385 : }
15386 : break;
15387 0 : case CFN_COND_LEN_AND:
15388 0 : if (call_expr_nargs (_q30) == 6)
15389 : {
15390 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15391 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15392 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15393 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15394 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15395 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15396 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15397 : {
15398 0 : {
15399 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15400 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15401 0 : if (res) return res;
15402 : }
15403 : }
15404 : }
15405 : break;
15406 0 : case CFN_COND_LEN_DIV:
15407 0 : if (call_expr_nargs (_q30) == 6)
15408 : {
15409 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15410 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15411 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15412 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15413 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15414 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15415 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15416 : {
15417 0 : {
15418 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15419 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15420 0 : if (res) return res;
15421 : }
15422 : }
15423 : }
15424 : break;
15425 0 : case CFN_COND_LEN_IOR:
15426 0 : if (call_expr_nargs (_q30) == 6)
15427 : {
15428 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15429 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15430 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15431 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15432 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15433 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15434 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15435 : {
15436 0 : {
15437 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15438 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15439 0 : if (res) return res;
15440 : }
15441 : }
15442 : }
15443 : break;
15444 0 : case CFN_COND_LEN_MAX:
15445 0 : if (call_expr_nargs (_q30) == 6)
15446 : {
15447 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15448 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15449 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15450 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15451 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15452 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15453 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15454 : {
15455 0 : {
15456 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15457 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15458 0 : if (res) return res;
15459 : }
15460 : }
15461 : }
15462 : break;
15463 0 : case CFN_COND_LEN_MIN:
15464 0 : if (call_expr_nargs (_q30) == 6)
15465 : {
15466 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15467 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15468 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15469 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15470 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15471 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15472 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15473 : {
15474 0 : {
15475 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15476 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15477 0 : if (res) return res;
15478 : }
15479 : }
15480 : }
15481 : break;
15482 0 : case CFN_COND_LEN_MOD:
15483 0 : if (call_expr_nargs (_q30) == 6)
15484 : {
15485 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15486 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15487 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15488 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15489 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15490 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15491 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15492 : {
15493 0 : {
15494 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15495 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15496 0 : if (res) return res;
15497 : }
15498 : }
15499 : }
15500 : break;
15501 0 : case CFN_COND_LEN_MUL:
15502 0 : if (call_expr_nargs (_q30) == 6)
15503 : {
15504 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15505 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15506 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15507 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15508 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15509 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15510 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15511 : {
15512 0 : {
15513 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15514 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15515 0 : if (res) return res;
15516 : }
15517 : }
15518 : }
15519 : break;
15520 0 : case CFN_COND_LEN_SHL:
15521 0 : if (call_expr_nargs (_q30) == 6)
15522 : {
15523 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15524 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15525 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15526 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15527 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15528 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15529 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15530 : {
15531 0 : {
15532 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15533 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15534 0 : if (res) return res;
15535 : }
15536 : }
15537 : }
15538 : break;
15539 0 : case CFN_COND_LEN_SHR:
15540 0 : if (call_expr_nargs (_q30) == 6)
15541 : {
15542 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15543 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15544 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15545 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15546 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15547 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15548 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15549 : {
15550 0 : {
15551 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15552 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15553 0 : if (res) return res;
15554 : }
15555 : }
15556 : }
15557 : break;
15558 0 : case CFN_COND_LEN_SUB:
15559 0 : if (call_expr_nargs (_q30) == 6)
15560 : {
15561 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15562 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15563 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15564 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15565 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15566 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15567 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15568 : {
15569 0 : {
15570 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15571 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15572 0 : if (res) return res;
15573 : }
15574 : }
15575 : }
15576 : break;
15577 0 : case CFN_COND_LEN_XOR:
15578 0 : if (call_expr_nargs (_q30) == 6)
15579 : {
15580 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15581 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15582 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15583 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15584 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15585 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15586 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15587 : {
15588 0 : {
15589 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15590 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15591 0 : if (res) return res;
15592 : }
15593 : }
15594 : }
15595 : break;
15596 0 : case CFN_COND_LEN_FMAX:
15597 0 : if (call_expr_nargs (_q30) == 6)
15598 : {
15599 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15600 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15601 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15602 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15603 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15604 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15605 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15606 : {
15607 0 : {
15608 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15609 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15610 0 : if (res) return res;
15611 : }
15612 : }
15613 : }
15614 : break;
15615 0 : case CFN_COND_LEN_FMIN:
15616 0 : if (call_expr_nargs (_q30) == 6)
15617 : {
15618 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15619 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15620 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15621 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15622 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15623 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15624 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15625 : {
15626 0 : {
15627 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15628 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15629 0 : if (res) return res;
15630 : }
15631 : }
15632 : }
15633 : break;
15634 0 : case CFN_COND_LEN_RDIV:
15635 0 : if (call_expr_nargs (_q30) == 6)
15636 : {
15637 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15638 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15639 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15640 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15641 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15642 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15643 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15644 : {
15645 0 : {
15646 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15647 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15648 0 : if (res) return res;
15649 : }
15650 : }
15651 : }
15652 : break;
15653 0 : case CFN_COND_LEN_COPYSIGN:
15654 0 : if (call_expr_nargs (_q30) == 6)
15655 : {
15656 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15657 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15658 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15659 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15660 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15661 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15662 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15663 : {
15664 0 : {
15665 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15666 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15667 0 : if (res) return res;
15668 : }
15669 : }
15670 : }
15671 : break;
15672 : default:;
15673 : }
15674 : break;
15675 : default:;
15676 : }
15677 : break;
15678 : }
15679 12 : case CALL_EXPR:
15680 12 : switch (get_call_combined_fn (_p1))
15681 : {
15682 0 : case CFN_COND_LEN_ADD:
15683 0 : if (call_expr_nargs (_p1) == 6)
15684 : {
15685 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15686 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15687 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15688 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15689 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15690 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15691 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15692 : {
15693 0 : {
15694 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15695 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15696 0 : if (res) return res;
15697 : }
15698 : }
15699 : }
15700 : break;
15701 0 : case CFN_COND_LEN_AND:
15702 0 : if (call_expr_nargs (_p1) == 6)
15703 : {
15704 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15705 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15706 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15707 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15708 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15709 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15710 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15711 : {
15712 0 : {
15713 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15714 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15715 0 : if (res) return res;
15716 : }
15717 : }
15718 : }
15719 : break;
15720 0 : case CFN_COND_LEN_DIV:
15721 0 : if (call_expr_nargs (_p1) == 6)
15722 : {
15723 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15724 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15725 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15726 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15727 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15728 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15729 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15730 : {
15731 0 : {
15732 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15733 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15734 0 : if (res) return res;
15735 : }
15736 : }
15737 : }
15738 : break;
15739 0 : case CFN_COND_LEN_IOR:
15740 0 : if (call_expr_nargs (_p1) == 6)
15741 : {
15742 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15743 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15744 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15745 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15746 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15747 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15748 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15749 : {
15750 0 : {
15751 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15752 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15753 0 : if (res) return res;
15754 : }
15755 : }
15756 : }
15757 : break;
15758 0 : case CFN_COND_LEN_MAX:
15759 0 : if (call_expr_nargs (_p1) == 6)
15760 : {
15761 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15762 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15763 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15764 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15765 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15766 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15767 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15768 : {
15769 0 : {
15770 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15771 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15772 0 : if (res) return res;
15773 : }
15774 : }
15775 : }
15776 : break;
15777 0 : case CFN_COND_LEN_MIN:
15778 0 : if (call_expr_nargs (_p1) == 6)
15779 : {
15780 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15781 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15782 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15783 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15784 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15785 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15786 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15787 : {
15788 0 : {
15789 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15790 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15791 0 : if (res) return res;
15792 : }
15793 : }
15794 : }
15795 : break;
15796 0 : case CFN_COND_LEN_MOD:
15797 0 : if (call_expr_nargs (_p1) == 6)
15798 : {
15799 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15800 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15801 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15802 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15803 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15804 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15805 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15806 : {
15807 0 : {
15808 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15809 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15810 0 : if (res) return res;
15811 : }
15812 : }
15813 : }
15814 : break;
15815 0 : case CFN_COND_LEN_MUL:
15816 0 : if (call_expr_nargs (_p1) == 6)
15817 : {
15818 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15819 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15820 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15821 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15822 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15823 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15824 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15825 : {
15826 0 : {
15827 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15828 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15829 0 : if (res) return res;
15830 : }
15831 : }
15832 : }
15833 : break;
15834 0 : case CFN_COND_LEN_SHL:
15835 0 : if (call_expr_nargs (_p1) == 6)
15836 : {
15837 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15838 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15839 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15840 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15841 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15842 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15843 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15844 : {
15845 0 : {
15846 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15847 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15848 0 : if (res) return res;
15849 : }
15850 : }
15851 : }
15852 : break;
15853 0 : case CFN_COND_LEN_SHR:
15854 0 : if (call_expr_nargs (_p1) == 6)
15855 : {
15856 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15857 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15858 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15859 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15860 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15861 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15862 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15863 : {
15864 0 : {
15865 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15866 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15867 0 : if (res) return res;
15868 : }
15869 : }
15870 : }
15871 : break;
15872 0 : case CFN_COND_LEN_SUB:
15873 0 : if (call_expr_nargs (_p1) == 6)
15874 : {
15875 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15876 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15877 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15878 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15879 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15880 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15881 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15882 : {
15883 0 : {
15884 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15885 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15886 0 : if (res) return res;
15887 : }
15888 : }
15889 : }
15890 : break;
15891 0 : case CFN_COND_LEN_XOR:
15892 0 : if (call_expr_nargs (_p1) == 6)
15893 : {
15894 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15895 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15896 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15897 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15898 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15899 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15900 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15901 : {
15902 0 : {
15903 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15904 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15905 0 : if (res) return res;
15906 : }
15907 : }
15908 : }
15909 : break;
15910 0 : case CFN_COND_LEN_FMAX:
15911 0 : if (call_expr_nargs (_p1) == 6)
15912 : {
15913 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15914 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15915 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15916 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15917 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15918 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15919 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15920 : {
15921 0 : {
15922 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15923 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15924 0 : if (res) return res;
15925 : }
15926 : }
15927 : }
15928 : break;
15929 0 : case CFN_COND_LEN_FMIN:
15930 0 : if (call_expr_nargs (_p1) == 6)
15931 : {
15932 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15933 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15934 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15935 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15936 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15937 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15938 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15939 : {
15940 0 : {
15941 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15942 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15943 0 : if (res) return res;
15944 : }
15945 : }
15946 : }
15947 : break;
15948 0 : case CFN_COND_LEN_RDIV:
15949 0 : if (call_expr_nargs (_p1) == 6)
15950 : {
15951 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15952 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15953 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15954 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15955 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15956 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15957 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15958 : {
15959 0 : {
15960 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15961 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15962 0 : if (res) return res;
15963 : }
15964 : }
15965 : }
15966 : break;
15967 0 : case CFN_COND_LEN_COPYSIGN:
15968 0 : if (call_expr_nargs (_p1) == 6)
15969 : {
15970 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15971 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15972 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15973 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15974 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15975 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15976 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15977 : {
15978 0 : {
15979 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15980 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15981 0 : if (res) return res;
15982 : }
15983 : }
15984 : }
15985 : break;
15986 : default:;
15987 : }
15988 : break;
15989 386006 : default:;
15990 : }
15991 386006 : switch (TREE_CODE (_p2))
15992 : {
15993 0 : case VIEW_CONVERT_EXPR:
15994 0 : {
15995 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15996 0 : switch (TREE_CODE (_q40))
15997 : {
15998 0 : case CALL_EXPR:
15999 0 : switch (get_call_combined_fn (_q40))
16000 : {
16001 0 : case CFN_COND_LEN_ADD:
16002 0 : if (call_expr_nargs (_q40) == 6)
16003 : {
16004 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16005 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16006 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16007 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16008 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16009 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16010 0 : {
16011 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16012 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16013 0 : if (res) return res;
16014 : }
16015 : }
16016 : break;
16017 0 : case CFN_COND_LEN_AND:
16018 0 : if (call_expr_nargs (_q40) == 6)
16019 : {
16020 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16021 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16022 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16023 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16024 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16025 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16026 0 : {
16027 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16028 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16029 0 : if (res) return res;
16030 : }
16031 : }
16032 : break;
16033 0 : case CFN_COND_LEN_DIV:
16034 0 : if (call_expr_nargs (_q40) == 6)
16035 : {
16036 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16037 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16038 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16039 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16040 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16041 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16042 0 : {
16043 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16044 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16045 0 : if (res) return res;
16046 : }
16047 : }
16048 : break;
16049 0 : case CFN_COND_LEN_IOR:
16050 0 : if (call_expr_nargs (_q40) == 6)
16051 : {
16052 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16053 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16054 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16055 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16056 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16057 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16058 0 : {
16059 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16060 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16061 0 : if (res) return res;
16062 : }
16063 : }
16064 : break;
16065 0 : case CFN_COND_LEN_MAX:
16066 0 : if (call_expr_nargs (_q40) == 6)
16067 : {
16068 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16069 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16070 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16071 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16072 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16073 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16074 0 : {
16075 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16076 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16077 0 : if (res) return res;
16078 : }
16079 : }
16080 : break;
16081 0 : case CFN_COND_LEN_MIN:
16082 0 : if (call_expr_nargs (_q40) == 6)
16083 : {
16084 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16085 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16086 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16087 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16088 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16089 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16090 0 : {
16091 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16092 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16093 0 : if (res) return res;
16094 : }
16095 : }
16096 : break;
16097 0 : case CFN_COND_LEN_MOD:
16098 0 : if (call_expr_nargs (_q40) == 6)
16099 : {
16100 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16101 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16102 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16103 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16104 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16105 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16106 0 : {
16107 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16108 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16109 0 : if (res) return res;
16110 : }
16111 : }
16112 : break;
16113 0 : case CFN_COND_LEN_MUL:
16114 0 : if (call_expr_nargs (_q40) == 6)
16115 : {
16116 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16117 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16118 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16119 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16120 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16121 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16122 0 : {
16123 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16124 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16125 0 : if (res) return res;
16126 : }
16127 : }
16128 : break;
16129 0 : case CFN_COND_LEN_SHL:
16130 0 : if (call_expr_nargs (_q40) == 6)
16131 : {
16132 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16133 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16134 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16135 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16136 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16137 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16138 0 : {
16139 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16140 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16141 0 : if (res) return res;
16142 : }
16143 : }
16144 : break;
16145 0 : case CFN_COND_LEN_SHR:
16146 0 : if (call_expr_nargs (_q40) == 6)
16147 : {
16148 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16149 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16150 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16151 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16152 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16153 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16154 0 : {
16155 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16156 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16157 0 : if (res) return res;
16158 : }
16159 : }
16160 : break;
16161 0 : case CFN_COND_LEN_SUB:
16162 0 : if (call_expr_nargs (_q40) == 6)
16163 : {
16164 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16165 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16166 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16167 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16168 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16169 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16170 0 : {
16171 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16172 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16173 0 : if (res) return res;
16174 : }
16175 : }
16176 : break;
16177 0 : case CFN_COND_LEN_XOR:
16178 0 : if (call_expr_nargs (_q40) == 6)
16179 : {
16180 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16181 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16182 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16183 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16184 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16185 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16186 0 : {
16187 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16188 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16189 0 : if (res) return res;
16190 : }
16191 : }
16192 : break;
16193 0 : case CFN_COND_LEN_FMAX:
16194 0 : if (call_expr_nargs (_q40) == 6)
16195 : {
16196 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16197 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16198 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16199 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16200 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16201 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16202 0 : {
16203 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16204 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16205 0 : if (res) return res;
16206 : }
16207 : }
16208 : break;
16209 0 : case CFN_COND_LEN_FMIN:
16210 0 : if (call_expr_nargs (_q40) == 6)
16211 : {
16212 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16213 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16214 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16215 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16216 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16217 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16218 0 : {
16219 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16220 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16221 0 : if (res) return res;
16222 : }
16223 : }
16224 : break;
16225 0 : case CFN_COND_LEN_RDIV:
16226 0 : if (call_expr_nargs (_q40) == 6)
16227 : {
16228 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16229 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16230 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16231 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16232 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16233 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16234 0 : {
16235 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16236 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16237 0 : if (res) return res;
16238 : }
16239 : }
16240 : break;
16241 0 : case CFN_COND_LEN_COPYSIGN:
16242 0 : if (call_expr_nargs (_q40) == 6)
16243 : {
16244 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16245 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16246 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16247 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16248 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16249 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16250 0 : {
16251 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16252 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16253 0 : if (res) return res;
16254 : }
16255 : }
16256 : break;
16257 : default:;
16258 : }
16259 : break;
16260 : default:;
16261 : }
16262 : break;
16263 : }
16264 12 : case CALL_EXPR:
16265 12 : switch (get_call_combined_fn (_p2))
16266 : {
16267 0 : case CFN_COND_LEN_ADD:
16268 0 : if (call_expr_nargs (_p2) == 6)
16269 : {
16270 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16271 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16272 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16273 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16274 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16275 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16276 0 : {
16277 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16278 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16279 0 : if (res) return res;
16280 : }
16281 : }
16282 : break;
16283 0 : case CFN_COND_LEN_AND:
16284 0 : if (call_expr_nargs (_p2) == 6)
16285 : {
16286 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16287 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16288 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16289 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16290 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16291 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16292 0 : {
16293 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16294 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16295 0 : if (res) return res;
16296 : }
16297 : }
16298 : break;
16299 0 : case CFN_COND_LEN_DIV:
16300 0 : if (call_expr_nargs (_p2) == 6)
16301 : {
16302 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16303 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16304 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16305 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16306 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16307 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16308 0 : {
16309 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16310 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16311 0 : if (res) return res;
16312 : }
16313 : }
16314 : break;
16315 0 : case CFN_COND_LEN_IOR:
16316 0 : if (call_expr_nargs (_p2) == 6)
16317 : {
16318 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16319 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16320 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16321 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16322 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16323 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16324 0 : {
16325 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16326 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16327 0 : if (res) return res;
16328 : }
16329 : }
16330 : break;
16331 0 : case CFN_COND_LEN_MAX:
16332 0 : if (call_expr_nargs (_p2) == 6)
16333 : {
16334 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16335 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16336 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16337 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16338 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16339 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16340 0 : {
16341 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16342 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16343 0 : if (res) return res;
16344 : }
16345 : }
16346 : break;
16347 0 : case CFN_COND_LEN_MIN:
16348 0 : if (call_expr_nargs (_p2) == 6)
16349 : {
16350 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16351 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16352 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16353 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16354 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16355 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16356 0 : {
16357 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16358 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16359 0 : if (res) return res;
16360 : }
16361 : }
16362 : break;
16363 0 : case CFN_COND_LEN_MOD:
16364 0 : if (call_expr_nargs (_p2) == 6)
16365 : {
16366 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16367 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16368 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16369 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16370 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16371 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16372 0 : {
16373 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16374 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16375 0 : if (res) return res;
16376 : }
16377 : }
16378 : break;
16379 0 : case CFN_COND_LEN_MUL:
16380 0 : if (call_expr_nargs (_p2) == 6)
16381 : {
16382 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16383 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16384 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16385 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16386 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16387 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16388 0 : {
16389 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16390 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16391 0 : if (res) return res;
16392 : }
16393 : }
16394 : break;
16395 0 : case CFN_COND_LEN_SHL:
16396 0 : if (call_expr_nargs (_p2) == 6)
16397 : {
16398 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16399 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16400 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16401 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16402 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16403 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16404 0 : {
16405 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16406 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16407 0 : if (res) return res;
16408 : }
16409 : }
16410 : break;
16411 0 : case CFN_COND_LEN_SHR:
16412 0 : if (call_expr_nargs (_p2) == 6)
16413 : {
16414 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16415 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16416 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16417 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16418 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16419 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16420 0 : {
16421 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16422 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16423 0 : if (res) return res;
16424 : }
16425 : }
16426 : break;
16427 0 : case CFN_COND_LEN_SUB:
16428 0 : if (call_expr_nargs (_p2) == 6)
16429 : {
16430 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16431 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16432 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16433 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16434 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16435 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16436 0 : {
16437 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16438 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16439 0 : if (res) return res;
16440 : }
16441 : }
16442 : break;
16443 0 : case CFN_COND_LEN_XOR:
16444 0 : if (call_expr_nargs (_p2) == 6)
16445 : {
16446 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16447 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16448 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16449 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16450 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16451 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16452 0 : {
16453 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16454 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16455 0 : if (res) return res;
16456 : }
16457 : }
16458 : break;
16459 0 : case CFN_COND_LEN_FMAX:
16460 0 : if (call_expr_nargs (_p2) == 6)
16461 : {
16462 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16463 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16464 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16465 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16466 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16467 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16468 0 : {
16469 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16470 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16471 0 : if (res) return res;
16472 : }
16473 : }
16474 : break;
16475 0 : case CFN_COND_LEN_FMIN:
16476 0 : if (call_expr_nargs (_p2) == 6)
16477 : {
16478 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16479 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16480 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16481 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16482 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16483 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16484 0 : {
16485 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16486 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16487 0 : if (res) return res;
16488 : }
16489 : }
16490 : break;
16491 0 : case CFN_COND_LEN_RDIV:
16492 0 : if (call_expr_nargs (_p2) == 6)
16493 : {
16494 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16495 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16496 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16497 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16498 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16499 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16500 0 : {
16501 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16502 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16503 0 : if (res) return res;
16504 : }
16505 : }
16506 : break;
16507 0 : case CFN_COND_LEN_COPYSIGN:
16508 0 : if (call_expr_nargs (_p2) == 6)
16509 : {
16510 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16511 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16512 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16513 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16514 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16515 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16516 0 : {
16517 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16518 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16519 0 : if (res) return res;
16520 : }
16521 : }
16522 : break;
16523 : default:;
16524 : }
16525 : break;
16526 386006 : default:;
16527 : }
16528 386006 : switch (TREE_CODE (_p1))
16529 : {
16530 0 : case VIEW_CONVERT_EXPR:
16531 0 : {
16532 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16533 0 : switch (TREE_CODE (_q30))
16534 : {
16535 0 : case CALL_EXPR:
16536 0 : switch (get_call_combined_fn (_q30))
16537 : {
16538 0 : case CFN_COND_LEN_FMA:
16539 0 : if (call_expr_nargs (_q30) == 7)
16540 : {
16541 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16542 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16543 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16544 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16545 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16546 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16547 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16548 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16549 : {
16550 0 : {
16551 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16552 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16553 0 : if (res) return res;
16554 : }
16555 : }
16556 : }
16557 : break;
16558 0 : case CFN_COND_LEN_FMS:
16559 0 : if (call_expr_nargs (_q30) == 7)
16560 : {
16561 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16562 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16563 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16564 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16565 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16566 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16567 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16568 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16569 : {
16570 0 : {
16571 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16572 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16573 0 : if (res) return res;
16574 : }
16575 : }
16576 : }
16577 : break;
16578 0 : case CFN_COND_LEN_FNMA:
16579 0 : if (call_expr_nargs (_q30) == 7)
16580 : {
16581 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16582 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16583 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16584 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16585 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16586 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16587 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16588 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16589 : {
16590 0 : {
16591 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16592 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16593 0 : if (res) return res;
16594 : }
16595 : }
16596 : }
16597 : break;
16598 0 : case CFN_COND_LEN_FNMS:
16599 0 : if (call_expr_nargs (_q30) == 7)
16600 : {
16601 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16602 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16603 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16604 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16605 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16606 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16607 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16608 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16609 : {
16610 0 : {
16611 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16612 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16613 0 : if (res) return res;
16614 : }
16615 : }
16616 : }
16617 : break;
16618 : default:;
16619 : }
16620 : break;
16621 : default:;
16622 : }
16623 : break;
16624 : }
16625 12 : case CALL_EXPR:
16626 12 : switch (get_call_combined_fn (_p1))
16627 : {
16628 0 : case CFN_COND_LEN_FMA:
16629 0 : if (call_expr_nargs (_p1) == 7)
16630 : {
16631 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16632 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16633 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16634 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16635 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16636 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16637 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16638 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16639 : {
16640 0 : {
16641 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16642 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16643 0 : if (res) return res;
16644 : }
16645 : }
16646 : }
16647 : break;
16648 0 : case CFN_COND_LEN_FMS:
16649 0 : if (call_expr_nargs (_p1) == 7)
16650 : {
16651 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16652 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16653 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16654 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16655 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16656 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16657 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16658 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16659 : {
16660 0 : {
16661 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16662 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16663 0 : if (res) return res;
16664 : }
16665 : }
16666 : }
16667 : break;
16668 0 : case CFN_COND_LEN_FNMA:
16669 0 : if (call_expr_nargs (_p1) == 7)
16670 : {
16671 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16672 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16673 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16674 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16675 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16676 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16677 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16678 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16679 : {
16680 0 : {
16681 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16682 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16683 0 : if (res) return res;
16684 : }
16685 : }
16686 : }
16687 : break;
16688 0 : case CFN_COND_LEN_FNMS:
16689 0 : if (call_expr_nargs (_p1) == 7)
16690 : {
16691 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16692 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16693 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16694 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16695 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16696 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16697 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16698 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16699 : {
16700 0 : {
16701 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16702 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16703 0 : if (res) return res;
16704 : }
16705 : }
16706 : }
16707 : break;
16708 : default:;
16709 : }
16710 : break;
16711 386006 : default:;
16712 : }
16713 386006 : switch (TREE_CODE (_p2))
16714 : {
16715 0 : case VIEW_CONVERT_EXPR:
16716 0 : {
16717 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16718 0 : switch (TREE_CODE (_q40))
16719 : {
16720 0 : case CALL_EXPR:
16721 0 : switch (get_call_combined_fn (_q40))
16722 : {
16723 0 : case CFN_COND_LEN_FMA:
16724 0 : if (call_expr_nargs (_q40) == 7)
16725 : {
16726 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16727 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16728 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16729 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16730 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16731 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16732 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16733 0 : {
16734 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16735 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16736 0 : if (res) return res;
16737 : }
16738 : }
16739 : break;
16740 0 : case CFN_COND_LEN_FMS:
16741 0 : if (call_expr_nargs (_q40) == 7)
16742 : {
16743 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16744 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16745 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16746 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16747 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16748 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16749 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16750 0 : {
16751 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16752 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16753 0 : if (res) return res;
16754 : }
16755 : }
16756 : break;
16757 0 : case CFN_COND_LEN_FNMA:
16758 0 : if (call_expr_nargs (_q40) == 7)
16759 : {
16760 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16761 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16762 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16763 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16764 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16765 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16766 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16767 0 : {
16768 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16769 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16770 0 : if (res) return res;
16771 : }
16772 : }
16773 : break;
16774 0 : case CFN_COND_LEN_FNMS:
16775 0 : if (call_expr_nargs (_q40) == 7)
16776 : {
16777 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16778 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16779 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16780 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16781 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16782 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16783 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16784 0 : {
16785 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16786 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16787 0 : if (res) return res;
16788 : }
16789 : }
16790 : break;
16791 : default:;
16792 : }
16793 : break;
16794 : default:;
16795 : }
16796 : break;
16797 : }
16798 12 : case CALL_EXPR:
16799 12 : switch (get_call_combined_fn (_p2))
16800 : {
16801 0 : case CFN_COND_LEN_FMA:
16802 0 : if (call_expr_nargs (_p2) == 7)
16803 : {
16804 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16805 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16806 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16807 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16808 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16809 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16810 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16811 0 : {
16812 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16813 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16814 0 : if (res) return res;
16815 : }
16816 : }
16817 : break;
16818 0 : case CFN_COND_LEN_FMS:
16819 0 : if (call_expr_nargs (_p2) == 7)
16820 : {
16821 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16822 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16823 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16824 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16825 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16826 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16827 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16828 0 : {
16829 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16830 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16831 0 : if (res) return res;
16832 : }
16833 : }
16834 : break;
16835 0 : case CFN_COND_LEN_FNMA:
16836 0 : if (call_expr_nargs (_p2) == 7)
16837 : {
16838 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16839 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16840 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16841 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16842 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16843 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16844 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16845 0 : {
16846 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16847 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16848 0 : if (res) return res;
16849 : }
16850 : }
16851 : break;
16852 0 : case CFN_COND_LEN_FNMS:
16853 0 : if (call_expr_nargs (_p2) == 7)
16854 : {
16855 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16856 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16857 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16858 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16859 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16860 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16861 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16862 0 : {
16863 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16864 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16865 0 : if (res) return res;
16866 : }
16867 : }
16868 : break;
16869 : default:;
16870 : }
16871 : break;
16872 386006 : default:;
16873 : }
16874 386006 : switch (TREE_CODE (_p1))
16875 : {
16876 12 : case CALL_EXPR:
16877 12 : switch (get_call_combined_fn (_p1))
16878 : {
16879 0 : case CFN_COND_ADD:
16880 0 : if (call_expr_nargs (_p1) == 4)
16881 : {
16882 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16883 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16884 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16885 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16886 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16887 : {
16888 0 : {
16889 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16890 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16891 0 : if (res) return res;
16892 : }
16893 : }
16894 : }
16895 : break;
16896 0 : case CFN_COND_AND:
16897 0 : if (call_expr_nargs (_p1) == 4)
16898 : {
16899 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16900 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16901 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16902 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16903 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16904 : {
16905 0 : {
16906 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16907 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16908 0 : if (res) return res;
16909 : }
16910 : }
16911 : }
16912 : break;
16913 0 : case CFN_COND_DIV:
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_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16925 0 : if (res) return res;
16926 : }
16927 : }
16928 : }
16929 : break;
16930 0 : case CFN_COND_FMA:
16931 0 : if (call_expr_nargs (_p1) == 5)
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 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16938 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16939 : {
16940 0 : {
16941 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16942 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16943 0 : if (res) return res;
16944 : }
16945 : }
16946 : }
16947 : break;
16948 0 : case CFN_COND_FMS:
16949 0 : if (call_expr_nargs (_p1) == 5)
16950 : {
16951 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16952 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16953 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16954 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16955 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16956 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16957 : {
16958 0 : {
16959 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16960 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16961 0 : if (res) return res;
16962 : }
16963 : }
16964 : }
16965 : break;
16966 0 : case CFN_COND_IOR:
16967 0 : if (call_expr_nargs (_p1) == 4)
16968 : {
16969 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16970 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16971 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16972 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16973 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16974 : {
16975 0 : {
16976 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16977 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16978 0 : if (res) return res;
16979 : }
16980 : }
16981 : }
16982 : break;
16983 0 : case CFN_COND_MAX:
16984 0 : if (call_expr_nargs (_p1) == 4)
16985 : {
16986 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16987 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16988 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16989 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16990 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16991 : {
16992 0 : {
16993 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16994 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16995 0 : if (res) return res;
16996 : }
16997 : }
16998 : }
16999 : break;
17000 0 : case CFN_COND_MIN:
17001 0 : if (call_expr_nargs (_p1) == 4)
17002 : {
17003 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17004 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17005 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17006 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17007 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17008 : {
17009 0 : {
17010 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17011 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
17012 0 : if (res) return res;
17013 : }
17014 : }
17015 : }
17016 : break;
17017 0 : case CFN_COND_MOD:
17018 0 : if (call_expr_nargs (_p1) == 4)
17019 : {
17020 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17021 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17022 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17023 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17024 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17025 : {
17026 0 : {
17027 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17028 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
17029 0 : if (res) return res;
17030 : }
17031 : }
17032 : }
17033 : break;
17034 0 : case CFN_COND_MUL:
17035 0 : if (call_expr_nargs (_p1) == 4)
17036 : {
17037 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17038 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17039 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17040 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17041 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17042 : {
17043 0 : {
17044 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17045 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
17046 0 : if (res) return res;
17047 : }
17048 : }
17049 : }
17050 : break;
17051 0 : case CFN_COND_SHL:
17052 0 : if (call_expr_nargs (_p1) == 4)
17053 : {
17054 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17055 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17056 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17057 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17058 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17059 : {
17060 0 : {
17061 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17062 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
17063 0 : if (res) return res;
17064 : }
17065 : }
17066 : }
17067 : break;
17068 0 : case CFN_COND_SHR:
17069 0 : if (call_expr_nargs (_p1) == 4)
17070 : {
17071 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17072 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17073 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17074 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17075 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17076 : {
17077 0 : {
17078 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17079 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
17080 0 : if (res) return res;
17081 : }
17082 : }
17083 : }
17084 : break;
17085 0 : case CFN_COND_SUB:
17086 0 : if (call_expr_nargs (_p1) == 4)
17087 : {
17088 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17089 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17090 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17091 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17092 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17093 : {
17094 0 : {
17095 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17096 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
17097 0 : if (res) return res;
17098 : }
17099 : }
17100 : }
17101 : break;
17102 0 : case CFN_COND_XOR:
17103 0 : if (call_expr_nargs (_p1) == 4)
17104 : {
17105 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17106 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17107 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17108 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17109 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17110 : {
17111 0 : {
17112 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17113 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
17114 0 : if (res) return res;
17115 : }
17116 : }
17117 : }
17118 : break;
17119 0 : case CFN_COND_COPYSIGN:
17120 0 : if (call_expr_nargs (_p1) == 4)
17121 : {
17122 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17123 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17124 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17125 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17126 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17127 : {
17128 0 : {
17129 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17130 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
17131 0 : if (res) return res;
17132 : }
17133 : }
17134 : }
17135 : break;
17136 0 : case CFN_COND_FMAX:
17137 0 : if (call_expr_nargs (_p1) == 4)
17138 : {
17139 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17140 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17141 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17142 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17143 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17144 : {
17145 0 : {
17146 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17147 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17148 0 : if (res) return res;
17149 : }
17150 : }
17151 : }
17152 : break;
17153 0 : case CFN_COND_FMIN:
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_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17165 0 : if (res) return res;
17166 : }
17167 : }
17168 : }
17169 : break;
17170 0 : case CFN_COND_FNMA:
17171 0 : if (call_expr_nargs (_p1) == 5)
17172 : {
17173 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17174 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17175 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17176 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17177 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17178 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17179 : {
17180 0 : {
17181 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17182 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17183 0 : if (res) return res;
17184 : }
17185 : }
17186 : }
17187 : break;
17188 0 : case CFN_COND_FNMS:
17189 0 : if (call_expr_nargs (_p1) == 5)
17190 : {
17191 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17192 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17193 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17194 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17195 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17196 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17197 : {
17198 0 : {
17199 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17200 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17201 0 : if (res) return res;
17202 : }
17203 : }
17204 : }
17205 : break;
17206 0 : case CFN_COND_RDIV:
17207 0 : if (call_expr_nargs (_p1) == 4)
17208 : {
17209 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17210 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17211 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17212 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17213 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17214 : {
17215 0 : {
17216 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17217 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17218 0 : if (res) return res;
17219 : }
17220 : }
17221 : }
17222 : break;
17223 : default:;
17224 : }
17225 : break;
17226 : default:;
17227 : }
17228 : return NULL_TREE;
17229 : }
17230 : #pragma GCC diagnostic pop
|