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 100151476 : tree_zero_one_valued_p (tree t)
11 : {
12 100151476 : const tree type = TREE_TYPE (t);
13 100151476 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 100151476 : if (TREE_SIDE_EFFECTS (t)) return false;
15 94433413 : {
16 94433413 : tree captures[1] ATTRIBUTE_UNUSED = { t };
17 188866826 : if (INTEGRAL_TYPE_P (type)
18 69299671 : && (TYPE_UNSIGNED (type)
19 12371246 : || TYPE_PRECISION (type) > 1)
20 233032737 : && wi::leu_p (tree_nonzero_bits (captures[0]), 1)
21 : )
22 : {
23 485570 : {
24 485570 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 28, __FILE__, __LINE__, false);
25 485570 : return true;
26 : }
27 : }
28 : }
29 93947843 : switch (TREE_CODE (t))
30 : {
31 927450 : case BIT_AND_EXPR:
32 927450 : {
33 927450 : tree _p0 = TREE_OPERAND (t, 0);
34 927450 : tree _p1 = TREE_OPERAND (t, 1);
35 927450 : if (integer_onep (_p1))
36 : {
37 0 : {
38 0 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
39 0 : if (INTEGRAL_TYPE_P (type)
40 : )
41 : {
42 0 : {
43 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
44 0 : return true;
45 : }
46 : }
47 : }
48 : }
49 927450 : if (integer_onep (_p0))
50 : {
51 0 : {
52 0 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p1 };
53 0 : if (INTEGRAL_TYPE_P (type)
54 : )
55 : {
56 0 : {
57 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
58 0 : return true;
59 : }
60 : }
61 : }
62 : }
63 : break;
64 : }
65 44758778 : CASE_CONVERT:
66 44758778 : {
67 44758778 : tree _p0 = TREE_OPERAND (t, 0);
68 44758778 : {
69 44758778 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
70 89510603 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
71 40305946 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
72 35377547 : || TYPE_PRECISION (TREE_TYPE (captures[1])) > 1)
73 40305946 : && INTEGRAL_TYPE_P (type)
74 40305932 : && (TYPE_UNSIGNED (type)
75 1862543 : || TYPE_PRECISION (type) > 1)
76 129823488 : && wi::leu_p (tree_nonzero_bits (captures[1]), 1)
77 : )
78 : {
79 0 : {
80 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 30, __FILE__, __LINE__, false);
81 0 : return true;
82 : }
83 : }
84 : }
85 : break;
86 : }
87 93947843 : default:;
88 : }
89 93947843 : if (tree_truth_valued_p (t))
90 : {
91 157548 : {
92 157548 : tree captures[1] ATTRIBUTE_UNUSED = { t };
93 157548 : if (INTEGRAL_TYPE_P (type)
94 157548 : && (TYPE_UNSIGNED (type)
95 157482 : || TYPE_PRECISION (type) > 1)
96 : )
97 : {
98 157530 : {
99 157530 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 31, __FILE__, __LINE__, false);
100 157530 : return true;
101 : }
102 : }
103 : }
104 : }
105 : return false;
106 : }
107 :
108 : tree
109 1 : generic_simplify_2 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
110 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
111 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
112 : {
113 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
114 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail73;
115 1 : {
116 1 : tree res_op0;
117 1 : res_op0 = captures[0];
118 1 : tree _r;
119 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
120 1 : if (TREE_SIDE_EFFECTS (captures[1]))
121 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
122 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 50, __FILE__, __LINE__, true);
123 : return _r;
124 : }
125 0 : next_after_fail73:;
126 0 : return NULL_TREE;
127 : }
128 :
129 : tree
130 0 : generic_simplify_9 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
131 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
132 : const enum tree_code ARG_UNUSED (op))
133 : {
134 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
135 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail81;
136 0 : {
137 0 : tree res_op0;
138 0 : res_op0 = captures[0];
139 0 : tree res_op1;
140 0 : res_op1 = captures[1];
141 0 : tree _r;
142 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
143 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
144 : return _r;
145 : }
146 0 : next_after_fail81:;
147 0 : return NULL_TREE;
148 : }
149 :
150 : tree
151 24 : generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
152 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
153 : const enum tree_code ARG_UNUSED (op),
154 : const enum tree_code ARG_UNUSED (cmp),
155 : const enum tree_code ARG_UNUSED (icmp))
156 : {
157 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
158 24 : if (invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
159 : )
160 : {
161 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail88;
162 24 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail88;
163 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail88;
164 24 : {
165 24 : tree res_op0;
166 24 : res_op0 = captures[1];
167 24 : tree res_op1;
168 24 : res_op1 = captures[4];
169 24 : tree res_op2;
170 24 : res_op2 = captures[7];
171 24 : tree _r;
172 24 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
173 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 65, __FILE__, __LINE__, true);
174 24 : return _r;
175 : }
176 : next_after_fail88:;
177 : }
178 : return NULL_TREE;
179 : }
180 :
181 : tree
182 523 : generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
183 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
184 : {
185 523 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
186 523 : if (!TYPE_SATURATING (type)
187 : )
188 : {
189 523 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
190 1046 : && !FIXED_POINT_TYPE_P (type)
191 : )
192 : {
193 523 : if (!TYPE_OVERFLOW_TRAPS (type)
194 : )
195 : {
196 523 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail103;
197 523 : {
198 523 : tree res_op0;
199 523 : res_op0 = build_all_ones_cst (TREE_TYPE (captures[0]));
200 523 : tree _r;
201 523 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
202 523 : if (TREE_SIDE_EFFECTS (captures[0]))
203 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
204 523 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 80, __FILE__, __LINE__, true);
205 523 : return _r;
206 : }
207 0 : next_after_fail103:;
208 : }
209 : }
210 : }
211 : return NULL_TREE;
212 : }
213 :
214 : tree
215 9 : generic_simplify_29 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
216 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
217 : {
218 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
219 9 : if (INTEGRAL_TYPE_P (type)
220 9 : && (
221 :
222 9 : || !TREE_SIDE_EFFECTS (captures[1]))
223 : )
224 : {
225 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail110;
226 2 : {
227 2 : tree res_op0;
228 2 : {
229 2 : tree _o1[1], _r1;
230 2 : _o1[0] = captures[2];
231 2 : if (TREE_TYPE (_o1[0]) != boolean_type_node)
232 : {
233 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
234 : }
235 : else
236 : _r1 = _o1[0];
237 2 : res_op0 = _r1;
238 : }
239 2 : tree res_op1;
240 2 : res_op1 = captures[1];
241 2 : tree res_op2;
242 2 : res_op2 = captures[0];
243 2 : tree _r;
244 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
245 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 87, __FILE__, __LINE__, true);
246 2 : return _r;
247 : }
248 0 : next_after_fail110:;
249 : }
250 : return NULL_TREE;
251 : }
252 :
253 : tree
254 18720 : generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
255 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
256 : const enum tree_code ARG_UNUSED (op))
257 : {
258 18720 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
259 18720 : if (flag_unsafe_math_optimizations
260 : )
261 : {
262 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail115;
263 12 : {
264 12 : tree res_op0;
265 12 : {
266 12 : tree _o1[2], _r1;
267 12 : _o1[0] = captures[0];
268 12 : _o1[1] = captures[2];
269 12 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
270 12 : res_op0 = _r1;
271 : }
272 12 : tree res_op1;
273 12 : res_op1 = captures[1];
274 12 : tree _r;
275 12 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
276 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 92, __FILE__, __LINE__, true);
277 12 : return _r;
278 : }
279 0 : next_after_fail115:;
280 : }
281 : return NULL_TREE;
282 : }
283 :
284 : tree
285 85 : generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
286 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
287 : {
288 85 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
289 85 : if (INTEGRAL_TYPE_P (type)
290 85 : || (VECTOR_INTEGER_TYPE_P (type)
291 : && ((optimize_vectors_before_lowering_p ()
292 1 : && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST)
293 0 : || target_supports_op_p (type, TRUNC_MOD_EXPR,
294 : optab_vector)))
295 : )
296 : {
297 85 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail122;
298 85 : {
299 85 : tree res_op0;
300 85 : {
301 85 : tree _o1[2], _r1;
302 85 : _o1[0] = captures[0];
303 85 : _o1[1] = captures[1];
304 85 : _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
305 85 : res_op0 = _r1;
306 : }
307 85 : tree _r;
308 85 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
309 85 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 99, __FILE__, __LINE__, true);
310 85 : return _r;
311 : }
312 0 : next_after_fail122:;
313 : }
314 : return NULL_TREE;
315 : }
316 :
317 : tree
318 1 : generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
319 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
320 : {
321 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
322 1 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
323 1 : && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
324 : )
325 : {
326 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail129;
327 1 : {
328 1 : tree res_op0;
329 1 : {
330 1 : tree _o1[2], _r1;
331 1 : {
332 1 : tree _o2[1], _r2;
333 1 : _o2[0] = captures[3];
334 1 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
335 1 : _o1[0] = _r2;
336 : }
337 1 : _o1[1] = captures[0];
338 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
339 1 : res_op0 = _r1;
340 : }
341 1 : tree _r;
342 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
343 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 106, __FILE__, __LINE__, true);
344 1 : return _r;
345 : }
346 0 : next_after_fail129:;
347 : }
348 : return NULL_TREE;
349 : }
350 :
351 : tree
352 668 : generic_simplify_55 (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 668 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
356 668 : if (!TYPE_SATURATING (type)
357 : )
358 : {
359 668 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
360 1336 : && !FIXED_POINT_TYPE_P (type)
361 : )
362 : {
363 668 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
364 : )
365 : {
366 28 : if (!CONSTANT_CLASS_P (captures[2])
367 : )
368 : {
369 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail139;
370 28 : {
371 28 : tree res_op0;
372 28 : {
373 28 : tree _o1[1], _r1;
374 28 : _o1[0] = captures[2];
375 28 : if (TREE_TYPE (_o1[0]) != type)
376 : {
377 28 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
378 : }
379 : else
380 : _r1 = _o1[0];
381 28 : res_op0 = _r1;
382 : }
383 28 : tree res_op1;
384 28 : {
385 28 : tree _o1[2], _r1;
386 28 : _o1[0] = captures[0];
387 28 : {
388 28 : tree _o2[1], _r2;
389 28 : _o2[0] = captures[1];
390 28 : if (TREE_TYPE (_o2[0]) != type)
391 : {
392 28 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
393 : }
394 : else
395 : _r2 = _o2[0];
396 28 : _o1[1] = _r2;
397 : }
398 28 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
399 28 : if (EXPR_P (_r1))
400 0 : goto next_after_fail139;
401 28 : res_op1 = _r1;
402 : }
403 28 : tree _r;
404 28 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
405 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 115, __FILE__, __LINE__, true);
406 28 : return _r;
407 : }
408 : next_after_fail139:;
409 : }
410 : }
411 : else
412 : {
413 1280 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
414 1280 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
415 : )
416 : {
417 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail140;
418 1 : {
419 1 : tree res_op0;
420 1 : {
421 1 : tree _o1[2], _r1;
422 1 : _o1[0] = captures[2];
423 1 : {
424 1 : tree _o2[2], _r2;
425 1 : {
426 1 : tree _o3[1], _r3;
427 1 : _o3[0] = captures[0];
428 1 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
429 : {
430 1 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
431 : }
432 : else
433 : _r3 = _o3[0];
434 1 : _o2[0] = _r3;
435 : }
436 1 : _o2[1] = captures[1];
437 1 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
438 1 : if (EXPR_P (_r2))
439 0 : goto next_after_fail140;
440 1 : _o1[1] = _r2;
441 : }
442 1 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
443 1 : res_op0 = _r1;
444 : }
445 1 : tree _r;
446 1 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
447 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 116, __FILE__, __LINE__, true);
448 1 : return _r;
449 : }
450 : next_after_fail140:;
451 : }
452 : else
453 : {
454 639 : if (types_match (type, captures[2]) && !TYPE_OVERFLOW_SANITIZED (type)
455 : )
456 : {
457 630 : {
458 630 : tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
459 630 : if (cst && !TREE_OVERFLOW (cst)
460 : )
461 : {
462 630 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail141;
463 630 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail141;
464 630 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail141;
465 630 : {
466 630 : tree res_op0;
467 630 : res_op0 = cst;
468 630 : tree res_op1;
469 630 : res_op1 = captures[2];
470 630 : tree _r;
471 630 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
472 630 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 117, __FILE__, __LINE__, true);
473 630 : return _r;
474 : }
475 : next_after_fail141:;
476 : }
477 : }
478 : }
479 : }
480 : }
481 : }
482 : }
483 : return NULL_TREE;
484 : }
485 :
486 : tree
487 8 : generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
488 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
489 : {
490 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
491 16 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
492 16 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
493 : )
494 : {
495 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail175;
496 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail175;
497 0 : {
498 0 : tree _r;
499 0 : _r = captures[2];
500 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 145, __FILE__, __LINE__, true);
501 0 : return _r;
502 : }
503 : next_after_fail175:;
504 : }
505 : return NULL_TREE;
506 : }
507 :
508 : tree
509 1 : generic_simplify_92 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
510 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
511 : {
512 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
513 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail184;
514 1 : {
515 1 : tree res_op0;
516 1 : {
517 1 : tree _o1[2], _r1;
518 1 : _o1[0] = captures[1];
519 1 : _o1[1] = captures[2];
520 1 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
521 1 : res_op0 = _r1;
522 : }
523 1 : tree _r;
524 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
525 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 151, __FILE__, __LINE__, true);
526 : return _r;
527 : }
528 0 : next_after_fail184:;
529 0 : return NULL_TREE;
530 : }
531 :
532 : tree
533 0 : generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
534 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
535 : const enum tree_code ARG_UNUSED (op))
536 : {
537 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
538 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
539 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
540 : )
541 : {
542 0 : if (single_use (captures[4]) && single_use (captures[5])
543 : )
544 : {
545 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail197;
546 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail197;
547 0 : {
548 0 : tree res_op0;
549 0 : res_op0 = captures[0];
550 0 : tree res_op1;
551 0 : {
552 0 : tree _o1[1], _r1;
553 0 : _o1[0] = captures[6];
554 0 : if (TREE_TYPE (_o1[0]) != type)
555 : {
556 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
557 : }
558 : else
559 : _r1 = _o1[0];
560 0 : res_op1 = _r1;
561 : }
562 0 : tree _r;
563 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
564 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
565 0 : return _r;
566 : }
567 : next_after_fail197:;
568 : }
569 : else
570 : {
571 : if (single_use (captures[0]) && single_use (captures[1])
572 : )
573 : {
574 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail198;
575 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail198;
576 : {
577 : tree res_op0;
578 : {
579 : tree _o1[1], _r1;
580 : _o1[0] = captures[3];
581 : if (TREE_TYPE (_o1[0]) != type)
582 : {
583 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
584 : }
585 : else
586 : _r1 = _o1[0];
587 : res_op0 = _r1;
588 : }
589 : tree res_op1;
590 : res_op1 = captures[4];
591 : tree _r;
592 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
593 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 157, __FILE__, __LINE__, true);
594 : return _r;
595 : }
596 : next_after_fail198:;
597 : }
598 : }
599 : }
600 : return NULL_TREE;
601 : }
602 :
603 : tree
604 0 : generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
605 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
606 : const enum tree_code ARG_UNUSED (op))
607 : {
608 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
609 0 : if (INTEGRAL_TYPE_P (type)
610 0 : && operand_equal_p (captures[2], captures[6], 0)
611 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
612 : )
613 : {
614 0 : {
615 0 : tree t = type;
616 0 : if (!TYPE_OVERFLOW_WRAPS (t))
617 0 : t = unsigned_type_for (t);
618 0 : wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
619 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail213;
620 0 : if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail213;
621 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail213;
622 0 : {
623 0 : tree res_op0;
624 0 : {
625 0 : tree _o1[2], _r1;
626 0 : {
627 0 : tree _o2[1], _r2;
628 0 : _o2[0] = captures[2];
629 0 : if (TREE_TYPE (_o2[0]) != t)
630 : {
631 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
632 : }
633 : else
634 : _r2 = _o2[0];
635 0 : _o1[0] = _r2;
636 : }
637 0 : _o1[1] = wide_int_to_tree (t, c);
638 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
639 0 : res_op0 = _r1;
640 : }
641 0 : tree _r;
642 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
643 0 : if (TREE_SIDE_EFFECTS (captures[6]))
644 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
645 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 166, __FILE__, __LINE__, true);
646 0 : return _r;
647 : }
648 0 : next_after_fail213:;
649 0 : }
650 : }
651 : return NULL_TREE;
652 : }
653 :
654 : tree
655 429 : generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
656 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
657 : const enum tree_code ARG_UNUSED (code2),
658 : const enum tree_code ARG_UNUSED (code1))
659 : {
660 429 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
661 429 : if ((TREE_CODE (captures[2]) == INTEGER_CST
662 398 : && TREE_CODE (captures[5]) == INTEGER_CST)
663 429 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
664 3 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
665 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
666 31 : && bitwise_equal_p (captures[2], captures[5]))
667 : )
668 : {
669 400 : {
670 400 : bool one_before = false;
671 400 : bool one_after = false;
672 400 : int cmp = 0;
673 400 : bool allbits = true;
674 400 : if (TREE_CODE (captures[2]) == INTEGER_CST
675 398 : && TREE_CODE (captures[5]) == INTEGER_CST)
676 : {
677 398 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
678 398 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
679 398 : auto t2 = wi::to_wide (captures[5]);
680 398 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
681 398 : if (cmp < 0
682 398 : && t1 == t2 - 1)
683 : one_before = true;
684 398 : if (cmp > 0
685 398 : && t1 == t2 + 1)
686 : one_after = true;
687 : }
688 400 : bool val;
689 400 : switch (code2)
690 : {
691 384 : case EQ_EXPR: val = (cmp == 0); break;
692 0 : case NE_EXPR: val = (cmp != 0); break;
693 2 : case LT_EXPR: val = (cmp < 0); break;
694 0 : case GT_EXPR: val = (cmp > 0); break;
695 14 : case LE_EXPR: val = (cmp <= 0); break;
696 0 : case GE_EXPR: val = (cmp >= 0); break;
697 0 : default: gcc_unreachable ();
698 : }
699 400 : if (code1 == EQ_EXPR && val
700 : )
701 : {
702 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail238;
703 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail238;
704 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail238;
705 7 : {
706 7 : tree _r;
707 7 : _r = captures[3];
708 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
709 7 : return _r;
710 : }
711 : next_after_fail238:;
712 : }
713 : else
714 : {
715 393 : if (code1 == NE_EXPR && val && allbits
716 : )
717 : {
718 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail239;
719 7 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail239;
720 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail239;
721 7 : {
722 7 : tree _r;
723 7 : _r = constant_boolean_node (true, type);
724 7 : if (TREE_SIDE_EFFECTS (captures[4]))
725 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
726 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
727 7 : return _r;
728 : }
729 : next_after_fail239:;
730 : }
731 : else
732 : {
733 386 : if (code1 == NE_EXPR && !val && allbits
734 : )
735 : {
736 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail240;
737 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail240;
738 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail240;
739 0 : {
740 0 : tree _r;
741 0 : _r = captures[0];
742 0 : if (TREE_SIDE_EFFECTS (captures[4]))
743 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
744 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
745 0 : return _r;
746 : }
747 : next_after_fail240:;
748 : }
749 : else
750 : {
751 386 : if (code1 == EQ_EXPR
752 386 : && code2 == GT_EXPR
753 0 : && cmp == 0
754 0 : && allbits
755 386 : && ((VECTOR_BOOLEAN_TYPE_P (type)
756 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
757 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
758 : )
759 : {
760 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail241;
761 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail241;
762 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail241;
763 0 : {
764 0 : tree res_op0;
765 0 : res_op0 = captures[4];
766 0 : tree res_op1;
767 0 : res_op1 = captures[5];
768 0 : tree _r;
769 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 187, __FILE__, __LINE__, true);
771 0 : return _r;
772 : }
773 : next_after_fail241:;
774 : }
775 : else
776 : {
777 386 : if (code1 == EQ_EXPR
778 386 : && code2 == LT_EXPR
779 2 : && cmp == 0
780 2 : && allbits
781 388 : && ((VECTOR_BOOLEAN_TYPE_P (type)
782 2 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
783 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
784 : )
785 : {
786 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail242;
787 2 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail242;
788 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail242;
789 2 : {
790 2 : tree res_op0;
791 2 : res_op0 = captures[4];
792 2 : tree res_op1;
793 2 : res_op1 = captures[5];
794 2 : tree _r;
795 2 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
796 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
797 2 : return _r;
798 : }
799 : next_after_fail242:;
800 : }
801 : else
802 : {
803 384 : if (code1 == EQ_EXPR
804 384 : && code2 == GE_EXPR
805 : && one_before
806 0 : && allbits
807 384 : && ((VECTOR_BOOLEAN_TYPE_P (type)
808 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
809 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
810 : )
811 : {
812 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail243;
813 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail243;
814 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail243;
815 0 : {
816 0 : tree res_op0;
817 0 : res_op0 = captures[4];
818 0 : tree res_op1;
819 0 : {
820 0 : tree _o1[1], _r1;
821 0 : _o1[0] = captures[2];
822 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
823 : {
824 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
825 : }
826 : else
827 : _r1 = _o1[0];
828 0 : res_op1 = _r1;
829 : }
830 0 : tree _r;
831 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
832 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 189, __FILE__, __LINE__, true);
833 0 : return _r;
834 : }
835 : next_after_fail243:;
836 : }
837 : else
838 : {
839 384 : if (code1 == EQ_EXPR
840 384 : && code2 == LE_EXPR
841 : && one_after
842 0 : && allbits
843 384 : && ((VECTOR_BOOLEAN_TYPE_P (type)
844 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
845 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
846 : )
847 : {
848 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail244;
849 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail244;
850 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail244;
851 0 : {
852 0 : tree res_op0;
853 0 : res_op0 = captures[4];
854 0 : tree res_op1;
855 0 : {
856 0 : tree _o1[1], _r1;
857 0 : _o1[0] = captures[2];
858 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
859 : {
860 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
861 : }
862 : else
863 : _r1 = _o1[0];
864 0 : res_op1 = _r1;
865 : }
866 0 : tree _r;
867 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
868 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 190, __FILE__, __LINE__, true);
869 0 : return _r;
870 : }
871 : next_after_fail244:;
872 : }
873 : }
874 : }
875 : }
876 : }
877 : }
878 : }
879 : }
880 : }
881 : return NULL_TREE;
882 : }
883 :
884 : tree
885 0 : generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
886 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
887 : {
888 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
889 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
890 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
891 : )
892 : {
893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail304;
894 0 : {
895 0 : tree res_op0;
896 0 : {
897 0 : tree _o1[1], _r1;
898 0 : _o1[0] = captures[1];
899 0 : if (TREE_TYPE (_o1[0]) != type)
900 : {
901 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
902 : }
903 : else
904 : _r1 = _o1[0];
905 0 : res_op0 = _r1;
906 : }
907 0 : tree res_op1;
908 0 : {
909 0 : tree _o1[1], _r1;
910 0 : _o1[0] = captures[2];
911 0 : if (TREE_TYPE (_o1[0]) != type)
912 : {
913 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
914 : }
915 : else
916 : _r1 = _o1[0];
917 0 : res_op1 = _r1;
918 : }
919 0 : tree _r;
920 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
921 0 : if (TREE_SIDE_EFFECTS (captures[0]))
922 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
923 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 226, __FILE__, __LINE__, true);
924 0 : return _r;
925 : }
926 0 : next_after_fail304:;
927 : }
928 : return NULL_TREE;
929 : }
930 :
931 : tree
932 0 : generic_simplify_179 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
933 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
934 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
935 : {
936 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
937 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
938 : )
939 : {
940 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail316;
941 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail316;
942 0 : {
943 0 : tree res_op0;
944 0 : {
945 0 : tree _o1[1], _r1;
946 0 : _o1[0] = captures[0];
947 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
948 0 : res_op0 = _r1;
949 : }
950 0 : tree _r;
951 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
952 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
953 0 : return _r;
954 : }
955 : next_after_fail316:;
956 : }
957 : return NULL_TREE;
958 : }
959 :
960 : tree
961 0 : generic_simplify_189 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
962 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
963 : const enum tree_code ARG_UNUSED (cmp))
964 : {
965 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
966 0 : if (fold_before_rtl_expansion_p ()
967 : )
968 : {
969 0 : if (INTEGRAL_TYPE_P (type)
970 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
971 : )
972 : {
973 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail328;
974 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail328;
975 0 : {
976 0 : tree res_op0;
977 0 : res_op0 = captures[0];
978 0 : tree res_op1;
979 0 : res_op1 = captures[3];
980 0 : tree res_op2;
981 0 : res_op2 = build_zero_cst (type);
982 0 : tree _r;
983 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
984 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 243, __FILE__, __LINE__, true);
985 0 : return _r;
986 : }
987 : next_after_fail328:;
988 : }
989 : }
990 : return NULL_TREE;
991 : }
992 :
993 : tree
994 8 : generic_simplify_196 (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 combined_fn ARG_UNUSED (POW))
997 : {
998 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
999 8 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1000 : )
1001 : {
1002 8 : if (!TREE_OVERFLOW (captures[2])
1003 : )
1004 : {
1005 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail336;
1006 8 : {
1007 8 : tree res_op0;
1008 8 : res_op0 = captures[0];
1009 8 : tree res_op1;
1010 8 : {
1011 8 : tree _o1[2], _r1;
1012 8 : _o1[0] = captures[2];
1013 8 : _o1[1] = build_one_cst (type);
1014 8 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1015 8 : res_op1 = _r1;
1016 : }
1017 8 : tree _r;
1018 8 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1019 8 : if (!_r)
1020 0 : goto next_after_fail336;
1021 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 251, __FILE__, __LINE__, true);
1022 8 : return _r;
1023 : }
1024 : next_after_fail336:;
1025 : }
1026 : }
1027 : return NULL_TREE;
1028 : }
1029 :
1030 : tree
1031 142769 : generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1032 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1033 : const enum tree_code ARG_UNUSED (op))
1034 : {
1035 142769 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1036 285538 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1037 283996 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
1038 128260 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
1039 : && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
1040 141994 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1041 426761 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
1042 : )
1043 : {
1044 141986 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail350;
1045 141986 : {
1046 141986 : tree res_op0;
1047 141986 : res_op0 = captures[2];
1048 141986 : tree res_op1;
1049 141986 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1050 141986 : tree _r;
1051 141986 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1052 141986 : if (TREE_SIDE_EFFECTS (captures[3]))
1053 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1054 141986 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
1055 141986 : return _r;
1056 : }
1057 0 : next_after_fail350:;
1058 : }
1059 : return NULL_TREE;
1060 : }
1061 :
1062 : tree
1063 12149 : generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1064 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1065 : const enum tree_code ARG_UNUSED (op))
1066 : {
1067 12149 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1068 12149 : if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1069 12149 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1070 12149 : && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
1071 : )
1072 : {
1073 12149 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail372;
1074 12149 : {
1075 12149 : tree res_op0;
1076 12149 : res_op0 = captures[3];
1077 12149 : tree res_op1;
1078 12149 : res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
1079 12149 : tree _r;
1080 12149 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1081 12149 : if (TREE_SIDE_EFFECTS (captures[2]))
1082 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1083 12149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
1084 12149 : return _r;
1085 : }
1086 0 : next_after_fail372:;
1087 : }
1088 : return NULL_TREE;
1089 : }
1090 :
1091 : tree
1092 40247150 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1093 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1094 : const enum tree_code ARG_UNUSED (cmp))
1095 : {
1096 40247150 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1097 80494448 : if (wi::bit_and_not (get_known_nonzero_bits (captures[1]),
1098 120741450 : get_nonzero_bits (captures[0])) != 0
1099 : )
1100 : {
1101 83304 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
1102 83304 : {
1103 83304 : tree _r;
1104 83304 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1105 83304 : if (TREE_SIDE_EFFECTS (captures[0]))
1106 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1107 83304 : if (TREE_SIDE_EFFECTS (captures[1]))
1108 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1109 83304 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
1110 83304 : return _r;
1111 : }
1112 0 : next_after_fail381:;
1113 : }
1114 : return NULL_TREE;
1115 : }
1116 :
1117 : tree
1118 13 : generic_simplify_232 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1119 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1120 : const enum tree_code ARG_UNUSED (cmp))
1121 : {
1122 13 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1123 13 : if (tree_fits_shwi_p (captures[3])
1124 13 : && tree_to_shwi (captures[3]) > 0
1125 26 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1126 : )
1127 : {
1128 13 : if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
1129 : )
1130 : {
1131 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail391;
1132 0 : {
1133 0 : tree _r;
1134 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1135 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1136 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1137 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1138 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1139 0 : if (TREE_SIDE_EFFECTS (captures[4]))
1140 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
1141 0 : if (TREE_SIDE_EFFECTS (captures[5]))
1142 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
1143 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 304, __FILE__, __LINE__, true);
1144 0 : return _r;
1145 : }
1146 0 : next_after_fail391:;
1147 : }
1148 : else
1149 : {
1150 13 : {
1151 13 : wide_int c1 = wi::to_wide (captures[3]);
1152 13 : wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
1153 13 : wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
1154 13 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail392;
1155 13 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail392;
1156 13 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail392;
1157 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail392;
1158 13 : {
1159 13 : tree res_op0;
1160 13 : {
1161 13 : tree _o1[2], _r1;
1162 13 : _o1[0] = captures[2];
1163 13 : _o1[1] = wide_int_to_tree (TREE_TYPE (captures[2]), c2);
1164 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1165 13 : res_op0 = _r1;
1166 : }
1167 13 : tree res_op1;
1168 13 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), c3);
1169 13 : tree _r;
1170 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1171 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 305, __FILE__, __LINE__, true);
1172 13 : return _r;
1173 : }
1174 0 : next_after_fail392:;
1175 13 : }
1176 : }
1177 : }
1178 : return NULL_TREE;
1179 : }
1180 :
1181 : tree
1182 15981 : generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1183 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1184 : const enum tree_code ARG_UNUSED (cmp))
1185 : {
1186 15981 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1187 15981 : if (single_use (captures[0])
1188 : )
1189 : {
1190 15981 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail415;
1191 15981 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
1192 15981 : {
1193 15981 : tree res_op0;
1194 15981 : res_op0 = captures[1];
1195 15981 : tree res_op1;
1196 15981 : res_op1 = captures[2];
1197 15981 : tree _r;
1198 15981 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1199 15981 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
1200 15981 : return _r;
1201 : }
1202 : next_after_fail415:;
1203 : }
1204 : return NULL_TREE;
1205 : }
1206 :
1207 : tree
1208 925854 : generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1209 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1210 : const enum tree_code ARG_UNUSED (cmp),
1211 : const enum tree_code ARG_UNUSED (scmp))
1212 : {
1213 925854 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1214 925854 : if (single_use (captures[0])
1215 925854 : && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
1216 : )
1217 : {
1218 925854 : {
1219 925854 : tree otype = TREE_TYPE (captures[2]);
1220 925854 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail426;
1221 925854 : {
1222 925854 : tree res_op0;
1223 925854 : {
1224 925854 : tree _o1[1], _r1;
1225 925854 : _o1[0] = captures[1];
1226 925854 : if (TREE_TYPE (_o1[0]) != otype)
1227 : {
1228 191 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1229 : }
1230 : else
1231 : _r1 = _o1[0];
1232 925854 : res_op0 = _r1;
1233 : }
1234 925854 : tree res_op1;
1235 925854 : {
1236 925854 : tree _o1[1], _r1;
1237 925854 : _o1[0] = captures[2];
1238 925854 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1239 925854 : res_op1 = _r1;
1240 : }
1241 925854 : tree _r;
1242 925854 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1243 925854 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 338, __FILE__, __LINE__, true);
1244 925854 : return _r;
1245 : }
1246 0 : next_after_fail426:;
1247 : }
1248 : }
1249 : return NULL_TREE;
1250 : }
1251 :
1252 : tree
1253 1255 : generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1254 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1255 : const enum tree_code ARG_UNUSED (cmp),
1256 : const enum tree_code ARG_UNUSED (icmp))
1257 : {
1258 1255 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1259 1255 : if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1260 1255 : && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1261 : )
1262 : {
1263 1255 : {
1264 1255 : format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
1265 1255 : tree type1 = TREE_TYPE (captures[1]);
1266 1255 : bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
1267 1255 : tree type2 = TREE_TYPE (captures[2]);
1268 1255 : bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
1269 1255 : if (fmt.can_represent_integral_type_p (type1)
1270 1255 : && fmt.can_represent_integral_type_p (type2)
1271 : )
1272 : {
1273 229 : if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
1274 : )
1275 : {
1276 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
1277 0 : {
1278 0 : tree _r;
1279 0 : _r = constant_boolean_node (cmp == ORDERED_EXPR, type);
1280 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1281 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1282 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1283 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1284 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 376, __FILE__, __LINE__, true);
1285 183 : return _r;
1286 : }
1287 0 : next_after_fail465:;
1288 : }
1289 : else
1290 : {
1291 229 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
1292 229 : && type1_signed_p >= type2_signed_p
1293 : )
1294 : {
1295 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail466;
1296 0 : {
1297 0 : tree res_op0;
1298 0 : res_op0 = captures[1];
1299 0 : tree res_op1;
1300 0 : {
1301 0 : tree _o1[1], _r1;
1302 0 : _o1[0] = captures[2];
1303 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1304 : {
1305 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1306 : }
1307 : else
1308 : _r1 = _o1[0];
1309 0 : res_op1 = _r1;
1310 : }
1311 0 : tree _r;
1312 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1313 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 377, __FILE__, __LINE__, true);
1314 0 : return _r;
1315 : }
1316 0 : next_after_fail466:;
1317 : }
1318 : else
1319 : {
1320 229 : if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
1321 229 : && type1_signed_p <= type2_signed_p
1322 : )
1323 : {
1324 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail467;
1325 7 : {
1326 7 : tree res_op0;
1327 7 : {
1328 7 : tree _o1[1], _r1;
1329 7 : _o1[0] = captures[1];
1330 7 : if (TREE_TYPE (_o1[0]) != type2)
1331 : {
1332 7 : _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
1333 : }
1334 : else
1335 : _r1 = _o1[0];
1336 7 : res_op0 = _r1;
1337 : }
1338 7 : tree res_op1;
1339 7 : res_op1 = captures[2];
1340 7 : tree _r;
1341 7 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1342 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 378, __FILE__, __LINE__, true);
1343 7 : return _r;
1344 : }
1345 0 : next_after_fail467:;
1346 : }
1347 : else
1348 : {
1349 222 : if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
1350 222 : && type1_signed_p == type2_signed_p
1351 : )
1352 : {
1353 176 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail468;
1354 176 : {
1355 176 : tree res_op0;
1356 176 : res_op0 = captures[1];
1357 176 : tree res_op1;
1358 176 : {
1359 176 : tree _o1[1], _r1;
1360 176 : _o1[0] = captures[2];
1361 176 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1362 : {
1363 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1364 : }
1365 : else
1366 : _r1 = _o1[0];
1367 176 : res_op1 = _r1;
1368 : }
1369 176 : tree _r;
1370 176 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1371 176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 379, __FILE__, __LINE__, true);
1372 176 : return _r;
1373 : }
1374 0 : next_after_fail468:;
1375 : }
1376 : }
1377 : }
1378 : }
1379 : }
1380 : }
1381 : }
1382 : return NULL_TREE;
1383 : }
1384 :
1385 : tree
1386 451 : generic_simplify_272 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1387 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1388 : const enum tree_code ARG_UNUSED (cmp))
1389 : {
1390 451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1391 451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail502;
1392 451 : {
1393 451 : tree res_op0;
1394 451 : {
1395 451 : tree _o1[2], _r1;
1396 451 : _o1[0] = captures[0];
1397 451 : {
1398 451 : tree _o2[1], _r2;
1399 451 : _o2[0] = captures[1];
1400 451 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1401 451 : if (EXPR_P (_r2))
1402 443 : goto next_after_fail502;
1403 8 : _o1[1] = _r2;
1404 : }
1405 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1406 8 : res_op0 = _r1;
1407 : }
1408 8 : tree res_op1;
1409 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1410 8 : tree _r;
1411 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1412 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 406, __FILE__, __LINE__, true);
1413 : return _r;
1414 : }
1415 : next_after_fail502:;
1416 : return NULL_TREE;
1417 : }
1418 :
1419 : tree
1420 107932 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1421 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1422 : const enum tree_code ARG_UNUSED (cmp),
1423 : const enum tree_code ARG_UNUSED (icmp))
1424 : {
1425 107932 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1426 107932 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail506;
1427 107910 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail506;
1428 107910 : {
1429 107910 : tree res_op0;
1430 107910 : res_op0 = captures[0];
1431 107910 : tree res_op1;
1432 107910 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1433 107910 : tree _r;
1434 107910 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1435 107910 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 410, __FILE__, __LINE__, true);
1436 : return _r;
1437 : }
1438 : next_after_fail506:;
1439 : return NULL_TREE;
1440 : }
1441 :
1442 : tree
1443 18 : generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1444 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1445 : const enum tree_code ARG_UNUSED (cmp),
1446 : const enum tree_code ARG_UNUSED (ncmp))
1447 : {
1448 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1449 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1450 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1451 36 : && types_match (captures[0], captures[2])
1452 : )
1453 : {
1454 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail511;
1455 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail511;
1456 2 : {
1457 2 : tree res_op0;
1458 2 : {
1459 2 : tree _o1[2], _r1;
1460 2 : _o1[0] = captures[0];
1461 2 : _o1[1] = captures[2];
1462 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1463 2 : res_op0 = _r1;
1464 : }
1465 2 : tree res_op1;
1466 2 : res_op1 = captures[1];
1467 2 : tree _r;
1468 2 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1469 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 413, __FILE__, __LINE__, true);
1470 2 : return _r;
1471 : }
1472 : next_after_fail511:;
1473 : }
1474 : return NULL_TREE;
1475 : }
1476 :
1477 : tree
1478 0 : generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1479 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1480 : const enum tree_code ARG_UNUSED (inner),
1481 : const enum tree_code ARG_UNUSED (outer))
1482 : {
1483 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1484 0 : {
1485 0 : bool cst1 = integer_onep (captures[1]);
1486 0 : bool cst0 = integer_zerop (captures[1]);
1487 0 : bool innereq = inner == EQ_EXPR;
1488 0 : bool outereq = outer == EQ_EXPR;
1489 0 : if (innereq ? cst0 : cst1
1490 : )
1491 : {
1492 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
1493 0 : {
1494 0 : tree _r;
1495 0 : _r = constant_boolean_node (!outereq, type);
1496 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1497 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1498 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1499 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1500 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
1501 0 : return _r;
1502 : }
1503 0 : next_after_fail531:;
1504 : }
1505 : else
1506 : {
1507 0 : if (innereq ? cst1 : cst0
1508 : )
1509 : {
1510 0 : {
1511 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1512 0 : tree ucst1 = build_one_cst (utype);
1513 0 : if (!outereq
1514 : )
1515 : {
1516 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
1517 0 : {
1518 0 : tree res_op0;
1519 0 : {
1520 0 : tree _o1[1], _r1;
1521 0 : _o1[0] = captures[0];
1522 0 : if (TREE_TYPE (_o1[0]) != utype)
1523 : {
1524 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1525 : }
1526 : else
1527 : _r1 = _o1[0];
1528 0 : res_op0 = _r1;
1529 : }
1530 0 : tree res_op1;
1531 0 : res_op1 = ucst1;
1532 0 : tree _r;
1533 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1534 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1535 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1536 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
1537 0 : return _r;
1538 : }
1539 0 : next_after_fail532:;
1540 : }
1541 : else
1542 : {
1543 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail533;
1544 0 : {
1545 0 : tree res_op0;
1546 0 : {
1547 0 : tree _o1[1], _r1;
1548 0 : _o1[0] = captures[0];
1549 0 : if (TREE_TYPE (_o1[0]) != utype)
1550 : {
1551 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1552 : }
1553 : else
1554 : _r1 = _o1[0];
1555 0 : res_op0 = _r1;
1556 : }
1557 0 : tree res_op1;
1558 0 : res_op1 = ucst1;
1559 0 : tree _r;
1560 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1561 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1562 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1563 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 427, __FILE__, __LINE__, true);
1564 0 : return _r;
1565 : }
1566 0 : next_after_fail533:;
1567 : }
1568 : }
1569 : }
1570 : else
1571 : {
1572 0 : {
1573 0 : tree value = build_int_cst (TREE_TYPE (captures[0]), !innereq);
1574 0 : if (outereq
1575 : )
1576 : {
1577 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail534;
1578 0 : {
1579 0 : tree res_op0;
1580 0 : res_op0 = captures[0];
1581 0 : tree res_op1;
1582 0 : res_op1 = value;
1583 0 : tree _r;
1584 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1585 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1586 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1587 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
1588 0 : return _r;
1589 : }
1590 0 : next_after_fail534:;
1591 : }
1592 : else
1593 : {
1594 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail535;
1595 0 : {
1596 0 : tree res_op0;
1597 0 : res_op0 = captures[0];
1598 0 : tree res_op1;
1599 0 : res_op1 = value;
1600 0 : tree _r;
1601 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1602 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1603 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1604 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 429, __FILE__, __LINE__, true);
1605 0 : return _r;
1606 : }
1607 0 : next_after_fail535:;
1608 : }
1609 : }
1610 : }
1611 : }
1612 : }
1613 : return NULL_TREE;
1614 : }
1615 :
1616 : tree
1617 45 : generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1618 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1619 : const enum tree_code ARG_UNUSED (cmp),
1620 : const enum tree_code ARG_UNUSED (rep),
1621 : const combined_fn ARG_UNUSED (popcount))
1622 : {
1623 45 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1624 45 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail556;
1625 45 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
1626 45 : {
1627 45 : tree res_op0;
1628 45 : res_op0 = captures[0];
1629 45 : tree res_op1;
1630 45 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1631 45 : tree _r;
1632 45 : _r = fold_build2_loc (loc, rep, type, res_op0, res_op1);
1633 45 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 450, __FILE__, __LINE__, true);
1634 : return _r;
1635 : }
1636 : next_after_fail556:;
1637 : return NULL_TREE;
1638 : }
1639 :
1640 : tree
1641 129022 : generic_simplify_300 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1642 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1643 : const enum tree_code ARG_UNUSED (cmp))
1644 : {
1645 129022 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1646 129022 : if (cmp != NE_EXPR
1647 123802 : || ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1648 141481 : || ! tree_expr_maybe_nan_p (captures[0])
1649 : )
1650 : {
1651 122377 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail564;
1652 122377 : {
1653 122377 : tree _r;
1654 122377 : _r = constant_boolean_node (false, type);
1655 122377 : if (TREE_SIDE_EFFECTS (captures[0]))
1656 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1657 122377 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 458, __FILE__, __LINE__, true);
1658 122377 : return _r;
1659 : }
1660 0 : next_after_fail564:;
1661 : }
1662 : return NULL_TREE;
1663 : }
1664 :
1665 : tree
1666 0 : generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1667 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1668 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1669 : {
1670 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1671 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail569;
1672 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail569;
1673 0 : {
1674 0 : tree _r;
1675 0 : _r = captures[1];
1676 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
1677 : return _r;
1678 : }
1679 : next_after_fail569:;
1680 : return NULL_TREE;
1681 : }
1682 :
1683 : tree
1684 896 : generic_simplify_312 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1685 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1686 : const enum tree_code ARG_UNUSED (div))
1687 : {
1688 896 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1689 1792 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
1690 896 : && !integer_zerop (captures[0])
1691 1163 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1692 : )
1693 : {
1694 111 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail578;
1695 111 : {
1696 111 : tree _r;
1697 111 : _r = build_one_cst (type);
1698 111 : if (TREE_SIDE_EFFECTS (captures[0]))
1699 2 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1700 111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 470, __FILE__, __LINE__, true);
1701 111 : return _r;
1702 : }
1703 0 : next_after_fail578:;
1704 : }
1705 : return NULL_TREE;
1706 : }
1707 :
1708 : tree
1709 192 : generic_simplify_318 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1710 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1711 : const enum tree_code ARG_UNUSED (div))
1712 : {
1713 192 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1714 192 : if (ANY_INTEGRAL_TYPE_P (type)
1715 : )
1716 : {
1717 192 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1718 : )
1719 : {
1720 164 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail585;
1721 164 : {
1722 164 : tree _r;
1723 164 : _r = captures[1];
1724 164 : if (TREE_SIDE_EFFECTS (captures[2]))
1725 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1726 164 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 477, __FILE__, __LINE__, true);
1727 164 : return _r;
1728 : }
1729 0 : next_after_fail585:;
1730 : }
1731 : }
1732 : return NULL_TREE;
1733 : }
1734 :
1735 : tree
1736 919 : generic_simplify_321 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1737 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1738 : const enum tree_code ARG_UNUSED (mod))
1739 : {
1740 919 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1741 919 : if (!integer_zerop (captures[1])
1742 : )
1743 : {
1744 785 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail588;
1745 785 : {
1746 785 : tree _r;
1747 785 : _r = captures[0];
1748 785 : if (TREE_SIDE_EFFECTS (captures[1]))
1749 74 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1750 785 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 480, __FILE__, __LINE__, true);
1751 785 : return _r;
1752 : }
1753 0 : next_after_fail588:;
1754 : }
1755 : return NULL_TREE;
1756 : }
1757 :
1758 : tree
1759 0 : generic_simplify_329 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1760 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1761 : {
1762 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1763 0 : if (SCALAR_FLOAT_TYPE_P (type)
1764 0 : && ! HONOR_NANS (type)
1765 0 : && ! HONOR_INFINITIES (type)
1766 : )
1767 : {
1768 0 : if (types_match (type, float_type_node)
1769 : )
1770 : {
1771 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail596;
1772 0 : {
1773 0 : tree res_op0;
1774 0 : res_op0 = build_one_cst (type);
1775 0 : tree res_op1;
1776 0 : {
1777 0 : tree _o1[1], _r1;
1778 0 : _o1[0] = captures[0];
1779 0 : if (TREE_TYPE (_o1[0]) != type)
1780 : {
1781 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1782 : }
1783 : else
1784 : _r1 = _o1[0];
1785 0 : res_op1 = _r1;
1786 : }
1787 0 : tree _r;
1788 0 : _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
1789 0 : if (!_r)
1790 0 : goto next_after_fail596;
1791 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
1792 0 : return _r;
1793 : }
1794 : next_after_fail596:;
1795 : }
1796 : else
1797 : {
1798 0 : if (types_match (type, double_type_node)
1799 : )
1800 : {
1801 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail597;
1802 0 : {
1803 0 : tree res_op0;
1804 0 : res_op0 = build_one_cst (type);
1805 0 : tree res_op1;
1806 0 : {
1807 0 : tree _o1[1], _r1;
1808 0 : _o1[0] = captures[0];
1809 0 : if (TREE_TYPE (_o1[0]) != type)
1810 : {
1811 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1812 : }
1813 : else
1814 : _r1 = _o1[0];
1815 0 : res_op1 = _r1;
1816 : }
1817 0 : tree _r;
1818 0 : _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
1819 0 : if (!_r)
1820 0 : goto next_after_fail597;
1821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
1822 0 : return _r;
1823 : }
1824 : next_after_fail597:;
1825 : }
1826 : else
1827 : {
1828 0 : if (types_match (type, long_double_type_node)
1829 : )
1830 : {
1831 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail598;
1832 0 : {
1833 0 : tree res_op0;
1834 0 : res_op0 = build_one_cst (type);
1835 0 : tree res_op1;
1836 0 : {
1837 0 : tree _o1[1], _r1;
1838 0 : _o1[0] = captures[0];
1839 0 : if (TREE_TYPE (_o1[0]) != type)
1840 : {
1841 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1842 : }
1843 : else
1844 : _r1 = _o1[0];
1845 0 : res_op1 = _r1;
1846 : }
1847 0 : tree _r;
1848 0 : _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
1849 0 : if (!_r)
1850 0 : goto next_after_fail598;
1851 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 490, __FILE__, __LINE__, true);
1852 0 : return _r;
1853 : }
1854 : next_after_fail598:;
1855 : }
1856 : }
1857 : }
1858 : }
1859 : return NULL_TREE;
1860 : }
1861 :
1862 : tree
1863 164 : generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1864 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1865 : const enum tree_code ARG_UNUSED (op))
1866 : {
1867 164 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1868 164 : if (bitwise_equal_p (captures[0], captures[3])
1869 164 : && expr_no_side_effects_p (captures[2])
1870 : )
1871 : {
1872 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail625;
1873 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail625;
1874 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail625;
1875 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail625;
1876 1 : {
1877 1 : tree _r;
1878 1 : _r = captures[1];
1879 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 516, __FILE__, __LINE__, true);
1880 1 : return _r;
1881 : }
1882 : next_after_fail625:;
1883 : }
1884 : return NULL_TREE;
1885 : }
1886 :
1887 : tree
1888 0 : generic_simplify_353 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1889 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1890 : {
1891 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1892 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail628;
1893 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail628;
1894 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail628;
1895 0 : {
1896 0 : tree _r;
1897 0 : _r = captures[2];
1898 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 519, __FILE__, __LINE__, true);
1899 : return _r;
1900 : }
1901 : next_after_fail628:;
1902 : return NULL_TREE;
1903 : }
1904 :
1905 : tree
1906 0 : generic_simplify_361 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1907 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1908 : {
1909 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1910 0 : if (INTEGRAL_TYPE_P (type)
1911 : )
1912 : {
1913 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail636;
1914 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail636;
1915 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail636;
1916 0 : {
1917 0 : tree _r;
1918 0 : _r = captures[2];
1919 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 527, __FILE__, __LINE__, true);
1920 0 : return _r;
1921 : }
1922 : next_after_fail636:;
1923 : }
1924 : return NULL_TREE;
1925 : }
1926 :
1927 : tree
1928 22 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1929 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1930 : const enum tree_code ARG_UNUSED (cmp))
1931 : {
1932 22 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1933 22 : if (INTEGRAL_TYPE_P (type)
1934 22 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1935 22 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1936 44 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
1937 : )
1938 : {
1939 22 : {
1940 22 : tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
1941 22 : if (cmp == LT_EXPR
1942 : )
1943 : {
1944 13 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail644;
1945 13 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail644;
1946 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail644;
1947 13 : {
1948 13 : tree res_op0;
1949 13 : {
1950 13 : tree _o1[1], _r1;
1951 13 : {
1952 13 : tree _o2[2], _r2;
1953 13 : _o2[0] = captures[0];
1954 13 : _o2[1] = shifter;
1955 13 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1956 13 : _o1[0] = _r2;
1957 : }
1958 13 : if (TREE_TYPE (_o1[0]) != type)
1959 : {
1960 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1961 : }
1962 : else
1963 : _r1 = _o1[0];
1964 13 : res_op0 = _r1;
1965 : }
1966 13 : tree res_op1;
1967 13 : res_op1 = captures[1];
1968 13 : tree _r;
1969 13 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
1970 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
1971 13 : return _r;
1972 : }
1973 : next_after_fail644:;
1974 : }
1975 : else
1976 : {
1977 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail645;
1978 9 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail645;
1979 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail645;
1980 9 : {
1981 9 : tree res_op0;
1982 9 : {
1983 9 : tree _o1[2], _r1;
1984 9 : {
1985 9 : tree _o2[1], _r2;
1986 9 : {
1987 9 : tree _o3[2], _r3;
1988 9 : _o3[0] = captures[0];
1989 9 : _o3[1] = shifter;
1990 9 : _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
1991 9 : _o2[0] = _r3;
1992 : }
1993 9 : if (TREE_TYPE (_o2[0]) != type)
1994 : {
1995 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
1996 : }
1997 : else
1998 : _r2 = _o2[0];
1999 9 : _o1[0] = _r2;
2000 : }
2001 9 : _o1[1] = captures[1];
2002 9 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2003 9 : res_op0 = _r1;
2004 : }
2005 9 : tree _r;
2006 9 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2007 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
2008 9 : return _r;
2009 : }
2010 : next_after_fail645:;
2011 : }
2012 : }
2013 : }
2014 : return NULL_TREE;
2015 : }
2016 :
2017 : tree
2018 22929087 : generic_simplify_386 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2019 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2020 : const enum tree_code ARG_UNUSED (cmp))
2021 : {
2022 22929087 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2023 45852158 : if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2024 10419 : || POINTER_TYPE_P (TREE_TYPE (captures[2]))
2025 1962 : || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
2026 45852158 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2027 : )
2028 : {
2029 22929087 : {
2030 22929087 : tree cst = uniform_integer_cst_p (captures[2]);
2031 22929087 : tree arg1_type = TREE_TYPE (cst);
2032 22929087 : unsigned int prec = TYPE_PRECISION (arg1_type);
2033 22929087 : wide_int max = wi::max_value (arg1_type);
2034 22929087 : wide_int signed_max = wi::max_value (prec, SIGNED);
2035 22929087 : wide_int min = wi::min_value (arg1_type);
2036 22929087 : if (wi::to_wide (cst) == max
2037 : )
2038 : {
2039 187820 : if (cmp == GT_EXPR
2040 : )
2041 : {
2042 117364 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
2043 117364 : {
2044 117364 : tree _r;
2045 117364 : _r = constant_boolean_node (false, type);
2046 117364 : if (TREE_SIDE_EFFECTS (captures[0]))
2047 80 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2048 117364 : if (TREE_SIDE_EFFECTS (captures[2]))
2049 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2050 117364 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 558, __FILE__, __LINE__, true);
2051 117364 : return _r;
2052 : }
2053 0 : next_after_fail684:;
2054 : }
2055 : else
2056 : {
2057 70456 : if (cmp == GE_EXPR
2058 : )
2059 : {
2060 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
2061 7 : {
2062 7 : tree res_op0;
2063 7 : res_op0 = captures[0];
2064 7 : tree res_op1;
2065 7 : res_op1 = captures[2];
2066 7 : tree _r;
2067 7 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2068 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 559, __FILE__, __LINE__, true);
2069 7 : return _r;
2070 : }
2071 0 : next_after_fail685:;
2072 : }
2073 : else
2074 : {
2075 70449 : if (cmp == LE_EXPR
2076 : )
2077 : {
2078 70439 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail686;
2079 70439 : {
2080 70439 : tree _r;
2081 70439 : _r = constant_boolean_node (true, type);
2082 70439 : if (TREE_SIDE_EFFECTS (captures[0]))
2083 23 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2084 70439 : if (TREE_SIDE_EFFECTS (captures[2]))
2085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2086 70439 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
2087 70439 : return _r;
2088 : }
2089 0 : next_after_fail686:;
2090 : }
2091 : else
2092 : {
2093 10 : if (cmp == LT_EXPR
2094 : )
2095 : {
2096 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail687;
2097 10 : {
2098 10 : tree res_op0;
2099 10 : res_op0 = captures[0];
2100 10 : tree res_op1;
2101 10 : res_op1 = captures[2];
2102 10 : tree _r;
2103 10 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2104 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
2105 10 : return _r;
2106 : }
2107 0 : next_after_fail687:;
2108 : }
2109 : }
2110 : }
2111 : }
2112 : }
2113 : else
2114 : {
2115 22741267 : if (wi::to_wide (cst) == min
2116 : )
2117 : {
2118 1536122 : if (cmp == LT_EXPR
2119 : )
2120 : {
2121 551353 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
2122 551353 : {
2123 551353 : tree _r;
2124 551353 : _r = constant_boolean_node (false, type);
2125 551353 : if (TREE_SIDE_EFFECTS (captures[0]))
2126 38 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2127 551353 : if (TREE_SIDE_EFFECTS (captures[2]))
2128 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2129 551353 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
2130 551353 : return _r;
2131 : }
2132 0 : next_after_fail688:;
2133 : }
2134 : else
2135 : {
2136 984769 : if (cmp == LE_EXPR
2137 : )
2138 : {
2139 116881 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
2140 116881 : {
2141 116881 : tree res_op0;
2142 116881 : res_op0 = captures[0];
2143 116881 : tree res_op1;
2144 116881 : res_op1 = captures[2];
2145 116881 : tree _r;
2146 116881 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2147 116881 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
2148 116881 : return _r;
2149 : }
2150 0 : next_after_fail689:;
2151 : }
2152 : else
2153 : {
2154 867888 : if (cmp == GE_EXPR
2155 : )
2156 : {
2157 269606 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
2158 269606 : {
2159 269606 : tree _r;
2160 269606 : _r = constant_boolean_node (true, type);
2161 269606 : if (TREE_SIDE_EFFECTS (captures[0]))
2162 125 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2163 269606 : if (TREE_SIDE_EFFECTS (captures[2]))
2164 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2165 269606 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
2166 269606 : return _r;
2167 : }
2168 0 : next_after_fail690:;
2169 : }
2170 : else
2171 : {
2172 598282 : if (cmp == GT_EXPR
2173 : )
2174 : {
2175 598282 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
2176 598282 : {
2177 598282 : tree res_op0;
2178 598282 : res_op0 = captures[0];
2179 598282 : tree res_op1;
2180 598282 : res_op1 = captures[2];
2181 598282 : tree _r;
2182 598282 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2183 598282 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 565, __FILE__, __LINE__, true);
2184 598282 : return _r;
2185 : }
2186 0 : next_after_fail691:;
2187 : }
2188 : }
2189 : }
2190 : }
2191 : }
2192 : else
2193 : {
2194 21205150 : if (wi::to_wide (cst) == max - 1
2195 : )
2196 : {
2197 406424 : if (cmp == GT_EXPR
2198 : )
2199 : {
2200 154377 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
2201 154377 : {
2202 154377 : tree res_op0;
2203 154377 : res_op0 = captures[0];
2204 154377 : tree res_op1;
2205 154377 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2206 154377 : wide_int_to_tree (TREE_TYPE (cst),
2207 154377 : wi::to_wide (cst)
2208 308754 : + 1));
2209 154377 : tree _r;
2210 154377 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2211 154377 : if (TREE_SIDE_EFFECTS (captures[2]))
2212 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2213 154377 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
2214 154377 : return _r;
2215 : }
2216 0 : next_after_fail692:;
2217 : }
2218 : else
2219 : {
2220 252047 : if (cmp == LE_EXPR
2221 : )
2222 : {
2223 252047 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
2224 252047 : {
2225 252047 : tree res_op0;
2226 252047 : res_op0 = captures[0];
2227 252047 : tree res_op1;
2228 252047 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2229 252047 : wide_int_to_tree (TREE_TYPE (cst),
2230 252047 : wi::to_wide (cst)
2231 504094 : + 1));
2232 252047 : tree _r;
2233 252047 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2234 252047 : if (TREE_SIDE_EFFECTS (captures[2]))
2235 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2236 252047 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2237 252047 : return _r;
2238 : }
2239 0 : next_after_fail693:;
2240 : }
2241 : }
2242 : }
2243 : else
2244 : {
2245 20798726 : if (wi::to_wide (cst) == min + 1
2246 : )
2247 : {
2248 732207 : if (cmp == GE_EXPR
2249 : )
2250 : {
2251 59390 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
2252 59390 : {
2253 59390 : tree res_op0;
2254 59390 : res_op0 = captures[0];
2255 59390 : tree res_op1;
2256 59390 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2257 59390 : wide_int_to_tree (TREE_TYPE (cst),
2258 59390 : wi::to_wide (cst)
2259 118780 : - 1));
2260 59390 : tree _r;
2261 59390 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2262 59390 : if (TREE_SIDE_EFFECTS (captures[2]))
2263 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2264 59390 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2265 59390 : return _r;
2266 : }
2267 0 : next_after_fail694:;
2268 : }
2269 : else
2270 : {
2271 672817 : if (cmp == LT_EXPR
2272 : )
2273 : {
2274 28628 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
2275 28628 : {
2276 28628 : tree res_op0;
2277 28628 : res_op0 = captures[0];
2278 28628 : tree res_op1;
2279 28628 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2280 28628 : wide_int_to_tree (TREE_TYPE (cst),
2281 28628 : wi::to_wide (cst)
2282 57256 : - 1));
2283 28628 : tree _r;
2284 28628 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2285 28628 : if (TREE_SIDE_EFFECTS (captures[2]))
2286 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2287 28628 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
2288 28628 : return _r;
2289 : }
2290 0 : next_after_fail695:;
2291 : }
2292 : }
2293 : }
2294 : else
2295 : {
2296 20066514 : if (wi::to_wide (cst) == signed_max
2297 162205 : && TYPE_UNSIGNED (arg1_type)
2298 162205 : && TYPE_MODE (arg1_type) != BLKmode
2299 20066521 : && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
2300 20228146 : && INTEGRAL_TYPE_P (arg1_type)
2301 : )
2302 : {
2303 161625 : if (cmp == LE_EXPR || cmp == GT_EXPR
2304 : )
2305 : {
2306 161625 : {
2307 161625 : tree st = signed_type_for (TREE_TYPE (captures[2]));
2308 161625 : if (cst == captures[2] && cmp == LE_EXPR
2309 : )
2310 : {
2311 113181 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
2312 113181 : {
2313 113181 : tree res_op0;
2314 113181 : {
2315 113181 : tree _o1[1], _r1;
2316 113181 : _o1[0] = captures[1];
2317 113181 : if (TREE_TYPE (_o1[0]) != st)
2318 : {
2319 113181 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2320 : }
2321 : else
2322 : _r1 = _o1[0];
2323 113181 : res_op0 = _r1;
2324 : }
2325 113181 : tree res_op1;
2326 113181 : res_op1 = build_zero_cst (st);
2327 113181 : tree _r;
2328 113181 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2329 113181 : if (TREE_SIDE_EFFECTS (captures[2]))
2330 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2331 113181 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
2332 113181 : return _r;
2333 : }
2334 0 : next_after_fail696:;
2335 0 : }
2336 : else
2337 : {
2338 48444 : if (cst == captures[2] && cmp == GT_EXPR
2339 : )
2340 : {
2341 48358 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail697;
2342 48358 : {
2343 48358 : tree res_op0;
2344 48358 : {
2345 48358 : tree _o1[1], _r1;
2346 48358 : _o1[0] = captures[1];
2347 48358 : if (TREE_TYPE (_o1[0]) != st)
2348 : {
2349 48358 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2350 : }
2351 : else
2352 : _r1 = _o1[0];
2353 48358 : res_op0 = _r1;
2354 : }
2355 48358 : tree res_op1;
2356 48358 : res_op1 = build_zero_cst (st);
2357 48358 : tree _r;
2358 48358 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2359 48358 : if (TREE_SIDE_EFFECTS (captures[2]))
2360 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2361 48358 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
2362 48358 : return _r;
2363 : }
2364 0 : next_after_fail697:;
2365 0 : }
2366 : else
2367 : {
2368 86 : if (cmp == LE_EXPR
2369 : )
2370 : {
2371 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail698;
2372 30 : {
2373 30 : tree res_op0;
2374 30 : {
2375 30 : tree _o1[1], _r1;
2376 30 : _o1[0] = captures[1];
2377 30 : if (TREE_TYPE (_o1[0]) != st)
2378 : {
2379 30 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2380 : }
2381 : else
2382 : _r1 = _o1[0];
2383 30 : res_op0 = _r1;
2384 : }
2385 30 : tree res_op1;
2386 30 : res_op1 = build_zero_cst (st);
2387 30 : tree _r;
2388 30 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2389 30 : if (TREE_SIDE_EFFECTS (captures[2]))
2390 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2391 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
2392 30 : return _r;
2393 : }
2394 0 : next_after_fail698:;
2395 : }
2396 : else
2397 : {
2398 56 : if (cmp == GT_EXPR
2399 : )
2400 : {
2401 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail699;
2402 56 : {
2403 56 : tree res_op0;
2404 56 : {
2405 56 : tree _o1[1], _r1;
2406 56 : _o1[0] = captures[1];
2407 56 : if (TREE_TYPE (_o1[0]) != st)
2408 : {
2409 56 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
2410 : }
2411 : else
2412 : _r1 = _o1[0];
2413 56 : res_op0 = _r1;
2414 : }
2415 56 : tree res_op1;
2416 56 : res_op1 = build_zero_cst (st);
2417 56 : tree _r;
2418 56 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2419 56 : if (TREE_SIDE_EFFECTS (captures[2]))
2420 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2421 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
2422 56 : return _r;
2423 : }
2424 0 : next_after_fail699:;
2425 : }
2426 : }
2427 : }
2428 : }
2429 : }
2430 : }
2431 : }
2432 : }
2433 : }
2434 : }
2435 : }
2436 22929097 : }
2437 : }
2438 : return NULL_TREE;
2439 : }
2440 :
2441 : tree
2442 0 : generic_simplify_444 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2443 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2444 : {
2445 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2446 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail789;
2447 0 : {
2448 0 : tree res_op0;
2449 0 : res_op0 = captures[0];
2450 0 : tree res_op1;
2451 0 : res_op1 = captures[1];
2452 0 : tree _r;
2453 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2454 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 644, __FILE__, __LINE__, true);
2455 : return _r;
2456 : }
2457 0 : next_after_fail789:;
2458 0 : return NULL_TREE;
2459 : }
2460 :
2461 : tree
2462 362 : generic_simplify_450 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2463 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2464 : const enum tree_code ARG_UNUSED (bitop),
2465 : const enum tree_code ARG_UNUSED (op))
2466 : {
2467 362 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2468 362 : {
2469 362 : tree pmop[2];
2470 362 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK,
2471 : NULL_TREE, NULL_TREE, captures[2], bitop, captures[3],
2472 : captures[4], pmop);
2473 362 : if (utype
2474 : )
2475 : {
2476 361 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail795;
2477 361 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail795;
2478 361 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail795;
2479 361 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail795;
2480 361 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail795;
2481 361 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail795;
2482 361 : {
2483 361 : tree res_op0;
2484 361 : {
2485 361 : tree _o1[2], _r1;
2486 361 : {
2487 361 : tree _o2[2], _r2;
2488 361 : {
2489 361 : tree _o3[1], _r3;
2490 361 : _o3[0] = pmop[0];
2491 361 : if (TREE_TYPE (_o3[0]) != utype)
2492 : {
2493 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2494 : }
2495 : else
2496 : _r3 = _o3[0];
2497 361 : _o2[0] = _r3;
2498 : }
2499 361 : {
2500 361 : tree _o3[1], _r3;
2501 361 : _o3[0] = pmop[1];
2502 361 : if (TREE_TYPE (_o3[0]) != utype)
2503 : {
2504 74 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2505 : }
2506 : else
2507 : _r3 = _o3[0];
2508 361 : _o2[1] = _r3;
2509 : }
2510 361 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2511 361 : _o1[0] = _r2;
2512 : }
2513 361 : {
2514 361 : tree _o2[1], _r2;
2515 361 : _o2[0] = captures[5];
2516 361 : if (TREE_TYPE (_o2[0]) != utype)
2517 : {
2518 14 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2519 : }
2520 : else
2521 : _r2 = _o2[0];
2522 361 : _o1[1] = _r2;
2523 : }
2524 361 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2525 361 : res_op0 = _r1;
2526 : }
2527 361 : tree _r;
2528 361 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2529 361 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 649, __FILE__, __LINE__, true);
2530 361 : return _r;
2531 : }
2532 1 : next_after_fail795:;
2533 : }
2534 : }
2535 1 : return NULL_TREE;
2536 : }
2537 :
2538 : tree
2539 0 : generic_simplify_467 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2540 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2541 : const enum tree_code ARG_UNUSED (eqne))
2542 : {
2543 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2544 0 : if (eqne == EQ_EXPR
2545 : )
2546 : {
2547 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail832;
2548 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
2549 0 : {
2550 0 : tree _r;
2551 0 : _r = constant_boolean_node (false, type);
2552 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2553 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2554 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 660, __FILE__, __LINE__, true);
2555 0 : return _r;
2556 : }
2557 : next_after_fail832:;
2558 : }
2559 : else
2560 : {
2561 0 : if (eqne == NE_EXPR
2562 : )
2563 : {
2564 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail833;
2565 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail833;
2566 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail833;
2567 0 : {
2568 0 : tree _r;
2569 0 : _r = captures[0];
2570 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 661, __FILE__, __LINE__, true);
2571 0 : return _r;
2572 : }
2573 : next_after_fail833:;
2574 : }
2575 : }
2576 : return NULL_TREE;
2577 : }
2578 :
2579 : tree
2580 0 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2581 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2582 : {
2583 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2584 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2585 0 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2586 : )
2587 : {
2588 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail855;
2589 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail855;
2590 0 : {
2591 0 : tree res_op0;
2592 0 : res_op0 = captures[3];
2593 0 : tree res_op1;
2594 0 : {
2595 0 : tree _o1[2], _r1;
2596 0 : _o1[0] = captures[1];
2597 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
2598 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2599 0 : res_op1 = _r1;
2600 : }
2601 0 : tree _r;
2602 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2603 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
2604 0 : return _r;
2605 : }
2606 : next_after_fail855:;
2607 : }
2608 : return NULL_TREE;
2609 : }
2610 :
2611 : tree
2612 104756 : generic_simplify_481 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2613 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2614 : const enum tree_code ARG_UNUSED (shift))
2615 : {
2616 104756 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2617 104756 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2618 23515 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2619 23515 : && tree_fits_uhwi_p (captures[4])
2620 23515 : && tree_to_uhwi (captures[4]) > 0
2621 128269 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2622 : )
2623 : {
2624 23513 : {
2625 23513 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2626 23513 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2627 23513 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2628 23513 : tree shift_type = TREE_TYPE (captures[2]);
2629 23513 : unsigned int prec;
2630 23513 : if (shift == LSHIFT_EXPR)
2631 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2632 23513 : else if (shift == RSHIFT_EXPR
2633 23513 : && type_has_mode_precision_p (shift_type))
2634 : {
2635 23513 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2636 23513 : tree arg00 = captures[3];
2637 23513 : if (captures[2] != captures[3]
2638 23513 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2639 : {
2640 0 : tree inner_type = TREE_TYPE (captures[3]);
2641 0 : if (type_has_mode_precision_p (inner_type)
2642 0 : && TYPE_PRECISION (inner_type) < prec)
2643 : {
2644 0 : prec = TYPE_PRECISION (inner_type);
2645 0 : if (shiftc < prec)
2646 0 : shift_type = inner_type;
2647 : }
2648 : }
2649 23513 : zerobits = HOST_WIDE_INT_M1U;
2650 23513 : if (shiftc < prec)
2651 : {
2652 23513 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2653 23513 : zerobits <<= prec - shiftc;
2654 : }
2655 23513 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2656 23513 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2657 : {
2658 98 : if ((mask & zerobits) == 0)
2659 82 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2660 : else
2661 : zerobits = 0;
2662 : }
2663 : }
2664 23497 : if ((mask & zerobits) == mask
2665 : )
2666 : {
2667 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail866;
2668 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail866;
2669 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail866;
2670 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail866;
2671 0 : {
2672 0 : tree _r;
2673 0 : _r = build_int_cst (type, 0);
2674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
2675 0 : return _r;
2676 : }
2677 : next_after_fail866:;
2678 : }
2679 : else
2680 : {
2681 23513 : {
2682 23513 : newmask = mask | zerobits;
2683 23513 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2684 : )
2685 : {
2686 : {
2687 109 : for (prec = BITS_PER_UNIT;
2688 181 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2689 171 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2690 : break;
2691 72 : if (prec < HOST_BITS_PER_WIDE_INT
2692 10 : || newmask == HOST_WIDE_INT_M1U
2693 : )
2694 : {
2695 72 : {
2696 72 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2697 72 : if (!tree_int_cst_equal (newmaskt, captures[5])
2698 : )
2699 : {
2700 72 : if (shift_type != TREE_TYPE (captures[2])
2701 : )
2702 : {
2703 11 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail867;
2704 11 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail867;
2705 11 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail867;
2706 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail867;
2707 11 : {
2708 11 : tree res_op0;
2709 11 : {
2710 11 : tree _o1[1], _r1;
2711 11 : {
2712 11 : tree _o2[2], _r2;
2713 11 : {
2714 11 : tree _o3[1], _r3;
2715 11 : _o3[0] = captures[2];
2716 11 : if (TREE_TYPE (_o3[0]) != shift_type)
2717 : {
2718 11 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2719 : }
2720 : else
2721 : _r3 = _o3[0];
2722 11 : _o2[0] = _r3;
2723 : }
2724 11 : _o2[1] = captures[4];
2725 11 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2726 11 : _o1[0] = _r2;
2727 : }
2728 11 : if (TREE_TYPE (_o1[0]) != type)
2729 : {
2730 11 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2731 : }
2732 : else
2733 : _r1 = _o1[0];
2734 11 : res_op0 = _r1;
2735 : }
2736 11 : tree res_op1;
2737 11 : res_op1 = newmaskt;
2738 11 : tree _r;
2739 11 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2740 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
2741 11 : return _r;
2742 : }
2743 : next_after_fail867:;
2744 : }
2745 : else
2746 : {
2747 61 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail868;
2748 61 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail868;
2749 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail868;
2750 61 : {
2751 61 : tree res_op0;
2752 61 : res_op0 = captures[0];
2753 61 : tree res_op1;
2754 61 : res_op1 = newmaskt;
2755 61 : tree _r;
2756 61 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2757 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
2758 61 : return _r;
2759 : }
2760 : next_after_fail868:;
2761 : }
2762 : }
2763 : }
2764 : }
2765 : }
2766 : }
2767 : }
2768 : }
2769 : }
2770 : }
2771 : return NULL_TREE;
2772 : }
2773 :
2774 : tree
2775 17 : generic_simplify_492 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2776 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2777 : {
2778 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2779 17 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail881;
2780 17 : {
2781 17 : tree res_op0;
2782 17 : res_op0 = captures[0];
2783 17 : tree res_op1;
2784 17 : res_op1 = captures[1];
2785 17 : tree _r;
2786 17 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2787 17 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
2788 : return _r;
2789 : }
2790 0 : next_after_fail881:;
2791 0 : return NULL_TREE;
2792 : }
2793 :
2794 : tree
2795 4 : generic_simplify_498 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2796 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2797 : {
2798 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2799 4 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2800 7 : && (element_precision (TREE_TYPE (captures[2]))
2801 3 : <= element_precision (TREE_TYPE (captures[3]))
2802 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2803 : )
2804 : {
2805 3 : {
2806 3 : tree shift_type = TREE_TYPE (captures[2]);
2807 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail887;
2808 3 : {
2809 3 : tree res_op0;
2810 3 : {
2811 3 : tree _o1[2], _r1;
2812 3 : {
2813 3 : tree _o2[1], _r2;
2814 3 : _o2[0] = captures[3];
2815 3 : if (TREE_TYPE (_o2[0]) != shift_type)
2816 : {
2817 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
2818 : }
2819 : else
2820 : _r2 = _o2[0];
2821 3 : _o1[0] = _r2;
2822 : }
2823 3 : _o1[1] = captures[4];
2824 3 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2825 3 : res_op0 = _r1;
2826 : }
2827 3 : tree _r;
2828 3 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2829 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 698, __FILE__, __LINE__, true);
2830 3 : return _r;
2831 : }
2832 0 : next_after_fail887:;
2833 : }
2834 : }
2835 : return NULL_TREE;
2836 : }
2837 :
2838 : tree
2839 419 : generic_simplify_508 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2840 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2841 : {
2842 419 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2843 419 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2844 419 : && wi::to_wide (captures[1]) == element_precision (type) - 1
2845 : )
2846 : {
2847 44 : {
2848 44 : tree stype = TREE_TYPE (captures[0]);
2849 44 : tree ntype = TYPE_UNSIGNED (stype) ? signed_type_for (stype)
2850 9 : : unsigned_type_for (stype);
2851 44 : if (VECTOR_TYPE_P (type)
2852 : )
2853 : {
2854 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail898;
2855 0 : {
2856 0 : tree res_op0;
2857 0 : {
2858 0 : tree _o1[2], _r1;
2859 0 : {
2860 0 : tree _o2[1], _r2;
2861 0 : _o2[0] = captures[0];
2862 0 : if (TREE_TYPE (_o2[0]) != ntype)
2863 : {
2864 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o2[0]);
2865 : }
2866 : else
2867 : _r2 = _o2[0];
2868 0 : _o1[0] = _r2;
2869 : }
2870 0 : _o1[1] = captures[1];
2871 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2872 0 : res_op0 = _r1;
2873 : }
2874 0 : tree _r;
2875 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2876 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
2877 0 : return _r;
2878 : }
2879 0 : next_after_fail898:;
2880 : }
2881 : else
2882 : {
2883 44 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail899;
2884 44 : {
2885 44 : tree res_op0;
2886 44 : {
2887 44 : tree _o1[2], _r1;
2888 44 : {
2889 44 : tree _o2[1], _r2;
2890 44 : _o2[0] = captures[0];
2891 44 : if (TREE_TYPE (_o2[0]) != ntype)
2892 : {
2893 44 : _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
2894 : }
2895 : else
2896 : _r2 = _o2[0];
2897 44 : _o1[0] = _r2;
2898 : }
2899 44 : _o1[1] = captures[1];
2900 44 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2901 44 : res_op0 = _r1;
2902 : }
2903 44 : tree _r;
2904 44 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2905 44 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
2906 44 : return _r;
2907 : }
2908 0 : next_after_fail899:;
2909 : }
2910 : }
2911 : }
2912 : return NULL_TREE;
2913 : }
2914 :
2915 : tree
2916 5786 : generic_simplify_529 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2917 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2918 : {
2919 5786 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2920 11572 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2921 5786 : && TYPE_MAX_VALUE (TREE_TYPE (captures[1]))
2922 5786 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (TREE_TYPE (captures[0])))
2923 8082 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
2924 : )
2925 : {
2926 1904 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2927 : )
2928 : {
2929 929 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail933;
2930 929 : {
2931 929 : tree res_op0;
2932 929 : {
2933 929 : tree _o1[2], _r1;
2934 929 : _o1[0] = captures[1];
2935 929 : {
2936 929 : tree _o2[2], _r2;
2937 929 : _o2[0] = TYPE_MAX_VALUE (TREE_TYPE (captures[1]));
2938 929 : _o2[1] = captures[2];
2939 929 : _r2 = fold_build2_loc (loc, TRUNC_DIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2940 929 : if (EXPR_P (_r2))
2941 0 : goto next_after_fail933;
2942 929 : _o1[1] = _r2;
2943 : }
2944 929 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2945 929 : res_op0 = _r1;
2946 : }
2947 929 : tree _r;
2948 929 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2949 929 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
2950 929 : return _r;
2951 : }
2952 : next_after_fail933:;
2953 : }
2954 : else
2955 : {
2956 975 : if (TYPE_MIN_VALUE (TREE_TYPE (captures[1]))
2957 : )
2958 : {
2959 975 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && integer_minus_onep (captures[2])
2960 : )
2961 : {
2962 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail934;
2963 56 : {
2964 56 : tree res_op0;
2965 56 : {
2966 56 : tree _o1[2], _r1;
2967 56 : _o1[0] = captures[1];
2968 56 : _o1[1] = TYPE_MIN_VALUE (TREE_TYPE (captures[1]));
2969 56 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
2970 56 : res_op0 = _r1;
2971 : }
2972 56 : tree _r;
2973 56 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2974 56 : if (TREE_SIDE_EFFECTS (captures[2]))
2975 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2976 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
2977 56 : return _r;
2978 : }
2979 0 : next_after_fail934:;
2980 : }
2981 : else
2982 : {
2983 919 : {
2984 919 : tree div = fold_convert (TREE_TYPE (captures[1]), captures[2]);
2985 1838 : tree lo = int_const_binop (TRUNC_DIV_EXPR,
2986 919 : TYPE_MIN_VALUE (TREE_TYPE (captures[1])), div);
2987 1838 : tree hi = int_const_binop (TRUNC_DIV_EXPR,
2988 919 : TYPE_MAX_VALUE (TREE_TYPE (captures[1])), div);
2989 919 : tree etype = range_check_type (TREE_TYPE (captures[1]));
2990 919 : if (etype)
2991 : {
2992 919 : if (wi::neg_p (wi::to_wide (div)))
2993 88 : std::swap (lo, hi);
2994 919 : lo = fold_convert (etype, lo);
2995 919 : hi = fold_convert (etype, hi);
2996 919 : hi = int_const_binop (MINUS_EXPR, hi, lo);
2997 : }
2998 919 : if (etype
2999 : )
3000 : {
3001 919 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail935;
3002 919 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
3003 919 : {
3004 919 : tree res_op0;
3005 919 : {
3006 919 : tree _o1[2], _r1;
3007 919 : {
3008 919 : tree _o2[2], _r2;
3009 919 : {
3010 919 : tree _o3[1], _r3;
3011 919 : _o3[0] = captures[1];
3012 919 : if (TREE_TYPE (_o3[0]) != etype)
3013 : {
3014 919 : _r3 = fold_build1_loc (loc, NOP_EXPR, etype, _o3[0]);
3015 : }
3016 : else
3017 : _r3 = _o3[0];
3018 919 : _o2[0] = _r3;
3019 : }
3020 919 : _o2[1] = lo;
3021 919 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3022 919 : _o1[0] = _r2;
3023 : }
3024 919 : _o1[1] = hi;
3025 919 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3026 919 : res_op0 = _r1;
3027 : }
3028 919 : tree _r;
3029 919 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3030 919 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
3031 919 : return _r;
3032 : }
3033 : next_after_fail935:;
3034 : }
3035 : }
3036 : }
3037 : }
3038 : }
3039 : }
3040 : return NULL_TREE;
3041 : }
3042 :
3043 : tree
3044 0 : generic_simplify_558 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3045 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3046 : const combined_fn ARG_UNUSED (sins),
3047 : const combined_fn ARG_UNUSED (atans),
3048 : const combined_fn ARG_UNUSED (sqrts),
3049 : const combined_fn ARG_UNUSED (copysigns))
3050 : {
3051 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3052 0 : {
3053 0 : REAL_VALUE_TYPE r_cst;
3054 0 : build_sinatan_real (&r_cst, type);
3055 0 : tree t_cst = build_real (type, r_cst);
3056 0 : tree t_one = build_one_cst (type);
3057 0 : if (SCALAR_FLOAT_TYPE_P (type)
3058 : )
3059 : {
3060 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail964;
3061 0 : {
3062 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail964;
3063 0 : tree res_op0;
3064 0 : {
3065 0 : tree _o1[2], _r1;
3066 0 : {
3067 0 : tree _o2[1], _r2;
3068 0 : _o2[0] = unshare_expr (captures[1]);
3069 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3070 0 : _o1[0] = _r2;
3071 : }
3072 0 : _o1[1] = t_cst;
3073 0 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3074 0 : res_op0 = _r1;
3075 : }
3076 0 : tree res_op1;
3077 0 : {
3078 0 : tree _o1[2], _r1;
3079 0 : _o1[0] = unshare_expr (captures[1]);
3080 0 : {
3081 0 : tree _o2[1], _r2;
3082 0 : {
3083 0 : tree _o3[2], _r3;
3084 0 : {
3085 0 : tree _o4[2], _r4;
3086 0 : _o4[0] = unshare_expr (captures[1]);
3087 0 : _o4[1] = unshare_expr (captures[1]);
3088 0 : _r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
3089 0 : _o3[0] = _r4;
3090 : }
3091 0 : _o3[1] = t_one;
3092 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3093 0 : _o2[0] = _r3;
3094 : }
3095 0 : _r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
3096 0 : if (!_r2)
3097 0 : goto next_after_fail964;
3098 0 : _o1[1] = _r2;
3099 : }
3100 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3101 0 : res_op1 = _r1;
3102 : }
3103 0 : tree res_op2;
3104 0 : {
3105 0 : tree _o1[2], _r1;
3106 0 : _o1[0] = t_one;
3107 0 : _o1[1] = captures[1];
3108 0 : _r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
3109 0 : if (!_r1)
3110 0 : goto next_after_fail964;
3111 0 : res_op2 = _r1;
3112 : }
3113 0 : tree _r;
3114 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
3115 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 759, __FILE__, __LINE__, true);
3116 0 : return _r;
3117 : }
3118 0 : next_after_fail964:;
3119 : }
3120 : }
3121 0 : return NULL_TREE;
3122 : }
3123 :
3124 : tree
3125 0 : generic_simplify_585 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3126 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
3127 : const combined_fn ARG_UNUSED (fmas))
3128 : {
3129 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3130 0 : if (canonicalize_math_after_vectorization_p ()
3131 : )
3132 : {
3133 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail991;
3134 : {
3135 : tree res_op0;
3136 : res_op0 = captures[0];
3137 : tree res_op1;
3138 : res_op1 = captures[1];
3139 : tree res_op2;
3140 : res_op2 = captures[2];
3141 : tree res_op3;
3142 : res_op3 = captures[3];
3143 : tree res_op4;
3144 : res_op4 = captures[4];
3145 : tree _r;
3146 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3147 : if (!_r)
3148 : goto next_after_fail991;
3149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 786, __FILE__, __LINE__, true);
3150 : return _r;
3151 : }
3152 0 : next_after_fail991:;
3153 : }
3154 0 : return NULL_TREE;
3155 : }
3156 :
3157 : tree
3158 0 : generic_simplify_595 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3159 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3160 : const combined_fn ARG_UNUSED (ctz))
3161 : {
3162 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3163 0 : {
3164 0 : tree t = TREE_TYPE (captures[0]);
3165 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
3166 0 : {
3167 0 : tree res_op0;
3168 0 : {
3169 0 : tree _o1[1], _r1;
3170 0 : _o1[0] = captures[1];
3171 0 : if (TREE_TYPE (_o1[0]) != t)
3172 : {
3173 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3174 : }
3175 : else
3176 : _r1 = _o1[0];
3177 0 : res_op0 = _r1;
3178 : }
3179 0 : tree _r;
3180 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3181 0 : if (!_r)
3182 0 : goto next_after_fail1001;
3183 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 794, __FILE__, __LINE__, true);
3184 : return _r;
3185 : }
3186 : next_after_fail1001:;
3187 : }
3188 : return NULL_TREE;
3189 : }
3190 :
3191 : tree
3192 0 : generic_simplify_605 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3193 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3194 : const enum tree_code ARG_UNUSED (rot),
3195 : const combined_fn ARG_UNUSED (parity))
3196 : {
3197 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3198 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3199 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3200 0 : && (
3201 :
3202 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3203 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3204 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3205 : )
3206 : {
3207 0 : {
3208 0 : tree type0 = TREE_TYPE (captures[0]);
3209 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1012;
3210 0 : {
3211 0 : tree res_op0;
3212 0 : {
3213 0 : tree _o1[1], _r1;
3214 0 : _o1[0] = captures[2];
3215 0 : if (TREE_TYPE (_o1[0]) != type0)
3216 : {
3217 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3218 : }
3219 : else
3220 : _r1 = _o1[0];
3221 0 : res_op0 = _r1;
3222 : }
3223 0 : tree _r;
3224 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3225 0 : if (!_r)
3226 0 : goto next_after_fail1012;
3227 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3228 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3229 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 802, __FILE__, __LINE__, true);
3230 0 : return _r;
3231 : }
3232 : next_after_fail1012:;
3233 : }
3234 : }
3235 : return NULL_TREE;
3236 : }
3237 :
3238 : tree
3239 2860202 : generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3240 : {
3241 2860202 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3242 2860202 : switch (TREE_CODE (_p0))
3243 : {
3244 1134 : case BIT_AND_EXPR:
3245 1134 : {
3246 1134 : tree _q20 = TREE_OPERAND (_p0, 0);
3247 1134 : tree _q21 = TREE_OPERAND (_p0, 1);
3248 1134 : switch (TREE_CODE (_q20))
3249 : {
3250 33 : case BIT_NOT_EXPR:
3251 33 : {
3252 33 : tree _q30 = TREE_OPERAND (_q20, 0);
3253 33 : {
3254 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3255 33 : tree res = generic_simplify_489 (loc, type, _p0, captures);
3256 33 : if (res) return res;
3257 : }
3258 0 : break;
3259 : }
3260 1101 : default:;
3261 : }
3262 1101 : switch (TREE_CODE (_q21))
3263 : {
3264 9 : case BIT_NOT_EXPR:
3265 9 : {
3266 9 : tree _q40 = TREE_OPERAND (_q21, 0);
3267 9 : {
3268 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3269 9 : tree res = generic_simplify_489 (loc, type, _p0, captures);
3270 9 : if (res) return res;
3271 : }
3272 0 : break;
3273 : }
3274 : default:;
3275 : }
3276 : break;
3277 : }
3278 1209 : case BIT_IOR_EXPR:
3279 1209 : {
3280 1209 : tree _q20 = TREE_OPERAND (_p0, 0);
3281 1209 : tree _q21 = TREE_OPERAND (_p0, 1);
3282 1209 : switch (TREE_CODE (_q20))
3283 : {
3284 68 : case BIT_NOT_EXPR:
3285 68 : {
3286 68 : tree _q30 = TREE_OPERAND (_q20, 0);
3287 68 : {
3288 68 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3289 68 : tree res = generic_simplify_490 (loc, type, _p0, captures);
3290 68 : if (res) return res;
3291 : }
3292 0 : break;
3293 : }
3294 1141 : default:;
3295 : }
3296 1141 : switch (TREE_CODE (_q21))
3297 : {
3298 40 : case BIT_NOT_EXPR:
3299 40 : {
3300 40 : tree _q40 = TREE_OPERAND (_q21, 0);
3301 40 : {
3302 40 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3303 40 : tree res = generic_simplify_490 (loc, type, _p0, captures);
3304 40 : if (res) return res;
3305 : }
3306 0 : break;
3307 : }
3308 : default:;
3309 : }
3310 : break;
3311 : }
3312 148 : case MINUS_EXPR:
3313 148 : {
3314 148 : tree _q20 = TREE_OPERAND (_p0, 0);
3315 148 : tree _q21 = TREE_OPERAND (_p0, 1);
3316 148 : switch (TREE_CODE (_q20))
3317 : {
3318 1 : case BIT_NOT_EXPR:
3319 1 : {
3320 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3321 1 : {
3322 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3323 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1048;
3324 1 : {
3325 1 : tree res_op0;
3326 1 : res_op0 = captures[0];
3327 1 : tree res_op1;
3328 1 : res_op1 = captures[1];
3329 1 : tree _r;
3330 1 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3331 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
3332 1 : return _r;
3333 : }
3334 0 : next_after_fail1048:;
3335 : }
3336 0 : break;
3337 : }
3338 147 : default:;
3339 : }
3340 147 : {
3341 147 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3342 147 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1049;
3343 147 : {
3344 147 : tree res_op0;
3345 147 : {
3346 147 : tree _o1[1], _r1;
3347 147 : _o1[0] = captures[1];
3348 147 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3349 147 : res_op0 = _r1;
3350 : }
3351 147 : tree res_op1;
3352 147 : res_op1 = captures[2];
3353 147 : tree _r;
3354 147 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3355 147 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
3356 147 : return _r;
3357 : }
3358 0 : next_after_fail1049:;
3359 : }
3360 0 : if (integer_each_onep (_q21))
3361 : {
3362 0 : {
3363 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3364 0 : tree res = generic_simplify_491 (loc, type, _p0, captures);
3365 0 : if (res) return res;
3366 : }
3367 : }
3368 : break;
3369 : }
3370 92145 : case PLUS_EXPR:
3371 92145 : {
3372 92145 : tree _q20 = TREE_OPERAND (_p0, 0);
3373 92145 : tree _q21 = TREE_OPERAND (_p0, 1);
3374 92145 : switch (TREE_CODE (_q20))
3375 : {
3376 16 : case BIT_NOT_EXPR:
3377 16 : {
3378 16 : tree _q30 = TREE_OPERAND (_q20, 0);
3379 16 : {
3380 16 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3381 16 : tree res = generic_simplify_492 (loc, type, _p0, captures);
3382 16 : if (res) return res;
3383 : }
3384 0 : break;
3385 : }
3386 92129 : default:;
3387 : }
3388 92129 : switch (TREE_CODE (_q21))
3389 : {
3390 1 : case BIT_NOT_EXPR:
3391 1 : {
3392 1 : tree _q40 = TREE_OPERAND (_q21, 0);
3393 1 : {
3394 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3395 1 : tree res = generic_simplify_492 (loc, type, _p0, captures);
3396 1 : if (res) return res;
3397 : }
3398 0 : break;
3399 : }
3400 77235 : case INTEGER_CST:
3401 77235 : {
3402 77235 : {
3403 77235 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3404 77235 : if ((INTEGRAL_TYPE_P (type)
3405 77235 : && TYPE_UNSIGNED (type))
3406 89800 : || (!TYPE_OVERFLOW_SANITIZED (type)
3407 12557 : && may_negate_without_overflow_p (captures[2]))
3408 : )
3409 : {
3410 77220 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1050;
3411 77220 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
3412 77220 : {
3413 77220 : tree res_op0;
3414 77220 : {
3415 77220 : tree _o1[1], _r1;
3416 77220 : _o1[0] = captures[1];
3417 77220 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3418 77220 : res_op0 = _r1;
3419 : }
3420 77220 : tree res_op1;
3421 77220 : res_op1 = const_unop (NEGATE_EXPR, type, captures[2]);
3422 77220 : tree _r;
3423 77220 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3424 77220 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
3425 77220 : return _r;
3426 : }
3427 15 : next_after_fail1050:;
3428 : }
3429 : }
3430 15 : break;
3431 : }
3432 14908 : default:;
3433 : }
3434 14908 : if (integer_all_onesp (_q21))
3435 : {
3436 0 : {
3437 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3438 0 : tree res = generic_simplify_493 (loc, type, _p0, captures);
3439 0 : if (res) return res;
3440 : }
3441 : }
3442 : break;
3443 : }
3444 366 : case RSHIFT_EXPR:
3445 366 : {
3446 366 : tree _q20 = TREE_OPERAND (_p0, 0);
3447 366 : tree _q21 = TREE_OPERAND (_p0, 1);
3448 366 : {
3449 366 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3450 366 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
3451 : )
3452 : {
3453 291 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1051;
3454 291 : {
3455 291 : tree res_op0;
3456 291 : {
3457 291 : tree _o1[1], _r1;
3458 291 : _o1[0] = captures[1];
3459 291 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3460 291 : if (EXPR_P (_r1))
3461 285 : goto next_after_fail1051;
3462 6 : res_op0 = _r1;
3463 : }
3464 6 : tree res_op1;
3465 6 : res_op1 = captures[2];
3466 6 : tree _r;
3467 6 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
3468 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 832, __FILE__, __LINE__, true);
3469 6 : return _r;
3470 : }
3471 345 : next_after_fail1051:;
3472 : }
3473 : else
3474 : {
3475 150 : if (INTEGRAL_TYPE_P (type)
3476 150 : && !wi::neg_p (tree_nonzero_bits (captures[1]))
3477 : )
3478 : {
3479 15 : {
3480 15 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
3481 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1052;
3482 15 : {
3483 15 : tree res_op0;
3484 15 : {
3485 15 : tree _o1[2], _r1;
3486 15 : {
3487 15 : tree _o2[1], _r2;
3488 15 : {
3489 15 : tree _o3[1], _r3;
3490 15 : _o3[0] = captures[1];
3491 15 : if (TREE_TYPE (_o3[0]) != stype)
3492 : {
3493 15 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
3494 : }
3495 : else
3496 : _r3 = _o3[0];
3497 15 : _o2[0] = _r3;
3498 : }
3499 15 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3500 15 : if (EXPR_P (_r2))
3501 0 : goto next_after_fail1052;
3502 15 : _o1[0] = _r2;
3503 : }
3504 15 : _o1[1] = captures[2];
3505 15 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3506 15 : res_op0 = _r1;
3507 : }
3508 15 : tree _r;
3509 15 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3510 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 833, __FILE__, __LINE__, true);
3511 15 : return _r;
3512 : }
3513 345 : next_after_fail1052:;
3514 : }
3515 : }
3516 : }
3517 : }
3518 345 : switch (TREE_CODE (_q20))
3519 : {
3520 12 : CASE_CONVERT:
3521 12 : {
3522 12 : tree _q30 = TREE_OPERAND (_q20, 0);
3523 12 : switch (TREE_CODE (_q30))
3524 : {
3525 2 : case BIT_NOT_EXPR:
3526 2 : {
3527 2 : tree _q40 = TREE_OPERAND (_q30, 0);
3528 2 : {
3529 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3530 2 : tree res = generic_simplify_494 (loc, type, _p0, captures);
3531 2 : if (res) return res;
3532 : }
3533 1 : break;
3534 : }
3535 : default:;
3536 : }
3537 : break;
3538 : }
3539 29 : case BIT_NOT_EXPR:
3540 29 : {
3541 29 : tree _q30 = TREE_OPERAND (_q20, 0);
3542 29 : {
3543 29 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3544 29 : tree res = generic_simplify_494 (loc, type, _p0, captures);
3545 29 : if (res) return res;
3546 : }
3547 8 : break;
3548 : }
3549 : default:;
3550 : }
3551 : break;
3552 : }
3553 86 : case BIT_NOT_EXPR:
3554 86 : {
3555 86 : tree _q20 = TREE_OPERAND (_p0, 0);
3556 86 : {
3557 86 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3558 86 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1053;
3559 86 : {
3560 86 : tree res_op0;
3561 86 : res_op0 = captures[0];
3562 86 : tree _r;
3563 86 : _r = non_lvalue_loc (loc, res_op0);
3564 86 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
3565 2860202 : return _r;
3566 : }
3567 0 : next_after_fail1053:;
3568 : }
3569 0 : break;
3570 : }
3571 982209 : CASE_CONVERT:
3572 982209 : {
3573 982209 : tree _q20 = TREE_OPERAND (_p0, 0);
3574 982209 : switch (TREE_CODE (_q20))
3575 : {
3576 25 : case NEGATE_EXPR:
3577 25 : {
3578 25 : tree _q30 = TREE_OPERAND (_q20, 0);
3579 25 : {
3580 25 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3581 25 : tree res = generic_simplify_495 (loc, type, _p0, captures);
3582 25 : if (res) return res;
3583 : }
3584 0 : break;
3585 : }
3586 892 : case MINUS_EXPR:
3587 892 : {
3588 892 : tree _q30 = TREE_OPERAND (_q20, 0);
3589 892 : tree _q31 = TREE_OPERAND (_q20, 1);
3590 892 : if (integer_each_onep (_q31))
3591 : {
3592 28 : {
3593 28 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3594 28 : tree res = generic_simplify_491 (loc, type, _p0, captures);
3595 28 : if (res) return res;
3596 : }
3597 : }
3598 : break;
3599 : }
3600 54399 : case PLUS_EXPR:
3601 54399 : {
3602 54399 : tree _q30 = TREE_OPERAND (_q20, 0);
3603 54399 : tree _q31 = TREE_OPERAND (_q20, 1);
3604 54399 : if (integer_all_onesp (_q31))
3605 : {
3606 3914 : {
3607 3914 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3608 3914 : tree res = generic_simplify_493 (loc, type, _p0, captures);
3609 3914 : if (res) return res;
3610 : }
3611 : }
3612 : break;
3613 : }
3614 145 : case BIT_XOR_EXPR:
3615 145 : {
3616 145 : tree _q30 = TREE_OPERAND (_q20, 0);
3617 145 : tree _q31 = TREE_OPERAND (_q20, 1);
3618 145 : switch (TREE_CODE (_q31))
3619 : {
3620 7 : case INTEGER_CST:
3621 7 : {
3622 7 : {
3623 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3624 7 : tree res = generic_simplify_496 (loc, type, _p0, captures);
3625 7 : if (res) return res;
3626 : }
3627 0 : break;
3628 : }
3629 138 : default:;
3630 : }
3631 138 : switch (TREE_CODE (_q30))
3632 : {
3633 0 : case BIT_NOT_EXPR:
3634 0 : {
3635 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3636 0 : {
3637 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
3638 0 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3639 0 : if (res) return res;
3640 : }
3641 0 : break;
3642 : }
3643 138 : default:;
3644 : }
3645 138 : switch (TREE_CODE (_q31))
3646 : {
3647 0 : case BIT_NOT_EXPR:
3648 0 : {
3649 0 : tree _q50 = TREE_OPERAND (_q31, 0);
3650 0 : {
3651 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
3652 0 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3653 0 : if (res) return res;
3654 : }
3655 0 : break;
3656 : }
3657 : default:;
3658 : }
3659 : break;
3660 : }
3661 93 : case RSHIFT_EXPR:
3662 93 : {
3663 93 : tree _q30 = TREE_OPERAND (_q20, 0);
3664 93 : tree _q31 = TREE_OPERAND (_q20, 1);
3665 93 : switch (TREE_CODE (_q30))
3666 : {
3667 17 : CASE_CONVERT:
3668 17 : {
3669 17 : tree _q40 = TREE_OPERAND (_q30, 0);
3670 17 : switch (TREE_CODE (_q40))
3671 : {
3672 1 : case BIT_NOT_EXPR:
3673 1 : {
3674 1 : tree _q50 = TREE_OPERAND (_q40, 0);
3675 1 : {
3676 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3677 1 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3678 1 : if (res) return res;
3679 : }
3680 0 : break;
3681 : }
3682 : default:;
3683 : }
3684 : break;
3685 : }
3686 3 : case BIT_NOT_EXPR:
3687 3 : {
3688 3 : tree _q40 = TREE_OPERAND (_q30, 0);
3689 3 : {
3690 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3691 3 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3692 3 : if (res) return res;
3693 : }
3694 1 : break;
3695 : }
3696 : default:;
3697 : }
3698 : break;
3699 : }
3700 0 : case LROTATE_EXPR:
3701 0 : {
3702 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3703 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3704 0 : switch (TREE_CODE (_q30))
3705 : {
3706 0 : CASE_CONVERT:
3707 0 : {
3708 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3709 0 : switch (TREE_CODE (_q40))
3710 : {
3711 0 : case BIT_NOT_EXPR:
3712 0 : {
3713 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3714 0 : {
3715 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3716 0 : tree res = generic_simplify_499 (loc, type, _p0, captures, LROTATE_EXPR);
3717 0 : if (res) return res;
3718 : }
3719 0 : break;
3720 : }
3721 : default:;
3722 : }
3723 : break;
3724 : }
3725 0 : case BIT_NOT_EXPR:
3726 0 : {
3727 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3728 0 : {
3729 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3730 0 : tree res = generic_simplify_499 (loc, type, _p0, captures, LROTATE_EXPR);
3731 0 : if (res) return res;
3732 : }
3733 0 : break;
3734 : }
3735 : default:;
3736 : }
3737 : break;
3738 : }
3739 0 : case RROTATE_EXPR:
3740 0 : {
3741 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3742 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3743 0 : switch (TREE_CODE (_q30))
3744 : {
3745 0 : CASE_CONVERT:
3746 0 : {
3747 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3748 0 : switch (TREE_CODE (_q40))
3749 : {
3750 0 : case BIT_NOT_EXPR:
3751 0 : {
3752 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3753 0 : {
3754 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3755 0 : tree res = generic_simplify_499 (loc, type, _p0, captures, RROTATE_EXPR);
3756 0 : if (res) return res;
3757 : }
3758 0 : break;
3759 : }
3760 : default:;
3761 : }
3762 : break;
3763 : }
3764 0 : case BIT_NOT_EXPR:
3765 0 : {
3766 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3767 0 : {
3768 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3769 0 : tree res = generic_simplify_499 (loc, type, _p0, captures, RROTATE_EXPR);
3770 0 : if (res) return res;
3771 : }
3772 0 : break;
3773 : }
3774 : default:;
3775 : }
3776 : break;
3777 : }
3778 : default:;
3779 : }
3780 : break;
3781 : }
3782 120 : case NEGATE_EXPR:
3783 120 : {
3784 120 : tree _q20 = TREE_OPERAND (_p0, 0);
3785 120 : {
3786 120 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3787 120 : tree res = generic_simplify_495 (loc, type, _p0, captures);
3788 120 : if (res) return res;
3789 : }
3790 0 : break;
3791 : }
3792 1572 : case BIT_XOR_EXPR:
3793 1572 : {
3794 1572 : tree _q20 = TREE_OPERAND (_p0, 0);
3795 1572 : tree _q21 = TREE_OPERAND (_p0, 1);
3796 1572 : switch (TREE_CODE (_q21))
3797 : {
3798 22 : case INTEGER_CST:
3799 22 : {
3800 22 : {
3801 22 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3802 22 : tree res = generic_simplify_496 (loc, type, _p0, captures);
3803 22 : if (res) return res;
3804 : }
3805 0 : break;
3806 : }
3807 1550 : default:;
3808 : }
3809 1550 : switch (TREE_CODE (_q20))
3810 : {
3811 0 : case BIT_NOT_EXPR:
3812 0 : {
3813 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3814 0 : {
3815 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3816 0 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3817 0 : if (res) return res;
3818 : }
3819 0 : break;
3820 : }
3821 1550 : default:;
3822 : }
3823 1550 : switch (TREE_CODE (_q21))
3824 : {
3825 0 : case BIT_NOT_EXPR:
3826 0 : {
3827 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3828 0 : {
3829 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3830 0 : tree res = generic_simplify_497 (loc, type, _p0, captures);
3831 0 : if (res) return res;
3832 : }
3833 0 : break;
3834 : }
3835 1550 : default:;
3836 : }
3837 1550 : if (tree_truth_valued_p (_q20))
3838 : {
3839 31 : if (tree_truth_valued_p (_q21))
3840 : {
3841 7 : {
3842 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3843 14 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3844 14 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
3845 : )
3846 : {
3847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1054;
3848 0 : {
3849 0 : tree res_op0;
3850 0 : {
3851 0 : tree _o1[2], _r1;
3852 0 : _o1[0] = captures[1];
3853 0 : _o1[1] = captures[2];
3854 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
3855 0 : res_op0 = _r1;
3856 : }
3857 0 : tree _r;
3858 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
3860 0 : return _r;
3861 : }
3862 0 : next_after_fail1054:;
3863 : }
3864 : }
3865 : }
3866 : }
3867 : break;
3868 : }
3869 0 : case MIN_EXPR:
3870 0 : {
3871 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3872 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3873 0 : switch (TREE_CODE (_q20))
3874 : {
3875 0 : case BIT_NOT_EXPR:
3876 0 : {
3877 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3878 0 : {
3879 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3880 0 : tree res = generic_simplify_500 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3881 0 : if (res) return res;
3882 : }
3883 0 : break;
3884 : }
3885 0 : default:;
3886 : }
3887 0 : switch (TREE_CODE (_q21))
3888 : {
3889 0 : case BIT_NOT_EXPR:
3890 0 : {
3891 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3892 0 : {
3893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3894 0 : tree res = generic_simplify_500 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3895 0 : if (res) return res;
3896 : }
3897 0 : break;
3898 : }
3899 : default:;
3900 : }
3901 : break;
3902 : }
3903 0 : case MAX_EXPR:
3904 0 : {
3905 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3906 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3907 0 : switch (TREE_CODE (_q20))
3908 : {
3909 0 : case BIT_NOT_EXPR:
3910 0 : {
3911 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3912 0 : {
3913 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3914 0 : tree res = generic_simplify_500 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3915 0 : if (res) return res;
3916 : }
3917 0 : break;
3918 : }
3919 0 : default:;
3920 : }
3921 0 : switch (TREE_CODE (_q21))
3922 : {
3923 0 : case BIT_NOT_EXPR:
3924 0 : {
3925 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3926 0 : {
3927 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3928 0 : tree res = generic_simplify_500 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3929 0 : if (res) return res;
3930 : }
3931 0 : break;
3932 : }
3933 : default:;
3934 : }
3935 : break;
3936 : }
3937 1 : case LROTATE_EXPR:
3938 1 : {
3939 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3940 1 : tree _q21 = TREE_OPERAND (_p0, 1);
3941 1 : switch (TREE_CODE (_q20))
3942 : {
3943 0 : CASE_CONVERT:
3944 0 : {
3945 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3946 0 : switch (TREE_CODE (_q30))
3947 : {
3948 0 : case BIT_NOT_EXPR:
3949 0 : {
3950 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3951 0 : {
3952 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3953 0 : tree res = generic_simplify_501 (loc, type, _p0, captures, LROTATE_EXPR);
3954 0 : if (res) return res;
3955 : }
3956 0 : break;
3957 : }
3958 : default:;
3959 : }
3960 : break;
3961 : }
3962 1 : case BIT_NOT_EXPR:
3963 1 : {
3964 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3965 1 : {
3966 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3967 1 : tree res = generic_simplify_501 (loc, type, _p0, captures, LROTATE_EXPR);
3968 1 : if (res) return res;
3969 : }
3970 0 : break;
3971 : }
3972 : default:;
3973 : }
3974 : break;
3975 : }
3976 1 : case RROTATE_EXPR:
3977 1 : {
3978 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3979 1 : tree _q21 = TREE_OPERAND (_p0, 1);
3980 1 : switch (TREE_CODE (_q20))
3981 : {
3982 0 : CASE_CONVERT:
3983 0 : {
3984 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3985 0 : switch (TREE_CODE (_q30))
3986 : {
3987 0 : case BIT_NOT_EXPR:
3988 0 : {
3989 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3990 0 : {
3991 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3992 0 : tree res = generic_simplify_501 (loc, type, _p0, captures, RROTATE_EXPR);
3993 0 : if (res) return res;
3994 : }
3995 0 : break;
3996 : }
3997 : default:;
3998 : }
3999 : break;
4000 : }
4001 1 : case BIT_NOT_EXPR:
4002 1 : {
4003 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4004 1 : {
4005 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
4006 1 : tree res = generic_simplify_501 (loc, type, _p0, captures, RROTATE_EXPR);
4007 1 : if (res) return res;
4008 : }
4009 0 : break;
4010 : }
4011 : default:;
4012 : }
4013 : break;
4014 : }
4015 32 : case VEC_COND_EXPR:
4016 32 : {
4017 32 : tree _q20 = TREE_OPERAND (_p0, 0);
4018 32 : tree _q21 = TREE_OPERAND (_p0, 1);
4019 32 : tree _q22 = TREE_OPERAND (_p0, 2);
4020 32 : {
4021 32 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4022 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1055;
4023 32 : {
4024 32 : tree res_op0;
4025 32 : res_op0 = captures[1];
4026 32 : tree res_op1;
4027 32 : {
4028 32 : tree _o1[1], _r1;
4029 32 : _o1[0] = captures[2];
4030 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
4031 32 : if (EXPR_P (_r1))
4032 0 : goto next_after_fail1055;
4033 32 : res_op1 = _r1;
4034 : }
4035 32 : tree res_op2;
4036 32 : {
4037 32 : tree _o1[1], _r1;
4038 32 : _o1[0] = captures[3];
4039 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
4040 32 : if (EXPR_P (_r1))
4041 0 : goto next_after_fail1055;
4042 32 : res_op2 = _r1;
4043 : }
4044 32 : tree _r;
4045 32 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4046 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 811, __FILE__, __LINE__, true);
4047 32 : return _r;
4048 : }
4049 0 : next_after_fail1055:;
4050 : }
4051 0 : break;
4052 : }
4053 4 : case LT_EXPR:
4054 4 : {
4055 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4056 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4057 4 : {
4058 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4059 4 : tree res = generic_simplify_502 (loc, type, _p0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
4060 4 : if (res) return res;
4061 : }
4062 4 : break;
4063 : }
4064 0 : case LE_EXPR:
4065 0 : {
4066 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4067 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4068 0 : {
4069 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4070 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
4071 0 : if (res) return res;
4072 : }
4073 0 : break;
4074 : }
4075 63 : case EQ_EXPR:
4076 63 : {
4077 63 : tree _q20 = TREE_OPERAND (_p0, 0);
4078 63 : tree _q21 = TREE_OPERAND (_p0, 1);
4079 63 : {
4080 63 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4081 63 : tree res = generic_simplify_502 (loc, type, _p0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
4082 63 : if (res) return res;
4083 : }
4084 56 : break;
4085 : }
4086 112 : case NE_EXPR:
4087 112 : {
4088 112 : tree _q20 = TREE_OPERAND (_p0, 0);
4089 112 : tree _q21 = TREE_OPERAND (_p0, 1);
4090 112 : {
4091 112 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4092 112 : tree res = generic_simplify_502 (loc, type, _p0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
4093 112 : if (res) return res;
4094 : }
4095 107 : break;
4096 : }
4097 0 : case GE_EXPR:
4098 0 : {
4099 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4100 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4101 0 : {
4102 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4103 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
4104 0 : if (res) return res;
4105 : }
4106 0 : break;
4107 : }
4108 66 : case GT_EXPR:
4109 66 : {
4110 66 : tree _q20 = TREE_OPERAND (_p0, 0);
4111 66 : tree _q21 = TREE_OPERAND (_p0, 1);
4112 66 : {
4113 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4114 66 : tree res = generic_simplify_502 (loc, type, _p0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
4115 66 : if (res) return res;
4116 : }
4117 66 : break;
4118 : }
4119 0 : case UNORDERED_EXPR:
4120 0 : {
4121 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4122 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4123 0 : {
4124 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4125 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
4126 0 : if (res) return res;
4127 : }
4128 0 : break;
4129 : }
4130 0 : case ORDERED_EXPR:
4131 0 : {
4132 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4133 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4134 0 : {
4135 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4136 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
4137 0 : if (res) return res;
4138 : }
4139 0 : break;
4140 : }
4141 0 : case UNLT_EXPR:
4142 0 : {
4143 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4144 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4145 0 : {
4146 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4147 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
4148 0 : if (res) return res;
4149 : }
4150 0 : break;
4151 : }
4152 0 : case UNLE_EXPR:
4153 0 : {
4154 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4155 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4156 0 : {
4157 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4158 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
4159 0 : if (res) return res;
4160 : }
4161 0 : break;
4162 : }
4163 0 : case UNGT_EXPR:
4164 0 : {
4165 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4166 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4167 0 : {
4168 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4169 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
4170 0 : if (res) return res;
4171 : }
4172 0 : break;
4173 : }
4174 0 : case UNGE_EXPR:
4175 0 : {
4176 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4177 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4178 0 : {
4179 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4180 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
4181 0 : if (res) return res;
4182 : }
4183 0 : break;
4184 : }
4185 0 : case UNEQ_EXPR:
4186 0 : {
4187 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4188 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4189 0 : {
4190 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4191 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
4192 0 : if (res) return res;
4193 : }
4194 0 : break;
4195 : }
4196 0 : case LTGT_EXPR:
4197 0 : {
4198 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4199 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4200 0 : {
4201 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4202 0 : tree res = generic_simplify_502 (loc, type, _p0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
4203 0 : if (res) return res;
4204 : }
4205 0 : break;
4206 : }
4207 : default:;
4208 : }
4209 : return NULL_TREE;
4210 : }
4211 :
4212 : tree
4213 2368812 : 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)
4214 : {
4215 2368812 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4216 2368812 : if (integer_onep (_p1))
4217 : {
4218 17720 : {
4219 17720 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4220 17720 : tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4221 17720 : if (res) return res;
4222 : }
4223 : }
4224 2351092 : switch (TREE_CODE (_p0))
4225 : {
4226 152405 : CASE_CONVERT:
4227 152405 : {
4228 152405 : tree _q20 = TREE_OPERAND (_p0, 0);
4229 152405 : switch (TREE_CODE (_p1))
4230 : {
4231 35719 : CASE_CONVERT:
4232 35719 : {
4233 35719 : tree _q40 = TREE_OPERAND (_p1, 0);
4234 35719 : switch (TREE_CODE (_q40))
4235 : {
4236 0 : case LSHIFT_EXPR:
4237 0 : {
4238 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4239 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4240 0 : if (integer_onep (_q50))
4241 : {
4242 0 : {
4243 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
4244 0 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4245 0 : if (res) return res;
4246 : }
4247 : }
4248 : break;
4249 : }
4250 : default:;
4251 : }
4252 : break;
4253 : }
4254 8 : case LSHIFT_EXPR:
4255 8 : {
4256 8 : tree _q40 = TREE_OPERAND (_p1, 0);
4257 8 : tree _q41 = TREE_OPERAND (_p1, 1);
4258 8 : if (integer_onep (_q40))
4259 : {
4260 7 : {
4261 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
4262 7 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4263 7 : if (res) return res;
4264 : }
4265 : }
4266 : break;
4267 : }
4268 : default:;
4269 : }
4270 : break;
4271 : }
4272 2351092 : default:;
4273 : }
4274 2351092 : switch (TREE_CODE (_p1))
4275 : {
4276 127275 : CASE_CONVERT:
4277 127275 : {
4278 127275 : tree _q30 = TREE_OPERAND (_p1, 0);
4279 127275 : switch (TREE_CODE (_q30))
4280 : {
4281 7 : case LSHIFT_EXPR:
4282 7 : {
4283 7 : tree _q40 = TREE_OPERAND (_q30, 0);
4284 7 : tree _q41 = TREE_OPERAND (_q30, 1);
4285 7 : if (integer_onep (_q40))
4286 : {
4287 7 : {
4288 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
4289 7 : tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4290 7 : if (res) return res;
4291 : }
4292 : }
4293 : break;
4294 : }
4295 : default:;
4296 : }
4297 : break;
4298 : }
4299 33 : case LSHIFT_EXPR:
4300 33 : {
4301 33 : tree _q30 = TREE_OPERAND (_p1, 0);
4302 33 : tree _q31 = TREE_OPERAND (_p1, 1);
4303 33 : if (integer_onep (_q30))
4304 : {
4305 16 : {
4306 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
4307 16 : tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4308 16 : if (res) return res;
4309 : }
4310 : }
4311 : break;
4312 : }
4313 2351083 : default:;
4314 : }
4315 2351083 : if (integer_zerop (_p0))
4316 : {
4317 2362 : {
4318 2362 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4319 2362 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4320 2362 : if (res) return res;
4321 : }
4322 : }
4323 2349350 : switch (TREE_CODE (_p1))
4324 : {
4325 13305 : case SSA_NAME:
4326 13305 : {
4327 13305 : {
4328 13305 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4329 13305 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4330 13305 : if (res) return res;
4331 : }
4332 13305 : break;
4333 : }
4334 2349350 : default:;
4335 : }
4336 2349350 : if (integer_minus_onep (_p1))
4337 : {
4338 2520 : {
4339 2520 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4340 2520 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4341 2520 : if (res) return res;
4342 : }
4343 : }
4344 2347728 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4345 : {
4346 896 : {
4347 896 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4348 896 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4349 896 : if (res) return res;
4350 : }
4351 : }
4352 2347617 : switch (TREE_CODE (_p1))
4353 : {
4354 1 : case ABS_EXPR:
4355 1 : {
4356 1 : tree _q30 = TREE_OPERAND (_p1, 0);
4357 1 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4358 : {
4359 1 : {
4360 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4361 1 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4362 1 : if (res) return res;
4363 : }
4364 : }
4365 : break;
4366 : }
4367 2347616 : default:;
4368 : }
4369 2347616 : switch (TREE_CODE (_p0))
4370 : {
4371 0 : case ABS_EXPR:
4372 0 : {
4373 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4374 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4375 : {
4376 0 : {
4377 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4378 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4379 0 : if (res) return res;
4380 : }
4381 : }
4382 : break;
4383 : }
4384 2347616 : default:;
4385 : }
4386 2347616 : switch (TREE_CODE (_p1))
4387 : {
4388 657 : case NEGATE_EXPR:
4389 657 : {
4390 657 : tree _q30 = TREE_OPERAND (_p1, 0);
4391 657 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4392 : {
4393 1 : {
4394 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4395 1 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4396 1 : if (res) return res;
4397 : }
4398 : }
4399 : break;
4400 : }
4401 2347615 : default:;
4402 : }
4403 2347615 : switch (TREE_CODE (_p0))
4404 : {
4405 388 : case NEGATE_EXPR:
4406 388 : {
4407 388 : tree _q20 = TREE_OPERAND (_p0, 0);
4408 388 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4409 : {
4410 0 : {
4411 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4412 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4413 0 : if (res) return res;
4414 : }
4415 : }
4416 : break;
4417 : }
4418 9111 : case TRUNC_DIV_EXPR:
4419 9111 : {
4420 9111 : tree _q20 = TREE_OPERAND (_p0, 0);
4421 9111 : tree _q21 = TREE_OPERAND (_p0, 1);
4422 9111 : switch (TREE_CODE (_q21))
4423 : {
4424 9022 : case INTEGER_CST:
4425 9022 : {
4426 9022 : switch (TREE_CODE (_p1))
4427 : {
4428 9021 : case INTEGER_CST:
4429 9021 : {
4430 9021 : {
4431 9021 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4432 9021 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4433 9021 : if (res) return res;
4434 : }
4435 9021 : break;
4436 : }
4437 : default:;
4438 : }
4439 : break;
4440 : }
4441 : default:;
4442 : }
4443 : break;
4444 : }
4445 152364 : CASE_CONVERT:
4446 152364 : {
4447 152364 : tree _q20 = TREE_OPERAND (_p0, 0);
4448 152364 : switch (TREE_CODE (_q20))
4449 : {
4450 0 : case BIT_AND_EXPR:
4451 0 : {
4452 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4453 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4454 0 : switch (TREE_CODE (_q31))
4455 : {
4456 0 : case INTEGER_CST:
4457 0 : {
4458 0 : switch (TREE_CODE (_p1))
4459 : {
4460 0 : case INTEGER_CST:
4461 0 : {
4462 0 : {
4463 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4464 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4465 0 : if (res) return res;
4466 : }
4467 0 : break;
4468 : }
4469 : default:;
4470 : }
4471 : break;
4472 : }
4473 : default:;
4474 : }
4475 : break;
4476 : }
4477 : default:;
4478 : }
4479 : break;
4480 : }
4481 45214 : case BIT_AND_EXPR:
4482 45214 : {
4483 45214 : tree _q20 = TREE_OPERAND (_p0, 0);
4484 45214 : tree _q21 = TREE_OPERAND (_p0, 1);
4485 45214 : switch (TREE_CODE (_q21))
4486 : {
4487 45188 : case INTEGER_CST:
4488 45188 : {
4489 45188 : switch (TREE_CODE (_p1))
4490 : {
4491 45184 : case INTEGER_CST:
4492 45184 : {
4493 45184 : {
4494 45184 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4495 45184 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4496 45184 : if (res) return res;
4497 : }
4498 45183 : break;
4499 : }
4500 : default:;
4501 : }
4502 : break;
4503 : }
4504 : default:;
4505 : }
4506 : break;
4507 : }
4508 135229 : case MULT_EXPR:
4509 135229 : {
4510 135229 : tree _q20 = TREE_OPERAND (_p0, 0);
4511 135229 : tree _q21 = TREE_OPERAND (_p0, 1);
4512 135229 : if (integer_pow2p (_q21))
4513 : {
4514 5945 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4515 : {
4516 5583 : {
4517 5583 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4518 5583 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4519 5583 : if (res) return res;
4520 : }
4521 : }
4522 : }
4523 129787 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4524 : {
4525 163 : {
4526 163 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4527 163 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4528 163 : if (res) return res;
4529 : }
4530 : }
4531 129639 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4532 : {
4533 22 : {
4534 22 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4535 22 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4536 22 : if (res) return res;
4537 : }
4538 : }
4539 129630 : switch (TREE_CODE (_q21))
4540 : {
4541 129316 : case INTEGER_CST:
4542 129316 : {
4543 129316 : switch (TREE_CODE (_p1))
4544 : {
4545 3 : case MULT_EXPR:
4546 3 : {
4547 3 : tree _q50 = TREE_OPERAND (_p1, 0);
4548 3 : tree _q51 = TREE_OPERAND (_p1, 1);
4549 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4550 : {
4551 3 : switch (TREE_CODE (_q51))
4552 : {
4553 3 : case INTEGER_CST:
4554 3 : {
4555 3 : {
4556 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4557 3 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4558 3 : if (res) return res;
4559 : }
4560 0 : break;
4561 : }
4562 : default:;
4563 : }
4564 : }
4565 : break;
4566 : }
4567 : default:;
4568 : }
4569 : break;
4570 : }
4571 : default:;
4572 : }
4573 : break;
4574 : }
4575 0 : case VEC_COND_EXPR:
4576 0 : {
4577 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4578 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4579 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4580 0 : switch (TREE_CODE (_p1))
4581 : {
4582 0 : case VEC_COND_EXPR:
4583 0 : {
4584 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4585 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4586 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4587 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4588 : {
4589 0 : {
4590 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4591 0 : if (VECTOR_TYPE_P (type)
4592 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4593 : || types_match (type, TREE_TYPE (captures[2]))
4594 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4595 : || (optimize_vectors_before_lowering_p ()
4596 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4597 : )
4598 : {
4599 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1554;
4600 0 : {
4601 0 : tree res_op0;
4602 0 : res_op0 = captures[1];
4603 0 : tree res_op1;
4604 0 : {
4605 0 : tree _o1[2], _r1;
4606 0 : _o1[0] = captures[2];
4607 0 : _o1[1] = captures[5];
4608 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4609 0 : if (EXPR_P (_r1))
4610 0 : goto next_after_fail1554;
4611 0 : res_op1 = _r1;
4612 : }
4613 0 : tree res_op2;
4614 0 : {
4615 0 : tree _o1[2], _r1;
4616 0 : _o1[0] = captures[3];
4617 0 : _o1[1] = captures[6];
4618 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4619 0 : if (EXPR_P (_r1))
4620 0 : goto next_after_fail1554;
4621 0 : res_op2 = _r1;
4622 : }
4623 0 : tree _r;
4624 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4625 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
4626 0 : return _r;
4627 : }
4628 0 : next_after_fail1554:;
4629 : }
4630 : }
4631 : }
4632 : break;
4633 : }
4634 0 : default:;
4635 : }
4636 0 : {
4637 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4638 0 : if (VECTOR_TYPE_P (type)
4639 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4640 : || types_match (type, TREE_TYPE (captures[2]))
4641 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4642 : || (optimize_vectors_before_lowering_p ()
4643 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4644 : )
4645 : {
4646 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1555;
4647 0 : {
4648 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1555;
4649 0 : tree res_op0;
4650 0 : res_op0 = captures[1];
4651 0 : tree res_op1;
4652 0 : {
4653 0 : tree _o1[2], _r1;
4654 0 : _o1[0] = captures[2];
4655 0 : _o1[1] = unshare_expr (captures[4]);
4656 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4657 0 : if (EXPR_P (_r1))
4658 0 : goto next_after_fail1555;
4659 0 : res_op1 = _r1;
4660 : }
4661 0 : tree res_op2;
4662 0 : {
4663 0 : tree _o1[2], _r1;
4664 0 : _o1[0] = captures[3];
4665 0 : _o1[1] = captures[4];
4666 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4667 0 : if (EXPR_P (_r1))
4668 0 : goto next_after_fail1555;
4669 0 : res_op2 = _r1;
4670 : }
4671 0 : tree _r;
4672 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4673 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
4674 0 : return _r;
4675 : }
4676 0 : next_after_fail1555:;
4677 : }
4678 : }
4679 0 : break;
4680 : }
4681 2342012 : default:;
4682 : }
4683 2342012 : if (integer_onep (_p0))
4684 : {
4685 1219 : {
4686 1219 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4687 1219 : if (INTEGRAL_TYPE_P (type)
4688 1216 : && TYPE_PRECISION (type) > 1
4689 1216 : && !integer_zerop (captures[1])
4690 1681 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
4691 : )
4692 : {
4693 405 : if (TYPE_UNSIGNED (type)
4694 : )
4695 : {
4696 54 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1556;
4697 54 : {
4698 54 : tree res_op0;
4699 54 : {
4700 54 : tree _o1[2], _r1;
4701 54 : _o1[0] = captures[1];
4702 54 : _o1[1] = build_one_cst (type);
4703 54 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
4704 54 : res_op0 = _r1;
4705 : }
4706 54 : tree _r;
4707 54 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4708 54 : if (TREE_SIDE_EFFECTS (captures[0]))
4709 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4710 54 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
4711 54 : return _r;
4712 : }
4713 0 : next_after_fail1556:;
4714 : }
4715 : else
4716 : {
4717 351 : if (fold_before_rtl_expansion_p ()
4718 : )
4719 : {
4720 0 : {
4721 0 : tree utype = unsigned_type_for (type);
4722 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1557;
4723 0 : {
4724 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail1557;
4725 0 : tree res_op0;
4726 0 : {
4727 0 : tree _o1[2], _r1;
4728 0 : {
4729 0 : tree _o2[2], _r2;
4730 0 : {
4731 0 : tree _o3[1], _r3;
4732 0 : _o3[0] = unshare_expr (captures[1]);
4733 0 : if (TREE_TYPE (_o3[0]) != utype)
4734 : {
4735 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
4736 : }
4737 : else
4738 : _r3 = _o3[0];
4739 0 : _o2[0] = _r3;
4740 : }
4741 0 : _o2[1] = build_one_cst (utype);
4742 0 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4743 0 : _o1[0] = _r2;
4744 : }
4745 0 : _o1[1] = build_int_cst (utype, 2);
4746 0 : _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
4747 0 : res_op0 = _r1;
4748 : }
4749 0 : tree res_op1;
4750 0 : res_op1 = captures[1];
4751 0 : tree res_op2;
4752 0 : res_op2 = build_zero_cst (type);
4753 0 : tree _r;
4754 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4755 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4756 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4757 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 973, __FILE__, __LINE__, true);
4758 0 : return _r;
4759 : }
4760 1165 : next_after_fail1557:;
4761 : }
4762 : }
4763 : }
4764 : }
4765 : }
4766 : }
4767 2341958 : switch (TREE_CODE (_p1))
4768 : {
4769 0 : case VEC_COND_EXPR:
4770 0 : {
4771 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4772 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4773 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4774 0 : {
4775 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4776 0 : if (VECTOR_TYPE_P (type)
4777 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4778 : || types_match (type, TREE_TYPE (captures[3]))
4779 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4780 : || (optimize_vectors_before_lowering_p ()
4781 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4782 : )
4783 : {
4784 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1558;
4785 0 : {
4786 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1558;
4787 0 : tree res_op0;
4788 0 : res_op0 = captures[2];
4789 0 : tree res_op1;
4790 0 : {
4791 0 : tree _o1[2], _r1;
4792 0 : _o1[0] = unshare_expr (captures[0]);
4793 0 : _o1[1] = captures[3];
4794 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4795 0 : if (EXPR_P (_r1))
4796 0 : goto next_after_fail1558;
4797 0 : res_op1 = _r1;
4798 : }
4799 0 : tree res_op2;
4800 0 : {
4801 0 : tree _o1[2], _r1;
4802 0 : _o1[0] = captures[0];
4803 0 : _o1[1] = captures[4];
4804 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4805 0 : if (EXPR_P (_r1))
4806 0 : goto next_after_fail1558;
4807 0 : res_op2 = _r1;
4808 : }
4809 0 : tree _r;
4810 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4811 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
4812 0 : return _r;
4813 : }
4814 0 : next_after_fail1558:;
4815 : }
4816 : }
4817 0 : break;
4818 : }
4819 : default:;
4820 : }
4821 : return NULL_TREE;
4822 : }
4823 :
4824 : tree
4825 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)
4826 : {
4827 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4828 0 : if (integer_onep (_p1))
4829 : {
4830 0 : {
4831 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4832 0 : tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4833 0 : if (res) return res;
4834 : }
4835 : }
4836 0 : if (integer_zerop (_p0))
4837 : {
4838 0 : {
4839 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4840 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4841 0 : if (res) return res;
4842 : }
4843 : }
4844 0 : switch (TREE_CODE (_p1))
4845 : {
4846 0 : case SSA_NAME:
4847 0 : {
4848 0 : {
4849 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4850 0 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4851 0 : if (res) return res;
4852 : }
4853 0 : break;
4854 : }
4855 0 : default:;
4856 : }
4857 0 : if (integer_minus_onep (_p1))
4858 : {
4859 0 : {
4860 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4861 0 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4862 0 : if (res) return res;
4863 : }
4864 : }
4865 0 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4866 : {
4867 0 : {
4868 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4869 0 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4870 0 : if (res) return res;
4871 : }
4872 : }
4873 0 : switch (TREE_CODE (_p1))
4874 : {
4875 0 : case ABS_EXPR:
4876 0 : {
4877 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4878 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4879 : {
4880 0 : {
4881 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4882 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4883 0 : if (res) return res;
4884 : }
4885 : }
4886 : break;
4887 : }
4888 0 : default:;
4889 : }
4890 0 : switch (TREE_CODE (_p0))
4891 : {
4892 0 : case ABS_EXPR:
4893 0 : {
4894 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4895 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4896 : {
4897 0 : {
4898 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4899 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4900 0 : if (res) return res;
4901 : }
4902 : }
4903 : break;
4904 : }
4905 0 : default:;
4906 : }
4907 0 : switch (TREE_CODE (_p1))
4908 : {
4909 0 : case NEGATE_EXPR:
4910 0 : {
4911 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4912 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4913 : {
4914 0 : {
4915 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4916 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4917 0 : if (res) return res;
4918 : }
4919 : }
4920 : break;
4921 : }
4922 0 : default:;
4923 : }
4924 0 : switch (TREE_CODE (_p0))
4925 : {
4926 0 : case NEGATE_EXPR:
4927 0 : {
4928 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4929 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4930 : {
4931 0 : {
4932 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4933 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4934 0 : if (res) return res;
4935 : }
4936 : }
4937 : break;
4938 : }
4939 0 : CASE_CONVERT:
4940 0 : {
4941 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4942 0 : switch (TREE_CODE (_q20))
4943 : {
4944 0 : case BIT_AND_EXPR:
4945 0 : {
4946 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4947 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4948 0 : switch (TREE_CODE (_q31))
4949 : {
4950 0 : case INTEGER_CST:
4951 0 : {
4952 0 : switch (TREE_CODE (_p1))
4953 : {
4954 0 : case INTEGER_CST:
4955 0 : {
4956 0 : {
4957 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4958 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4959 0 : if (res) return res;
4960 : }
4961 0 : break;
4962 : }
4963 : default:;
4964 : }
4965 : break;
4966 : }
4967 : default:;
4968 : }
4969 : break;
4970 : }
4971 : default:;
4972 : }
4973 : break;
4974 : }
4975 0 : case BIT_AND_EXPR:
4976 0 : {
4977 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4978 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4979 0 : switch (TREE_CODE (_q21))
4980 : {
4981 0 : case INTEGER_CST:
4982 0 : {
4983 0 : switch (TREE_CODE (_p1))
4984 : {
4985 0 : case INTEGER_CST:
4986 0 : {
4987 0 : {
4988 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4989 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4990 0 : if (res) return res;
4991 : }
4992 0 : break;
4993 : }
4994 : default:;
4995 : }
4996 : break;
4997 : }
4998 : default:;
4999 : }
5000 : break;
5001 : }
5002 0 : case MULT_EXPR:
5003 0 : {
5004 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5005 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5006 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5007 : {
5008 0 : {
5009 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5010 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5011 0 : if (res) return res;
5012 : }
5013 : }
5014 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5015 : {
5016 0 : {
5017 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5018 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5019 0 : if (res) return res;
5020 : }
5021 : }
5022 0 : switch (TREE_CODE (_q21))
5023 : {
5024 0 : case INTEGER_CST:
5025 0 : {
5026 0 : switch (TREE_CODE (_p1))
5027 : {
5028 0 : case MULT_EXPR:
5029 0 : {
5030 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5031 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5032 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5033 : {
5034 0 : switch (TREE_CODE (_q51))
5035 : {
5036 0 : case INTEGER_CST:
5037 0 : {
5038 0 : {
5039 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5040 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5041 0 : if (res) return res;
5042 : }
5043 0 : break;
5044 : }
5045 : default:;
5046 : }
5047 : }
5048 : break;
5049 : }
5050 : default:;
5051 : }
5052 : break;
5053 : }
5054 : default:;
5055 : }
5056 : break;
5057 : }
5058 0 : case VEC_COND_EXPR:
5059 0 : {
5060 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5061 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5062 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5063 0 : switch (TREE_CODE (_p1))
5064 : {
5065 0 : case VEC_COND_EXPR:
5066 0 : {
5067 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5068 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5069 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5070 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5071 : {
5072 0 : {
5073 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5074 0 : if (VECTOR_TYPE_P (type)
5075 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5076 : || types_match (type, TREE_TYPE (captures[2]))
5077 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5078 : || (optimize_vectors_before_lowering_p ()
5079 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5080 : )
5081 : {
5082 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1565;
5083 0 : {
5084 0 : tree res_op0;
5085 0 : res_op0 = captures[1];
5086 0 : tree res_op1;
5087 0 : {
5088 0 : tree _o1[2], _r1;
5089 0 : _o1[0] = captures[2];
5090 0 : _o1[1] = captures[5];
5091 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5092 0 : if (EXPR_P (_r1))
5093 0 : goto next_after_fail1565;
5094 0 : res_op1 = _r1;
5095 : }
5096 0 : tree res_op2;
5097 0 : {
5098 0 : tree _o1[2], _r1;
5099 0 : _o1[0] = captures[3];
5100 0 : _o1[1] = captures[6];
5101 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5102 0 : if (EXPR_P (_r1))
5103 0 : goto next_after_fail1565;
5104 0 : res_op2 = _r1;
5105 : }
5106 0 : tree _r;
5107 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5108 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
5109 0 : return _r;
5110 : }
5111 0 : next_after_fail1565:;
5112 : }
5113 : }
5114 : }
5115 : break;
5116 : }
5117 0 : default:;
5118 : }
5119 0 : {
5120 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5121 0 : if (VECTOR_TYPE_P (type)
5122 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5123 : || types_match (type, TREE_TYPE (captures[2]))
5124 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5125 : || (optimize_vectors_before_lowering_p ()
5126 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5127 : )
5128 : {
5129 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1566;
5130 0 : {
5131 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1566;
5132 0 : tree res_op0;
5133 0 : res_op0 = captures[1];
5134 0 : tree res_op1;
5135 0 : {
5136 0 : tree _o1[2], _r1;
5137 0 : _o1[0] = captures[2];
5138 0 : _o1[1] = unshare_expr (captures[4]);
5139 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5140 0 : if (EXPR_P (_r1))
5141 0 : goto next_after_fail1566;
5142 0 : res_op1 = _r1;
5143 : }
5144 0 : tree res_op2;
5145 0 : {
5146 0 : tree _o1[2], _r1;
5147 0 : _o1[0] = captures[3];
5148 0 : _o1[1] = captures[4];
5149 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5150 0 : if (EXPR_P (_r1))
5151 0 : goto next_after_fail1566;
5152 0 : res_op2 = _r1;
5153 : }
5154 0 : tree _r;
5155 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5156 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
5157 0 : return _r;
5158 : }
5159 0 : next_after_fail1566:;
5160 : }
5161 : }
5162 0 : break;
5163 : }
5164 0 : default:;
5165 : }
5166 0 : switch (TREE_CODE (_p1))
5167 : {
5168 0 : case VEC_COND_EXPR:
5169 0 : {
5170 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5171 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5172 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5173 0 : {
5174 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5175 0 : if (VECTOR_TYPE_P (type)
5176 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5177 : || types_match (type, TREE_TYPE (captures[3]))
5178 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5179 : || (optimize_vectors_before_lowering_p ()
5180 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5181 : )
5182 : {
5183 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1567;
5184 0 : {
5185 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1567;
5186 0 : tree res_op0;
5187 0 : res_op0 = captures[2];
5188 0 : tree res_op1;
5189 0 : {
5190 0 : tree _o1[2], _r1;
5191 0 : _o1[0] = unshare_expr (captures[0]);
5192 0 : _o1[1] = captures[3];
5193 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5194 0 : if (EXPR_P (_r1))
5195 0 : goto next_after_fail1567;
5196 0 : res_op1 = _r1;
5197 : }
5198 0 : tree res_op2;
5199 0 : {
5200 0 : tree _o1[2], _r1;
5201 0 : _o1[0] = captures[0];
5202 0 : _o1[1] = captures[4];
5203 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5204 0 : if (EXPR_P (_r1))
5205 0 : goto next_after_fail1567;
5206 0 : res_op2 = _r1;
5207 : }
5208 0 : tree _r;
5209 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5210 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
5211 0 : return _r;
5212 : }
5213 0 : next_after_fail1567:;
5214 : }
5215 : }
5216 0 : break;
5217 : }
5218 : default:;
5219 : }
5220 : return NULL_TREE;
5221 : }
5222 :
5223 : tree
5224 6163186 : generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5225 : {
5226 6163186 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5227 6163186 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5228 : {
5229 763 : {
5230 763 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5231 1 : if (FLOAT_TYPE_P (type)
5232 763 : && ! HONOR_NANS (type)
5233 765 : && ! HONOR_INFINITIES (type)
5234 : )
5235 : {
5236 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1574;
5237 2 : {
5238 2 : tree _r;
5239 2 : _r = build_one_cst (type);
5240 2 : if (TREE_SIDE_EFFECTS (captures[0]))
5241 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5242 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 974, __FILE__, __LINE__, true);
5243 2 : return _r;
5244 : }
5245 0 : next_after_fail1574:;
5246 : }
5247 : }
5248 : }
5249 6163184 : switch (TREE_CODE (_p1))
5250 : {
5251 18674 : case NEGATE_EXPR:
5252 18674 : {
5253 18674 : tree _q30 = TREE_OPERAND (_p1, 0);
5254 18674 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5255 : {
5256 0 : {
5257 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5258 0 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures);
5259 0 : if (res) return res;
5260 : }
5261 : }
5262 : break;
5263 : }
5264 6163184 : default:;
5265 : }
5266 6163184 : switch (TREE_CODE (_p0))
5267 : {
5268 93438 : case NEGATE_EXPR:
5269 93438 : {
5270 93438 : tree _q20 = TREE_OPERAND (_p0, 0);
5271 93438 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5272 : {
5273 2 : {
5274 2 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5275 2 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures);
5276 2 : if (res) return res;
5277 : }
5278 : }
5279 : break;
5280 : }
5281 534730 : CASE_CONVERT:
5282 534730 : {
5283 534730 : tree _q20 = TREE_OPERAND (_p0, 0);
5284 534730 : switch (TREE_CODE (_p1))
5285 : {
5286 23461 : CASE_CONVERT:
5287 23461 : {
5288 23461 : tree _q40 = TREE_OPERAND (_p1, 0);
5289 23461 : switch (TREE_CODE (_q40))
5290 : {
5291 0 : case ABS_EXPR:
5292 0 : {
5293 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5294 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5295 : {
5296 0 : {
5297 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5298 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
5299 0 : if (res) return res;
5300 : }
5301 : }
5302 : break;
5303 : }
5304 : default:;
5305 : }
5306 : break;
5307 : }
5308 534730 : default:;
5309 : }
5310 534730 : switch (TREE_CODE (_q20))
5311 : {
5312 0 : case ABS_EXPR:
5313 0 : {
5314 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5315 0 : switch (TREE_CODE (_p1))
5316 : {
5317 0 : CASE_CONVERT:
5318 0 : {
5319 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5320 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
5321 : {
5322 0 : {
5323 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
5324 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
5325 0 : if (res) return res;
5326 : }
5327 : }
5328 : break;
5329 : }
5330 : default:;
5331 : }
5332 : break;
5333 : }
5334 : default:;
5335 : }
5336 : break;
5337 : }
5338 6163184 : default:;
5339 : }
5340 6163184 : switch (TREE_CODE (_p1))
5341 : {
5342 54 : case ABS_EXPR:
5343 54 : {
5344 54 : tree _q30 = TREE_OPERAND (_p1, 0);
5345 54 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5346 : {
5347 0 : {
5348 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5349 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
5350 0 : if (res) return res;
5351 : }
5352 : }
5353 : break;
5354 : }
5355 6163184 : default:;
5356 : }
5357 6163184 : switch (TREE_CODE (_p0))
5358 : {
5359 158 : case ABS_EXPR:
5360 158 : {
5361 158 : tree _q20 = TREE_OPERAND (_p0, 0);
5362 158 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5363 : {
5364 0 : {
5365 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5366 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
5367 0 : if (res) return res;
5368 : }
5369 : }
5370 : break;
5371 : }
5372 6163184 : default:;
5373 : }
5374 6163184 : if (real_onep (_p1))
5375 : {
5376 86 : {
5377 86 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5378 86 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5379 : )
5380 : {
5381 86 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1575;
5382 86 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1575;
5383 86 : {
5384 86 : tree res_op0;
5385 86 : res_op0 = captures[0];
5386 86 : tree _r;
5387 86 : _r = non_lvalue_loc (loc, res_op0);
5388 86 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 975, __FILE__, __LINE__, true);
5389 86 : return _r;
5390 : }
5391 : next_after_fail1575:;
5392 : }
5393 : }
5394 : }
5395 6163098 : if (real_minus_onep (_p1))
5396 : {
5397 36 : {
5398 36 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5399 36 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5400 : )
5401 : {
5402 36 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1576;
5403 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1576;
5404 36 : {
5405 36 : tree res_op0;
5406 36 : res_op0 = captures[0];
5407 36 : tree _r;
5408 36 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
5409 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 976, __FILE__, __LINE__, true);
5410 36 : return _r;
5411 : }
5412 : next_after_fail1576:;
5413 : }
5414 : }
5415 : }
5416 6163062 : switch (TREE_CODE (_p0))
5417 : {
5418 36966 : case RDIV_EXPR:
5419 36966 : {
5420 36966 : tree _q20 = TREE_OPERAND (_p0, 0);
5421 36966 : tree _q21 = TREE_OPERAND (_p0, 1);
5422 36966 : {
5423 36966 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5424 36966 : if (flag_reciprocal_math
5425 : )
5426 : {
5427 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1577;
5428 12 : {
5429 12 : tree res_op0;
5430 12 : res_op0 = captures[1];
5431 12 : tree res_op1;
5432 12 : {
5433 12 : tree _o1[2], _r1;
5434 12 : _o1[0] = captures[2];
5435 12 : _o1[1] = captures[3];
5436 12 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5437 12 : res_op1 = _r1;
5438 : }
5439 12 : tree _r;
5440 12 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5441 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 977, __FILE__, __LINE__, true);
5442 12 : return _r;
5443 : }
5444 0 : next_after_fail1577:;
5445 : }
5446 : }
5447 36954 : break;
5448 : }
5449 6163050 : default:;
5450 : }
5451 6163050 : switch (TREE_CODE (_p1))
5452 : {
5453 946623 : case MULT_EXPR:
5454 946623 : {
5455 946623 : tree _q30 = TREE_OPERAND (_p1, 0);
5456 946623 : tree _q31 = TREE_OPERAND (_p1, 1);
5457 946623 : switch (TREE_CODE (_q31))
5458 : {
5459 371516 : case REAL_CST:
5460 371516 : {
5461 371516 : {
5462 371516 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5463 371516 : if (flag_reciprocal_math
5464 : )
5465 : {
5466 224 : {
5467 224 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
5468 224 : if (tem
5469 : )
5470 : {
5471 224 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1578;
5472 224 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1578;
5473 224 : {
5474 224 : tree res_op0;
5475 224 : {
5476 224 : tree _o1[2], _r1;
5477 224 : _o1[0] = captures[0];
5478 224 : _o1[1] = tem;
5479 224 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5480 224 : res_op0 = _r1;
5481 : }
5482 224 : tree res_op1;
5483 224 : res_op1 = captures[2];
5484 224 : tree _r;
5485 224 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5486 224 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
5487 224 : return _r;
5488 : }
5489 371292 : next_after_fail1578:;
5490 : }
5491 : }
5492 : }
5493 : }
5494 371292 : break;
5495 : }
5496 : default:;
5497 : }
5498 : break;
5499 : }
5500 1 : case RDIV_EXPR:
5501 1 : {
5502 1 : tree _q30 = TREE_OPERAND (_p1, 0);
5503 1 : tree _q31 = TREE_OPERAND (_p1, 1);
5504 1 : {
5505 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5506 1 : if (flag_reciprocal_math
5507 : )
5508 : {
5509 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1579;
5510 1 : {
5511 1 : tree res_op0;
5512 1 : {
5513 1 : tree _o1[2], _r1;
5514 1 : _o1[0] = captures[0];
5515 1 : _o1[1] = captures[2];
5516 1 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5517 1 : res_op0 = _r1;
5518 : }
5519 1 : tree res_op1;
5520 1 : res_op1 = captures[3];
5521 1 : tree _r;
5522 1 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5523 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
5524 1 : return _r;
5525 : }
5526 0 : next_after_fail1579:;
5527 : }
5528 : }
5529 0 : break;
5530 : }
5531 18674 : case NEGATE_EXPR:
5532 18674 : {
5533 18674 : tree _q30 = TREE_OPERAND (_p1, 0);
5534 18674 : {
5535 18674 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5536 18674 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1580;
5537 18674 : {
5538 18674 : tree res_op0;
5539 18674 : {
5540 18674 : tree _o1[1], _r1;
5541 18674 : _o1[0] = captures[0];
5542 18674 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5543 18674 : res_op0 = _r1;
5544 : }
5545 18674 : tree res_op1;
5546 18674 : res_op1 = captures[1];
5547 18674 : tree _r;
5548 18674 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5549 18674 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
5550 18674 : return _r;
5551 : }
5552 0 : next_after_fail1580:;
5553 : }
5554 0 : break;
5555 : }
5556 1049076 : case REAL_CST:
5557 1049076 : {
5558 1049076 : {
5559 1049076 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5560 1049076 : if (optimize
5561 : )
5562 : {
5563 1043189 : if (flag_reciprocal_math
5564 1043189 : && !real_zerop (captures[1])
5565 : )
5566 : {
5567 571 : {
5568 571 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5569 571 : if (tem
5570 : )
5571 : {
5572 570 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1581;
5573 570 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1581;
5574 570 : {
5575 570 : tree res_op0;
5576 570 : res_op0 = captures[0];
5577 570 : tree res_op1;
5578 570 : res_op1 = tem;
5579 570 : tree _r;
5580 570 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5581 570 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
5582 570 : return _r;
5583 : }
5584 732738 : next_after_fail1581:;
5585 : }
5586 : }
5587 : }
5588 : else
5589 : {
5590 1042618 : if (REAL_CST != COMPLEX_CST
5591 : )
5592 : {
5593 1042618 : {
5594 1042618 : tree inverse = exact_inverse (type, captures[1]);
5595 1042618 : if (inverse
5596 : )
5597 : {
5598 315768 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1582;
5599 315768 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
5600 315768 : {
5601 315768 : tree res_op0;
5602 315768 : res_op0 = captures[0];
5603 315768 : tree res_op1;
5604 315768 : res_op1 = inverse;
5605 315768 : tree _r;
5606 315768 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5607 315768 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
5608 315768 : return _r;
5609 : }
5610 732738 : next_after_fail1582:;
5611 : }
5612 : }
5613 : }
5614 : }
5615 : }
5616 : }
5617 732738 : break;
5618 : }
5619 114 : case COMPLEX_CST:
5620 114 : {
5621 114 : {
5622 114 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5623 114 : if (optimize
5624 : )
5625 : {
5626 106 : if (flag_reciprocal_math
5627 106 : && !real_zerop (captures[1])
5628 : )
5629 : {
5630 7 : {
5631 7 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5632 7 : if (tem
5633 : )
5634 : {
5635 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1583;
5636 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1583;
5637 7 : {
5638 7 : tree res_op0;
5639 7 : res_op0 = captures[0];
5640 7 : tree res_op1;
5641 7 : res_op1 = tem;
5642 7 : tree _r;
5643 7 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5644 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
5645 7 : return _r;
5646 : }
5647 107 : next_after_fail1583:;
5648 : }
5649 : }
5650 : }
5651 : else
5652 : {
5653 : if (COMPLEX_CST != COMPLEX_CST
5654 : )
5655 : {
5656 : {
5657 : tree inverse = exact_inverse (type, captures[1]);
5658 : if (inverse
5659 : )
5660 : {
5661 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1584;
5662 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1584;
5663 : {
5664 : tree res_op0;
5665 : res_op0 = captures[0];
5666 : tree res_op1;
5667 : res_op1 = inverse;
5668 : tree _r;
5669 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5670 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
5671 : return _r;
5672 : }
5673 : next_after_fail1584:;
5674 : }
5675 : }
5676 : }
5677 : }
5678 : }
5679 : }
5680 107 : break;
5681 : }
5682 45 : case VECTOR_CST:
5683 45 : {
5684 45 : {
5685 45 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5686 45 : if (optimize
5687 : )
5688 : {
5689 41 : if (flag_reciprocal_math
5690 41 : && !real_zerop (captures[1])
5691 : )
5692 : {
5693 4 : {
5694 4 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5695 4 : if (tem
5696 : )
5697 : {
5698 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1585;
5699 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1585;
5700 0 : {
5701 0 : tree res_op0;
5702 0 : res_op0 = captures[0];
5703 0 : tree res_op1;
5704 0 : res_op1 = tem;
5705 0 : tree _r;
5706 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5707 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
5708 0 : return _r;
5709 : }
5710 15 : next_after_fail1585:;
5711 : }
5712 : }
5713 : }
5714 : else
5715 : {
5716 37 : if (VECTOR_CST != COMPLEX_CST
5717 : )
5718 : {
5719 37 : {
5720 37 : tree inverse = exact_inverse (type, captures[1]);
5721 37 : if (inverse
5722 : )
5723 : {
5724 30 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1586;
5725 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1586;
5726 30 : {
5727 30 : tree res_op0;
5728 30 : res_op0 = captures[0];
5729 30 : tree res_op1;
5730 30 : res_op1 = inverse;
5731 30 : tree _r;
5732 30 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5733 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
5734 30 : return _r;
5735 : }
5736 15 : next_after_fail1586:;
5737 : }
5738 : }
5739 : }
5740 : }
5741 : }
5742 : }
5743 15 : break;
5744 : }
5745 5827776 : default:;
5746 : }
5747 5827776 : switch (TREE_CODE (_p0))
5748 : {
5749 0 : case VEC_COND_EXPR:
5750 0 : {
5751 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5752 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5753 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5754 0 : switch (TREE_CODE (_p1))
5755 : {
5756 0 : case VEC_COND_EXPR:
5757 0 : {
5758 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5759 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5760 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5761 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5762 : {
5763 0 : {
5764 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5765 0 : if (VECTOR_TYPE_P (type)
5766 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5767 : || types_match (type, TREE_TYPE (captures[2]))
5768 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5769 : || (optimize_vectors_before_lowering_p ()
5770 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5771 : )
5772 : {
5773 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1587;
5774 0 : {
5775 0 : tree res_op0;
5776 0 : res_op0 = captures[1];
5777 0 : tree res_op1;
5778 0 : {
5779 0 : tree _o1[2], _r1;
5780 0 : _o1[0] = captures[2];
5781 0 : _o1[1] = captures[5];
5782 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5783 0 : if (EXPR_P (_r1))
5784 0 : goto next_after_fail1587;
5785 0 : res_op1 = _r1;
5786 : }
5787 0 : tree res_op2;
5788 0 : {
5789 0 : tree _o1[2], _r1;
5790 0 : _o1[0] = captures[3];
5791 0 : _o1[1] = captures[6];
5792 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5793 0 : if (EXPR_P (_r1))
5794 0 : goto next_after_fail1587;
5795 0 : res_op2 = _r1;
5796 : }
5797 0 : tree _r;
5798 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5799 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
5800 0 : return _r;
5801 : }
5802 0 : next_after_fail1587:;
5803 : }
5804 : }
5805 : }
5806 : break;
5807 : }
5808 0 : default:;
5809 : }
5810 0 : {
5811 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5812 0 : if (VECTOR_TYPE_P (type)
5813 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5814 : || types_match (type, TREE_TYPE (captures[2]))
5815 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5816 : || (optimize_vectors_before_lowering_p ()
5817 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5818 : )
5819 : {
5820 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1588;
5821 0 : {
5822 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1588;
5823 0 : tree res_op0;
5824 0 : res_op0 = captures[1];
5825 0 : tree res_op1;
5826 0 : {
5827 0 : tree _o1[2], _r1;
5828 0 : _o1[0] = captures[2];
5829 0 : _o1[1] = unshare_expr (captures[4]);
5830 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5831 0 : if (EXPR_P (_r1))
5832 0 : goto next_after_fail1588;
5833 0 : res_op1 = _r1;
5834 : }
5835 0 : tree res_op2;
5836 0 : {
5837 0 : tree _o1[2], _r1;
5838 0 : _o1[0] = captures[3];
5839 0 : _o1[1] = captures[4];
5840 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5841 0 : if (EXPR_P (_r1))
5842 0 : goto next_after_fail1588;
5843 0 : res_op2 = _r1;
5844 : }
5845 0 : tree _r;
5846 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5847 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
5848 0 : return _r;
5849 : }
5850 0 : next_after_fail1588:;
5851 : }
5852 : }
5853 0 : break;
5854 : }
5855 5827776 : default:;
5856 : }
5857 5827776 : switch (TREE_CODE (_p1))
5858 : {
5859 0 : case VEC_COND_EXPR:
5860 0 : {
5861 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5862 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5863 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5864 0 : {
5865 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5866 0 : if (VECTOR_TYPE_P (type)
5867 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5868 : || types_match (type, TREE_TYPE (captures[3]))
5869 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5870 : || (optimize_vectors_before_lowering_p ()
5871 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5872 : )
5873 : {
5874 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1589;
5875 0 : {
5876 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1589;
5877 0 : tree res_op0;
5878 0 : res_op0 = captures[2];
5879 0 : tree res_op1;
5880 0 : {
5881 0 : tree _o1[2], _r1;
5882 0 : _o1[0] = unshare_expr (captures[0]);
5883 0 : _o1[1] = captures[3];
5884 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5885 0 : if (EXPR_P (_r1))
5886 0 : goto next_after_fail1589;
5887 0 : res_op1 = _r1;
5888 : }
5889 0 : tree res_op2;
5890 0 : {
5891 0 : tree _o1[2], _r1;
5892 0 : _o1[0] = captures[0];
5893 0 : _o1[1] = captures[4];
5894 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5895 0 : if (EXPR_P (_r1))
5896 0 : goto next_after_fail1589;
5897 0 : res_op2 = _r1;
5898 : }
5899 0 : tree _r;
5900 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5901 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
5902 0 : return _r;
5903 : }
5904 0 : next_after_fail1589:;
5905 : }
5906 : }
5907 0 : break;
5908 : }
5909 781950 : case CALL_EXPR:
5910 781950 : switch (get_call_combined_fn (_p1))
5911 : {
5912 20 : case CFN_BUILT_IN_SQRTF:
5913 20 : if (call_expr_nargs (_p1) == 1)
5914 : {
5915 20 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5916 20 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5917 : {
5918 0 : {
5919 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5920 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
5921 0 : if (res) return res;
5922 : }
5923 : }
5924 20 : switch (TREE_CODE (_q30))
5925 : {
5926 0 : case RDIV_EXPR:
5927 0 : {
5928 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5929 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5930 0 : {
5931 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
5932 0 : if (flag_unsafe_math_optimizations
5933 : )
5934 : {
5935 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1590;
5936 0 : {
5937 0 : tree res_op0;
5938 0 : res_op0 = captures[0];
5939 0 : tree res_op1;
5940 0 : {
5941 0 : tree _o1[1], _r1;
5942 0 : {
5943 0 : tree _o2[2], _r2;
5944 0 : _o2[0] = captures[4];
5945 0 : _o2[1] = captures[3];
5946 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5947 0 : _o1[0] = _r2;
5948 : }
5949 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
5950 0 : if (!_r1)
5951 0 : goto next_after_fail1590;
5952 0 : res_op1 = _r1;
5953 : }
5954 0 : tree _r;
5955 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5956 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
5957 0 : return _r;
5958 : }
5959 0 : next_after_fail1590:;
5960 : }
5961 : }
5962 0 : break;
5963 : }
5964 : default:;
5965 : }
5966 : }
5967 : break;
5968 0 : case CFN_BUILT_IN_SQRTL:
5969 0 : if (call_expr_nargs (_p1) == 1)
5970 : {
5971 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5972 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5973 : {
5974 0 : {
5975 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5976 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
5977 0 : if (res) return res;
5978 : }
5979 : }
5980 0 : switch (TREE_CODE (_q30))
5981 : {
5982 0 : case RDIV_EXPR:
5983 0 : {
5984 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5985 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5986 0 : {
5987 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
5988 0 : if (flag_unsafe_math_optimizations
5989 : )
5990 : {
5991 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1591;
5992 0 : {
5993 0 : tree res_op0;
5994 0 : res_op0 = captures[0];
5995 0 : tree res_op1;
5996 0 : {
5997 0 : tree _o1[1], _r1;
5998 0 : {
5999 0 : tree _o2[2], _r2;
6000 0 : _o2[0] = captures[4];
6001 0 : _o2[1] = captures[3];
6002 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6003 0 : _o1[0] = _r2;
6004 : }
6005 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6006 0 : if (!_r1)
6007 0 : goto next_after_fail1591;
6008 0 : res_op1 = _r1;
6009 : }
6010 0 : tree _r;
6011 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6012 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6013 0 : return _r;
6014 : }
6015 0 : next_after_fail1591:;
6016 : }
6017 : }
6018 0 : break;
6019 : }
6020 : default:;
6021 : }
6022 : }
6023 : break;
6024 27 : case CFN_BUILT_IN_EXP:
6025 27 : if (call_expr_nargs (_p1) == 1)
6026 : {
6027 27 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6028 27 : {
6029 27 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6030 27 : if (flag_unsafe_math_optimizations
6031 : )
6032 : {
6033 27 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1592;
6034 27 : {
6035 27 : tree res_op0;
6036 27 : res_op0 = captures[0];
6037 27 : tree res_op1;
6038 27 : {
6039 27 : tree _o1[1], _r1;
6040 27 : {
6041 27 : tree _o2[1], _r2;
6042 27 : _o2[0] = captures[2];
6043 27 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6044 27 : _o1[0] = _r2;
6045 : }
6046 27 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
6047 27 : if (!_r1)
6048 0 : goto next_after_fail1592;
6049 27 : res_op1 = _r1;
6050 : }
6051 27 : tree _r;
6052 27 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6053 27 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6054 27 : return _r;
6055 : }
6056 0 : next_after_fail1592:;
6057 : }
6058 : }
6059 : }
6060 : break;
6061 24 : case CFN_BUILT_IN_EXP10F:
6062 24 : if (call_expr_nargs (_p1) == 1)
6063 : {
6064 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6065 24 : {
6066 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6067 24 : if (flag_unsafe_math_optimizations
6068 : )
6069 : {
6070 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1593;
6071 24 : {
6072 24 : tree res_op0;
6073 24 : res_op0 = captures[0];
6074 24 : tree res_op1;
6075 24 : {
6076 24 : tree _o1[1], _r1;
6077 24 : {
6078 24 : tree _o2[1], _r2;
6079 24 : _o2[0] = captures[2];
6080 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6081 24 : _o1[0] = _r2;
6082 : }
6083 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6084 24 : if (!_r1)
6085 0 : goto next_after_fail1593;
6086 24 : res_op1 = _r1;
6087 : }
6088 24 : tree _r;
6089 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6090 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6091 24 : return _r;
6092 : }
6093 0 : next_after_fail1593:;
6094 : }
6095 : }
6096 : }
6097 : break;
6098 24 : case CFN_BUILT_IN_EXP10L:
6099 24 : if (call_expr_nargs (_p1) == 1)
6100 : {
6101 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6102 24 : {
6103 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6104 24 : if (flag_unsafe_math_optimizations
6105 : )
6106 : {
6107 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1594;
6108 24 : {
6109 24 : tree res_op0;
6110 24 : res_op0 = captures[0];
6111 24 : tree res_op1;
6112 24 : {
6113 24 : tree _o1[1], _r1;
6114 24 : {
6115 24 : tree _o2[1], _r2;
6116 24 : _o2[0] = captures[2];
6117 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6118 24 : _o1[0] = _r2;
6119 : }
6120 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6121 24 : if (!_r1)
6122 0 : goto next_after_fail1594;
6123 24 : res_op1 = _r1;
6124 : }
6125 24 : tree _r;
6126 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6127 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6128 24 : return _r;
6129 : }
6130 0 : next_after_fail1594:;
6131 : }
6132 : }
6133 : }
6134 : break;
6135 3 : case CFN_BUILT_IN_CBRT:
6136 3 : if (call_expr_nargs (_p1) == 1)
6137 : {
6138 3 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6139 3 : switch (TREE_CODE (_q30))
6140 : {
6141 2 : case RDIV_EXPR:
6142 2 : {
6143 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6144 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6145 2 : {
6146 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6147 2 : if (flag_unsafe_math_optimizations
6148 : )
6149 : {
6150 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1595;
6151 2 : {
6152 2 : tree res_op0;
6153 2 : res_op0 = captures[0];
6154 2 : tree res_op1;
6155 2 : {
6156 2 : tree _o1[1], _r1;
6157 2 : {
6158 2 : tree _o2[2], _r2;
6159 2 : _o2[0] = captures[4];
6160 2 : _o2[1] = captures[3];
6161 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6162 2 : _o1[0] = _r2;
6163 : }
6164 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6165 2 : if (!_r1)
6166 0 : goto next_after_fail1595;
6167 2 : res_op1 = _r1;
6168 : }
6169 2 : tree _r;
6170 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6171 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6172 2 : return _r;
6173 : }
6174 0 : next_after_fail1595:;
6175 : }
6176 : }
6177 0 : break;
6178 : }
6179 : default:;
6180 : }
6181 : }
6182 : break;
6183 24 : case CFN_BUILT_IN_EXP2:
6184 24 : if (call_expr_nargs (_p1) == 1)
6185 : {
6186 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6187 24 : {
6188 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6189 24 : if (flag_unsafe_math_optimizations
6190 : )
6191 : {
6192 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1596;
6193 24 : {
6194 24 : tree res_op0;
6195 24 : res_op0 = captures[0];
6196 24 : tree res_op1;
6197 24 : {
6198 24 : tree _o1[1], _r1;
6199 24 : {
6200 24 : tree _o2[1], _r2;
6201 24 : _o2[0] = captures[2];
6202 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6203 24 : _o1[0] = _r2;
6204 : }
6205 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6206 24 : if (!_r1)
6207 0 : goto next_after_fail1596;
6208 24 : res_op1 = _r1;
6209 : }
6210 24 : tree _r;
6211 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6212 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6213 24 : return _r;
6214 : }
6215 0 : next_after_fail1596:;
6216 : }
6217 : }
6218 : }
6219 : break;
6220 25 : case CFN_BUILT_IN_EXPF:
6221 25 : if (call_expr_nargs (_p1) == 1)
6222 : {
6223 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6224 25 : {
6225 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6226 25 : if (flag_unsafe_math_optimizations
6227 : )
6228 : {
6229 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1597;
6230 25 : {
6231 25 : tree res_op0;
6232 25 : res_op0 = captures[0];
6233 25 : tree res_op1;
6234 25 : {
6235 25 : tree _o1[1], _r1;
6236 25 : {
6237 25 : tree _o2[1], _r2;
6238 25 : _o2[0] = captures[2];
6239 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6240 25 : _o1[0] = _r2;
6241 : }
6242 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6243 25 : if (!_r1)
6244 0 : goto next_after_fail1597;
6245 25 : res_op1 = _r1;
6246 : }
6247 25 : tree _r;
6248 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6249 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6250 25 : return _r;
6251 : }
6252 0 : next_after_fail1597:;
6253 : }
6254 : }
6255 : }
6256 : break;
6257 25 : case CFN_BUILT_IN_EXPL:
6258 25 : if (call_expr_nargs (_p1) == 1)
6259 : {
6260 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6261 25 : {
6262 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6263 25 : if (flag_unsafe_math_optimizations
6264 : )
6265 : {
6266 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1598;
6267 25 : {
6268 25 : tree res_op0;
6269 25 : res_op0 = captures[0];
6270 25 : tree res_op1;
6271 25 : {
6272 25 : tree _o1[1], _r1;
6273 25 : {
6274 25 : tree _o2[1], _r2;
6275 25 : _o2[0] = captures[2];
6276 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6277 25 : _o1[0] = _r2;
6278 : }
6279 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6280 25 : if (!_r1)
6281 0 : goto next_after_fail1598;
6282 25 : res_op1 = _r1;
6283 : }
6284 25 : tree _r;
6285 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6286 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6287 25 : return _r;
6288 : }
6289 0 : next_after_fail1598:;
6290 : }
6291 : }
6292 : }
6293 : break;
6294 298 : case CFN_BUILT_IN_SQRT:
6295 298 : if (call_expr_nargs (_p1) == 1)
6296 : {
6297 298 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6298 298 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6299 : {
6300 0 : {
6301 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6302 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
6303 0 : if (res) return res;
6304 : }
6305 : }
6306 298 : switch (TREE_CODE (_q30))
6307 : {
6308 2 : case RDIV_EXPR:
6309 2 : {
6310 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6311 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6312 2 : {
6313 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6314 2 : if (flag_unsafe_math_optimizations
6315 : )
6316 : {
6317 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1599;
6318 2 : {
6319 2 : tree res_op0;
6320 2 : res_op0 = captures[0];
6321 2 : tree res_op1;
6322 2 : {
6323 2 : tree _o1[1], _r1;
6324 2 : {
6325 2 : tree _o2[2], _r2;
6326 2 : _o2[0] = captures[4];
6327 2 : _o2[1] = captures[3];
6328 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6329 2 : _o1[0] = _r2;
6330 : }
6331 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6332 2 : if (!_r1)
6333 0 : goto next_after_fail1599;
6334 2 : res_op1 = _r1;
6335 : }
6336 2 : tree _r;
6337 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6338 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6339 2 : return _r;
6340 : }
6341 0 : next_after_fail1599:;
6342 : }
6343 : }
6344 0 : break;
6345 : }
6346 : default:;
6347 : }
6348 : }
6349 : break;
6350 0 : case CFN_EXP:
6351 0 : if (call_expr_nargs (_p1) == 1)
6352 : {
6353 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6354 0 : {
6355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6356 0 : if (flag_unsafe_math_optimizations
6357 : )
6358 : {
6359 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1600;
6360 0 : {
6361 0 : tree res_op0;
6362 0 : res_op0 = captures[0];
6363 0 : tree res_op1;
6364 0 : {
6365 0 : tree _o1[1], _r1;
6366 0 : {
6367 0 : tree _o2[1], _r2;
6368 0 : _o2[0] = captures[2];
6369 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6370 0 : _o1[0] = _r2;
6371 : }
6372 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
6373 0 : if (!_r1)
6374 0 : goto next_after_fail1600;
6375 0 : res_op1 = _r1;
6376 : }
6377 0 : tree _r;
6378 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6379 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6380 0 : return _r;
6381 : }
6382 0 : next_after_fail1600:;
6383 : }
6384 : }
6385 : }
6386 : break;
6387 24 : case CFN_BUILT_IN_POW10F:
6388 24 : if (call_expr_nargs (_p1) == 1)
6389 : {
6390 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6391 24 : {
6392 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6393 24 : if (flag_unsafe_math_optimizations
6394 : )
6395 : {
6396 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1601;
6397 24 : {
6398 24 : tree res_op0;
6399 24 : res_op0 = captures[0];
6400 24 : tree res_op1;
6401 24 : {
6402 24 : tree _o1[1], _r1;
6403 24 : {
6404 24 : tree _o2[1], _r2;
6405 24 : _o2[0] = captures[2];
6406 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6407 24 : _o1[0] = _r2;
6408 : }
6409 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6410 24 : if (!_r1)
6411 24 : goto next_after_fail1601;
6412 0 : res_op1 = _r1;
6413 : }
6414 0 : tree _r;
6415 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6416 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6417 0 : return _r;
6418 : }
6419 24 : next_after_fail1601:;
6420 : }
6421 : }
6422 : }
6423 : break;
6424 24 : case CFN_BUILT_IN_POW10L:
6425 24 : if (call_expr_nargs (_p1) == 1)
6426 : {
6427 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6428 24 : {
6429 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6430 24 : if (flag_unsafe_math_optimizations
6431 : )
6432 : {
6433 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1602;
6434 24 : {
6435 24 : tree res_op0;
6436 24 : res_op0 = captures[0];
6437 24 : tree res_op1;
6438 24 : {
6439 24 : tree _o1[1], _r1;
6440 24 : {
6441 24 : tree _o2[1], _r2;
6442 24 : _o2[0] = captures[2];
6443 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6444 24 : _o1[0] = _r2;
6445 : }
6446 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6447 24 : if (!_r1)
6448 24 : goto next_after_fail1602;
6449 0 : res_op1 = _r1;
6450 : }
6451 0 : tree _r;
6452 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6453 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6454 0 : return _r;
6455 : }
6456 24 : next_after_fail1602:;
6457 : }
6458 : }
6459 : }
6460 : break;
6461 0 : case CFN_EXP2:
6462 0 : if (call_expr_nargs (_p1) == 1)
6463 : {
6464 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6465 0 : {
6466 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6467 0 : if (flag_unsafe_math_optimizations
6468 : )
6469 : {
6470 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1603;
6471 0 : {
6472 0 : tree res_op0;
6473 0 : res_op0 = captures[0];
6474 0 : tree res_op1;
6475 0 : {
6476 0 : tree _o1[1], _r1;
6477 0 : {
6478 0 : tree _o2[1], _r2;
6479 0 : _o2[0] = captures[2];
6480 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6481 0 : _o1[0] = _r2;
6482 : }
6483 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6484 0 : if (!_r1)
6485 0 : goto next_after_fail1603;
6486 0 : res_op1 = _r1;
6487 : }
6488 0 : tree _r;
6489 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6490 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6491 0 : return _r;
6492 : }
6493 0 : next_after_fail1603:;
6494 : }
6495 : }
6496 : }
6497 : break;
6498 0 : case CFN_SQRT:
6499 0 : if (call_expr_nargs (_p1) == 1)
6500 : {
6501 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6502 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6503 : {
6504 0 : {
6505 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6506 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_SQRT);
6507 0 : if (res) return res;
6508 : }
6509 : }
6510 0 : switch (TREE_CODE (_q30))
6511 : {
6512 0 : case RDIV_EXPR:
6513 0 : {
6514 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6515 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6516 0 : {
6517 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6518 0 : if (flag_unsafe_math_optimizations
6519 : )
6520 : {
6521 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1604;
6522 0 : {
6523 0 : tree res_op0;
6524 0 : res_op0 = captures[0];
6525 0 : tree res_op1;
6526 0 : {
6527 0 : tree _o1[1], _r1;
6528 0 : {
6529 0 : tree _o2[2], _r2;
6530 0 : _o2[0] = captures[4];
6531 0 : _o2[1] = captures[3];
6532 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6533 0 : _o1[0] = _r2;
6534 : }
6535 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6536 0 : if (!_r1)
6537 0 : goto next_after_fail1604;
6538 0 : res_op1 = _r1;
6539 : }
6540 0 : tree _r;
6541 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6542 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6543 0 : return _r;
6544 : }
6545 0 : next_after_fail1604:;
6546 : }
6547 : }
6548 0 : break;
6549 : }
6550 : default:;
6551 : }
6552 : }
6553 : break;
6554 0 : case CFN_EXP10:
6555 0 : if (call_expr_nargs (_p1) == 1)
6556 : {
6557 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6558 0 : {
6559 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6560 0 : if (flag_unsafe_math_optimizations
6561 : )
6562 : {
6563 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1605;
6564 0 : {
6565 0 : tree res_op0;
6566 0 : res_op0 = captures[0];
6567 0 : tree res_op1;
6568 0 : {
6569 0 : tree _o1[1], _r1;
6570 0 : {
6571 0 : tree _o2[1], _r2;
6572 0 : _o2[0] = captures[2];
6573 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6574 0 : _o1[0] = _r2;
6575 : }
6576 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6577 0 : if (!_r1)
6578 0 : goto next_after_fail1605;
6579 0 : res_op1 = _r1;
6580 : }
6581 0 : tree _r;
6582 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6583 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6584 0 : return _r;
6585 : }
6586 0 : next_after_fail1605:;
6587 : }
6588 : }
6589 : }
6590 : break;
6591 0 : case CFN_BUILT_IN_CBRTF:
6592 0 : if (call_expr_nargs (_p1) == 1)
6593 : {
6594 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6595 0 : switch (TREE_CODE (_q30))
6596 : {
6597 0 : case RDIV_EXPR:
6598 0 : {
6599 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6600 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6601 0 : {
6602 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6603 0 : if (flag_unsafe_math_optimizations
6604 : )
6605 : {
6606 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1606;
6607 0 : {
6608 0 : tree res_op0;
6609 0 : res_op0 = captures[0];
6610 0 : tree res_op1;
6611 0 : {
6612 0 : tree _o1[1], _r1;
6613 0 : {
6614 0 : tree _o2[2], _r2;
6615 0 : _o2[0] = captures[4];
6616 0 : _o2[1] = captures[3];
6617 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6618 0 : _o1[0] = _r2;
6619 : }
6620 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6621 0 : if (!_r1)
6622 0 : goto next_after_fail1606;
6623 0 : res_op1 = _r1;
6624 : }
6625 0 : tree _r;
6626 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6627 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6628 0 : return _r;
6629 : }
6630 0 : next_after_fail1606:;
6631 : }
6632 : }
6633 0 : break;
6634 : }
6635 : default:;
6636 : }
6637 : }
6638 : break;
6639 0 : case CFN_BUILT_IN_CBRTL:
6640 0 : if (call_expr_nargs (_p1) == 1)
6641 : {
6642 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6643 0 : switch (TREE_CODE (_q30))
6644 : {
6645 0 : case RDIV_EXPR:
6646 0 : {
6647 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6648 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6649 0 : {
6650 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6651 0 : if (flag_unsafe_math_optimizations
6652 : )
6653 : {
6654 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1607;
6655 0 : {
6656 0 : tree res_op0;
6657 0 : res_op0 = captures[0];
6658 0 : tree res_op1;
6659 0 : {
6660 0 : tree _o1[1], _r1;
6661 0 : {
6662 0 : tree _o2[2], _r2;
6663 0 : _o2[0] = captures[4];
6664 0 : _o2[1] = captures[3];
6665 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6666 0 : _o1[0] = _r2;
6667 : }
6668 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6669 0 : if (!_r1)
6670 0 : goto next_after_fail1607;
6671 0 : res_op1 = _r1;
6672 : }
6673 0 : tree _r;
6674 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6675 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
6676 0 : return _r;
6677 : }
6678 0 : next_after_fail1607:;
6679 : }
6680 : }
6681 0 : break;
6682 : }
6683 : default:;
6684 : }
6685 : }
6686 : break;
6687 24 : case CFN_BUILT_IN_EXP10:
6688 24 : if (call_expr_nargs (_p1) == 1)
6689 : {
6690 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6691 24 : {
6692 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6693 24 : if (flag_unsafe_math_optimizations
6694 : )
6695 : {
6696 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1608;
6697 24 : {
6698 24 : tree res_op0;
6699 24 : res_op0 = captures[0];
6700 24 : tree res_op1;
6701 24 : {
6702 24 : tree _o1[1], _r1;
6703 24 : {
6704 24 : tree _o2[1], _r2;
6705 24 : _o2[0] = captures[2];
6706 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6707 24 : _o1[0] = _r2;
6708 : }
6709 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6710 24 : if (!_r1)
6711 0 : goto next_after_fail1608;
6712 24 : res_op1 = _r1;
6713 : }
6714 24 : tree _r;
6715 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6716 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6717 24 : return _r;
6718 : }
6719 0 : next_after_fail1608:;
6720 : }
6721 : }
6722 : }
6723 : break;
6724 24 : case CFN_BUILT_IN_EXP2F:
6725 24 : if (call_expr_nargs (_p1) == 1)
6726 : {
6727 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6728 24 : {
6729 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6730 24 : if (flag_unsafe_math_optimizations
6731 : )
6732 : {
6733 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1609;
6734 24 : {
6735 24 : tree res_op0;
6736 24 : res_op0 = captures[0];
6737 24 : tree res_op1;
6738 24 : {
6739 24 : tree _o1[1], _r1;
6740 24 : {
6741 24 : tree _o2[1], _r2;
6742 24 : _o2[0] = captures[2];
6743 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6744 24 : _o1[0] = _r2;
6745 : }
6746 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6747 24 : if (!_r1)
6748 0 : goto next_after_fail1609;
6749 24 : res_op1 = _r1;
6750 : }
6751 24 : tree _r;
6752 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6753 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6754 24 : return _r;
6755 : }
6756 0 : next_after_fail1609:;
6757 : }
6758 : }
6759 : }
6760 : break;
6761 24 : case CFN_BUILT_IN_EXP2L:
6762 24 : if (call_expr_nargs (_p1) == 1)
6763 : {
6764 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6765 24 : {
6766 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6767 24 : if (flag_unsafe_math_optimizations
6768 : )
6769 : {
6770 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1610;
6771 24 : {
6772 24 : tree res_op0;
6773 24 : res_op0 = captures[0];
6774 24 : tree res_op1;
6775 24 : {
6776 24 : tree _o1[1], _r1;
6777 24 : {
6778 24 : tree _o2[1], _r2;
6779 24 : _o2[0] = captures[2];
6780 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6781 24 : _o1[0] = _r2;
6782 : }
6783 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6784 24 : if (!_r1)
6785 0 : goto next_after_fail1610;
6786 24 : res_op1 = _r1;
6787 : }
6788 24 : tree _r;
6789 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6790 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6791 24 : return _r;
6792 : }
6793 0 : next_after_fail1610:;
6794 : }
6795 : }
6796 : }
6797 : break;
6798 24 : case CFN_BUILT_IN_POW10:
6799 24 : if (call_expr_nargs (_p1) == 1)
6800 : {
6801 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6802 24 : {
6803 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6804 24 : if (flag_unsafe_math_optimizations
6805 : )
6806 : {
6807 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1611;
6808 24 : {
6809 24 : tree res_op0;
6810 24 : res_op0 = captures[0];
6811 24 : tree res_op1;
6812 24 : {
6813 24 : tree _o1[1], _r1;
6814 24 : {
6815 24 : tree _o2[1], _r2;
6816 24 : _o2[0] = captures[2];
6817 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6818 24 : _o1[0] = _r2;
6819 : }
6820 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6821 24 : if (!_r1)
6822 24 : goto next_after_fail1611;
6823 0 : res_op1 = _r1;
6824 : }
6825 0 : tree _r;
6826 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6827 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
6828 0 : return _r;
6829 : }
6830 24 : next_after_fail1611:;
6831 : }
6832 : }
6833 : }
6834 : break;
6835 : default:;
6836 : }
6837 : break;
6838 5827551 : default:;
6839 : }
6840 5827551 : switch (TREE_CODE (_p0))
6841 : {
6842 187915 : case CALL_EXPR:
6843 187915 : switch (get_call_combined_fn (_p0))
6844 : {
6845 1 : case CFN_BUILT_IN_SINHF:
6846 1 : if (call_expr_nargs (_p0) == 1)
6847 : {
6848 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6849 1 : switch (TREE_CODE (_p1))
6850 : {
6851 1 : case CALL_EXPR:
6852 1 : switch (get_call_combined_fn (_p1))
6853 : {
6854 1 : case CFN_BUILT_IN_COSHF:
6855 1 : if (call_expr_nargs (_p1) == 1)
6856 : {
6857 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6858 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6859 : {
6860 1 : {
6861 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6862 1 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF);
6863 1 : if (res) return res;
6864 : }
6865 : }
6866 : }
6867 : break;
6868 : default:;
6869 : }
6870 : break;
6871 : default:;
6872 : }
6873 : }
6874 : break;
6875 1 : case CFN_BUILT_IN_SINHL:
6876 1 : if (call_expr_nargs (_p0) == 1)
6877 : {
6878 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6879 1 : switch (TREE_CODE (_p1))
6880 : {
6881 1 : case CALL_EXPR:
6882 1 : switch (get_call_combined_fn (_p1))
6883 : {
6884 1 : case CFN_BUILT_IN_COSHL:
6885 1 : if (call_expr_nargs (_p1) == 1)
6886 : {
6887 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6888 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6889 : {
6890 1 : {
6891 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6892 1 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL);
6893 1 : if (res) return res;
6894 : }
6895 : }
6896 : }
6897 : break;
6898 : default:;
6899 : }
6900 : break;
6901 : default:;
6902 : }
6903 : }
6904 : break;
6905 1 : case CFN_BUILT_IN_TANHF:
6906 1 : if (call_expr_nargs (_p0) == 1)
6907 : {
6908 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6909 1 : switch (TREE_CODE (_p1))
6910 : {
6911 1 : case CALL_EXPR:
6912 1 : switch (get_call_combined_fn (_p1))
6913 : {
6914 1 : case CFN_BUILT_IN_SINHF:
6915 1 : if (call_expr_nargs (_p1) == 1)
6916 : {
6917 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6918 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6919 : {
6920 1 : {
6921 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6922 1 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF);
6923 1 : if (res) return res;
6924 : }
6925 : }
6926 : }
6927 : break;
6928 : default:;
6929 : }
6930 : break;
6931 : default:;
6932 : }
6933 : }
6934 : break;
6935 1 : case CFN_BUILT_IN_TANHL:
6936 1 : if (call_expr_nargs (_p0) == 1)
6937 : {
6938 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6939 1 : switch (TREE_CODE (_p1))
6940 : {
6941 1 : case CALL_EXPR:
6942 1 : switch (get_call_combined_fn (_p1))
6943 : {
6944 1 : case CFN_BUILT_IN_SINHL:
6945 1 : if (call_expr_nargs (_p1) == 1)
6946 : {
6947 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6948 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6949 : {
6950 1 : {
6951 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6952 1 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL);
6953 1 : if (res) return res;
6954 : }
6955 : }
6956 : }
6957 : break;
6958 : default:;
6959 : }
6960 : break;
6961 : default:;
6962 : }
6963 : }
6964 : break;
6965 2 : case CFN_BUILT_IN_COS:
6966 2 : if (call_expr_nargs (_p0) == 1)
6967 : {
6968 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6969 2 : switch (TREE_CODE (_p1))
6970 : {
6971 2 : case CALL_EXPR:
6972 2 : switch (get_call_combined_fn (_p1))
6973 : {
6974 2 : case CFN_BUILT_IN_SIN:
6975 2 : if (call_expr_nargs (_p1) == 1)
6976 : {
6977 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6978 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6979 : {
6980 2 : {
6981 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6982 2 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
6983 2 : if (res) return res;
6984 : }
6985 : }
6986 : }
6987 : break;
6988 : default:;
6989 : }
6990 : break;
6991 : default:;
6992 : }
6993 : }
6994 : break;
6995 4 : case CFN_BUILT_IN_POW:
6996 4 : if (call_expr_nargs (_p0) == 2)
6997 : {
6998 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6999 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7000 4 : switch (TREE_CODE (_q21))
7001 : {
7002 4 : case REAL_CST:
7003 4 : {
7004 4 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7005 : {
7006 4 : {
7007 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7008 4 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
7009 4 : if (res) return res;
7010 : }
7011 : }
7012 : break;
7013 : }
7014 : default:;
7015 : }
7016 : }
7017 : break;
7018 86 : case CFN_BUILT_IN_SIN:
7019 86 : if (call_expr_nargs (_p0) == 1)
7020 : {
7021 86 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7022 86 : switch (TREE_CODE (_p1))
7023 : {
7024 4 : case CALL_EXPR:
7025 4 : switch (get_call_combined_fn (_p1))
7026 : {
7027 2 : case CFN_BUILT_IN_COS:
7028 2 : if (call_expr_nargs (_p1) == 1)
7029 : {
7030 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7031 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7032 : {
7033 2 : {
7034 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7035 2 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
7036 2 : if (res) return res;
7037 : }
7038 : }
7039 : }
7040 : break;
7041 2 : case CFN_BUILT_IN_TAN:
7042 2 : if (call_expr_nargs (_p1) == 1)
7043 : {
7044 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7045 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7046 : {
7047 2 : {
7048 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7049 2 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
7050 2 : if (res) return res;
7051 : }
7052 : }
7053 : }
7054 : break;
7055 : default:;
7056 : }
7057 : break;
7058 : default:;
7059 : }
7060 : }
7061 : break;
7062 2 : case CFN_BUILT_IN_TAN:
7063 2 : if (call_expr_nargs (_p0) == 1)
7064 : {
7065 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7066 2 : switch (TREE_CODE (_p1))
7067 : {
7068 2 : case CALL_EXPR:
7069 2 : switch (get_call_combined_fn (_p1))
7070 : {
7071 2 : case CFN_BUILT_IN_SIN:
7072 2 : if (call_expr_nargs (_p1) == 1)
7073 : {
7074 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7075 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7076 : {
7077 2 : {
7078 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7079 2 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
7080 2 : if (res) return res;
7081 : }
7082 : }
7083 : }
7084 : break;
7085 : default:;
7086 : }
7087 : break;
7088 : default:;
7089 : }
7090 : }
7091 : break;
7092 2 : case CFN_BUILT_IN_COSF:
7093 2 : if (call_expr_nargs (_p0) == 1)
7094 : {
7095 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7096 2 : switch (TREE_CODE (_p1))
7097 : {
7098 2 : case CALL_EXPR:
7099 2 : switch (get_call_combined_fn (_p1))
7100 : {
7101 2 : case CFN_BUILT_IN_SINF:
7102 2 : if (call_expr_nargs (_p1) == 1)
7103 : {
7104 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7105 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7106 : {
7107 2 : {
7108 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7109 2 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
7110 2 : if (res) return res;
7111 : }
7112 : }
7113 : }
7114 : break;
7115 : default:;
7116 : }
7117 : break;
7118 : default:;
7119 : }
7120 : }
7121 : break;
7122 2 : case CFN_BUILT_IN_COSL:
7123 2 : if (call_expr_nargs (_p0) == 1)
7124 : {
7125 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7126 2 : switch (TREE_CODE (_p1))
7127 : {
7128 2 : case CALL_EXPR:
7129 2 : switch (get_call_combined_fn (_p1))
7130 : {
7131 2 : case CFN_BUILT_IN_SINL:
7132 2 : if (call_expr_nargs (_p1) == 1)
7133 : {
7134 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7135 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7136 : {
7137 2 : {
7138 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7139 2 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
7140 2 : if (res) return res;
7141 : }
7142 : }
7143 : }
7144 : break;
7145 : default:;
7146 : }
7147 : break;
7148 : default:;
7149 : }
7150 : }
7151 : break;
7152 1 : case CFN_BUILT_IN_POWF:
7153 1 : if (call_expr_nargs (_p0) == 2)
7154 : {
7155 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7156 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7157 1 : switch (TREE_CODE (_q21))
7158 : {
7159 1 : case REAL_CST:
7160 1 : {
7161 1 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7162 : {
7163 0 : {
7164 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7165 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7166 0 : if (res) return res;
7167 : }
7168 : }
7169 : break;
7170 : }
7171 : default:;
7172 : }
7173 : }
7174 : break;
7175 0 : case CFN_BUILT_IN_POWL:
7176 0 : if (call_expr_nargs (_p0) == 2)
7177 : {
7178 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7179 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7180 0 : switch (TREE_CODE (_q21))
7181 : {
7182 0 : case REAL_CST:
7183 0 : {
7184 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7185 : {
7186 0 : {
7187 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7188 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7189 0 : if (res) return res;
7190 : }
7191 : }
7192 : break;
7193 : }
7194 : default:;
7195 : }
7196 : }
7197 : break;
7198 4 : case CFN_BUILT_IN_SINF:
7199 4 : if (call_expr_nargs (_p0) == 1)
7200 : {
7201 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7202 4 : switch (TREE_CODE (_p1))
7203 : {
7204 4 : case CALL_EXPR:
7205 4 : switch (get_call_combined_fn (_p1))
7206 : {
7207 2 : case CFN_BUILT_IN_COSF:
7208 2 : if (call_expr_nargs (_p1) == 1)
7209 : {
7210 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7211 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7212 : {
7213 2 : {
7214 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7215 2 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
7216 2 : if (res) return res;
7217 : }
7218 : }
7219 : }
7220 : break;
7221 2 : case CFN_BUILT_IN_TANF:
7222 2 : if (call_expr_nargs (_p1) == 1)
7223 : {
7224 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7225 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7226 : {
7227 2 : {
7228 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7229 2 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
7230 2 : if (res) return res;
7231 : }
7232 : }
7233 : }
7234 : break;
7235 : default:;
7236 : }
7237 : break;
7238 : default:;
7239 : }
7240 : }
7241 : break;
7242 135 : case CFN_BUILT_IN_SINH:
7243 135 : if (call_expr_nargs (_p0) == 1)
7244 : {
7245 135 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7246 135 : switch (TREE_CODE (_p1))
7247 : {
7248 3 : case CALL_EXPR:
7249 3 : switch (get_call_combined_fn (_p1))
7250 : {
7251 3 : case CFN_BUILT_IN_COSH:
7252 3 : if (call_expr_nargs (_p1) == 1)
7253 : {
7254 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7255 3 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7256 : {
7257 3 : {
7258 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7259 3 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH);
7260 3 : if (res) return res;
7261 : }
7262 : }
7263 : }
7264 : break;
7265 : default:;
7266 : }
7267 : break;
7268 : default:;
7269 : }
7270 : }
7271 : break;
7272 4 : case CFN_BUILT_IN_SINL:
7273 4 : if (call_expr_nargs (_p0) == 1)
7274 : {
7275 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7276 4 : switch (TREE_CODE (_p1))
7277 : {
7278 4 : case CALL_EXPR:
7279 4 : switch (get_call_combined_fn (_p1))
7280 : {
7281 2 : case CFN_BUILT_IN_COSL:
7282 2 : if (call_expr_nargs (_p1) == 1)
7283 : {
7284 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7285 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7286 : {
7287 2 : {
7288 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7289 2 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
7290 2 : if (res) return res;
7291 : }
7292 : }
7293 : }
7294 : break;
7295 2 : case CFN_BUILT_IN_TANL:
7296 2 : if (call_expr_nargs (_p1) == 1)
7297 : {
7298 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7299 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7300 : {
7301 2 : {
7302 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7303 2 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
7304 2 : if (res) return res;
7305 : }
7306 : }
7307 : }
7308 : break;
7309 : default:;
7310 : }
7311 : break;
7312 : default:;
7313 : }
7314 : }
7315 : break;
7316 2 : case CFN_BUILT_IN_TANF:
7317 2 : if (call_expr_nargs (_p0) == 1)
7318 : {
7319 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7320 2 : switch (TREE_CODE (_p1))
7321 : {
7322 2 : case CALL_EXPR:
7323 2 : switch (get_call_combined_fn (_p1))
7324 : {
7325 2 : case CFN_BUILT_IN_SINF:
7326 2 : if (call_expr_nargs (_p1) == 1)
7327 : {
7328 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7329 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7330 : {
7331 2 : {
7332 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7333 2 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
7334 2 : if (res) return res;
7335 : }
7336 : }
7337 : }
7338 : break;
7339 : default:;
7340 : }
7341 : break;
7342 : default:;
7343 : }
7344 : }
7345 : break;
7346 1 : case CFN_BUILT_IN_TANH:
7347 1 : if (call_expr_nargs (_p0) == 1)
7348 : {
7349 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7350 1 : switch (TREE_CODE (_p1))
7351 : {
7352 1 : case CALL_EXPR:
7353 1 : switch (get_call_combined_fn (_p1))
7354 : {
7355 1 : case CFN_BUILT_IN_SINH:
7356 1 : if (call_expr_nargs (_p1) == 1)
7357 : {
7358 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7359 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7360 : {
7361 1 : {
7362 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7363 1 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH);
7364 1 : if (res) return res;
7365 : }
7366 : }
7367 : }
7368 : break;
7369 : default:;
7370 : }
7371 : break;
7372 : default:;
7373 : }
7374 : }
7375 : break;
7376 2 : case CFN_BUILT_IN_TANL:
7377 2 : if (call_expr_nargs (_p0) == 1)
7378 : {
7379 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7380 2 : switch (TREE_CODE (_p1))
7381 : {
7382 2 : case CALL_EXPR:
7383 2 : switch (get_call_combined_fn (_p1))
7384 : {
7385 2 : case CFN_BUILT_IN_SINL:
7386 2 : if (call_expr_nargs (_p1) == 1)
7387 : {
7388 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7389 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7390 : {
7391 2 : {
7392 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7393 2 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
7394 2 : if (res) return res;
7395 : }
7396 : }
7397 : }
7398 : break;
7399 : default:;
7400 : }
7401 : break;
7402 : default:;
7403 : }
7404 : }
7405 : break;
7406 0 : case CFN_COS:
7407 0 : if (call_expr_nargs (_p0) == 1)
7408 : {
7409 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7410 0 : switch (TREE_CODE (_p1))
7411 : {
7412 0 : case CALL_EXPR:
7413 0 : switch (get_call_combined_fn (_p1))
7414 : {
7415 0 : case CFN_SIN:
7416 0 : if (call_expr_nargs (_p1) == 1)
7417 : {
7418 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7419 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7420 : {
7421 0 : {
7422 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7423 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_COS, CFN_SIN, CFN_TAN);
7424 0 : if (res) return res;
7425 : }
7426 : }
7427 : }
7428 : break;
7429 : default:;
7430 : }
7431 : break;
7432 : default:;
7433 : }
7434 : }
7435 : break;
7436 0 : case CFN_POW:
7437 0 : if (call_expr_nargs (_p0) == 2)
7438 : {
7439 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7440 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7441 0 : switch (TREE_CODE (_q21))
7442 : {
7443 0 : case REAL_CST:
7444 0 : {
7445 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7446 : {
7447 0 : {
7448 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7449 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_POW);
7450 0 : if (res) return res;
7451 : }
7452 : }
7453 : break;
7454 : }
7455 : default:;
7456 : }
7457 : }
7458 : break;
7459 0 : case CFN_SIN:
7460 0 : if (call_expr_nargs (_p0) == 1)
7461 : {
7462 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7463 0 : switch (TREE_CODE (_p1))
7464 : {
7465 0 : case CALL_EXPR:
7466 0 : switch (get_call_combined_fn (_p1))
7467 : {
7468 0 : case CFN_COS:
7469 0 : if (call_expr_nargs (_p1) == 1)
7470 : {
7471 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7472 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7473 : {
7474 0 : {
7475 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7476 0 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_COS, CFN_TAN);
7477 0 : if (res) return res;
7478 : }
7479 : }
7480 : }
7481 : break;
7482 0 : case CFN_TAN:
7483 0 : if (call_expr_nargs (_p1) == 1)
7484 : {
7485 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7486 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7487 : {
7488 0 : {
7489 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7490 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_TAN, CFN_COS);
7491 0 : if (res) return res;
7492 : }
7493 : }
7494 : }
7495 : break;
7496 : default:;
7497 : }
7498 : break;
7499 : default:;
7500 : }
7501 : }
7502 : break;
7503 0 : case CFN_TAN:
7504 0 : if (call_expr_nargs (_p0) == 1)
7505 : {
7506 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7507 0 : switch (TREE_CODE (_p1))
7508 : {
7509 0 : case CALL_EXPR:
7510 0 : switch (get_call_combined_fn (_p1))
7511 : {
7512 0 : case CFN_SIN:
7513 0 : if (call_expr_nargs (_p1) == 1)
7514 : {
7515 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7516 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7517 : {
7518 0 : {
7519 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7520 0 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_SIN, CFN_COS);
7521 0 : if (res) return res;
7522 : }
7523 : }
7524 : }
7525 : break;
7526 : default:;
7527 : }
7528 : break;
7529 : default:;
7530 : }
7531 : }
7532 : break;
7533 0 : case CFN_SINH:
7534 0 : if (call_expr_nargs (_p0) == 1)
7535 : {
7536 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7537 0 : switch (TREE_CODE (_p1))
7538 : {
7539 0 : case CALL_EXPR:
7540 0 : switch (get_call_combined_fn (_p1))
7541 : {
7542 0 : case CFN_COSH:
7543 0 : if (call_expr_nargs (_p1) == 1)
7544 : {
7545 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7546 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7547 : {
7548 0 : {
7549 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7550 0 : tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_SINH, CFN_COSH, CFN_TANH);
7551 0 : if (res) return res;
7552 : }
7553 : }
7554 : }
7555 : break;
7556 : default:;
7557 : }
7558 : break;
7559 : default:;
7560 : }
7561 : }
7562 : break;
7563 0 : case CFN_TANH:
7564 0 : if (call_expr_nargs (_p0) == 1)
7565 : {
7566 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7567 0 : switch (TREE_CODE (_p1))
7568 : {
7569 0 : case CALL_EXPR:
7570 0 : switch (get_call_combined_fn (_p1))
7571 : {
7572 0 : case CFN_SINH:
7573 0 : if (call_expr_nargs (_p1) == 1)
7574 : {
7575 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7576 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7577 : {
7578 0 : {
7579 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7580 0 : tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_TANH, CFN_SINH, CFN_COSH);
7581 0 : if (res) return res;
7582 : }
7583 : }
7584 : }
7585 : break;
7586 : default:;
7587 : }
7588 : break;
7589 : default:;
7590 : }
7591 : }
7592 : break;
7593 : default:;
7594 : }
7595 : break;
7596 5827517 : default:;
7597 : }
7598 5827517 : switch (TREE_CODE (_p1))
7599 : {
7600 781695 : case CALL_EXPR:
7601 781695 : switch (get_call_combined_fn (_p1))
7602 : {
7603 22 : case CFN_BUILT_IN_POW:
7604 22 : if (call_expr_nargs (_p1) == 2)
7605 : {
7606 22 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7607 22 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7608 22 : {
7609 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7610 22 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
7611 22 : if (res) return res;
7612 : }
7613 : }
7614 : break;
7615 2 : case CFN_BUILT_IN_POWF:
7616 2 : if (call_expr_nargs (_p1) == 2)
7617 : {
7618 2 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7619 2 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7620 2 : {
7621 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7622 2 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7623 2 : if (res) return res;
7624 : }
7625 : }
7626 : break;
7627 0 : case CFN_BUILT_IN_POWL:
7628 0 : if (call_expr_nargs (_p1) == 2)
7629 : {
7630 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7631 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7632 0 : {
7633 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7634 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7635 0 : if (res) return res;
7636 : }
7637 : }
7638 : break;
7639 0 : case CFN_POW:
7640 0 : if (call_expr_nargs (_p1) == 2)
7641 : {
7642 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7643 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7644 0 : {
7645 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7646 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_POW);
7647 0 : if (res) return res;
7648 : }
7649 : }
7650 : break;
7651 : default:;
7652 : }
7653 : break;
7654 : default:;
7655 : }
7656 : return NULL_TREE;
7657 : }
7658 :
7659 : tree
7660 7249348 : generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7661 : {
7662 7249348 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7663 7249348 : switch (TREE_CODE (_p0))
7664 : {
7665 2001 : case RDIV_EXPR:
7666 2001 : {
7667 2001 : tree _q20 = TREE_OPERAND (_p0, 0);
7668 2001 : tree _q21 = TREE_OPERAND (_p0, 1);
7669 2001 : switch (TREE_CODE (_q20))
7670 : {
7671 46 : case REAL_CST:
7672 46 : {
7673 46 : if (real_zerop (_p1))
7674 : {
7675 2 : {
7676 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7677 2 : tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
7678 2 : if (res) return res;
7679 : }
7680 : }
7681 : break;
7682 : }
7683 : default:;
7684 : }
7685 : break;
7686 : }
7687 1209 : case TRUNC_MOD_EXPR:
7688 1209 : {
7689 1209 : tree _q20 = TREE_OPERAND (_p0, 0);
7690 1209 : tree _q21 = TREE_OPERAND (_p0, 1);
7691 1209 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7692 : {
7693 28 : {
7694 28 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7695 28 : tree res = generic_simplify_371 (loc, type, _p0, _p1, captures, GE_EXPR);
7696 28 : if (res) return res;
7697 : }
7698 : }
7699 : break;
7700 : }
7701 31484 : case MULT_EXPR:
7702 31484 : {
7703 31484 : tree _q20 = TREE_OPERAND (_p0, 0);
7704 31484 : tree _q21 = TREE_OPERAND (_p0, 1);
7705 31484 : switch (TREE_CODE (_p1))
7706 : {
7707 6923 : case MULT_EXPR:
7708 6923 : {
7709 6923 : tree _q50 = TREE_OPERAND (_p1, 0);
7710 6923 : tree _q51 = TREE_OPERAND (_p1, 1);
7711 6923 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7712 : {
7713 4727 : {
7714 4727 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7715 4727 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GE_EXPR);
7716 4727 : if (res) return res;
7717 : }
7718 : }
7719 2744 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7720 : {
7721 0 : {
7722 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7723 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GE_EXPR);
7724 0 : if (res) return res;
7725 : }
7726 : }
7727 2744 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7728 : {
7729 0 : {
7730 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7731 0 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GE_EXPR);
7732 0 : if (res) return res;
7733 : }
7734 : }
7735 2744 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7736 : {
7737 1 : {
7738 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7739 1 : tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, GE_EXPR);
7740 1 : if (res) return res;
7741 : }
7742 : }
7743 : break;
7744 : }
7745 : default:;
7746 : }
7747 : break;
7748 : }
7749 1250913 : CASE_CONVERT:
7750 1250913 : {
7751 1250913 : tree _q20 = TREE_OPERAND (_p0, 0);
7752 1250913 : switch (TREE_CODE (_q20))
7753 : {
7754 157 : case EXACT_DIV_EXPR:
7755 157 : {
7756 157 : tree _q30 = TREE_OPERAND (_q20, 0);
7757 157 : tree _q31 = TREE_OPERAND (_q20, 1);
7758 157 : switch (TREE_CODE (_q31))
7759 : {
7760 157 : case INTEGER_CST:
7761 157 : {
7762 157 : switch (TREE_CODE (_p1))
7763 : {
7764 43 : CASE_CONVERT:
7765 43 : {
7766 43 : tree _q60 = TREE_OPERAND (_p1, 0);
7767 43 : switch (TREE_CODE (_q60))
7768 : {
7769 0 : case EXACT_DIV_EXPR:
7770 0 : {
7771 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7772 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7773 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7774 : {
7775 0 : {
7776 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7777 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GE_EXPR);
7778 0 : if (res) return res;
7779 : }
7780 : }
7781 : break;
7782 : }
7783 : default:;
7784 : }
7785 : break;
7786 : }
7787 : default:;
7788 : }
7789 : break;
7790 : }
7791 : default:;
7792 : }
7793 : break;
7794 : }
7795 : default:;
7796 : }
7797 : break;
7798 : }
7799 7972 : case EXACT_DIV_EXPR:
7800 7972 : {
7801 7972 : tree _q20 = TREE_OPERAND (_p0, 0);
7802 7972 : tree _q21 = TREE_OPERAND (_p0, 1);
7803 7972 : switch (TREE_CODE (_q21))
7804 : {
7805 7972 : case INTEGER_CST:
7806 7972 : {
7807 7972 : switch (TREE_CODE (_p1))
7808 : {
7809 0 : case EXACT_DIV_EXPR:
7810 0 : {
7811 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7812 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7813 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7814 : {
7815 0 : {
7816 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7817 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GE_EXPR);
7818 0 : if (res) return res;
7819 : }
7820 : }
7821 : break;
7822 : }
7823 : default:;
7824 : }
7825 : break;
7826 : }
7827 : default:;
7828 : }
7829 : break;
7830 : }
7831 41817 : case TRUNC_DIV_EXPR:
7832 41817 : {
7833 41817 : tree _q20 = TREE_OPERAND (_p0, 0);
7834 41817 : tree _q21 = TREE_OPERAND (_p0, 1);
7835 41817 : switch (TREE_CODE (_q21))
7836 : {
7837 41311 : case INTEGER_CST:
7838 41311 : {
7839 41311 : switch (TREE_CODE (_p1))
7840 : {
7841 40412 : case INTEGER_CST:
7842 40412 : {
7843 40412 : {
7844 40412 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7845 40412 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, GE_EXPR);
7846 40412 : if (res) return res;
7847 : }
7848 0 : break;
7849 : }
7850 : default:;
7851 : }
7852 : break;
7853 : }
7854 : default:;
7855 : }
7856 : break;
7857 : }
7858 801247 : case PLUS_EXPR:
7859 801247 : {
7860 801247 : tree _q20 = TREE_OPERAND (_p0, 0);
7861 801247 : tree _q21 = TREE_OPERAND (_p0, 1);
7862 801247 : switch (TREE_CODE (_p1))
7863 : {
7864 52275 : case PLUS_EXPR:
7865 52275 : {
7866 52275 : tree _q50 = TREE_OPERAND (_p1, 0);
7867 52275 : tree _q51 = TREE_OPERAND (_p1, 1);
7868 52275 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7869 : {
7870 1426 : {
7871 1426 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7872 1426 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GE_EXPR);
7873 1426 : if (res) return res;
7874 : }
7875 : }
7876 52275 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7877 : {
7878 17 : {
7879 17 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7880 17 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GE_EXPR);
7881 17 : if (res) return res;
7882 : }
7883 : }
7884 52275 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7885 : {
7886 16 : {
7887 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7888 16 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GE_EXPR);
7889 16 : if (res) return res;
7890 : }
7891 : }
7892 52275 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7893 : {
7894 961 : {
7895 961 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7896 961 : tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, GE_EXPR);
7897 961 : if (res) return res;
7898 : }
7899 : }
7900 : break;
7901 : }
7902 801199 : default:;
7903 : }
7904 801199 : switch (TREE_CODE (_q21))
7905 : {
7906 690655 : case INTEGER_CST:
7907 690655 : {
7908 690655 : switch (TREE_CODE (_p1))
7909 : {
7910 15161 : case PLUS_EXPR:
7911 15161 : {
7912 15161 : tree _q50 = TREE_OPERAND (_p1, 0);
7913 15161 : tree _q51 = TREE_OPERAND (_p1, 1);
7914 15161 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7915 : {
7916 1422 : {
7917 1422 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7918 1422 : tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, GE_EXPR);
7919 1422 : if (res) return res;
7920 : }
7921 : }
7922 : break;
7923 : }
7924 : default:;
7925 : }
7926 : break;
7927 : }
7928 801199 : default:;
7929 : }
7930 801199 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7931 : {
7932 53968 : {
7933 53968 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7934 53968 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GE_EXPR);
7935 53968 : if (res) return res;
7936 : }
7937 : }
7938 768177 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7939 : {
7940 24588 : {
7941 24588 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7942 24588 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GE_EXPR);
7943 24588 : if (res) return res;
7944 : }
7945 : }
7946 : break;
7947 : }
7948 122915 : case MINUS_EXPR:
7949 122915 : {
7950 122915 : tree _q20 = TREE_OPERAND (_p0, 0);
7951 122915 : tree _q21 = TREE_OPERAND (_p0, 1);
7952 122915 : switch (TREE_CODE (_p1))
7953 : {
7954 3752 : case MINUS_EXPR:
7955 3752 : {
7956 3752 : tree _q50 = TREE_OPERAND (_p1, 0);
7957 3752 : tree _q51 = TREE_OPERAND (_p1, 1);
7958 3752 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7959 : {
7960 14 : {
7961 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7962 14 : tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
7963 14 : if (res) return res;
7964 : }
7965 : }
7966 3752 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7967 : {
7968 22 : {
7969 22 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7970 22 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
7971 22 : if (res) return res;
7972 : }
7973 : }
7974 : break;
7975 : }
7976 : default:;
7977 : }
7978 : break;
7979 : }
7980 2403 : case POINTER_DIFF_EXPR:
7981 2403 : {
7982 2403 : tree _q20 = TREE_OPERAND (_p0, 0);
7983 2403 : tree _q21 = TREE_OPERAND (_p0, 1);
7984 2403 : switch (TREE_CODE (_p1))
7985 : {
7986 32 : case POINTER_DIFF_EXPR:
7987 32 : {
7988 32 : tree _q50 = TREE_OPERAND (_p1, 0);
7989 32 : tree _q51 = TREE_OPERAND (_p1, 1);
7990 32 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7991 : {
7992 0 : {
7993 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7994 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GE_EXPR);
7995 0 : if (res) return res;
7996 : }
7997 : }
7998 32 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7999 : {
8000 0 : {
8001 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
8002 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GE_EXPR);
8003 0 : if (res) return res;
8004 : }
8005 : }
8006 : break;
8007 : }
8008 : default:;
8009 : }
8010 : break;
8011 : }
8012 7168103 : default:;
8013 : }
8014 7168103 : switch (TREE_CODE (_p1))
8015 : {
8016 59038 : case PLUS_EXPR:
8017 59038 : {
8018 59038 : tree _q30 = TREE_OPERAND (_p1, 0);
8019 59038 : tree _q31 = TREE_OPERAND (_p1, 1);
8020 59038 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8021 : {
8022 0 : {
8023 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
8024 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LE_EXPR);
8025 0 : if (res) return res;
8026 : }
8027 : }
8028 59038 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8029 : {
8030 0 : {
8031 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
8032 0 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LE_EXPR);
8033 0 : if (res) return res;
8034 : }
8035 : }
8036 : break;
8037 : }
8038 4868 : case MINUS_EXPR:
8039 4868 : {
8040 4868 : tree _q30 = TREE_OPERAND (_p1, 0);
8041 4868 : tree _q31 = TREE_OPERAND (_p1, 1);
8042 4868 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8043 : {
8044 0 : {
8045 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
8046 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, GE_EXPR);
8047 0 : if (res) return res;
8048 : }
8049 : }
8050 : break;
8051 : }
8052 7168103 : default:;
8053 : }
8054 7168103 : switch (TREE_CODE (_p0))
8055 : {
8056 122915 : case MINUS_EXPR:
8057 122915 : {
8058 122915 : tree _q20 = TREE_OPERAND (_p0, 0);
8059 122915 : tree _q21 = TREE_OPERAND (_p0, 1);
8060 122915 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8061 : {
8062 2741 : {
8063 2741 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
8064 2741 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, LE_EXPR);
8065 2741 : if (res) return res;
8066 : }
8067 : }
8068 : break;
8069 : }
8070 1061 : case BIT_IOR_EXPR:
8071 1061 : {
8072 1061 : tree _q20 = TREE_OPERAND (_p0, 0);
8073 1061 : tree _q21 = TREE_OPERAND (_p0, 1);
8074 1061 : if (tree_expr_nonnegative_p (_q20))
8075 : {
8076 222 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8077 : {
8078 0 : {
8079 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8080 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8081 0 : if (res) return res;
8082 : }
8083 : }
8084 : }
8085 1061 : if (tree_expr_nonnegative_p (_q21))
8086 : {
8087 296 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8088 : {
8089 0 : {
8090 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8091 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8092 0 : if (res) return res;
8093 : }
8094 : }
8095 : }
8096 : break;
8097 : }
8098 7168102 : default:;
8099 : }
8100 7168102 : switch (TREE_CODE (_p1))
8101 : {
8102 196 : case BIT_AND_EXPR:
8103 196 : {
8104 196 : tree _q30 = TREE_OPERAND (_p1, 0);
8105 196 : tree _q31 = TREE_OPERAND (_p1, 1);
8106 196 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8107 : {
8108 0 : if (tree_expr_nonnegative_p (_q30))
8109 : {
8110 0 : {
8111 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8112 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8113 0 : if (res) return res;
8114 : }
8115 : }
8116 : }
8117 196 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8118 : {
8119 0 : if (tree_expr_nonnegative_p (_q31))
8120 : {
8121 0 : {
8122 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8123 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8124 0 : if (res) return res;
8125 : }
8126 : }
8127 : }
8128 : break;
8129 : }
8130 7168102 : default:;
8131 : }
8132 7168102 : switch (TREE_CODE (_p0))
8133 : {
8134 2985 : case MIN_EXPR:
8135 2985 : {
8136 2985 : tree _q20 = TREE_OPERAND (_p0, 0);
8137 2985 : tree _q21 = TREE_OPERAND (_p0, 1);
8138 2985 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8139 : {
8140 0 : {
8141 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8142 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8143 0 : if (res) return res;
8144 : }
8145 : }
8146 2985 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8147 : {
8148 1 : {
8149 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8150 1 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8151 1 : if (res) return res;
8152 : }
8153 : }
8154 2984 : switch (TREE_CODE (_q21))
8155 : {
8156 1016 : case INTEGER_CST:
8157 1016 : {
8158 1016 : switch (TREE_CODE (_p1))
8159 : {
8160 0 : case INTEGER_CST:
8161 0 : {
8162 0 : {
8163 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8164 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
8165 0 : if (res) return res;
8166 : }
8167 0 : break;
8168 : }
8169 : default:;
8170 : }
8171 : break;
8172 : }
8173 : default:;
8174 : }
8175 : break;
8176 : }
8177 7168101 : default:;
8178 : }
8179 7168101 : switch (TREE_CODE (_p1))
8180 : {
8181 202 : case MAX_EXPR:
8182 202 : {
8183 202 : tree _q30 = TREE_OPERAND (_p1, 0);
8184 202 : tree _q31 = TREE_OPERAND (_p1, 1);
8185 202 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8186 : {
8187 0 : {
8188 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8189 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8190 0 : if (res) return res;
8191 : }
8192 : }
8193 202 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8194 : {
8195 0 : {
8196 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8197 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8198 0 : if (res) return res;
8199 : }
8200 : }
8201 : break;
8202 : }
8203 1490 : case MIN_EXPR:
8204 1490 : {
8205 1490 : tree _q30 = TREE_OPERAND (_p1, 0);
8206 1490 : tree _q31 = TREE_OPERAND (_p1, 1);
8207 1490 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8208 : {
8209 0 : {
8210 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8211 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8212 0 : if (res) return res;
8213 : }
8214 : }
8215 1490 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8216 : {
8217 0 : {
8218 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8219 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8220 0 : if (res) return res;
8221 : }
8222 : }
8223 : break;
8224 : }
8225 7168101 : default:;
8226 : }
8227 7168101 : switch (TREE_CODE (_p0))
8228 : {
8229 814 : case MAX_EXPR:
8230 814 : {
8231 814 : tree _q20 = TREE_OPERAND (_p0, 0);
8232 814 : tree _q21 = TREE_OPERAND (_p0, 1);
8233 814 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8234 : {
8235 0 : {
8236 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8237 0 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8238 0 : if (res) return res;
8239 : }
8240 : }
8241 814 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8242 : {
8243 2 : {
8244 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8245 2 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8246 2 : if (res) return res;
8247 : }
8248 : }
8249 812 : switch (TREE_CODE (_q21))
8250 : {
8251 735 : case INTEGER_CST:
8252 735 : {
8253 735 : switch (TREE_CODE (_p1))
8254 : {
8255 0 : case INTEGER_CST:
8256 0 : {
8257 0 : {
8258 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8259 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
8260 0 : if (res) return res;
8261 : }
8262 0 : break;
8263 : }
8264 : default:;
8265 : }
8266 : break;
8267 : }
8268 : default:;
8269 : }
8270 : break;
8271 : }
8272 6 : case VEC_COND_EXPR:
8273 6 : {
8274 6 : tree _q20 = TREE_OPERAND (_p0, 0);
8275 6 : tree _q21 = TREE_OPERAND (_p0, 1);
8276 6 : tree _q22 = TREE_OPERAND (_p0, 2);
8277 6 : switch (TREE_CODE (_p1))
8278 : {
8279 0 : case VEC_COND_EXPR:
8280 0 : {
8281 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8282 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8283 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8284 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8285 : {
8286 0 : {
8287 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8288 0 : if (VECTOR_TYPE_P (type)
8289 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8290 0 : || types_match (type, TREE_TYPE (captures[2]))
8291 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8292 : || (optimize_vectors_before_lowering_p ()
8293 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8294 : )
8295 : {
8296 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1623;
8297 0 : {
8298 0 : tree res_op0;
8299 0 : res_op0 = captures[1];
8300 0 : tree res_op1;
8301 0 : {
8302 0 : tree _o1[2], _r1;
8303 0 : _o1[0] = captures[2];
8304 0 : _o1[1] = captures[5];
8305 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8306 0 : if (EXPR_P (_r1))
8307 0 : goto next_after_fail1623;
8308 0 : res_op1 = _r1;
8309 : }
8310 0 : tree res_op2;
8311 0 : {
8312 0 : tree _o1[2], _r1;
8313 0 : _o1[0] = captures[3];
8314 0 : _o1[1] = captures[6];
8315 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8316 0 : if (EXPR_P (_r1))
8317 0 : goto next_after_fail1623;
8318 0 : res_op2 = _r1;
8319 : }
8320 0 : tree _r;
8321 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8322 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
8323 0 : return _r;
8324 : }
8325 0 : next_after_fail1623:;
8326 : }
8327 : }
8328 : }
8329 : break;
8330 : }
8331 6 : default:;
8332 : }
8333 6 : {
8334 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8335 6 : if (VECTOR_TYPE_P (type)
8336 6 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8337 6 : || types_match (type, TREE_TYPE (captures[2]))
8338 6 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8339 : || (optimize_vectors_before_lowering_p ()
8340 2 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8341 : )
8342 : {
8343 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1624;
8344 6 : {
8345 6 : if (! tree_invariant_p (captures[4])) goto next_after_fail1624;
8346 5 : tree res_op0;
8347 5 : res_op0 = captures[1];
8348 5 : tree res_op1;
8349 5 : {
8350 5 : tree _o1[2], _r1;
8351 5 : _o1[0] = captures[2];
8352 5 : _o1[1] = unshare_expr (captures[4]);
8353 5 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8354 5 : if (EXPR_P (_r1))
8355 1 : goto next_after_fail1624;
8356 4 : res_op1 = _r1;
8357 : }
8358 4 : tree res_op2;
8359 4 : {
8360 4 : tree _o1[2], _r1;
8361 4 : _o1[0] = captures[3];
8362 4 : _o1[1] = captures[4];
8363 4 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8364 4 : if (EXPR_P (_r1))
8365 0 : goto next_after_fail1624;
8366 4 : res_op2 = _r1;
8367 : }
8368 4 : tree _r;
8369 4 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8370 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
8371 4 : return _r;
8372 : }
8373 2 : next_after_fail1624:;
8374 : }
8375 : }
8376 2 : break;
8377 : }
8378 7168095 : default:;
8379 : }
8380 7168095 : switch (TREE_CODE (_p1))
8381 : {
8382 0 : case VEC_COND_EXPR:
8383 0 : {
8384 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8385 0 : tree _q31 = TREE_OPERAND (_p1, 1);
8386 0 : tree _q32 = TREE_OPERAND (_p1, 2);
8387 0 : {
8388 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8389 0 : if (VECTOR_TYPE_P (type)
8390 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8391 0 : || types_match (type, TREE_TYPE (captures[3]))
8392 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8393 : || (optimize_vectors_before_lowering_p ()
8394 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8395 : )
8396 : {
8397 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1625;
8398 0 : {
8399 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1625;
8400 0 : tree res_op0;
8401 0 : res_op0 = captures[2];
8402 0 : tree res_op1;
8403 0 : {
8404 0 : tree _o1[2], _r1;
8405 0 : _o1[0] = unshare_expr (captures[0]);
8406 0 : _o1[1] = captures[3];
8407 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8408 0 : if (EXPR_P (_r1))
8409 0 : goto next_after_fail1625;
8410 0 : res_op1 = _r1;
8411 : }
8412 0 : tree res_op2;
8413 0 : {
8414 0 : tree _o1[2], _r1;
8415 0 : _o1[0] = captures[0];
8416 0 : _o1[1] = captures[4];
8417 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8418 0 : if (EXPR_P (_r1))
8419 0 : goto next_after_fail1625;
8420 0 : res_op2 = _r1;
8421 : }
8422 0 : tree _r;
8423 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8424 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
8425 0 : return _r;
8426 : }
8427 0 : next_after_fail1625:;
8428 : }
8429 : }
8430 0 : break;
8431 : }
8432 7168095 : default:;
8433 : }
8434 7168095 : if (uniform_integer_cst_p (_p1))
8435 : {
8436 3591047 : {
8437 3591047 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8438 3591047 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
8439 3591047 : if (res) return res;
8440 : }
8441 : }
8442 5687360 : switch (TREE_CODE (_p0))
8443 : {
8444 23733 : case MULT_EXPR:
8445 23733 : {
8446 23733 : tree _q20 = TREE_OPERAND (_p0, 0);
8447 23733 : tree _q21 = TREE_OPERAND (_p0, 1);
8448 23733 : switch (TREE_CODE (_q21))
8449 : {
8450 19806 : case INTEGER_CST:
8451 19806 : {
8452 19806 : if (integer_zerop (_p1))
8453 : {
8454 2742 : {
8455 2742 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8456 2742 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8457 2742 : if (res) return res;
8458 : }
8459 : }
8460 : break;
8461 : }
8462 : default:;
8463 : }
8464 : break;
8465 : }
8466 5687072 : default:;
8467 : }
8468 5687072 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8469 : {
8470 37984 : {
8471 37984 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8472 37984 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GE_EXPR);
8473 37984 : if (res) return res;
8474 : }
8475 : }
8476 5649125 : switch (TREE_CODE (_p0))
8477 : {
8478 418 : case BIT_NOT_EXPR:
8479 418 : {
8480 418 : tree _q20 = TREE_OPERAND (_p0, 0);
8481 418 : switch (TREE_CODE (_p1))
8482 : {
8483 1 : case BIT_NOT_EXPR:
8484 1 : {
8485 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8486 1 : {
8487 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8488 1 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR);
8489 1 : if (res) return res;
8490 : }
8491 0 : break;
8492 : }
8493 417 : default:;
8494 : }
8495 417 : {
8496 417 : tree _p1_pops[1];
8497 417 : if (tree_nop_convert (_p1, _p1_pops))
8498 : {
8499 50 : tree _q40 = _p1_pops[0];
8500 50 : switch (TREE_CODE (_q40))
8501 : {
8502 0 : case BIT_NOT_EXPR:
8503 0 : {
8504 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8505 0 : {
8506 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8507 0 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR);
8508 0 : if (res) return res;
8509 : }
8510 0 : break;
8511 : }
8512 : default:;
8513 : }
8514 : }
8515 : }
8516 417 : if (CONSTANT_CLASS_P (_p1))
8517 : {
8518 94 : {
8519 94 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8520 94 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8521 94 : if (res) return res;
8522 : }
8523 : }
8524 : break;
8525 : }
8526 5649030 : default:;
8527 : }
8528 5649030 : {
8529 5649030 : tree _p0_pops[1];
8530 5649030 : if (tree_nop_convert (_p0, _p0_pops))
8531 : {
8532 441710 : tree _q20 = _p0_pops[0];
8533 441710 : switch (TREE_CODE (_q20))
8534 : {
8535 4 : case BIT_NOT_EXPR:
8536 4 : {
8537 4 : tree _q30 = TREE_OPERAND (_q20, 0);
8538 4 : switch (TREE_CODE (_p1))
8539 : {
8540 0 : case BIT_NOT_EXPR:
8541 0 : {
8542 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8543 0 : {
8544 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8545 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GE_EXPR);
8546 0 : if (res) return res;
8547 : }
8548 0 : break;
8549 : }
8550 4 : default:;
8551 : }
8552 4 : {
8553 4 : tree _p1_pops[1];
8554 4 : if (tree_nop_convert (_p1, _p1_pops))
8555 : {
8556 0 : tree _q50 = _p1_pops[0];
8557 0 : switch (TREE_CODE (_q50))
8558 : {
8559 0 : case BIT_NOT_EXPR:
8560 0 : {
8561 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8562 0 : {
8563 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8564 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GE_EXPR);
8565 0 : if (res) return res;
8566 : }
8567 0 : break;
8568 : }
8569 : default:;
8570 : }
8571 : }
8572 : }
8573 4 : if (CONSTANT_CLASS_P (_p1))
8574 : {
8575 0 : {
8576 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8577 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8578 0 : if (res) return res;
8579 : }
8580 : }
8581 : break;
8582 : }
8583 : default:;
8584 : }
8585 : }
8586 : }
8587 5649030 : switch (TREE_CODE (_p1))
8588 : {
8589 620433 : case REAL_CST:
8590 620433 : {
8591 620433 : {
8592 620433 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8593 620433 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR);
8594 620433 : if (res) return res;
8595 : }
8596 620351 : break;
8597 : }
8598 5648948 : default:;
8599 : }
8600 5648948 : switch (TREE_CODE (_p0))
8601 : {
8602 684619 : case PLUS_EXPR:
8603 684619 : {
8604 684619 : tree _q20 = TREE_OPERAND (_p0, 0);
8605 684619 : tree _q21 = TREE_OPERAND (_p0, 1);
8606 684619 : switch (TREE_CODE (_q21))
8607 : {
8608 168 : case REAL_CST:
8609 168 : {
8610 168 : switch (TREE_CODE (_p1))
8611 : {
8612 20 : case REAL_CST:
8613 20 : {
8614 20 : {
8615 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8616 20 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR);
8617 20 : if (res) return res;
8618 : }
8619 20 : break;
8620 : }
8621 : default:;
8622 : }
8623 : break;
8624 : }
8625 574180 : case INTEGER_CST:
8626 574180 : {
8627 574180 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8628 : {
8629 16003 : {
8630 16003 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8631 16003 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8632 16003 : if (res) return res;
8633 : }
8634 : }
8635 : break;
8636 : }
8637 : default:;
8638 : }
8639 : break;
8640 : }
8641 63281 : case MINUS_EXPR:
8642 63281 : {
8643 63281 : tree _q20 = TREE_OPERAND (_p0, 0);
8644 63281 : tree _q21 = TREE_OPERAND (_p0, 1);
8645 63281 : switch (TREE_CODE (_q21))
8646 : {
8647 31 : case REAL_CST:
8648 31 : {
8649 31 : switch (TREE_CODE (_p1))
8650 : {
8651 31 : case REAL_CST:
8652 31 : {
8653 31 : {
8654 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8655 31 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, MINUS_EXPR, GE_EXPR);
8656 31 : if (res) return res;
8657 : }
8658 31 : break;
8659 : }
8660 : default:;
8661 : }
8662 : break;
8663 : }
8664 63281 : default:;
8665 : }
8666 63281 : switch (TREE_CODE (_q20))
8667 : {
8668 24 : case REAL_CST:
8669 24 : {
8670 24 : switch (TREE_CODE (_p1))
8671 : {
8672 0 : case REAL_CST:
8673 0 : {
8674 0 : {
8675 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8676 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GE_EXPR);
8677 0 : if (res) return res;
8678 : }
8679 0 : break;
8680 : }
8681 : default:;
8682 : }
8683 : break;
8684 : }
8685 : default:;
8686 : }
8687 : break;
8688 : }
8689 38978 : case FLOAT_EXPR:
8690 38978 : {
8691 38978 : tree _q20 = TREE_OPERAND (_p0, 0);
8692 38978 : switch (TREE_CODE (_p1))
8693 : {
8694 7 : case FLOAT_EXPR:
8695 7 : {
8696 7 : tree _q40 = TREE_OPERAND (_p1, 0);
8697 7 : {
8698 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8699 7 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8700 7 : if (res) return res;
8701 : }
8702 0 : break;
8703 : }
8704 37499 : case REAL_CST:
8705 37499 : {
8706 37499 : {
8707 37499 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8708 37499 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8709 37499 : if (res) return res;
8710 : }
8711 18786 : break;
8712 : }
8713 : default:;
8714 : }
8715 : break;
8716 : }
8717 7933 : case EXACT_DIV_EXPR:
8718 7933 : {
8719 7933 : tree _q20 = TREE_OPERAND (_p0, 0);
8720 7933 : tree _q21 = TREE_OPERAND (_p0, 1);
8721 7933 : switch (TREE_CODE (_q21))
8722 : {
8723 7933 : case INTEGER_CST:
8724 7933 : {
8725 7933 : switch (TREE_CODE (_p1))
8726 : {
8727 0 : case INTEGER_CST:
8728 0 : {
8729 0 : {
8730 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8731 0 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
8732 0 : if (res) return res;
8733 : }
8734 0 : break;
8735 : }
8736 : default:;
8737 : }
8738 : break;
8739 : }
8740 : default:;
8741 : }
8742 : break;
8743 : }
8744 831153 : CASE_CONVERT:
8745 831153 : {
8746 831153 : tree _q20 = TREE_OPERAND (_p0, 0);
8747 831153 : switch (TREE_CODE (_q20))
8748 : {
8749 157 : case EXACT_DIV_EXPR:
8750 157 : {
8751 157 : tree _q30 = TREE_OPERAND (_q20, 0);
8752 157 : tree _q31 = TREE_OPERAND (_q20, 1);
8753 157 : switch (TREE_CODE (_q31))
8754 : {
8755 157 : case INTEGER_CST:
8756 157 : {
8757 157 : switch (TREE_CODE (_p1))
8758 : {
8759 0 : case INTEGER_CST:
8760 0 : {
8761 0 : {
8762 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8763 0 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
8764 0 : if (res) return res;
8765 : }
8766 0 : break;
8767 : }
8768 : default:;
8769 : }
8770 : break;
8771 : }
8772 : default:;
8773 : }
8774 : break;
8775 : }
8776 831153 : default:;
8777 : }
8778 831153 : switch (TREE_CODE (_p1))
8779 : {
8780 127591 : CASE_CONVERT:
8781 127591 : {
8782 127591 : tree _q40 = TREE_OPERAND (_p1, 0);
8783 127591 : {
8784 127591 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8785 127591 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR);
8786 127591 : if (res) return res;
8787 : }
8788 58320 : break;
8789 : }
8790 761882 : default:;
8791 : }
8792 761882 : {
8793 761882 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8794 761882 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GE_EXPR);
8795 761882 : if (res) return res;
8796 : }
8797 466600 : switch (TREE_CODE (_q20))
8798 : {
8799 1442 : case ADDR_EXPR:
8800 1442 : {
8801 1442 : switch (TREE_CODE (_p1))
8802 : {
8803 1378 : CASE_CONVERT:
8804 1378 : {
8805 1378 : tree _q40 = TREE_OPERAND (_p1, 0);
8806 1378 : switch (TREE_CODE (_q40))
8807 : {
8808 1378 : case ADDR_EXPR:
8809 1378 : {
8810 1378 : {
8811 1378 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8812 1378 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, GE_EXPR);
8813 1378 : if (res) return res;
8814 : }
8815 178 : break;
8816 : }
8817 : default:;
8818 : }
8819 : break;
8820 : }
8821 0 : case ADDR_EXPR:
8822 0 : {
8823 0 : {
8824 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8825 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, GE_EXPR);
8826 0 : if (res) return res;
8827 : }
8828 0 : break;
8829 : }
8830 : default:;
8831 : }
8832 : break;
8833 : }
8834 465400 : default:;
8835 : }
8836 465400 : if (uniform_integer_cst_p (_p1))
8837 : {
8838 187634 : {
8839 187634 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8840 187634 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR);
8841 187634 : if (res) return res;
8842 : }
8843 : }
8844 : break;
8845 : }
8846 773 : case NEGATE_EXPR:
8847 773 : {
8848 773 : tree _q20 = TREE_OPERAND (_p0, 0);
8849 773 : switch (TREE_CODE (_p1))
8850 : {
8851 0 : case NEGATE_EXPR:
8852 0 : {
8853 0 : tree _q40 = TREE_OPERAND (_p1, 0);
8854 0 : {
8855 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8856 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8857 0 : if (res) return res;
8858 : }
8859 0 : break;
8860 : }
8861 773 : default:;
8862 : }
8863 773 : if (CONSTANT_CLASS_P (_p1))
8864 : {
8865 270 : {
8866 270 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8867 270 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8868 270 : if (res) return res;
8869 : }
8870 : }
8871 : break;
8872 : }
8873 7613 : case ADDR_EXPR:
8874 7613 : {
8875 7613 : switch (TREE_CODE (_p1))
8876 : {
8877 0 : CASE_CONVERT:
8878 0 : {
8879 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8880 0 : switch (TREE_CODE (_q30))
8881 : {
8882 0 : case ADDR_EXPR:
8883 0 : {
8884 0 : {
8885 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8886 0 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GE_EXPR);
8887 0 : if (res) return res;
8888 : }
8889 0 : break;
8890 : }
8891 : default:;
8892 : }
8893 : break;
8894 : }
8895 7245 : case ADDR_EXPR:
8896 7245 : {
8897 7245 : {
8898 7245 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8899 7245 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GE_EXPR);
8900 7245 : if (res) return res;
8901 : }
8902 92 : break;
8903 : }
8904 : default:;
8905 : }
8906 : break;
8907 : }
8908 333055 : case CALL_EXPR:
8909 333055 : switch (get_call_combined_fn (_p0))
8910 : {
8911 2 : case CFN_BUILT_IN_SQRTF:
8912 2 : if (call_expr_nargs (_p0) == 1)
8913 : {
8914 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8915 2 : switch (TREE_CODE (_p1))
8916 : {
8917 2 : case REAL_CST:
8918 2 : {
8919 2 : {
8920 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8921 2 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
8922 2 : if (res) return res;
8923 : }
8924 0 : break;
8925 : }
8926 0 : case CALL_EXPR:
8927 0 : switch (get_call_combined_fn (_p1))
8928 : {
8929 0 : case CFN_BUILT_IN_SQRTF:
8930 0 : if (call_expr_nargs (_p1) == 1)
8931 : {
8932 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8933 0 : {
8934 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8935 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
8936 0 : if (res) return res;
8937 : }
8938 : }
8939 : break;
8940 : default:;
8941 : }
8942 : break;
8943 : default:;
8944 : }
8945 : }
8946 : break;
8947 0 : case CFN_BUILT_IN_SQRTL:
8948 0 : if (call_expr_nargs (_p0) == 1)
8949 : {
8950 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8951 0 : switch (TREE_CODE (_p1))
8952 : {
8953 0 : case REAL_CST:
8954 0 : {
8955 0 : {
8956 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8957 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
8958 0 : if (res) return res;
8959 : }
8960 0 : break;
8961 : }
8962 0 : case CALL_EXPR:
8963 0 : switch (get_call_combined_fn (_p1))
8964 : {
8965 0 : case CFN_BUILT_IN_SQRTL:
8966 0 : if (call_expr_nargs (_p1) == 1)
8967 : {
8968 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8969 0 : {
8970 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8971 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
8972 0 : if (res) return res;
8973 : }
8974 : }
8975 : break;
8976 : default:;
8977 : }
8978 : break;
8979 : default:;
8980 : }
8981 : }
8982 : break;
8983 1 : case CFN_BUILT_IN_SQRT:
8984 1 : if (call_expr_nargs (_p0) == 1)
8985 : {
8986 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8987 1 : switch (TREE_CODE (_p1))
8988 : {
8989 1 : case REAL_CST:
8990 1 : {
8991 1 : {
8992 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8993 1 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
8994 1 : if (res) return res;
8995 : }
8996 1 : break;
8997 : }
8998 0 : case CALL_EXPR:
8999 0 : switch (get_call_combined_fn (_p1))
9000 : {
9001 0 : case CFN_BUILT_IN_SQRT:
9002 0 : if (call_expr_nargs (_p1) == 1)
9003 : {
9004 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9005 0 : {
9006 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9007 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
9008 0 : if (res) return res;
9009 : }
9010 : }
9011 : break;
9012 : default:;
9013 : }
9014 : break;
9015 : default:;
9016 : }
9017 : }
9018 : break;
9019 0 : case CFN_SQRT:
9020 0 : if (call_expr_nargs (_p0) == 1)
9021 : {
9022 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9023 0 : switch (TREE_CODE (_p1))
9024 : {
9025 0 : case REAL_CST:
9026 0 : {
9027 0 : {
9028 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9029 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9030 0 : if (res) return res;
9031 : }
9032 0 : break;
9033 : }
9034 0 : case CALL_EXPR:
9035 0 : switch (get_call_combined_fn (_p1))
9036 : {
9037 0 : case CFN_SQRT:
9038 0 : if (call_expr_nargs (_p1) == 1)
9039 : {
9040 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9041 0 : {
9042 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9043 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9044 0 : if (res) return res;
9045 : }
9046 : }
9047 : break;
9048 : default:;
9049 : }
9050 : break;
9051 : default:;
9052 : }
9053 : }
9054 : break;
9055 : default:;
9056 : }
9057 : break;
9058 5230741 : default:;
9059 : }
9060 5230741 : if (uniform_integer_cst_p (_p1))
9061 : {
9062 1804270 : {
9063 1804270 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9064 1804270 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GE_EXPR);
9065 1804270 : if (res) return res;
9066 : }
9067 : }
9068 4901738 : switch (TREE_CODE (_p0))
9069 : {
9070 454253 : CASE_CONVERT:
9071 454253 : {
9072 454253 : tree _q20 = TREE_OPERAND (_p0, 0);
9073 454253 : switch (TREE_CODE (_q20))
9074 : {
9075 31985 : case PLUS_EXPR:
9076 31985 : {
9077 31985 : tree _q30 = TREE_OPERAND (_q20, 0);
9078 31985 : tree _q31 = TREE_OPERAND (_q20, 1);
9079 31985 : switch (TREE_CODE (_q30))
9080 : {
9081 23177 : CASE_CONVERT:
9082 23177 : {
9083 23177 : tree _q40 = TREE_OPERAND (_q30, 0);
9084 23177 : switch (TREE_CODE (_q31))
9085 : {
9086 23176 : case INTEGER_CST:
9087 23176 : {
9088 23176 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
9089 : {
9090 129 : {
9091 129 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
9092 129 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9093 129 : if (res) return res;
9094 : }
9095 : }
9096 : break;
9097 : }
9098 : default:;
9099 : }
9100 : break;
9101 : }
9102 : default:;
9103 : }
9104 : break;
9105 : }
9106 : default:;
9107 : }
9108 : break;
9109 : }
9110 4901681 : default:;
9111 : }
9112 4901681 : switch (TREE_CODE (_p1))
9113 : {
9114 227750 : CASE_CONVERT:
9115 227750 : {
9116 227750 : tree _q30 = TREE_OPERAND (_p1, 0);
9117 227750 : switch (TREE_CODE (_q30))
9118 : {
9119 266 : case PLUS_EXPR:
9120 266 : {
9121 266 : tree _q40 = TREE_OPERAND (_q30, 0);
9122 266 : tree _q41 = TREE_OPERAND (_q30, 1);
9123 266 : switch (TREE_CODE (_q40))
9124 : {
9125 204 : CASE_CONVERT:
9126 204 : {
9127 204 : tree _q50 = TREE_OPERAND (_q40, 0);
9128 204 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9129 : {
9130 0 : switch (TREE_CODE (_q41))
9131 : {
9132 0 : case INTEGER_CST:
9133 0 : {
9134 0 : {
9135 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
9136 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9137 0 : if (res) return res;
9138 : }
9139 0 : break;
9140 : }
9141 : default:;
9142 : }
9143 : }
9144 : break;
9145 : }
9146 : default:;
9147 : }
9148 : break;
9149 : }
9150 : default:;
9151 : }
9152 : break;
9153 : }
9154 59038 : case PLUS_EXPR:
9155 59038 : {
9156 59038 : tree _q30 = TREE_OPERAND (_p1, 0);
9157 59038 : tree _q31 = TREE_OPERAND (_p1, 1);
9158 59038 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9159 : {
9160 0 : switch (TREE_CODE (_q31))
9161 : {
9162 0 : case INTEGER_CST:
9163 0 : {
9164 0 : {
9165 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
9166 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9167 0 : if (res) return res;
9168 : }
9169 0 : break;
9170 : }
9171 : default:;
9172 : }
9173 : }
9174 : break;
9175 : }
9176 4868 : case MINUS_EXPR:
9177 4868 : {
9178 4868 : tree _q30 = TREE_OPERAND (_p1, 0);
9179 4868 : tree _q31 = TREE_OPERAND (_p1, 1);
9180 4868 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9181 : {
9182 0 : {
9183 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9184 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LE_EXPR);
9185 0 : if (res) return res;
9186 : }
9187 : }
9188 : break;
9189 : }
9190 4901681 : default:;
9191 : }
9192 4901681 : switch (TREE_CODE (_p0))
9193 : {
9194 588067 : case PLUS_EXPR:
9195 588067 : {
9196 588067 : tree _q20 = TREE_OPERAND (_p0, 0);
9197 588067 : tree _q21 = TREE_OPERAND (_p0, 1);
9198 588067 : switch (TREE_CODE (_q20))
9199 : {
9200 133 : case MINUS_EXPR:
9201 133 : {
9202 133 : tree _q30 = TREE_OPERAND (_q20, 0);
9203 133 : tree _q31 = TREE_OPERAND (_q20, 1);
9204 133 : if (integer_minus_onep (_q21))
9205 : {
9206 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9207 : {
9208 1 : {
9209 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9210 1 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, GE_EXPR);
9211 1 : if (res) return res;
9212 : }
9213 : }
9214 : }
9215 : break;
9216 : }
9217 : default:;
9218 : }
9219 : break;
9220 : }
9221 4901680 : default:;
9222 : }
9223 4901680 : switch (TREE_CODE (_p1))
9224 : {
9225 0 : case REALPART_EXPR:
9226 0 : {
9227 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9228 0 : switch (TREE_CODE (_q30))
9229 : {
9230 0 : case CALL_EXPR:
9231 0 : switch (get_call_combined_fn (_q30))
9232 : {
9233 0 : case CFN_SUB_OVERFLOW:
9234 0 : if (call_expr_nargs (_q30) == 2)
9235 : {
9236 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
9237 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
9238 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9239 : {
9240 0 : {
9241 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
9242 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
9243 0 : if (res) return res;
9244 : }
9245 : }
9246 : }
9247 : break;
9248 : default:;
9249 : }
9250 : break;
9251 : default:;
9252 : }
9253 : break;
9254 : }
9255 4901680 : default:;
9256 : }
9257 4901680 : switch (TREE_CODE (_p0))
9258 : {
9259 0 : case REALPART_EXPR:
9260 0 : {
9261 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9262 0 : switch (TREE_CODE (_q20))
9263 : {
9264 0 : case CALL_EXPR:
9265 0 : switch (get_call_combined_fn (_q20))
9266 : {
9267 0 : case CFN_ADD_OVERFLOW:
9268 0 : if (call_expr_nargs (_q20) == 2)
9269 : {
9270 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9271 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
9272 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9273 : {
9274 0 : {
9275 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
9276 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9277 0 : if (res) return res;
9278 : }
9279 : }
9280 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9281 : {
9282 0 : {
9283 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
9284 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9285 0 : if (res) return res;
9286 : }
9287 : }
9288 : }
9289 : break;
9290 : default:;
9291 : }
9292 : break;
9293 : default:;
9294 : }
9295 : break;
9296 : }
9297 1398 : case TRUNC_DIV_EXPR:
9298 1398 : {
9299 1398 : tree _q20 = TREE_OPERAND (_p0, 0);
9300 1398 : tree _q21 = TREE_OPERAND (_p0, 1);
9301 1398 : if (integer_all_onesp (_q20))
9302 : {
9303 33 : {
9304 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
9305 33 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9306 33 : if (res) return res;
9307 : }
9308 : }
9309 : break;
9310 : }
9311 21983 : case MULT_EXPR:
9312 21983 : {
9313 21983 : tree _q20 = TREE_OPERAND (_p0, 0);
9314 21983 : tree _q21 = TREE_OPERAND (_p0, 1);
9315 21983 : switch (TREE_CODE (_q21))
9316 : {
9317 301 : case REAL_CST:
9318 301 : {
9319 301 : switch (TREE_CODE (_p1))
9320 : {
9321 39 : case REAL_CST:
9322 39 : {
9323 39 : {
9324 39 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9325 39 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9326 39 : if (res) return res;
9327 : }
9328 39 : break;
9329 : }
9330 : default:;
9331 : }
9332 : break;
9333 : }
9334 : default:;
9335 : }
9336 : break;
9337 : }
9338 151 : case REAL_CST:
9339 151 : {
9340 151 : switch (TREE_CODE (_p1))
9341 : {
9342 0 : case CALL_EXPR:
9343 0 : switch (get_call_combined_fn (_p1))
9344 : {
9345 0 : case CFN_BUILT_IN_EXP:
9346 0 : if (call_expr_nargs (_p1) == 1)
9347 : {
9348 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9349 0 : {
9350 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9351 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9352 0 : if (res) return res;
9353 : }
9354 : }
9355 : break;
9356 0 : case CFN_BUILT_IN_LOG:
9357 0 : if (call_expr_nargs (_p1) == 1)
9358 : {
9359 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9360 0 : {
9361 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9362 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9363 0 : if (res) return res;
9364 : }
9365 : }
9366 : break;
9367 0 : case CFN_BUILT_IN_EXP10F:
9368 0 : if (call_expr_nargs (_p1) == 1)
9369 : {
9370 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9371 0 : {
9372 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9373 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9374 0 : if (res) return res;
9375 : }
9376 : }
9377 : break;
9378 0 : case CFN_BUILT_IN_EXP10L:
9379 0 : if (call_expr_nargs (_p1) == 1)
9380 : {
9381 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9382 0 : {
9383 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9384 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9385 0 : if (res) return res;
9386 : }
9387 : }
9388 : break;
9389 0 : case CFN_BUILT_IN_EXP2:
9390 0 : if (call_expr_nargs (_p1) == 1)
9391 : {
9392 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9393 0 : {
9394 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9395 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9396 0 : if (res) return res;
9397 : }
9398 : }
9399 : break;
9400 0 : case CFN_BUILT_IN_EXPF:
9401 0 : if (call_expr_nargs (_p1) == 1)
9402 : {
9403 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9404 0 : {
9405 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9406 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9407 0 : if (res) return res;
9408 : }
9409 : }
9410 : break;
9411 0 : case CFN_BUILT_IN_EXPL:
9412 0 : if (call_expr_nargs (_p1) == 1)
9413 : {
9414 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9415 0 : {
9416 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9417 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9418 0 : if (res) return res;
9419 : }
9420 : }
9421 : break;
9422 0 : case CFN_BUILT_IN_LOG2:
9423 0 : if (call_expr_nargs (_p1) == 1)
9424 : {
9425 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9426 0 : {
9427 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9428 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9429 0 : if (res) return res;
9430 : }
9431 : }
9432 : break;
9433 0 : case CFN_BUILT_IN_LOGF:
9434 0 : if (call_expr_nargs (_p1) == 1)
9435 : {
9436 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9437 0 : {
9438 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9439 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9440 0 : if (res) return res;
9441 : }
9442 : }
9443 : break;
9444 0 : case CFN_BUILT_IN_LOGL:
9445 0 : if (call_expr_nargs (_p1) == 1)
9446 : {
9447 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9448 0 : {
9449 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9450 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9451 0 : if (res) return res;
9452 : }
9453 : }
9454 : break;
9455 0 : case CFN_BUILT_IN_LOG10F:
9456 0 : if (call_expr_nargs (_p1) == 1)
9457 : {
9458 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9459 0 : {
9460 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9461 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9462 0 : if (res) return res;
9463 : }
9464 : }
9465 : break;
9466 0 : case CFN_BUILT_IN_LOG10L:
9467 0 : if (call_expr_nargs (_p1) == 1)
9468 : {
9469 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9470 0 : {
9471 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9472 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9473 0 : if (res) return res;
9474 : }
9475 : }
9476 : break;
9477 0 : case CFN_EXP:
9478 0 : if (call_expr_nargs (_p1) == 1)
9479 : {
9480 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9481 0 : {
9482 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9483 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9484 0 : if (res) return res;
9485 : }
9486 : }
9487 : break;
9488 0 : case CFN_LOG:
9489 0 : if (call_expr_nargs (_p1) == 1)
9490 : {
9491 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9492 0 : {
9493 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9494 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9495 0 : if (res) return res;
9496 : }
9497 : }
9498 : break;
9499 0 : case CFN_EXP2:
9500 0 : if (call_expr_nargs (_p1) == 1)
9501 : {
9502 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9503 0 : {
9504 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9505 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9506 0 : if (res) return res;
9507 : }
9508 : }
9509 : break;
9510 0 : case CFN_LOG2:
9511 0 : if (call_expr_nargs (_p1) == 1)
9512 : {
9513 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9514 0 : {
9515 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9516 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9517 0 : if (res) return res;
9518 : }
9519 : }
9520 : break;
9521 0 : case CFN_EXP10:
9522 0 : if (call_expr_nargs (_p1) == 1)
9523 : {
9524 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9525 0 : {
9526 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9527 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9528 0 : if (res) return res;
9529 : }
9530 : }
9531 : break;
9532 0 : case CFN_LOG10:
9533 0 : if (call_expr_nargs (_p1) == 1)
9534 : {
9535 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9536 0 : {
9537 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9538 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9539 0 : if (res) return res;
9540 : }
9541 : }
9542 : break;
9543 0 : case CFN_BUILT_IN_EXP10:
9544 0 : if (call_expr_nargs (_p1) == 1)
9545 : {
9546 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9547 0 : {
9548 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9549 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9550 0 : if (res) return res;
9551 : }
9552 : }
9553 : break;
9554 0 : case CFN_BUILT_IN_EXP2F:
9555 0 : if (call_expr_nargs (_p1) == 1)
9556 : {
9557 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9558 0 : {
9559 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9560 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9561 0 : if (res) return res;
9562 : }
9563 : }
9564 : break;
9565 0 : case CFN_BUILT_IN_EXP2L:
9566 0 : if (call_expr_nargs (_p1) == 1)
9567 : {
9568 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9569 0 : {
9570 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9571 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9572 0 : if (res) return res;
9573 : }
9574 : }
9575 : break;
9576 0 : case CFN_BUILT_IN_LOG10:
9577 0 : if (call_expr_nargs (_p1) == 1)
9578 : {
9579 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9580 0 : {
9581 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9582 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9583 0 : if (res) return res;
9584 : }
9585 : }
9586 : break;
9587 0 : case CFN_BUILT_IN_LOG2F:
9588 0 : if (call_expr_nargs (_p1) == 1)
9589 : {
9590 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9591 0 : {
9592 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9593 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9594 0 : if (res) return res;
9595 : }
9596 : }
9597 : break;
9598 0 : case CFN_BUILT_IN_LOG2L:
9599 0 : if (call_expr_nargs (_p1) == 1)
9600 : {
9601 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9602 0 : {
9603 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9604 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9605 0 : if (res) return res;
9606 : }
9607 : }
9608 : break;
9609 : default:;
9610 : }
9611 : break;
9612 : default:;
9613 : }
9614 : break;
9615 : }
9616 588066 : case PLUS_EXPR:
9617 588066 : {
9618 588066 : tree _q20 = TREE_OPERAND (_p0, 0);
9619 588066 : tree _q21 = TREE_OPERAND (_p0, 1);
9620 588066 : switch (TREE_CODE (_q21))
9621 : {
9622 477627 : case INTEGER_CST:
9623 477627 : {
9624 477627 : switch (TREE_CODE (_p1))
9625 : {
9626 117029 : case INTEGER_CST:
9627 117029 : {
9628 117029 : {
9629 117029 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9630 117029 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR, LE_EXPR);
9631 117029 : if (res) return res;
9632 : }
9633 56859 : break;
9634 : }
9635 : default:;
9636 : }
9637 : break;
9638 : }
9639 : default:;
9640 : }
9641 : break;
9642 : }
9643 62821 : case MINUS_EXPR:
9644 62821 : {
9645 62821 : tree _q20 = TREE_OPERAND (_p0, 0);
9646 62821 : tree _q21 = TREE_OPERAND (_p0, 1);
9647 62821 : switch (TREE_CODE (_q21))
9648 : {
9649 7 : case INTEGER_CST:
9650 7 : {
9651 7 : switch (TREE_CODE (_p1))
9652 : {
9653 7 : case INTEGER_CST:
9654 7 : {
9655 7 : {
9656 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9657 7 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR, LE_EXPR);
9658 7 : if (res) return res;
9659 : }
9660 0 : break;
9661 : }
9662 : default:;
9663 : }
9664 : break;
9665 : }
9666 62814 : default:;
9667 : }
9668 62814 : switch (TREE_CODE (_q20))
9669 : {
9670 1703 : case INTEGER_CST:
9671 1703 : {
9672 1703 : switch (TREE_CODE (_p1))
9673 : {
9674 547 : case INTEGER_CST:
9675 547 : {
9676 547 : {
9677 547 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9678 547 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9679 547 : if (res) return res;
9680 : }
9681 0 : break;
9682 : }
9683 : default:;
9684 : }
9685 : break;
9686 : }
9687 : default:;
9688 : }
9689 : break;
9690 : }
9691 333045 : case CALL_EXPR:
9692 333045 : switch (get_call_combined_fn (_p0))
9693 : {
9694 1 : case CFN_BUILT_IN_CTZ:
9695 1 : if (call_expr_nargs (_p0) == 1)
9696 : {
9697 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9698 1 : switch (TREE_CODE (_p1))
9699 : {
9700 1 : case INTEGER_CST:
9701 1 : {
9702 1 : {
9703 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9704 1 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9705 1 : if (res) return res;
9706 : }
9707 0 : break;
9708 : }
9709 : default:;
9710 : }
9711 : }
9712 : break;
9713 1 : case CFN_BUILT_IN_EXP:
9714 1 : if (call_expr_nargs (_p0) == 1)
9715 : {
9716 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9717 1 : switch (TREE_CODE (_p1))
9718 : {
9719 1 : case REAL_CST:
9720 1 : {
9721 1 : {
9722 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9723 1 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9724 1 : if (res) return res;
9725 : }
9726 1 : break;
9727 : }
9728 : default:;
9729 : }
9730 : }
9731 : break;
9732 1 : case CFN_BUILT_IN_LOG:
9733 1 : if (call_expr_nargs (_p0) == 1)
9734 : {
9735 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9736 1 : switch (TREE_CODE (_p1))
9737 : {
9738 0 : case REAL_CST:
9739 0 : {
9740 0 : {
9741 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9742 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9743 0 : if (res) return res;
9744 : }
9745 0 : break;
9746 : }
9747 : default:;
9748 : }
9749 : }
9750 : break;
9751 0 : case CFN_BUILT_IN_EXP10F:
9752 0 : if (call_expr_nargs (_p0) == 1)
9753 : {
9754 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9755 0 : switch (TREE_CODE (_p1))
9756 : {
9757 0 : case REAL_CST:
9758 0 : {
9759 0 : {
9760 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9761 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
9762 0 : if (res) return res;
9763 : }
9764 0 : break;
9765 : }
9766 : default:;
9767 : }
9768 : }
9769 : break;
9770 0 : case CFN_BUILT_IN_EXP10L:
9771 0 : if (call_expr_nargs (_p0) == 1)
9772 : {
9773 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9774 0 : switch (TREE_CODE (_p1))
9775 : {
9776 0 : case REAL_CST:
9777 0 : {
9778 0 : {
9779 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9780 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
9781 0 : if (res) return res;
9782 : }
9783 0 : break;
9784 : }
9785 : default:;
9786 : }
9787 : }
9788 : break;
9789 0 : case CFN_BUILT_IN_CTZL:
9790 0 : if (call_expr_nargs (_p0) == 1)
9791 : {
9792 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9793 0 : switch (TREE_CODE (_p1))
9794 : {
9795 0 : case INTEGER_CST:
9796 0 : {
9797 0 : {
9798 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9799 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9800 0 : if (res) return res;
9801 : }
9802 0 : break;
9803 : }
9804 : default:;
9805 : }
9806 : }
9807 : break;
9808 0 : case CFN_BUILT_IN_EXP2:
9809 0 : if (call_expr_nargs (_p0) == 1)
9810 : {
9811 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9812 0 : switch (TREE_CODE (_p1))
9813 : {
9814 0 : case REAL_CST:
9815 0 : {
9816 0 : {
9817 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9818 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
9819 0 : if (res) return res;
9820 : }
9821 0 : break;
9822 : }
9823 : default:;
9824 : }
9825 : }
9826 : break;
9827 0 : case CFN_BUILT_IN_EXPF:
9828 0 : if (call_expr_nargs (_p0) == 1)
9829 : {
9830 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9831 0 : switch (TREE_CODE (_p1))
9832 : {
9833 0 : case REAL_CST:
9834 0 : {
9835 0 : {
9836 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9837 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
9838 0 : if (res) return res;
9839 : }
9840 0 : break;
9841 : }
9842 : default:;
9843 : }
9844 : }
9845 : break;
9846 0 : case CFN_BUILT_IN_EXPL:
9847 0 : if (call_expr_nargs (_p0) == 1)
9848 : {
9849 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9850 0 : switch (TREE_CODE (_p1))
9851 : {
9852 0 : case REAL_CST:
9853 0 : {
9854 0 : {
9855 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9856 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
9857 0 : if (res) return res;
9858 : }
9859 0 : break;
9860 : }
9861 : default:;
9862 : }
9863 : }
9864 : break;
9865 0 : case CFN_BUILT_IN_LOG2:
9866 0 : if (call_expr_nargs (_p0) == 1)
9867 : {
9868 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9869 0 : switch (TREE_CODE (_p1))
9870 : {
9871 0 : case REAL_CST:
9872 0 : {
9873 0 : {
9874 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9875 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
9876 0 : if (res) return res;
9877 : }
9878 0 : break;
9879 : }
9880 : default:;
9881 : }
9882 : }
9883 : break;
9884 0 : case CFN_BUILT_IN_LOGF:
9885 0 : if (call_expr_nargs (_p0) == 1)
9886 : {
9887 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9888 0 : switch (TREE_CODE (_p1))
9889 : {
9890 0 : case REAL_CST:
9891 0 : {
9892 0 : {
9893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9894 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
9895 0 : if (res) return res;
9896 : }
9897 0 : break;
9898 : }
9899 : default:;
9900 : }
9901 : }
9902 : break;
9903 0 : case CFN_BUILT_IN_LOGL:
9904 0 : if (call_expr_nargs (_p0) == 1)
9905 : {
9906 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9907 0 : switch (TREE_CODE (_p1))
9908 : {
9909 0 : case REAL_CST:
9910 0 : {
9911 0 : {
9912 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9913 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
9914 0 : if (res) return res;
9915 : }
9916 0 : break;
9917 : }
9918 : default:;
9919 : }
9920 : }
9921 : break;
9922 0 : case CFN_BUILT_IN_LOG10F:
9923 0 : if (call_expr_nargs (_p0) == 1)
9924 : {
9925 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9926 0 : switch (TREE_CODE (_p1))
9927 : {
9928 0 : case REAL_CST:
9929 0 : {
9930 0 : {
9931 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9932 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
9933 0 : if (res) return res;
9934 : }
9935 0 : break;
9936 : }
9937 : default:;
9938 : }
9939 : }
9940 : break;
9941 0 : case CFN_BUILT_IN_LOG10L:
9942 0 : if (call_expr_nargs (_p0) == 1)
9943 : {
9944 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9945 0 : switch (TREE_CODE (_p1))
9946 : {
9947 0 : case REAL_CST:
9948 0 : {
9949 0 : {
9950 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9951 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
9952 0 : if (res) return res;
9953 : }
9954 0 : break;
9955 : }
9956 : default:;
9957 : }
9958 : }
9959 : break;
9960 0 : case CFN_BUILT_IN_CTZIMAX:
9961 0 : if (call_expr_nargs (_p0) == 1)
9962 : {
9963 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9964 0 : switch (TREE_CODE (_p1))
9965 : {
9966 0 : case INTEGER_CST:
9967 0 : {
9968 0 : {
9969 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9970 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9971 0 : if (res) return res;
9972 : }
9973 0 : break;
9974 : }
9975 : default:;
9976 : }
9977 : }
9978 : break;
9979 0 : case CFN_CTZ:
9980 0 : if (call_expr_nargs (_p0) == 2)
9981 : {
9982 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9983 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
9984 0 : switch (TREE_CODE (_p1))
9985 : {
9986 0 : case INTEGER_CST:
9987 0 : {
9988 0 : {
9989 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9990 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9991 0 : if (res) return res;
9992 : }
9993 0 : break;
9994 : }
9995 : default:;
9996 : }
9997 : }
9998 0 : if (call_expr_nargs (_p0) == 1)
9999 : {
10000 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10001 0 : switch (TREE_CODE (_p1))
10002 : {
10003 0 : case INTEGER_CST:
10004 0 : {
10005 0 : {
10006 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10007 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_CTZ);
10008 0 : if (res) return res;
10009 : }
10010 0 : break;
10011 : }
10012 : default:;
10013 : }
10014 : }
10015 : break;
10016 0 : case CFN_EXP:
10017 0 : if (call_expr_nargs (_p0) == 1)
10018 : {
10019 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10020 0 : switch (TREE_CODE (_p1))
10021 : {
10022 0 : case REAL_CST:
10023 0 : {
10024 0 : {
10025 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10026 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10027 0 : if (res) return res;
10028 : }
10029 0 : break;
10030 : }
10031 : default:;
10032 : }
10033 : }
10034 : break;
10035 0 : case CFN_LOG:
10036 0 : if (call_expr_nargs (_p0) == 1)
10037 : {
10038 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10039 0 : switch (TREE_CODE (_p1))
10040 : {
10041 0 : case REAL_CST:
10042 0 : {
10043 0 : {
10044 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10045 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10046 0 : if (res) return res;
10047 : }
10048 0 : break;
10049 : }
10050 : default:;
10051 : }
10052 : }
10053 : break;
10054 0 : case CFN_EXP2:
10055 0 : if (call_expr_nargs (_p0) == 1)
10056 : {
10057 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10058 0 : switch (TREE_CODE (_p1))
10059 : {
10060 0 : case REAL_CST:
10061 0 : {
10062 0 : {
10063 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10064 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10065 0 : if (res) return res;
10066 : }
10067 0 : break;
10068 : }
10069 : default:;
10070 : }
10071 : }
10072 : break;
10073 0 : case CFN_LOG2:
10074 0 : if (call_expr_nargs (_p0) == 1)
10075 : {
10076 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10077 0 : switch (TREE_CODE (_p1))
10078 : {
10079 0 : case REAL_CST:
10080 0 : {
10081 0 : {
10082 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10083 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10084 0 : if (res) return res;
10085 : }
10086 0 : break;
10087 : }
10088 : default:;
10089 : }
10090 : }
10091 : break;
10092 0 : case CFN_EXP10:
10093 0 : if (call_expr_nargs (_p0) == 1)
10094 : {
10095 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10096 0 : switch (TREE_CODE (_p1))
10097 : {
10098 0 : case REAL_CST:
10099 0 : {
10100 0 : {
10101 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10102 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10103 0 : if (res) return res;
10104 : }
10105 0 : break;
10106 : }
10107 : default:;
10108 : }
10109 : }
10110 : break;
10111 0 : case CFN_BUILT_IN_CTZLL:
10112 0 : if (call_expr_nargs (_p0) == 1)
10113 : {
10114 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10115 0 : switch (TREE_CODE (_p1))
10116 : {
10117 0 : case INTEGER_CST:
10118 0 : {
10119 0 : {
10120 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10121 0 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10122 0 : if (res) return res;
10123 : }
10124 0 : break;
10125 : }
10126 : default:;
10127 : }
10128 : }
10129 : break;
10130 0 : case CFN_LOG10:
10131 0 : if (call_expr_nargs (_p0) == 1)
10132 : {
10133 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10134 0 : switch (TREE_CODE (_p1))
10135 : {
10136 0 : case REAL_CST:
10137 0 : {
10138 0 : {
10139 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10140 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10141 0 : if (res) return res;
10142 : }
10143 0 : break;
10144 : }
10145 : default:;
10146 : }
10147 : }
10148 : break;
10149 0 : case CFN_BUILT_IN_EXP10:
10150 0 : if (call_expr_nargs (_p0) == 1)
10151 : {
10152 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10153 0 : switch (TREE_CODE (_p1))
10154 : {
10155 0 : case REAL_CST:
10156 0 : {
10157 0 : {
10158 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10159 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10160 0 : if (res) return res;
10161 : }
10162 0 : break;
10163 : }
10164 : default:;
10165 : }
10166 : }
10167 : break;
10168 0 : case CFN_BUILT_IN_EXP2F:
10169 0 : if (call_expr_nargs (_p0) == 1)
10170 : {
10171 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10172 0 : switch (TREE_CODE (_p1))
10173 : {
10174 0 : case REAL_CST:
10175 0 : {
10176 0 : {
10177 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10178 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10179 0 : if (res) return res;
10180 : }
10181 0 : break;
10182 : }
10183 : default:;
10184 : }
10185 : }
10186 : break;
10187 0 : case CFN_BUILT_IN_EXP2L:
10188 0 : if (call_expr_nargs (_p0) == 1)
10189 : {
10190 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10191 0 : switch (TREE_CODE (_p1))
10192 : {
10193 0 : case REAL_CST:
10194 0 : {
10195 0 : {
10196 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10197 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10198 0 : if (res) return res;
10199 : }
10200 0 : break;
10201 : }
10202 : default:;
10203 : }
10204 : }
10205 : break;
10206 0 : case CFN_BUILT_IN_LOG10:
10207 0 : if (call_expr_nargs (_p0) == 1)
10208 : {
10209 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10210 0 : switch (TREE_CODE (_p1))
10211 : {
10212 0 : case REAL_CST:
10213 0 : {
10214 0 : {
10215 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10216 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10217 0 : if (res) return res;
10218 : }
10219 0 : break;
10220 : }
10221 : default:;
10222 : }
10223 : }
10224 : break;
10225 0 : case CFN_BUILT_IN_LOG2F:
10226 0 : if (call_expr_nargs (_p0) == 1)
10227 : {
10228 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10229 0 : switch (TREE_CODE (_p1))
10230 : {
10231 0 : case REAL_CST:
10232 0 : {
10233 0 : {
10234 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10235 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10236 0 : if (res) return res;
10237 : }
10238 0 : break;
10239 : }
10240 : default:;
10241 : }
10242 : }
10243 : break;
10244 0 : case CFN_BUILT_IN_LOG2L:
10245 0 : if (call_expr_nargs (_p0) == 1)
10246 : {
10247 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10248 0 : switch (TREE_CODE (_p1))
10249 : {
10250 0 : case REAL_CST:
10251 0 : {
10252 0 : {
10253 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10254 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10255 0 : if (res) return res;
10256 : }
10257 0 : break;
10258 : }
10259 : default:;
10260 : }
10261 : }
10262 : break;
10263 : default:;
10264 : }
10265 : break;
10266 : default:;
10267 : }
10268 : return NULL_TREE;
10269 : }
10270 :
10271 : tree
10272 1908 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10273 : {
10274 1908 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10275 1908 : if (integer_all_onesp (_p0))
10276 : {
10277 0 : {
10278 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10279 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10280 0 : if (res) return res;
10281 : }
10282 : }
10283 1908 : if (integer_zerop (_p1))
10284 : {
10285 0 : {
10286 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10287 0 : tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10288 0 : if (res) return res;
10289 : }
10290 : }
10291 1908 : if (integer_zerop (_p0))
10292 : {
10293 0 : {
10294 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10295 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10296 0 : if (res) return res;
10297 : }
10298 : }
10299 1908 : switch (TREE_CODE (_p1))
10300 : {
10301 0 : case VECTOR_CST:
10302 0 : {
10303 0 : {
10304 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10305 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10306 0 : if (res) return res;
10307 : }
10308 0 : break;
10309 : }
10310 0 : case CONSTRUCTOR:
10311 0 : {
10312 0 : {
10313 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10314 0 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10315 0 : if (res) return res;
10316 : }
10317 0 : break;
10318 : }
10319 1238 : case INTEGER_CST:
10320 1238 : {
10321 1238 : {
10322 1238 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10323 1238 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1735;
10324 1238 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1735;
10325 1238 : {
10326 1238 : tree res_op0;
10327 1238 : res_op0 = captures[0];
10328 1238 : tree res_op1;
10329 1238 : res_op1 = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
10330 1238 : build_int_cst (TREE_TYPE (captures[1]),
10331 1238 : element_precision (type)), captures[1]);
10332 1238 : tree _r;
10333 1238 : _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
10334 1238 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
10335 1238 : return _r;
10336 : }
10337 0 : next_after_fail1735:;
10338 : }
10339 0 : break;
10340 : }
10341 0 : case MINUS_EXPR:
10342 0 : {
10343 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10344 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10345 0 : switch (TREE_CODE (_q30))
10346 : {
10347 0 : case INTEGER_CST:
10348 0 : {
10349 0 : {
10350 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10351 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
10352 0 : if (res) return res;
10353 : }
10354 0 : break;
10355 : }
10356 : default:;
10357 : }
10358 : break;
10359 : }
10360 670 : default:;
10361 : }
10362 670 : switch (TREE_CODE (_p0))
10363 : {
10364 0 : case LROTATE_EXPR:
10365 0 : {
10366 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10367 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10368 0 : switch (TREE_CODE (_q21))
10369 : {
10370 0 : case INTEGER_CST:
10371 0 : {
10372 0 : switch (TREE_CODE (_p1))
10373 : {
10374 0 : case INTEGER_CST:
10375 0 : {
10376 0 : {
10377 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10378 0 : tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10379 0 : if (res) return res;
10380 : }
10381 0 : break;
10382 : }
10383 : default:;
10384 : }
10385 : break;
10386 : }
10387 : default:;
10388 : }
10389 : break;
10390 : }
10391 : default:;
10392 : }
10393 : return NULL_TREE;
10394 : }
10395 :
10396 : tree
10397 2784 : generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10398 : {
10399 2784 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10400 2784 : if (integer_all_onesp (_p0))
10401 : {
10402 0 : {
10403 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10404 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10405 0 : if (res) return res;
10406 : }
10407 : }
10408 2784 : if (integer_zerop (_p1))
10409 : {
10410 1 : {
10411 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10412 1 : tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10413 1 : if (res) return res;
10414 : }
10415 : }
10416 2783 : if (integer_zerop (_p0))
10417 : {
10418 0 : {
10419 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10420 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10421 0 : if (res) return res;
10422 : }
10423 : }
10424 2783 : switch (TREE_CODE (_p1))
10425 : {
10426 0 : case VECTOR_CST:
10427 0 : {
10428 0 : {
10429 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10430 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10431 0 : if (res) return res;
10432 : }
10433 0 : break;
10434 : }
10435 0 : case CONSTRUCTOR:
10436 0 : {
10437 0 : {
10438 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10439 0 : tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10440 0 : if (res) return res;
10441 : }
10442 0 : break;
10443 : }
10444 0 : case MINUS_EXPR:
10445 0 : {
10446 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10447 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10448 0 : switch (TREE_CODE (_q30))
10449 : {
10450 0 : case INTEGER_CST:
10451 0 : {
10452 0 : {
10453 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10454 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
10455 0 : if (res) return res;
10456 : }
10457 0 : break;
10458 : }
10459 : default:;
10460 : }
10461 : break;
10462 : }
10463 2783 : default:;
10464 : }
10465 2783 : switch (TREE_CODE (_p0))
10466 : {
10467 0 : case RROTATE_EXPR:
10468 0 : {
10469 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10470 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10471 0 : switch (TREE_CODE (_q21))
10472 : {
10473 0 : case INTEGER_CST:
10474 0 : {
10475 0 : switch (TREE_CODE (_p1))
10476 : {
10477 0 : case INTEGER_CST:
10478 0 : {
10479 0 : {
10480 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10481 0 : tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10482 0 : if (res) return res;
10483 : }
10484 0 : break;
10485 : }
10486 : default:;
10487 : }
10488 : break;
10489 : }
10490 : default:;
10491 : }
10492 : break;
10493 : }
10494 : default:;
10495 : }
10496 : return NULL_TREE;
10497 : }
10498 :
10499 : tree
10500 730895 : generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10501 : {
10502 730895 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10503 730895 : switch (TREE_CODE (_p0))
10504 : {
10505 0 : case VEC_COND_EXPR:
10506 0 : {
10507 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10508 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10509 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10510 0 : switch (TREE_CODE (_p1))
10511 : {
10512 0 : case VEC_COND_EXPR:
10513 0 : {
10514 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10515 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10516 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10517 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10518 : {
10519 0 : {
10520 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10521 0 : if (VECTOR_TYPE_P (type)
10522 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10523 0 : || types_match (type, TREE_TYPE (captures[2]))
10524 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10525 : || (optimize_vectors_before_lowering_p ()
10526 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10527 : )
10528 : {
10529 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1737;
10530 0 : {
10531 0 : tree res_op0;
10532 0 : res_op0 = captures[1];
10533 0 : tree res_op1;
10534 0 : {
10535 0 : tree _o1[2], _r1;
10536 0 : _o1[0] = captures[2];
10537 0 : _o1[1] = captures[5];
10538 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10539 0 : if (EXPR_P (_r1))
10540 0 : goto next_after_fail1737;
10541 0 : res_op1 = _r1;
10542 : }
10543 0 : tree res_op2;
10544 0 : {
10545 0 : tree _o1[2], _r1;
10546 0 : _o1[0] = captures[3];
10547 0 : _o1[1] = captures[6];
10548 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10549 0 : if (EXPR_P (_r1))
10550 0 : goto next_after_fail1737;
10551 0 : res_op2 = _r1;
10552 : }
10553 0 : tree _r;
10554 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10555 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
10556 0 : return _r;
10557 : }
10558 0 : next_after_fail1737:;
10559 : }
10560 : }
10561 : }
10562 : break;
10563 : }
10564 0 : default:;
10565 : }
10566 0 : {
10567 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10568 0 : if (VECTOR_TYPE_P (type)
10569 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10570 0 : || types_match (type, TREE_TYPE (captures[2]))
10571 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10572 : || (optimize_vectors_before_lowering_p ()
10573 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10574 : )
10575 : {
10576 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1738;
10577 0 : {
10578 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1738;
10579 0 : tree res_op0;
10580 0 : res_op0 = captures[1];
10581 0 : tree res_op1;
10582 0 : {
10583 0 : tree _o1[2], _r1;
10584 0 : _o1[0] = captures[2];
10585 0 : _o1[1] = unshare_expr (captures[4]);
10586 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10587 0 : if (EXPR_P (_r1))
10588 0 : goto next_after_fail1738;
10589 0 : res_op1 = _r1;
10590 : }
10591 0 : tree res_op2;
10592 0 : {
10593 0 : tree _o1[2], _r1;
10594 0 : _o1[0] = captures[3];
10595 0 : _o1[1] = captures[4];
10596 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10597 0 : if (EXPR_P (_r1))
10598 0 : goto next_after_fail1738;
10599 0 : res_op2 = _r1;
10600 : }
10601 0 : tree _r;
10602 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10603 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
10604 0 : return _r;
10605 : }
10606 0 : next_after_fail1738:;
10607 : }
10608 : }
10609 0 : break;
10610 : }
10611 730895 : default:;
10612 : }
10613 730895 : switch (TREE_CODE (_p1))
10614 : {
10615 0 : case VEC_COND_EXPR:
10616 0 : {
10617 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10618 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10619 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10620 0 : {
10621 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10622 0 : if (VECTOR_TYPE_P (type)
10623 0 : && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
10624 0 : || types_match (type, TREE_TYPE (captures[3]))
10625 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10626 : || (optimize_vectors_before_lowering_p ()
10627 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10628 : )
10629 : {
10630 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1739;
10631 0 : {
10632 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1739;
10633 0 : tree res_op0;
10634 0 : res_op0 = captures[2];
10635 0 : tree res_op1;
10636 0 : {
10637 0 : tree _o1[2], _r1;
10638 0 : _o1[0] = unshare_expr (captures[0]);
10639 0 : _o1[1] = captures[3];
10640 0 : _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
10641 0 : if (EXPR_P (_r1))
10642 0 : goto next_after_fail1739;
10643 0 : res_op1 = _r1;
10644 : }
10645 0 : tree res_op2;
10646 0 : {
10647 0 : tree _o1[2], _r1;
10648 0 : _o1[0] = captures[0];
10649 0 : _o1[1] = 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_fail1739;
10653 0 : res_op2 = _r1;
10654 : }
10655 0 : tree _r;
10656 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10657 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
10658 0 : return _r;
10659 : }
10660 0 : next_after_fail1739:;
10661 : }
10662 : }
10663 0 : break;
10664 : }
10665 730895 : default:;
10666 : }
10667 730895 : switch (TREE_CODE (_p0))
10668 : {
10669 0 : case FLOAT_EXPR:
10670 0 : {
10671 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10672 0 : switch (TREE_CODE (_p1))
10673 : {
10674 0 : case FLOAT_EXPR:
10675 0 : {
10676 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10677 0 : {
10678 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10679 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10680 0 : if (res) return res;
10681 : }
10682 0 : break;
10683 : }
10684 : default:;
10685 : }
10686 : break;
10687 : }
10688 18 : case NEGATE_EXPR:
10689 18 : {
10690 18 : tree _q20 = TREE_OPERAND (_p0, 0);
10691 18 : switch (TREE_CODE (_p1))
10692 : {
10693 18 : case NEGATE_EXPR:
10694 18 : {
10695 18 : tree _q40 = TREE_OPERAND (_p1, 0);
10696 18 : {
10697 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10698 18 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10699 18 : if (res) return res;
10700 : }
10701 0 : break;
10702 : }
10703 0 : default:;
10704 : }
10705 0 : if (CONSTANT_CLASS_P (_p1))
10706 : {
10707 0 : {
10708 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10709 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
10710 0 : if (res) return res;
10711 : }
10712 : }
10713 : break;
10714 : }
10715 730877 : default:;
10716 : }
10717 730877 : switch (TREE_CODE (_p1))
10718 : {
10719 519 : case REAL_CST:
10720 519 : {
10721 519 : {
10722 519 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10723 519 : tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
10724 519 : if (res) return res;
10725 : }
10726 519 : break;
10727 : }
10728 730877 : default:;
10729 : }
10730 730877 : {
10731 730877 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10732 730877 : if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
10733 : )
10734 : {
10735 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1740;
10736 0 : {
10737 0 : tree _r;
10738 0 : _r = constant_boolean_node (true, type);
10739 0 : if (TREE_SIDE_EFFECTS (captures[0]))
10740 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10741 0 : if (TREE_SIDE_EFFECTS (captures[1]))
10742 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10743 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
10744 0 : return _r;
10745 : }
10746 0 : next_after_fail1740:;
10747 : }
10748 : else
10749 : {
10750 730877 : if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
10751 : )
10752 : {
10753 35 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1741;
10754 35 : {
10755 35 : tree _r;
10756 35 : _r = constant_boolean_node (false, type);
10757 35 : if (TREE_SIDE_EFFECTS (captures[0]))
10758 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10759 35 : if (TREE_SIDE_EFFECTS (captures[1]))
10760 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10761 35 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
10762 35 : return _r;
10763 : }
10764 0 : next_after_fail1741:;
10765 : }
10766 : }
10767 : }
10768 730842 : return NULL_TREE;
10769 : }
10770 :
10771 : tree
10772 695569 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10773 : {
10774 695569 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10775 695569 : switch (TREE_CODE (_p0))
10776 : {
10777 0 : case VEC_COND_EXPR:
10778 0 : {
10779 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10780 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10781 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10782 0 : switch (TREE_CODE (_p1))
10783 : {
10784 0 : case VEC_COND_EXPR:
10785 0 : {
10786 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10787 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10788 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10789 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10790 : {
10791 0 : {
10792 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10793 0 : if (VECTOR_TYPE_P (type)
10794 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10795 0 : || types_match (type, TREE_TYPE (captures[2]))
10796 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10797 : || (optimize_vectors_before_lowering_p ()
10798 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10799 : )
10800 : {
10801 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1747;
10802 0 : {
10803 0 : tree res_op0;
10804 0 : res_op0 = captures[1];
10805 0 : tree res_op1;
10806 0 : {
10807 0 : tree _o1[2], _r1;
10808 0 : _o1[0] = captures[2];
10809 0 : _o1[1] = captures[5];
10810 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10811 0 : if (EXPR_P (_r1))
10812 0 : goto next_after_fail1747;
10813 0 : res_op1 = _r1;
10814 : }
10815 0 : tree res_op2;
10816 0 : {
10817 0 : tree _o1[2], _r1;
10818 0 : _o1[0] = captures[3];
10819 0 : _o1[1] = captures[6];
10820 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10821 0 : if (EXPR_P (_r1))
10822 0 : goto next_after_fail1747;
10823 0 : res_op2 = _r1;
10824 : }
10825 0 : tree _r;
10826 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10827 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
10828 0 : return _r;
10829 : }
10830 0 : next_after_fail1747:;
10831 : }
10832 : }
10833 : }
10834 : break;
10835 : }
10836 0 : default:;
10837 : }
10838 0 : {
10839 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10840 0 : if (VECTOR_TYPE_P (type)
10841 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10842 0 : || types_match (type, TREE_TYPE (captures[2]))
10843 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10844 : || (optimize_vectors_before_lowering_p ()
10845 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10846 : )
10847 : {
10848 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1748;
10849 0 : {
10850 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1748;
10851 0 : tree res_op0;
10852 0 : res_op0 = captures[1];
10853 0 : tree res_op1;
10854 0 : {
10855 0 : tree _o1[2], _r1;
10856 0 : _o1[0] = captures[2];
10857 0 : _o1[1] = unshare_expr (captures[4]);
10858 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10859 0 : if (EXPR_P (_r1))
10860 0 : goto next_after_fail1748;
10861 0 : res_op1 = _r1;
10862 : }
10863 0 : tree res_op2;
10864 0 : {
10865 0 : tree _o1[2], _r1;
10866 0 : _o1[0] = captures[3];
10867 0 : _o1[1] = captures[4];
10868 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10869 0 : if (EXPR_P (_r1))
10870 0 : goto next_after_fail1748;
10871 0 : res_op2 = _r1;
10872 : }
10873 0 : tree _r;
10874 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10875 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
10876 0 : return _r;
10877 : }
10878 0 : next_after_fail1748:;
10879 : }
10880 : }
10881 0 : break;
10882 : }
10883 695569 : default:;
10884 : }
10885 695569 : switch (TREE_CODE (_p1))
10886 : {
10887 0 : case VEC_COND_EXPR:
10888 0 : {
10889 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10890 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10891 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10892 0 : {
10893 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10894 0 : if (VECTOR_TYPE_P (type)
10895 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10896 0 : || types_match (type, TREE_TYPE (captures[3]))
10897 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10898 : || (optimize_vectors_before_lowering_p ()
10899 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10900 : )
10901 : {
10902 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1749;
10903 0 : {
10904 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1749;
10905 0 : tree res_op0;
10906 0 : res_op0 = captures[2];
10907 0 : tree res_op1;
10908 0 : {
10909 0 : tree _o1[2], _r1;
10910 0 : _o1[0] = unshare_expr (captures[0]);
10911 0 : _o1[1] = captures[3];
10912 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10913 0 : if (EXPR_P (_r1))
10914 0 : goto next_after_fail1749;
10915 0 : res_op1 = _r1;
10916 : }
10917 0 : tree res_op2;
10918 0 : {
10919 0 : tree _o1[2], _r1;
10920 0 : _o1[0] = captures[0];
10921 0 : _o1[1] = 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_fail1749;
10925 0 : res_op2 = _r1;
10926 : }
10927 0 : tree _r;
10928 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10929 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
10930 0 : return _r;
10931 : }
10932 0 : next_after_fail1749:;
10933 : }
10934 : }
10935 0 : break;
10936 : }
10937 695569 : default:;
10938 : }
10939 695569 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10940 : {
10941 0 : {
10942 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10943 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, captures, UNLT_EXPR);
10944 0 : if (res) return res;
10945 : }
10946 : }
10947 695569 : switch (TREE_CODE (_p0))
10948 : {
10949 283 : case FLOAT_EXPR:
10950 283 : {
10951 283 : tree _q20 = TREE_OPERAND (_p0, 0);
10952 283 : switch (TREE_CODE (_p1))
10953 : {
10954 0 : case FLOAT_EXPR:
10955 0 : {
10956 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10957 0 : {
10958 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10959 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
10960 0 : if (res) return res;
10961 : }
10962 0 : break;
10963 : }
10964 : default:;
10965 : }
10966 : break;
10967 : }
10968 0 : case NEGATE_EXPR:
10969 0 : {
10970 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10971 0 : switch (TREE_CODE (_p1))
10972 : {
10973 0 : case NEGATE_EXPR:
10974 0 : {
10975 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10976 0 : {
10977 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10978 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
10979 0 : if (res) return res;
10980 : }
10981 0 : break;
10982 : }
10983 0 : default:;
10984 : }
10985 0 : if (CONSTANT_CLASS_P (_p1))
10986 : {
10987 0 : {
10988 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10989 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
10990 0 : if (res) return res;
10991 : }
10992 : }
10993 : break;
10994 : }
10995 695569 : default:;
10996 : }
10997 695569 : switch (TREE_CODE (_p1))
10998 : {
10999 349179 : case REAL_CST:
11000 349179 : {
11001 349179 : {
11002 349179 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11003 349179 : tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11004 349179 : if (res) return res;
11005 : }
11006 349177 : break;
11007 : }
11008 : default:;
11009 : }
11010 : return NULL_TREE;
11011 : }
11012 :
11013 : tree
11014 87 : generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11015 : {
11016 87 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11017 87 : switch (TREE_CODE (_p0))
11018 : {
11019 0 : case VEC_COND_EXPR:
11020 0 : {
11021 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11022 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11023 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11024 0 : switch (TREE_CODE (_p1))
11025 : {
11026 0 : case VEC_COND_EXPR:
11027 0 : {
11028 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11029 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11030 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11031 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11032 : {
11033 0 : {
11034 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11035 0 : if (VECTOR_TYPE_P (type)
11036 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11037 0 : || types_match (type, TREE_TYPE (captures[2]))
11038 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11039 : || (optimize_vectors_before_lowering_p ()
11040 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11041 : )
11042 : {
11043 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1762;
11044 0 : {
11045 0 : tree res_op0;
11046 0 : res_op0 = captures[1];
11047 0 : tree res_op1;
11048 0 : {
11049 0 : tree _o1[2], _r1;
11050 0 : _o1[0] = captures[2];
11051 0 : _o1[1] = captures[5];
11052 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11053 0 : if (EXPR_P (_r1))
11054 0 : goto next_after_fail1762;
11055 0 : res_op1 = _r1;
11056 : }
11057 0 : tree res_op2;
11058 0 : {
11059 0 : tree _o1[2], _r1;
11060 0 : _o1[0] = captures[3];
11061 0 : _o1[1] = captures[6];
11062 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11063 0 : if (EXPR_P (_r1))
11064 0 : goto next_after_fail1762;
11065 0 : res_op2 = _r1;
11066 : }
11067 0 : tree _r;
11068 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11069 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
11070 0 : return _r;
11071 : }
11072 0 : next_after_fail1762:;
11073 : }
11074 : }
11075 : }
11076 : break;
11077 : }
11078 0 : default:;
11079 : }
11080 0 : {
11081 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11082 0 : if (VECTOR_TYPE_P (type)
11083 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11084 0 : || types_match (type, TREE_TYPE (captures[2]))
11085 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11086 : || (optimize_vectors_before_lowering_p ()
11087 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11088 : )
11089 : {
11090 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1763;
11091 0 : {
11092 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1763;
11093 0 : tree res_op0;
11094 0 : res_op0 = captures[1];
11095 0 : tree res_op1;
11096 0 : {
11097 0 : tree _o1[2], _r1;
11098 0 : _o1[0] = captures[2];
11099 0 : _o1[1] = unshare_expr (captures[4]);
11100 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11101 0 : if (EXPR_P (_r1))
11102 0 : goto next_after_fail1763;
11103 0 : res_op1 = _r1;
11104 : }
11105 0 : tree res_op2;
11106 0 : {
11107 0 : tree _o1[2], _r1;
11108 0 : _o1[0] = captures[3];
11109 0 : _o1[1] = captures[4];
11110 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11111 0 : if (EXPR_P (_r1))
11112 0 : goto next_after_fail1763;
11113 0 : res_op2 = _r1;
11114 : }
11115 0 : tree _r;
11116 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
11118 0 : return _r;
11119 : }
11120 0 : next_after_fail1763:;
11121 : }
11122 : }
11123 0 : break;
11124 : }
11125 87 : default:;
11126 : }
11127 87 : switch (TREE_CODE (_p1))
11128 : {
11129 0 : case VEC_COND_EXPR:
11130 0 : {
11131 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11132 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11133 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11134 0 : {
11135 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11136 0 : if (VECTOR_TYPE_P (type)
11137 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
11138 0 : || types_match (type, TREE_TYPE (captures[3]))
11139 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11140 : || (optimize_vectors_before_lowering_p ()
11141 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11142 : )
11143 : {
11144 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1764;
11145 0 : {
11146 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1764;
11147 0 : tree res_op0;
11148 0 : res_op0 = captures[2];
11149 0 : tree res_op1;
11150 0 : {
11151 0 : tree _o1[2], _r1;
11152 0 : _o1[0] = unshare_expr (captures[0]);
11153 0 : _o1[1] = captures[3];
11154 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
11155 0 : if (EXPR_P (_r1))
11156 0 : goto next_after_fail1764;
11157 0 : res_op1 = _r1;
11158 : }
11159 0 : tree res_op2;
11160 0 : {
11161 0 : tree _o1[2], _r1;
11162 0 : _o1[0] = captures[0];
11163 0 : _o1[1] = 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_fail1764;
11167 0 : res_op2 = _r1;
11168 : }
11169 0 : tree _r;
11170 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11171 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
11172 0 : return _r;
11173 : }
11174 0 : next_after_fail1764:;
11175 : }
11176 : }
11177 0 : break;
11178 : }
11179 87 : default:;
11180 : }
11181 87 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11182 : {
11183 2 : {
11184 2 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11185 2 : if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
11186 : )
11187 : {
11188 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1765;
11189 0 : {
11190 0 : tree _r;
11191 0 : _r = constant_boolean_node (false, type);
11192 0 : if (TREE_SIDE_EFFECTS (captures[0]))
11193 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11194 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
11195 0 : return _r;
11196 : }
11197 0 : next_after_fail1765:;
11198 : }
11199 : }
11200 : }
11201 87 : switch (TREE_CODE (_p0))
11202 : {
11203 0 : case FLOAT_EXPR:
11204 0 : {
11205 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11206 0 : switch (TREE_CODE (_p1))
11207 : {
11208 0 : case FLOAT_EXPR:
11209 0 : {
11210 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11211 0 : {
11212 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
11213 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
11214 0 : if (res) return res;
11215 : }
11216 0 : break;
11217 : }
11218 : default:;
11219 : }
11220 : break;
11221 : }
11222 0 : case NEGATE_EXPR:
11223 0 : {
11224 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11225 0 : switch (TREE_CODE (_p1))
11226 : {
11227 0 : case NEGATE_EXPR:
11228 0 : {
11229 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11230 0 : {
11231 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11232 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11233 0 : if (res) return res;
11234 : }
11235 0 : break;
11236 : }
11237 0 : default:;
11238 : }
11239 0 : if (CONSTANT_CLASS_P (_p1))
11240 : {
11241 0 : {
11242 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11243 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
11244 0 : if (res) return res;
11245 : }
11246 : }
11247 : break;
11248 : }
11249 87 : default:;
11250 : }
11251 87 : switch (TREE_CODE (_p1))
11252 : {
11253 2 : case REAL_CST:
11254 2 : {
11255 2 : {
11256 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11257 2 : tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, LTGT_EXPR);
11258 2 : if (res) return res;
11259 : }
11260 2 : break;
11261 : }
11262 : default:;
11263 : }
11264 : return NULL_TREE;
11265 : }
11266 :
11267 : tree
11268 335226 : 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)
11269 : {
11270 335226 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11271 335226 : switch (TREE_CODE (_p0))
11272 : {
11273 12157 : case VECTOR_CST:
11274 12157 : {
11275 12157 : {
11276 12157 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11277 12157 : if (integer_all_onesp (captures[0])
11278 : )
11279 : {
11280 566 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1868;
11281 566 : {
11282 566 : tree _r;
11283 566 : _r = captures[1];
11284 566 : if (TREE_SIDE_EFFECTS (captures[0]))
11285 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11286 566 : if (TREE_SIDE_EFFECTS (captures[2]))
11287 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11288 566 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
11289 566 : return _r;
11290 : }
11291 0 : next_after_fail1868:;
11292 : }
11293 : else
11294 : {
11295 11591 : if (integer_zerop (captures[0])
11296 : )
11297 : {
11298 1684 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1869;
11299 1684 : {
11300 1684 : tree _r;
11301 1684 : _r = captures[2];
11302 1684 : if (TREE_SIDE_EFFECTS (captures[0]))
11303 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11304 1684 : if (TREE_SIDE_EFFECTS (captures[1]))
11305 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11306 1684 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
11307 1684 : return _r;
11308 : }
11309 0 : next_after_fail1869:;
11310 : }
11311 : }
11312 : }
11313 9907 : break;
11314 : }
11315 332976 : default:;
11316 : }
11317 332976 : switch (TREE_CODE (_p1))
11318 : {
11319 279496 : case VECTOR_CST:
11320 279496 : {
11321 279496 : switch (TREE_CODE (_p2))
11322 : {
11323 272916 : case VECTOR_CST:
11324 272916 : {
11325 272916 : {
11326 272916 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11327 272916 : if (VECTOR_BOOLEAN_TYPE_P (type)
11328 273054 : && types_match (type, TREE_TYPE (captures[0]))
11329 : )
11330 : {
11331 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11332 : )
11333 : {
11334 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1870;
11335 28 : {
11336 28 : tree res_op0;
11337 28 : res_op0 = captures[0];
11338 28 : tree _r;
11339 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11340 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11341 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11342 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11343 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11344 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1058, __FILE__, __LINE__, true);
11345 28 : return _r;
11346 : }
11347 0 : next_after_fail1870:;
11348 : }
11349 : else
11350 : {
11351 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11352 : )
11353 : {
11354 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1871;
11355 73 : {
11356 73 : tree _r;
11357 73 : _r = captures[0];
11358 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11359 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11360 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11361 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11362 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
11363 73 : return _r;
11364 : }
11365 0 : next_after_fail1871:;
11366 : }
11367 : }
11368 : }
11369 : }
11370 272815 : break;
11371 : }
11372 : default:;
11373 : }
11374 : break;
11375 : }
11376 332875 : default:;
11377 : }
11378 332875 : switch (TREE_CODE (_p0))
11379 : {
11380 1255 : case NE_EXPR:
11381 1255 : {
11382 1255 : tree _q20 = TREE_OPERAND (_p0, 0);
11383 1255 : tree _q21 = TREE_OPERAND (_p0, 1);
11384 1255 : switch (TREE_CODE (_p1))
11385 : {
11386 6 : case MINUS_EXPR:
11387 6 : {
11388 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11389 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11390 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11391 : {
11392 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11393 : {
11394 6 : if (integer_zerop (_p2))
11395 : {
11396 6 : {
11397 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11398 6 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures);
11399 6 : if (res) return res;
11400 : }
11401 : }
11402 : }
11403 : }
11404 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11405 : {
11406 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11407 : {
11408 0 : if (integer_zerop (_p2))
11409 : {
11410 0 : {
11411 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11412 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, _p2, captures);
11413 0 : if (res) return res;
11414 : }
11415 : }
11416 : }
11417 : }
11418 : break;
11419 : }
11420 6 : case BIT_XOR_EXPR:
11421 6 : {
11422 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11423 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11424 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11425 : {
11426 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11427 : {
11428 6 : if (integer_zerop (_p2))
11429 : {
11430 6 : {
11431 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11432 6 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures);
11433 6 : if (res) return res;
11434 : }
11435 : }
11436 : }
11437 : }
11438 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11439 : {
11440 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11441 : {
11442 0 : if (integer_zerop (_p2))
11443 : {
11444 0 : {
11445 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11446 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, _p2, captures);
11447 0 : if (res) return res;
11448 : }
11449 : }
11450 : }
11451 : }
11452 : break;
11453 : }
11454 6 : case BIT_AND_EXPR:
11455 6 : {
11456 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11457 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11458 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11459 : {
11460 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11461 : {
11462 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11463 : {
11464 6 : {
11465 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11466 6 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11467 6 : if (res) return res;
11468 : }
11469 : }
11470 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11471 : {
11472 0 : {
11473 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11474 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11475 0 : if (res) return res;
11476 : }
11477 : }
11478 : }
11479 : }
11480 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11481 : {
11482 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11483 : {
11484 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11485 : {
11486 0 : {
11487 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11488 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11489 0 : if (res) return res;
11490 : }
11491 : }
11492 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11493 : {
11494 0 : {
11495 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11496 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11497 0 : if (res) return res;
11498 : }
11499 : }
11500 : }
11501 : }
11502 : break;
11503 : }
11504 6 : case BIT_IOR_EXPR:
11505 6 : {
11506 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11507 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11508 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11509 : {
11510 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11511 : {
11512 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11513 : {
11514 6 : {
11515 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11516 6 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11517 6 : if (res) return res;
11518 : }
11519 : }
11520 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11521 : {
11522 0 : {
11523 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11524 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11525 0 : if (res) return res;
11526 : }
11527 : }
11528 : }
11529 : }
11530 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11531 : {
11532 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11533 : {
11534 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11535 : {
11536 0 : {
11537 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11538 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11539 0 : if (res) return res;
11540 : }
11541 : }
11542 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11543 : {
11544 0 : {
11545 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11546 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11547 0 : if (res) return res;
11548 : }
11549 : }
11550 : }
11551 : }
11552 : break;
11553 : }
11554 0 : case MIN_EXPR:
11555 0 : {
11556 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11557 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11558 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11559 : {
11560 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11561 : {
11562 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11563 : {
11564 0 : {
11565 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11566 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11567 0 : if (res) return res;
11568 : }
11569 : }
11570 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11571 : {
11572 0 : {
11573 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11574 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11575 0 : if (res) return res;
11576 : }
11577 : }
11578 : }
11579 : }
11580 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11581 : {
11582 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11583 : {
11584 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11585 : {
11586 0 : {
11587 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11588 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11589 0 : if (res) return res;
11590 : }
11591 : }
11592 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11593 : {
11594 0 : {
11595 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11596 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11597 0 : if (res) return res;
11598 : }
11599 : }
11600 : }
11601 : }
11602 : break;
11603 : }
11604 0 : case MAX_EXPR:
11605 0 : {
11606 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11607 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11608 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11609 : {
11610 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11611 : {
11612 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11613 : {
11614 0 : {
11615 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11616 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11617 0 : if (res) return res;
11618 : }
11619 : }
11620 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11621 : {
11622 0 : {
11623 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11624 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11625 0 : if (res) return res;
11626 : }
11627 : }
11628 : }
11629 : }
11630 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11631 : {
11632 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11633 : {
11634 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11635 : {
11636 0 : {
11637 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11638 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11639 0 : if (res) return res;
11640 : }
11641 : }
11642 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11643 : {
11644 0 : {
11645 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11646 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11647 0 : if (res) return res;
11648 : }
11649 : }
11650 : }
11651 : }
11652 : break;
11653 : }
11654 6 : case MULT_EXPR:
11655 6 : {
11656 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11657 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11658 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11659 : {
11660 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11661 : {
11662 6 : switch (TREE_CODE (_p2))
11663 : {
11664 6 : case MULT_EXPR:
11665 6 : {
11666 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11667 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11668 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11669 : {
11670 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11671 : {
11672 6 : {
11673 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11674 6 : const enum tree_code op = MULT_EXPR;
11675 6 : if (ANY_INTEGRAL_TYPE_P (type)
11676 : )
11677 : {
11678 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1872;
11679 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1872;
11680 6 : {
11681 6 : tree _r;
11682 6 : _r = captures[2];
11683 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
11684 6 : return _r;
11685 : }
11686 0 : next_after_fail1872:;
11687 : }
11688 : }
11689 : }
11690 : }
11691 : break;
11692 : }
11693 : default:;
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 : switch (TREE_CODE (_p2))
11702 : {
11703 0 : case MULT_EXPR:
11704 0 : {
11705 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11706 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11707 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11708 : {
11709 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11710 : {
11711 0 : {
11712 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11713 0 : const enum tree_code op = MULT_EXPR;
11714 0 : if (ANY_INTEGRAL_TYPE_P (type)
11715 : )
11716 : {
11717 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1873;
11718 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1873;
11719 0 : {
11720 0 : tree _r;
11721 0 : _r = captures[2];
11722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
11723 0 : return _r;
11724 : }
11725 0 : next_after_fail1873:;
11726 : }
11727 : }
11728 : }
11729 : }
11730 : break;
11731 : }
11732 : default:;
11733 : }
11734 : }
11735 : }
11736 : break;
11737 : }
11738 23 : case PLUS_EXPR:
11739 23 : {
11740 23 : tree _q50 = TREE_OPERAND (_p1, 0);
11741 23 : tree _q51 = TREE_OPERAND (_p1, 1);
11742 23 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11743 : {
11744 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11745 : {
11746 12 : switch (TREE_CODE (_p2))
11747 : {
11748 6 : case PLUS_EXPR:
11749 6 : {
11750 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11751 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11752 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11753 : {
11754 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11755 : {
11756 6 : {
11757 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11758 6 : const enum tree_code op = PLUS_EXPR;
11759 6 : if (ANY_INTEGRAL_TYPE_P (type)
11760 : )
11761 : {
11762 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1874;
11763 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1874;
11764 6 : {
11765 6 : tree _r;
11766 6 : _r = captures[2];
11767 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
11768 6 : return _r;
11769 : }
11770 0 : next_after_fail1874:;
11771 : }
11772 : }
11773 : }
11774 : }
11775 : break;
11776 : }
11777 6 : case MULT_EXPR:
11778 6 : {
11779 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11780 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11781 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11782 : {
11783 6 : if (uniform_integer_cst_p (_q81))
11784 : {
11785 6 : {
11786 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11787 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11788 : )
11789 : {
11790 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1875;
11791 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1875;
11792 6 : {
11793 6 : tree _r;
11794 6 : _r = captures[2];
11795 6 : if (TREE_SIDE_EFFECTS (captures[3]))
11796 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11797 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
11798 6 : return _r;
11799 : }
11800 0 : next_after_fail1875:;
11801 : }
11802 : }
11803 : }
11804 : }
11805 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11806 : {
11807 0 : if (uniform_integer_cst_p (_q81))
11808 : {
11809 0 : {
11810 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11811 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11812 : )
11813 : {
11814 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1876;
11815 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1876;
11816 0 : {
11817 0 : tree _r;
11818 0 : _r = captures[2];
11819 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11820 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
11822 0 : return _r;
11823 : }
11824 0 : next_after_fail1876:;
11825 : }
11826 : }
11827 : }
11828 : }
11829 : break;
11830 : }
11831 : default:;
11832 : }
11833 : }
11834 : }
11835 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11836 : {
11837 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11838 : {
11839 0 : switch (TREE_CODE (_p2))
11840 : {
11841 0 : case PLUS_EXPR:
11842 0 : {
11843 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11844 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11845 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11846 : {
11847 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11848 : {
11849 0 : {
11850 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11851 0 : const enum tree_code op = PLUS_EXPR;
11852 0 : if (ANY_INTEGRAL_TYPE_P (type)
11853 : )
11854 : {
11855 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1877;
11856 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1877;
11857 0 : {
11858 0 : tree _r;
11859 0 : _r = captures[2];
11860 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
11861 0 : return _r;
11862 : }
11863 0 : next_after_fail1877:;
11864 : }
11865 : }
11866 : }
11867 : }
11868 : break;
11869 : }
11870 0 : case MULT_EXPR:
11871 0 : {
11872 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11873 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11874 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11875 : {
11876 0 : if (uniform_integer_cst_p (_q81))
11877 : {
11878 0 : {
11879 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11880 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11881 : )
11882 : {
11883 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1878;
11884 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1878;
11885 0 : {
11886 0 : tree _r;
11887 0 : _r = captures[2];
11888 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11889 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11890 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
11891 0 : return _r;
11892 : }
11893 0 : next_after_fail1878:;
11894 : }
11895 : }
11896 : }
11897 : }
11898 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11899 : {
11900 0 : if (uniform_integer_cst_p (_q81))
11901 : {
11902 0 : {
11903 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11904 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11905 : )
11906 : {
11907 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1879;
11908 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1879;
11909 0 : {
11910 0 : tree _r;
11911 0 : _r = captures[2];
11912 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11913 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11914 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
11915 0 : return _r;
11916 : }
11917 0 : next_after_fail1879:;
11918 : }
11919 : }
11920 : }
11921 : }
11922 : break;
11923 : }
11924 : default:;
11925 : }
11926 : }
11927 : }
11928 : break;
11929 : }
11930 : default:;
11931 : }
11932 : break;
11933 : }
11934 332833 : default:;
11935 : }
11936 332833 : switch (TREE_CODE (_p1))
11937 : {
11938 6 : case VEC_COND_EXPR:
11939 6 : {
11940 6 : tree _q30 = TREE_OPERAND (_p1, 0);
11941 6 : tree _q31 = TREE_OPERAND (_p1, 1);
11942 6 : tree _q32 = TREE_OPERAND (_p1, 2);
11943 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11944 : {
11945 0 : {
11946 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
11947 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1880;
11948 0 : {
11949 0 : tree res_op0;
11950 0 : res_op0 = captures[0];
11951 0 : tree res_op1;
11952 0 : res_op1 = captures[1];
11953 0 : tree res_op2;
11954 0 : res_op2 = captures[3];
11955 0 : tree _r;
11956 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11957 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11958 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11959 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
11960 0 : return _r;
11961 : }
11962 0 : next_after_fail1880:;
11963 : }
11964 : }
11965 : break;
11966 : }
11967 332833 : default:;
11968 : }
11969 332833 : switch (TREE_CODE (_p2))
11970 : {
11971 3 : case VEC_COND_EXPR:
11972 3 : {
11973 3 : tree _q40 = TREE_OPERAND (_p2, 0);
11974 3 : tree _q41 = TREE_OPERAND (_p2, 1);
11975 3 : tree _q42 = TREE_OPERAND (_p2, 2);
11976 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11977 : {
11978 0 : {
11979 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
11980 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1881;
11981 0 : {
11982 0 : tree res_op0;
11983 0 : res_op0 = captures[0];
11984 0 : tree res_op1;
11985 0 : res_op1 = captures[1];
11986 0 : tree res_op2;
11987 0 : res_op2 = captures[3];
11988 0 : tree _r;
11989 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11990 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11991 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11992 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
11993 0 : return _r;
11994 : }
11995 0 : next_after_fail1881:;
11996 : }
11997 : }
11998 3 : {
11999 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
12000 3 : if (inverse_conditions_p (captures[0], captures[2])
12001 : )
12002 : {
12003 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1882;
12004 0 : {
12005 0 : tree res_op0;
12006 0 : res_op0 = captures[0];
12007 0 : tree res_op1;
12008 0 : res_op1 = captures[1];
12009 0 : tree res_op2;
12010 0 : res_op2 = captures[3];
12011 0 : tree _r;
12012 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12013 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12014 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12015 0 : if (TREE_SIDE_EFFECTS (captures[4]))
12016 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
12017 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
12018 0 : return _r;
12019 : }
12020 0 : next_after_fail1882:;
12021 : }
12022 : }
12023 3 : break;
12024 : }
12025 332833 : default:;
12026 : }
12027 332833 : switch (TREE_CODE (_p1))
12028 : {
12029 6 : case VEC_COND_EXPR:
12030 6 : {
12031 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12032 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12033 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12034 6 : {
12035 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
12036 6 : if (inverse_conditions_p (captures[0], captures[1])
12037 : )
12038 : {
12039 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1883;
12040 0 : {
12041 0 : tree res_op0;
12042 0 : res_op0 = captures[0];
12043 0 : tree res_op1;
12044 0 : res_op1 = captures[3];
12045 0 : tree res_op2;
12046 0 : res_op2 = captures[4];
12047 0 : tree _r;
12048 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12049 0 : if (TREE_SIDE_EFFECTS (captures[1]))
12050 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12051 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12052 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12053 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
12054 0 : return _r;
12055 : }
12056 0 : next_after_fail1883:;
12057 : }
12058 : }
12059 6 : break;
12060 : }
12061 332833 : default:;
12062 : }
12063 332833 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
12064 : {
12065 33 : {
12066 33 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12067 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1884;
12068 33 : {
12069 33 : tree _r;
12070 33 : _r = captures[1];
12071 33 : if (TREE_SIDE_EFFECTS (captures[0]))
12072 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12073 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1035, __FILE__, __LINE__, true);
12074 33 : return _r;
12075 : }
12076 0 : next_after_fail1884:;
12077 : }
12078 : }
12079 332800 : switch (TREE_CODE (_p0))
12080 : {
12081 66362 : case EQ_EXPR:
12082 66362 : {
12083 66362 : tree _q20 = TREE_OPERAND (_p0, 0);
12084 66362 : tree _q21 = TREE_OPERAND (_p0, 1);
12085 66362 : if (zerop (_q21))
12086 : {
12087 591 : switch (TREE_CODE (_p2))
12088 : {
12089 0 : case NEGATE_EXPR:
12090 0 : {
12091 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12092 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12093 : {
12094 0 : {
12095 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12096 0 : const enum tree_code cmp = EQ_EXPR;
12097 0 : if (!HONOR_SIGNED_ZEROS (type)
12098 0 : && bitwise_equal_p (captures[0], captures[1])
12099 : )
12100 : {
12101 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1885;
12102 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1885;
12103 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1885;
12104 0 : {
12105 0 : tree _r;
12106 0 : _r = captures[2];
12107 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
12108 0 : return _r;
12109 : }
12110 0 : next_after_fail1885:;
12111 : }
12112 : }
12113 : }
12114 : break;
12115 : }
12116 591 : default:;
12117 : }
12118 591 : if (zerop (_p1))
12119 : {
12120 18 : switch (TREE_CODE (_p2))
12121 : {
12122 0 : case NEGATE_EXPR:
12123 0 : {
12124 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12125 0 : {
12126 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12127 0 : const enum tree_code cmp = EQ_EXPR;
12128 0 : if (!HONOR_SIGNED_ZEROS (type)
12129 0 : && bitwise_equal_p (captures[0], captures[2])
12130 : )
12131 : {
12132 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1886;
12133 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1886;
12134 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1886;
12135 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1886;
12136 0 : {
12137 0 : tree _r;
12138 0 : _r = captures[1];
12139 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
12140 0 : return _r;
12141 : }
12142 0 : next_after_fail1886:;
12143 : }
12144 : }
12145 0 : break;
12146 : }
12147 : default:;
12148 : }
12149 : }
12150 : }
12151 66362 : switch (TREE_CODE (_q20))
12152 : {
12153 0 : case MINUS_EXPR:
12154 0 : {
12155 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12156 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12157 0 : if (zerop (_q21))
12158 : {
12159 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12160 : {
12161 0 : switch (TREE_CODE (_p2))
12162 : {
12163 0 : case MINUS_EXPR:
12164 0 : {
12165 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12166 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12167 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12168 : {
12169 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12170 : {
12171 0 : {
12172 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12173 0 : const enum tree_code cmp = EQ_EXPR;
12174 0 : if (!HONOR_SIGNED_ZEROS (type)
12175 : )
12176 : {
12177 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1887;
12178 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1887;
12179 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1887;
12180 0 : {
12181 0 : tree _r;
12182 0 : _r = captures[3];
12183 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
12184 0 : return _r;
12185 : }
12186 0 : next_after_fail1887:;
12187 : }
12188 : }
12189 : }
12190 : }
12191 : break;
12192 : }
12193 : default:;
12194 : }
12195 : }
12196 : }
12197 0 : if (integer_zerop (_q21))
12198 : {
12199 0 : if (integer_zerop (_p1))
12200 : {
12201 0 : switch (TREE_CODE (_p2))
12202 : {
12203 0 : case MINUS_EXPR:
12204 0 : {
12205 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12206 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12207 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12208 : {
12209 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12210 : {
12211 0 : {
12212 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12213 0 : tree res = generic_simplify_537 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12214 0 : if (res) return res;
12215 : }
12216 : }
12217 : }
12218 : break;
12219 : }
12220 : default:;
12221 : }
12222 : }
12223 : }
12224 : break;
12225 : }
12226 : default:;
12227 : }
12228 : break;
12229 : }
12230 0 : case UNEQ_EXPR:
12231 0 : {
12232 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12233 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12234 0 : if (zerop (_q21))
12235 : {
12236 0 : switch (TREE_CODE (_p2))
12237 : {
12238 0 : case NEGATE_EXPR:
12239 0 : {
12240 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12241 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12242 : {
12243 0 : {
12244 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12245 0 : const enum tree_code cmp = UNEQ_EXPR;
12246 0 : if (!HONOR_SIGNED_ZEROS (type)
12247 0 : && bitwise_equal_p (captures[0], captures[1])
12248 : )
12249 : {
12250 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1888;
12251 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1888;
12252 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1888;
12253 0 : {
12254 0 : tree _r;
12255 0 : _r = captures[2];
12256 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
12257 0 : return _r;
12258 : }
12259 0 : next_after_fail1888:;
12260 : }
12261 : }
12262 : }
12263 : break;
12264 : }
12265 0 : default:;
12266 : }
12267 0 : if (zerop (_p1))
12268 : {
12269 0 : switch (TREE_CODE (_p2))
12270 : {
12271 0 : case NEGATE_EXPR:
12272 0 : {
12273 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12274 0 : {
12275 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12276 0 : const enum tree_code cmp = UNEQ_EXPR;
12277 0 : if (!HONOR_SIGNED_ZEROS (type)
12278 0 : && bitwise_equal_p (captures[0], captures[2])
12279 : )
12280 : {
12281 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1889;
12282 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1889;
12283 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1889;
12284 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1889;
12285 0 : {
12286 0 : tree _r;
12287 0 : _r = captures[1];
12288 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
12289 0 : return _r;
12290 : }
12291 0 : next_after_fail1889:;
12292 : }
12293 : }
12294 0 : break;
12295 : }
12296 : default:;
12297 : }
12298 : }
12299 : }
12300 0 : switch (TREE_CODE (_q20))
12301 : {
12302 0 : case MINUS_EXPR:
12303 0 : {
12304 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12305 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12306 0 : if (zerop (_q21))
12307 : {
12308 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12309 : {
12310 0 : switch (TREE_CODE (_p2))
12311 : {
12312 0 : case MINUS_EXPR:
12313 0 : {
12314 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12315 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12316 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12317 : {
12318 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12319 : {
12320 0 : {
12321 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12322 0 : const enum tree_code cmp = UNEQ_EXPR;
12323 0 : if (!HONOR_SIGNED_ZEROS (type)
12324 : )
12325 : {
12326 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1890;
12327 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1890;
12328 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1890;
12329 0 : {
12330 0 : tree _r;
12331 0 : _r = captures[3];
12332 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
12333 0 : return _r;
12334 : }
12335 0 : next_after_fail1890:;
12336 : }
12337 : }
12338 : }
12339 : }
12340 : break;
12341 : }
12342 : default:;
12343 : }
12344 : }
12345 : }
12346 0 : if (integer_zerop (_q21))
12347 : {
12348 0 : if (integer_zerop (_p1))
12349 : {
12350 0 : switch (TREE_CODE (_p2))
12351 : {
12352 0 : case MINUS_EXPR:
12353 0 : {
12354 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12355 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12356 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12357 : {
12358 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12359 : {
12360 0 : {
12361 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12362 0 : tree res = generic_simplify_537 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12363 0 : if (res) return res;
12364 : }
12365 : }
12366 : }
12367 : break;
12368 : }
12369 : default:;
12370 : }
12371 : }
12372 : }
12373 : break;
12374 : }
12375 : default:;
12376 : }
12377 : break;
12378 : }
12379 1213 : case NE_EXPR:
12380 1213 : {
12381 1213 : tree _q20 = TREE_OPERAND (_p0, 0);
12382 1213 : tree _q21 = TREE_OPERAND (_p0, 1);
12383 1213 : if (zerop (_q21))
12384 : {
12385 290 : switch (TREE_CODE (_p2))
12386 : {
12387 0 : case NEGATE_EXPR:
12388 0 : {
12389 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12390 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12391 : {
12392 0 : {
12393 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12394 0 : const enum tree_code cmp = NE_EXPR;
12395 0 : if (!HONOR_SIGNED_ZEROS (type)
12396 0 : && bitwise_equal_p (captures[0], captures[1])
12397 : )
12398 : {
12399 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1891;
12400 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1891;
12401 0 : {
12402 0 : tree _r;
12403 0 : _r = captures[1];
12404 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
12405 0 : return _r;
12406 : }
12407 0 : next_after_fail1891:;
12408 : }
12409 : }
12410 : }
12411 : break;
12412 : }
12413 290 : default:;
12414 : }
12415 290 : if (integer_zerop (_p2))
12416 : {
12417 190 : {
12418 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12419 190 : const enum tree_code cmp = NE_EXPR;
12420 190 : if (!HONOR_SIGNED_ZEROS (type)
12421 190 : && bitwise_equal_p (captures[0], captures[1])
12422 : )
12423 : {
12424 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1892;
12425 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1892;
12426 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1892;
12427 0 : {
12428 0 : tree _r;
12429 0 : _r = captures[1];
12430 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
12431 0 : return _r;
12432 : }
12433 190 : next_after_fail1892:;
12434 : }
12435 : }
12436 : }
12437 : }
12438 1213 : switch (TREE_CODE (_q20))
12439 : {
12440 40 : case MINUS_EXPR:
12441 40 : {
12442 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12443 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12444 40 : if (zerop (_q21))
12445 : {
12446 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12447 : {
12448 0 : switch (TREE_CODE (_p2))
12449 : {
12450 0 : case MINUS_EXPR:
12451 0 : {
12452 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12453 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12454 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12455 : {
12456 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12457 : {
12458 0 : {
12459 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12460 0 : const enum tree_code cmp = NE_EXPR;
12461 0 : if (!HONOR_SIGNED_ZEROS (type)
12462 : )
12463 : {
12464 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1893;
12465 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1893;
12466 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1893;
12467 0 : {
12468 0 : tree _r;
12469 0 : _r = captures[0];
12470 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
12471 0 : return _r;
12472 : }
12473 0 : next_after_fail1893:;
12474 : }
12475 : }
12476 : }
12477 : }
12478 : break;
12479 : }
12480 : default:;
12481 : }
12482 : }
12483 : }
12484 40 : if (integer_zerop (_q21))
12485 : {
12486 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12487 : {
12488 0 : if (integer_zerop (_p2))
12489 : {
12490 0 : {
12491 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12492 0 : tree res = generic_simplify_538 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12493 0 : if (res) return res;
12494 : }
12495 : }
12496 : }
12497 : }
12498 : break;
12499 : }
12500 : default:;
12501 : }
12502 : break;
12503 : }
12504 0 : case LTGT_EXPR:
12505 0 : {
12506 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12507 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12508 0 : if (zerop (_q21))
12509 : {
12510 0 : switch (TREE_CODE (_p2))
12511 : {
12512 0 : case NEGATE_EXPR:
12513 0 : {
12514 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12515 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12516 : {
12517 0 : {
12518 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12519 0 : const enum tree_code cmp = LTGT_EXPR;
12520 0 : if (!HONOR_SIGNED_ZEROS (type)
12521 0 : && bitwise_equal_p (captures[0], captures[1])
12522 : )
12523 : {
12524 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1894;
12525 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1894;
12526 0 : {
12527 0 : tree _r;
12528 0 : _r = captures[1];
12529 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
12530 0 : return _r;
12531 : }
12532 0 : next_after_fail1894:;
12533 : }
12534 : }
12535 : }
12536 : break;
12537 : }
12538 0 : default:;
12539 : }
12540 0 : if (integer_zerop (_p2))
12541 : {
12542 0 : {
12543 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12544 0 : const enum tree_code cmp = LTGT_EXPR;
12545 0 : if (!HONOR_SIGNED_ZEROS (type)
12546 0 : && bitwise_equal_p (captures[0], captures[1])
12547 : )
12548 : {
12549 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1895;
12550 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1895;
12551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1895;
12552 0 : {
12553 0 : tree _r;
12554 0 : _r = captures[1];
12555 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
12556 0 : return _r;
12557 : }
12558 0 : next_after_fail1895:;
12559 : }
12560 : }
12561 : }
12562 : }
12563 0 : switch (TREE_CODE (_q20))
12564 : {
12565 0 : case MINUS_EXPR:
12566 0 : {
12567 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12568 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12569 0 : if (zerop (_q21))
12570 : {
12571 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12572 : {
12573 0 : switch (TREE_CODE (_p2))
12574 : {
12575 0 : case MINUS_EXPR:
12576 0 : {
12577 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12578 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12579 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12580 : {
12581 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12582 : {
12583 0 : {
12584 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12585 0 : const enum tree_code cmp = LTGT_EXPR;
12586 0 : if (!HONOR_SIGNED_ZEROS (type)
12587 : )
12588 : {
12589 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1896;
12590 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1896;
12591 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1896;
12592 0 : {
12593 0 : tree _r;
12594 0 : _r = captures[0];
12595 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
12596 0 : return _r;
12597 : }
12598 0 : next_after_fail1896:;
12599 : }
12600 : }
12601 : }
12602 : }
12603 : break;
12604 : }
12605 : default:;
12606 : }
12607 : }
12608 : }
12609 0 : if (integer_zerop (_q21))
12610 : {
12611 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12612 : {
12613 0 : if (integer_zerop (_p2))
12614 : {
12615 0 : {
12616 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12617 0 : tree res = generic_simplify_538 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12618 0 : if (res) return res;
12619 : }
12620 : }
12621 : }
12622 : }
12623 : break;
12624 : }
12625 : default:;
12626 : }
12627 : break;
12628 : }
12629 1179 : case GE_EXPR:
12630 1179 : {
12631 1179 : tree _q20 = TREE_OPERAND (_p0, 0);
12632 1179 : tree _q21 = TREE_OPERAND (_p0, 1);
12633 1179 : switch (TREE_CODE (_q20))
12634 : {
12635 3 : CASE_CONVERT:
12636 3 : {
12637 3 : tree _q30 = TREE_OPERAND (_q20, 0);
12638 3 : if (zerop (_q21))
12639 : {
12640 0 : switch (TREE_CODE (_p2))
12641 : {
12642 0 : case NEGATE_EXPR:
12643 0 : {
12644 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12645 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12646 : {
12647 0 : {
12648 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12649 0 : const enum tree_code cmp = GE_EXPR;
12650 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12651 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12652 0 : && element_precision (captures[1])
12653 0 : <= element_precision (captures[0])
12654 0 : && bitwise_equal_p (captures[1], captures[2])
12655 : )
12656 : {
12657 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12658 : )
12659 : {
12660 0 : {
12661 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12662 0 : if (types_match (captures[0], stype)
12663 : )
12664 : {
12665 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1897;
12666 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1897;
12667 0 : {
12668 0 : tree res_op0;
12669 0 : res_op0 = captures[0];
12670 0 : tree _r;
12671 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12672 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12673 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12675 0 : return _r;
12676 : }
12677 0 : next_after_fail1897:;
12678 : }
12679 : else
12680 : {
12681 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1898;
12682 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1898;
12683 0 : {
12684 0 : tree res_op0;
12685 0 : {
12686 0 : tree _o1[1], _r1;
12687 0 : _o1[0] = captures[2];
12688 0 : if (TREE_TYPE (_o1[0]) != stype)
12689 : {
12690 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12691 : }
12692 : else
12693 : _r1 = _o1[0];
12694 0 : res_op0 = _r1;
12695 : }
12696 0 : tree _r;
12697 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12698 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12699 0 : return _r;
12700 : }
12701 0 : next_after_fail1898:;
12702 : }
12703 : }
12704 : }
12705 : else
12706 : {
12707 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1899;
12708 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1899;
12709 0 : {
12710 0 : tree res_op0;
12711 0 : res_op0 = captures[2];
12712 0 : tree _r;
12713 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12714 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12715 0 : return _r;
12716 : }
12717 0 : next_after_fail1899:;
12718 : }
12719 : }
12720 : }
12721 : }
12722 : break;
12723 : }
12724 : default:;
12725 : }
12726 : }
12727 : break;
12728 : }
12729 1179 : default:;
12730 : }
12731 1179 : if (zerop (_q21))
12732 : {
12733 334 : switch (TREE_CODE (_p2))
12734 : {
12735 3 : case NEGATE_EXPR:
12736 3 : {
12737 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12738 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12739 : {
12740 3 : {
12741 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12742 3 : const enum tree_code cmp = GE_EXPR;
12743 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12744 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12745 6 : && element_precision (captures[1])
12746 3 : <= element_precision (captures[0])
12747 6 : && bitwise_equal_p (captures[1], captures[2])
12748 : )
12749 : {
12750 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12751 : )
12752 : {
12753 0 : {
12754 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12755 0 : if (types_match (captures[0], stype)
12756 : )
12757 : {
12758 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1900;
12759 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1900;
12760 0 : {
12761 0 : tree res_op0;
12762 0 : res_op0 = captures[0];
12763 0 : tree _r;
12764 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12765 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12766 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12767 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12768 0 : return _r;
12769 : }
12770 0 : next_after_fail1900:;
12771 : }
12772 : else
12773 : {
12774 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1901;
12775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1901;
12776 0 : {
12777 0 : tree res_op0;
12778 0 : {
12779 0 : tree _o1[1], _r1;
12780 0 : _o1[0] = captures[2];
12781 0 : if (TREE_TYPE (_o1[0]) != stype)
12782 : {
12783 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12784 : }
12785 : else
12786 : _r1 = _o1[0];
12787 0 : res_op0 = _r1;
12788 : }
12789 0 : tree _r;
12790 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12791 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12792 0 : return _r;
12793 : }
12794 0 : next_after_fail1901:;
12795 : }
12796 : }
12797 : }
12798 : else
12799 : {
12800 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1902;
12801 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1902;
12802 3 : {
12803 3 : tree res_op0;
12804 3 : res_op0 = captures[2];
12805 3 : tree _r;
12806 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12807 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12808 3 : return _r;
12809 : }
12810 0 : next_after_fail1902:;
12811 : }
12812 : }
12813 : }
12814 : }
12815 : break;
12816 : }
12817 : default:;
12818 : }
12819 : }
12820 1176 : switch (TREE_CODE (_q20))
12821 : {
12822 0 : case MINUS_EXPR:
12823 0 : {
12824 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12825 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12826 0 : if (zerop (_q21))
12827 : {
12828 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12829 : {
12830 0 : switch (TREE_CODE (_p2))
12831 : {
12832 0 : case MINUS_EXPR:
12833 0 : {
12834 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12835 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12836 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12837 : {
12838 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12839 : {
12840 0 : {
12841 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12842 0 : const enum tree_code cmp = GE_EXPR;
12843 0 : if (!HONOR_SIGNED_ZEROS (type)
12844 0 : && !TYPE_UNSIGNED (type)
12845 : )
12846 : {
12847 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1903;
12848 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1903;
12849 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1903;
12850 0 : {
12851 0 : tree res_op0;
12852 0 : res_op0 = captures[0];
12853 0 : tree _r;
12854 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12855 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12856 0 : return _r;
12857 : }
12858 0 : next_after_fail1903:;
12859 : }
12860 : }
12861 : }
12862 : }
12863 : break;
12864 : }
12865 : default:;
12866 : }
12867 : }
12868 : }
12869 : break;
12870 : }
12871 : default:;
12872 : }
12873 : break;
12874 : }
12875 66280 : case GT_EXPR:
12876 66280 : {
12877 66280 : tree _q20 = TREE_OPERAND (_p0, 0);
12878 66280 : tree _q21 = TREE_OPERAND (_p0, 1);
12879 66280 : switch (TREE_CODE (_q20))
12880 : {
12881 13 : CASE_CONVERT:
12882 13 : {
12883 13 : tree _q30 = TREE_OPERAND (_q20, 0);
12884 13 : if (zerop (_q21))
12885 : {
12886 1 : switch (TREE_CODE (_p2))
12887 : {
12888 0 : case NEGATE_EXPR:
12889 0 : {
12890 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12891 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12892 : {
12893 0 : {
12894 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12895 0 : const enum tree_code cmp = GT_EXPR;
12896 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12897 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12898 0 : && element_precision (captures[1])
12899 0 : <= element_precision (captures[0])
12900 0 : && bitwise_equal_p (captures[1], captures[2])
12901 : )
12902 : {
12903 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12904 : )
12905 : {
12906 0 : {
12907 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12908 0 : if (types_match (captures[0], stype)
12909 : )
12910 : {
12911 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1904;
12912 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1904;
12913 0 : {
12914 0 : tree res_op0;
12915 0 : res_op0 = captures[0];
12916 0 : tree _r;
12917 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12918 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12919 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12920 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12921 0 : return _r;
12922 : }
12923 0 : next_after_fail1904:;
12924 : }
12925 : else
12926 : {
12927 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1905;
12928 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1905;
12929 0 : {
12930 0 : tree res_op0;
12931 0 : {
12932 0 : tree _o1[1], _r1;
12933 0 : _o1[0] = captures[2];
12934 0 : if (TREE_TYPE (_o1[0]) != stype)
12935 : {
12936 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12937 : }
12938 : else
12939 : _r1 = _o1[0];
12940 0 : res_op0 = _r1;
12941 : }
12942 0 : tree _r;
12943 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12944 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12945 0 : return _r;
12946 : }
12947 0 : next_after_fail1905:;
12948 : }
12949 : }
12950 : }
12951 : else
12952 : {
12953 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1906;
12954 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1906;
12955 0 : {
12956 0 : tree res_op0;
12957 0 : res_op0 = captures[2];
12958 0 : tree _r;
12959 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12960 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12961 0 : return _r;
12962 : }
12963 0 : next_after_fail1906:;
12964 : }
12965 : }
12966 : }
12967 : }
12968 : break;
12969 : }
12970 : default:;
12971 : }
12972 : }
12973 : break;
12974 : }
12975 66280 : default:;
12976 : }
12977 66280 : if (zerop (_q21))
12978 : {
12979 84 : switch (TREE_CODE (_p2))
12980 : {
12981 6 : case NEGATE_EXPR:
12982 6 : {
12983 6 : tree _q60 = TREE_OPERAND (_p2, 0);
12984 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12985 : {
12986 6 : {
12987 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12988 6 : const enum tree_code cmp = GT_EXPR;
12989 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12990 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12991 12 : && element_precision (captures[1])
12992 6 : <= element_precision (captures[0])
12993 12 : && bitwise_equal_p (captures[1], captures[2])
12994 : )
12995 : {
12996 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12997 : )
12998 : {
12999 0 : {
13000 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13001 0 : if (types_match (captures[0], stype)
13002 : )
13003 : {
13004 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1907;
13005 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1907;
13006 0 : {
13007 0 : tree res_op0;
13008 0 : res_op0 = captures[0];
13009 0 : tree _r;
13010 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13011 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13012 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13013 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
13014 0 : return _r;
13015 : }
13016 0 : next_after_fail1907:;
13017 : }
13018 : else
13019 : {
13020 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1908;
13021 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1908;
13022 0 : {
13023 0 : tree res_op0;
13024 0 : {
13025 0 : tree _o1[1], _r1;
13026 0 : _o1[0] = captures[2];
13027 0 : if (TREE_TYPE (_o1[0]) != stype)
13028 : {
13029 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13030 : }
13031 : else
13032 : _r1 = _o1[0];
13033 0 : res_op0 = _r1;
13034 : }
13035 0 : tree _r;
13036 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13037 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
13038 0 : return _r;
13039 : }
13040 0 : next_after_fail1908:;
13041 : }
13042 : }
13043 : }
13044 : else
13045 : {
13046 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1909;
13047 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1909;
13048 6 : {
13049 6 : tree res_op0;
13050 6 : res_op0 = captures[2];
13051 6 : tree _r;
13052 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13053 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
13054 6 : return _r;
13055 : }
13056 0 : next_after_fail1909:;
13057 : }
13058 : }
13059 : }
13060 : }
13061 : break;
13062 : }
13063 : default:;
13064 : }
13065 : }
13066 66274 : switch (TREE_CODE (_q20))
13067 : {
13068 0 : case MINUS_EXPR:
13069 0 : {
13070 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13071 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13072 0 : if (zerop (_q21))
13073 : {
13074 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13075 : {
13076 0 : switch (TREE_CODE (_p2))
13077 : {
13078 0 : case MINUS_EXPR:
13079 0 : {
13080 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13081 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13082 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13083 : {
13084 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13085 : {
13086 0 : {
13087 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13088 0 : const enum tree_code cmp = GT_EXPR;
13089 0 : if (!HONOR_SIGNED_ZEROS (type)
13090 0 : && !TYPE_UNSIGNED (type)
13091 : )
13092 : {
13093 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1910;
13094 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1910;
13095 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1910;
13096 0 : {
13097 0 : tree res_op0;
13098 0 : res_op0 = captures[0];
13099 0 : tree _r;
13100 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13101 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
13102 0 : return _r;
13103 : }
13104 0 : next_after_fail1910:;
13105 : }
13106 : }
13107 : }
13108 : }
13109 : break;
13110 : }
13111 : default:;
13112 : }
13113 : }
13114 : }
13115 : break;
13116 : }
13117 : default:;
13118 : }
13119 : break;
13120 : }
13121 897 : case LE_EXPR:
13122 897 : {
13123 897 : tree _q20 = TREE_OPERAND (_p0, 0);
13124 897 : tree _q21 = TREE_OPERAND (_p0, 1);
13125 897 : switch (TREE_CODE (_q20))
13126 : {
13127 0 : CASE_CONVERT:
13128 0 : {
13129 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13130 0 : if (zerop (_q21))
13131 : {
13132 0 : switch (TREE_CODE (_p2))
13133 : {
13134 0 : case NEGATE_EXPR:
13135 0 : {
13136 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13137 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13138 : {
13139 0 : {
13140 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13141 0 : const enum tree_code cmp = LE_EXPR;
13142 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13143 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13144 0 : && element_precision (captures[1])
13145 0 : <= element_precision (captures[0])
13146 0 : && bitwise_equal_p (captures[1], captures[2])
13147 : )
13148 : {
13149 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13150 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13151 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13152 : )
13153 : {
13154 0 : {
13155 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13156 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13157 0 : if (types_match (captures[0], stype)
13158 : )
13159 : {
13160 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1911;
13161 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
13162 0 : {
13163 0 : tree res_op0;
13164 0 : {
13165 0 : tree _o1[1], _r1;
13166 0 : {
13167 0 : tree _o2[1], _r2;
13168 0 : _o2[0] = captures[0];
13169 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13170 0 : _o1[0] = _r2;
13171 : }
13172 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13173 0 : res_op0 = _r1;
13174 : }
13175 0 : tree _r;
13176 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13177 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13178 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13179 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13180 0 : return _r;
13181 : }
13182 0 : next_after_fail1911:;
13183 : }
13184 : else
13185 : {
13186 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1912;
13187 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
13188 0 : {
13189 0 : tree res_op0;
13190 0 : {
13191 0 : tree _o1[1], _r1;
13192 0 : {
13193 0 : tree _o2[1], _r2;
13194 0 : {
13195 0 : tree _o3[1], _r3;
13196 0 : _o3[0] = captures[2];
13197 0 : if (TREE_TYPE (_o3[0]) != stype)
13198 : {
13199 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13200 : }
13201 : else
13202 : _r3 = _o3[0];
13203 0 : _o2[0] = _r3;
13204 : }
13205 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13206 0 : _o1[0] = _r2;
13207 : }
13208 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13209 0 : res_op0 = _r1;
13210 : }
13211 0 : tree _r;
13212 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13213 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13214 0 : return _r;
13215 : }
13216 0 : next_after_fail1912:;
13217 : }
13218 : }
13219 : }
13220 : else
13221 : {
13222 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
13223 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
13224 0 : {
13225 0 : tree res_op0;
13226 0 : {
13227 0 : tree _o1[1], _r1;
13228 0 : {
13229 0 : tree _o2[1], _r2;
13230 0 : _o2[0] = captures[2];
13231 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13232 0 : _o1[0] = _r2;
13233 : }
13234 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13235 0 : res_op0 = _r1;
13236 : }
13237 0 : tree _r;
13238 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13239 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13240 0 : return _r;
13241 : }
13242 0 : next_after_fail1913:;
13243 : }
13244 : }
13245 : }
13246 : }
13247 : break;
13248 : }
13249 : default:;
13250 : }
13251 : }
13252 : break;
13253 : }
13254 897 : default:;
13255 : }
13256 897 : if (zerop (_q21))
13257 : {
13258 18 : switch (TREE_CODE (_p2))
13259 : {
13260 0 : case NEGATE_EXPR:
13261 0 : {
13262 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13263 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13264 : {
13265 0 : {
13266 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13267 0 : const enum tree_code cmp = LE_EXPR;
13268 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13269 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13270 0 : && element_precision (captures[1])
13271 0 : <= element_precision (captures[0])
13272 0 : && bitwise_equal_p (captures[1], captures[2])
13273 : )
13274 : {
13275 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13276 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13277 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13278 : )
13279 : {
13280 0 : {
13281 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13282 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13283 0 : if (types_match (captures[0], stype)
13284 : )
13285 : {
13286 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1914;
13287 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
13288 0 : {
13289 0 : tree res_op0;
13290 0 : {
13291 0 : tree _o1[1], _r1;
13292 0 : {
13293 0 : tree _o2[1], _r2;
13294 0 : _o2[0] = captures[0];
13295 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13296 0 : _o1[0] = _r2;
13297 : }
13298 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13299 0 : res_op0 = _r1;
13300 : }
13301 0 : tree _r;
13302 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13303 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13304 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13305 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13306 0 : return _r;
13307 : }
13308 0 : next_after_fail1914:;
13309 : }
13310 : else
13311 : {
13312 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
13313 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
13314 0 : {
13315 0 : tree res_op0;
13316 0 : {
13317 0 : tree _o1[1], _r1;
13318 0 : {
13319 0 : tree _o2[1], _r2;
13320 0 : {
13321 0 : tree _o3[1], _r3;
13322 0 : _o3[0] = captures[2];
13323 0 : if (TREE_TYPE (_o3[0]) != stype)
13324 : {
13325 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13326 : }
13327 : else
13328 : _r3 = _o3[0];
13329 0 : _o2[0] = _r3;
13330 : }
13331 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13332 0 : _o1[0] = _r2;
13333 : }
13334 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13335 0 : res_op0 = _r1;
13336 : }
13337 0 : tree _r;
13338 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13339 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13340 0 : return _r;
13341 : }
13342 0 : next_after_fail1915:;
13343 : }
13344 : }
13345 : }
13346 : else
13347 : {
13348 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1916;
13349 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
13350 0 : {
13351 0 : tree res_op0;
13352 0 : {
13353 0 : tree _o1[1], _r1;
13354 0 : {
13355 0 : tree _o2[1], _r2;
13356 0 : _o2[0] = captures[2];
13357 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13358 0 : _o1[0] = _r2;
13359 : }
13360 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13361 0 : res_op0 = _r1;
13362 : }
13363 0 : tree _r;
13364 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13365 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13366 0 : return _r;
13367 : }
13368 0 : next_after_fail1916:;
13369 : }
13370 : }
13371 : }
13372 : }
13373 : break;
13374 : }
13375 : default:;
13376 : }
13377 : }
13378 897 : switch (TREE_CODE (_q20))
13379 : {
13380 0 : case MINUS_EXPR:
13381 0 : {
13382 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13383 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13384 0 : if (zerop (_q21))
13385 : {
13386 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13387 : {
13388 0 : switch (TREE_CODE (_p2))
13389 : {
13390 0 : case MINUS_EXPR:
13391 0 : {
13392 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13393 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13394 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13395 : {
13396 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13397 : {
13398 0 : {
13399 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13400 0 : const enum tree_code cmp = LE_EXPR;
13401 0 : if (!HONOR_SIGNED_ZEROS (type)
13402 0 : && !TYPE_UNSIGNED (type)
13403 : )
13404 : {
13405 0 : if (ANY_INTEGRAL_TYPE_P (type)
13406 0 : && !TYPE_OVERFLOW_WRAPS (type)
13407 : )
13408 : {
13409 0 : {
13410 0 : tree utype = unsigned_type_for (type);
13411 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1917;
13412 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1917;
13413 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
13414 0 : {
13415 0 : tree res_op0;
13416 0 : {
13417 0 : tree _o1[1], _r1;
13418 0 : {
13419 0 : tree _o2[1], _r2;
13420 0 : _o2[0] = captures[0];
13421 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13422 0 : _o1[0] = _r2;
13423 : }
13424 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13425 0 : res_op0 = _r1;
13426 : }
13427 0 : tree _r;
13428 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13429 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
13430 0 : return _r;
13431 : }
13432 0 : next_after_fail1917:;
13433 : }
13434 : }
13435 : else
13436 : {
13437 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1918;
13438 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1918;
13439 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
13440 0 : {
13441 0 : tree res_op0;
13442 0 : {
13443 0 : tree _o1[1], _r1;
13444 0 : _o1[0] = captures[0];
13445 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13446 0 : res_op0 = _r1;
13447 : }
13448 0 : tree _r;
13449 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13450 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
13451 0 : return _r;
13452 : }
13453 0 : next_after_fail1918:;
13454 : }
13455 : }
13456 : }
13457 : }
13458 : }
13459 : break;
13460 : }
13461 : default:;
13462 : }
13463 : }
13464 : }
13465 : break;
13466 : }
13467 : default:;
13468 : }
13469 : break;
13470 : }
13471 20593 : case LT_EXPR:
13472 20593 : {
13473 20593 : tree _q20 = TREE_OPERAND (_p0, 0);
13474 20593 : tree _q21 = TREE_OPERAND (_p0, 1);
13475 20593 : switch (TREE_CODE (_q20))
13476 : {
13477 0 : CASE_CONVERT:
13478 0 : {
13479 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13480 0 : if (zerop (_q21))
13481 : {
13482 0 : switch (TREE_CODE (_p2))
13483 : {
13484 0 : case NEGATE_EXPR:
13485 0 : {
13486 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13487 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13488 : {
13489 0 : {
13490 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13491 0 : const enum tree_code cmp = LT_EXPR;
13492 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13493 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13494 0 : && element_precision (captures[1])
13495 0 : <= element_precision (captures[0])
13496 0 : && bitwise_equal_p (captures[1], captures[2])
13497 : )
13498 : {
13499 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13500 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13501 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13502 : )
13503 : {
13504 0 : {
13505 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13506 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13507 0 : if (types_match (captures[0], stype)
13508 : )
13509 : {
13510 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1919;
13511 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
13512 0 : {
13513 0 : tree res_op0;
13514 0 : {
13515 0 : tree _o1[1], _r1;
13516 0 : {
13517 0 : tree _o2[1], _r2;
13518 0 : _o2[0] = captures[0];
13519 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13520 0 : _o1[0] = _r2;
13521 : }
13522 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13523 0 : res_op0 = _r1;
13524 : }
13525 0 : tree _r;
13526 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13527 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13528 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13529 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13530 0 : return _r;
13531 : }
13532 0 : next_after_fail1919:;
13533 : }
13534 : else
13535 : {
13536 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1920;
13537 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
13538 0 : {
13539 0 : tree res_op0;
13540 0 : {
13541 0 : tree _o1[1], _r1;
13542 0 : {
13543 0 : tree _o2[1], _r2;
13544 0 : {
13545 0 : tree _o3[1], _r3;
13546 0 : _o3[0] = captures[2];
13547 0 : if (TREE_TYPE (_o3[0]) != stype)
13548 : {
13549 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13550 : }
13551 : else
13552 : _r3 = _o3[0];
13553 0 : _o2[0] = _r3;
13554 : }
13555 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13556 0 : _o1[0] = _r2;
13557 : }
13558 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13559 0 : res_op0 = _r1;
13560 : }
13561 0 : tree _r;
13562 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13563 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13564 0 : return _r;
13565 : }
13566 0 : next_after_fail1920:;
13567 : }
13568 : }
13569 : }
13570 : else
13571 : {
13572 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1921;
13573 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
13574 0 : {
13575 0 : tree res_op0;
13576 0 : {
13577 0 : tree _o1[1], _r1;
13578 0 : {
13579 0 : tree _o2[1], _r2;
13580 0 : _o2[0] = captures[2];
13581 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13582 0 : _o1[0] = _r2;
13583 : }
13584 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13585 0 : res_op0 = _r1;
13586 : }
13587 0 : tree _r;
13588 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13589 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13590 0 : return _r;
13591 : }
13592 0 : next_after_fail1921:;
13593 : }
13594 : }
13595 : }
13596 : }
13597 : break;
13598 : }
13599 : default:;
13600 : }
13601 : }
13602 : break;
13603 : }
13604 20593 : default:;
13605 : }
13606 20593 : if (zerop (_q21))
13607 : {
13608 550 : switch (TREE_CODE (_p2))
13609 : {
13610 16 : case NEGATE_EXPR:
13611 16 : {
13612 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13613 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13614 : {
13615 16 : {
13616 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13617 16 : const enum tree_code cmp = LT_EXPR;
13618 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13619 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13620 32 : && element_precision (captures[1])
13621 16 : <= element_precision (captures[0])
13622 32 : && bitwise_equal_p (captures[1], captures[2])
13623 : )
13624 : {
13625 32 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13626 16 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13627 16 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13628 : )
13629 : {
13630 16 : {
13631 16 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13632 16 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13633 16 : if (types_match (captures[0], stype)
13634 : )
13635 : {
13636 16 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1922;
13637 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
13638 16 : {
13639 16 : tree res_op0;
13640 16 : {
13641 16 : tree _o1[1], _r1;
13642 16 : {
13643 16 : tree _o2[1], _r2;
13644 16 : _o2[0] = captures[0];
13645 16 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13646 16 : _o1[0] = _r2;
13647 : }
13648 16 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13649 16 : res_op0 = _r1;
13650 : }
13651 16 : tree _r;
13652 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13653 16 : if (TREE_SIDE_EFFECTS (captures[2]))
13654 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13655 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13656 16 : return _r;
13657 : }
13658 0 : next_after_fail1922:;
13659 : }
13660 : else
13661 : {
13662 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1923;
13663 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
13664 0 : {
13665 0 : tree res_op0;
13666 0 : {
13667 0 : tree _o1[1], _r1;
13668 0 : {
13669 0 : tree _o2[1], _r2;
13670 0 : {
13671 0 : tree _o3[1], _r3;
13672 0 : _o3[0] = captures[2];
13673 0 : if (TREE_TYPE (_o3[0]) != stype)
13674 : {
13675 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13676 : }
13677 : else
13678 : _r3 = _o3[0];
13679 0 : _o2[0] = _r3;
13680 : }
13681 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13682 0 : _o1[0] = _r2;
13683 : }
13684 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13685 0 : res_op0 = _r1;
13686 : }
13687 0 : tree _r;
13688 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13689 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13690 0 : return _r;
13691 : }
13692 0 : next_after_fail1923:;
13693 : }
13694 : }
13695 : }
13696 : else
13697 : {
13698 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1924;
13699 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
13700 0 : {
13701 0 : tree res_op0;
13702 0 : {
13703 0 : tree _o1[1], _r1;
13704 0 : {
13705 0 : tree _o2[1], _r2;
13706 0 : _o2[0] = captures[2];
13707 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13708 0 : _o1[0] = _r2;
13709 : }
13710 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13711 0 : res_op0 = _r1;
13712 : }
13713 0 : tree _r;
13714 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13715 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13716 0 : return _r;
13717 : }
13718 0 : next_after_fail1924:;
13719 : }
13720 : }
13721 : }
13722 : }
13723 : break;
13724 : }
13725 : default:;
13726 : }
13727 : }
13728 20577 : switch (TREE_CODE (_q20))
13729 : {
13730 0 : case MINUS_EXPR:
13731 0 : {
13732 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13733 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13734 0 : if (zerop (_q21))
13735 : {
13736 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13737 : {
13738 0 : switch (TREE_CODE (_p2))
13739 : {
13740 0 : case MINUS_EXPR:
13741 0 : {
13742 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13743 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13744 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13745 : {
13746 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13747 : {
13748 0 : {
13749 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13750 0 : const enum tree_code cmp = LT_EXPR;
13751 0 : if (!HONOR_SIGNED_ZEROS (type)
13752 0 : && !TYPE_UNSIGNED (type)
13753 : )
13754 : {
13755 0 : if (ANY_INTEGRAL_TYPE_P (type)
13756 0 : && !TYPE_OVERFLOW_WRAPS (type)
13757 : )
13758 : {
13759 0 : {
13760 0 : tree utype = unsigned_type_for (type);
13761 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1925;
13762 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1925;
13763 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
13764 0 : {
13765 0 : tree res_op0;
13766 0 : {
13767 0 : tree _o1[1], _r1;
13768 0 : {
13769 0 : tree _o2[1], _r2;
13770 0 : _o2[0] = captures[0];
13771 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13772 0 : _o1[0] = _r2;
13773 : }
13774 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13775 0 : res_op0 = _r1;
13776 : }
13777 0 : tree _r;
13778 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13779 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
13780 0 : return _r;
13781 : }
13782 0 : next_after_fail1925:;
13783 : }
13784 : }
13785 : else
13786 : {
13787 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1926;
13788 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1926;
13789 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
13790 0 : {
13791 0 : tree res_op0;
13792 0 : {
13793 0 : tree _o1[1], _r1;
13794 0 : _o1[0] = captures[0];
13795 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13796 0 : res_op0 = _r1;
13797 : }
13798 0 : tree _r;
13799 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13800 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
13801 0 : return _r;
13802 : }
13803 0 : next_after_fail1926:;
13804 : }
13805 : }
13806 : }
13807 : }
13808 : }
13809 : break;
13810 : }
13811 : default:;
13812 : }
13813 : }
13814 : }
13815 : break;
13816 : }
13817 : default:;
13818 : }
13819 : break;
13820 : }
13821 332775 : default:;
13822 : }
13823 332775 : {
13824 332775 : tree _p0_pops[1];
13825 332775 : if (tree_logical_inverted_value (_p0, _p0_pops))
13826 : {
13827 528 : tree _q20 = _p0_pops[0];
13828 528 : if (tree_truth_valued_p (_q20))
13829 : {
13830 0 : {
13831 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13832 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13833 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13834 : )
13835 : {
13836 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
13837 0 : {
13838 0 : tree res_op0;
13839 0 : res_op0 = captures[0];
13840 0 : tree res_op1;
13841 0 : res_op1 = captures[2];
13842 0 : tree res_op2;
13843 0 : res_op2 = captures[1];
13844 0 : tree _r;
13845 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13846 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
13847 0 : return _r;
13848 : }
13849 0 : next_after_fail1927:;
13850 : }
13851 : }
13852 : }
13853 : }
13854 : }
13855 332775 : switch (TREE_CODE (_p1))
13856 : {
13857 0 : case VIEW_CONVERT_EXPR:
13858 0 : {
13859 0 : tree _q30 = TREE_OPERAND (_p1, 0);
13860 0 : switch (TREE_CODE (_q30))
13861 : {
13862 0 : case CALL_EXPR:
13863 0 : switch (get_call_combined_fn (_q30))
13864 : {
13865 0 : case CFN_COND_ADD:
13866 0 : if (call_expr_nargs (_q30) == 4)
13867 : {
13868 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13869 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13870 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13871 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13872 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13873 : {
13874 0 : {
13875 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13876 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13877 0 : if (res) return res;
13878 : }
13879 : }
13880 : }
13881 : break;
13882 0 : case CFN_COND_AND:
13883 0 : if (call_expr_nargs (_q30) == 4)
13884 : {
13885 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13886 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13887 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13888 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13889 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13890 : {
13891 0 : {
13892 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13893 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13894 0 : if (res) return res;
13895 : }
13896 : }
13897 : }
13898 : break;
13899 0 : case CFN_COND_DIV:
13900 0 : if (call_expr_nargs (_q30) == 4)
13901 : {
13902 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13903 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13904 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13905 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13906 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13907 : {
13908 0 : {
13909 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13910 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
13911 0 : if (res) return res;
13912 : }
13913 : }
13914 : }
13915 : break;
13916 0 : case CFN_COND_IOR:
13917 0 : if (call_expr_nargs (_q30) == 4)
13918 : {
13919 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13920 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13921 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13922 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13923 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13924 : {
13925 0 : {
13926 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13927 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
13928 0 : if (res) return res;
13929 : }
13930 : }
13931 : }
13932 : break;
13933 0 : case CFN_COND_MAX:
13934 0 : if (call_expr_nargs (_q30) == 4)
13935 : {
13936 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13937 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13938 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13939 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13940 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13941 : {
13942 0 : {
13943 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13944 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
13945 0 : if (res) return res;
13946 : }
13947 : }
13948 : }
13949 : break;
13950 0 : case CFN_COND_MIN:
13951 0 : if (call_expr_nargs (_q30) == 4)
13952 : {
13953 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13954 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13955 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13956 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13957 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13958 : {
13959 0 : {
13960 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13961 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
13962 0 : if (res) return res;
13963 : }
13964 : }
13965 : }
13966 : break;
13967 0 : case CFN_COND_MOD:
13968 0 : if (call_expr_nargs (_q30) == 4)
13969 : {
13970 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13971 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13972 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13973 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13974 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13975 : {
13976 0 : {
13977 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13978 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
13979 0 : if (res) return res;
13980 : }
13981 : }
13982 : }
13983 : break;
13984 0 : case CFN_COND_MUL:
13985 0 : if (call_expr_nargs (_q30) == 4)
13986 : {
13987 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13988 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13989 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13990 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13991 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13992 : {
13993 0 : {
13994 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13995 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
13996 0 : if (res) return res;
13997 : }
13998 : }
13999 : }
14000 : break;
14001 0 : case CFN_COND_SHL:
14002 0 : if (call_expr_nargs (_q30) == 4)
14003 : {
14004 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14005 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14006 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14007 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14008 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14009 : {
14010 0 : {
14011 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14012 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14013 0 : if (res) return res;
14014 : }
14015 : }
14016 : }
14017 : break;
14018 0 : case CFN_COND_SHR:
14019 0 : if (call_expr_nargs (_q30) == 4)
14020 : {
14021 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14022 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14023 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14024 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14025 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14026 : {
14027 0 : {
14028 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14029 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14030 0 : if (res) return res;
14031 : }
14032 : }
14033 : }
14034 : break;
14035 0 : case CFN_COND_SUB:
14036 0 : if (call_expr_nargs (_q30) == 4)
14037 : {
14038 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14039 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14040 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14041 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14042 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14043 : {
14044 0 : {
14045 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14046 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14047 0 : if (res) return res;
14048 : }
14049 : }
14050 : }
14051 : break;
14052 0 : case CFN_COND_XOR:
14053 0 : if (call_expr_nargs (_q30) == 4)
14054 : {
14055 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14056 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14057 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14058 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14059 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14060 : {
14061 0 : {
14062 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14063 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14064 0 : if (res) return res;
14065 : }
14066 : }
14067 : }
14068 : break;
14069 0 : case CFN_COND_COPYSIGN:
14070 0 : if (call_expr_nargs (_q30) == 4)
14071 : {
14072 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14073 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14074 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14075 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14076 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14077 : {
14078 0 : {
14079 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14080 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14081 0 : if (res) return res;
14082 : }
14083 : }
14084 : }
14085 : break;
14086 0 : case CFN_COND_FMAX:
14087 0 : if (call_expr_nargs (_q30) == 4)
14088 : {
14089 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14090 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14091 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14092 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14093 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14094 : {
14095 0 : {
14096 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14097 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14098 0 : if (res) return res;
14099 : }
14100 : }
14101 : }
14102 : break;
14103 0 : case CFN_COND_FMIN:
14104 0 : if (call_expr_nargs (_q30) == 4)
14105 : {
14106 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14107 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14108 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14109 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14110 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14111 : {
14112 0 : {
14113 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14114 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14115 0 : if (res) return res;
14116 : }
14117 : }
14118 : }
14119 : break;
14120 0 : case CFN_COND_RDIV:
14121 0 : if (call_expr_nargs (_q30) == 4)
14122 : {
14123 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14124 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14125 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14126 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14127 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14128 : {
14129 0 : {
14130 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14131 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14132 0 : if (res) return res;
14133 : }
14134 : }
14135 : }
14136 : break;
14137 : default:;
14138 : }
14139 : break;
14140 : default:;
14141 : }
14142 : break;
14143 : }
14144 12 : case CALL_EXPR:
14145 12 : switch (get_call_combined_fn (_p1))
14146 : {
14147 0 : case CFN_COND_ADD:
14148 0 : if (call_expr_nargs (_p1) == 4)
14149 : {
14150 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14151 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14152 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14153 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14154 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14155 : {
14156 0 : {
14157 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14158 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14159 0 : if (res) return res;
14160 : }
14161 : }
14162 : }
14163 : break;
14164 0 : case CFN_COND_AND:
14165 0 : if (call_expr_nargs (_p1) == 4)
14166 : {
14167 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14168 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14169 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14170 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14171 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14172 : {
14173 0 : {
14174 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14175 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14176 0 : if (res) return res;
14177 : }
14178 : }
14179 : }
14180 : break;
14181 0 : case CFN_COND_DIV:
14182 0 : if (call_expr_nargs (_p1) == 4)
14183 : {
14184 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14185 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14186 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14187 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14188 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14189 : {
14190 0 : {
14191 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14192 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14193 0 : if (res) return res;
14194 : }
14195 : }
14196 : }
14197 : break;
14198 0 : case CFN_COND_IOR:
14199 0 : if (call_expr_nargs (_p1) == 4)
14200 : {
14201 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14202 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14203 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14204 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14205 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14206 : {
14207 0 : {
14208 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14209 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14210 0 : if (res) return res;
14211 : }
14212 : }
14213 : }
14214 : break;
14215 0 : case CFN_COND_MAX:
14216 0 : if (call_expr_nargs (_p1) == 4)
14217 : {
14218 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14219 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14220 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14221 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14222 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14223 : {
14224 0 : {
14225 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14226 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14227 0 : if (res) return res;
14228 : }
14229 : }
14230 : }
14231 : break;
14232 0 : case CFN_COND_MIN:
14233 0 : if (call_expr_nargs (_p1) == 4)
14234 : {
14235 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14236 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14237 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14238 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14239 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14240 : {
14241 0 : {
14242 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14243 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14244 0 : if (res) return res;
14245 : }
14246 : }
14247 : }
14248 : break;
14249 0 : case CFN_COND_MOD:
14250 0 : if (call_expr_nargs (_p1) == 4)
14251 : {
14252 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14253 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14254 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14255 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14256 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14257 : {
14258 0 : {
14259 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14260 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14261 0 : if (res) return res;
14262 : }
14263 : }
14264 : }
14265 : break;
14266 0 : case CFN_COND_MUL:
14267 0 : if (call_expr_nargs (_p1) == 4)
14268 : {
14269 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14270 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14271 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14272 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14273 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14274 : {
14275 0 : {
14276 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14277 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14278 0 : if (res) return res;
14279 : }
14280 : }
14281 : }
14282 : break;
14283 0 : case CFN_COND_SHL:
14284 0 : if (call_expr_nargs (_p1) == 4)
14285 : {
14286 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14287 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14288 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14289 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14290 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14291 : {
14292 0 : {
14293 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14294 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14295 0 : if (res) return res;
14296 : }
14297 : }
14298 : }
14299 : break;
14300 0 : case CFN_COND_SHR:
14301 0 : if (call_expr_nargs (_p1) == 4)
14302 : {
14303 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14304 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14305 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14306 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14307 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14308 : {
14309 0 : {
14310 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14311 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14312 0 : if (res) return res;
14313 : }
14314 : }
14315 : }
14316 : break;
14317 0 : case CFN_COND_SUB:
14318 0 : if (call_expr_nargs (_p1) == 4)
14319 : {
14320 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14321 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14322 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14323 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14324 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14325 : {
14326 0 : {
14327 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14328 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14329 0 : if (res) return res;
14330 : }
14331 : }
14332 : }
14333 : break;
14334 0 : case CFN_COND_XOR:
14335 0 : if (call_expr_nargs (_p1) == 4)
14336 : {
14337 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14338 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14339 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14340 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14341 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14342 : {
14343 0 : {
14344 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14345 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14346 0 : if (res) return res;
14347 : }
14348 : }
14349 : }
14350 : break;
14351 0 : case CFN_COND_COPYSIGN:
14352 0 : if (call_expr_nargs (_p1) == 4)
14353 : {
14354 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14355 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14356 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14357 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14358 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14359 : {
14360 0 : {
14361 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14362 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14363 0 : if (res) return res;
14364 : }
14365 : }
14366 : }
14367 : break;
14368 0 : case CFN_COND_FMAX:
14369 0 : if (call_expr_nargs (_p1) == 4)
14370 : {
14371 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14372 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14373 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14374 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14375 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14376 : {
14377 0 : {
14378 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14379 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14380 0 : if (res) return res;
14381 : }
14382 : }
14383 : }
14384 : break;
14385 0 : case CFN_COND_FMIN:
14386 0 : if (call_expr_nargs (_p1) == 4)
14387 : {
14388 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14389 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14390 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14391 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14392 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14393 : {
14394 0 : {
14395 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14396 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14397 0 : if (res) return res;
14398 : }
14399 : }
14400 : }
14401 : break;
14402 0 : case CFN_COND_RDIV:
14403 0 : if (call_expr_nargs (_p1) == 4)
14404 : {
14405 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14406 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14407 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14408 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14409 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14410 : {
14411 0 : {
14412 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14413 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14414 0 : if (res) return res;
14415 : }
14416 : }
14417 : }
14418 : break;
14419 : default:;
14420 : }
14421 : break;
14422 332775 : default:;
14423 : }
14424 332775 : switch (TREE_CODE (_p2))
14425 : {
14426 0 : case VIEW_CONVERT_EXPR:
14427 0 : {
14428 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14429 0 : switch (TREE_CODE (_q40))
14430 : {
14431 0 : case CALL_EXPR:
14432 0 : switch (get_call_combined_fn (_q40))
14433 : {
14434 0 : case CFN_COND_ADD:
14435 0 : if (call_expr_nargs (_q40) == 4)
14436 : {
14437 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14438 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14439 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14440 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14441 0 : {
14442 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14443 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14444 0 : if (res) return res;
14445 : }
14446 : }
14447 : break;
14448 0 : case CFN_COND_AND:
14449 0 : if (call_expr_nargs (_q40) == 4)
14450 : {
14451 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14452 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14453 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14454 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14455 0 : {
14456 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14457 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14458 0 : if (res) return res;
14459 : }
14460 : }
14461 : break;
14462 0 : case CFN_COND_DIV:
14463 0 : if (call_expr_nargs (_q40) == 4)
14464 : {
14465 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14466 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14467 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14468 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14469 0 : {
14470 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14471 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14472 0 : if (res) return res;
14473 : }
14474 : }
14475 : break;
14476 0 : case CFN_COND_IOR:
14477 0 : if (call_expr_nargs (_q40) == 4)
14478 : {
14479 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14480 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14481 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14482 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14483 0 : {
14484 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14485 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14486 0 : if (res) return res;
14487 : }
14488 : }
14489 : break;
14490 0 : case CFN_COND_MAX:
14491 0 : if (call_expr_nargs (_q40) == 4)
14492 : {
14493 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14494 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14495 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14496 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14497 0 : {
14498 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14499 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14500 0 : if (res) return res;
14501 : }
14502 : }
14503 : break;
14504 0 : case CFN_COND_MIN:
14505 0 : if (call_expr_nargs (_q40) == 4)
14506 : {
14507 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14508 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14509 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14510 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14511 0 : {
14512 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14513 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14514 0 : if (res) return res;
14515 : }
14516 : }
14517 : break;
14518 0 : case CFN_COND_MOD:
14519 0 : if (call_expr_nargs (_q40) == 4)
14520 : {
14521 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14522 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14523 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14524 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14525 0 : {
14526 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14527 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14528 0 : if (res) return res;
14529 : }
14530 : }
14531 : break;
14532 0 : case CFN_COND_MUL:
14533 0 : if (call_expr_nargs (_q40) == 4)
14534 : {
14535 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14536 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14537 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14538 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14539 0 : {
14540 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14541 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14542 0 : if (res) return res;
14543 : }
14544 : }
14545 : break;
14546 0 : case CFN_COND_SHL:
14547 0 : if (call_expr_nargs (_q40) == 4)
14548 : {
14549 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14550 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14551 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14552 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14553 0 : {
14554 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14555 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14556 0 : if (res) return res;
14557 : }
14558 : }
14559 : break;
14560 0 : case CFN_COND_SHR:
14561 0 : if (call_expr_nargs (_q40) == 4)
14562 : {
14563 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14564 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14565 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14566 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14567 0 : {
14568 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14569 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14570 0 : if (res) return res;
14571 : }
14572 : }
14573 : break;
14574 0 : case CFN_COND_SUB:
14575 0 : if (call_expr_nargs (_q40) == 4)
14576 : {
14577 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14578 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14579 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14580 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14581 0 : {
14582 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14583 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14584 0 : if (res) return res;
14585 : }
14586 : }
14587 : break;
14588 0 : case CFN_COND_XOR:
14589 0 : if (call_expr_nargs (_q40) == 4)
14590 : {
14591 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14592 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14593 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14594 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14595 0 : {
14596 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14597 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14598 0 : if (res) return res;
14599 : }
14600 : }
14601 : break;
14602 0 : case CFN_COND_COPYSIGN:
14603 0 : if (call_expr_nargs (_q40) == 4)
14604 : {
14605 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14606 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14607 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14608 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14609 0 : {
14610 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14611 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14612 0 : if (res) return res;
14613 : }
14614 : }
14615 : break;
14616 0 : case CFN_COND_FMAX:
14617 0 : if (call_expr_nargs (_q40) == 4)
14618 : {
14619 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14620 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14621 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14622 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14623 0 : {
14624 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14625 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14626 0 : if (res) return res;
14627 : }
14628 : }
14629 : break;
14630 0 : case CFN_COND_FMIN:
14631 0 : if (call_expr_nargs (_q40) == 4)
14632 : {
14633 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14634 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14635 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14636 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14637 0 : {
14638 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14639 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14640 0 : if (res) return res;
14641 : }
14642 : }
14643 : break;
14644 0 : case CFN_COND_RDIV:
14645 0 : if (call_expr_nargs (_q40) == 4)
14646 : {
14647 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14648 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14649 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14650 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14651 0 : {
14652 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14653 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14654 0 : if (res) return res;
14655 : }
14656 : }
14657 : break;
14658 : default:;
14659 : }
14660 : break;
14661 : default:;
14662 : }
14663 : break;
14664 : }
14665 12 : case CALL_EXPR:
14666 12 : switch (get_call_combined_fn (_p2))
14667 : {
14668 0 : case CFN_COND_ADD:
14669 0 : if (call_expr_nargs (_p2) == 4)
14670 : {
14671 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14672 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14673 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14674 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14675 0 : {
14676 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14677 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14678 0 : if (res) return res;
14679 : }
14680 : }
14681 : break;
14682 0 : case CFN_COND_AND:
14683 0 : if (call_expr_nargs (_p2) == 4)
14684 : {
14685 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14686 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14687 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14688 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14689 0 : {
14690 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14691 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14692 0 : if (res) return res;
14693 : }
14694 : }
14695 : break;
14696 0 : case CFN_COND_DIV:
14697 0 : if (call_expr_nargs (_p2) == 4)
14698 : {
14699 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14700 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14701 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14702 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14703 0 : {
14704 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14705 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14706 0 : if (res) return res;
14707 : }
14708 : }
14709 : break;
14710 0 : case CFN_COND_IOR:
14711 0 : if (call_expr_nargs (_p2) == 4)
14712 : {
14713 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14714 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14715 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14716 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14717 0 : {
14718 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14719 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14720 0 : if (res) return res;
14721 : }
14722 : }
14723 : break;
14724 0 : case CFN_COND_MAX:
14725 0 : if (call_expr_nargs (_p2) == 4)
14726 : {
14727 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14728 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14729 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14730 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14731 0 : {
14732 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14733 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14734 0 : if (res) return res;
14735 : }
14736 : }
14737 : break;
14738 0 : case CFN_COND_MIN:
14739 0 : if (call_expr_nargs (_p2) == 4)
14740 : {
14741 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14742 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14743 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14744 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14745 0 : {
14746 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14747 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14748 0 : if (res) return res;
14749 : }
14750 : }
14751 : break;
14752 0 : case CFN_COND_MOD:
14753 0 : if (call_expr_nargs (_p2) == 4)
14754 : {
14755 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14756 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14757 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14758 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14759 0 : {
14760 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14761 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14762 0 : if (res) return res;
14763 : }
14764 : }
14765 : break;
14766 0 : case CFN_COND_MUL:
14767 0 : if (call_expr_nargs (_p2) == 4)
14768 : {
14769 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14770 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14771 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14772 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14773 0 : {
14774 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14775 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14776 0 : if (res) return res;
14777 : }
14778 : }
14779 : break;
14780 0 : case CFN_COND_SHL:
14781 0 : if (call_expr_nargs (_p2) == 4)
14782 : {
14783 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14784 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14785 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14786 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14787 0 : {
14788 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14789 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14790 0 : if (res) return res;
14791 : }
14792 : }
14793 : break;
14794 0 : case CFN_COND_SHR:
14795 0 : if (call_expr_nargs (_p2) == 4)
14796 : {
14797 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14798 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14799 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14800 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14801 0 : {
14802 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14803 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14804 0 : if (res) return res;
14805 : }
14806 : }
14807 : break;
14808 0 : case CFN_COND_SUB:
14809 0 : if (call_expr_nargs (_p2) == 4)
14810 : {
14811 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14812 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14813 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14814 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14815 0 : {
14816 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14817 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14818 0 : if (res) return res;
14819 : }
14820 : }
14821 : break;
14822 0 : case CFN_COND_XOR:
14823 0 : if (call_expr_nargs (_p2) == 4)
14824 : {
14825 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14826 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14827 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14828 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14829 0 : {
14830 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14831 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14832 0 : if (res) return res;
14833 : }
14834 : }
14835 : break;
14836 0 : case CFN_COND_COPYSIGN:
14837 0 : if (call_expr_nargs (_p2) == 4)
14838 : {
14839 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14840 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14841 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14842 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14843 0 : {
14844 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14845 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14846 0 : if (res) return res;
14847 : }
14848 : }
14849 : break;
14850 0 : case CFN_COND_FMAX:
14851 0 : if (call_expr_nargs (_p2) == 4)
14852 : {
14853 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14854 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14855 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14856 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14857 0 : {
14858 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14859 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14860 0 : if (res) return res;
14861 : }
14862 : }
14863 : break;
14864 0 : case CFN_COND_FMIN:
14865 0 : if (call_expr_nargs (_p2) == 4)
14866 : {
14867 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14868 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14869 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14870 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14871 0 : {
14872 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14873 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14874 0 : if (res) return res;
14875 : }
14876 : }
14877 : break;
14878 0 : case CFN_COND_RDIV:
14879 0 : if (call_expr_nargs (_p2) == 4)
14880 : {
14881 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14882 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14883 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14884 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14885 0 : {
14886 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14887 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14888 0 : if (res) return res;
14889 : }
14890 : }
14891 : break;
14892 : default:;
14893 : }
14894 : break;
14895 332775 : default:;
14896 : }
14897 332775 : switch (TREE_CODE (_p1))
14898 : {
14899 0 : case VIEW_CONVERT_EXPR:
14900 0 : {
14901 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14902 0 : switch (TREE_CODE (_q30))
14903 : {
14904 0 : case CALL_EXPR:
14905 0 : switch (get_call_combined_fn (_q30))
14906 : {
14907 0 : case CFN_COND_FMA:
14908 0 : if (call_expr_nargs (_q30) == 5)
14909 : {
14910 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14911 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14912 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14913 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14914 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14915 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14916 : {
14917 0 : {
14918 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14919 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14920 0 : if (res) return res;
14921 : }
14922 : }
14923 : }
14924 : break;
14925 0 : case CFN_COND_FMS:
14926 0 : if (call_expr_nargs (_q30) == 5)
14927 : {
14928 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14929 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14930 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14931 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14932 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14933 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14934 : {
14935 0 : {
14936 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14937 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14938 0 : if (res) return res;
14939 : }
14940 : }
14941 : }
14942 : break;
14943 0 : case CFN_COND_FNMA:
14944 0 : if (call_expr_nargs (_q30) == 5)
14945 : {
14946 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14947 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14948 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14949 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14950 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14951 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14952 : {
14953 0 : {
14954 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14955 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14956 0 : if (res) return res;
14957 : }
14958 : }
14959 : }
14960 : break;
14961 0 : case CFN_COND_FNMS:
14962 0 : if (call_expr_nargs (_q30) == 5)
14963 : {
14964 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14965 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14966 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14967 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14968 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14969 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14970 : {
14971 0 : {
14972 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14973 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14974 0 : if (res) return res;
14975 : }
14976 : }
14977 : }
14978 : break;
14979 : default:;
14980 : }
14981 : break;
14982 : default:;
14983 : }
14984 : break;
14985 : }
14986 12 : case CALL_EXPR:
14987 12 : switch (get_call_combined_fn (_p1))
14988 : {
14989 0 : case CFN_COND_FMA:
14990 0 : if (call_expr_nargs (_p1) == 5)
14991 : {
14992 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14993 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14994 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14995 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14996 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14997 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14998 : {
14999 0 : {
15000 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15001 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15002 0 : if (res) return res;
15003 : }
15004 : }
15005 : }
15006 : break;
15007 0 : case CFN_COND_FMS:
15008 0 : if (call_expr_nargs (_p1) == 5)
15009 : {
15010 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15011 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15012 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15013 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15014 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15015 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15016 : {
15017 0 : {
15018 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15019 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15020 0 : if (res) return res;
15021 : }
15022 : }
15023 : }
15024 : break;
15025 0 : case CFN_COND_FNMA:
15026 0 : if (call_expr_nargs (_p1) == 5)
15027 : {
15028 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15029 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15030 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15031 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15032 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15033 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15034 : {
15035 0 : {
15036 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15037 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15038 0 : if (res) return res;
15039 : }
15040 : }
15041 : }
15042 : break;
15043 0 : case CFN_COND_FNMS:
15044 0 : if (call_expr_nargs (_p1) == 5)
15045 : {
15046 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15047 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15048 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15049 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15050 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15051 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15052 : {
15053 0 : {
15054 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15055 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15056 0 : if (res) return res;
15057 : }
15058 : }
15059 : }
15060 : break;
15061 : default:;
15062 : }
15063 : break;
15064 332775 : default:;
15065 : }
15066 332775 : switch (TREE_CODE (_p2))
15067 : {
15068 0 : case VIEW_CONVERT_EXPR:
15069 0 : {
15070 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15071 0 : switch (TREE_CODE (_q40))
15072 : {
15073 0 : case CALL_EXPR:
15074 0 : switch (get_call_combined_fn (_q40))
15075 : {
15076 0 : case CFN_COND_FMA:
15077 0 : if (call_expr_nargs (_q40) == 5)
15078 : {
15079 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15080 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15081 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15082 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15083 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15084 0 : {
15085 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15086 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15087 0 : if (res) return res;
15088 : }
15089 : }
15090 : break;
15091 0 : case CFN_COND_FMS:
15092 0 : if (call_expr_nargs (_q40) == 5)
15093 : {
15094 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15095 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15096 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15097 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15098 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15099 0 : {
15100 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15101 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15102 0 : if (res) return res;
15103 : }
15104 : }
15105 : break;
15106 0 : case CFN_COND_FNMA:
15107 0 : if (call_expr_nargs (_q40) == 5)
15108 : {
15109 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15110 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15111 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15112 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15113 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15114 0 : {
15115 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15116 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15117 0 : if (res) return res;
15118 : }
15119 : }
15120 : break;
15121 0 : case CFN_COND_FNMS:
15122 0 : if (call_expr_nargs (_q40) == 5)
15123 : {
15124 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15125 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15126 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15127 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15128 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15129 0 : {
15130 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15131 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15132 0 : if (res) return res;
15133 : }
15134 : }
15135 : break;
15136 : default:;
15137 : }
15138 : break;
15139 : default:;
15140 : }
15141 : break;
15142 : }
15143 12 : case CALL_EXPR:
15144 12 : switch (get_call_combined_fn (_p2))
15145 : {
15146 0 : case CFN_COND_FMA:
15147 0 : if (call_expr_nargs (_p2) == 5)
15148 : {
15149 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15150 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15151 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15152 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15153 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15154 0 : {
15155 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15156 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15157 0 : if (res) return res;
15158 : }
15159 : }
15160 : break;
15161 0 : case CFN_COND_FMS:
15162 0 : if (call_expr_nargs (_p2) == 5)
15163 : {
15164 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15165 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15166 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15167 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15168 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15169 0 : {
15170 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15171 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15172 0 : if (res) return res;
15173 : }
15174 : }
15175 : break;
15176 0 : case CFN_COND_FNMA:
15177 0 : if (call_expr_nargs (_p2) == 5)
15178 : {
15179 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15180 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15181 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15182 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15183 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15184 0 : {
15185 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15186 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15187 0 : if (res) return res;
15188 : }
15189 : }
15190 : break;
15191 0 : case CFN_COND_FNMS:
15192 0 : if (call_expr_nargs (_p2) == 5)
15193 : {
15194 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15195 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15196 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15197 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15198 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15199 0 : {
15200 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15201 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15202 0 : if (res) return res;
15203 : }
15204 : }
15205 : break;
15206 : default:;
15207 : }
15208 : break;
15209 332775 : default:;
15210 : }
15211 332775 : switch (TREE_CODE (_p1))
15212 : {
15213 0 : case VIEW_CONVERT_EXPR:
15214 0 : {
15215 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15216 0 : switch (TREE_CODE (_q30))
15217 : {
15218 0 : case CALL_EXPR:
15219 0 : switch (get_call_combined_fn (_q30))
15220 : {
15221 0 : case CFN_COND_LEN_ADD:
15222 0 : if (call_expr_nargs (_q30) == 6)
15223 : {
15224 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15225 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15226 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15227 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15228 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15229 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15230 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15231 : {
15232 0 : {
15233 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15234 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15235 0 : if (res) return res;
15236 : }
15237 : }
15238 : }
15239 : break;
15240 0 : case CFN_COND_LEN_AND:
15241 0 : if (call_expr_nargs (_q30) == 6)
15242 : {
15243 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15244 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15245 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15246 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15247 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15248 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15249 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15250 : {
15251 0 : {
15252 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15253 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15254 0 : if (res) return res;
15255 : }
15256 : }
15257 : }
15258 : break;
15259 0 : case CFN_COND_LEN_DIV:
15260 0 : if (call_expr_nargs (_q30) == 6)
15261 : {
15262 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15263 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15264 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15265 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15266 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15267 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15268 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15269 : {
15270 0 : {
15271 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15272 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15273 0 : if (res) return res;
15274 : }
15275 : }
15276 : }
15277 : break;
15278 0 : case CFN_COND_LEN_IOR:
15279 0 : if (call_expr_nargs (_q30) == 6)
15280 : {
15281 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15282 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15283 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15284 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15285 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15286 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15287 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15288 : {
15289 0 : {
15290 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15291 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15292 0 : if (res) return res;
15293 : }
15294 : }
15295 : }
15296 : break;
15297 0 : case CFN_COND_LEN_MAX:
15298 0 : if (call_expr_nargs (_q30) == 6)
15299 : {
15300 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15301 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15302 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15303 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15304 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15305 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15306 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15307 : {
15308 0 : {
15309 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15310 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15311 0 : if (res) return res;
15312 : }
15313 : }
15314 : }
15315 : break;
15316 0 : case CFN_COND_LEN_MIN:
15317 0 : if (call_expr_nargs (_q30) == 6)
15318 : {
15319 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15320 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15321 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15322 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15323 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15324 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15325 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15326 : {
15327 0 : {
15328 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15329 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15330 0 : if (res) return res;
15331 : }
15332 : }
15333 : }
15334 : break;
15335 0 : case CFN_COND_LEN_MOD:
15336 0 : if (call_expr_nargs (_q30) == 6)
15337 : {
15338 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15339 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15340 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15341 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15342 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15343 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15344 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15345 : {
15346 0 : {
15347 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15348 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15349 0 : if (res) return res;
15350 : }
15351 : }
15352 : }
15353 : break;
15354 0 : case CFN_COND_LEN_MUL:
15355 0 : if (call_expr_nargs (_q30) == 6)
15356 : {
15357 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15358 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15359 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15360 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15361 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15362 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15363 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15364 : {
15365 0 : {
15366 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15367 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15368 0 : if (res) return res;
15369 : }
15370 : }
15371 : }
15372 : break;
15373 0 : case CFN_COND_LEN_SHL:
15374 0 : if (call_expr_nargs (_q30) == 6)
15375 : {
15376 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15377 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15378 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15379 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15380 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15381 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15382 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15383 : {
15384 0 : {
15385 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15386 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15387 0 : if (res) return res;
15388 : }
15389 : }
15390 : }
15391 : break;
15392 0 : case CFN_COND_LEN_SHR:
15393 0 : if (call_expr_nargs (_q30) == 6)
15394 : {
15395 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15396 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15397 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15398 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15399 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15400 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15401 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15402 : {
15403 0 : {
15404 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15405 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15406 0 : if (res) return res;
15407 : }
15408 : }
15409 : }
15410 : break;
15411 0 : case CFN_COND_LEN_SUB:
15412 0 : if (call_expr_nargs (_q30) == 6)
15413 : {
15414 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15415 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15416 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15417 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15418 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15419 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15420 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15421 : {
15422 0 : {
15423 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15424 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15425 0 : if (res) return res;
15426 : }
15427 : }
15428 : }
15429 : break;
15430 0 : case CFN_COND_LEN_XOR:
15431 0 : if (call_expr_nargs (_q30) == 6)
15432 : {
15433 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15434 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15435 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15436 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15437 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15438 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15439 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15440 : {
15441 0 : {
15442 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15443 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15444 0 : if (res) return res;
15445 : }
15446 : }
15447 : }
15448 : break;
15449 0 : case CFN_COND_LEN_FMAX:
15450 0 : if (call_expr_nargs (_q30) == 6)
15451 : {
15452 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15453 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15454 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15455 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15456 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15457 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15458 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15459 : {
15460 0 : {
15461 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15462 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15463 0 : if (res) return res;
15464 : }
15465 : }
15466 : }
15467 : break;
15468 0 : case CFN_COND_LEN_FMIN:
15469 0 : if (call_expr_nargs (_q30) == 6)
15470 : {
15471 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15472 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15473 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15474 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15475 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15476 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15477 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15478 : {
15479 0 : {
15480 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15481 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15482 0 : if (res) return res;
15483 : }
15484 : }
15485 : }
15486 : break;
15487 0 : case CFN_COND_LEN_RDIV:
15488 0 : if (call_expr_nargs (_q30) == 6)
15489 : {
15490 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15491 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15492 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15493 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15494 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15495 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15496 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15497 : {
15498 0 : {
15499 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15500 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15501 0 : if (res) return res;
15502 : }
15503 : }
15504 : }
15505 : break;
15506 0 : case CFN_COND_LEN_COPYSIGN:
15507 0 : if (call_expr_nargs (_q30) == 6)
15508 : {
15509 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15510 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15511 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15512 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15513 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15514 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15515 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15516 : {
15517 0 : {
15518 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15519 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15520 0 : if (res) return res;
15521 : }
15522 : }
15523 : }
15524 : break;
15525 : default:;
15526 : }
15527 : break;
15528 : default:;
15529 : }
15530 : break;
15531 : }
15532 12 : case CALL_EXPR:
15533 12 : switch (get_call_combined_fn (_p1))
15534 : {
15535 0 : case CFN_COND_LEN_ADD:
15536 0 : if (call_expr_nargs (_p1) == 6)
15537 : {
15538 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15539 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15540 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15541 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15542 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15543 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15544 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15545 : {
15546 0 : {
15547 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15548 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15549 0 : if (res) return res;
15550 : }
15551 : }
15552 : }
15553 : break;
15554 0 : case CFN_COND_LEN_AND:
15555 0 : if (call_expr_nargs (_p1) == 6)
15556 : {
15557 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15558 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15559 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15560 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15561 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15562 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15563 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15564 : {
15565 0 : {
15566 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15567 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15568 0 : if (res) return res;
15569 : }
15570 : }
15571 : }
15572 : break;
15573 0 : case CFN_COND_LEN_DIV:
15574 0 : if (call_expr_nargs (_p1) == 6)
15575 : {
15576 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15577 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15578 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15579 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15580 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15581 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15582 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15583 : {
15584 0 : {
15585 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15586 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15587 0 : if (res) return res;
15588 : }
15589 : }
15590 : }
15591 : break;
15592 0 : case CFN_COND_LEN_IOR:
15593 0 : if (call_expr_nargs (_p1) == 6)
15594 : {
15595 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15596 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15597 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15598 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15599 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15600 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15601 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15602 : {
15603 0 : {
15604 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15605 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15606 0 : if (res) return res;
15607 : }
15608 : }
15609 : }
15610 : break;
15611 0 : case CFN_COND_LEN_MAX:
15612 0 : if (call_expr_nargs (_p1) == 6)
15613 : {
15614 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15615 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15616 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15617 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15618 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15619 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15620 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15621 : {
15622 0 : {
15623 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15624 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15625 0 : if (res) return res;
15626 : }
15627 : }
15628 : }
15629 : break;
15630 0 : case CFN_COND_LEN_MIN:
15631 0 : if (call_expr_nargs (_p1) == 6)
15632 : {
15633 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15634 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15635 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15636 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15637 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15638 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15639 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15640 : {
15641 0 : {
15642 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15643 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15644 0 : if (res) return res;
15645 : }
15646 : }
15647 : }
15648 : break;
15649 0 : case CFN_COND_LEN_MOD:
15650 0 : if (call_expr_nargs (_p1) == 6)
15651 : {
15652 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15653 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15654 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15655 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15656 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15657 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15658 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15659 : {
15660 0 : {
15661 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15662 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15663 0 : if (res) return res;
15664 : }
15665 : }
15666 : }
15667 : break;
15668 0 : case CFN_COND_LEN_MUL:
15669 0 : if (call_expr_nargs (_p1) == 6)
15670 : {
15671 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15672 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15673 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15674 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15675 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15676 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15677 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15678 : {
15679 0 : {
15680 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15681 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15682 0 : if (res) return res;
15683 : }
15684 : }
15685 : }
15686 : break;
15687 0 : case CFN_COND_LEN_SHL:
15688 0 : if (call_expr_nargs (_p1) == 6)
15689 : {
15690 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15691 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15692 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15693 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15694 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15695 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15696 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15697 : {
15698 0 : {
15699 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15700 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15701 0 : if (res) return res;
15702 : }
15703 : }
15704 : }
15705 : break;
15706 0 : case CFN_COND_LEN_SHR:
15707 0 : if (call_expr_nargs (_p1) == 6)
15708 : {
15709 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15710 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15711 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15712 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15713 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15714 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15715 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15716 : {
15717 0 : {
15718 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15719 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15720 0 : if (res) return res;
15721 : }
15722 : }
15723 : }
15724 : break;
15725 0 : case CFN_COND_LEN_SUB:
15726 0 : if (call_expr_nargs (_p1) == 6)
15727 : {
15728 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15729 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15730 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15731 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15732 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15733 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15734 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15735 : {
15736 0 : {
15737 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15738 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15739 0 : if (res) return res;
15740 : }
15741 : }
15742 : }
15743 : break;
15744 0 : case CFN_COND_LEN_XOR:
15745 0 : if (call_expr_nargs (_p1) == 6)
15746 : {
15747 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15748 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15749 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15750 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15751 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15752 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15753 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15754 : {
15755 0 : {
15756 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15757 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15758 0 : if (res) return res;
15759 : }
15760 : }
15761 : }
15762 : break;
15763 0 : case CFN_COND_LEN_FMAX:
15764 0 : if (call_expr_nargs (_p1) == 6)
15765 : {
15766 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15767 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15768 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15769 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15770 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15771 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15772 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15773 : {
15774 0 : {
15775 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15776 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15777 0 : if (res) return res;
15778 : }
15779 : }
15780 : }
15781 : break;
15782 0 : case CFN_COND_LEN_FMIN:
15783 0 : if (call_expr_nargs (_p1) == 6)
15784 : {
15785 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15786 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15787 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15788 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15789 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15790 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15791 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15792 : {
15793 0 : {
15794 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15795 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15796 0 : if (res) return res;
15797 : }
15798 : }
15799 : }
15800 : break;
15801 0 : case CFN_COND_LEN_RDIV:
15802 0 : if (call_expr_nargs (_p1) == 6)
15803 : {
15804 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15805 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15806 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15807 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15808 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15809 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15810 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15811 : {
15812 0 : {
15813 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15814 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15815 0 : if (res) return res;
15816 : }
15817 : }
15818 : }
15819 : break;
15820 0 : case CFN_COND_LEN_COPYSIGN:
15821 0 : if (call_expr_nargs (_p1) == 6)
15822 : {
15823 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15824 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15825 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15826 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15827 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15828 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15829 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15830 : {
15831 0 : {
15832 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15833 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15834 0 : if (res) return res;
15835 : }
15836 : }
15837 : }
15838 : break;
15839 : default:;
15840 : }
15841 : break;
15842 332775 : default:;
15843 : }
15844 332775 : switch (TREE_CODE (_p2))
15845 : {
15846 0 : case VIEW_CONVERT_EXPR:
15847 0 : {
15848 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15849 0 : switch (TREE_CODE (_q40))
15850 : {
15851 0 : case CALL_EXPR:
15852 0 : switch (get_call_combined_fn (_q40))
15853 : {
15854 0 : case CFN_COND_LEN_ADD:
15855 0 : if (call_expr_nargs (_q40) == 6)
15856 : {
15857 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15858 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15859 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15860 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15861 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15862 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15863 0 : {
15864 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15865 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15866 0 : if (res) return res;
15867 : }
15868 : }
15869 : break;
15870 0 : case CFN_COND_LEN_AND:
15871 0 : if (call_expr_nargs (_q40) == 6)
15872 : {
15873 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15874 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15875 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15876 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15877 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15878 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15879 0 : {
15880 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15881 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15882 0 : if (res) return res;
15883 : }
15884 : }
15885 : break;
15886 0 : case CFN_COND_LEN_DIV:
15887 0 : if (call_expr_nargs (_q40) == 6)
15888 : {
15889 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15890 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15891 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15892 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15893 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15894 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15895 0 : {
15896 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15897 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15898 0 : if (res) return res;
15899 : }
15900 : }
15901 : break;
15902 0 : case CFN_COND_LEN_IOR:
15903 0 : if (call_expr_nargs (_q40) == 6)
15904 : {
15905 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15906 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15907 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15908 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15909 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15910 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15911 0 : {
15912 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15913 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15914 0 : if (res) return res;
15915 : }
15916 : }
15917 : break;
15918 0 : case CFN_COND_LEN_MAX:
15919 0 : if (call_expr_nargs (_q40) == 6)
15920 : {
15921 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15922 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15923 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15924 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15925 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15926 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15927 0 : {
15928 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15929 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15930 0 : if (res) return res;
15931 : }
15932 : }
15933 : break;
15934 0 : case CFN_COND_LEN_MIN:
15935 0 : if (call_expr_nargs (_q40) == 6)
15936 : {
15937 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15938 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15939 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15940 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15941 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15942 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15943 0 : {
15944 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15945 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15946 0 : if (res) return res;
15947 : }
15948 : }
15949 : break;
15950 0 : case CFN_COND_LEN_MOD:
15951 0 : if (call_expr_nargs (_q40) == 6)
15952 : {
15953 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15954 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15955 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15956 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15957 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15958 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15959 0 : {
15960 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15961 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15962 0 : if (res) return res;
15963 : }
15964 : }
15965 : break;
15966 0 : case CFN_COND_LEN_MUL:
15967 0 : if (call_expr_nargs (_q40) == 6)
15968 : {
15969 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15970 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15971 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15972 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15973 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15974 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15975 0 : {
15976 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15977 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15978 0 : if (res) return res;
15979 : }
15980 : }
15981 : break;
15982 0 : case CFN_COND_LEN_SHL:
15983 0 : if (call_expr_nargs (_q40) == 6)
15984 : {
15985 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15986 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15987 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15988 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15989 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15990 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15991 0 : {
15992 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15993 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15994 0 : if (res) return res;
15995 : }
15996 : }
15997 : break;
15998 0 : case CFN_COND_LEN_SHR:
15999 0 : if (call_expr_nargs (_q40) == 6)
16000 : {
16001 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16002 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16003 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16004 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16005 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16006 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16007 0 : {
16008 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16009 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16010 0 : if (res) return res;
16011 : }
16012 : }
16013 : break;
16014 0 : case CFN_COND_LEN_SUB:
16015 0 : if (call_expr_nargs (_q40) == 6)
16016 : {
16017 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16018 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16019 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16020 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16021 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16022 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16023 0 : {
16024 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16025 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16026 0 : if (res) return res;
16027 : }
16028 : }
16029 : break;
16030 0 : case CFN_COND_LEN_XOR:
16031 0 : if (call_expr_nargs (_q40) == 6)
16032 : {
16033 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16034 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16035 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16036 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16037 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16038 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16039 0 : {
16040 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16041 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16042 0 : if (res) return res;
16043 : }
16044 : }
16045 : break;
16046 0 : case CFN_COND_LEN_FMAX:
16047 0 : if (call_expr_nargs (_q40) == 6)
16048 : {
16049 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16050 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16051 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16052 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16053 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16054 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16055 0 : {
16056 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16057 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16058 0 : if (res) return res;
16059 : }
16060 : }
16061 : break;
16062 0 : case CFN_COND_LEN_FMIN:
16063 0 : if (call_expr_nargs (_q40) == 6)
16064 : {
16065 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16066 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16067 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16068 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16069 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16070 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16071 0 : {
16072 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16073 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16074 0 : if (res) return res;
16075 : }
16076 : }
16077 : break;
16078 0 : case CFN_COND_LEN_RDIV:
16079 0 : if (call_expr_nargs (_q40) == 6)
16080 : {
16081 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16082 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16083 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16084 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16085 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16086 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16087 0 : {
16088 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16089 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16090 0 : if (res) return res;
16091 : }
16092 : }
16093 : break;
16094 0 : case CFN_COND_LEN_COPYSIGN:
16095 0 : if (call_expr_nargs (_q40) == 6)
16096 : {
16097 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16098 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16099 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16100 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16101 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16102 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16103 0 : {
16104 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16105 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16106 0 : if (res) return res;
16107 : }
16108 : }
16109 : break;
16110 : default:;
16111 : }
16112 : break;
16113 : default:;
16114 : }
16115 : break;
16116 : }
16117 12 : case CALL_EXPR:
16118 12 : switch (get_call_combined_fn (_p2))
16119 : {
16120 0 : case CFN_COND_LEN_ADD:
16121 0 : if (call_expr_nargs (_p2) == 6)
16122 : {
16123 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16124 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16125 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16126 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16127 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16128 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16129 0 : {
16130 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16131 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16132 0 : if (res) return res;
16133 : }
16134 : }
16135 : break;
16136 0 : case CFN_COND_LEN_AND:
16137 0 : if (call_expr_nargs (_p2) == 6)
16138 : {
16139 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16140 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16141 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16142 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16143 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16144 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16145 0 : {
16146 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16147 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16148 0 : if (res) return res;
16149 : }
16150 : }
16151 : break;
16152 0 : case CFN_COND_LEN_DIV:
16153 0 : if (call_expr_nargs (_p2) == 6)
16154 : {
16155 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16156 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16157 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16158 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16159 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16160 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16161 0 : {
16162 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16163 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16164 0 : if (res) return res;
16165 : }
16166 : }
16167 : break;
16168 0 : case CFN_COND_LEN_IOR:
16169 0 : if (call_expr_nargs (_p2) == 6)
16170 : {
16171 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16172 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16173 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16174 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16175 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16176 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16177 0 : {
16178 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16179 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16180 0 : if (res) return res;
16181 : }
16182 : }
16183 : break;
16184 0 : case CFN_COND_LEN_MAX:
16185 0 : if (call_expr_nargs (_p2) == 6)
16186 : {
16187 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16188 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16189 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16190 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16191 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16192 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16193 0 : {
16194 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16195 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16196 0 : if (res) return res;
16197 : }
16198 : }
16199 : break;
16200 0 : case CFN_COND_LEN_MIN:
16201 0 : if (call_expr_nargs (_p2) == 6)
16202 : {
16203 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16204 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16205 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16206 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16207 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16208 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16209 0 : {
16210 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16211 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16212 0 : if (res) return res;
16213 : }
16214 : }
16215 : break;
16216 0 : case CFN_COND_LEN_MOD:
16217 0 : if (call_expr_nargs (_p2) == 6)
16218 : {
16219 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16220 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16221 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16222 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16223 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16224 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16225 0 : {
16226 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16227 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16228 0 : if (res) return res;
16229 : }
16230 : }
16231 : break;
16232 0 : case CFN_COND_LEN_MUL:
16233 0 : if (call_expr_nargs (_p2) == 6)
16234 : {
16235 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16236 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16237 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16238 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16239 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16240 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16241 0 : {
16242 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16243 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16244 0 : if (res) return res;
16245 : }
16246 : }
16247 : break;
16248 0 : case CFN_COND_LEN_SHL:
16249 0 : if (call_expr_nargs (_p2) == 6)
16250 : {
16251 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16252 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16253 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16254 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16255 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16256 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16257 0 : {
16258 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16259 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16260 0 : if (res) return res;
16261 : }
16262 : }
16263 : break;
16264 0 : case CFN_COND_LEN_SHR:
16265 0 : if (call_expr_nargs (_p2) == 6)
16266 : {
16267 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16268 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16269 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16270 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16271 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16272 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16273 0 : {
16274 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16275 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16276 0 : if (res) return res;
16277 : }
16278 : }
16279 : break;
16280 0 : case CFN_COND_LEN_SUB:
16281 0 : if (call_expr_nargs (_p2) == 6)
16282 : {
16283 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16284 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16285 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16286 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16287 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16288 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16289 0 : {
16290 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16291 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16292 0 : if (res) return res;
16293 : }
16294 : }
16295 : break;
16296 0 : case CFN_COND_LEN_XOR:
16297 0 : if (call_expr_nargs (_p2) == 6)
16298 : {
16299 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16300 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16301 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16302 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16303 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16304 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16305 0 : {
16306 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16307 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16308 0 : if (res) return res;
16309 : }
16310 : }
16311 : break;
16312 0 : case CFN_COND_LEN_FMAX:
16313 0 : if (call_expr_nargs (_p2) == 6)
16314 : {
16315 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16316 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16317 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16318 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16319 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16320 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16321 0 : {
16322 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16323 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16324 0 : if (res) return res;
16325 : }
16326 : }
16327 : break;
16328 0 : case CFN_COND_LEN_FMIN:
16329 0 : if (call_expr_nargs (_p2) == 6)
16330 : {
16331 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16332 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16333 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16334 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16335 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16336 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16337 0 : {
16338 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16339 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16340 0 : if (res) return res;
16341 : }
16342 : }
16343 : break;
16344 0 : case CFN_COND_LEN_RDIV:
16345 0 : if (call_expr_nargs (_p2) == 6)
16346 : {
16347 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16348 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16349 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16350 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16351 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16352 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16353 0 : {
16354 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16355 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16356 0 : if (res) return res;
16357 : }
16358 : }
16359 : break;
16360 0 : case CFN_COND_LEN_COPYSIGN:
16361 0 : if (call_expr_nargs (_p2) == 6)
16362 : {
16363 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16364 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16365 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16366 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16367 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16368 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16369 0 : {
16370 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16371 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16372 0 : if (res) return res;
16373 : }
16374 : }
16375 : break;
16376 : default:;
16377 : }
16378 : break;
16379 332775 : default:;
16380 : }
16381 332775 : switch (TREE_CODE (_p1))
16382 : {
16383 0 : case VIEW_CONVERT_EXPR:
16384 0 : {
16385 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16386 0 : switch (TREE_CODE (_q30))
16387 : {
16388 0 : case CALL_EXPR:
16389 0 : switch (get_call_combined_fn (_q30))
16390 : {
16391 0 : case CFN_COND_LEN_FMA:
16392 0 : if (call_expr_nargs (_q30) == 7)
16393 : {
16394 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16395 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16396 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16397 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16398 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16399 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16400 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16401 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16402 : {
16403 0 : {
16404 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16405 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16406 0 : if (res) return res;
16407 : }
16408 : }
16409 : }
16410 : break;
16411 0 : case CFN_COND_LEN_FMS:
16412 0 : if (call_expr_nargs (_q30) == 7)
16413 : {
16414 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16415 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16416 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16417 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16418 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16419 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16420 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16421 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16422 : {
16423 0 : {
16424 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16425 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16426 0 : if (res) return res;
16427 : }
16428 : }
16429 : }
16430 : break;
16431 0 : case CFN_COND_LEN_FNMA:
16432 0 : if (call_expr_nargs (_q30) == 7)
16433 : {
16434 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16435 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16436 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16437 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16438 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16439 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16440 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16441 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16442 : {
16443 0 : {
16444 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16445 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16446 0 : if (res) return res;
16447 : }
16448 : }
16449 : }
16450 : break;
16451 0 : case CFN_COND_LEN_FNMS:
16452 0 : if (call_expr_nargs (_q30) == 7)
16453 : {
16454 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16455 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16456 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16457 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16458 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16459 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16460 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16461 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16462 : {
16463 0 : {
16464 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16465 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16466 0 : if (res) return res;
16467 : }
16468 : }
16469 : }
16470 : break;
16471 : default:;
16472 : }
16473 : break;
16474 : default:;
16475 : }
16476 : break;
16477 : }
16478 12 : case CALL_EXPR:
16479 12 : switch (get_call_combined_fn (_p1))
16480 : {
16481 0 : case CFN_COND_LEN_FMA:
16482 0 : if (call_expr_nargs (_p1) == 7)
16483 : {
16484 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16485 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16486 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16487 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16488 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16489 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16490 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16491 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16492 : {
16493 0 : {
16494 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16495 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16496 0 : if (res) return res;
16497 : }
16498 : }
16499 : }
16500 : break;
16501 0 : case CFN_COND_LEN_FMS:
16502 0 : if (call_expr_nargs (_p1) == 7)
16503 : {
16504 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16505 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16506 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16507 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16508 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16509 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16510 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16511 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16512 : {
16513 0 : {
16514 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16515 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16516 0 : if (res) return res;
16517 : }
16518 : }
16519 : }
16520 : break;
16521 0 : case CFN_COND_LEN_FNMA:
16522 0 : if (call_expr_nargs (_p1) == 7)
16523 : {
16524 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16525 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16526 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16527 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16528 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16529 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16530 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16531 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16532 : {
16533 0 : {
16534 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16535 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16536 0 : if (res) return res;
16537 : }
16538 : }
16539 : }
16540 : break;
16541 0 : case CFN_COND_LEN_FNMS:
16542 0 : if (call_expr_nargs (_p1) == 7)
16543 : {
16544 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16545 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16546 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16547 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16548 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16549 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16550 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16551 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16552 : {
16553 0 : {
16554 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16555 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16556 0 : if (res) return res;
16557 : }
16558 : }
16559 : }
16560 : break;
16561 : default:;
16562 : }
16563 : break;
16564 332775 : default:;
16565 : }
16566 332775 : switch (TREE_CODE (_p2))
16567 : {
16568 0 : case VIEW_CONVERT_EXPR:
16569 0 : {
16570 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16571 0 : switch (TREE_CODE (_q40))
16572 : {
16573 0 : case CALL_EXPR:
16574 0 : switch (get_call_combined_fn (_q40))
16575 : {
16576 0 : case CFN_COND_LEN_FMA:
16577 0 : if (call_expr_nargs (_q40) == 7)
16578 : {
16579 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16580 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16581 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16582 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16583 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16584 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16585 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16586 0 : {
16587 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16588 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16589 0 : if (res) return res;
16590 : }
16591 : }
16592 : break;
16593 0 : case CFN_COND_LEN_FMS:
16594 0 : if (call_expr_nargs (_q40) == 7)
16595 : {
16596 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16597 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16598 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16599 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16600 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16601 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16602 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16603 0 : {
16604 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16605 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16606 0 : if (res) return res;
16607 : }
16608 : }
16609 : break;
16610 0 : case CFN_COND_LEN_FNMA:
16611 0 : if (call_expr_nargs (_q40) == 7)
16612 : {
16613 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16614 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16615 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16616 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16617 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16618 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16619 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16620 0 : {
16621 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16622 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16623 0 : if (res) return res;
16624 : }
16625 : }
16626 : break;
16627 0 : case CFN_COND_LEN_FNMS:
16628 0 : if (call_expr_nargs (_q40) == 7)
16629 : {
16630 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16631 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16632 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16633 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16634 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16635 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16636 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16637 0 : {
16638 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16639 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16640 0 : if (res) return res;
16641 : }
16642 : }
16643 : break;
16644 : default:;
16645 : }
16646 : break;
16647 : default:;
16648 : }
16649 : break;
16650 : }
16651 12 : case CALL_EXPR:
16652 12 : switch (get_call_combined_fn (_p2))
16653 : {
16654 0 : case CFN_COND_LEN_FMA:
16655 0 : if (call_expr_nargs (_p2) == 7)
16656 : {
16657 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16658 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16659 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16660 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16661 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16662 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16663 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16664 0 : {
16665 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16666 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16667 0 : if (res) return res;
16668 : }
16669 : }
16670 : break;
16671 0 : case CFN_COND_LEN_FMS:
16672 0 : if (call_expr_nargs (_p2) == 7)
16673 : {
16674 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16675 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16676 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16677 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16678 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16679 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16680 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16681 0 : {
16682 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16683 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16684 0 : if (res) return res;
16685 : }
16686 : }
16687 : break;
16688 0 : case CFN_COND_LEN_FNMA:
16689 0 : if (call_expr_nargs (_p2) == 7)
16690 : {
16691 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16692 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16693 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16694 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16695 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16696 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16697 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16698 0 : {
16699 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16700 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16701 0 : if (res) return res;
16702 : }
16703 : }
16704 : break;
16705 0 : case CFN_COND_LEN_FNMS:
16706 0 : if (call_expr_nargs (_p2) == 7)
16707 : {
16708 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16709 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16710 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16711 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16712 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16713 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16714 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16715 0 : {
16716 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16717 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16718 0 : if (res) return res;
16719 : }
16720 : }
16721 : break;
16722 : default:;
16723 : }
16724 : break;
16725 332775 : default:;
16726 : }
16727 332775 : switch (TREE_CODE (_p1))
16728 : {
16729 12 : case CALL_EXPR:
16730 12 : switch (get_call_combined_fn (_p1))
16731 : {
16732 0 : case CFN_COND_ADD:
16733 0 : if (call_expr_nargs (_p1) == 4)
16734 : {
16735 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16736 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16737 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16738 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16739 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16740 : {
16741 0 : {
16742 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16743 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16744 0 : if (res) return res;
16745 : }
16746 : }
16747 : }
16748 : break;
16749 0 : case CFN_COND_AND:
16750 0 : if (call_expr_nargs (_p1) == 4)
16751 : {
16752 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16753 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16754 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16755 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16756 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16757 : {
16758 0 : {
16759 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16760 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16761 0 : if (res) return res;
16762 : }
16763 : }
16764 : }
16765 : break;
16766 0 : case CFN_COND_DIV:
16767 0 : if (call_expr_nargs (_p1) == 4)
16768 : {
16769 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16770 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16771 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16772 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16773 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16774 : {
16775 0 : {
16776 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16777 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16778 0 : if (res) return res;
16779 : }
16780 : }
16781 : }
16782 : break;
16783 0 : case CFN_COND_FMA:
16784 0 : if (call_expr_nargs (_p1) == 5)
16785 : {
16786 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16787 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16788 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16789 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16790 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16791 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16792 : {
16793 0 : {
16794 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16795 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16796 0 : if (res) return res;
16797 : }
16798 : }
16799 : }
16800 : break;
16801 0 : case CFN_COND_FMS:
16802 0 : if (call_expr_nargs (_p1) == 5)
16803 : {
16804 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16805 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16806 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16807 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16808 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16809 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16810 : {
16811 0 : {
16812 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16813 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16814 0 : if (res) return res;
16815 : }
16816 : }
16817 : }
16818 : break;
16819 0 : case CFN_COND_IOR:
16820 0 : if (call_expr_nargs (_p1) == 4)
16821 : {
16822 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16823 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16824 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16825 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16826 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16827 : {
16828 0 : {
16829 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16830 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16831 0 : if (res) return res;
16832 : }
16833 : }
16834 : }
16835 : break;
16836 0 : case CFN_COND_MAX:
16837 0 : if (call_expr_nargs (_p1) == 4)
16838 : {
16839 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16840 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16841 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16842 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16843 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16844 : {
16845 0 : {
16846 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16847 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16848 0 : if (res) return res;
16849 : }
16850 : }
16851 : }
16852 : break;
16853 0 : case CFN_COND_MIN:
16854 0 : if (call_expr_nargs (_p1) == 4)
16855 : {
16856 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16857 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16858 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16859 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16860 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16861 : {
16862 0 : {
16863 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16864 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
16865 0 : if (res) return res;
16866 : }
16867 : }
16868 : }
16869 : break;
16870 0 : case CFN_COND_MOD:
16871 0 : if (call_expr_nargs (_p1) == 4)
16872 : {
16873 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16874 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16875 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16876 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16877 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16878 : {
16879 0 : {
16880 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16881 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
16882 0 : if (res) return res;
16883 : }
16884 : }
16885 : }
16886 : break;
16887 0 : case CFN_COND_MUL:
16888 0 : if (call_expr_nargs (_p1) == 4)
16889 : {
16890 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16891 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16892 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16893 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16894 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16895 : {
16896 0 : {
16897 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16898 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
16899 0 : if (res) return res;
16900 : }
16901 : }
16902 : }
16903 : break;
16904 0 : case CFN_COND_SHL:
16905 0 : if (call_expr_nargs (_p1) == 4)
16906 : {
16907 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16908 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16909 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16910 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16911 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16912 : {
16913 0 : {
16914 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16915 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
16916 0 : if (res) return res;
16917 : }
16918 : }
16919 : }
16920 : break;
16921 0 : case CFN_COND_SHR:
16922 0 : if (call_expr_nargs (_p1) == 4)
16923 : {
16924 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16925 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16926 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16927 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16928 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16929 : {
16930 0 : {
16931 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16932 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
16933 0 : if (res) return res;
16934 : }
16935 : }
16936 : }
16937 : break;
16938 0 : case CFN_COND_SUB:
16939 0 : if (call_expr_nargs (_p1) == 4)
16940 : {
16941 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16942 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16943 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16944 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16945 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16946 : {
16947 0 : {
16948 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16949 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
16950 0 : if (res) return res;
16951 : }
16952 : }
16953 : }
16954 : break;
16955 0 : case CFN_COND_XOR:
16956 0 : if (call_expr_nargs (_p1) == 4)
16957 : {
16958 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16959 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16960 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16961 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16962 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16963 : {
16964 0 : {
16965 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16966 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
16967 0 : if (res) return res;
16968 : }
16969 : }
16970 : }
16971 : break;
16972 0 : case CFN_COND_COPYSIGN:
16973 0 : if (call_expr_nargs (_p1) == 4)
16974 : {
16975 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16976 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16977 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16978 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16979 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16980 : {
16981 0 : {
16982 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16983 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
16984 0 : if (res) return res;
16985 : }
16986 : }
16987 : }
16988 : break;
16989 0 : case CFN_COND_FMAX:
16990 0 : if (call_expr_nargs (_p1) == 4)
16991 : {
16992 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16993 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16994 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16995 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16996 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16997 : {
16998 0 : {
16999 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17000 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17001 0 : if (res) return res;
17002 : }
17003 : }
17004 : }
17005 : break;
17006 0 : case CFN_COND_FMIN:
17007 0 : if (call_expr_nargs (_p1) == 4)
17008 : {
17009 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17010 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17011 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17012 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17013 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17014 : {
17015 0 : {
17016 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17017 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17018 0 : if (res) return res;
17019 : }
17020 : }
17021 : }
17022 : break;
17023 0 : case CFN_COND_FNMA:
17024 0 : if (call_expr_nargs (_p1) == 5)
17025 : {
17026 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17027 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17028 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17029 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17030 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17031 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17032 : {
17033 0 : {
17034 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17035 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17036 0 : if (res) return res;
17037 : }
17038 : }
17039 : }
17040 : break;
17041 0 : case CFN_COND_FNMS:
17042 0 : if (call_expr_nargs (_p1) == 5)
17043 : {
17044 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17045 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17046 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17047 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17048 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17049 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17050 : {
17051 0 : {
17052 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17053 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17054 0 : if (res) return res;
17055 : }
17056 : }
17057 : }
17058 : break;
17059 0 : case CFN_COND_RDIV:
17060 0 : if (call_expr_nargs (_p1) == 4)
17061 : {
17062 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17063 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17064 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17065 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17066 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17067 : {
17068 0 : {
17069 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17070 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17071 0 : if (res) return res;
17072 : }
17073 : }
17074 : }
17075 : break;
17076 : default:;
17077 : }
17078 : break;
17079 : default:;
17080 : }
17081 : return NULL_TREE;
17082 : }
17083 : #pragma GCC diagnostic pop
|