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 99957268 : tree_zero_one_valued_p (tree t)
11 : {
12 99957268 : const tree type = TREE_TYPE (t);
13 99957268 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 99957268 : if (TREE_SIDE_EFFECTS (t)) return false;
15 94247409 : {
16 94247409 : tree captures[1] ATTRIBUTE_UNUSED = { t };
17 188494818 : if (INTEGRAL_TYPE_P (type)
18 69154208 : && (TYPE_UNSIGNED (type)
19 12332162 : || TYPE_PRECISION (type) > 1)
20 232555807 : && wi::leu_p (tree_nonzero_bits (captures[0]), 1)
21 : )
22 : {
23 482134 : {
24 482134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 28, __FILE__, __LINE__, false);
25 482134 : return true;
26 : }
27 : }
28 : }
29 93765275 : switch (TREE_CODE (t))
30 : {
31 1035799 : case BIT_AND_EXPR:
32 1035799 : {
33 1035799 : tree _p0 = TREE_OPERAND (t, 0);
34 1035799 : tree _p1 = TREE_OPERAND (t, 1);
35 1035799 : 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 1035799 : 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 44830161 : CASE_CONVERT:
66 44830161 : {
67 44830161 : tree _p0 = TREE_OPERAND (t, 0);
68 44830161 : {
69 44830161 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
70 89653369 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
71 40383756 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
72 35460682 : || TYPE_PRECISION (TREE_TYPE (captures[1])) > 1)
73 40383756 : && INTEGRAL_TYPE_P (type)
74 40383742 : && (TYPE_UNSIGNED (type)
75 1865730 : || TYPE_PRECISION (type) > 1)
76 130044064 : && 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 93765275 : default:;
88 : }
89 93765275 : if (tree_truth_valued_p (t))
90 : {
91 157993 : {
92 157993 : tree captures[1] ATTRIBUTE_UNUSED = { t };
93 157993 : if (INTEGRAL_TYPE_P (type)
94 157993 : && (TYPE_UNSIGNED (type)
95 157927 : || TYPE_PRECISION (type) > 1)
96 : )
97 : {
98 157975 : {
99 157975 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 31, __FILE__, __LINE__, false);
100 157975 : 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 18686 : 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 18686 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
259 18686 : 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 407 : 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 407 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
661 407 : if ((TREE_CODE (captures[2]) == INTEGER_CST
662 376 : && TREE_CODE (captures[5]) == INTEGER_CST)
663 407 : || ((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 378 : {
670 378 : bool one_before = false;
671 378 : bool one_after = false;
672 378 : int cmp = 0;
673 378 : bool allbits = true;
674 378 : if (TREE_CODE (captures[2]) == INTEGER_CST
675 376 : && TREE_CODE (captures[5]) == INTEGER_CST)
676 : {
677 376 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
678 376 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
679 376 : auto t2 = wi::to_wide (captures[5]);
680 376 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
681 376 : if (cmp < 0
682 376 : && t1 == t2 - 1)
683 : one_before = true;
684 376 : if (cmp > 0
685 376 : && t1 == t2 + 1)
686 : one_after = true;
687 : }
688 378 : bool val;
689 378 : switch (code2)
690 : {
691 362 : 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 378 : 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 371 : 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 364 : 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 364 : if (code1 == EQ_EXPR
752 364 : && code2 == GT_EXPR
753 0 : && cmp == 0
754 0 : && allbits
755 364 : && ((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 364 : if (code1 == EQ_EXPR
778 364 : && code2 == LT_EXPR
779 2 : && cmp == 0
780 2 : && allbits
781 366 : && ((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 362 : if (code1 == EQ_EXPR
804 362 : && code2 == GE_EXPR
805 : && one_before
806 0 : && allbits
807 362 : && ((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 362 : if (code1 == EQ_EXPR
840 362 : && code2 == LE_EXPR
841 : && one_after
842 0 : && allbits
843 362 : && ((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 145304 : 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 145304 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1036 290608 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1037 289016 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
1038 130670 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
1039 : && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
1040 144504 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1041 434316 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
1042 : )
1043 : {
1044 144496 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail350;
1045 144496 : {
1046 144496 : tree res_op0;
1047 144496 : res_op0 = captures[2];
1048 144496 : tree res_op1;
1049 144496 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1050 144496 : tree _r;
1051 144496 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1052 144496 : if (TREE_SIDE_EFFECTS (captures[3]))
1053 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1054 144496 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
1055 144496 : return _r;
1056 : }
1057 0 : next_after_fail350:;
1058 : }
1059 : return NULL_TREE;
1060 : }
1061 :
1062 : tree
1063 12159 : 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 12159 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1068 12159 : if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1069 12159 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1070 12159 : && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
1071 : )
1072 : {
1073 12159 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail372;
1074 12159 : {
1075 12159 : tree res_op0;
1076 12159 : res_op0 = captures[3];
1077 12159 : tree res_op1;
1078 12159 : res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
1079 12159 : tree _r;
1080 12159 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1081 12159 : if (TREE_SIDE_EFFECTS (captures[2]))
1082 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1083 12159 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
1084 12159 : return _r;
1085 : }
1086 0 : next_after_fail372:;
1087 : }
1088 : return NULL_TREE;
1089 : }
1090 :
1091 : tree
1092 40265614 : 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 40265614 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1097 80531376 : if (wi::bit_and_not (get_known_nonzero_bits (captures[1]),
1098 120796842 : get_nonzero_bits (captures[0])) != 0
1099 : )
1100 : {
1101 83777 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
1102 83777 : {
1103 83777 : tree _r;
1104 83777 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1105 83777 : if (TREE_SIDE_EFFECTS (captures[0]))
1106 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1107 83777 : if (TREE_SIDE_EFFECTS (captures[1]))
1108 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1109 83777 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
1110 83777 : 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 16152 : 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 16152 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1187 16152 : if (single_use (captures[0])
1188 : )
1189 : {
1190 16152 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail415;
1191 16152 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
1192 16152 : {
1193 16152 : tree res_op0;
1194 16152 : res_op0 = captures[1];
1195 16152 : tree res_op1;
1196 16152 : res_op1 = captures[2];
1197 16152 : tree _r;
1198 16152 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1199 16152 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
1200 16152 : return _r;
1201 : }
1202 : next_after_fail415:;
1203 : }
1204 : return NULL_TREE;
1205 : }
1206 :
1207 : tree
1208 927782 : 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 927782 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1214 927782 : if (single_use (captures[0])
1215 927782 : && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
1216 : )
1217 : {
1218 927782 : {
1219 927782 : tree otype = TREE_TYPE (captures[2]);
1220 927782 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail426;
1221 927782 : {
1222 927782 : tree res_op0;
1223 927782 : {
1224 927782 : tree _o1[1], _r1;
1225 927782 : _o1[0] = captures[1];
1226 927782 : 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 927782 : res_op0 = _r1;
1233 : }
1234 927782 : tree res_op1;
1235 927782 : {
1236 927782 : tree _o1[1], _r1;
1237 927782 : _o1[0] = captures[2];
1238 927782 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1239 927782 : res_op1 = _r1;
1240 : }
1241 927782 : tree _r;
1242 927782 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1243 927782 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 338, __FILE__, __LINE__, true);
1244 927782 : 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 107994 : 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 107994 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1426 107994 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail506;
1427 107972 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail506;
1428 107972 : {
1429 107972 : tree res_op0;
1430 107972 : res_op0 = captures[0];
1431 107972 : tree res_op1;
1432 107972 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1433 107972 : tree _r;
1434 107972 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1435 107972 : 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 129063 : 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 129063 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1646 129063 : if (cmp != NE_EXPR
1647 123843 : || ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1648 141562 : || ! tree_expr_maybe_nan_p (captures[0])
1649 : )
1650 : {
1651 122378 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail564;
1652 122378 : {
1653 122378 : tree _r;
1654 122378 : _r = constant_boolean_node (false, type);
1655 122378 : if (TREE_SIDE_EFFECTS (captures[0]))
1656 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1657 122378 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 458, __FILE__, __LINE__, true);
1658 122378 : 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 184 : 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 184 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1868 184 : if (bitwise_equal_p (captures[0], captures[3])
1869 184 : && 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 22945952 : 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 22945952 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2023 45885932 : if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2024 10964 : || POINTER_TYPE_P (TREE_TYPE (captures[2]))
2025 2507 : || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
2026 45885932 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2027 : )
2028 : {
2029 22945952 : {
2030 22945952 : tree cst = uniform_integer_cst_p (captures[2]);
2031 22945952 : tree arg1_type = TREE_TYPE (cst);
2032 22945952 : unsigned int prec = TYPE_PRECISION (arg1_type);
2033 22945952 : wide_int max = wi::max_value (arg1_type);
2034 22945952 : wide_int signed_max = wi::max_value (prec, SIGNED);
2035 22945952 : wide_int min = wi::min_value (arg1_type);
2036 22945952 : if (wi::to_wide (cst) == max
2037 : )
2038 : {
2039 191745 : if (cmp == GT_EXPR
2040 : )
2041 : {
2042 120954 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
2043 120954 : {
2044 120954 : tree _r;
2045 120954 : _r = constant_boolean_node (false, type);
2046 120954 : if (TREE_SIDE_EFFECTS (captures[0]))
2047 80 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2048 120954 : if (TREE_SIDE_EFFECTS (captures[2]))
2049 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2050 120954 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 558, __FILE__, __LINE__, true);
2051 120954 : return _r;
2052 : }
2053 0 : next_after_fail684:;
2054 : }
2055 : else
2056 : {
2057 70791 : 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 70784 : if (cmp == LE_EXPR
2076 : )
2077 : {
2078 70774 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail686;
2079 70774 : {
2080 70774 : tree _r;
2081 70774 : _r = constant_boolean_node (true, type);
2082 70774 : if (TREE_SIDE_EFFECTS (captures[0]))
2083 23 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2084 70774 : if (TREE_SIDE_EFFECTS (captures[2]))
2085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2086 70774 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
2087 70774 : 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 22754207 : if (wi::to_wide (cst) == min
2116 : )
2117 : {
2118 1571249 : if (cmp == LT_EXPR
2119 : )
2120 : {
2121 582392 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
2122 582392 : {
2123 582392 : tree _r;
2124 582392 : _r = constant_boolean_node (false, type);
2125 582392 : if (TREE_SIDE_EFFECTS (captures[0]))
2126 38 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2127 582392 : if (TREE_SIDE_EFFECTS (captures[2]))
2128 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2129 582392 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
2130 582392 : return _r;
2131 : }
2132 0 : next_after_fail688:;
2133 : }
2134 : else
2135 : {
2136 988857 : if (cmp == LE_EXPR
2137 : )
2138 : {
2139 118991 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
2140 118991 : {
2141 118991 : tree res_op0;
2142 118991 : res_op0 = captures[0];
2143 118991 : tree res_op1;
2144 118991 : res_op1 = captures[2];
2145 118991 : tree _r;
2146 118991 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2147 118991 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
2148 118991 : return _r;
2149 : }
2150 0 : next_after_fail689:;
2151 : }
2152 : else
2153 : {
2154 869866 : if (cmp == GE_EXPR
2155 : )
2156 : {
2157 272226 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
2158 272226 : {
2159 272226 : tree _r;
2160 272226 : _r = constant_boolean_node (true, type);
2161 272226 : if (TREE_SIDE_EFFECTS (captures[0]))
2162 125 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2163 272226 : if (TREE_SIDE_EFFECTS (captures[2]))
2164 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2165 272226 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
2166 272226 : return _r;
2167 : }
2168 0 : next_after_fail690:;
2169 : }
2170 : else
2171 : {
2172 597640 : if (cmp == GT_EXPR
2173 : )
2174 : {
2175 597640 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
2176 597640 : {
2177 597640 : tree res_op0;
2178 597640 : res_op0 = captures[0];
2179 597640 : tree res_op1;
2180 597640 : res_op1 = captures[2];
2181 597640 : tree _r;
2182 597640 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2183 597640 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 565, __FILE__, __LINE__, true);
2184 597640 : return _r;
2185 : }
2186 0 : next_after_fail691:;
2187 : }
2188 : }
2189 : }
2190 : }
2191 : }
2192 : else
2193 : {
2194 21182963 : if (wi::to_wide (cst) == max - 1
2195 : )
2196 : {
2197 410446 : if (cmp == GT_EXPR
2198 : )
2199 : {
2200 154871 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
2201 154871 : {
2202 154871 : tree res_op0;
2203 154871 : res_op0 = captures[0];
2204 154871 : tree res_op1;
2205 154871 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2206 154871 : wide_int_to_tree (TREE_TYPE (cst),
2207 154871 : wi::to_wide (cst)
2208 309742 : + 1));
2209 154871 : tree _r;
2210 154871 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2211 154871 : if (TREE_SIDE_EFFECTS (captures[2]))
2212 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2213 154871 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
2214 154871 : return _r;
2215 : }
2216 0 : next_after_fail692:;
2217 : }
2218 : else
2219 : {
2220 255575 : if (cmp == LE_EXPR
2221 : )
2222 : {
2223 255575 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
2224 255575 : {
2225 255575 : tree res_op0;
2226 255575 : res_op0 = captures[0];
2227 255575 : tree res_op1;
2228 255575 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2229 255575 : wide_int_to_tree (TREE_TYPE (cst),
2230 255575 : wi::to_wide (cst)
2231 511150 : + 1));
2232 255575 : tree _r;
2233 255575 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2234 255575 : if (TREE_SIDE_EFFECTS (captures[2]))
2235 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2236 255575 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2237 255575 : return _r;
2238 : }
2239 0 : next_after_fail693:;
2240 : }
2241 : }
2242 : }
2243 : else
2244 : {
2245 20772517 : if (wi::to_wide (cst) == min + 1
2246 : )
2247 : {
2248 731832 : if (cmp == GE_EXPR
2249 : )
2250 : {
2251 59437 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
2252 59437 : {
2253 59437 : tree res_op0;
2254 59437 : res_op0 = captures[0];
2255 59437 : tree res_op1;
2256 59437 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2257 59437 : wide_int_to_tree (TREE_TYPE (cst),
2258 59437 : wi::to_wide (cst)
2259 118874 : - 1));
2260 59437 : tree _r;
2261 59437 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
2262 59437 : if (TREE_SIDE_EFFECTS (captures[2]))
2263 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2264 59437 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2265 59437 : return _r;
2266 : }
2267 0 : next_after_fail694:;
2268 : }
2269 : else
2270 : {
2271 672395 : if (cmp == LT_EXPR
2272 : )
2273 : {
2274 28650 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
2275 28650 : {
2276 28650 : tree res_op0;
2277 28650 : res_op0 = captures[0];
2278 28650 : tree res_op1;
2279 28650 : res_op1 = build_uniform_cst (TREE_TYPE (captures[2]),
2280 28650 : wide_int_to_tree (TREE_TYPE (cst),
2281 28650 : wi::to_wide (cst)
2282 57300 : - 1));
2283 28650 : tree _r;
2284 28650 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2285 28650 : if (TREE_SIDE_EFFECTS (captures[2]))
2286 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2287 28650 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
2288 28650 : return _r;
2289 : }
2290 0 : next_after_fail695:;
2291 : }
2292 : }
2293 : }
2294 : else
2295 : {
2296 20040680 : if (wi::to_wide (cst) == signed_max
2297 161951 : && TYPE_UNSIGNED (arg1_type)
2298 161951 : && TYPE_MODE (arg1_type) != BLKmode
2299 20040687 : && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
2300 20202058 : && INTEGRAL_TYPE_P (arg1_type)
2301 : )
2302 : {
2303 161371 : if (cmp == LE_EXPR || cmp == GT_EXPR
2304 : )
2305 : {
2306 161371 : {
2307 161371 : tree st = signed_type_for (TREE_TYPE (captures[2]));
2308 161371 : if (cst == captures[2] && cmp == LE_EXPR
2309 : )
2310 : {
2311 113047 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
2312 113047 : {
2313 113047 : tree res_op0;
2314 113047 : {
2315 113047 : tree _o1[1], _r1;
2316 113047 : _o1[0] = captures[1];
2317 113047 : if (TREE_TYPE (_o1[0]) != st)
2318 : {
2319 113047 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2320 : }
2321 : else
2322 : _r1 = _o1[0];
2323 113047 : res_op0 = _r1;
2324 : }
2325 113047 : tree res_op1;
2326 113047 : res_op1 = build_zero_cst (st);
2327 113047 : tree _r;
2328 113047 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
2329 113047 : if (TREE_SIDE_EFFECTS (captures[2]))
2330 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2331 113047 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
2332 113047 : return _r;
2333 : }
2334 0 : next_after_fail696:;
2335 0 : }
2336 : else
2337 : {
2338 48324 : if (cst == captures[2] && cmp == GT_EXPR
2339 : )
2340 : {
2341 48238 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail697;
2342 48238 : {
2343 48238 : tree res_op0;
2344 48238 : {
2345 48238 : tree _o1[1], _r1;
2346 48238 : _o1[0] = captures[1];
2347 48238 : if (TREE_TYPE (_o1[0]) != st)
2348 : {
2349 48238 : _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
2350 : }
2351 : else
2352 : _r1 = _o1[0];
2353 48238 : res_op0 = _r1;
2354 : }
2355 48238 : tree res_op1;
2356 48238 : res_op1 = build_zero_cst (st);
2357 48238 : tree _r;
2358 48238 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2359 48238 : if (TREE_SIDE_EFFECTS (captures[2]))
2360 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2361 48238 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
2362 48238 : 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 22945962 : }
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 104564 : 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 104564 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2617 104564 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2618 23494 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2619 23494 : && tree_fits_uhwi_p (captures[4])
2620 23494 : && tree_to_uhwi (captures[4]) > 0
2621 128056 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2622 : )
2623 : {
2624 23492 : {
2625 23492 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2626 23492 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2627 23492 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2628 23492 : tree shift_type = TREE_TYPE (captures[2]);
2629 23492 : unsigned int prec;
2630 23492 : if (shift == LSHIFT_EXPR)
2631 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2632 23492 : else if (shift == RSHIFT_EXPR
2633 23492 : && type_has_mode_precision_p (shift_type))
2634 : {
2635 23492 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2636 23492 : tree arg00 = captures[3];
2637 23492 : if (captures[2] != captures[3]
2638 23492 : && 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 23492 : zerobits = HOST_WIDE_INT_M1U;
2650 23492 : if (shiftc < prec)
2651 : {
2652 23492 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2653 23492 : zerobits <<= prec - shiftc;
2654 : }
2655 23492 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2656 23492 : && 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 23476 : 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 23492 : {
2682 23492 : newmask = mask | zerobits;
2683 23492 : 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 2862758 : 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 2862758 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3242 2862758 : 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 91878 : case PLUS_EXPR:
3371 91878 : {
3372 91878 : tree _q20 = TREE_OPERAND (_p0, 0);
3373 91878 : tree _q21 = TREE_OPERAND (_p0, 1);
3374 91878 : 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 91862 : default:;
3387 : }
3388 91862 : 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 76968 : case INTEGER_CST:
3401 76968 : {
3402 76968 : {
3403 76968 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3404 76968 : if ((INTEGRAL_TYPE_P (type)
3405 76968 : && TYPE_UNSIGNED (type))
3406 89598 : || (!TYPE_OVERFLOW_SANITIZED (type)
3407 12622 : && may_negate_without_overflow_p (captures[2]))
3408 : )
3409 : {
3410 76953 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1050;
3411 76953 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
3412 76953 : {
3413 76953 : tree res_op0;
3414 76953 : {
3415 76953 : tree _o1[1], _r1;
3416 76953 : _o1[0] = captures[1];
3417 76953 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3418 76953 : res_op0 = _r1;
3419 : }
3420 76953 : tree res_op1;
3421 76953 : res_op1 = const_unop (NEGATE_EXPR, type, captures[2]);
3422 76953 : tree _r;
3423 76953 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3424 76953 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
3425 76953 : 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 394 : case RSHIFT_EXPR:
3445 394 : {
3446 394 : tree _q20 = TREE_OPERAND (_p0, 0);
3447 394 : tree _q21 = TREE_OPERAND (_p0, 1);
3448 394 : {
3449 394 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3450 394 : 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 373 : next_after_fail1051:;
3472 : }
3473 : else
3474 : {
3475 206 : if (INTEGRAL_TYPE_P (type)
3476 206 : && !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 373 : next_after_fail1052:;
3514 : }
3515 : }
3516 : }
3517 : }
3518 373 : switch (TREE_CODE (_q20))
3519 : {
3520 40 : CASE_CONVERT:
3521 40 : {
3522 40 : tree _q30 = TREE_OPERAND (_q20, 0);
3523 40 : 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 2862758 : return _r;
3566 : }
3567 0 : next_after_fail1053:;
3568 : }
3569 0 : break;
3570 : }
3571 981985 : CASE_CONVERT:
3572 981985 : {
3573 981985 : tree _q20 = TREE_OPERAND (_p0, 0);
3574 981985 : 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 4 : case LE_EXPR:
4065 4 : {
4066 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4067 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4068 4 : {
4069 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4070 4 : tree res = generic_simplify_502 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
4071 4 : if (res) return res;
4072 : }
4073 4 : 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 2382275 : 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 2382275 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4216 2382275 : if (integer_onep (_p1))
4217 : {
4218 17711 : {
4219 17711 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4220 17711 : tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4221 17711 : if (res) return res;
4222 : }
4223 : }
4224 2364564 : switch (TREE_CODE (_p0))
4225 : {
4226 151894 : CASE_CONVERT:
4227 151894 : {
4228 151894 : tree _q20 = TREE_OPERAND (_p0, 0);
4229 151894 : switch (TREE_CODE (_p1))
4230 : {
4231 35353 : CASE_CONVERT:
4232 35353 : {
4233 35353 : tree _q40 = TREE_OPERAND (_p1, 0);
4234 35353 : 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 2364564 : default:;
4273 : }
4274 2364564 : switch (TREE_CODE (_p1))
4275 : {
4276 126425 : CASE_CONVERT:
4277 126425 : {
4278 126425 : tree _q30 = TREE_OPERAND (_p1, 0);
4279 126425 : 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 2364555 : default:;
4314 : }
4315 2364555 : 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 2362822 : switch (TREE_CODE (_p1))
4324 : {
4325 13322 : case SSA_NAME:
4326 13322 : {
4327 13322 : {
4328 13322 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4329 13322 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4330 13322 : if (res) return res;
4331 : }
4332 13322 : break;
4333 : }
4334 2362822 : default:;
4335 : }
4336 2362822 : 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 2361200 : 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 2361089 : 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 2361088 : default:;
4368 : }
4369 2361088 : 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 2361088 : default:;
4385 : }
4386 2361088 : 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 2361087 : default:;
4402 : }
4403 2361087 : 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 9095 : case TRUNC_DIV_EXPR:
4419 9095 : {
4420 9095 : tree _q20 = TREE_OPERAND (_p0, 0);
4421 9095 : tree _q21 = TREE_OPERAND (_p0, 1);
4422 9095 : switch (TREE_CODE (_q21))
4423 : {
4424 9006 : case INTEGER_CST:
4425 9006 : {
4426 9006 : switch (TREE_CODE (_p1))
4427 : {
4428 9005 : case INTEGER_CST:
4429 9005 : {
4430 9005 : {
4431 9005 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4432 9005 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4433 9005 : if (res) return res;
4434 : }
4435 9005 : break;
4436 : }
4437 : default:;
4438 : }
4439 : break;
4440 : }
4441 : default:;
4442 : }
4443 : break;
4444 : }
4445 151853 : CASE_CONVERT:
4446 151853 : {
4447 151853 : tree _q20 = TREE_OPERAND (_p0, 0);
4448 151853 : 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 45146 : case BIT_AND_EXPR:
4482 45146 : {
4483 45146 : tree _q20 = TREE_OPERAND (_p0, 0);
4484 45146 : tree _q21 = TREE_OPERAND (_p0, 1);
4485 45146 : switch (TREE_CODE (_q21))
4486 : {
4487 45120 : case INTEGER_CST:
4488 45120 : {
4489 45120 : switch (TREE_CODE (_p1))
4490 : {
4491 45116 : case INTEGER_CST:
4492 45116 : {
4493 45116 : {
4494 45116 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4495 45116 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4496 45116 : if (res) return res;
4497 : }
4498 45115 : break;
4499 : }
4500 : default:;
4501 : }
4502 : break;
4503 : }
4504 : default:;
4505 : }
4506 : break;
4507 : }
4508 135005 : case MULT_EXPR:
4509 135005 : {
4510 135005 : tree _q20 = TREE_OPERAND (_p0, 0);
4511 135005 : tree _q21 = TREE_OPERAND (_p0, 1);
4512 135005 : 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 129563 : 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 129415 : 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 129406 : switch (TREE_CODE (_q21))
4540 : {
4541 129092 : case INTEGER_CST:
4542 129092 : {
4543 129092 : 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 2355484 : default:;
4682 : }
4683 2355484 : if (integer_onep (_p0))
4684 : {
4685 1225 : {
4686 1225 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4687 1225 : if (INTEGRAL_TYPE_P (type)
4688 1222 : && TYPE_PRECISION (type) > 1
4689 1222 : && !integer_zerop (captures[1])
4690 1693 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
4691 : )
4692 : {
4693 411 : 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 357 : 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 1171 : next_after_fail1557:;
4761 : }
4762 : }
4763 : }
4764 : }
4765 : }
4766 : }
4767 2355430 : 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 6154242 : 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 6154242 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5227 6154242 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5228 : {
5229 765 : {
5230 765 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5231 3 : if (FLOAT_TYPE_P (type)
5232 765 : && ! HONOR_NANS (type)
5233 767 : && ! 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 6154240 : switch (TREE_CODE (_p1))
5250 : {
5251 18640 : case NEGATE_EXPR:
5252 18640 : {
5253 18640 : tree _q30 = TREE_OPERAND (_p1, 0);
5254 18640 : 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 6154240 : default:;
5265 : }
5266 6154240 : switch (TREE_CODE (_p0))
5267 : {
5268 93268 : case NEGATE_EXPR:
5269 93268 : {
5270 93268 : tree _q20 = TREE_OPERAND (_p0, 0);
5271 93268 : 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 534749 : CASE_CONVERT:
5282 534749 : {
5283 534749 : tree _q20 = TREE_OPERAND (_p0, 0);
5284 534749 : switch (TREE_CODE (_p1))
5285 : {
5286 24415 : CASE_CONVERT:
5287 24415 : {
5288 24415 : tree _q40 = TREE_OPERAND (_p1, 0);
5289 24415 : 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 534749 : default:;
5309 : }
5310 534749 : 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 6154240 : default:;
5339 : }
5340 6154240 : 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 6154240 : default:;
5356 : }
5357 6154240 : 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 6154240 : default:;
5373 : }
5374 6154240 : 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 6154154 : 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 6154118 : switch (TREE_CODE (_p0))
5417 : {
5418 36898 : case RDIV_EXPR:
5419 36898 : {
5420 36898 : tree _q20 = TREE_OPERAND (_p0, 0);
5421 36898 : tree _q21 = TREE_OPERAND (_p0, 1);
5422 36898 : {
5423 36898 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5424 36898 : 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 36886 : break;
5448 : }
5449 6154106 : default:;
5450 : }
5451 6154106 : switch (TREE_CODE (_p1))
5452 : {
5453 944889 : case MULT_EXPR:
5454 944889 : {
5455 944889 : tree _q30 = TREE_OPERAND (_p1, 0);
5456 944889 : tree _q31 = TREE_OPERAND (_p1, 1);
5457 944889 : switch (TREE_CODE (_q31))
5458 : {
5459 370836 : case REAL_CST:
5460 370836 : {
5461 370836 : {
5462 370836 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5463 370836 : 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 370612 : next_after_fail1578:;
5490 : }
5491 : }
5492 : }
5493 : }
5494 370612 : 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 18640 : case NEGATE_EXPR:
5532 18640 : {
5533 18640 : tree _q30 = TREE_OPERAND (_p1, 0);
5534 18640 : {
5535 18640 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5536 18640 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1580;
5537 18640 : {
5538 18640 : tree res_op0;
5539 18640 : {
5540 18640 : tree _o1[1], _r1;
5541 18640 : _o1[0] = captures[0];
5542 18640 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5543 18640 : res_op0 = _r1;
5544 : }
5545 18640 : tree res_op1;
5546 18640 : res_op1 = captures[1];
5547 18640 : tree _r;
5548 18640 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5549 18640 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
5550 18640 : return _r;
5551 : }
5552 0 : next_after_fail1580:;
5553 : }
5554 0 : break;
5555 : }
5556 1047132 : case REAL_CST:
5557 1047132 : {
5558 1047132 : {
5559 1047132 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5560 1047132 : if (optimize
5561 : )
5562 : {
5563 1041245 : if (flag_reciprocal_math
5564 1041245 : && !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 731360 : next_after_fail1581:;
5585 : }
5586 : }
5587 : }
5588 : else
5589 : {
5590 1040674 : if (REAL_CST != COMPLEX_CST
5591 : )
5592 : {
5593 1040674 : {
5594 1040674 : tree inverse = exact_inverse (type, captures[1]);
5595 1040674 : if (inverse
5596 : )
5597 : {
5598 315202 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1582;
5599 315202 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
5600 315202 : {
5601 315202 : tree res_op0;
5602 315202 : res_op0 = captures[0];
5603 315202 : tree res_op1;
5604 315202 : res_op1 = inverse;
5605 315202 : tree _r;
5606 315202 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5607 315202 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
5608 315202 : return _r;
5609 : }
5610 731360 : next_after_fail1582:;
5611 : }
5612 : }
5613 : }
5614 : }
5615 : }
5616 : }
5617 731360 : 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 5819432 : default:;
5746 : }
5747 5819432 : 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 5819432 : default:;
5856 : }
5857 5819432 : 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 780528 : case CALL_EXPR:
5910 780528 : 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 5819207 : default:;
6839 : }
6840 5819207 : switch (TREE_CODE (_p0))
6841 : {
6842 187581 : case CALL_EXPR:
6843 187581 : 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 5819173 : default:;
7597 : }
7598 5819173 : switch (TREE_CODE (_p1))
7599 : {
7600 780273 : case CALL_EXPR:
7601 780273 : 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 7217757 : 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 7217757 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7663 7217757 : 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 1210 : case TRUNC_MOD_EXPR:
7688 1210 : {
7689 1210 : tree _q20 = TREE_OPERAND (_p0, 0);
7690 1210 : tree _q21 = TREE_OPERAND (_p0, 1);
7691 1210 : 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 31148 : case MULT_EXPR:
7702 31148 : {
7703 31148 : tree _q20 = TREE_OPERAND (_p0, 0);
7704 31148 : tree _q21 = TREE_OPERAND (_p0, 1);
7705 31148 : switch (TREE_CODE (_p1))
7706 : {
7707 6715 : case MULT_EXPR:
7708 6715 : {
7709 6715 : tree _q50 = TREE_OPERAND (_p1, 0);
7710 6715 : tree _q51 = TREE_OPERAND (_p1, 1);
7711 6715 : 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 2536 : 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 2536 : 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 2536 : 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 1249599 : CASE_CONVERT:
7750 1249599 : {
7751 1249599 : tree _q20 = TREE_OPERAND (_p0, 0);
7752 1249599 : 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 8006 : case EXACT_DIV_EXPR:
7800 8006 : {
7801 8006 : tree _q20 = TREE_OPERAND (_p0, 0);
7802 8006 : tree _q21 = TREE_OPERAND (_p0, 1);
7803 8006 : switch (TREE_CODE (_q21))
7804 : {
7805 8006 : case INTEGER_CST:
7806 8006 : {
7807 8006 : 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 41856 : case TRUNC_DIV_EXPR:
7832 41856 : {
7833 41856 : tree _q20 = TREE_OPERAND (_p0, 0);
7834 41856 : tree _q21 = TREE_OPERAND (_p0, 1);
7835 41856 : switch (TREE_CODE (_q21))
7836 : {
7837 41348 : case INTEGER_CST:
7838 41348 : {
7839 41348 : switch (TREE_CODE (_p1))
7840 : {
7841 40437 : case INTEGER_CST:
7842 40437 : {
7843 40437 : {
7844 40437 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7845 40437 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, GE_EXPR);
7846 40437 : if (res) return res;
7847 : }
7848 0 : break;
7849 : }
7850 : default:;
7851 : }
7852 : break;
7853 : }
7854 : default:;
7855 : }
7856 : break;
7857 : }
7858 806066 : case PLUS_EXPR:
7859 806066 : {
7860 806066 : tree _q20 = TREE_OPERAND (_p0, 0);
7861 806066 : tree _q21 = TREE_OPERAND (_p0, 1);
7862 806066 : switch (TREE_CODE (_p1))
7863 : {
7864 52295 : case PLUS_EXPR:
7865 52295 : {
7866 52295 : tree _q50 = TREE_OPERAND (_p1, 0);
7867 52295 : tree _q51 = TREE_OPERAND (_p1, 1);
7868 52295 : 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 52295 : 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 52295 : 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 52295 : 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 806018 : default:;
7903 : }
7904 806018 : switch (TREE_CODE (_q21))
7905 : {
7906 693324 : case INTEGER_CST:
7907 693324 : {
7908 693324 : switch (TREE_CODE (_p1))
7909 : {
7910 15173 : case PLUS_EXPR:
7911 15173 : {
7912 15173 : tree _q50 = TREE_OPERAND (_p1, 0);
7913 15173 : tree _q51 = TREE_OPERAND (_p1, 1);
7914 15173 : 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 806018 : default:;
7929 : }
7930 806018 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7931 : {
7932 54159 : {
7933 54159 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7934 54159 : tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GE_EXPR);
7935 54159 : if (res) return res;
7936 : }
7937 : }
7938 772850 : 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 118553 : case MINUS_EXPR:
7949 118553 : {
7950 118553 : tree _q20 = TREE_OPERAND (_p0, 0);
7951 118553 : tree _q21 = TREE_OPERAND (_p0, 1);
7952 118553 : switch (TREE_CODE (_p1))
7953 : {
7954 1711 : case MINUS_EXPR:
7955 1711 : {
7956 1711 : tree _q50 = TREE_OPERAND (_p1, 0);
7957 1711 : tree _q51 = TREE_OPERAND (_p1, 1);
7958 1711 : 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 1711 : 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 2336 : case POINTER_DIFF_EXPR:
7981 2336 : {
7982 2336 : tree _q20 = TREE_OPERAND (_p0, 0);
7983 2336 : tree _q21 = TREE_OPERAND (_p0, 1);
7984 2336 : 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 7136341 : default:;
8013 : }
8014 7136341 : switch (TREE_CODE (_p1))
8015 : {
8016 59064 : case PLUS_EXPR:
8017 59064 : {
8018 59064 : tree _q30 = TREE_OPERAND (_p1, 0);
8019 59064 : tree _q31 = TREE_OPERAND (_p1, 1);
8020 59064 : 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 59064 : 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 2736 : case MINUS_EXPR:
8039 2736 : {
8040 2736 : tree _q30 = TREE_OPERAND (_p1, 0);
8041 2736 : tree _q31 = TREE_OPERAND (_p1, 1);
8042 2736 : 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 7136341 : default:;
8053 : }
8054 7136341 : switch (TREE_CODE (_p0))
8055 : {
8056 118553 : case MINUS_EXPR:
8057 118553 : {
8058 118553 : tree _q20 = TREE_OPERAND (_p0, 0);
8059 118553 : tree _q21 = TREE_OPERAND (_p0, 1);
8060 118553 : 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 7136340 : default:;
8099 : }
8100 7136340 : 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 7136340 : default:;
8131 : }
8132 7136340 : switch (TREE_CODE (_p0))
8133 : {
8134 2975 : case MIN_EXPR:
8135 2975 : {
8136 2975 : tree _q20 = TREE_OPERAND (_p0, 0);
8137 2975 : tree _q21 = TREE_OPERAND (_p0, 1);
8138 2975 : 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 2975 : 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 2974 : switch (TREE_CODE (_q21))
8155 : {
8156 1004 : case INTEGER_CST:
8157 1004 : {
8158 1004 : 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 7136339 : default:;
8178 : }
8179 7136339 : switch (TREE_CODE (_p1))
8180 : {
8181 198 : case MAX_EXPR:
8182 198 : {
8183 198 : tree _q30 = TREE_OPERAND (_p1, 0);
8184 198 : tree _q31 = TREE_OPERAND (_p1, 1);
8185 198 : 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 198 : 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 1986 : case MIN_EXPR:
8204 1986 : {
8205 1986 : tree _q30 = TREE_OPERAND (_p1, 0);
8206 1986 : tree _q31 = TREE_OPERAND (_p1, 1);
8207 1986 : 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 1986 : 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 7136339 : default:;
8226 : }
8227 7136339 : 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 7136333 : default:;
8379 : }
8380 7136333 : 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 7136333 : default:;
8433 : }
8434 7136333 : if (uniform_integer_cst_p (_p1))
8435 : {
8436 3594872 : {
8437 3594872 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8438 3594872 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
8439 3594872 : if (res) return res;
8440 : }
8441 : }
8442 5652216 : switch (TREE_CODE (_p0))
8443 : {
8444 23369 : case MULT_EXPR:
8445 23369 : {
8446 23369 : tree _q20 = TREE_OPERAND (_p0, 0);
8447 23369 : tree _q21 = TREE_OPERAND (_p0, 1);
8448 23369 : switch (TREE_CODE (_q21))
8449 : {
8450 19442 : case INTEGER_CST:
8451 19442 : {
8452 19442 : 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 5651928 : default:;
8467 : }
8468 5651928 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8469 : {
8470 37979 : {
8471 37979 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8472 37979 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, GE_EXPR);
8473 37979 : if (res) return res;
8474 : }
8475 : }
8476 5613986 : 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 5613891 : default:;
8527 : }
8528 5613891 : {
8529 5613891 : tree _p0_pops[1];
8530 5613891 : if (tree_nop_convert (_p0, _p0_pops))
8531 : {
8532 440892 : tree _q20 = _p0_pops[0];
8533 440892 : 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 5613891 : switch (TREE_CODE (_p1))
8588 : {
8589 620692 : case REAL_CST:
8590 620692 : {
8591 620692 : {
8592 620692 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8593 620692 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR);
8594 620692 : if (res) return res;
8595 : }
8596 620610 : break;
8597 : }
8598 5613809 : default:;
8599 : }
8600 5613809 : switch (TREE_CODE (_p0))
8601 : {
8602 689163 : case PLUS_EXPR:
8603 689163 : {
8604 689163 : tree _q20 = TREE_OPERAND (_p0, 0);
8605 689163 : tree _q21 = TREE_OPERAND (_p0, 1);
8606 689163 : 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 576574 : case INTEGER_CST:
8626 576574 : {
8627 576574 : 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 58931 : case MINUS_EXPR:
8642 58931 : {
8643 58931 : tree _q20 = TREE_OPERAND (_p0, 0);
8644 58931 : tree _q21 = TREE_OPERAND (_p0, 1);
8645 58931 : 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 58931 : default:;
8665 : }
8666 58931 : 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 38910 : case FLOAT_EXPR:
8690 38910 : {
8691 38910 : tree _q20 = TREE_OPERAND (_p0, 0);
8692 38910 : 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 37431 : case REAL_CST:
8705 37431 : {
8706 37431 : {
8707 37431 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8708 37431 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8709 37431 : if (res) return res;
8710 : }
8711 18752 : break;
8712 : }
8713 : default:;
8714 : }
8715 : break;
8716 : }
8717 7967 : case EXACT_DIV_EXPR:
8718 7967 : {
8719 7967 : tree _q20 = TREE_OPERAND (_p0, 0);
8720 7967 : tree _q21 = TREE_OPERAND (_p0, 1);
8721 7967 : switch (TREE_CODE (_q21))
8722 : {
8723 7967 : case INTEGER_CST:
8724 7967 : {
8725 7967 : 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 828412 : CASE_CONVERT:
8745 828412 : {
8746 828412 : tree _q20 = TREE_OPERAND (_p0, 0);
8747 828412 : 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 828412 : default:;
8777 : }
8778 828412 : switch (TREE_CODE (_p1))
8779 : {
8780 127464 : CASE_CONVERT:
8781 127464 : {
8782 127464 : tree _q40 = TREE_OPERAND (_p1, 0);
8783 127464 : {
8784 127464 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8785 127464 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR);
8786 127464 : if (res) return res;
8787 : }
8788 58305 : break;
8789 : }
8790 759253 : default:;
8791 : }
8792 759253 : {
8793 759253 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8794 759253 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GE_EXPR);
8795 759253 : if (res) return res;
8796 : }
8797 465928 : 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 464728 : default:;
8835 : }
8836 464728 : if (uniform_integer_cst_p (_p1))
8837 : {
8838 187637 : {
8839 187637 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8840 187637 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR);
8841 187637 : if (res) return res;
8842 : }
8843 : }
8844 : break;
8845 : }
8846 785 : case NEGATE_EXPR:
8847 785 : {
8848 785 : tree _q20 = TREE_OPERAND (_p0, 0);
8849 785 : 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 785 : default:;
8862 : }
8863 785 : 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 313597 : case CALL_EXPR:
8909 313597 : 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 5197703 : default:;
9059 : }
9060 5197703 : if (uniform_integer_cst_p (_p1))
9061 : {
9062 1806668 : {
9063 1806668 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9064 1806668 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GE_EXPR);
9065 1806668 : if (res) return res;
9066 : }
9067 : }
9068 4866033 : switch (TREE_CODE (_p0))
9069 : {
9070 453579 : CASE_CONVERT:
9071 453579 : {
9072 453579 : tree _q20 = TREE_OPERAND (_p0, 0);
9073 453579 : switch (TREE_CODE (_q20))
9074 : {
9075 31993 : case PLUS_EXPR:
9076 31993 : {
9077 31993 : tree _q30 = TREE_OPERAND (_q20, 0);
9078 31993 : tree _q31 = TREE_OPERAND (_q20, 1);
9079 31993 : 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 4865976 : default:;
9111 : }
9112 4865976 : switch (TREE_CODE (_p1))
9113 : {
9114 226491 : CASE_CONVERT:
9115 226491 : {
9116 226491 : tree _q30 = TREE_OPERAND (_p1, 0);
9117 226491 : 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 59064 : case PLUS_EXPR:
9155 59064 : {
9156 59064 : tree _q30 = TREE_OPERAND (_p1, 0);
9157 59064 : tree _q31 = TREE_OPERAND (_p1, 1);
9158 59064 : 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 2736 : case MINUS_EXPR:
9177 2736 : {
9178 2736 : tree _q30 = TREE_OPERAND (_p1, 0);
9179 2736 : tree _q31 = TREE_OPERAND (_p1, 1);
9180 2736 : 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 4865976 : default:;
9191 : }
9192 4865976 : switch (TREE_CODE (_p0))
9193 : {
9194 590422 : case PLUS_EXPR:
9195 590422 : {
9196 590422 : tree _q20 = TREE_OPERAND (_p0, 0);
9197 590422 : tree _q21 = TREE_OPERAND (_p0, 1);
9198 590422 : switch (TREE_CODE (_q20))
9199 : {
9200 141 : case MINUS_EXPR:
9201 141 : {
9202 141 : tree _q30 = TREE_OPERAND (_q20, 0);
9203 141 : tree _q31 = TREE_OPERAND (_q20, 1);
9204 141 : 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 4865975 : default:;
9222 : }
9223 4865975 : 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 4865975 : default:;
9256 : }
9257 4865975 : 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 1412 : case TRUNC_DIV_EXPR:
9298 1412 : {
9299 1412 : tree _q20 = TREE_OPERAND (_p0, 0);
9300 1412 : tree _q21 = TREE_OPERAND (_p0, 1);
9301 1412 : 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 21619 : case MULT_EXPR:
9312 21619 : {
9313 21619 : tree _q20 = TREE_OPERAND (_p0, 0);
9314 21619 : tree _q21 = TREE_OPERAND (_p0, 1);
9315 21619 : 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 590421 : case PLUS_EXPR:
9617 590421 : {
9618 590421 : tree _q20 = TREE_OPERAND (_p0, 0);
9619 590421 : tree _q21 = TREE_OPERAND (_p0, 1);
9620 590421 : switch (TREE_CODE (_q21))
9621 : {
9622 477832 : case INTEGER_CST:
9623 477832 : {
9624 477832 : switch (TREE_CODE (_p1))
9625 : {
9626 117151 : case INTEGER_CST:
9627 117151 : {
9628 117151 : {
9629 117151 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9630 117151 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR, LE_EXPR);
9631 117151 : if (res) return res;
9632 : }
9633 56859 : break;
9634 : }
9635 : default:;
9636 : }
9637 : break;
9638 : }
9639 : default:;
9640 : }
9641 : break;
9642 : }
9643 58471 : case MINUS_EXPR:
9644 58471 : {
9645 58471 : tree _q20 = TREE_OPERAND (_p0, 0);
9646 58471 : tree _q21 = TREE_OPERAND (_p0, 1);
9647 58471 : 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 58464 : default:;
9667 : }
9668 58464 : switch (TREE_CODE (_q20))
9669 : {
9670 1712 : case INTEGER_CST:
9671 1712 : {
9672 1712 : 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 313587 : case CALL_EXPR:
9692 313587 : 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 732916 : 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 732916 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10503 732916 : 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 732916 : default:;
10612 : }
10613 732916 : 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 732916 : default:;
10666 : }
10667 732916 : 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 732898 : default:;
10716 : }
10717 732898 : 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 732898 : default:;
10729 : }
10730 732898 : {
10731 732898 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10732 732898 : 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 732898 : 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 732863 : return NULL_TREE;
10769 : }
10770 :
10771 : tree
10772 697527 : 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 697527 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10775 697527 : 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 697527 : default:;
10884 : }
10885 697527 : 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 697527 : default:;
10938 : }
10939 697527 : 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 697527 : 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 697527 : default:;
10996 : }
10997 697527 : switch (TREE_CODE (_p1))
10998 : {
10999 350158 : case REAL_CST:
11000 350158 : {
11001 350158 : {
11002 350158 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11003 350158 : tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11004 350158 : if (res) return res;
11005 : }
11006 350156 : 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 390658 : 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 390658 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11271 390658 : switch (TREE_CODE (_p0))
11272 : {
11273 15689 : case VECTOR_CST:
11274 15689 : {
11275 15689 : {
11276 15689 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11277 15689 : if (integer_all_onesp (captures[0])
11278 : )
11279 : {
11280 3118 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1868;
11281 3118 : {
11282 3118 : tree _r;
11283 3118 : _r = captures[1];
11284 3118 : if (TREE_SIDE_EFFECTS (captures[0]))
11285 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11286 3118 : if (TREE_SIDE_EFFECTS (captures[2]))
11287 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11288 3118 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1056, __FILE__, __LINE__, true);
11289 3118 : return _r;
11290 : }
11291 0 : next_after_fail1868:;
11292 : }
11293 : else
11294 : {
11295 12571 : if (integer_zerop (captures[0])
11296 : )
11297 : {
11298 1883 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1869;
11299 1883 : {
11300 1883 : tree _r;
11301 1883 : _r = captures[2];
11302 1883 : if (TREE_SIDE_EFFECTS (captures[0]))
11303 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11304 1883 : if (TREE_SIDE_EFFECTS (captures[1]))
11305 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11306 1883 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1057, __FILE__, __LINE__, true);
11307 1883 : return _r;
11308 : }
11309 0 : next_after_fail1869:;
11310 : }
11311 : }
11312 : }
11313 10688 : break;
11314 : }
11315 385657 : default:;
11316 : }
11317 385657 : switch (TREE_CODE (_p1))
11318 : {
11319 322170 : case VECTOR_CST:
11320 322170 : {
11321 322170 : switch (TREE_CODE (_p2))
11322 : {
11323 311801 : case VECTOR_CST:
11324 311801 : {
11325 311801 : {
11326 311801 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11327 311801 : if (VECTOR_BOOLEAN_TYPE_P (type)
11328 311939 : && 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 311700 : break;
11371 : }
11372 : default:;
11373 : }
11374 : break;
11375 : }
11376 385556 : default:;
11377 : }
11378 385556 : switch (TREE_CODE (_p0))
11379 : {
11380 1302 : case NE_EXPR:
11381 1302 : {
11382 1302 : tree _q20 = TREE_OPERAND (_p0, 0);
11383 1302 : tree _q21 = TREE_OPERAND (_p0, 1);
11384 1302 : 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 385514 : default:;
11935 : }
11936 385514 : 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 385514 : default:;
11968 : }
11969 385514 : 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 385514 : default:;
12026 : }
12027 385514 : 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 385514 : default:;
12062 : }
12063 385514 : 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 385481 : switch (TREE_CODE (_p0))
12080 : {
12081 66969 : case EQ_EXPR:
12082 66969 : {
12083 66969 : tree _q20 = TREE_OPERAND (_p0, 0);
12084 66969 : tree _q21 = TREE_OPERAND (_p0, 1);
12085 66969 : if (zerop (_q21))
12086 : {
12087 965 : 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 965 : default:;
12117 : }
12118 965 : 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 66969 : 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 1260 : case NE_EXPR:
12380 1260 : {
12381 1260 : tree _q20 = TREE_OPERAND (_p0, 0);
12382 1260 : tree _q21 = TREE_OPERAND (_p0, 1);
12383 1260 : if (zerop (_q21))
12384 : {
12385 336 : 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 336 : default:;
12414 : }
12415 336 : 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 1260 : 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 0 : && (!VECTOR_TYPE_P (type)
12656 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12657 : )
12658 : {
12659 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12660 : )
12661 : {
12662 0 : {
12663 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12664 0 : if (types_match (captures[0], stype)
12665 : )
12666 : {
12667 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1897;
12668 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1897;
12669 0 : {
12670 0 : tree res_op0;
12671 0 : res_op0 = captures[0];
12672 0 : tree _r;
12673 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12674 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12675 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12676 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12677 0 : return _r;
12678 : }
12679 0 : next_after_fail1897:;
12680 : }
12681 : else
12682 : {
12683 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1898;
12684 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1898;
12685 0 : {
12686 0 : tree res_op0;
12687 0 : {
12688 0 : tree _o1[1], _r1;
12689 0 : _o1[0] = captures[2];
12690 0 : if (TREE_TYPE (_o1[0]) != stype)
12691 : {
12692 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12693 : }
12694 : else
12695 : _r1 = _o1[0];
12696 0 : res_op0 = _r1;
12697 : }
12698 0 : tree _r;
12699 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12700 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12701 0 : return _r;
12702 : }
12703 0 : next_after_fail1898:;
12704 : }
12705 : }
12706 : }
12707 : else
12708 : {
12709 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1899;
12710 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1899;
12711 0 : {
12712 0 : tree res_op0;
12713 0 : res_op0 = captures[2];
12714 0 : tree _r;
12715 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12716 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12717 0 : return _r;
12718 : }
12719 0 : next_after_fail1899:;
12720 : }
12721 : }
12722 : }
12723 : }
12724 : break;
12725 : }
12726 : default:;
12727 : }
12728 : }
12729 : break;
12730 : }
12731 1179 : default:;
12732 : }
12733 1179 : if (zerop (_q21))
12734 : {
12735 334 : switch (TREE_CODE (_p2))
12736 : {
12737 3 : case NEGATE_EXPR:
12738 3 : {
12739 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12740 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12741 : {
12742 3 : {
12743 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12744 3 : const enum tree_code cmp = GE_EXPR;
12745 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12746 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12747 6 : && element_precision (captures[1])
12748 3 : <= element_precision (captures[0])
12749 3 : && bitwise_equal_p (captures[1], captures[2])
12750 6 : && (!VECTOR_TYPE_P (type)
12751 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12752 : )
12753 : {
12754 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12755 : )
12756 : {
12757 0 : {
12758 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12759 0 : if (types_match (captures[0], stype)
12760 : )
12761 : {
12762 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1900;
12763 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1900;
12764 0 : {
12765 0 : tree res_op0;
12766 0 : res_op0 = captures[0];
12767 0 : tree _r;
12768 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12769 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12770 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12771 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12772 0 : return _r;
12773 : }
12774 0 : next_after_fail1900:;
12775 : }
12776 : else
12777 : {
12778 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1901;
12779 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1901;
12780 0 : {
12781 0 : tree res_op0;
12782 0 : {
12783 0 : tree _o1[1], _r1;
12784 0 : _o1[0] = captures[2];
12785 0 : if (TREE_TYPE (_o1[0]) != stype)
12786 : {
12787 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12788 : }
12789 : else
12790 : _r1 = _o1[0];
12791 0 : res_op0 = _r1;
12792 : }
12793 0 : tree _r;
12794 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12795 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12796 0 : return _r;
12797 : }
12798 0 : next_after_fail1901:;
12799 : }
12800 : }
12801 : }
12802 : else
12803 : {
12804 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1902;
12805 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1902;
12806 3 : {
12807 3 : tree res_op0;
12808 3 : res_op0 = captures[2];
12809 3 : tree _r;
12810 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12811 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12812 3 : return _r;
12813 : }
12814 0 : next_after_fail1902:;
12815 : }
12816 : }
12817 : }
12818 : }
12819 : break;
12820 : }
12821 : default:;
12822 : }
12823 : }
12824 1176 : switch (TREE_CODE (_q20))
12825 : {
12826 0 : case MINUS_EXPR:
12827 0 : {
12828 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12829 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12830 0 : if (zerop (_q21))
12831 : {
12832 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12833 : {
12834 0 : switch (TREE_CODE (_p2))
12835 : {
12836 0 : case MINUS_EXPR:
12837 0 : {
12838 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12839 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12840 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12841 : {
12842 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12843 : {
12844 0 : {
12845 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12846 0 : const enum tree_code cmp = GE_EXPR;
12847 0 : if (!HONOR_SIGNED_ZEROS (type)
12848 0 : && !TYPE_UNSIGNED (type)
12849 0 : && (!VECTOR_TYPE_P (type)
12850 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12851 : )
12852 : {
12853 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1903;
12854 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1903;
12855 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1903;
12856 0 : {
12857 0 : tree res_op0;
12858 0 : res_op0 = captures[0];
12859 0 : tree _r;
12860 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12861 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
12862 0 : return _r;
12863 : }
12864 0 : next_after_fail1903:;
12865 : }
12866 : }
12867 : }
12868 : }
12869 : break;
12870 : }
12871 : default:;
12872 : }
12873 : }
12874 : }
12875 : break;
12876 : }
12877 : default:;
12878 : }
12879 : break;
12880 : }
12881 66391 : case GT_EXPR:
12882 66391 : {
12883 66391 : tree _q20 = TREE_OPERAND (_p0, 0);
12884 66391 : tree _q21 = TREE_OPERAND (_p0, 1);
12885 66391 : switch (TREE_CODE (_q20))
12886 : {
12887 13 : CASE_CONVERT:
12888 13 : {
12889 13 : tree _q30 = TREE_OPERAND (_q20, 0);
12890 13 : if (zerop (_q21))
12891 : {
12892 1 : switch (TREE_CODE (_p2))
12893 : {
12894 0 : case NEGATE_EXPR:
12895 0 : {
12896 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12897 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12898 : {
12899 0 : {
12900 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12901 0 : const enum tree_code cmp = GT_EXPR;
12902 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12903 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12904 0 : && element_precision (captures[1])
12905 0 : <= element_precision (captures[0])
12906 0 : && bitwise_equal_p (captures[1], captures[2])
12907 0 : && (!VECTOR_TYPE_P (type)
12908 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12909 : )
12910 : {
12911 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12912 : )
12913 : {
12914 0 : {
12915 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12916 0 : if (types_match (captures[0], stype)
12917 : )
12918 : {
12919 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1904;
12920 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1904;
12921 0 : {
12922 0 : tree res_op0;
12923 0 : res_op0 = captures[0];
12924 0 : tree _r;
12925 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12926 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12927 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12928 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
12929 0 : return _r;
12930 : }
12931 0 : next_after_fail1904:;
12932 : }
12933 : else
12934 : {
12935 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1905;
12936 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1905;
12937 0 : {
12938 0 : tree res_op0;
12939 0 : {
12940 0 : tree _o1[1], _r1;
12941 0 : _o1[0] = captures[2];
12942 0 : if (TREE_TYPE (_o1[0]) != stype)
12943 : {
12944 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12945 : }
12946 : else
12947 : _r1 = _o1[0];
12948 0 : res_op0 = _r1;
12949 : }
12950 0 : tree _r;
12951 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12952 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
12953 0 : return _r;
12954 : }
12955 0 : next_after_fail1905:;
12956 : }
12957 : }
12958 : }
12959 : else
12960 : {
12961 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1906;
12962 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1906;
12963 0 : {
12964 0 : tree res_op0;
12965 0 : res_op0 = captures[2];
12966 0 : tree _r;
12967 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12968 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
12969 0 : return _r;
12970 : }
12971 0 : next_after_fail1906:;
12972 : }
12973 : }
12974 : }
12975 : }
12976 : break;
12977 : }
12978 : default:;
12979 : }
12980 : }
12981 : break;
12982 : }
12983 66391 : default:;
12984 : }
12985 66391 : if (zerop (_q21))
12986 : {
12987 84 : switch (TREE_CODE (_p2))
12988 : {
12989 6 : case NEGATE_EXPR:
12990 6 : {
12991 6 : tree _q60 = TREE_OPERAND (_p2, 0);
12992 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12993 : {
12994 6 : {
12995 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12996 6 : const enum tree_code cmp = GT_EXPR;
12997 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12998 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12999 12 : && element_precision (captures[1])
13000 6 : <= element_precision (captures[0])
13001 6 : && bitwise_equal_p (captures[1], captures[2])
13002 12 : && (!VECTOR_TYPE_P (type)
13003 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13004 : )
13005 : {
13006 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13007 : )
13008 : {
13009 0 : {
13010 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13011 0 : if (types_match (captures[0], stype)
13012 : )
13013 : {
13014 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1907;
13015 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1907;
13016 0 : {
13017 0 : tree res_op0;
13018 0 : res_op0 = captures[0];
13019 0 : tree _r;
13020 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13021 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13022 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13023 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
13024 0 : return _r;
13025 : }
13026 0 : next_after_fail1907:;
13027 : }
13028 : else
13029 : {
13030 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1908;
13031 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1908;
13032 0 : {
13033 0 : tree res_op0;
13034 0 : {
13035 0 : tree _o1[1], _r1;
13036 0 : _o1[0] = captures[2];
13037 0 : if (TREE_TYPE (_o1[0]) != stype)
13038 : {
13039 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13040 : }
13041 : else
13042 : _r1 = _o1[0];
13043 0 : res_op0 = _r1;
13044 : }
13045 0 : tree _r;
13046 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13047 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
13048 0 : return _r;
13049 : }
13050 0 : next_after_fail1908:;
13051 : }
13052 : }
13053 : }
13054 : else
13055 : {
13056 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1909;
13057 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1909;
13058 6 : {
13059 6 : tree res_op0;
13060 6 : res_op0 = captures[2];
13061 6 : tree _r;
13062 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13063 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
13064 6 : return _r;
13065 : }
13066 0 : next_after_fail1909:;
13067 : }
13068 : }
13069 : }
13070 : }
13071 : break;
13072 : }
13073 : default:;
13074 : }
13075 : }
13076 66385 : switch (TREE_CODE (_q20))
13077 : {
13078 0 : case MINUS_EXPR:
13079 0 : {
13080 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13081 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13082 0 : if (zerop (_q21))
13083 : {
13084 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13085 : {
13086 0 : switch (TREE_CODE (_p2))
13087 : {
13088 0 : case MINUS_EXPR:
13089 0 : {
13090 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13091 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13092 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13093 : {
13094 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13095 : {
13096 0 : {
13097 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13098 0 : const enum tree_code cmp = GT_EXPR;
13099 0 : if (!HONOR_SIGNED_ZEROS (type)
13100 0 : && !TYPE_UNSIGNED (type)
13101 0 : && (!VECTOR_TYPE_P (type)
13102 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13103 : )
13104 : {
13105 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1910;
13106 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1910;
13107 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1910;
13108 0 : {
13109 0 : tree res_op0;
13110 0 : res_op0 = captures[0];
13111 0 : tree _r;
13112 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13113 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
13114 0 : return _r;
13115 : }
13116 0 : next_after_fail1910:;
13117 : }
13118 : }
13119 : }
13120 : }
13121 : break;
13122 : }
13123 : default:;
13124 : }
13125 : }
13126 : }
13127 : break;
13128 : }
13129 : default:;
13130 : }
13131 : break;
13132 : }
13133 966 : case LE_EXPR:
13134 966 : {
13135 966 : tree _q20 = TREE_OPERAND (_p0, 0);
13136 966 : tree _q21 = TREE_OPERAND (_p0, 1);
13137 966 : switch (TREE_CODE (_q20))
13138 : {
13139 62 : CASE_CONVERT:
13140 62 : {
13141 62 : tree _q30 = TREE_OPERAND (_q20, 0);
13142 62 : if (zerop (_q21))
13143 : {
13144 0 : switch (TREE_CODE (_p2))
13145 : {
13146 0 : case NEGATE_EXPR:
13147 0 : {
13148 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13149 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13150 : {
13151 0 : {
13152 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13153 0 : const enum tree_code cmp = LE_EXPR;
13154 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13155 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13156 0 : && element_precision (captures[1])
13157 0 : <= element_precision (captures[0])
13158 0 : && bitwise_equal_p (captures[1], captures[2])
13159 0 : && (!VECTOR_TYPE_P (type)
13160 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13161 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13162 : )
13163 : {
13164 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13165 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13166 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13167 : )
13168 : {
13169 0 : {
13170 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13171 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13172 0 : if (types_match (captures[0], stype)
13173 : )
13174 : {
13175 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1911;
13176 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1911;
13177 0 : {
13178 0 : tree res_op0;
13179 0 : {
13180 0 : tree _o1[1], _r1;
13181 0 : {
13182 0 : tree _o2[1], _r2;
13183 0 : _o2[0] = captures[0];
13184 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13185 0 : _o1[0] = _r2;
13186 : }
13187 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13188 0 : res_op0 = _r1;
13189 : }
13190 0 : tree _r;
13191 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13192 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13193 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13194 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13195 0 : return _r;
13196 : }
13197 0 : next_after_fail1911:;
13198 : }
13199 : else
13200 : {
13201 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1912;
13202 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1912;
13203 0 : {
13204 0 : tree res_op0;
13205 0 : {
13206 0 : tree _o1[1], _r1;
13207 0 : {
13208 0 : tree _o2[1], _r2;
13209 0 : {
13210 0 : tree _o3[1], _r3;
13211 0 : _o3[0] = captures[2];
13212 0 : if (TREE_TYPE (_o3[0]) != stype)
13213 : {
13214 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13215 : }
13216 : else
13217 : _r3 = _o3[0];
13218 0 : _o2[0] = _r3;
13219 : }
13220 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13221 0 : _o1[0] = _r2;
13222 : }
13223 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13224 0 : res_op0 = _r1;
13225 : }
13226 0 : tree _r;
13227 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13228 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13229 0 : return _r;
13230 : }
13231 0 : next_after_fail1912:;
13232 : }
13233 : }
13234 : }
13235 : else
13236 : {
13237 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1913;
13238 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1913;
13239 0 : {
13240 0 : tree res_op0;
13241 0 : {
13242 0 : tree _o1[1], _r1;
13243 0 : {
13244 0 : tree _o2[1], _r2;
13245 0 : _o2[0] = captures[2];
13246 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13247 0 : _o1[0] = _r2;
13248 : }
13249 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13250 0 : res_op0 = _r1;
13251 : }
13252 0 : tree _r;
13253 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13254 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13255 0 : return _r;
13256 : }
13257 0 : next_after_fail1913:;
13258 : }
13259 : }
13260 : }
13261 : }
13262 : break;
13263 : }
13264 : default:;
13265 : }
13266 : }
13267 : break;
13268 : }
13269 966 : default:;
13270 : }
13271 966 : if (zerop (_q21))
13272 : {
13273 18 : switch (TREE_CODE (_p2))
13274 : {
13275 0 : case NEGATE_EXPR:
13276 0 : {
13277 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13278 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13279 : {
13280 0 : {
13281 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13282 0 : const enum tree_code cmp = LE_EXPR;
13283 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13284 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13285 0 : && element_precision (captures[1])
13286 0 : <= element_precision (captures[0])
13287 0 : && bitwise_equal_p (captures[1], captures[2])
13288 0 : && (!VECTOR_TYPE_P (type)
13289 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13290 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13291 : )
13292 : {
13293 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13294 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13295 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13296 : )
13297 : {
13298 0 : {
13299 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13300 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13301 0 : if (types_match (captures[0], stype)
13302 : )
13303 : {
13304 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1914;
13305 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1914;
13306 0 : {
13307 0 : tree res_op0;
13308 0 : {
13309 0 : tree _o1[1], _r1;
13310 0 : {
13311 0 : tree _o2[1], _r2;
13312 0 : _o2[0] = captures[0];
13313 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13314 0 : _o1[0] = _r2;
13315 : }
13316 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13317 0 : res_op0 = _r1;
13318 : }
13319 0 : tree _r;
13320 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13321 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13322 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13323 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13324 0 : return _r;
13325 : }
13326 0 : next_after_fail1914:;
13327 : }
13328 : else
13329 : {
13330 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1915;
13331 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
13332 0 : {
13333 0 : tree res_op0;
13334 0 : {
13335 0 : tree _o1[1], _r1;
13336 0 : {
13337 0 : tree _o2[1], _r2;
13338 0 : {
13339 0 : tree _o3[1], _r3;
13340 0 : _o3[0] = captures[2];
13341 0 : if (TREE_TYPE (_o3[0]) != stype)
13342 : {
13343 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13344 : }
13345 : else
13346 : _r3 = _o3[0];
13347 0 : _o2[0] = _r3;
13348 : }
13349 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13350 0 : _o1[0] = _r2;
13351 : }
13352 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13353 0 : res_op0 = _r1;
13354 : }
13355 0 : tree _r;
13356 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13357 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13358 0 : return _r;
13359 : }
13360 0 : next_after_fail1915:;
13361 : }
13362 : }
13363 : }
13364 : else
13365 : {
13366 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1916;
13367 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
13368 0 : {
13369 0 : tree res_op0;
13370 0 : {
13371 0 : tree _o1[1], _r1;
13372 0 : {
13373 0 : tree _o2[1], _r2;
13374 0 : _o2[0] = captures[2];
13375 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13376 0 : _o1[0] = _r2;
13377 : }
13378 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13379 0 : res_op0 = _r1;
13380 : }
13381 0 : tree _r;
13382 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13383 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13384 0 : return _r;
13385 : }
13386 0 : next_after_fail1916:;
13387 : }
13388 : }
13389 : }
13390 : }
13391 : break;
13392 : }
13393 : default:;
13394 : }
13395 : }
13396 966 : switch (TREE_CODE (_q20))
13397 : {
13398 0 : case MINUS_EXPR:
13399 0 : {
13400 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13401 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13402 0 : if (zerop (_q21))
13403 : {
13404 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13405 : {
13406 0 : switch (TREE_CODE (_p2))
13407 : {
13408 0 : case MINUS_EXPR:
13409 0 : {
13410 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13411 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13412 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13413 : {
13414 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13415 : {
13416 0 : {
13417 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13418 0 : const enum tree_code cmp = LE_EXPR;
13419 0 : if (!HONOR_SIGNED_ZEROS (type)
13420 0 : && !TYPE_UNSIGNED (type)
13421 : )
13422 : {
13423 0 : if (ANY_INTEGRAL_TYPE_P (type)
13424 0 : && !TYPE_OVERFLOW_WRAPS (type)
13425 0 : && (!VECTOR_TYPE_P (type)
13426 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13427 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13428 : )
13429 : {
13430 0 : {
13431 0 : tree utype = unsigned_type_for (type);
13432 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1917;
13433 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1917;
13434 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
13435 0 : {
13436 0 : tree res_op0;
13437 0 : {
13438 0 : tree _o1[1], _r1;
13439 0 : {
13440 0 : tree _o2[1], _r2;
13441 0 : _o2[0] = captures[0];
13442 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13443 0 : _o1[0] = _r2;
13444 : }
13445 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13446 0 : res_op0 = _r1;
13447 : }
13448 0 : tree _r;
13449 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13450 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
13451 0 : return _r;
13452 : }
13453 0 : next_after_fail1917:;
13454 : }
13455 : }
13456 : else
13457 : {
13458 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1918;
13459 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1918;
13460 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
13461 0 : {
13462 0 : tree res_op0;
13463 0 : {
13464 0 : tree _o1[1], _r1;
13465 0 : _o1[0] = captures[0];
13466 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13467 0 : res_op0 = _r1;
13468 : }
13469 0 : tree _r;
13470 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13471 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
13472 0 : return _r;
13473 : }
13474 0 : next_after_fail1918:;
13475 : }
13476 : }
13477 : }
13478 : }
13479 : }
13480 : break;
13481 : }
13482 : default:;
13483 : }
13484 : }
13485 : }
13486 : break;
13487 : }
13488 : default:;
13489 : }
13490 : break;
13491 : }
13492 20782 : case LT_EXPR:
13493 20782 : {
13494 20782 : tree _q20 = TREE_OPERAND (_p0, 0);
13495 20782 : tree _q21 = TREE_OPERAND (_p0, 1);
13496 20782 : switch (TREE_CODE (_q20))
13497 : {
13498 162 : CASE_CONVERT:
13499 162 : {
13500 162 : tree _q30 = TREE_OPERAND (_q20, 0);
13501 162 : if (zerop (_q21))
13502 : {
13503 83 : switch (TREE_CODE (_p2))
13504 : {
13505 0 : case NEGATE_EXPR:
13506 0 : {
13507 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13508 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13509 : {
13510 0 : {
13511 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13512 0 : const enum tree_code cmp = LT_EXPR;
13513 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13514 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13515 0 : && element_precision (captures[1])
13516 0 : <= element_precision (captures[0])
13517 0 : && bitwise_equal_p (captures[1], captures[2])
13518 0 : && (!VECTOR_TYPE_P (type)
13519 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13520 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13521 : )
13522 : {
13523 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13524 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13525 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13526 : )
13527 : {
13528 0 : {
13529 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13530 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13531 0 : if (types_match (captures[0], stype)
13532 : )
13533 : {
13534 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1919;
13535 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
13536 0 : {
13537 0 : tree res_op0;
13538 0 : {
13539 0 : tree _o1[1], _r1;
13540 0 : {
13541 0 : tree _o2[1], _r2;
13542 0 : _o2[0] = captures[0];
13543 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13544 0 : _o1[0] = _r2;
13545 : }
13546 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13547 0 : res_op0 = _r1;
13548 : }
13549 0 : tree _r;
13550 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13551 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13552 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13553 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13554 0 : return _r;
13555 : }
13556 0 : next_after_fail1919:;
13557 : }
13558 : else
13559 : {
13560 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1920;
13561 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
13562 0 : {
13563 0 : tree res_op0;
13564 0 : {
13565 0 : tree _o1[1], _r1;
13566 0 : {
13567 0 : tree _o2[1], _r2;
13568 0 : {
13569 0 : tree _o3[1], _r3;
13570 0 : _o3[0] = captures[2];
13571 0 : if (TREE_TYPE (_o3[0]) != stype)
13572 : {
13573 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13574 : }
13575 : else
13576 : _r3 = _o3[0];
13577 0 : _o2[0] = _r3;
13578 : }
13579 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13580 0 : _o1[0] = _r2;
13581 : }
13582 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13583 0 : res_op0 = _r1;
13584 : }
13585 0 : tree _r;
13586 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13587 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13588 0 : return _r;
13589 : }
13590 0 : next_after_fail1920:;
13591 : }
13592 : }
13593 : }
13594 : else
13595 : {
13596 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1921;
13597 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
13598 0 : {
13599 0 : tree res_op0;
13600 0 : {
13601 0 : tree _o1[1], _r1;
13602 0 : {
13603 0 : tree _o2[1], _r2;
13604 0 : _o2[0] = captures[2];
13605 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13606 0 : _o1[0] = _r2;
13607 : }
13608 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13609 0 : res_op0 = _r1;
13610 : }
13611 0 : tree _r;
13612 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13613 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13614 0 : return _r;
13615 : }
13616 0 : next_after_fail1921:;
13617 : }
13618 : }
13619 : }
13620 : }
13621 : break;
13622 : }
13623 : default:;
13624 : }
13625 : }
13626 : break;
13627 : }
13628 20782 : default:;
13629 : }
13630 20782 : if (zerop (_q21))
13631 : {
13632 633 : switch (TREE_CODE (_p2))
13633 : {
13634 16 : case NEGATE_EXPR:
13635 16 : {
13636 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13637 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13638 : {
13639 16 : {
13640 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13641 16 : const enum tree_code cmp = LT_EXPR;
13642 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13643 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13644 32 : && element_precision (captures[1])
13645 16 : <= element_precision (captures[0])
13646 16 : && bitwise_equal_p (captures[1], captures[2])
13647 32 : && (!VECTOR_TYPE_P (type)
13648 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13649 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13650 : )
13651 : {
13652 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13653 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13654 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13655 : )
13656 : {
13657 0 : {
13658 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13659 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13660 0 : if (types_match (captures[0], stype)
13661 : )
13662 : {
13663 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1922;
13664 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
13665 0 : {
13666 0 : tree res_op0;
13667 0 : {
13668 0 : tree _o1[1], _r1;
13669 0 : {
13670 0 : tree _o2[1], _r2;
13671 0 : _o2[0] = captures[0];
13672 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13673 0 : _o1[0] = _r2;
13674 : }
13675 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13676 0 : res_op0 = _r1;
13677 : }
13678 0 : tree _r;
13679 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13680 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13681 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13682 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
13683 0 : return _r;
13684 : }
13685 16 : next_after_fail1922:;
13686 : }
13687 : else
13688 : {
13689 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1923;
13690 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
13691 0 : {
13692 0 : tree res_op0;
13693 0 : {
13694 0 : tree _o1[1], _r1;
13695 0 : {
13696 0 : tree _o2[1], _r2;
13697 0 : {
13698 0 : tree _o3[1], _r3;
13699 0 : _o3[0] = captures[2];
13700 0 : if (TREE_TYPE (_o3[0]) != stype)
13701 : {
13702 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13703 : }
13704 : else
13705 : _r3 = _o3[0];
13706 0 : _o2[0] = _r3;
13707 : }
13708 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13709 0 : _o1[0] = _r2;
13710 : }
13711 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13712 0 : res_op0 = _r1;
13713 : }
13714 0 : tree _r;
13715 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13716 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1049, __FILE__, __LINE__, true);
13717 0 : return _r;
13718 : }
13719 16 : next_after_fail1923:;
13720 : }
13721 : }
13722 : }
13723 : else
13724 : {
13725 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1924;
13726 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
13727 0 : {
13728 0 : tree res_op0;
13729 0 : {
13730 0 : tree _o1[1], _r1;
13731 0 : {
13732 0 : tree _o2[1], _r2;
13733 0 : _o2[0] = captures[2];
13734 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13735 0 : _o1[0] = _r2;
13736 : }
13737 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13738 0 : res_op0 = _r1;
13739 : }
13740 0 : tree _r;
13741 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13742 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
13743 0 : return _r;
13744 : }
13745 16 : next_after_fail1924:;
13746 : }
13747 : }
13748 : }
13749 : }
13750 : break;
13751 : }
13752 : default:;
13753 : }
13754 : }
13755 20782 : switch (TREE_CODE (_q20))
13756 : {
13757 0 : case MINUS_EXPR:
13758 0 : {
13759 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13760 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13761 0 : if (zerop (_q21))
13762 : {
13763 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13764 : {
13765 0 : switch (TREE_CODE (_p2))
13766 : {
13767 0 : case MINUS_EXPR:
13768 0 : {
13769 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13770 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13771 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13772 : {
13773 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13774 : {
13775 0 : {
13776 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13777 0 : const enum tree_code cmp = LT_EXPR;
13778 0 : if (!HONOR_SIGNED_ZEROS (type)
13779 0 : && !TYPE_UNSIGNED (type)
13780 : )
13781 : {
13782 0 : if (ANY_INTEGRAL_TYPE_P (type)
13783 0 : && !TYPE_OVERFLOW_WRAPS (type)
13784 0 : && (!VECTOR_TYPE_P (type)
13785 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13786 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13787 : )
13788 : {
13789 0 : {
13790 0 : tree utype = unsigned_type_for (type);
13791 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1925;
13792 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1925;
13793 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
13794 0 : {
13795 0 : tree res_op0;
13796 0 : {
13797 0 : tree _o1[1], _r1;
13798 0 : {
13799 0 : tree _o2[1], _r2;
13800 0 : _o2[0] = captures[0];
13801 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13802 0 : _o1[0] = _r2;
13803 : }
13804 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13805 0 : res_op0 = _r1;
13806 : }
13807 0 : tree _r;
13808 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13809 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
13810 0 : return _r;
13811 : }
13812 0 : next_after_fail1925:;
13813 : }
13814 : }
13815 : else
13816 : {
13817 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1926;
13818 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1926;
13819 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
13820 0 : {
13821 0 : tree res_op0;
13822 0 : {
13823 0 : tree _o1[1], _r1;
13824 0 : _o1[0] = captures[0];
13825 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13826 0 : res_op0 = _r1;
13827 : }
13828 0 : tree _r;
13829 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13830 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
13831 0 : return _r;
13832 : }
13833 0 : next_after_fail1926:;
13834 : }
13835 : }
13836 : }
13837 : }
13838 : }
13839 : break;
13840 : }
13841 : default:;
13842 : }
13843 : }
13844 : }
13845 : break;
13846 : }
13847 : default:;
13848 : }
13849 : break;
13850 : }
13851 385472 : default:;
13852 : }
13853 385472 : {
13854 385472 : tree _p0_pops[1];
13855 385472 : if (tree_logical_inverted_value (_p0, _p0_pops))
13856 : {
13857 848 : tree _q20 = _p0_pops[0];
13858 848 : if (tree_truth_valued_p (_q20))
13859 : {
13860 0 : {
13861 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13862 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13863 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13864 : )
13865 : {
13866 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
13867 0 : {
13868 0 : tree res_op0;
13869 0 : res_op0 = captures[0];
13870 0 : tree res_op1;
13871 0 : res_op1 = captures[2];
13872 0 : tree res_op2;
13873 0 : res_op2 = captures[1];
13874 0 : tree _r;
13875 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13876 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
13877 0 : return _r;
13878 : }
13879 0 : next_after_fail1927:;
13880 : }
13881 : }
13882 : }
13883 : }
13884 : }
13885 385472 : switch (TREE_CODE (_p1))
13886 : {
13887 0 : case VIEW_CONVERT_EXPR:
13888 0 : {
13889 0 : tree _q30 = TREE_OPERAND (_p1, 0);
13890 0 : switch (TREE_CODE (_q30))
13891 : {
13892 0 : case CALL_EXPR:
13893 0 : switch (get_call_combined_fn (_q30))
13894 : {
13895 0 : case CFN_COND_ADD:
13896 0 : if (call_expr_nargs (_q30) == 4)
13897 : {
13898 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13899 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13900 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13901 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13902 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13903 : {
13904 0 : {
13905 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13906 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13907 0 : if (res) return res;
13908 : }
13909 : }
13910 : }
13911 : break;
13912 0 : case CFN_COND_AND:
13913 0 : if (call_expr_nargs (_q30) == 4)
13914 : {
13915 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13916 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13917 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13918 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13919 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13920 : {
13921 0 : {
13922 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13923 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13924 0 : if (res) return res;
13925 : }
13926 : }
13927 : }
13928 : break;
13929 0 : case CFN_COND_DIV:
13930 0 : if (call_expr_nargs (_q30) == 4)
13931 : {
13932 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13933 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13934 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13935 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13936 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13937 : {
13938 0 : {
13939 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13940 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
13941 0 : if (res) return res;
13942 : }
13943 : }
13944 : }
13945 : break;
13946 0 : case CFN_COND_IOR:
13947 0 : if (call_expr_nargs (_q30) == 4)
13948 : {
13949 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13950 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13951 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13952 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13953 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13954 : {
13955 0 : {
13956 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13957 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
13958 0 : if (res) return res;
13959 : }
13960 : }
13961 : }
13962 : break;
13963 0 : case CFN_COND_MAX:
13964 0 : if (call_expr_nargs (_q30) == 4)
13965 : {
13966 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13967 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13968 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13969 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13970 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13971 : {
13972 0 : {
13973 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13974 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
13975 0 : if (res) return res;
13976 : }
13977 : }
13978 : }
13979 : break;
13980 0 : case CFN_COND_MIN:
13981 0 : if (call_expr_nargs (_q30) == 4)
13982 : {
13983 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13984 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13985 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13986 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13987 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13988 : {
13989 0 : {
13990 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13991 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
13992 0 : if (res) return res;
13993 : }
13994 : }
13995 : }
13996 : break;
13997 0 : case CFN_COND_MOD:
13998 0 : if (call_expr_nargs (_q30) == 4)
13999 : {
14000 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14001 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14002 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14003 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14004 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14005 : {
14006 0 : {
14007 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14008 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14009 0 : if (res) return res;
14010 : }
14011 : }
14012 : }
14013 : break;
14014 0 : case CFN_COND_MUL:
14015 0 : if (call_expr_nargs (_q30) == 4)
14016 : {
14017 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14018 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14019 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14020 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14021 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14022 : {
14023 0 : {
14024 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14025 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14026 0 : if (res) return res;
14027 : }
14028 : }
14029 : }
14030 : break;
14031 0 : case CFN_COND_SHL:
14032 0 : if (call_expr_nargs (_q30) == 4)
14033 : {
14034 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14035 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14036 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14037 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14038 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14039 : {
14040 0 : {
14041 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14042 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14043 0 : if (res) return res;
14044 : }
14045 : }
14046 : }
14047 : break;
14048 0 : case CFN_COND_SHR:
14049 0 : if (call_expr_nargs (_q30) == 4)
14050 : {
14051 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14052 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14053 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14054 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14055 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14056 : {
14057 0 : {
14058 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14059 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14060 0 : if (res) return res;
14061 : }
14062 : }
14063 : }
14064 : break;
14065 0 : case CFN_COND_SUB:
14066 0 : if (call_expr_nargs (_q30) == 4)
14067 : {
14068 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14069 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14070 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14071 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14072 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14073 : {
14074 0 : {
14075 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14076 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14077 0 : if (res) return res;
14078 : }
14079 : }
14080 : }
14081 : break;
14082 0 : case CFN_COND_XOR:
14083 0 : if (call_expr_nargs (_q30) == 4)
14084 : {
14085 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14086 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14087 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14088 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14089 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14090 : {
14091 0 : {
14092 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14093 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14094 0 : if (res) return res;
14095 : }
14096 : }
14097 : }
14098 : break;
14099 0 : case CFN_COND_COPYSIGN:
14100 0 : if (call_expr_nargs (_q30) == 4)
14101 : {
14102 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14103 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14104 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14105 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14106 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14107 : {
14108 0 : {
14109 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14110 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14111 0 : if (res) return res;
14112 : }
14113 : }
14114 : }
14115 : break;
14116 0 : case CFN_COND_FMAX:
14117 0 : if (call_expr_nargs (_q30) == 4)
14118 : {
14119 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14120 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14121 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14122 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14123 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14124 : {
14125 0 : {
14126 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14127 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14128 0 : if (res) return res;
14129 : }
14130 : }
14131 : }
14132 : break;
14133 0 : case CFN_COND_FMIN:
14134 0 : if (call_expr_nargs (_q30) == 4)
14135 : {
14136 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14137 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14138 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14139 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14140 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14141 : {
14142 0 : {
14143 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14144 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14145 0 : if (res) return res;
14146 : }
14147 : }
14148 : }
14149 : break;
14150 0 : case CFN_COND_RDIV:
14151 0 : if (call_expr_nargs (_q30) == 4)
14152 : {
14153 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14154 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14155 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14156 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14157 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14158 : {
14159 0 : {
14160 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14161 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14162 0 : if (res) return res;
14163 : }
14164 : }
14165 : }
14166 : break;
14167 : default:;
14168 : }
14169 : break;
14170 : default:;
14171 : }
14172 : break;
14173 : }
14174 12 : case CALL_EXPR:
14175 12 : switch (get_call_combined_fn (_p1))
14176 : {
14177 0 : case CFN_COND_ADD:
14178 0 : if (call_expr_nargs (_p1) == 4)
14179 : {
14180 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14181 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14182 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14183 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14184 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14185 : {
14186 0 : {
14187 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14188 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14189 0 : if (res) return res;
14190 : }
14191 : }
14192 : }
14193 : break;
14194 0 : case CFN_COND_AND:
14195 0 : if (call_expr_nargs (_p1) == 4)
14196 : {
14197 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14198 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14199 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14200 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14201 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14202 : {
14203 0 : {
14204 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14205 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14206 0 : if (res) return res;
14207 : }
14208 : }
14209 : }
14210 : break;
14211 0 : case CFN_COND_DIV:
14212 0 : if (call_expr_nargs (_p1) == 4)
14213 : {
14214 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14215 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14216 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14217 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14218 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14219 : {
14220 0 : {
14221 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14222 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14223 0 : if (res) return res;
14224 : }
14225 : }
14226 : }
14227 : break;
14228 0 : case CFN_COND_IOR:
14229 0 : if (call_expr_nargs (_p1) == 4)
14230 : {
14231 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14232 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14233 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14234 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14235 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14236 : {
14237 0 : {
14238 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14239 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14240 0 : if (res) return res;
14241 : }
14242 : }
14243 : }
14244 : break;
14245 0 : case CFN_COND_MAX:
14246 0 : if (call_expr_nargs (_p1) == 4)
14247 : {
14248 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14249 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14250 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14251 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14252 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14253 : {
14254 0 : {
14255 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14256 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14257 0 : if (res) return res;
14258 : }
14259 : }
14260 : }
14261 : break;
14262 0 : case CFN_COND_MIN:
14263 0 : if (call_expr_nargs (_p1) == 4)
14264 : {
14265 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14266 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14267 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14268 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14269 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14270 : {
14271 0 : {
14272 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14273 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14274 0 : if (res) return res;
14275 : }
14276 : }
14277 : }
14278 : break;
14279 0 : case CFN_COND_MOD:
14280 0 : if (call_expr_nargs (_p1) == 4)
14281 : {
14282 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14283 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14284 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14285 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14286 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14287 : {
14288 0 : {
14289 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14290 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14291 0 : if (res) return res;
14292 : }
14293 : }
14294 : }
14295 : break;
14296 0 : case CFN_COND_MUL:
14297 0 : if (call_expr_nargs (_p1) == 4)
14298 : {
14299 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14300 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14301 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14302 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14303 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14304 : {
14305 0 : {
14306 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14307 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14308 0 : if (res) return res;
14309 : }
14310 : }
14311 : }
14312 : break;
14313 0 : case CFN_COND_SHL:
14314 0 : if (call_expr_nargs (_p1) == 4)
14315 : {
14316 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14317 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14318 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14319 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14320 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14321 : {
14322 0 : {
14323 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14324 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14325 0 : if (res) return res;
14326 : }
14327 : }
14328 : }
14329 : break;
14330 0 : case CFN_COND_SHR:
14331 0 : if (call_expr_nargs (_p1) == 4)
14332 : {
14333 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14334 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14335 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14336 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14337 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14338 : {
14339 0 : {
14340 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14341 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14342 0 : if (res) return res;
14343 : }
14344 : }
14345 : }
14346 : break;
14347 0 : case CFN_COND_SUB:
14348 0 : if (call_expr_nargs (_p1) == 4)
14349 : {
14350 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14351 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14352 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14353 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14354 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14355 : {
14356 0 : {
14357 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14358 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14359 0 : if (res) return res;
14360 : }
14361 : }
14362 : }
14363 : break;
14364 0 : case CFN_COND_XOR:
14365 0 : if (call_expr_nargs (_p1) == 4)
14366 : {
14367 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14368 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14369 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14370 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14371 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14372 : {
14373 0 : {
14374 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14375 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14376 0 : if (res) return res;
14377 : }
14378 : }
14379 : }
14380 : break;
14381 0 : case CFN_COND_COPYSIGN:
14382 0 : if (call_expr_nargs (_p1) == 4)
14383 : {
14384 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14385 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14386 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14387 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14388 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14389 : {
14390 0 : {
14391 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14392 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14393 0 : if (res) return res;
14394 : }
14395 : }
14396 : }
14397 : break;
14398 0 : case CFN_COND_FMAX:
14399 0 : if (call_expr_nargs (_p1) == 4)
14400 : {
14401 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14402 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14403 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14404 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14405 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14406 : {
14407 0 : {
14408 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14409 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14410 0 : if (res) return res;
14411 : }
14412 : }
14413 : }
14414 : break;
14415 0 : case CFN_COND_FMIN:
14416 0 : if (call_expr_nargs (_p1) == 4)
14417 : {
14418 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14419 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14420 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14421 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14422 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14423 : {
14424 0 : {
14425 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14426 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14427 0 : if (res) return res;
14428 : }
14429 : }
14430 : }
14431 : break;
14432 0 : case CFN_COND_RDIV:
14433 0 : if (call_expr_nargs (_p1) == 4)
14434 : {
14435 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14436 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14437 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14438 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14439 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14440 : {
14441 0 : {
14442 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14443 0 : tree res = generic_simplify_539 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14444 0 : if (res) return res;
14445 : }
14446 : }
14447 : }
14448 : break;
14449 : default:;
14450 : }
14451 : break;
14452 385472 : default:;
14453 : }
14454 385472 : switch (TREE_CODE (_p2))
14455 : {
14456 0 : case VIEW_CONVERT_EXPR:
14457 0 : {
14458 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14459 0 : switch (TREE_CODE (_q40))
14460 : {
14461 0 : case CALL_EXPR:
14462 0 : switch (get_call_combined_fn (_q40))
14463 : {
14464 0 : case CFN_COND_ADD:
14465 0 : if (call_expr_nargs (_q40) == 4)
14466 : {
14467 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14468 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14469 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14470 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14471 0 : {
14472 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14473 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14474 0 : if (res) return res;
14475 : }
14476 : }
14477 : break;
14478 0 : case CFN_COND_AND:
14479 0 : if (call_expr_nargs (_q40) == 4)
14480 : {
14481 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14482 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14483 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14484 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14485 0 : {
14486 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14487 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14488 0 : if (res) return res;
14489 : }
14490 : }
14491 : break;
14492 0 : case CFN_COND_DIV:
14493 0 : if (call_expr_nargs (_q40) == 4)
14494 : {
14495 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14496 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14497 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14498 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14499 0 : {
14500 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14501 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14502 0 : if (res) return res;
14503 : }
14504 : }
14505 : break;
14506 0 : case CFN_COND_IOR:
14507 0 : if (call_expr_nargs (_q40) == 4)
14508 : {
14509 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14510 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14511 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14512 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14513 0 : {
14514 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14515 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14516 0 : if (res) return res;
14517 : }
14518 : }
14519 : break;
14520 0 : case CFN_COND_MAX:
14521 0 : if (call_expr_nargs (_q40) == 4)
14522 : {
14523 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14524 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14525 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14526 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14527 0 : {
14528 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14529 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14530 0 : if (res) return res;
14531 : }
14532 : }
14533 : break;
14534 0 : case CFN_COND_MIN:
14535 0 : if (call_expr_nargs (_q40) == 4)
14536 : {
14537 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14538 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14539 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14540 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14541 0 : {
14542 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14543 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14544 0 : if (res) return res;
14545 : }
14546 : }
14547 : break;
14548 0 : case CFN_COND_MOD:
14549 0 : if (call_expr_nargs (_q40) == 4)
14550 : {
14551 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14552 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14553 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14554 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14555 0 : {
14556 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14557 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14558 0 : if (res) return res;
14559 : }
14560 : }
14561 : break;
14562 0 : case CFN_COND_MUL:
14563 0 : if (call_expr_nargs (_q40) == 4)
14564 : {
14565 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14566 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14567 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14568 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14569 0 : {
14570 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14571 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14572 0 : if (res) return res;
14573 : }
14574 : }
14575 : break;
14576 0 : case CFN_COND_SHL:
14577 0 : if (call_expr_nargs (_q40) == 4)
14578 : {
14579 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14580 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14581 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14582 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14583 0 : {
14584 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14585 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14586 0 : if (res) return res;
14587 : }
14588 : }
14589 : break;
14590 0 : case CFN_COND_SHR:
14591 0 : if (call_expr_nargs (_q40) == 4)
14592 : {
14593 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14594 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14595 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14596 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14597 0 : {
14598 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14599 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14600 0 : if (res) return res;
14601 : }
14602 : }
14603 : break;
14604 0 : case CFN_COND_SUB:
14605 0 : if (call_expr_nargs (_q40) == 4)
14606 : {
14607 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14608 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14609 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14610 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14611 0 : {
14612 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14613 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14614 0 : if (res) return res;
14615 : }
14616 : }
14617 : break;
14618 0 : case CFN_COND_XOR:
14619 0 : if (call_expr_nargs (_q40) == 4)
14620 : {
14621 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14622 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14623 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14624 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14625 0 : {
14626 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14627 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14628 0 : if (res) return res;
14629 : }
14630 : }
14631 : break;
14632 0 : case CFN_COND_COPYSIGN:
14633 0 : if (call_expr_nargs (_q40) == 4)
14634 : {
14635 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14636 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14637 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14638 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14639 0 : {
14640 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14641 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14642 0 : if (res) return res;
14643 : }
14644 : }
14645 : break;
14646 0 : case CFN_COND_FMAX:
14647 0 : if (call_expr_nargs (_q40) == 4)
14648 : {
14649 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14650 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14651 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14652 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14653 0 : {
14654 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14655 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14656 0 : if (res) return res;
14657 : }
14658 : }
14659 : break;
14660 0 : case CFN_COND_FMIN:
14661 0 : if (call_expr_nargs (_q40) == 4)
14662 : {
14663 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14664 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14665 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14666 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14667 0 : {
14668 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14669 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14670 0 : if (res) return res;
14671 : }
14672 : }
14673 : break;
14674 0 : case CFN_COND_RDIV:
14675 0 : if (call_expr_nargs (_q40) == 4)
14676 : {
14677 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14678 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14679 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14680 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14681 0 : {
14682 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14683 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14684 0 : if (res) return res;
14685 : }
14686 : }
14687 : break;
14688 : default:;
14689 : }
14690 : break;
14691 : default:;
14692 : }
14693 : break;
14694 : }
14695 12 : case CALL_EXPR:
14696 12 : switch (get_call_combined_fn (_p2))
14697 : {
14698 0 : case CFN_COND_ADD:
14699 0 : if (call_expr_nargs (_p2) == 4)
14700 : {
14701 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14702 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14703 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14704 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14705 0 : {
14706 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14707 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14708 0 : if (res) return res;
14709 : }
14710 : }
14711 : break;
14712 0 : case CFN_COND_AND:
14713 0 : if (call_expr_nargs (_p2) == 4)
14714 : {
14715 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14716 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14717 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14718 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14719 0 : {
14720 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14721 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14722 0 : if (res) return res;
14723 : }
14724 : }
14725 : break;
14726 0 : case CFN_COND_DIV:
14727 0 : if (call_expr_nargs (_p2) == 4)
14728 : {
14729 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14730 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14731 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14732 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14733 0 : {
14734 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14735 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14736 0 : if (res) return res;
14737 : }
14738 : }
14739 : break;
14740 0 : case CFN_COND_IOR:
14741 0 : if (call_expr_nargs (_p2) == 4)
14742 : {
14743 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14744 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14745 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14746 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14747 0 : {
14748 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14749 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14750 0 : if (res) return res;
14751 : }
14752 : }
14753 : break;
14754 0 : case CFN_COND_MAX:
14755 0 : if (call_expr_nargs (_p2) == 4)
14756 : {
14757 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14758 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14759 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14760 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14761 0 : {
14762 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14763 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14764 0 : if (res) return res;
14765 : }
14766 : }
14767 : break;
14768 0 : case CFN_COND_MIN:
14769 0 : if (call_expr_nargs (_p2) == 4)
14770 : {
14771 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14772 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14773 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14774 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14775 0 : {
14776 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14777 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14778 0 : if (res) return res;
14779 : }
14780 : }
14781 : break;
14782 0 : case CFN_COND_MOD:
14783 0 : if (call_expr_nargs (_p2) == 4)
14784 : {
14785 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14786 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14787 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14788 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14789 0 : {
14790 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14791 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14792 0 : if (res) return res;
14793 : }
14794 : }
14795 : break;
14796 0 : case CFN_COND_MUL:
14797 0 : if (call_expr_nargs (_p2) == 4)
14798 : {
14799 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14800 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14801 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14802 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14803 0 : {
14804 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14805 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14806 0 : if (res) return res;
14807 : }
14808 : }
14809 : break;
14810 0 : case CFN_COND_SHL:
14811 0 : if (call_expr_nargs (_p2) == 4)
14812 : {
14813 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14814 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14815 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14816 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14817 0 : {
14818 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14819 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14820 0 : if (res) return res;
14821 : }
14822 : }
14823 : break;
14824 0 : case CFN_COND_SHR:
14825 0 : if (call_expr_nargs (_p2) == 4)
14826 : {
14827 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14828 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14829 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14830 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14831 0 : {
14832 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14833 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14834 0 : if (res) return res;
14835 : }
14836 : }
14837 : break;
14838 0 : case CFN_COND_SUB:
14839 0 : if (call_expr_nargs (_p2) == 4)
14840 : {
14841 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14842 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14843 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14844 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14845 0 : {
14846 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14847 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14848 0 : if (res) return res;
14849 : }
14850 : }
14851 : break;
14852 0 : case CFN_COND_XOR:
14853 0 : if (call_expr_nargs (_p2) == 4)
14854 : {
14855 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14856 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14857 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14858 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14859 0 : {
14860 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14861 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14862 0 : if (res) return res;
14863 : }
14864 : }
14865 : break;
14866 0 : case CFN_COND_COPYSIGN:
14867 0 : if (call_expr_nargs (_p2) == 4)
14868 : {
14869 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14870 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14871 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14872 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14873 0 : {
14874 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14875 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14876 0 : if (res) return res;
14877 : }
14878 : }
14879 : break;
14880 0 : case CFN_COND_FMAX:
14881 0 : if (call_expr_nargs (_p2) == 4)
14882 : {
14883 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14884 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14885 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14886 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14887 0 : {
14888 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14889 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14890 0 : if (res) return res;
14891 : }
14892 : }
14893 : break;
14894 0 : case CFN_COND_FMIN:
14895 0 : if (call_expr_nargs (_p2) == 4)
14896 : {
14897 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14898 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14899 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14900 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14901 0 : {
14902 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14903 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14904 0 : if (res) return res;
14905 : }
14906 : }
14907 : break;
14908 0 : case CFN_COND_RDIV:
14909 0 : if (call_expr_nargs (_p2) == 4)
14910 : {
14911 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14912 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14913 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14914 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14915 0 : {
14916 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14917 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14918 0 : if (res) return res;
14919 : }
14920 : }
14921 : break;
14922 : default:;
14923 : }
14924 : break;
14925 385472 : default:;
14926 : }
14927 385472 : switch (TREE_CODE (_p1))
14928 : {
14929 0 : case VIEW_CONVERT_EXPR:
14930 0 : {
14931 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14932 0 : switch (TREE_CODE (_q30))
14933 : {
14934 0 : case CALL_EXPR:
14935 0 : switch (get_call_combined_fn (_q30))
14936 : {
14937 0 : case CFN_COND_FMA:
14938 0 : if (call_expr_nargs (_q30) == 5)
14939 : {
14940 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14941 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14942 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14943 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14944 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14945 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14946 : {
14947 0 : {
14948 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14949 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14950 0 : if (res) return res;
14951 : }
14952 : }
14953 : }
14954 : break;
14955 0 : case CFN_COND_FMS:
14956 0 : if (call_expr_nargs (_q30) == 5)
14957 : {
14958 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14959 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14960 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14961 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14962 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14963 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14964 : {
14965 0 : {
14966 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14967 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14968 0 : if (res) return res;
14969 : }
14970 : }
14971 : }
14972 : break;
14973 0 : case CFN_COND_FNMA:
14974 0 : if (call_expr_nargs (_q30) == 5)
14975 : {
14976 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14977 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14978 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14979 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14980 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14981 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14982 : {
14983 0 : {
14984 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14985 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14986 0 : if (res) return res;
14987 : }
14988 : }
14989 : }
14990 : break;
14991 0 : case CFN_COND_FNMS:
14992 0 : if (call_expr_nargs (_q30) == 5)
14993 : {
14994 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14995 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14996 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14997 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14998 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14999 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15000 : {
15001 0 : {
15002 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15003 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15004 0 : if (res) return res;
15005 : }
15006 : }
15007 : }
15008 : break;
15009 : default:;
15010 : }
15011 : break;
15012 : default:;
15013 : }
15014 : break;
15015 : }
15016 12 : case CALL_EXPR:
15017 12 : switch (get_call_combined_fn (_p1))
15018 : {
15019 0 : case CFN_COND_FMA:
15020 0 : if (call_expr_nargs (_p1) == 5)
15021 : {
15022 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15023 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15024 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15025 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15026 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15027 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15028 : {
15029 0 : {
15030 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15031 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15032 0 : if (res) return res;
15033 : }
15034 : }
15035 : }
15036 : break;
15037 0 : case CFN_COND_FMS:
15038 0 : if (call_expr_nargs (_p1) == 5)
15039 : {
15040 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15041 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15042 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15043 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15044 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15045 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15046 : {
15047 0 : {
15048 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15049 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15050 0 : if (res) return res;
15051 : }
15052 : }
15053 : }
15054 : break;
15055 0 : case CFN_COND_FNMA:
15056 0 : if (call_expr_nargs (_p1) == 5)
15057 : {
15058 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15059 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15060 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15061 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15062 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15063 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15064 : {
15065 0 : {
15066 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15067 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15068 0 : if (res) return res;
15069 : }
15070 : }
15071 : }
15072 : break;
15073 0 : case CFN_COND_FNMS:
15074 0 : if (call_expr_nargs (_p1) == 5)
15075 : {
15076 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15077 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15078 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15079 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15080 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15081 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15082 : {
15083 0 : {
15084 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15085 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15086 0 : if (res) return res;
15087 : }
15088 : }
15089 : }
15090 : break;
15091 : default:;
15092 : }
15093 : break;
15094 385472 : default:;
15095 : }
15096 385472 : switch (TREE_CODE (_p2))
15097 : {
15098 0 : case VIEW_CONVERT_EXPR:
15099 0 : {
15100 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15101 0 : switch (TREE_CODE (_q40))
15102 : {
15103 0 : case CALL_EXPR:
15104 0 : switch (get_call_combined_fn (_q40))
15105 : {
15106 0 : case CFN_COND_FMA:
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_FMA);
15117 0 : if (res) return res;
15118 : }
15119 : }
15120 : break;
15121 0 : case CFN_COND_FMS:
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_FMS);
15132 0 : if (res) return res;
15133 : }
15134 : }
15135 : break;
15136 0 : case CFN_COND_FNMA:
15137 0 : if (call_expr_nargs (_q40) == 5)
15138 : {
15139 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15140 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15141 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15142 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15143 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15144 0 : {
15145 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15146 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15147 0 : if (res) return res;
15148 : }
15149 : }
15150 : break;
15151 0 : case CFN_COND_FNMS:
15152 0 : if (call_expr_nargs (_q40) == 5)
15153 : {
15154 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15155 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15156 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15157 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15158 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15159 0 : {
15160 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15161 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15162 0 : if (res) return res;
15163 : }
15164 : }
15165 : break;
15166 : default:;
15167 : }
15168 : break;
15169 : default:;
15170 : }
15171 : break;
15172 : }
15173 12 : case CALL_EXPR:
15174 12 : switch (get_call_combined_fn (_p2))
15175 : {
15176 0 : case CFN_COND_FMA:
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_FMA);
15187 0 : if (res) return res;
15188 : }
15189 : }
15190 : break;
15191 0 : case CFN_COND_FMS:
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_FMS);
15202 0 : if (res) return res;
15203 : }
15204 : }
15205 : break;
15206 0 : case CFN_COND_FNMA:
15207 0 : if (call_expr_nargs (_p2) == 5)
15208 : {
15209 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15210 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15211 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15212 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15213 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15214 0 : {
15215 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15216 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15217 0 : if (res) return res;
15218 : }
15219 : }
15220 : break;
15221 0 : case CFN_COND_FNMS:
15222 0 : if (call_expr_nargs (_p2) == 5)
15223 : {
15224 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15225 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15226 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15227 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15228 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15229 0 : {
15230 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15231 0 : tree res = generic_simplify_542 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15232 0 : if (res) return res;
15233 : }
15234 : }
15235 : break;
15236 : default:;
15237 : }
15238 : break;
15239 385472 : default:;
15240 : }
15241 385472 : switch (TREE_CODE (_p1))
15242 : {
15243 0 : case VIEW_CONVERT_EXPR:
15244 0 : {
15245 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15246 0 : switch (TREE_CODE (_q30))
15247 : {
15248 0 : case CALL_EXPR:
15249 0 : switch (get_call_combined_fn (_q30))
15250 : {
15251 0 : case CFN_COND_LEN_ADD:
15252 0 : if (call_expr_nargs (_q30) == 6)
15253 : {
15254 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15255 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15256 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15257 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15258 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15259 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15260 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15261 : {
15262 0 : {
15263 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15264 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15265 0 : if (res) return res;
15266 : }
15267 : }
15268 : }
15269 : break;
15270 0 : case CFN_COND_LEN_AND:
15271 0 : if (call_expr_nargs (_q30) == 6)
15272 : {
15273 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15274 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15275 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15276 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15277 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15278 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15279 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15280 : {
15281 0 : {
15282 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15283 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15284 0 : if (res) return res;
15285 : }
15286 : }
15287 : }
15288 : break;
15289 0 : case CFN_COND_LEN_DIV:
15290 0 : if (call_expr_nargs (_q30) == 6)
15291 : {
15292 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15293 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15294 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15295 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15296 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15297 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15298 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15299 : {
15300 0 : {
15301 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15302 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15303 0 : if (res) return res;
15304 : }
15305 : }
15306 : }
15307 : break;
15308 0 : case CFN_COND_LEN_IOR:
15309 0 : if (call_expr_nargs (_q30) == 6)
15310 : {
15311 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15312 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15313 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15314 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15315 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15316 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15317 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15318 : {
15319 0 : {
15320 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15321 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15322 0 : if (res) return res;
15323 : }
15324 : }
15325 : }
15326 : break;
15327 0 : case CFN_COND_LEN_MAX:
15328 0 : if (call_expr_nargs (_q30) == 6)
15329 : {
15330 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15331 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15332 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15333 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15334 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15335 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15336 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15337 : {
15338 0 : {
15339 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15340 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15341 0 : if (res) return res;
15342 : }
15343 : }
15344 : }
15345 : break;
15346 0 : case CFN_COND_LEN_MIN:
15347 0 : if (call_expr_nargs (_q30) == 6)
15348 : {
15349 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15350 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15351 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15352 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15353 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15354 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15355 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15356 : {
15357 0 : {
15358 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15359 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15360 0 : if (res) return res;
15361 : }
15362 : }
15363 : }
15364 : break;
15365 0 : case CFN_COND_LEN_MOD:
15366 0 : if (call_expr_nargs (_q30) == 6)
15367 : {
15368 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15369 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15370 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15371 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15372 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15373 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15374 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15375 : {
15376 0 : {
15377 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15378 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15379 0 : if (res) return res;
15380 : }
15381 : }
15382 : }
15383 : break;
15384 0 : case CFN_COND_LEN_MUL:
15385 0 : if (call_expr_nargs (_q30) == 6)
15386 : {
15387 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15388 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15389 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15390 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15391 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15392 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15393 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15394 : {
15395 0 : {
15396 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15397 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15398 0 : if (res) return res;
15399 : }
15400 : }
15401 : }
15402 : break;
15403 0 : case CFN_COND_LEN_SHL:
15404 0 : if (call_expr_nargs (_q30) == 6)
15405 : {
15406 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15407 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15408 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15409 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15410 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15411 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15412 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15413 : {
15414 0 : {
15415 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15416 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15417 0 : if (res) return res;
15418 : }
15419 : }
15420 : }
15421 : break;
15422 0 : case CFN_COND_LEN_SHR:
15423 0 : if (call_expr_nargs (_q30) == 6)
15424 : {
15425 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15426 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15427 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15428 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15429 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15430 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15431 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15432 : {
15433 0 : {
15434 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15435 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15436 0 : if (res) return res;
15437 : }
15438 : }
15439 : }
15440 : break;
15441 0 : case CFN_COND_LEN_SUB:
15442 0 : if (call_expr_nargs (_q30) == 6)
15443 : {
15444 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15445 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15446 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15447 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15448 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15449 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15450 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15451 : {
15452 0 : {
15453 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15454 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15455 0 : if (res) return res;
15456 : }
15457 : }
15458 : }
15459 : break;
15460 0 : case CFN_COND_LEN_XOR:
15461 0 : if (call_expr_nargs (_q30) == 6)
15462 : {
15463 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15464 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15465 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15466 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15467 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15468 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15469 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15470 : {
15471 0 : {
15472 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15473 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15474 0 : if (res) return res;
15475 : }
15476 : }
15477 : }
15478 : break;
15479 0 : case CFN_COND_LEN_FMAX:
15480 0 : if (call_expr_nargs (_q30) == 6)
15481 : {
15482 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15483 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15484 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15485 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15486 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15487 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15488 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15489 : {
15490 0 : {
15491 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15492 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15493 0 : if (res) return res;
15494 : }
15495 : }
15496 : }
15497 : break;
15498 0 : case CFN_COND_LEN_FMIN:
15499 0 : if (call_expr_nargs (_q30) == 6)
15500 : {
15501 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15502 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15503 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15504 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15505 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15506 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15507 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15508 : {
15509 0 : {
15510 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15511 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15512 0 : if (res) return res;
15513 : }
15514 : }
15515 : }
15516 : break;
15517 0 : case CFN_COND_LEN_RDIV:
15518 0 : if (call_expr_nargs (_q30) == 6)
15519 : {
15520 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15521 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15522 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15523 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15524 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15525 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15526 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15527 : {
15528 0 : {
15529 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15530 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15531 0 : if (res) return res;
15532 : }
15533 : }
15534 : }
15535 : break;
15536 0 : case CFN_COND_LEN_COPYSIGN:
15537 0 : if (call_expr_nargs (_q30) == 6)
15538 : {
15539 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15540 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15541 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15542 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15543 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15544 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15545 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15546 : {
15547 0 : {
15548 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15549 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15550 0 : if (res) return res;
15551 : }
15552 : }
15553 : }
15554 : break;
15555 : default:;
15556 : }
15557 : break;
15558 : default:;
15559 : }
15560 : break;
15561 : }
15562 12 : case CALL_EXPR:
15563 12 : switch (get_call_combined_fn (_p1))
15564 : {
15565 0 : case CFN_COND_LEN_ADD:
15566 0 : if (call_expr_nargs (_p1) == 6)
15567 : {
15568 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15569 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15570 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15571 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15572 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15573 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15574 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15575 : {
15576 0 : {
15577 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15578 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15579 0 : if (res) return res;
15580 : }
15581 : }
15582 : }
15583 : break;
15584 0 : case CFN_COND_LEN_AND:
15585 0 : if (call_expr_nargs (_p1) == 6)
15586 : {
15587 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15588 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15589 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15590 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15591 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15592 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15593 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15594 : {
15595 0 : {
15596 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15597 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15598 0 : if (res) return res;
15599 : }
15600 : }
15601 : }
15602 : break;
15603 0 : case CFN_COND_LEN_DIV:
15604 0 : if (call_expr_nargs (_p1) == 6)
15605 : {
15606 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15607 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15608 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15609 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15610 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15611 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15612 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15613 : {
15614 0 : {
15615 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15616 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15617 0 : if (res) return res;
15618 : }
15619 : }
15620 : }
15621 : break;
15622 0 : case CFN_COND_LEN_IOR:
15623 0 : if (call_expr_nargs (_p1) == 6)
15624 : {
15625 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15626 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15627 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15628 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15629 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15630 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15631 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15632 : {
15633 0 : {
15634 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15635 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15636 0 : if (res) return res;
15637 : }
15638 : }
15639 : }
15640 : break;
15641 0 : case CFN_COND_LEN_MAX:
15642 0 : if (call_expr_nargs (_p1) == 6)
15643 : {
15644 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15645 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15646 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15647 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15648 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15649 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15650 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15651 : {
15652 0 : {
15653 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15654 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15655 0 : if (res) return res;
15656 : }
15657 : }
15658 : }
15659 : break;
15660 0 : case CFN_COND_LEN_MIN:
15661 0 : if (call_expr_nargs (_p1) == 6)
15662 : {
15663 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15664 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15665 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15666 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15667 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15668 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15669 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15670 : {
15671 0 : {
15672 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15673 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15674 0 : if (res) return res;
15675 : }
15676 : }
15677 : }
15678 : break;
15679 0 : case CFN_COND_LEN_MOD:
15680 0 : if (call_expr_nargs (_p1) == 6)
15681 : {
15682 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15683 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15684 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15685 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15686 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15687 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15688 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15689 : {
15690 0 : {
15691 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15692 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15693 0 : if (res) return res;
15694 : }
15695 : }
15696 : }
15697 : break;
15698 0 : case CFN_COND_LEN_MUL:
15699 0 : if (call_expr_nargs (_p1) == 6)
15700 : {
15701 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15702 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15703 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15704 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15705 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15706 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15707 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15708 : {
15709 0 : {
15710 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15711 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15712 0 : if (res) return res;
15713 : }
15714 : }
15715 : }
15716 : break;
15717 0 : case CFN_COND_LEN_SHL:
15718 0 : if (call_expr_nargs (_p1) == 6)
15719 : {
15720 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15721 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15722 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15723 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15724 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15725 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15726 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15727 : {
15728 0 : {
15729 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15730 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15731 0 : if (res) return res;
15732 : }
15733 : }
15734 : }
15735 : break;
15736 0 : case CFN_COND_LEN_SHR:
15737 0 : if (call_expr_nargs (_p1) == 6)
15738 : {
15739 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15740 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15741 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15742 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15743 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15744 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15745 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15746 : {
15747 0 : {
15748 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15749 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15750 0 : if (res) return res;
15751 : }
15752 : }
15753 : }
15754 : break;
15755 0 : case CFN_COND_LEN_SUB:
15756 0 : if (call_expr_nargs (_p1) == 6)
15757 : {
15758 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15759 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15760 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15761 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15762 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15763 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15764 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15765 : {
15766 0 : {
15767 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15768 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15769 0 : if (res) return res;
15770 : }
15771 : }
15772 : }
15773 : break;
15774 0 : case CFN_COND_LEN_XOR:
15775 0 : if (call_expr_nargs (_p1) == 6)
15776 : {
15777 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15778 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15779 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15780 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15781 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15782 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15783 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15784 : {
15785 0 : {
15786 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15787 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15788 0 : if (res) return res;
15789 : }
15790 : }
15791 : }
15792 : break;
15793 0 : case CFN_COND_LEN_FMAX:
15794 0 : if (call_expr_nargs (_p1) == 6)
15795 : {
15796 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15797 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15798 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15799 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15800 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15801 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15802 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15803 : {
15804 0 : {
15805 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15806 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15807 0 : if (res) return res;
15808 : }
15809 : }
15810 : }
15811 : break;
15812 0 : case CFN_COND_LEN_FMIN:
15813 0 : if (call_expr_nargs (_p1) == 6)
15814 : {
15815 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15816 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15817 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15818 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15819 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15820 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15821 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15822 : {
15823 0 : {
15824 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15825 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15826 0 : if (res) return res;
15827 : }
15828 : }
15829 : }
15830 : break;
15831 0 : case CFN_COND_LEN_RDIV:
15832 0 : if (call_expr_nargs (_p1) == 6)
15833 : {
15834 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15835 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15836 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15837 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15838 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15839 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15840 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15841 : {
15842 0 : {
15843 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15844 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15845 0 : if (res) return res;
15846 : }
15847 : }
15848 : }
15849 : break;
15850 0 : case CFN_COND_LEN_COPYSIGN:
15851 0 : if (call_expr_nargs (_p1) == 6)
15852 : {
15853 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15854 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15855 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15856 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15857 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15858 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15859 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15860 : {
15861 0 : {
15862 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15863 0 : tree res = generic_simplify_543 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15864 0 : if (res) return res;
15865 : }
15866 : }
15867 : }
15868 : break;
15869 : default:;
15870 : }
15871 : break;
15872 385472 : default:;
15873 : }
15874 385472 : switch (TREE_CODE (_p2))
15875 : {
15876 0 : case VIEW_CONVERT_EXPR:
15877 0 : {
15878 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15879 0 : switch (TREE_CODE (_q40))
15880 : {
15881 0 : case CALL_EXPR:
15882 0 : switch (get_call_combined_fn (_q40))
15883 : {
15884 0 : case CFN_COND_LEN_ADD:
15885 0 : if (call_expr_nargs (_q40) == 6)
15886 : {
15887 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15888 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15889 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15890 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15891 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15892 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15893 0 : {
15894 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15895 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15896 0 : if (res) return res;
15897 : }
15898 : }
15899 : break;
15900 0 : case CFN_COND_LEN_AND:
15901 0 : if (call_expr_nargs (_q40) == 6)
15902 : {
15903 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15904 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15905 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15906 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15907 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15908 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15909 0 : {
15910 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15911 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15912 0 : if (res) return res;
15913 : }
15914 : }
15915 : break;
15916 0 : case CFN_COND_LEN_DIV:
15917 0 : if (call_expr_nargs (_q40) == 6)
15918 : {
15919 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15920 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15921 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15922 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15923 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15924 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15925 0 : {
15926 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15927 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15928 0 : if (res) return res;
15929 : }
15930 : }
15931 : break;
15932 0 : case CFN_COND_LEN_IOR:
15933 0 : if (call_expr_nargs (_q40) == 6)
15934 : {
15935 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15936 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15937 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15938 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15939 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15940 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15941 0 : {
15942 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15943 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15944 0 : if (res) return res;
15945 : }
15946 : }
15947 : break;
15948 0 : case CFN_COND_LEN_MAX:
15949 0 : if (call_expr_nargs (_q40) == 6)
15950 : {
15951 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15952 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15953 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15954 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15955 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15956 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15957 0 : {
15958 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15959 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15960 0 : if (res) return res;
15961 : }
15962 : }
15963 : break;
15964 0 : case CFN_COND_LEN_MIN:
15965 0 : if (call_expr_nargs (_q40) == 6)
15966 : {
15967 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15968 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15969 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15970 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15971 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15972 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15973 0 : {
15974 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15975 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15976 0 : if (res) return res;
15977 : }
15978 : }
15979 : break;
15980 0 : case CFN_COND_LEN_MOD:
15981 0 : if (call_expr_nargs (_q40) == 6)
15982 : {
15983 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15984 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15985 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15986 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15987 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15988 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15989 0 : {
15990 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15991 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15992 0 : if (res) return res;
15993 : }
15994 : }
15995 : break;
15996 0 : case CFN_COND_LEN_MUL:
15997 0 : if (call_expr_nargs (_q40) == 6)
15998 : {
15999 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16000 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16001 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16002 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16003 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16004 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16005 0 : {
16006 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16007 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16008 0 : if (res) return res;
16009 : }
16010 : }
16011 : break;
16012 0 : case CFN_COND_LEN_SHL:
16013 0 : if (call_expr_nargs (_q40) == 6)
16014 : {
16015 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16016 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16017 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16018 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16019 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16020 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16021 0 : {
16022 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16023 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16024 0 : if (res) return res;
16025 : }
16026 : }
16027 : break;
16028 0 : case CFN_COND_LEN_SHR:
16029 0 : if (call_expr_nargs (_q40) == 6)
16030 : {
16031 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16032 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16033 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16034 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16035 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16036 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16037 0 : {
16038 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16039 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16040 0 : if (res) return res;
16041 : }
16042 : }
16043 : break;
16044 0 : case CFN_COND_LEN_SUB:
16045 0 : if (call_expr_nargs (_q40) == 6)
16046 : {
16047 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16048 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16049 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16050 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16051 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16052 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16053 0 : {
16054 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16055 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16056 0 : if (res) return res;
16057 : }
16058 : }
16059 : break;
16060 0 : case CFN_COND_LEN_XOR:
16061 0 : if (call_expr_nargs (_q40) == 6)
16062 : {
16063 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16064 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16065 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16066 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16067 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16068 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16069 0 : {
16070 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16071 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16072 0 : if (res) return res;
16073 : }
16074 : }
16075 : break;
16076 0 : case CFN_COND_LEN_FMAX:
16077 0 : if (call_expr_nargs (_q40) == 6)
16078 : {
16079 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16080 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16081 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16082 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16083 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16084 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16085 0 : {
16086 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16087 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16088 0 : if (res) return res;
16089 : }
16090 : }
16091 : break;
16092 0 : case CFN_COND_LEN_FMIN:
16093 0 : if (call_expr_nargs (_q40) == 6)
16094 : {
16095 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16096 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16097 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16098 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16099 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16100 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16101 0 : {
16102 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16103 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16104 0 : if (res) return res;
16105 : }
16106 : }
16107 : break;
16108 0 : case CFN_COND_LEN_RDIV:
16109 0 : if (call_expr_nargs (_q40) == 6)
16110 : {
16111 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16112 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16113 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16114 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16115 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16116 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16117 0 : {
16118 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16119 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16120 0 : if (res) return res;
16121 : }
16122 : }
16123 : break;
16124 0 : case CFN_COND_LEN_COPYSIGN:
16125 0 : if (call_expr_nargs (_q40) == 6)
16126 : {
16127 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16128 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16129 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16130 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16131 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16132 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16133 0 : {
16134 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16135 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16136 0 : if (res) return res;
16137 : }
16138 : }
16139 : break;
16140 : default:;
16141 : }
16142 : break;
16143 : default:;
16144 : }
16145 : break;
16146 : }
16147 12 : case CALL_EXPR:
16148 12 : switch (get_call_combined_fn (_p2))
16149 : {
16150 0 : case CFN_COND_LEN_ADD:
16151 0 : if (call_expr_nargs (_p2) == 6)
16152 : {
16153 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16154 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16155 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16156 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16157 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16158 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16159 0 : {
16160 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16161 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16162 0 : if (res) return res;
16163 : }
16164 : }
16165 : break;
16166 0 : case CFN_COND_LEN_AND:
16167 0 : if (call_expr_nargs (_p2) == 6)
16168 : {
16169 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16170 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16171 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16172 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16173 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16174 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16175 0 : {
16176 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16177 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16178 0 : if (res) return res;
16179 : }
16180 : }
16181 : break;
16182 0 : case CFN_COND_LEN_DIV:
16183 0 : if (call_expr_nargs (_p2) == 6)
16184 : {
16185 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16186 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16187 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16188 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16189 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16190 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16191 0 : {
16192 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16193 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16194 0 : if (res) return res;
16195 : }
16196 : }
16197 : break;
16198 0 : case CFN_COND_LEN_IOR:
16199 0 : if (call_expr_nargs (_p2) == 6)
16200 : {
16201 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16202 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16203 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16204 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16205 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16206 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16207 0 : {
16208 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16209 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16210 0 : if (res) return res;
16211 : }
16212 : }
16213 : break;
16214 0 : case CFN_COND_LEN_MAX:
16215 0 : if (call_expr_nargs (_p2) == 6)
16216 : {
16217 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16218 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16219 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16220 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16221 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16222 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16223 0 : {
16224 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16225 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16226 0 : if (res) return res;
16227 : }
16228 : }
16229 : break;
16230 0 : case CFN_COND_LEN_MIN:
16231 0 : if (call_expr_nargs (_p2) == 6)
16232 : {
16233 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16234 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16235 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16236 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16237 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16238 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16239 0 : {
16240 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16241 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16242 0 : if (res) return res;
16243 : }
16244 : }
16245 : break;
16246 0 : case CFN_COND_LEN_MOD:
16247 0 : if (call_expr_nargs (_p2) == 6)
16248 : {
16249 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16250 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16251 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16252 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16253 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16254 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16255 0 : {
16256 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16257 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16258 0 : if (res) return res;
16259 : }
16260 : }
16261 : break;
16262 0 : case CFN_COND_LEN_MUL:
16263 0 : if (call_expr_nargs (_p2) == 6)
16264 : {
16265 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16266 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16267 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16268 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16269 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16270 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16271 0 : {
16272 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16273 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16274 0 : if (res) return res;
16275 : }
16276 : }
16277 : break;
16278 0 : case CFN_COND_LEN_SHL:
16279 0 : if (call_expr_nargs (_p2) == 6)
16280 : {
16281 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16282 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16283 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16284 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16285 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16286 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16287 0 : {
16288 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16289 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16290 0 : if (res) return res;
16291 : }
16292 : }
16293 : break;
16294 0 : case CFN_COND_LEN_SHR:
16295 0 : if (call_expr_nargs (_p2) == 6)
16296 : {
16297 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16298 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16299 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16300 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16301 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16302 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16303 0 : {
16304 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16305 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16306 0 : if (res) return res;
16307 : }
16308 : }
16309 : break;
16310 0 : case CFN_COND_LEN_SUB:
16311 0 : if (call_expr_nargs (_p2) == 6)
16312 : {
16313 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16314 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16315 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16316 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16317 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16318 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16319 0 : {
16320 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16321 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16322 0 : if (res) return res;
16323 : }
16324 : }
16325 : break;
16326 0 : case CFN_COND_LEN_XOR:
16327 0 : if (call_expr_nargs (_p2) == 6)
16328 : {
16329 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16330 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16331 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16332 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16333 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16334 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16335 0 : {
16336 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16337 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16338 0 : if (res) return res;
16339 : }
16340 : }
16341 : break;
16342 0 : case CFN_COND_LEN_FMAX:
16343 0 : if (call_expr_nargs (_p2) == 6)
16344 : {
16345 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16346 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16347 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16348 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16349 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16350 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16351 0 : {
16352 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16353 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16354 0 : if (res) return res;
16355 : }
16356 : }
16357 : break;
16358 0 : case CFN_COND_LEN_FMIN:
16359 0 : if (call_expr_nargs (_p2) == 6)
16360 : {
16361 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16362 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16363 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16364 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16365 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16366 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16367 0 : {
16368 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16369 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16370 0 : if (res) return res;
16371 : }
16372 : }
16373 : break;
16374 0 : case CFN_COND_LEN_RDIV:
16375 0 : if (call_expr_nargs (_p2) == 6)
16376 : {
16377 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16378 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16379 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16380 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16381 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16382 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16383 0 : {
16384 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16385 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16386 0 : if (res) return res;
16387 : }
16388 : }
16389 : break;
16390 0 : case CFN_COND_LEN_COPYSIGN:
16391 0 : if (call_expr_nargs (_p2) == 6)
16392 : {
16393 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16394 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16395 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16396 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16397 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16398 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16399 0 : {
16400 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16401 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16402 0 : if (res) return res;
16403 : }
16404 : }
16405 : break;
16406 : default:;
16407 : }
16408 : break;
16409 385472 : default:;
16410 : }
16411 385472 : switch (TREE_CODE (_p1))
16412 : {
16413 0 : case VIEW_CONVERT_EXPR:
16414 0 : {
16415 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16416 0 : switch (TREE_CODE (_q30))
16417 : {
16418 0 : case CALL_EXPR:
16419 0 : switch (get_call_combined_fn (_q30))
16420 : {
16421 0 : case CFN_COND_LEN_FMA:
16422 0 : if (call_expr_nargs (_q30) == 7)
16423 : {
16424 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16425 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16426 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16427 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16428 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16429 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16430 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16431 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16432 : {
16433 0 : {
16434 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16435 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16436 0 : if (res) return res;
16437 : }
16438 : }
16439 : }
16440 : break;
16441 0 : case CFN_COND_LEN_FMS:
16442 0 : if (call_expr_nargs (_q30) == 7)
16443 : {
16444 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16445 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16446 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16447 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16448 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16449 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16450 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16451 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16452 : {
16453 0 : {
16454 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16455 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16456 0 : if (res) return res;
16457 : }
16458 : }
16459 : }
16460 : break;
16461 0 : case CFN_COND_LEN_FNMA:
16462 0 : if (call_expr_nargs (_q30) == 7)
16463 : {
16464 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16465 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16466 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16467 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16468 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16469 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16470 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16471 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16472 : {
16473 0 : {
16474 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16475 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16476 0 : if (res) return res;
16477 : }
16478 : }
16479 : }
16480 : break;
16481 0 : case CFN_COND_LEN_FNMS:
16482 0 : if (call_expr_nargs (_q30) == 7)
16483 : {
16484 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16485 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16486 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16487 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16488 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16489 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16490 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16491 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16492 : {
16493 0 : {
16494 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16495 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16496 0 : if (res) return res;
16497 : }
16498 : }
16499 : }
16500 : break;
16501 : default:;
16502 : }
16503 : break;
16504 : default:;
16505 : }
16506 : break;
16507 : }
16508 12 : case CALL_EXPR:
16509 12 : switch (get_call_combined_fn (_p1))
16510 : {
16511 0 : case CFN_COND_LEN_FMA:
16512 0 : if (call_expr_nargs (_p1) == 7)
16513 : {
16514 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16515 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16516 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16517 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16518 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16519 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16520 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16521 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16522 : {
16523 0 : {
16524 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16525 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16526 0 : if (res) return res;
16527 : }
16528 : }
16529 : }
16530 : break;
16531 0 : case CFN_COND_LEN_FMS:
16532 0 : if (call_expr_nargs (_p1) == 7)
16533 : {
16534 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16535 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16536 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16537 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16538 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16539 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16540 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16541 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16542 : {
16543 0 : {
16544 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16545 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16546 0 : if (res) return res;
16547 : }
16548 : }
16549 : }
16550 : break;
16551 0 : case CFN_COND_LEN_FNMA:
16552 0 : if (call_expr_nargs (_p1) == 7)
16553 : {
16554 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16555 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16556 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16557 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16558 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16559 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16560 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16561 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16562 : {
16563 0 : {
16564 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16565 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16566 0 : if (res) return res;
16567 : }
16568 : }
16569 : }
16570 : break;
16571 0 : case CFN_COND_LEN_FNMS:
16572 0 : if (call_expr_nargs (_p1) == 7)
16573 : {
16574 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16575 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16576 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16577 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16578 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16579 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16580 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16581 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16582 : {
16583 0 : {
16584 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16585 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16586 0 : if (res) return res;
16587 : }
16588 : }
16589 : }
16590 : break;
16591 : default:;
16592 : }
16593 : break;
16594 385472 : default:;
16595 : }
16596 385472 : switch (TREE_CODE (_p2))
16597 : {
16598 0 : case VIEW_CONVERT_EXPR:
16599 0 : {
16600 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16601 0 : switch (TREE_CODE (_q40))
16602 : {
16603 0 : case CALL_EXPR:
16604 0 : switch (get_call_combined_fn (_q40))
16605 : {
16606 0 : case CFN_COND_LEN_FMA:
16607 0 : if (call_expr_nargs (_q40) == 7)
16608 : {
16609 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16610 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16611 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16612 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16613 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16614 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16615 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16616 0 : {
16617 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16618 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16619 0 : if (res) return res;
16620 : }
16621 : }
16622 : break;
16623 0 : case CFN_COND_LEN_FMS:
16624 0 : if (call_expr_nargs (_q40) == 7)
16625 : {
16626 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16627 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16628 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16629 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16630 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16631 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16632 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16633 0 : {
16634 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16635 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16636 0 : if (res) return res;
16637 : }
16638 : }
16639 : break;
16640 0 : case CFN_COND_LEN_FNMA:
16641 0 : if (call_expr_nargs (_q40) == 7)
16642 : {
16643 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16644 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16645 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16646 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16647 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16648 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16649 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16650 0 : {
16651 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16652 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16653 0 : if (res) return res;
16654 : }
16655 : }
16656 : break;
16657 0 : case CFN_COND_LEN_FNMS:
16658 0 : if (call_expr_nargs (_q40) == 7)
16659 : {
16660 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16661 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16662 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16663 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16664 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16665 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16666 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16667 0 : {
16668 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16669 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16670 0 : if (res) return res;
16671 : }
16672 : }
16673 : break;
16674 : default:;
16675 : }
16676 : break;
16677 : default:;
16678 : }
16679 : break;
16680 : }
16681 12 : case CALL_EXPR:
16682 12 : switch (get_call_combined_fn (_p2))
16683 : {
16684 0 : case CFN_COND_LEN_FMA:
16685 0 : if (call_expr_nargs (_p2) == 7)
16686 : {
16687 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16688 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16689 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16690 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16691 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16692 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16693 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16694 0 : {
16695 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16696 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16697 0 : if (res) return res;
16698 : }
16699 : }
16700 : break;
16701 0 : case CFN_COND_LEN_FMS:
16702 0 : if (call_expr_nargs (_p2) == 7)
16703 : {
16704 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16705 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16706 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16707 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16708 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16709 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16710 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16711 0 : {
16712 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16713 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16714 0 : if (res) return res;
16715 : }
16716 : }
16717 : break;
16718 0 : case CFN_COND_LEN_FNMA:
16719 0 : if (call_expr_nargs (_p2) == 7)
16720 : {
16721 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16722 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16723 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16724 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16725 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16726 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16727 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16728 0 : {
16729 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16730 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16731 0 : if (res) return res;
16732 : }
16733 : }
16734 : break;
16735 0 : case CFN_COND_LEN_FNMS:
16736 0 : if (call_expr_nargs (_p2) == 7)
16737 : {
16738 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16739 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16740 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16741 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16742 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16743 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16744 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16745 0 : {
16746 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16747 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16748 0 : if (res) return res;
16749 : }
16750 : }
16751 : break;
16752 : default:;
16753 : }
16754 : break;
16755 385472 : default:;
16756 : }
16757 385472 : switch (TREE_CODE (_p1))
16758 : {
16759 12 : case CALL_EXPR:
16760 12 : switch (get_call_combined_fn (_p1))
16761 : {
16762 0 : case CFN_COND_ADD:
16763 0 : if (call_expr_nargs (_p1) == 4)
16764 : {
16765 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16766 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16767 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16768 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16769 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16770 : {
16771 0 : {
16772 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16773 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16774 0 : if (res) return res;
16775 : }
16776 : }
16777 : }
16778 : break;
16779 0 : case CFN_COND_AND:
16780 0 : if (call_expr_nargs (_p1) == 4)
16781 : {
16782 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16783 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16784 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16785 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16786 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16787 : {
16788 0 : {
16789 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16790 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16791 0 : if (res) return res;
16792 : }
16793 : }
16794 : }
16795 : break;
16796 0 : case CFN_COND_DIV:
16797 0 : if (call_expr_nargs (_p1) == 4)
16798 : {
16799 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16800 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16801 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16802 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16803 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16804 : {
16805 0 : {
16806 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16807 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16808 0 : if (res) return res;
16809 : }
16810 : }
16811 : }
16812 : break;
16813 0 : case CFN_COND_FMA:
16814 0 : if (call_expr_nargs (_p1) == 5)
16815 : {
16816 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16817 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16818 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16819 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16820 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16821 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16822 : {
16823 0 : {
16824 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16825 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16826 0 : if (res) return res;
16827 : }
16828 : }
16829 : }
16830 : break;
16831 0 : case CFN_COND_FMS:
16832 0 : if (call_expr_nargs (_p1) == 5)
16833 : {
16834 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16835 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16836 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16837 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16838 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16839 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16840 : {
16841 0 : {
16842 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16843 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16844 0 : if (res) return res;
16845 : }
16846 : }
16847 : }
16848 : break;
16849 0 : case CFN_COND_IOR:
16850 0 : if (call_expr_nargs (_p1) == 4)
16851 : {
16852 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16853 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16854 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16855 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16856 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16857 : {
16858 0 : {
16859 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16860 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16861 0 : if (res) return res;
16862 : }
16863 : }
16864 : }
16865 : break;
16866 0 : case CFN_COND_MAX:
16867 0 : if (call_expr_nargs (_p1) == 4)
16868 : {
16869 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16870 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16871 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16872 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16873 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16874 : {
16875 0 : {
16876 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16877 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16878 0 : if (res) return res;
16879 : }
16880 : }
16881 : }
16882 : break;
16883 0 : case CFN_COND_MIN:
16884 0 : if (call_expr_nargs (_p1) == 4)
16885 : {
16886 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16887 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16888 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16889 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16890 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16891 : {
16892 0 : {
16893 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16894 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
16895 0 : if (res) return res;
16896 : }
16897 : }
16898 : }
16899 : break;
16900 0 : case CFN_COND_MOD:
16901 0 : if (call_expr_nargs (_p1) == 4)
16902 : {
16903 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16904 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16905 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16906 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16907 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16908 : {
16909 0 : {
16910 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16911 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
16912 0 : if (res) return res;
16913 : }
16914 : }
16915 : }
16916 : break;
16917 0 : case CFN_COND_MUL:
16918 0 : if (call_expr_nargs (_p1) == 4)
16919 : {
16920 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16921 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16922 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16923 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16924 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16925 : {
16926 0 : {
16927 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16928 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
16929 0 : if (res) return res;
16930 : }
16931 : }
16932 : }
16933 : break;
16934 0 : case CFN_COND_SHL:
16935 0 : if (call_expr_nargs (_p1) == 4)
16936 : {
16937 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16938 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16939 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16940 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16941 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16942 : {
16943 0 : {
16944 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16945 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
16946 0 : if (res) return res;
16947 : }
16948 : }
16949 : }
16950 : break;
16951 0 : case CFN_COND_SHR:
16952 0 : if (call_expr_nargs (_p1) == 4)
16953 : {
16954 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16955 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16956 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16957 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16958 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16959 : {
16960 0 : {
16961 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16962 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
16963 0 : if (res) return res;
16964 : }
16965 : }
16966 : }
16967 : break;
16968 0 : case CFN_COND_SUB:
16969 0 : if (call_expr_nargs (_p1) == 4)
16970 : {
16971 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16972 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16973 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16974 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16975 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16976 : {
16977 0 : {
16978 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16979 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
16980 0 : if (res) return res;
16981 : }
16982 : }
16983 : }
16984 : break;
16985 0 : case CFN_COND_XOR:
16986 0 : if (call_expr_nargs (_p1) == 4)
16987 : {
16988 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16989 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16990 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16991 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16992 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16993 : {
16994 0 : {
16995 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16996 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
16997 0 : if (res) return res;
16998 : }
16999 : }
17000 : }
17001 : break;
17002 0 : case CFN_COND_COPYSIGN:
17003 0 : if (call_expr_nargs (_p1) == 4)
17004 : {
17005 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17006 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17007 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17008 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17009 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17010 : {
17011 0 : {
17012 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17013 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
17014 0 : if (res) return res;
17015 : }
17016 : }
17017 : }
17018 : break;
17019 0 : case CFN_COND_FMAX:
17020 0 : if (call_expr_nargs (_p1) == 4)
17021 : {
17022 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17023 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17024 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17025 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17026 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17027 : {
17028 0 : {
17029 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17030 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17031 0 : if (res) return res;
17032 : }
17033 : }
17034 : }
17035 : break;
17036 0 : case CFN_COND_FMIN:
17037 0 : if (call_expr_nargs (_p1) == 4)
17038 : {
17039 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17040 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17041 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17042 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17043 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17044 : {
17045 0 : {
17046 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17047 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17048 0 : if (res) return res;
17049 : }
17050 : }
17051 : }
17052 : break;
17053 0 : case CFN_COND_FNMA:
17054 0 : if (call_expr_nargs (_p1) == 5)
17055 : {
17056 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17057 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17058 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17059 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17060 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17061 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17062 : {
17063 0 : {
17064 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17065 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17066 0 : if (res) return res;
17067 : }
17068 : }
17069 : }
17070 : break;
17071 0 : case CFN_COND_FNMS:
17072 0 : if (call_expr_nargs (_p1) == 5)
17073 : {
17074 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17075 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17076 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17077 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17078 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17079 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17080 : {
17081 0 : {
17082 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17083 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17084 0 : if (res) return res;
17085 : }
17086 : }
17087 : }
17088 : break;
17089 0 : case CFN_COND_RDIV:
17090 0 : if (call_expr_nargs (_p1) == 4)
17091 : {
17092 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17093 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17094 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17095 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17096 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17097 : {
17098 0 : {
17099 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17100 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17101 0 : if (res) return res;
17102 : }
17103 : }
17104 : }
17105 : break;
17106 : default:;
17107 : }
17108 : break;
17109 : default:;
17110 : }
17111 : return NULL_TREE;
17112 : }
17113 : #pragma GCC diagnostic pop
|