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 100218001 : tree_zero_one_valued_p (tree t)
11 : {
12 100218001 : const tree type = TREE_TYPE (t);
13 100218001 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 100218001 : if (TREE_SIDE_EFFECTS (t)) return false;
15 94631871 : {
16 94631871 : tree captures[1] ATTRIBUTE_UNUSED = { t };
17 189263742 : if (INTEGRAL_TYPE_P (type)
18 68434398 : && (TYPE_UNSIGNED (type)
19 12345628 : || TYPE_PRECISION (type) > 1)
20 231500617 : && wi::leu_p (tree_nonzero_bits (captures[0]), 1)
21 : )
22 : {
23 481881 : {
24 481881 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 28, __FILE__, __LINE__, false);
25 481881 : return true;
26 : }
27 : }
28 : }
29 94149990 : switch (TREE_CODE (t))
30 : {
31 264399 : case BIT_AND_EXPR:
32 264399 : {
33 264399 : tree _p0 = TREE_OPERAND (t, 0);
34 264399 : tree _p1 = TREE_OPERAND (t, 1);
35 264399 : 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 264399 : 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 44873209 : CASE_CONVERT:
66 44873209 : {
67 44873209 : tree _p0 = TREE_OPERAND (t, 0);
68 44873209 : {
69 44873209 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
70 89739345 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
71 40278251 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
72 35649998 : || TYPE_PRECISION (TREE_TYPE (captures[1])) > 1)
73 40278243 : && INTEGRAL_TYPE_P (type)
74 40278229 : && (TYPE_UNSIGNED (type)
75 1903966 : || TYPE_PRECISION (type) > 1)
76 130024647 : && 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 94149990 : default:;
88 : }
89 94149990 : if (tree_truth_valued_p (t))
90 : {
91 170184 : {
92 170184 : tree captures[1] ATTRIBUTE_UNUSED = { t };
93 170184 : if (INTEGRAL_TYPE_P (type)
94 170184 : && (TYPE_UNSIGNED (type)
95 170105 : || TYPE_PRECISION (type) > 1)
96 : )
97 : {
98 170134 : {
99 170134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 31, __FILE__, __LINE__, false);
100 170134 : 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 (bit_op))
133 : {
134 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
135 0 : if (bit_op == BIT_AND_EXPR
136 : )
137 : {
138 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail81;
139 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail81;
140 0 : {
141 0 : tree _r;
142 0 : _r = build_zero_cst (type);
143 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
144 0 : return _r;
145 : }
146 : next_after_fail81:;
147 : }
148 : else
149 : {
150 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail82;
151 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail82;
152 0 : {
153 0 : tree _r;
154 0 : _r = build_minus_one_cst (type);
155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
156 0 : return _r;
157 : }
158 : next_after_fail82:;
159 : }
160 : return NULL_TREE;
161 : }
162 :
163 : tree
164 1 : generic_simplify_17 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
165 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
166 : {
167 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
168 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail91;
169 1 : {
170 1 : tree res_op0;
171 1 : res_op0 = captures[1];
172 1 : tree res_op1;
173 1 : {
174 1 : tree _o1[1], _r1;
175 1 : _o1[0] = captures[2];
176 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
177 1 : res_op1 = _r1;
178 : }
179 1 : tree _r;
180 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
181 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 66, __FILE__, __LINE__, true);
182 : return _r;
183 : }
184 0 : next_after_fail91:;
185 0 : return NULL_TREE;
186 : }
187 :
188 : tree
189 731 : generic_simplify_26 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
190 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
191 : {
192 731 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
193 731 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
194 : )
195 : {
196 731 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail100;
197 731 : {
198 731 : tree res_op0;
199 731 : {
200 731 : tree _o1[2], _r1;
201 731 : {
202 731 : tree _o2[1], _r2;
203 731 : _o2[0] = captures[2];
204 731 : if (TREE_TYPE (_o2[0]) != type)
205 : {
206 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
207 : }
208 : else
209 : _r2 = _o2[0];
210 731 : _o1[0] = _r2;
211 : }
212 731 : _o1[1] = captures[3];
213 731 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
214 731 : res_op0 = _r1;
215 : }
216 731 : tree _r;
217 731 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
218 731 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
219 731 : return _r;
220 : }
221 0 : next_after_fail100:;
222 : }
223 : return NULL_TREE;
224 : }
225 :
226 : tree
227 24 : generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
228 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
229 : const enum tree_code ARG_UNUSED (op),
230 : const enum tree_code ARG_UNUSED (cmp),
231 : const enum tree_code ARG_UNUSED (icmp))
232 : {
233 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
234 24 : if (invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
235 : )
236 : {
237 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail111;
238 24 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail111;
239 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail111;
240 24 : {
241 24 : tree res_op0;
242 24 : res_op0 = captures[1];
243 24 : tree res_op1;
244 24 : res_op1 = captures[4];
245 24 : tree res_op2;
246 24 : res_op2 = captures[7];
247 24 : tree _r;
248 24 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
249 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 85, __FILE__, __LINE__, true);
250 24 : return _r;
251 : }
252 : next_after_fail111:;
253 : }
254 : return NULL_TREE;
255 : }
256 :
257 : tree
258 0 : generic_simplify_42 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
259 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
260 : const enum tree_code ARG_UNUSED (op))
261 : {
262 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
263 0 : if (INTEGRAL_TYPE_P (type)
264 0 : && tree_int_cst_sgn (captures[5]) > 0
265 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
266 : )
267 : {
268 0 : {
269 0 : tree t = type;
270 0 : if (!TYPE_OVERFLOW_WRAPS (t))
271 0 : t = unsigned_type_for (t);
272 0 : wide_int wone = wi::one (TYPE_PRECISION (type));
273 0 : wide_int c = wi::add (wi::to_wide (captures[3]),
274 0 : wi::lshift (wone, wi::to_wide (captures[5])));
275 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail119;
276 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail119;
277 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail119;
278 0 : {
279 0 : tree res_op0;
280 0 : {
281 0 : tree _o1[2], _r1;
282 0 : {
283 0 : tree _o2[1], _r2;
284 0 : _o2[0] = captures[2];
285 0 : if (TREE_TYPE (_o2[0]) != t)
286 : {
287 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
288 : }
289 : else
290 : _r2 = _o2[0];
291 0 : _o1[0] = _r2;
292 : }
293 0 : _o1[1] = wide_int_to_tree (t, c);
294 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
295 0 : res_op0 = _r1;
296 : }
297 0 : tree _r;
298 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
299 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 87, __FILE__, __LINE__, true);
300 0 : return _r;
301 : }
302 0 : next_after_fail119:;
303 0 : }
304 : }
305 : return NULL_TREE;
306 : }
307 :
308 : tree
309 0 : generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
310 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
311 : {
312 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
313 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
314 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
315 0 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
316 0 : && (
317 :
318 0 : || !TREE_SIDE_EFFECTS (captures[0]))
319 : )
320 : {
321 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail131;
322 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail131;
323 0 : {
324 0 : tree res_op0;
325 0 : res_op0 = captures[0];
326 0 : tree _r;
327 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
328 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
329 0 : return _r;
330 : }
331 : next_after_fail131:;
332 : }
333 : return NULL_TREE;
334 : }
335 :
336 : tree
337 45787 : generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
338 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
339 : {
340 45787 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
341 45787 : if (!TYPE_SATURATING (type)
342 : )
343 : {
344 45787 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
345 91505 : && !FIXED_POINT_TYPE_P (type)
346 : )
347 : {
348 45718 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail140;
349 45718 : {
350 45718 : tree res_op0;
351 45718 : res_op0 = captures[0];
352 45718 : tree _r;
353 45718 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
354 45718 : if (TREE_SIDE_EFFECTS (captures[1]))
355 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
356 45718 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 109, __FILE__, __LINE__, true);
357 45718 : return _r;
358 : }
359 0 : next_after_fail140:;
360 : }
361 : }
362 : return NULL_TREE;
363 : }
364 :
365 : tree
366 7 : generic_simplify_66 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
367 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
368 : {
369 7 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
370 7 : if (!TYPE_SATURATING (type)
371 : )
372 : {
373 7 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
374 14 : && !FIXED_POINT_TYPE_P (type)
375 : )
376 : {
377 7 : if (TYPE_OVERFLOW_UNDEFINED (type)
378 14 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
379 : )
380 : {
381 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail154;
382 7 : {
383 7 : tree res_op0;
384 7 : res_op0 = captures[2];
385 7 : tree res_op1;
386 7 : res_op1 = captures[1];
387 7 : tree _r;
388 7 : _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
389 7 : if (TREE_SIDE_EFFECTS (captures[0]))
390 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
391 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 123, __FILE__, __LINE__, true);
392 7 : return _r;
393 : }
394 0 : next_after_fail154:;
395 : }
396 : }
397 : }
398 : return NULL_TREE;
399 : }
400 :
401 : tree
402 9 : generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
403 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
404 : {
405 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
406 9 : if (INTEGRAL_TYPE_P (type)
407 9 : && (
408 :
409 9 : || !TREE_SIDE_EFFECTS (captures[1]))
410 : )
411 : {
412 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail163;
413 2 : {
414 2 : tree res_op0;
415 2 : {
416 2 : tree _o1[1], _r1;
417 2 : _o1[0] = captures[2];
418 2 : if (TREE_TYPE (_o1[0]) != boolean_type_node)
419 : {
420 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
421 : }
422 : else
423 : _r1 = _o1[0];
424 2 : res_op0 = _r1;
425 : }
426 2 : tree res_op1;
427 2 : res_op1 = captures[1];
428 2 : tree res_op2;
429 2 : res_op2 = captures[0];
430 2 : tree _r;
431 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
432 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 132, __FILE__, __LINE__, true);
433 2 : return _r;
434 : }
435 0 : next_after_fail163:;
436 : }
437 : return NULL_TREE;
438 : }
439 :
440 : tree
441 56 : generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
442 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
443 : const enum tree_code ARG_UNUSED (cmp),
444 : const enum tree_code ARG_UNUSED (icmp),
445 : const enum tree_code ARG_UNUSED (ncmp))
446 : {
447 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
448 56 : if (TYPE_PRECISION (type) > 1
449 56 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
450 : )
451 : {
452 0 : {
453 0 : enum tree_code ic = invert_tree_comparison
454 0 : (cmp, HONOR_NANS (captures[1]));
455 0 : tree cmptype = TREE_TYPE (captures[0]);
456 0 : if (ic == icmp
457 : )
458 : {
459 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail167;
460 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail167;
461 0 : {
462 0 : tree res_op0;
463 0 : {
464 0 : tree _o1[1], _r1;
465 0 : {
466 0 : tree _o2[2], _r2;
467 0 : _o2[0] = captures[1];
468 0 : _o2[1] = captures[2];
469 0 : _r2 = fold_build2_loc (loc, icmp, cmptype, _o2[0], _o2[1]);
470 0 : _o1[0] = _r2;
471 : }
472 0 : if (TREE_TYPE (_o1[0]) != type)
473 : {
474 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
475 : }
476 : else
477 : _r1 = _o1[0];
478 0 : res_op0 = _r1;
479 : }
480 0 : tree _r;
481 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
482 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 136, __FILE__, __LINE__, true);
483 0 : return _r;
484 : }
485 : next_after_fail167:;
486 : }
487 : else
488 : {
489 0 : if (ic == ncmp
490 : )
491 : {
492 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail168;
493 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail168;
494 0 : {
495 0 : tree res_op0;
496 0 : {
497 0 : tree _o1[1], _r1;
498 0 : {
499 0 : tree _o2[2], _r2;
500 0 : _o2[0] = captures[1];
501 0 : _o2[1] = captures[2];
502 0 : _r2 = fold_build2_loc (loc, ncmp, cmptype, _o2[0], _o2[1]);
503 0 : _o1[0] = _r2;
504 : }
505 0 : if (TREE_TYPE (_o1[0]) != type)
506 : {
507 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
508 : }
509 : else
510 : _r1 = _o1[0];
511 0 : res_op0 = _r1;
512 : }
513 0 : tree _r;
514 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
515 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 137, __FILE__, __LINE__, true);
516 0 : return _r;
517 : }
518 : next_after_fail168:;
519 : }
520 : }
521 : }
522 : }
523 : return NULL_TREE;
524 : }
525 :
526 : tree
527 3043 : generic_simplify_97 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
528 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
529 : {
530 3043 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
531 3043 : if (!TYPE_SATURATING (type)
532 : )
533 : {
534 3043 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
535 3043 : && !TYPE_OVERFLOW_SANITIZED (type)
536 : )
537 : {
538 13 : {
539 13 : tree t1 = type;
540 13 : if (INTEGRAL_TYPE_P (type)
541 21 : && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
542 8 : t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
543 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail187;
544 13 : {
545 13 : tree res_op0;
546 13 : {
547 13 : tree _o1[2], _r1;
548 13 : {
549 13 : tree _o2[1], _r2;
550 13 : _o2[0] = captures[0];
551 13 : if (TREE_TYPE (_o2[0]) != t1)
552 : {
553 8 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
554 : }
555 : else
556 : _r2 = _o2[0];
557 13 : _o1[0] = _r2;
558 : }
559 13 : {
560 13 : tree _o2[1], _r2;
561 13 : _o2[0] = captures[1];
562 13 : if (TREE_TYPE (_o2[0]) != t1)
563 : {
564 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
565 : }
566 : else
567 : _r2 = _o2[0];
568 13 : _o1[1] = _r2;
569 : }
570 13 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
571 13 : res_op0 = _r1;
572 : }
573 13 : tree _r;
574 13 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
575 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 155, __FILE__, __LINE__, true);
576 13 : return _r;
577 : }
578 0 : next_after_fail187:;
579 : }
580 : }
581 : }
582 : return NULL_TREE;
583 : }
584 :
585 : tree
586 0 : generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
587 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
588 : {
589 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
590 0 : if (VECTOR_TYPE_P (type)
591 0 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
592 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
593 0 : && (TYPE_MODE (TREE_TYPE (type))
594 0 : == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
595 : )
596 : {
597 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail205;
598 0 : {
599 0 : tree res_op0;
600 0 : res_op0 = captures[0];
601 0 : tree res_op1;
602 0 : {
603 0 : tree _o1[1], _r1;
604 0 : {
605 0 : tree _o2[3], _r2;
606 0 : _o2[0] = captures[2];
607 0 : {
608 0 : tree _o3[1], _r3;
609 0 : _o3[0] = captures[3];
610 0 : _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
611 0 : _o2[1] = _r3;
612 : }
613 0 : _o2[2] = captures[4];
614 0 : _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
615 0 : _o1[0] = _r2;
616 : }
617 0 : if (TREE_TYPE (_o1[0]) != type)
618 : {
619 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
620 : }
621 : else
622 : _r1 = _o1[0];
623 0 : res_op1 = _r1;
624 : }
625 0 : tree _r;
626 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
627 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 173, __FILE__, __LINE__, true);
628 0 : return _r;
629 : }
630 0 : next_after_fail205:;
631 : }
632 : return NULL_TREE;
633 : }
634 :
635 : tree
636 36 : generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
637 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
638 : const enum tree_code ARG_UNUSED (bitop),
639 : const enum tree_code ARG_UNUSED (cmp))
640 : {
641 36 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
642 72 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
643 36 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
644 72 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
645 : )
646 : {
647 36 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail213;
648 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail213;
649 36 : {
650 36 : tree res_op0;
651 36 : {
652 36 : tree _o1[2], _r1;
653 36 : _o1[0] = captures[0];
654 36 : {
655 36 : tree _o2[1], _r2;
656 36 : _o2[0] = captures[2];
657 36 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
658 : {
659 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
660 : }
661 : else
662 : _r2 = _o2[0];
663 36 : _o1[1] = _r2;
664 : }
665 36 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
666 36 : res_op0 = _r1;
667 : }
668 36 : tree res_op1;
669 36 : res_op1 = captures[1];
670 36 : tree _r;
671 36 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
672 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
673 36 : return _r;
674 : }
675 : next_after_fail213:;
676 : }
677 : return NULL_TREE;
678 : }
679 :
680 : tree
681 0 : generic_simplify_126 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
682 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
683 : {
684 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
685 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail224;
686 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail224;
687 0 : {
688 0 : tree _r;
689 0 : _r = captures[2];
690 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
691 : return _r;
692 : }
693 : next_after_fail224:;
694 : return NULL_TREE;
695 : }
696 :
697 : tree
698 93 : generic_simplify_136 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
699 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
700 : const enum tree_code ARG_UNUSED (op),
701 : const enum tree_code ARG_UNUSED (rop))
702 : {
703 93 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
704 93 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
705 93 : && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
706 : )
707 : {
708 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail234;
709 61 : {
710 61 : tree res_op0;
711 61 : {
712 61 : tree _o1[2], _r1;
713 61 : {
714 61 : tree _o2[1], _r2;
715 61 : _o2[0] = captures[0];
716 61 : if (TREE_TYPE (_o2[0]) != type)
717 : {
718 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
719 : }
720 : else
721 : _r2 = _o2[0];
722 61 : _o1[0] = _r2;
723 : }
724 61 : {
725 61 : tree _o2[1], _r2;
726 61 : _o2[0] = captures[1];
727 61 : if (TREE_TYPE (_o2[0]) != type)
728 : {
729 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
730 : }
731 : else
732 : _r2 = _o2[0];
733 61 : _o1[1] = _r2;
734 : }
735 61 : _r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
736 61 : res_op0 = _r1;
737 : }
738 61 : tree _r;
739 61 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
740 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
741 61 : return _r;
742 : }
743 0 : next_after_fail234:;
744 : }
745 : return NULL_TREE;
746 : }
747 :
748 : tree
749 82 : generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
750 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
751 : const enum tree_code ARG_UNUSED (op))
752 : {
753 82 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
754 82 : if (bitwise_equal_p (captures[4], captures[7])
755 : )
756 : {
757 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail253;
758 16 : {
759 16 : tree res_op0;
760 16 : {
761 16 : tree _o1[2], _r1;
762 16 : {
763 16 : tree _o2[2], _r2;
764 16 : _o2[0] = captures[5];
765 16 : {
766 16 : tree _o3[1], _r3;
767 16 : _o3[0] = captures[6];
768 16 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
769 : {
770 16 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
771 : }
772 : else
773 : _r3 = _o3[0];
774 16 : _o2[1] = _r3;
775 : }
776 16 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
777 16 : _o1[0] = _r2;
778 : }
779 16 : {
780 16 : tree _o2[1], _r2;
781 16 : _o2[0] = captures[4];
782 16 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
783 : {
784 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
785 : }
786 : else
787 : _r2 = _o2[0];
788 16 : _o1[1] = _r2;
789 : }
790 16 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
791 16 : res_op0 = _r1;
792 : }
793 16 : tree _r;
794 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
795 16 : if (TREE_SIDE_EFFECTS (captures[7]))
796 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
797 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 204, __FILE__, __LINE__, true);
798 16 : return _r;
799 : }
800 0 : next_after_fail253:;
801 : }
802 : return NULL_TREE;
803 : }
804 :
805 : tree
806 36 : generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
807 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
808 : const enum tree_code ARG_UNUSED (rcmp),
809 : const enum tree_code ARG_UNUSED (cmp2),
810 : const enum tree_code ARG_UNUSED (cmp1),
811 : const enum tree_code ARG_UNUSED (bitop))
812 : {
813 36 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
814 36 : {
815 36 : tree_code rescode;
816 36 : tree res;
817 36 : bool honor_nans = HONOR_NANS (captures[0]);
818 36 : rescode = combine_comparisons (bitop, cmp1, cmp2,
819 : type, honor_nans, &res);
820 36 : if (rescode == INTEGER_CST
821 : )
822 : {
823 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
824 0 : {
825 0 : tree _r;
826 0 : _r = res;
827 0 : if (TREE_SIDE_EFFECTS (captures[0]))
828 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
829 0 : if (TREE_SIDE_EFFECTS (captures[1]))
830 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
831 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 221, __FILE__, __LINE__, true);
832 18 : return _r;
833 : }
834 0 : next_after_fail280:;
835 : }
836 : else
837 : {
838 36 : if (rescode == rcmp
839 : )
840 : {
841 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail281;
842 18 : {
843 18 : tree res_op0;
844 18 : res_op0 = captures[0];
845 18 : tree res_op1;
846 18 : res_op1 = captures[1];
847 18 : tree _r;
848 18 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
849 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 222, __FILE__, __LINE__, true);
850 18 : return _r;
851 : }
852 0 : next_after_fail281:;
853 : }
854 : }
855 : }
856 18 : return NULL_TREE;
857 : }
858 :
859 : tree
860 4 : generic_simplify_174 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
861 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
862 : {
863 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
864 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail312;
865 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail312;
866 4 : {
867 4 : tree _r;
868 4 : _r = constant_boolean_node (true, type);
869 4 : if (TREE_SIDE_EFFECTS (captures[1]))
870 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
871 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 232, __FILE__, __LINE__, true);
872 : return _r;
873 : }
874 : next_after_fail312:;
875 : return NULL_TREE;
876 : }
877 :
878 : tree
879 4 : generic_simplify_176 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
880 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
881 : {
882 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
883 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail315;
884 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail315;
885 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
886 4 : {
887 4 : tree _r;
888 4 : _r = captures[0];
889 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
890 : return _r;
891 : }
892 : next_after_fail315:;
893 : return NULL_TREE;
894 : }
895 :
896 : tree
897 94 : generic_simplify_180 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
898 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
899 : const enum tree_code ARG_UNUSED (logic),
900 : const enum tree_code ARG_UNUSED (op),
901 : const enum tree_code ARG_UNUSED (ext))
902 : {
903 94 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
904 188 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
905 188 : && TREE_CODE (captures[1]) != INTEGER_CST
906 : )
907 : {
908 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail319;
909 0 : {
910 0 : tree res_op0;
911 0 : res_op0 = captures[1];
912 0 : tree res_op1;
913 0 : {
914 0 : tree _o1[2], _r1;
915 0 : _o1[0] = captures[2];
916 0 : _o1[1] = captures[4];
917 0 : _r1 = fold_build2_loc (loc, ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
918 0 : res_op1 = _r1;
919 : }
920 0 : tree _r;
921 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
922 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 237, __FILE__, __LINE__, true);
923 0 : return _r;
924 : }
925 0 : next_after_fail319:;
926 : }
927 : return NULL_TREE;
928 : }
929 :
930 : tree
931 0 : generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
932 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
933 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
934 : {
935 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
936 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
937 : )
938 : {
939 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail324;
940 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail324;
941 0 : {
942 0 : tree res_op0;
943 0 : {
944 0 : tree _o1[1], _r1;
945 0 : _o1[0] = captures[0];
946 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
947 0 : res_op0 = _r1;
948 : }
949 0 : tree _r;
950 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
951 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
952 0 : return _r;
953 : }
954 : next_after_fail324:;
955 : }
956 : return NULL_TREE;
957 : }
958 :
959 : tree
960 6 : generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
961 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
962 : {
963 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
964 6 : if (INTEGRAL_TYPE_P (type)
965 6 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
966 12 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
967 : )
968 : {
969 6 : if (TYPE_UNSIGNED (type)
970 : )
971 : {
972 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail330;
973 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail330;
974 5 : {
975 5 : tree res_op0;
976 5 : res_op0 = captures[0];
977 5 : tree _r;
978 5 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
979 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
980 5 : return _r;
981 : }
982 : next_after_fail330:;
983 : }
984 : else
985 : {
986 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail331;
987 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail331;
988 1 : {
989 1 : tree res_op0;
990 1 : res_op0 = captures[0];
991 1 : tree _r;
992 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
993 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 247, __FILE__, __LINE__, true);
994 1 : return _r;
995 : }
996 : next_after_fail331:;
997 : }
998 : }
999 : return NULL_TREE;
1000 : }
1001 :
1002 : tree
1003 14 : generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1004 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1005 : {
1006 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1007 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
1008 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
1009 : )
1010 : {
1011 14 : {
1012 14 : unsigned int shift = tree_to_uhwi (captures[1]);
1013 14 : unsigned int prec = TYPE_PRECISION (type);
1014 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
1015 0 : || tree_int_cst_sgn (captures[2]) >= 0)
1016 28 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
1017 : )
1018 : {
1019 6 : {
1020 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
1021 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail338;
1022 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail338;
1023 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail338;
1024 6 : {
1025 6 : tree res_op0;
1026 6 : {
1027 6 : tree _o1[1], _r1;
1028 6 : _o1[0] = captures[0];
1029 6 : if (TREE_TYPE (_o1[0]) != type)
1030 : {
1031 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1032 : }
1033 : else
1034 : _r1 = _o1[0];
1035 6 : res_op0 = _r1;
1036 : }
1037 6 : tree res_op1;
1038 6 : res_op1 = wide_int_to_tree (type, mask << shift);
1039 6 : tree _r;
1040 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1041 6 : if (TREE_SIDE_EFFECTS (captures[3]))
1042 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1043 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 251, __FILE__, __LINE__, true);
1044 6 : return _r;
1045 : }
1046 0 : next_after_fail338:;
1047 6 : }
1048 : }
1049 : }
1050 : }
1051 : return NULL_TREE;
1052 : }
1053 :
1054 : tree
1055 189 : generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1056 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1057 : const enum tree_code ARG_UNUSED (cmp))
1058 : {
1059 189 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1060 378 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1061 356 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
1062 : )
1063 : {
1064 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail351;
1065 3 : {
1066 3 : tree res_op0;
1067 3 : res_op0 = captures[0];
1068 3 : tree res_op1;
1069 3 : res_op1 = build_zero_cst (TREE_TYPE(captures[0]));
1070 3 : tree _r;
1071 3 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1072 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 264, __FILE__, __LINE__, true);
1073 3 : return _r;
1074 : }
1075 0 : next_after_fail351:;
1076 : }
1077 : return NULL_TREE;
1078 : }
1079 :
1080 : tree
1081 33 : generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1082 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1083 : const enum tree_code ARG_UNUSED (cmp),
1084 : const enum tree_code ARG_UNUSED (icmp))
1085 : {
1086 33 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1087 66 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1088 29 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1089 13 : && type_has_mode_precision_p (TREE_TYPE (captures[0]))
1090 13 : && types_match (captures[0], captures[2])
1091 13 : && tree_fits_shwi_p (captures[1])
1092 13 : && tree_to_shwi (captures[1]) > 0
1093 46 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
1094 : )
1095 : {
1096 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail364;
1097 13 : {
1098 13 : tree res_op0;
1099 13 : {
1100 13 : tree _o1[2], _r1;
1101 13 : _o1[0] = captures[0];
1102 13 : _o1[1] = captures[2];
1103 13 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1104 13 : res_op0 = _r1;
1105 : }
1106 13 : tree res_op1;
1107 13 : {
1108 13 : tree _o1[2], _r1;
1109 13 : _o1[0] = build_one_cst (TREE_TYPE (captures[0]));
1110 13 : _o1[1] = captures[1];
1111 13 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1112 13 : res_op1 = _r1;
1113 : }
1114 13 : tree _r;
1115 13 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1116 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 276, __FILE__, __LINE__, true);
1117 13 : return _r;
1118 : }
1119 0 : next_after_fail364:;
1120 : }
1121 : return NULL_TREE;
1122 : }
1123 :
1124 : tree
1125 43 : generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1126 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1127 : const enum tree_code ARG_UNUSED (op))
1128 : {
1129 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1130 43 : if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
1131 : )
1132 : {
1133 43 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail385;
1134 43 : {
1135 43 : tree res_op0;
1136 43 : res_op0 = captures[1];
1137 43 : tree res_op1;
1138 43 : res_op1 = captures[3];
1139 43 : tree _r;
1140 43 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1141 43 : if (TREE_SIDE_EFFECTS (captures[2]))
1142 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1143 43 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 297, __FILE__, __LINE__, true);
1144 43 : return _r;
1145 : }
1146 0 : next_after_fail385:;
1147 : }
1148 : return NULL_TREE;
1149 : }
1150 :
1151 : tree
1152 0 : generic_simplify_234 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1153 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1154 : const enum tree_code ARG_UNUSED (cmp1),
1155 : const enum tree_code ARG_UNUSED (cmp2),
1156 : const enum tree_code ARG_UNUSED (rcmp))
1157 : {
1158 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1159 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1160 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
1161 0 : || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
1162 0 : || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
1163 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
1164 : )
1165 : {
1166 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail393;
1167 0 : {
1168 0 : tree res_op0;
1169 0 : res_op0 = captures[0];
1170 0 : tree res_op1;
1171 0 : res_op1 = captures[1];
1172 0 : tree _r;
1173 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1174 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 304, __FILE__, __LINE__, true);
1175 0 : return _r;
1176 : }
1177 0 : next_after_fail393:;
1178 : }
1179 : return NULL_TREE;
1180 : }
1181 :
1182 : tree
1183 10 : generic_simplify_242 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1184 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1185 : const enum tree_code ARG_UNUSED (cmp),
1186 : const enum tree_code ARG_UNUSED (icmp))
1187 : {
1188 10 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1189 10 : if (tree_int_cst_sgn (captures[0]) > 0
1190 : )
1191 : {
1192 10 : {
1193 10 : int c1 = wi::clz (wi::to_wide (captures[0]));
1194 10 : int c2 = wi::clz (wi::to_wide (captures[2]));
1195 10 : if (c1 > c2
1196 20 : || !wi::fits_to_tree_p (wi::shwi (c2 - c1, HOST_BITS_PER_INT),
1197 10 : TREE_TYPE (captures[1]))
1198 : )
1199 : {
1200 8 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail405;
1201 8 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail405;
1202 8 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail405;
1203 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail405;
1204 8 : {
1205 8 : tree _r;
1206 8 : _r = constant_boolean_node (cmp != NE_EXPR, type);
1207 8 : if (TREE_SIDE_EFFECTS (captures[1]))
1208 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1209 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 316, __FILE__, __LINE__, true);
1210 8 : return _r;
1211 : }
1212 : next_after_fail405:;
1213 : }
1214 : else
1215 : {
1216 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail406;
1217 2 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail406;
1218 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail406;
1219 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail406;
1220 2 : {
1221 2 : tree res_op0;
1222 2 : res_op0 = captures[1];
1223 2 : tree res_op1;
1224 2 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), c2 - c1);
1225 2 : tree _r;
1226 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1227 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 317, __FILE__, __LINE__, true);
1228 2 : return _r;
1229 : }
1230 : next_after_fail406:;
1231 : }
1232 : }
1233 : }
1234 : return NULL_TREE;
1235 : }
1236 :
1237 : tree
1238 179 : generic_simplify_251 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1239 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1240 : const enum tree_code ARG_UNUSED (cmp),
1241 : const enum tree_code ARG_UNUSED (icmp),
1242 : const enum tree_code ARG_UNUSED (ncmp))
1243 : {
1244 179 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1245 179 : if (types_match (type, TREE_TYPE (captures[0]))
1246 : )
1247 : {
1248 125 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail422;
1249 125 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
1250 125 : {
1251 125 : tree res_op0;
1252 125 : res_op0 = captures[1];
1253 125 : tree res_op1;
1254 125 : res_op1 = captures[2];
1255 125 : tree _r;
1256 125 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1257 125 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 333, __FILE__, __LINE__, true);
1258 125 : return _r;
1259 : }
1260 : next_after_fail422:;
1261 : }
1262 : return NULL_TREE;
1263 : }
1264 :
1265 : tree
1266 804329 : generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1267 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1268 : const enum tree_code ARG_UNUSED (cmp),
1269 : const enum tree_code ARG_UNUSED (scmp))
1270 : {
1271 804329 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1272 804329 : if (single_use (captures[0])
1273 804329 : && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
1274 : )
1275 : {
1276 804329 : {
1277 804329 : tree otype = TREE_TYPE (captures[2]);
1278 804329 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail437;
1279 804329 : {
1280 804329 : tree res_op0;
1281 804329 : {
1282 804329 : tree _o1[1], _r1;
1283 804329 : _o1[0] = captures[1];
1284 804329 : if (TREE_TYPE (_o1[0]) != otype)
1285 : {
1286 441 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1287 : }
1288 : else
1289 : _r1 = _o1[0];
1290 804329 : res_op0 = _r1;
1291 : }
1292 804329 : tree res_op1;
1293 804329 : {
1294 804329 : tree _o1[1], _r1;
1295 804329 : _o1[0] = captures[2];
1296 804329 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1297 804329 : res_op1 = _r1;
1298 : }
1299 804329 : tree _r;
1300 804329 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1301 804329 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 347, __FILE__, __LINE__, true);
1302 804329 : return _r;
1303 : }
1304 0 : next_after_fail437:;
1305 : }
1306 : }
1307 : return NULL_TREE;
1308 : }
1309 :
1310 : tree
1311 6 : generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1312 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1313 : const combined_fn ARG_UNUSED (sq),
1314 : const enum tree_code ARG_UNUSED (cmp))
1315 : {
1316 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1317 6 : if (flag_unsafe_math_optimizations && ! flag_errno_math
1318 : )
1319 : {
1320 0 : if (! HONOR_NANS (captures[0])
1321 : )
1322 : {
1323 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail475;
1324 0 : {
1325 0 : tree res_op0;
1326 0 : res_op0 = captures[0];
1327 0 : tree res_op1;
1328 0 : res_op1 = captures[1];
1329 0 : tree _r;
1330 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1331 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 384, __FILE__, __LINE__, true);
1332 0 : return _r;
1333 : }
1334 0 : next_after_fail475:;
1335 : }
1336 : }
1337 : return NULL_TREE;
1338 : }
1339 :
1340 : tree
1341 2599 : generic_simplify_271 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1342 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1343 : const enum tree_code ARG_UNUSED (cmp),
1344 : const enum tree_code ARG_UNUSED (scmp))
1345 : {
1346 2599 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1347 4828 : if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1348 4828 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1349 2229 : && (cmp == EQ_EXPR
1350 2229 : || cmp == NE_EXPR
1351 1454 : || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
1352 : )
1353 : {
1354 1449 : {
1355 1449 : tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
1356 1449 : if (tem && !TREE_OVERFLOW (tem)
1357 : )
1358 : {
1359 1421 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail489;
1360 1421 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail489;
1361 1421 : {
1362 1421 : tree res_op0;
1363 1421 : res_op0 = captures[0];
1364 1421 : tree res_op1;
1365 1421 : res_op1 = tem;
1366 1421 : tree _r;
1367 1421 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1368 1421 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 398, __FILE__, __LINE__, true);
1369 1421 : return _r;
1370 : }
1371 : next_after_fail489:;
1372 : }
1373 : }
1374 : }
1375 : return NULL_TREE;
1376 : }
1377 :
1378 : tree
1379 705 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1380 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1381 : const enum tree_code ARG_UNUSED (cmp))
1382 : {
1383 705 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1384 705 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1385 1410 : && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0
1386 : )
1387 : {
1388 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail506;
1389 0 : {
1390 0 : tree _r;
1391 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1392 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1393 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1394 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1395 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1396 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1397 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1398 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1399 0 : return _r;
1400 : }
1401 0 : next_after_fail506:;
1402 : }
1403 : return NULL_TREE;
1404 : }
1405 :
1406 : tree
1407 26801 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1408 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1409 : const enum tree_code ARG_UNUSED (cmp))
1410 : {
1411 26801 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1412 26801 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail511;
1413 26801 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail511;
1414 26801 : {
1415 26801 : tree res_op0;
1416 26801 : res_op0 = captures[0];
1417 26801 : tree res_op1;
1418 26801 : res_op1 = captures[1];
1419 26801 : tree _r;
1420 26801 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1421 26801 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 412, __FILE__, __LINE__, true);
1422 : return _r;
1423 : }
1424 : next_after_fail511:;
1425 : return NULL_TREE;
1426 : }
1427 :
1428 : tree
1429 149451 : generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1430 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1431 : const enum tree_code ARG_UNUSED (cmp))
1432 : {
1433 149451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1434 149451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail513;
1435 149451 : {
1436 149451 : tree res_op0;
1437 149451 : {
1438 149451 : tree _o1[2], _r1;
1439 149451 : _o1[0] = captures[0];
1440 149451 : {
1441 149451 : tree _o2[1], _r2;
1442 149451 : _o2[0] = captures[1];
1443 149451 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1444 149451 : if (EXPR_P (_r2))
1445 149422 : goto next_after_fail513;
1446 29 : _o1[1] = _r2;
1447 : }
1448 29 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1449 29 : res_op0 = _r1;
1450 : }
1451 29 : tree res_op1;
1452 29 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1453 29 : tree _r;
1454 29 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1455 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
1456 : return _r;
1457 : }
1458 : next_after_fail513:;
1459 : return NULL_TREE;
1460 : }
1461 :
1462 : tree
1463 29848767 : generic_simplify_282 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1464 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1465 : const enum tree_code ARG_UNUSED (cmp))
1466 : {
1467 29848767 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1468 29848767 : if (tree_expr_nonzero_p (captures[0])
1469 : )
1470 : {
1471 965120 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail517;
1472 965120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail517;
1473 965120 : {
1474 965120 : tree _r;
1475 965120 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1476 965120 : if (TREE_SIDE_EFFECTS (captures[0]))
1477 6712 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1478 965120 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
1479 965120 : return _r;
1480 : }
1481 : next_after_fail517:;
1482 : }
1483 : return NULL_TREE;
1484 : }
1485 :
1486 : tree
1487 4 : generic_simplify_288 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1488 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1489 : const enum tree_code ARG_UNUSED (cmp),
1490 : const enum tree_code ARG_UNUSED (ncmp))
1491 : {
1492 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1493 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1494 4 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1495 8 : && types_match (captures[0], captures[2])
1496 : )
1497 : {
1498 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail523;
1499 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail523;
1500 4 : {
1501 4 : tree res_op0;
1502 4 : {
1503 4 : tree _o1[2], _r1;
1504 4 : _o1[0] = captures[0];
1505 4 : _o1[1] = captures[2];
1506 4 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1507 4 : res_op0 = _r1;
1508 : }
1509 4 : tree res_op1;
1510 4 : res_op1 = captures[1];
1511 4 : tree _r;
1512 4 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1513 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
1514 4 : return _r;
1515 : }
1516 : next_after_fail523:;
1517 : }
1518 : return NULL_TREE;
1519 : }
1520 :
1521 : tree
1522 1096551 : generic_simplify_294 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1523 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1524 : const enum tree_code ARG_UNUSED (cmp))
1525 : {
1526 1096551 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1527 1670641 : if (((POINTER_TYPE_P (TREE_TYPE (captures[0]))
1528 524392 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0])))
1529 486120 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1530 9852 : && !(
1531 : 1
1532 9732 : && TREE_CODE (TREE_TYPE (captures[0])) == REFERENCE_TYPE
1533 120 : && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))))
1534 1086831 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1535 572030 : && POINTER_TYPE_P (TREE_TYPE (captures[1]))
1536 2240 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))))
1537 1108006 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
1538 : )
1539 : {
1540 10423 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail543;
1541 10423 : {
1542 10423 : tree res_op0;
1543 10423 : res_op0 = captures[0];
1544 10423 : tree res_op1;
1545 10423 : {
1546 10423 : tree _o1[1], _r1;
1547 10423 : _o1[0] = captures[1];
1548 10423 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1549 : {
1550 10423 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1551 : }
1552 : else
1553 : _r1 = _o1[0];
1554 10423 : res_op1 = _r1;
1555 : }
1556 10423 : tree _r;
1557 10423 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1558 10423 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 434, __FILE__, __LINE__, true);
1559 10423 : return _r;
1560 : }
1561 0 : next_after_fail543:;
1562 : }
1563 : return NULL_TREE;
1564 : }
1565 :
1566 : tree
1567 590839 : generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1568 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1569 : const enum tree_code ARG_UNUSED (cmp),
1570 : const enum tree_code ARG_UNUSED (rcmp))
1571 : {
1572 590839 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1573 1181678 : if (!TREE_OVERFLOW (captures[0]) && !TREE_OVERFLOW (captures[2])
1574 1181678 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1575 : )
1576 : {
1577 2963 : {
1578 2963 : tree res = int_const_binop (MINUS_EXPR, captures[0], captures[2]);
1579 2963 : if (TREE_OVERFLOW (res)
1580 : )
1581 : {
1582 48 : if (cmp == NE_EXPR
1583 : )
1584 : {
1585 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail552;
1586 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail552;
1587 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
1588 0 : {
1589 0 : tree _r;
1590 0 : _r = constant_boolean_node (true, type);
1591 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1592 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1593 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 443, __FILE__, __LINE__, true);
1594 0 : return _r;
1595 : }
1596 : next_after_fail552:;
1597 : }
1598 : else
1599 : {
1600 48 : if (cmp == EQ_EXPR
1601 : )
1602 : {
1603 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail553;
1604 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail553;
1605 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail553;
1606 0 : {
1607 0 : tree _r;
1608 0 : _r = constant_boolean_node (false, type);
1609 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1610 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1611 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 444, __FILE__, __LINE__, true);
1612 0 : return _r;
1613 : }
1614 : next_after_fail553:;
1615 : }
1616 : else
1617 : {
1618 48 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail554;
1619 48 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail554;
1620 48 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail554;
1621 48 : {
1622 48 : tree _r;
1623 48 : bool less = cmp == LE_EXPR || cmp == LT_EXPR;
1624 48 : bool ovf_high = wi::lt_p (wi::to_wide (captures[0]), 0,
1625 48 : TYPE_SIGN (TREE_TYPE (captures[0]))); _r =
1626 48 : constant_boolean_node (less == ovf_high, type);
1627 48 : if (TREE_SIDE_EFFECTS (captures[1]))
1628 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1629 48 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 445, __FILE__, __LINE__, true);
1630 48 : return _r;
1631 : }
1632 : next_after_fail554:;
1633 : }
1634 : }
1635 : }
1636 : else
1637 : {
1638 2915 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail555;
1639 2915 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail555;
1640 2915 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail555;
1641 2915 : {
1642 2915 : tree res_op0;
1643 2915 : res_op0 = captures[1];
1644 2915 : tree res_op1;
1645 2915 : res_op1 = res;
1646 2915 : tree _r;
1647 2915 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1648 2915 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
1649 2915 : return _r;
1650 : }
1651 : next_after_fail555:;
1652 : }
1653 : }
1654 : }
1655 : else
1656 : {
1657 587876 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1658 : )
1659 : {
1660 587782 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1661 : )
1662 : {
1663 36118 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
1664 36118 : {
1665 36118 : tree res_op0;
1666 36118 : res_op0 = captures[1];
1667 36118 : tree res_op1;
1668 36118 : {
1669 36118 : tree _o1[2], _r1;
1670 36118 : _o1[0] = captures[0];
1671 36118 : _o1[1] = captures[2];
1672 36118 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1673 36118 : res_op1 = _r1;
1674 : }
1675 36118 : tree _r;
1676 36118 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1677 36118 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 447, __FILE__, __LINE__, true);
1678 36118 : return _r;
1679 : }
1680 0 : next_after_fail556:;
1681 : }
1682 : else
1683 : {
1684 551664 : if (cmp == LE_EXPR || cmp == GT_EXPR
1685 : )
1686 : {
1687 551664 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail557;
1688 551664 : {
1689 551664 : if (! tree_invariant_p (captures[2])) goto next_after_fail557;
1690 551664 : tree res_op0;
1691 551664 : {
1692 551664 : tree _o1[2], _r1;
1693 551664 : _o1[0] = captures[1];
1694 551664 : {
1695 551664 : tree _o2[2], _r2;
1696 551664 : _o2[0] = unshare_expr (captures[2]);
1697 551664 : _o2[1] = captures[0];
1698 551664 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1699 551664 : _o1[1] = _r2;
1700 : }
1701 551664 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1702 551664 : res_op0 = _r1;
1703 : }
1704 551664 : tree res_op1;
1705 551664 : res_op1 = captures[2];
1706 551664 : tree _r;
1707 551664 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1708 551664 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 448, __FILE__, __LINE__, true);
1709 551664 : return _r;
1710 : }
1711 : next_after_fail557:;
1712 : }
1713 : else
1714 : {
1715 0 : if (cmp == LT_EXPR || cmp == GE_EXPR
1716 : )
1717 : {
1718 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail558;
1719 0 : {
1720 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail558;
1721 0 : tree res_op0;
1722 0 : {
1723 0 : tree _o1[2], _r1;
1724 0 : _o1[0] = captures[1];
1725 0 : {
1726 0 : tree _o2[2], _r2;
1727 0 : _o2[0] = unshare_expr (captures[2]);
1728 0 : {
1729 0 : tree _o3[2], _r3;
1730 0 : _o3[0] = captures[0];
1731 0 : _o3[1] = build_one_cst (TREE_TYPE (captures[1]));
1732 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
1733 0 : _o2[1] = _r3;
1734 : }
1735 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1736 0 : _o1[1] = _r2;
1737 : }
1738 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1739 0 : res_op0 = _r1;
1740 : }
1741 0 : tree res_op1;
1742 0 : res_op1 = captures[2];
1743 0 : tree _r;
1744 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1745 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 449, __FILE__, __LINE__, true);
1746 0 : return _r;
1747 : }
1748 : next_after_fail558:;
1749 : }
1750 : }
1751 : }
1752 : }
1753 : else
1754 : {
1755 94 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1756 94 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1757 : )
1758 : {
1759 94 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1760 : )
1761 : {
1762 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail559;
1763 0 : {
1764 0 : tree res_op0;
1765 0 : res_op0 = captures[1];
1766 0 : tree res_op1;
1767 0 : {
1768 0 : tree _o1[2], _r1;
1769 0 : _o1[0] = captures[0];
1770 0 : _o1[1] = captures[2];
1771 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1772 0 : res_op1 = _r1;
1773 : }
1774 0 : tree _r;
1775 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1776 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 450, __FILE__, __LINE__, true);
1777 0 : return _r;
1778 : }
1779 0 : next_after_fail559:;
1780 : }
1781 : else
1782 : {
1783 94 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail560;
1784 94 : {
1785 94 : tree res_op0;
1786 94 : {
1787 94 : tree _o1[2], _r1;
1788 94 : _o1[0] = captures[1];
1789 94 : {
1790 94 : tree _o2[2], _r2;
1791 94 : _o2[0] = captures[0];
1792 94 : _o2[1] = build_one_cst (TREE_TYPE (captures[1]));
1793 94 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1794 94 : _o1[1] = _r2;
1795 : }
1796 94 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1797 94 : res_op0 = _r1;
1798 : }
1799 94 : tree res_op1;
1800 94 : {
1801 94 : tree _o1[1], _r1;
1802 94 : _o1[0] = captures[2];
1803 94 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1804 94 : res_op1 = _r1;
1805 : }
1806 94 : tree _r;
1807 94 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1808 94 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 451, __FILE__, __LINE__, true);
1809 94 : return _r;
1810 : }
1811 0 : next_after_fail560:;
1812 : }
1813 : }
1814 : }
1815 : }
1816 : return NULL_TREE;
1817 : }
1818 :
1819 : tree
1820 0 : generic_simplify_338 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1821 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1822 : const combined_fn ARG_UNUSED (SQRT))
1823 : {
1824 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1825 0 : if (flag_unsafe_math_optimizations
1826 : )
1827 : {
1828 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail612;
1829 0 : {
1830 0 : tree res_op0;
1831 0 : res_op0 = captures[0];
1832 0 : tree _r;
1833 0 : _r = maybe_build_call_expr_loc (loc, SQRT, type, 1, res_op0);
1834 0 : if (!_r)
1835 0 : goto next_after_fail612;
1836 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 501, __FILE__, __LINE__, true);
1837 0 : return _r;
1838 : }
1839 : next_after_fail612:;
1840 : }
1841 : return NULL_TREE;
1842 : }
1843 :
1844 : tree
1845 6 : generic_simplify_344 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1846 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1847 : const combined_fn ARG_UNUSED (TAN),
1848 : const combined_fn ARG_UNUSED (SIN),
1849 : const combined_fn ARG_UNUSED (COS))
1850 : {
1851 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1852 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1853 : )
1854 : {
1855 6 : if (! HONOR_NANS (captures[1])
1856 6 : && ! HONOR_INFINITIES (captures[1])
1857 : )
1858 : {
1859 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
1860 6 : {
1861 6 : tree res_op0;
1862 6 : res_op0 = build_one_cst (type);
1863 6 : tree res_op1;
1864 6 : {
1865 6 : tree _o1[1], _r1;
1866 6 : _o1[0] = captures[1];
1867 6 : _r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
1868 6 : if (!_r1)
1869 0 : goto next_after_fail618;
1870 6 : res_op1 = _r1;
1871 : }
1872 6 : tree _r;
1873 6 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1874 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 507, __FILE__, __LINE__, true);
1875 6 : return _r;
1876 : }
1877 : next_after_fail618:;
1878 : }
1879 : }
1880 : return NULL_TREE;
1881 : }
1882 :
1883 : tree
1884 0 : generic_simplify_354 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1885 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1886 : const enum tree_code ARG_UNUSED (cmp))
1887 : {
1888 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1889 0 : if (INTEGRAL_TYPE_P (type)
1890 : )
1891 : {
1892 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail634;
1893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail634;
1894 0 : {
1895 0 : tree _r;
1896 0 : _r = captures[2];
1897 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1898 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1899 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 523, __FILE__, __LINE__, true);
1900 0 : return _r;
1901 : }
1902 : next_after_fail634:;
1903 : }
1904 : return NULL_TREE;
1905 : }
1906 :
1907 : tree
1908 21 : generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1909 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1910 : {
1911 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1912 21 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail638;
1913 21 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail638;
1914 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail638;
1915 21 : {
1916 21 : tree _r;
1917 21 : _r = captures[2];
1918 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 527, __FILE__, __LINE__, true);
1919 : return _r;
1920 : }
1921 : next_after_fail638:;
1922 : return NULL_TREE;
1923 : }
1924 :
1925 : tree
1926 0 : generic_simplify_362 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1927 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1928 : {
1929 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1930 0 : if (INTEGRAL_TYPE_P (type)
1931 : )
1932 : {
1933 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail642;
1934 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail642;
1935 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail642;
1936 0 : {
1937 0 : tree _r;
1938 0 : _r = captures[2];
1939 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 531, __FILE__, __LINE__, true);
1940 0 : return _r;
1941 : }
1942 : next_after_fail642:;
1943 : }
1944 : return NULL_TREE;
1945 : }
1946 :
1947 : tree
1948 0 : generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1949 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1950 : const enum tree_code ARG_UNUSED (op))
1951 : {
1952 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1953 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail649;
1954 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail649;
1955 0 : {
1956 0 : tree _r;
1957 0 : _r = captures[2];
1958 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 538, __FILE__, __LINE__, true);
1959 : return _r;
1960 : }
1961 : next_after_fail649:;
1962 : return NULL_TREE;
1963 : }
1964 :
1965 : tree
1966 3 : generic_simplify_375 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1967 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1968 : const combined_fn ARG_UNUSED (func))
1969 : {
1970 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1971 3 : if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
1972 : )
1973 : {
1974 3 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail656;
1975 3 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail656;
1976 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail656;
1977 3 : {
1978 3 : tree _r;
1979 3 : _r = captures[2];
1980 3 : if (TREE_SIDE_EFFECTS (captures[1]))
1981 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1982 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
1983 3 : return _r;
1984 : }
1985 : next_after_fail656:;
1986 : }
1987 : return NULL_TREE;
1988 : }
1989 :
1990 : tree
1991 163227 : generic_simplify_383 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1992 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1993 : const enum tree_code ARG_UNUSED (op))
1994 : {
1995 163227 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1996 326454 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1997 326454 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1998 : )
1999 : {
2000 68944 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail668;
2001 68944 : {
2002 68944 : tree res_op0;
2003 68944 : res_op0 = captures[0];
2004 68944 : tree res_op1;
2005 68944 : res_op1 = captures[2];
2006 68944 : tree _r;
2007 68944 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2008 68944 : if (TREE_SIDE_EFFECTS (captures[1]))
2009 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2010 68944 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 555, __FILE__, __LINE__, true);
2011 68944 : return _r;
2012 : }
2013 0 : next_after_fail668:;
2014 : }
2015 : return NULL_TREE;
2016 : }
2017 :
2018 : tree
2019 5312 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2020 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2021 : const enum tree_code ARG_UNUSED (cmp),
2022 : const enum tree_code ARG_UNUSED (bitop))
2023 : {
2024 5312 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2025 5312 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2026 : )
2027 : {
2028 5312 : if (bitop == BIT_AND_EXPR || tree_expr_nonnegative_p (captures[1])
2029 : )
2030 : {
2031 5312 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
2032 5312 : {
2033 5312 : tree _r;
2034 5312 : _r = constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
2035 5312 : if (TREE_SIDE_EFFECTS (captures[0]))
2036 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2037 5312 : if (TREE_SIDE_EFFECTS (captures[1]))
2038 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2039 5312 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
2040 5312 : return _r;
2041 : }
2042 0 : next_after_fail673:;
2043 : }
2044 : else
2045 : {
2046 0 : if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (wi::to_wide (captures[1]))
2047 : )
2048 : {
2049 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail674;
2050 0 : {
2051 0 : tree _r;
2052 0 : _r = constant_boolean_node (cmp == LT_EXPR, type);
2053 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2054 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2055 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2056 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2057 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
2058 0 : return _r;
2059 : }
2060 0 : next_after_fail674:;
2061 : }
2062 : }
2063 : }
2064 : return NULL_TREE;
2065 : }
2066 :
2067 : tree
2068 2 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2069 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2070 : const enum tree_code ARG_UNUSED (cmp))
2071 : {
2072 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2073 4 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2074 4 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2075 : )
2076 : {
2077 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail721;
2078 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
2079 2 : {
2080 2 : tree res_op0;
2081 2 : res_op0 = captures[1];
2082 2 : tree res_op1;
2083 2 : res_op1 = captures[0];
2084 2 : tree _r;
2085 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2086 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 591, __FILE__, __LINE__, true);
2087 2 : return _r;
2088 : }
2089 : next_after_fail721:;
2090 : }
2091 : return NULL_TREE;
2092 : }
2093 :
2094 : tree
2095 2472530 : generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2096 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2097 : const enum tree_code ARG_UNUSED (op),
2098 : const enum tree_code ARG_UNUSED (rop),
2099 : const enum tree_code ARG_UNUSED (cmp),
2100 : const enum tree_code ARG_UNUSED (rcmp))
2101 : {
2102 2472530 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2103 4945046 : if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
2104 4945034 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
2105 : )
2106 : {
2107 890316 : {
2108 890316 : tree res = int_const_binop (rop, captures[3], captures[2]);
2109 890316 : if (TREE_OVERFLOW (res)
2110 : )
2111 : {
2112 13168 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail727;
2113 13168 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail727;
2114 13168 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail727;
2115 13168 : {
2116 13168 : tree _r;
2117 13168 : bool less = cmp == LE_EXPR || cmp == LT_EXPR;
2118 13168 : bool ovf_high = wi::lt_p (wi::to_wide (captures[2]), 0,
2119 13168 : TYPE_SIGN (TREE_TYPE (captures[2])))
2120 13168 : != (op == MINUS_EXPR); _r =
2121 13168 : constant_boolean_node (less == ovf_high, type);
2122 13168 : if (TREE_SIDE_EFFECTS (captures[1]))
2123 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2124 13168 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 597, __FILE__, __LINE__, true);
2125 13168 : return _r;
2126 : }
2127 : next_after_fail727:;
2128 : }
2129 : else
2130 : {
2131 877148 : if (single_use (captures[0])
2132 : )
2133 : {
2134 877148 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail728;
2135 877148 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail728;
2136 877148 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail728;
2137 877148 : {
2138 877148 : tree res_op0;
2139 877148 : res_op0 = captures[1];
2140 877148 : tree res_op1;
2141 877148 : res_op1 = res;
2142 877148 : tree _r;
2143 877148 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2144 877148 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 598, __FILE__, __LINE__, true);
2145 877148 : return _r;
2146 : }
2147 : next_after_fail728:;
2148 : }
2149 : }
2150 : }
2151 : }
2152 : else
2153 : {
2154 1582214 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2155 : )
2156 : {
2157 1582089 : {
2158 1582089 : wide_int max = wi::max_value (TREE_TYPE (captures[1]));
2159 1582089 : wide_int min = wi::min_value (TREE_TYPE (captures[1]));
2160 1582089 : wide_int c2 = rop == PLUS_EXPR
2161 1582089 : ? wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[2]))
2162 1582089 : : wi::sub (wi::to_wide (captures[3]), wi::to_wide (captures[2]));
2163 1510872 : if (((cmp == LE_EXPR || cmp == GT_EXPR) && wi::eq_p (c2, max))
2164 3077414 : || ((cmp == LT_EXPR || cmp == GE_EXPR) && wi::eq_p (c2, min))
2165 : )
2166 : {
2167 15705 : {
2168 15705 : wide_int c1 = rop == PLUS_EXPR
2169 15705 : ? wi::add (wi::bit_not (c2), wi::to_wide (captures[2]))
2170 31410 : : wi::sub (wi::bit_not (c2), wi::to_wide (captures[2]));
2171 15705 : tree c1_cst = wide_int_to_tree (TREE_TYPE (captures[1]), c1);
2172 15705 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail729;
2173 15705 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail729;
2174 15705 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail729;
2175 15705 : {
2176 15705 : tree res_op0;
2177 15705 : res_op0 = captures[1];
2178 15705 : tree res_op1;
2179 15705 : res_op1 = c1_cst;
2180 15705 : tree _r;
2181 15705 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
2182 15705 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 599, __FILE__, __LINE__, true);
2183 15705 : return _r;
2184 : }
2185 0 : next_after_fail729:;
2186 15705 : }
2187 : }
2188 1582091 : }
2189 : }
2190 : }
2191 : return NULL_TREE;
2192 : }
2193 :
2194 : tree
2195 11 : generic_simplify_425 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2196 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2197 : {
2198 11 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2199 11 : if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
2200 : )
2201 : {
2202 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail754;
2203 11 : {
2204 11 : tree res_op0;
2205 11 : {
2206 11 : tree _o1[1], _r1;
2207 11 : _o1[0] = captures[0];
2208 11 : if (TREE_TYPE (_o1[0]) != type)
2209 : {
2210 8 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
2211 : }
2212 : else
2213 : _r1 = _o1[0];
2214 11 : res_op0 = _r1;
2215 : }
2216 11 : tree res_op1;
2217 11 : {
2218 11 : tree _o1[2], _r1;
2219 11 : _o1[0] = build_minus_one_cst (type);
2220 11 : _o1[1] = captures[1];
2221 11 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2222 11 : res_op1 = _r1;
2223 : }
2224 11 : tree _r;
2225 11 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2226 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 620, __FILE__, __LINE__, true);
2227 11 : return _r;
2228 : }
2229 0 : next_after_fail754:;
2230 : }
2231 : return NULL_TREE;
2232 : }
2233 :
2234 : tree
2235 18 : generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2236 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2237 : const enum tree_code ARG_UNUSED (bit_op),
2238 : const enum tree_code ARG_UNUSED (shift))
2239 : {
2240 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2241 18 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
2242 : )
2243 : {
2244 16 : {
2245 16 : tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
2246 16 : if (mask
2247 : )
2248 : {
2249 16 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail763;
2250 16 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail763;
2251 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail763;
2252 16 : {
2253 16 : tree res_op0;
2254 16 : {
2255 16 : tree _o1[2], _r1;
2256 16 : {
2257 16 : tree _o2[1], _r2;
2258 16 : _o2[0] = captures[2];
2259 16 : if (TREE_TYPE (_o2[0]) != type)
2260 : {
2261 16 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
2262 : }
2263 : else
2264 : _r2 = _o2[0];
2265 16 : _o1[0] = _r2;
2266 : }
2267 16 : _o1[1] = captures[4];
2268 16 : _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2269 16 : res_op0 = _r1;
2270 : }
2271 16 : tree res_op1;
2272 16 : res_op1 = mask;
2273 16 : tree _r;
2274 16 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2275 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 628, __FILE__, __LINE__, true);
2276 16 : return _r;
2277 : }
2278 : next_after_fail763:;
2279 : }
2280 : }
2281 : }
2282 : return NULL_TREE;
2283 : }
2284 :
2285 : tree
2286 2227 : generic_simplify_437 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2287 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2288 : const enum tree_code ARG_UNUSED (eqne))
2289 : {
2290 2227 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2291 2227 : if ((integer_zerop (captures[1]) || integer_onep (captures[1]))
2292 : )
2293 : {
2294 2225 : if ((eqne == EQ_EXPR) ^ integer_zerop (captures[1])
2295 : )
2296 : {
2297 1571 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail774;
2298 1571 : {
2299 1571 : tree res_op0;
2300 1571 : res_op0 = captures[0];
2301 1571 : tree _r;
2302 1571 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2303 1571 : if (TREE_SIDE_EFFECTS (captures[1]))
2304 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2305 1571 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
2306 1571 : return _r;
2307 : }
2308 0 : next_after_fail774:;
2309 : }
2310 : else
2311 : {
2312 654 : if (types_match (type, TREE_TYPE (captures[0]))
2313 : )
2314 : {
2315 41 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail775;
2316 41 : {
2317 41 : tree res_op0;
2318 41 : res_op0 = captures[0];
2319 41 : tree res_op1;
2320 41 : res_op1 = build_one_cst (type);
2321 41 : tree _r;
2322 41 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2323 41 : if (TREE_SIDE_EFFECTS (captures[1]))
2324 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2325 41 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 639, __FILE__, __LINE__, true);
2326 41 : return _r;
2327 : }
2328 0 : next_after_fail775:;
2329 : }
2330 : }
2331 : }
2332 : return NULL_TREE;
2333 : }
2334 :
2335 : tree
2336 0 : generic_simplify_445 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2337 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2338 : const combined_fn ARG_UNUSED (copysigns),
2339 : const combined_fn ARG_UNUSED (coss))
2340 : {
2341 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2342 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail795;
2343 0 : {
2344 0 : tree res_op0;
2345 0 : res_op0 = captures[0];
2346 0 : tree _r;
2347 0 : _r = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
2348 0 : if (!_r)
2349 0 : goto next_after_fail795;
2350 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2351 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2352 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 647, __FILE__, __LINE__, true);
2353 : return _r;
2354 : }
2355 : next_after_fail795:;
2356 : return NULL_TREE;
2357 : }
2358 :
2359 : tree
2360 0 : generic_simplify_448 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2361 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2362 : const combined_fn ARG_UNUSED (copysigns),
2363 : const combined_fn ARG_UNUSED (pows))
2364 : {
2365 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2366 0 : {
2367 0 : HOST_WIDE_INT n;
2368 0 : if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0
2369 : )
2370 : {
2371 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail798;
2372 0 : {
2373 0 : tree res_op0;
2374 0 : res_op0 = captures[0];
2375 0 : tree res_op1;
2376 0 : res_op1 = captures[2];
2377 0 : tree _r;
2378 0 : _r = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
2379 0 : if (!_r)
2380 0 : goto next_after_fail798;
2381 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2382 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2383 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2384 0 : return _r;
2385 : }
2386 0 : next_after_fail798:;
2387 : }
2388 : }
2389 0 : return NULL_TREE;
2390 : }
2391 :
2392 : tree
2393 0 : generic_simplify_450 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2394 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2395 : const combined_fn ARG_UNUSED (pow))
2396 : {
2397 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2398 0 : if (flag_unsafe_math_optimizations
2399 : )
2400 : {
2401 0 : if (! HONOR_INFINITIES (type)
2402 0 : && ! flag_trapping_math
2403 0 : && ! flag_errno_math
2404 : )
2405 : {
2406 0 : if (! HONOR_NANS (type) && ! HONOR_SIGNED_ZEROS (type)
2407 : )
2408 : {
2409 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail800;
2410 0 : {
2411 0 : tree _r;
2412 0 : _r = captures[0];
2413 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2414 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2415 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 652, __FILE__, __LINE__, true);
2416 0 : return _r;
2417 : }
2418 0 : next_after_fail800:;
2419 : }
2420 : }
2421 : }
2422 : return NULL_TREE;
2423 : }
2424 :
2425 : tree
2426 0 : generic_simplify_454 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2427 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2428 : const combined_fn ARG_UNUSED (copysigns),
2429 : const combined_fn ARG_UNUSED (hypots))
2430 : {
2431 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2432 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail804;
2433 0 : {
2434 0 : tree res_op0;
2435 0 : res_op0 = captures[0];
2436 0 : tree res_op1;
2437 0 : res_op1 = captures[1];
2438 0 : tree _r;
2439 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2440 0 : if (!_r)
2441 0 : goto next_after_fail804;
2442 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2443 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2444 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 656, __FILE__, __LINE__, true);
2445 : return _r;
2446 : }
2447 : next_after_fail804:;
2448 : return NULL_TREE;
2449 : }
2450 :
2451 : tree
2452 21 : generic_simplify_459 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2453 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2454 : {
2455 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2456 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2457 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2458 : )
2459 : {
2460 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail809;
2461 0 : {
2462 0 : tree res_op0;
2463 0 : res_op0 = captures[0];
2464 0 : tree res_op1;
2465 0 : res_op1 = captures[1];
2466 0 : tree _r;
2467 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2468 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 661, __FILE__, __LINE__, true);
2469 0 : return _r;
2470 : }
2471 0 : next_after_fail809:;
2472 : }
2473 : return NULL_TREE;
2474 : }
2475 :
2476 : tree
2477 0 : generic_simplify_464 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2478 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2479 : {
2480 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2481 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail814;
2482 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail814;
2483 0 : {
2484 0 : tree res_op0;
2485 0 : res_op0 = captures[0];
2486 0 : tree res_op1;
2487 0 : {
2488 0 : tree _o1[1], _r1;
2489 0 : _o1[0] = captures[5];
2490 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2491 0 : res_op1 = _r1;
2492 : }
2493 0 : tree _r;
2494 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2495 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 665, __FILE__, __LINE__, true);
2496 : return _r;
2497 : }
2498 : next_after_fail814:;
2499 : return NULL_TREE;
2500 : }
2501 :
2502 : tree
2503 0 : generic_simplify_470 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2504 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2505 : {
2506 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2507 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail820;
2508 0 : {
2509 0 : tree res_op0;
2510 0 : res_op0 = captures[0];
2511 0 : tree res_op1;
2512 0 : res_op1 = captures[1];
2513 0 : tree _r;
2514 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2515 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
2516 : return _r;
2517 : }
2518 0 : next_after_fail820:;
2519 0 : return NULL_TREE;
2520 : }
2521 :
2522 : tree
2523 1667 : generic_simplify_473 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2524 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2525 : {
2526 1667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2527 1667 : {
2528 1667 : bool wascmp;
2529 1667 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2530 1667 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
2531 : )
2532 : {
2533 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail823;
2534 8 : {
2535 8 : tree _r;
2536 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2537 8 : if (TREE_SIDE_EFFECTS (captures[0]))
2538 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2539 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2540 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2541 8 : if (TREE_SIDE_EFFECTS (captures[2]))
2542 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2543 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2544 8 : return _r;
2545 : }
2546 0 : next_after_fail823:;
2547 : }
2548 : }
2549 1659 : return NULL_TREE;
2550 : }
2551 :
2552 : tree
2553 0 : generic_simplify_485 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2554 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2555 : const enum tree_code ARG_UNUSED (eqne))
2556 : {
2557 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2558 0 : if (eqne == EQ_EXPR
2559 : )
2560 : {
2561 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail856;
2562 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail856;
2563 0 : {
2564 0 : tree _r;
2565 0 : _r = constant_boolean_node (false, type);
2566 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2567 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2568 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
2569 0 : return _r;
2570 : }
2571 : next_after_fail856:;
2572 : }
2573 : else
2574 : {
2575 0 : if (eqne == NE_EXPR
2576 : )
2577 : {
2578 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail857;
2579 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail857;
2580 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail857;
2581 0 : {
2582 0 : tree _r;
2583 0 : _r = captures[0];
2584 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
2585 0 : return _r;
2586 : }
2587 : next_after_fail857:;
2588 : }
2589 : }
2590 : return NULL_TREE;
2591 : }
2592 :
2593 : tree
2594 4 : generic_simplify_493 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2595 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2596 : {
2597 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2598 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail877;
2599 4 : {
2600 4 : tree res_op0;
2601 4 : res_op0 = captures[1];
2602 4 : tree res_op1;
2603 4 : {
2604 4 : tree _o1[2], _r1;
2605 4 : _o1[0] = captures[2];
2606 4 : _o1[1] = captures[3];
2607 4 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2608 4 : if (EXPR_P (_r1))
2609 2 : goto next_after_fail877;
2610 2 : res_op1 = _r1;
2611 : }
2612 2 : tree _r;
2613 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2614 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 699, __FILE__, __LINE__, true);
2615 : return _r;
2616 : }
2617 : next_after_fail877:;
2618 : return NULL_TREE;
2619 : }
2620 :
2621 : tree
2622 41168 : generic_simplify_497 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2623 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2624 : const enum tree_code ARG_UNUSED (shift))
2625 : {
2626 41168 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2627 41168 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2628 23571 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2629 23571 : && tree_fits_uhwi_p (captures[4])
2630 23571 : && tree_to_uhwi (captures[4]) > 0
2631 64737 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2632 : )
2633 : {
2634 23569 : {
2635 23569 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2636 23569 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2637 23569 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2638 23569 : tree shift_type = TREE_TYPE (captures[2]);
2639 23569 : unsigned int prec;
2640 23569 : if (shift == LSHIFT_EXPR)
2641 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2642 23569 : else if (shift == RSHIFT_EXPR
2643 23569 : && type_has_mode_precision_p (shift_type))
2644 : {
2645 23569 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2646 23569 : tree arg00 = captures[3];
2647 23569 : if (captures[2] != captures[3]
2648 23569 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2649 : {
2650 0 : tree inner_type = TREE_TYPE (captures[3]);
2651 0 : if (type_has_mode_precision_p (inner_type)
2652 0 : && TYPE_PRECISION (inner_type) < prec)
2653 : {
2654 0 : prec = TYPE_PRECISION (inner_type);
2655 0 : if (shiftc < prec)
2656 0 : shift_type = inner_type;
2657 : }
2658 : }
2659 23569 : zerobits = HOST_WIDE_INT_M1U;
2660 23569 : if (shiftc < prec)
2661 : {
2662 23569 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2663 23569 : zerobits <<= prec - shiftc;
2664 : }
2665 23569 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2666 23569 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2667 : {
2668 98 : if ((mask & zerobits) == 0)
2669 82 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2670 : else
2671 : zerobits = 0;
2672 : }
2673 : }
2674 23553 : if ((mask & zerobits) == mask
2675 : )
2676 : {
2677 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail887;
2678 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail887;
2679 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail887;
2680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail887;
2681 0 : {
2682 0 : tree _r;
2683 0 : _r = build_int_cst (type, 0);
2684 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
2685 0 : return _r;
2686 : }
2687 : next_after_fail887:;
2688 : }
2689 : else
2690 : {
2691 23569 : {
2692 23569 : newmask = mask | zerobits;
2693 23569 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2694 : )
2695 : {
2696 : {
2697 109 : for (prec = BITS_PER_UNIT;
2698 181 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2699 171 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2700 : break;
2701 72 : if (prec < HOST_BITS_PER_WIDE_INT
2702 10 : || newmask == HOST_WIDE_INT_M1U
2703 : )
2704 : {
2705 72 : {
2706 72 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2707 72 : if (!tree_int_cst_equal (newmaskt, captures[5])
2708 : )
2709 : {
2710 72 : if (shift_type != TREE_TYPE (captures[2])
2711 : )
2712 : {
2713 11 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail888;
2714 11 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail888;
2715 11 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail888;
2716 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail888;
2717 11 : {
2718 11 : tree res_op0;
2719 11 : {
2720 11 : tree _o1[1], _r1;
2721 11 : {
2722 11 : tree _o2[2], _r2;
2723 11 : {
2724 11 : tree _o3[1], _r3;
2725 11 : _o3[0] = captures[2];
2726 11 : if (TREE_TYPE (_o3[0]) != shift_type)
2727 : {
2728 11 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2729 : }
2730 : else
2731 : _r3 = _o3[0];
2732 11 : _o2[0] = _r3;
2733 : }
2734 11 : _o2[1] = captures[4];
2735 11 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2736 11 : _o1[0] = _r2;
2737 : }
2738 11 : if (TREE_TYPE (_o1[0]) != type)
2739 : {
2740 11 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2741 : }
2742 : else
2743 : _r1 = _o1[0];
2744 11 : res_op0 = _r1;
2745 : }
2746 11 : tree res_op1;
2747 11 : res_op1 = newmaskt;
2748 11 : tree _r;
2749 11 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2750 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 701, __FILE__, __LINE__, true);
2751 11 : return _r;
2752 : }
2753 : next_after_fail888:;
2754 : }
2755 : else
2756 : {
2757 61 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail889;
2758 61 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail889;
2759 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail889;
2760 61 : {
2761 61 : tree res_op0;
2762 61 : res_op0 = captures[0];
2763 61 : tree res_op1;
2764 61 : res_op1 = newmaskt;
2765 61 : tree _r;
2766 61 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2767 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 702, __FILE__, __LINE__, true);
2768 61 : return _r;
2769 : }
2770 : next_after_fail889:;
2771 : }
2772 : }
2773 : }
2774 : }
2775 : }
2776 : }
2777 : }
2778 : }
2779 : }
2780 : }
2781 : return NULL_TREE;
2782 : }
2783 :
2784 : tree
2785 17 : generic_simplify_508 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2786 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2787 : {
2788 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2789 17 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail902;
2790 17 : {
2791 17 : tree res_op0;
2792 17 : res_op0 = captures[0];
2793 17 : tree res_op1;
2794 17 : res_op1 = captures[1];
2795 17 : tree _r;
2796 17 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2797 17 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 714, __FILE__, __LINE__, true);
2798 : return _r;
2799 : }
2800 0 : next_after_fail902:;
2801 0 : return NULL_TREE;
2802 : }
2803 :
2804 : tree
2805 0 : generic_simplify_513 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2806 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2807 : {
2808 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2809 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2810 : )
2811 : {
2812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
2813 0 : {
2814 0 : tree res_op0;
2815 0 : {
2816 0 : tree _o1[2], _r1;
2817 0 : _o1[0] = captures[0];
2818 0 : _o1[1] = captures[1];
2819 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2820 0 : res_op0 = _r1;
2821 : }
2822 0 : tree _r;
2823 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2824 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
2825 0 : return _r;
2826 : }
2827 0 : next_after_fail907:;
2828 : }
2829 : return NULL_TREE;
2830 : }
2831 :
2832 : tree
2833 39309 : generic_simplify_519 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2834 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2835 : {
2836 39309 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2837 39309 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
2838 39309 : && !HONOR_SIGNED_ZEROS (type)
2839 : )
2840 : {
2841 39309 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail914;
2842 39309 : {
2843 39309 : tree res_op0;
2844 39309 : {
2845 39309 : tree _o1[1], _r1;
2846 39309 : _o1[0] = captures[1];
2847 39309 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2848 39309 : res_op0 = _r1;
2849 : }
2850 39309 : tree res_op1;
2851 39309 : res_op1 = captures[0];
2852 39309 : tree _r;
2853 39309 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2854 39309 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
2855 39309 : return _r;
2856 : }
2857 0 : next_after_fail914:;
2858 : }
2859 : return NULL_TREE;
2860 : }
2861 :
2862 : tree
2863 0 : generic_simplify_526 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2864 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2865 : const enum tree_code ARG_UNUSED (tcc_comparison))
2866 : {
2867 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2868 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail922;
2869 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail922;
2870 0 : {
2871 0 : tree res_op0;
2872 0 : res_op0 = captures[1];
2873 0 : tree res_op1;
2874 0 : res_op1 = build_one_cst (type);
2875 0 : tree res_op2;
2876 0 : res_op2 = build_zero_cst (type);
2877 0 : tree _r;
2878 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
2879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 732, __FILE__, __LINE__, true);
2880 : return _r;
2881 : }
2882 : next_after_fail922:;
2883 : return NULL_TREE;
2884 : }
2885 :
2886 : tree
2887 0 : generic_simplify_537 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2888 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2889 : const enum tree_code ARG_UNUSED (minmax),
2890 : const enum tree_code ARG_UNUSED (cmp))
2891 : {
2892 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2893 0 : {
2894 0 : poly_int64 off0, off1;
2895 0 : tree base0, base1;
2896 0 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2897 : off0, off1,
2898 : 1
2899 : );
2900 0 : if (equal == 1
2901 : )
2902 : {
2903 0 : if (minmax == MIN_EXPR
2904 : )
2905 : {
2906 0 : if (known_le (off0, off1)
2907 : )
2908 : {
2909 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail938;
2910 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail938;
2911 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail938;
2912 0 : {
2913 0 : tree _r;
2914 0 : _r = captures[0];
2915 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
2916 0 : return _r;
2917 : }
2918 0 : next_after_fail938:;
2919 : }
2920 : else
2921 : {
2922 0 : if (known_gt (off0, off1)
2923 : )
2924 : {
2925 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail939;
2926 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail939;
2927 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail939;
2928 0 : {
2929 0 : tree _r;
2930 0 : _r = captures[2];
2931 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 744, __FILE__, __LINE__, true);
2932 0 : return _r;
2933 : }
2934 0 : next_after_fail939:;
2935 : }
2936 : }
2937 : }
2938 : else
2939 : {
2940 0 : if (known_ge (off0, off1)
2941 : )
2942 : {
2943 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail940;
2944 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail940;
2945 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail940;
2946 0 : {
2947 0 : tree _r;
2948 0 : _r = captures[0];
2949 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 745, __FILE__, __LINE__, true);
2950 0 : return _r;
2951 : }
2952 0 : next_after_fail940:;
2953 : }
2954 : else
2955 : {
2956 0 : if (known_lt (off0, off1)
2957 : )
2958 : {
2959 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail941;
2960 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail941;
2961 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail941;
2962 0 : {
2963 0 : tree _r;
2964 0 : _r = captures[2];
2965 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 746, __FILE__, __LINE__, true);
2966 0 : return _r;
2967 : }
2968 0 : next_after_fail941:;
2969 : }
2970 : }
2971 : }
2972 : }
2973 : }
2974 0 : return NULL_TREE;
2975 : }
2976 :
2977 : tree
2978 0 : generic_simplify_556 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2979 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2980 : const combined_fn ARG_UNUSED (cond_op))
2981 : {
2982 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2983 0 : {
2984 0 : tree op_type = TREE_TYPE (captures[5]);
2985 0 : if (inverse_conditions_p (captures[0], captures[2])
2986 0 : && element_precision (type) == element_precision (op_type)
2987 : )
2988 : {
2989 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail966;
2990 0 : {
2991 0 : tree res_op0;
2992 0 : {
2993 0 : tree _o1[4], _r1;
2994 0 : _o1[0] = captures[2];
2995 0 : _o1[1] = captures[3];
2996 0 : _o1[2] = captures[4];
2997 0 : {
2998 0 : tree _o2[1], _r2;
2999 0 : _o2[0] = captures[1];
3000 0 : if (TREE_TYPE (_o2[0]) != op_type)
3001 : {
3002 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
3003 : }
3004 : else
3005 : _r2 = _o2[0];
3006 0 : _o1[3] = _r2;
3007 : }
3008 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
3009 0 : if (!_r1)
3010 0 : goto next_after_fail966;
3011 0 : res_op0 = _r1;
3012 : }
3013 0 : tree _r;
3014 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3015 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3016 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3017 0 : if (TREE_SIDE_EFFECTS (captures[5]))
3018 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
3019 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 758, __FILE__, __LINE__, true);
3020 0 : return _r;
3021 : }
3022 : next_after_fail966:;
3023 : }
3024 : }
3025 : return NULL_TREE;
3026 : }
3027 :
3028 : tree
3029 5786 : generic_simplify_567 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3030 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
3031 : {
3032 5786 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3033 11572 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3034 5786 : && TYPE_MAX_VALUE (TREE_TYPE (captures[1]))
3035 5786 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (TREE_TYPE (captures[0])))
3036 8082 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
3037 : )
3038 : {
3039 1904 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
3040 : )
3041 : {
3042 929 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail978;
3043 929 : {
3044 929 : tree res_op0;
3045 929 : {
3046 929 : tree _o1[2], _r1;
3047 929 : _o1[0] = captures[1];
3048 929 : {
3049 929 : tree _o2[2], _r2;
3050 929 : _o2[0] = TYPE_MAX_VALUE (TREE_TYPE (captures[1]));
3051 929 : _o2[1] = captures[2];
3052 929 : _r2 = fold_build2_loc (loc, TRUNC_DIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3053 929 : if (EXPR_P (_r2))
3054 0 : goto next_after_fail978;
3055 929 : _o1[1] = _r2;
3056 : }
3057 929 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3058 929 : res_op0 = _r1;
3059 : }
3060 929 : tree _r;
3061 929 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3062 929 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 770, __FILE__, __LINE__, true);
3063 929 : return _r;
3064 : }
3065 : next_after_fail978:;
3066 : }
3067 : else
3068 : {
3069 975 : if (TYPE_MIN_VALUE (TREE_TYPE (captures[1]))
3070 : )
3071 : {
3072 975 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && integer_minus_onep (captures[2])
3073 : )
3074 : {
3075 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail979;
3076 56 : {
3077 56 : tree res_op0;
3078 56 : {
3079 56 : tree _o1[2], _r1;
3080 56 : _o1[0] = captures[1];
3081 56 : _o1[1] = TYPE_MIN_VALUE (TREE_TYPE (captures[1]));
3082 56 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
3083 56 : res_op0 = _r1;
3084 : }
3085 56 : tree _r;
3086 56 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3087 56 : if (TREE_SIDE_EFFECTS (captures[2]))
3088 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3089 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 771, __FILE__, __LINE__, true);
3090 56 : return _r;
3091 : }
3092 0 : next_after_fail979:;
3093 : }
3094 : else
3095 : {
3096 919 : {
3097 919 : tree div = fold_convert (TREE_TYPE (captures[1]), captures[2]);
3098 1838 : tree lo = int_const_binop (TRUNC_DIV_EXPR,
3099 919 : TYPE_MIN_VALUE (TREE_TYPE (captures[1])), div);
3100 1838 : tree hi = int_const_binop (TRUNC_DIV_EXPR,
3101 919 : TYPE_MAX_VALUE (TREE_TYPE (captures[1])), div);
3102 919 : tree etype = range_check_type (TREE_TYPE (captures[1]));
3103 919 : if (etype)
3104 : {
3105 919 : if (wi::neg_p (wi::to_wide (div)))
3106 88 : std::swap (lo, hi);
3107 919 : lo = fold_convert (etype, lo);
3108 919 : hi = fold_convert (etype, hi);
3109 919 : hi = int_const_binop (MINUS_EXPR, hi, lo);
3110 : }
3111 919 : if (etype
3112 : )
3113 : {
3114 919 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail980;
3115 919 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail980;
3116 919 : {
3117 919 : tree res_op0;
3118 919 : {
3119 919 : tree _o1[2], _r1;
3120 919 : {
3121 919 : tree _o2[2], _r2;
3122 919 : {
3123 919 : tree _o3[1], _r3;
3124 919 : _o3[0] = captures[1];
3125 919 : if (TREE_TYPE (_o3[0]) != etype)
3126 : {
3127 919 : _r3 = fold_build1_loc (loc, NOP_EXPR, etype, _o3[0]);
3128 : }
3129 : else
3130 : _r3 = _o3[0];
3131 919 : _o2[0] = _r3;
3132 : }
3133 919 : _o2[1] = lo;
3134 919 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3135 919 : _o1[0] = _r2;
3136 : }
3137 919 : _o1[1] = hi;
3138 919 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3139 919 : res_op0 = _r1;
3140 : }
3141 919 : tree _r;
3142 919 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3143 919 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3144 919 : return _r;
3145 : }
3146 : next_after_fail980:;
3147 : }
3148 : }
3149 : }
3150 : }
3151 : }
3152 : }
3153 : return NULL_TREE;
3154 : }
3155 :
3156 : tree
3157 0 : generic_simplify_608 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3158 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3159 : {
3160 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3161 0 : if (canonicalize_math_after_vectorization_p ()
3162 : )
3163 : {
3164 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1021;
3165 : {
3166 : tree res_op0;
3167 : res_op0 = captures[0];
3168 : tree res_op1;
3169 : res_op1 = captures[1];
3170 : tree res_op2;
3171 : res_op2 = captures[2];
3172 : tree _r;
3173 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3174 : if (!_r)
3175 : goto next_after_fail1021;
3176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 813, __FILE__, __LINE__, true);
3177 : return _r;
3178 : }
3179 0 : next_after_fail1021:;
3180 : }
3181 0 : return NULL_TREE;
3182 : }
3183 :
3184 : tree
3185 0 : generic_simplify_617 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3186 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3187 : const combined_fn ARG_UNUSED (ctz))
3188 : {
3189 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3190 0 : {
3191 0 : tree t = TREE_TYPE (captures[0]);
3192 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1030;
3193 0 : {
3194 0 : tree res_op0;
3195 0 : {
3196 0 : tree _o1[1], _r1;
3197 0 : _o1[0] = captures[1];
3198 0 : if (TREE_TYPE (_o1[0]) != t)
3199 : {
3200 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3201 : }
3202 : else
3203 : _r1 = _o1[0];
3204 0 : res_op0 = _r1;
3205 : }
3206 0 : tree _r;
3207 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3208 0 : if (!_r)
3209 0 : goto next_after_fail1030;
3210 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 822, __FILE__, __LINE__, true);
3211 : return _r;
3212 : }
3213 : next_after_fail1030:;
3214 : }
3215 : return NULL_TREE;
3216 : }
3217 :
3218 : tree
3219 0 : generic_simplify_626 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3220 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3221 : const combined_fn ARG_UNUSED (pfun))
3222 : {
3223 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3224 0 : if (INTEGRAL_TYPE_P (type)
3225 : )
3226 : {
3227 0 : {
3228 0 : wide_int nz = tree_nonzero_bits (captures[0]);
3229 0 : if (nz == 1
3230 : )
3231 : {
3232 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1039;
3233 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1039;
3234 0 : {
3235 0 : tree res_op0;
3236 0 : res_op0 = captures[0];
3237 0 : tree _r;
3238 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3239 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3240 0 : return _r;
3241 : }
3242 0 : next_after_fail1039:;
3243 : }
3244 : else
3245 : {
3246 0 : if (wi::popcount (nz) == 1
3247 : )
3248 : {
3249 0 : {
3250 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3251 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1040;
3252 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1040;
3253 0 : {
3254 0 : tree res_op0;
3255 0 : {
3256 0 : tree _o1[2], _r1;
3257 0 : {
3258 0 : tree _o2[1], _r2;
3259 0 : _o2[0] = captures[0];
3260 0 : if (TREE_TYPE (_o2[0]) != utype)
3261 : {
3262 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3263 : }
3264 : else
3265 : _r2 = _o2[0];
3266 0 : _o1[0] = _r2;
3267 : }
3268 0 : _o1[1] = build_int_cst (integer_type_node,
3269 0 : wi::ctz (nz));
3270 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o1[0], _o1[1]);
3271 0 : res_op0 = _r1;
3272 : }
3273 0 : tree _r;
3274 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3275 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3276 0 : return _r;
3277 : }
3278 0 : next_after_fail1040:;
3279 : }
3280 : }
3281 : }
3282 0 : }
3283 : }
3284 : return NULL_TREE;
3285 : }
3286 :
3287 : tree
3288 2788568 : generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3289 : {
3290 2788568 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3291 2788568 : switch (TREE_CODE (_p0))
3292 : {
3293 1134 : case BIT_AND_EXPR:
3294 1134 : {
3295 1134 : tree _q20 = TREE_OPERAND (_p0, 0);
3296 1134 : tree _q21 = TREE_OPERAND (_p0, 1);
3297 1134 : switch (TREE_CODE (_q20))
3298 : {
3299 33 : case BIT_NOT_EXPR:
3300 33 : {
3301 33 : tree _q30 = TREE_OPERAND (_q20, 0);
3302 33 : {
3303 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3304 33 : tree res = generic_simplify_506 (loc, type, _p0, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
3305 33 : if (res) return res;
3306 : }
3307 0 : break;
3308 : }
3309 1101 : default:;
3310 : }
3311 1101 : switch (TREE_CODE (_q21))
3312 : {
3313 9 : case BIT_NOT_EXPR:
3314 9 : {
3315 9 : tree _q40 = TREE_OPERAND (_q21, 0);
3316 9 : {
3317 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3318 9 : tree res = generic_simplify_506 (loc, type, _p0, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
3319 9 : if (res) return res;
3320 : }
3321 0 : break;
3322 : }
3323 : default:;
3324 : }
3325 : break;
3326 : }
3327 1265 : case BIT_IOR_EXPR:
3328 1265 : {
3329 1265 : tree _q20 = TREE_OPERAND (_p0, 0);
3330 1265 : tree _q21 = TREE_OPERAND (_p0, 1);
3331 1265 : switch (TREE_CODE (_q20))
3332 : {
3333 68 : case BIT_NOT_EXPR:
3334 68 : {
3335 68 : tree _q30 = TREE_OPERAND (_q20, 0);
3336 68 : {
3337 68 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3338 68 : tree res = generic_simplify_506 (loc, type, _p0, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
3339 68 : if (res) return res;
3340 : }
3341 0 : break;
3342 : }
3343 1197 : default:;
3344 : }
3345 1197 : switch (TREE_CODE (_q21))
3346 : {
3347 40 : case BIT_NOT_EXPR:
3348 40 : {
3349 40 : tree _q40 = TREE_OPERAND (_q21, 0);
3350 40 : {
3351 40 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3352 40 : tree res = generic_simplify_506 (loc, type, _p0, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
3353 40 : if (res) return res;
3354 : }
3355 0 : break;
3356 : }
3357 : default:;
3358 : }
3359 : break;
3360 : }
3361 137 : case MINUS_EXPR:
3362 137 : {
3363 137 : tree _q20 = TREE_OPERAND (_p0, 0);
3364 137 : tree _q21 = TREE_OPERAND (_p0, 1);
3365 137 : switch (TREE_CODE (_q20))
3366 : {
3367 1 : case BIT_NOT_EXPR:
3368 1 : {
3369 1 : tree _q30 = TREE_OPERAND (_q20, 0);
3370 1 : {
3371 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3372 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1080;
3373 1 : {
3374 1 : tree res_op0;
3375 1 : res_op0 = captures[0];
3376 1 : tree res_op1;
3377 1 : res_op1 = captures[1];
3378 1 : tree _r;
3379 1 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3380 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
3381 1 : return _r;
3382 : }
3383 0 : next_after_fail1080:;
3384 : }
3385 0 : break;
3386 : }
3387 136 : default:;
3388 : }
3389 136 : {
3390 136 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3391 136 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1081;
3392 136 : {
3393 136 : tree res_op0;
3394 136 : {
3395 136 : tree _o1[1], _r1;
3396 136 : _o1[0] = captures[1];
3397 136 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3398 136 : res_op0 = _r1;
3399 : }
3400 136 : tree res_op1;
3401 136 : res_op1 = captures[2];
3402 136 : tree _r;
3403 136 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3404 136 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
3405 136 : return _r;
3406 : }
3407 0 : next_after_fail1081:;
3408 : }
3409 0 : if (integer_each_onep (_q21))
3410 : {
3411 0 : {
3412 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3413 0 : tree res = generic_simplify_507 (loc, type, _p0, captures);
3414 0 : if (res) return res;
3415 : }
3416 : }
3417 : break;
3418 : }
3419 106095 : case PLUS_EXPR:
3420 106095 : {
3421 106095 : tree _q20 = TREE_OPERAND (_p0, 0);
3422 106095 : tree _q21 = TREE_OPERAND (_p0, 1);
3423 106095 : switch (TREE_CODE (_q20))
3424 : {
3425 16 : case BIT_NOT_EXPR:
3426 16 : {
3427 16 : tree _q30 = TREE_OPERAND (_q20, 0);
3428 16 : {
3429 16 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3430 16 : tree res = generic_simplify_508 (loc, type, _p0, captures);
3431 16 : if (res) return res;
3432 : }
3433 0 : break;
3434 : }
3435 106079 : default:;
3436 : }
3437 106079 : switch (TREE_CODE (_q21))
3438 : {
3439 1 : case BIT_NOT_EXPR:
3440 1 : {
3441 1 : tree _q40 = TREE_OPERAND (_q21, 0);
3442 1 : {
3443 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3444 1 : tree res = generic_simplify_508 (loc, type, _p0, captures);
3445 1 : if (res) return res;
3446 : }
3447 0 : break;
3448 : }
3449 79045 : case INTEGER_CST:
3450 79045 : {
3451 79045 : {
3452 79045 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3453 79045 : if ((INTEGRAL_TYPE_P (type)
3454 79045 : && TYPE_UNSIGNED (type))
3455 93003 : || (!TYPE_OVERFLOW_SANITIZED (type)
3456 13950 : && may_negate_without_overflow_p (captures[2]))
3457 : )
3458 : {
3459 79030 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1082;
3460 79030 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1082;
3461 79030 : {
3462 79030 : tree res_op0;
3463 79030 : {
3464 79030 : tree _o1[1], _r1;
3465 79030 : _o1[0] = captures[1];
3466 79030 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3467 79030 : res_op0 = _r1;
3468 : }
3469 79030 : tree res_op1;
3470 79030 : res_op1 = const_unop (NEGATE_EXPR, type, captures[2]);
3471 79030 : tree _r;
3472 79030 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3473 79030 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 860, __FILE__, __LINE__, true);
3474 79030 : return _r;
3475 : }
3476 15 : next_after_fail1082:;
3477 : }
3478 : }
3479 15 : break;
3480 : }
3481 27048 : default:;
3482 : }
3483 27048 : if (integer_all_onesp (_q21))
3484 : {
3485 0 : {
3486 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3487 0 : tree res = generic_simplify_509 (loc, type, _p0, captures);
3488 0 : if (res) return res;
3489 : }
3490 : }
3491 : break;
3492 : }
3493 430 : case RSHIFT_EXPR:
3494 430 : {
3495 430 : tree _q20 = TREE_OPERAND (_p0, 0);
3496 430 : tree _q21 = TREE_OPERAND (_p0, 1);
3497 430 : {
3498 430 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3499 430 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
3500 : )
3501 : {
3502 295 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1083;
3503 295 : {
3504 295 : tree res_op0;
3505 295 : {
3506 295 : tree _o1[1], _r1;
3507 295 : _o1[0] = captures[1];
3508 295 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3509 295 : if (EXPR_P (_r1))
3510 289 : goto next_after_fail1083;
3511 6 : res_op0 = _r1;
3512 : }
3513 6 : tree res_op1;
3514 6 : res_op1 = captures[2];
3515 6 : tree _r;
3516 6 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
3517 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 861, __FILE__, __LINE__, true);
3518 6 : return _r;
3519 : }
3520 409 : next_after_fail1083:;
3521 : }
3522 : else
3523 : {
3524 270 : if (INTEGRAL_TYPE_P (type)
3525 270 : && !wi::neg_p (tree_nonzero_bits (captures[1]))
3526 : )
3527 : {
3528 15 : {
3529 15 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
3530 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1084;
3531 15 : {
3532 15 : tree res_op0;
3533 15 : {
3534 15 : tree _o1[2], _r1;
3535 15 : {
3536 15 : tree _o2[1], _r2;
3537 15 : {
3538 15 : tree _o3[1], _r3;
3539 15 : _o3[0] = captures[1];
3540 15 : if (TREE_TYPE (_o3[0]) != stype)
3541 : {
3542 15 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
3543 : }
3544 : else
3545 : _r3 = _o3[0];
3546 15 : _o2[0] = _r3;
3547 : }
3548 15 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3549 15 : if (EXPR_P (_r2))
3550 0 : goto next_after_fail1084;
3551 15 : _o1[0] = _r2;
3552 : }
3553 15 : _o1[1] = captures[2];
3554 15 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3555 15 : res_op0 = _r1;
3556 : }
3557 15 : tree _r;
3558 15 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3559 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 862, __FILE__, __LINE__, true);
3560 15 : return _r;
3561 : }
3562 409 : next_after_fail1084:;
3563 : }
3564 : }
3565 : }
3566 : }
3567 409 : switch (TREE_CODE (_q20))
3568 : {
3569 72 : CASE_CONVERT:
3570 72 : {
3571 72 : tree _q30 = TREE_OPERAND (_q20, 0);
3572 72 : switch (TREE_CODE (_q30))
3573 : {
3574 2 : case BIT_NOT_EXPR:
3575 2 : {
3576 2 : tree _q40 = TREE_OPERAND (_q30, 0);
3577 2 : {
3578 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
3579 2 : tree res = generic_simplify_510 (loc, type, _p0, captures);
3580 2 : if (res) return res;
3581 : }
3582 1 : break;
3583 : }
3584 : default:;
3585 : }
3586 : break;
3587 : }
3588 29 : case BIT_NOT_EXPR:
3589 29 : {
3590 29 : tree _q30 = TREE_OPERAND (_q20, 0);
3591 29 : {
3592 29 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
3593 29 : tree res = generic_simplify_510 (loc, type, _p0, captures);
3594 29 : if (res) return res;
3595 : }
3596 8 : break;
3597 : }
3598 : default:;
3599 : }
3600 : break;
3601 : }
3602 86 : case BIT_NOT_EXPR:
3603 86 : {
3604 86 : tree _q20 = TREE_OPERAND (_p0, 0);
3605 86 : {
3606 86 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3607 86 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1085;
3608 86 : {
3609 86 : tree res_op0;
3610 86 : res_op0 = captures[0];
3611 86 : tree _r;
3612 86 : _r = non_lvalue_loc (loc, res_op0);
3613 86 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 863, __FILE__, __LINE__, true);
3614 2788568 : return _r;
3615 : }
3616 0 : next_after_fail1085:;
3617 : }
3618 0 : break;
3619 : }
3620 1136532 : CASE_CONVERT:
3621 1136532 : {
3622 1136532 : tree _q20 = TREE_OPERAND (_p0, 0);
3623 1136532 : switch (TREE_CODE (_q20))
3624 : {
3625 25 : case NEGATE_EXPR:
3626 25 : {
3627 25 : tree _q30 = TREE_OPERAND (_q20, 0);
3628 25 : {
3629 25 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3630 25 : tree res = generic_simplify_511 (loc, type, _p0, captures);
3631 25 : if (res) return res;
3632 : }
3633 0 : break;
3634 : }
3635 904 : case MINUS_EXPR:
3636 904 : {
3637 904 : tree _q30 = TREE_OPERAND (_q20, 0);
3638 904 : tree _q31 = TREE_OPERAND (_q20, 1);
3639 904 : if (integer_each_onep (_q31))
3640 : {
3641 28 : {
3642 28 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3643 28 : tree res = generic_simplify_507 (loc, type, _p0, captures);
3644 28 : if (res) return res;
3645 : }
3646 : }
3647 : break;
3648 : }
3649 56869 : case PLUS_EXPR:
3650 56869 : {
3651 56869 : tree _q30 = TREE_OPERAND (_q20, 0);
3652 56869 : tree _q31 = TREE_OPERAND (_q20, 1);
3653 56869 : if (integer_all_onesp (_q31))
3654 : {
3655 3809 : {
3656 3809 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3657 3809 : tree res = generic_simplify_509 (loc, type, _p0, captures);
3658 3809 : if (res) return res;
3659 : }
3660 : }
3661 : break;
3662 : }
3663 145 : case BIT_XOR_EXPR:
3664 145 : {
3665 145 : tree _q30 = TREE_OPERAND (_q20, 0);
3666 145 : tree _q31 = TREE_OPERAND (_q20, 1);
3667 145 : switch (TREE_CODE (_q31))
3668 : {
3669 7 : case INTEGER_CST:
3670 7 : {
3671 7 : {
3672 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3673 7 : tree res = generic_simplify_512 (loc, type, _p0, captures);
3674 7 : if (res) return res;
3675 : }
3676 0 : break;
3677 : }
3678 138 : default:;
3679 : }
3680 138 : switch (TREE_CODE (_q30))
3681 : {
3682 0 : case BIT_NOT_EXPR:
3683 0 : {
3684 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3685 0 : {
3686 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
3687 0 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3688 0 : if (res) return res;
3689 : }
3690 0 : break;
3691 : }
3692 138 : default:;
3693 : }
3694 138 : switch (TREE_CODE (_q31))
3695 : {
3696 0 : case BIT_NOT_EXPR:
3697 0 : {
3698 0 : tree _q50 = TREE_OPERAND (_q31, 0);
3699 0 : {
3700 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
3701 0 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3702 0 : if (res) return res;
3703 : }
3704 0 : break;
3705 : }
3706 : default:;
3707 : }
3708 : break;
3709 : }
3710 93 : case RSHIFT_EXPR:
3711 93 : {
3712 93 : tree _q30 = TREE_OPERAND (_q20, 0);
3713 93 : tree _q31 = TREE_OPERAND (_q20, 1);
3714 93 : switch (TREE_CODE (_q30))
3715 : {
3716 17 : CASE_CONVERT:
3717 17 : {
3718 17 : tree _q40 = TREE_OPERAND (_q30, 0);
3719 17 : switch (TREE_CODE (_q40))
3720 : {
3721 1 : case BIT_NOT_EXPR:
3722 1 : {
3723 1 : tree _q50 = TREE_OPERAND (_q40, 0);
3724 1 : {
3725 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3726 1 : tree res = generic_simplify_514 (loc, type, _p0, captures);
3727 1 : if (res) return res;
3728 : }
3729 0 : break;
3730 : }
3731 : default:;
3732 : }
3733 : break;
3734 : }
3735 3 : case BIT_NOT_EXPR:
3736 3 : {
3737 3 : tree _q40 = TREE_OPERAND (_q30, 0);
3738 3 : {
3739 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3740 3 : tree res = generic_simplify_514 (loc, type, _p0, captures);
3741 3 : if (res) return res;
3742 : }
3743 1 : break;
3744 : }
3745 : default:;
3746 : }
3747 : break;
3748 : }
3749 0 : case LROTATE_EXPR:
3750 0 : {
3751 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3752 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3753 0 : switch (TREE_CODE (_q30))
3754 : {
3755 0 : CASE_CONVERT:
3756 0 : {
3757 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3758 0 : switch (TREE_CODE (_q40))
3759 : {
3760 0 : case BIT_NOT_EXPR:
3761 0 : {
3762 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3763 0 : {
3764 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3765 0 : tree res = generic_simplify_515 (loc, type, _p0, captures, LROTATE_EXPR);
3766 0 : if (res) return res;
3767 : }
3768 0 : break;
3769 : }
3770 : default:;
3771 : }
3772 : break;
3773 : }
3774 0 : case BIT_NOT_EXPR:
3775 0 : {
3776 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3777 0 : {
3778 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3779 0 : tree res = generic_simplify_515 (loc, type, _p0, captures, LROTATE_EXPR);
3780 0 : if (res) return res;
3781 : }
3782 0 : break;
3783 : }
3784 : default:;
3785 : }
3786 : break;
3787 : }
3788 0 : case RROTATE_EXPR:
3789 0 : {
3790 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3791 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3792 0 : switch (TREE_CODE (_q30))
3793 : {
3794 0 : CASE_CONVERT:
3795 0 : {
3796 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3797 0 : switch (TREE_CODE (_q40))
3798 : {
3799 0 : case BIT_NOT_EXPR:
3800 0 : {
3801 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3802 0 : {
3803 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
3804 0 : tree res = generic_simplify_515 (loc, type, _p0, captures, RROTATE_EXPR);
3805 0 : if (res) return res;
3806 : }
3807 0 : break;
3808 : }
3809 : default:;
3810 : }
3811 : break;
3812 : }
3813 0 : case BIT_NOT_EXPR:
3814 0 : {
3815 0 : tree _q40 = TREE_OPERAND (_q30, 0);
3816 0 : {
3817 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
3818 0 : tree res = generic_simplify_515 (loc, type, _p0, captures, RROTATE_EXPR);
3819 0 : if (res) return res;
3820 : }
3821 0 : break;
3822 : }
3823 : default:;
3824 : }
3825 : break;
3826 : }
3827 : default:;
3828 : }
3829 : break;
3830 : }
3831 120 : case NEGATE_EXPR:
3832 120 : {
3833 120 : tree _q20 = TREE_OPERAND (_p0, 0);
3834 120 : {
3835 120 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3836 120 : tree res = generic_simplify_511 (loc, type, _p0, captures);
3837 120 : if (res) return res;
3838 : }
3839 0 : break;
3840 : }
3841 1579 : case BIT_XOR_EXPR:
3842 1579 : {
3843 1579 : tree _q20 = TREE_OPERAND (_p0, 0);
3844 1579 : tree _q21 = TREE_OPERAND (_p0, 1);
3845 1579 : switch (TREE_CODE (_q21))
3846 : {
3847 22 : case INTEGER_CST:
3848 22 : {
3849 22 : {
3850 22 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3851 22 : tree res = generic_simplify_512 (loc, type, _p0, captures);
3852 22 : if (res) return res;
3853 : }
3854 0 : break;
3855 : }
3856 1557 : default:;
3857 : }
3858 1557 : switch (TREE_CODE (_q20))
3859 : {
3860 0 : case BIT_NOT_EXPR:
3861 0 : {
3862 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3863 0 : {
3864 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
3865 0 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3866 0 : if (res) return res;
3867 : }
3868 0 : break;
3869 : }
3870 1557 : default:;
3871 : }
3872 1557 : switch (TREE_CODE (_q21))
3873 : {
3874 0 : case BIT_NOT_EXPR:
3875 0 : {
3876 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3877 0 : {
3878 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3879 0 : tree res = generic_simplify_513 (loc, type, _p0, captures);
3880 0 : if (res) return res;
3881 : }
3882 0 : break;
3883 : }
3884 1557 : default:;
3885 : }
3886 1557 : if (tree_truth_valued_p (_q20))
3887 : {
3888 31 : if (tree_truth_valued_p (_q21))
3889 : {
3890 7 : {
3891 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3892 14 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3893 14 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
3894 : )
3895 : {
3896 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1086;
3897 0 : {
3898 0 : tree res_op0;
3899 0 : {
3900 0 : tree _o1[2], _r1;
3901 0 : _o1[0] = captures[1];
3902 0 : _o1[1] = captures[2];
3903 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
3904 0 : res_op0 = _r1;
3905 : }
3906 0 : tree _r;
3907 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3908 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 864, __FILE__, __LINE__, true);
3909 0 : return _r;
3910 : }
3911 0 : next_after_fail1086:;
3912 : }
3913 : }
3914 : }
3915 : }
3916 : break;
3917 : }
3918 0 : case MIN_EXPR:
3919 0 : {
3920 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3921 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3922 0 : switch (TREE_CODE (_q20))
3923 : {
3924 0 : case BIT_NOT_EXPR:
3925 0 : {
3926 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3927 0 : {
3928 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3929 0 : tree res = generic_simplify_516 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3930 0 : if (res) return res;
3931 : }
3932 0 : break;
3933 : }
3934 0 : default:;
3935 : }
3936 0 : switch (TREE_CODE (_q21))
3937 : {
3938 0 : case BIT_NOT_EXPR:
3939 0 : {
3940 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3941 0 : {
3942 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3943 0 : tree res = generic_simplify_516 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
3944 0 : if (res) return res;
3945 : }
3946 0 : break;
3947 : }
3948 : default:;
3949 : }
3950 : break;
3951 : }
3952 0 : case MAX_EXPR:
3953 0 : {
3954 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3955 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3956 0 : switch (TREE_CODE (_q20))
3957 : {
3958 0 : case BIT_NOT_EXPR:
3959 0 : {
3960 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3961 0 : {
3962 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3963 0 : tree res = generic_simplify_516 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3964 0 : if (res) return res;
3965 : }
3966 0 : break;
3967 : }
3968 0 : default:;
3969 : }
3970 0 : switch (TREE_CODE (_q21))
3971 : {
3972 0 : case BIT_NOT_EXPR:
3973 0 : {
3974 0 : tree _q40 = TREE_OPERAND (_q21, 0);
3975 0 : {
3976 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3977 0 : tree res = generic_simplify_516 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
3978 0 : if (res) return res;
3979 : }
3980 0 : break;
3981 : }
3982 : default:;
3983 : }
3984 : break;
3985 : }
3986 1 : case LROTATE_EXPR:
3987 1 : {
3988 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3989 1 : tree _q21 = TREE_OPERAND (_p0, 1);
3990 1 : switch (TREE_CODE (_q20))
3991 : {
3992 0 : CASE_CONVERT:
3993 0 : {
3994 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3995 0 : switch (TREE_CODE (_q30))
3996 : {
3997 0 : case BIT_NOT_EXPR:
3998 0 : {
3999 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4000 0 : {
4001 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
4002 0 : tree res = generic_simplify_517 (loc, type, _p0, captures, LROTATE_EXPR);
4003 0 : if (res) return res;
4004 : }
4005 0 : break;
4006 : }
4007 : default:;
4008 : }
4009 : break;
4010 : }
4011 1 : case BIT_NOT_EXPR:
4012 1 : {
4013 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4014 1 : {
4015 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
4016 1 : tree res = generic_simplify_517 (loc, type, _p0, captures, LROTATE_EXPR);
4017 1 : if (res) return res;
4018 : }
4019 0 : break;
4020 : }
4021 : default:;
4022 : }
4023 : break;
4024 : }
4025 1 : case RROTATE_EXPR:
4026 1 : {
4027 1 : tree _q20 = TREE_OPERAND (_p0, 0);
4028 1 : tree _q21 = TREE_OPERAND (_p0, 1);
4029 1 : switch (TREE_CODE (_q20))
4030 : {
4031 0 : CASE_CONVERT:
4032 0 : {
4033 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4034 0 : switch (TREE_CODE (_q30))
4035 : {
4036 0 : case BIT_NOT_EXPR:
4037 0 : {
4038 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4039 0 : {
4040 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
4041 0 : tree res = generic_simplify_517 (loc, type, _p0, captures, RROTATE_EXPR);
4042 0 : if (res) return res;
4043 : }
4044 0 : break;
4045 : }
4046 : default:;
4047 : }
4048 : break;
4049 : }
4050 1 : case BIT_NOT_EXPR:
4051 1 : {
4052 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4053 1 : {
4054 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
4055 1 : tree res = generic_simplify_517 (loc, type, _p0, captures, RROTATE_EXPR);
4056 1 : if (res) return res;
4057 : }
4058 0 : break;
4059 : }
4060 : default:;
4061 : }
4062 : break;
4063 : }
4064 32 : case VEC_COND_EXPR:
4065 32 : {
4066 32 : tree _q20 = TREE_OPERAND (_p0, 0);
4067 32 : tree _q21 = TREE_OPERAND (_p0, 1);
4068 32 : tree _q22 = TREE_OPERAND (_p0, 2);
4069 32 : {
4070 32 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4071 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1087;
4072 32 : {
4073 32 : tree res_op0;
4074 32 : res_op0 = captures[1];
4075 32 : tree res_op1;
4076 32 : {
4077 32 : tree _o1[1], _r1;
4078 32 : _o1[0] = captures[2];
4079 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
4080 32 : if (EXPR_P (_r1))
4081 0 : goto next_after_fail1087;
4082 32 : res_op1 = _r1;
4083 : }
4084 32 : tree res_op2;
4085 32 : {
4086 32 : tree _o1[1], _r1;
4087 32 : _o1[0] = captures[3];
4088 32 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
4089 32 : if (EXPR_P (_r1))
4090 0 : goto next_after_fail1087;
4091 32 : res_op2 = _r1;
4092 : }
4093 32 : tree _r;
4094 32 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4095 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
4096 32 : return _r;
4097 : }
4098 0 : next_after_fail1087:;
4099 : }
4100 0 : break;
4101 : }
4102 4 : case LT_EXPR:
4103 4 : {
4104 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4105 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4106 4 : {
4107 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4108 4 : tree res = generic_simplify_518 (loc, type, _p0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
4109 4 : if (res) return res;
4110 : }
4111 4 : break;
4112 : }
4113 8 : case LE_EXPR:
4114 8 : {
4115 8 : tree _q20 = TREE_OPERAND (_p0, 0);
4116 8 : tree _q21 = TREE_OPERAND (_p0, 1);
4117 8 : {
4118 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4119 8 : tree res = generic_simplify_518 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
4120 8 : if (res) return res;
4121 : }
4122 8 : break;
4123 : }
4124 63 : case EQ_EXPR:
4125 63 : {
4126 63 : tree _q20 = TREE_OPERAND (_p0, 0);
4127 63 : tree _q21 = TREE_OPERAND (_p0, 1);
4128 63 : {
4129 63 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4130 63 : tree res = generic_simplify_518 (loc, type, _p0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
4131 63 : if (res) return res;
4132 : }
4133 56 : break;
4134 : }
4135 112 : case NE_EXPR:
4136 112 : {
4137 112 : tree _q20 = TREE_OPERAND (_p0, 0);
4138 112 : tree _q21 = TREE_OPERAND (_p0, 1);
4139 112 : {
4140 112 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4141 112 : tree res = generic_simplify_518 (loc, type, _p0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
4142 112 : if (res) return res;
4143 : }
4144 107 : break;
4145 : }
4146 0 : case GE_EXPR:
4147 0 : {
4148 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4149 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4150 0 : {
4151 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4152 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
4153 0 : if (res) return res;
4154 : }
4155 0 : break;
4156 : }
4157 66 : case GT_EXPR:
4158 66 : {
4159 66 : tree _q20 = TREE_OPERAND (_p0, 0);
4160 66 : tree _q21 = TREE_OPERAND (_p0, 1);
4161 66 : {
4162 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4163 66 : tree res = generic_simplify_518 (loc, type, _p0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
4164 66 : if (res) return res;
4165 : }
4166 66 : break;
4167 : }
4168 0 : case UNORDERED_EXPR:
4169 0 : {
4170 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4171 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4172 0 : {
4173 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4174 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
4175 0 : if (res) return res;
4176 : }
4177 0 : break;
4178 : }
4179 0 : case ORDERED_EXPR:
4180 0 : {
4181 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4182 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4183 0 : {
4184 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4185 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
4186 0 : if (res) return res;
4187 : }
4188 0 : break;
4189 : }
4190 0 : case UNLT_EXPR:
4191 0 : {
4192 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4193 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4194 0 : {
4195 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4196 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
4197 0 : if (res) return res;
4198 : }
4199 0 : break;
4200 : }
4201 0 : case UNLE_EXPR:
4202 0 : {
4203 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4204 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4205 0 : {
4206 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4207 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
4208 0 : if (res) return res;
4209 : }
4210 0 : break;
4211 : }
4212 0 : case UNGT_EXPR:
4213 0 : {
4214 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4215 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4216 0 : {
4217 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4218 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
4219 0 : if (res) return res;
4220 : }
4221 0 : break;
4222 : }
4223 0 : case UNGE_EXPR:
4224 0 : {
4225 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4226 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4227 0 : {
4228 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4229 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
4230 0 : if (res) return res;
4231 : }
4232 0 : break;
4233 : }
4234 0 : case UNEQ_EXPR:
4235 0 : {
4236 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4237 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4238 0 : {
4239 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4240 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
4241 0 : if (res) return res;
4242 : }
4243 0 : break;
4244 : }
4245 0 : case LTGT_EXPR:
4246 0 : {
4247 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4248 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4249 0 : {
4250 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4251 0 : tree res = generic_simplify_518 (loc, type, _p0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
4252 0 : if (res) return res;
4253 : }
4254 0 : break;
4255 : }
4256 : default:;
4257 : }
4258 : return NULL_TREE;
4259 : }
4260 :
4261 : tree
4262 2159310 : 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)
4263 : {
4264 2159310 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4265 2159310 : if (integer_onep (_p1))
4266 : {
4267 22415 : {
4268 22415 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4269 22415 : tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4270 22415 : if (res) return res;
4271 : }
4272 : }
4273 2136895 : switch (TREE_CODE (_p0))
4274 : {
4275 165115 : CASE_CONVERT:
4276 165115 : {
4277 165115 : tree _q20 = TREE_OPERAND (_p0, 0);
4278 165115 : switch (TREE_CODE (_p1))
4279 : {
4280 38261 : CASE_CONVERT:
4281 38261 : {
4282 38261 : tree _q40 = TREE_OPERAND (_p1, 0);
4283 38261 : switch (TREE_CODE (_q40))
4284 : {
4285 0 : case LSHIFT_EXPR:
4286 0 : {
4287 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4288 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4289 0 : if (integer_onep (_q50))
4290 : {
4291 0 : {
4292 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
4293 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4294 0 : if (res) return res;
4295 : }
4296 : }
4297 : break;
4298 : }
4299 : default:;
4300 : }
4301 : break;
4302 : }
4303 8 : case LSHIFT_EXPR:
4304 8 : {
4305 8 : tree _q40 = TREE_OPERAND (_p1, 0);
4306 8 : tree _q41 = TREE_OPERAND (_p1, 1);
4307 8 : if (integer_onep (_q40))
4308 : {
4309 7 : {
4310 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
4311 7 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4312 7 : if (res) return res;
4313 : }
4314 : }
4315 : break;
4316 : }
4317 : default:;
4318 : }
4319 : break;
4320 : }
4321 2136895 : default:;
4322 : }
4323 2136895 : switch (TREE_CODE (_p1))
4324 : {
4325 136476 : CASE_CONVERT:
4326 136476 : {
4327 136476 : tree _q30 = TREE_OPERAND (_p1, 0);
4328 136476 : switch (TREE_CODE (_q30))
4329 : {
4330 7 : case LSHIFT_EXPR:
4331 7 : {
4332 7 : tree _q40 = TREE_OPERAND (_q30, 0);
4333 7 : tree _q41 = TREE_OPERAND (_q30, 1);
4334 7 : if (integer_onep (_q40))
4335 : {
4336 7 : {
4337 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
4338 7 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4339 7 : if (res) return res;
4340 : }
4341 : }
4342 : break;
4343 : }
4344 : default:;
4345 : }
4346 : break;
4347 : }
4348 33 : case LSHIFT_EXPR:
4349 33 : {
4350 33 : tree _q30 = TREE_OPERAND (_p1, 0);
4351 33 : tree _q31 = TREE_OPERAND (_p1, 1);
4352 33 : if (integer_onep (_q30))
4353 : {
4354 16 : {
4355 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
4356 16 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4357 16 : if (res) return res;
4358 : }
4359 : }
4360 : break;
4361 : }
4362 2136886 : default:;
4363 : }
4364 2136886 : if (integer_zerop (_p0))
4365 : {
4366 2234 : {
4367 2234 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4368 2234 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4369 2234 : if (res) return res;
4370 : }
4371 : }
4372 2135153 : switch (TREE_CODE (_p1))
4373 : {
4374 13450 : case SSA_NAME:
4375 13450 : {
4376 13450 : {
4377 13450 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4378 13450 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4379 13450 : if (res) return res;
4380 : }
4381 13450 : break;
4382 : }
4383 2135153 : default:;
4384 : }
4385 2135153 : if (integer_minus_onep (_p1))
4386 : {
4387 2520 : {
4388 2520 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4389 2520 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4390 2520 : if (res) return res;
4391 : }
4392 : }
4393 2133531 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4394 : {
4395 768 : {
4396 768 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4397 768 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4398 768 : if (res) return res;
4399 : }
4400 : }
4401 2133420 : switch (TREE_CODE (_p1))
4402 : {
4403 1 : case ABS_EXPR:
4404 1 : {
4405 1 : tree _q30 = TREE_OPERAND (_p1, 0);
4406 1 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4407 : {
4408 1 : {
4409 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4410 1 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4411 1 : if (res) return res;
4412 : }
4413 : }
4414 : break;
4415 : }
4416 2133419 : default:;
4417 : }
4418 2133419 : switch (TREE_CODE (_p0))
4419 : {
4420 0 : case ABS_EXPR:
4421 0 : {
4422 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4423 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4424 : {
4425 0 : {
4426 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4427 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4428 0 : if (res) return res;
4429 : }
4430 : }
4431 : break;
4432 : }
4433 2133419 : default:;
4434 : }
4435 2133419 : switch (TREE_CODE (_p1))
4436 : {
4437 658 : case NEGATE_EXPR:
4438 658 : {
4439 658 : tree _q30 = TREE_OPERAND (_p1, 0);
4440 658 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4441 : {
4442 1 : {
4443 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4444 1 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4445 1 : if (res) return res;
4446 : }
4447 : }
4448 : break;
4449 : }
4450 2133418 : default:;
4451 : }
4452 2133418 : switch (TREE_CODE (_p0))
4453 : {
4454 374 : case NEGATE_EXPR:
4455 374 : {
4456 374 : tree _q20 = TREE_OPERAND (_p0, 0);
4457 374 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4458 : {
4459 0 : {
4460 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4461 0 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4462 0 : if (res) return res;
4463 : }
4464 : }
4465 : break;
4466 : }
4467 9432 : case TRUNC_DIV_EXPR:
4468 9432 : {
4469 9432 : tree _q20 = TREE_OPERAND (_p0, 0);
4470 9432 : tree _q21 = TREE_OPERAND (_p0, 1);
4471 9432 : switch (TREE_CODE (_q21))
4472 : {
4473 9343 : case INTEGER_CST:
4474 9343 : {
4475 9343 : switch (TREE_CODE (_p1))
4476 : {
4477 9342 : case INTEGER_CST:
4478 9342 : {
4479 9342 : {
4480 9342 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4481 9342 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4482 9342 : if (res) return res;
4483 : }
4484 9342 : break;
4485 : }
4486 : default:;
4487 : }
4488 : break;
4489 : }
4490 : default:;
4491 : }
4492 : break;
4493 : }
4494 165074 : CASE_CONVERT:
4495 165074 : {
4496 165074 : tree _q20 = TREE_OPERAND (_p0, 0);
4497 165074 : switch (TREE_CODE (_q20))
4498 : {
4499 0 : case BIT_AND_EXPR:
4500 0 : {
4501 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4502 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4503 0 : switch (TREE_CODE (_q31))
4504 : {
4505 0 : case INTEGER_CST:
4506 0 : {
4507 0 : switch (TREE_CODE (_p1))
4508 : {
4509 0 : case INTEGER_CST:
4510 0 : {
4511 0 : {
4512 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4513 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4514 0 : if (res) return res;
4515 : }
4516 0 : break;
4517 : }
4518 : default:;
4519 : }
4520 : break;
4521 : }
4522 : default:;
4523 : }
4524 : break;
4525 : }
4526 : default:;
4527 : }
4528 : break;
4529 : }
4530 46847 : case BIT_AND_EXPR:
4531 46847 : {
4532 46847 : tree _q20 = TREE_OPERAND (_p0, 0);
4533 46847 : tree _q21 = TREE_OPERAND (_p0, 1);
4534 46847 : switch (TREE_CODE (_q21))
4535 : {
4536 46821 : case INTEGER_CST:
4537 46821 : {
4538 46821 : switch (TREE_CODE (_p1))
4539 : {
4540 46817 : case INTEGER_CST:
4541 46817 : {
4542 46817 : {
4543 46817 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4544 46817 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4545 46817 : if (res) return res;
4546 : }
4547 46816 : break;
4548 : }
4549 : default:;
4550 : }
4551 : break;
4552 : }
4553 : default:;
4554 : }
4555 : break;
4556 : }
4557 41657 : case MULT_EXPR:
4558 41657 : {
4559 41657 : tree _q20 = TREE_OPERAND (_p0, 0);
4560 41657 : tree _q21 = TREE_OPERAND (_p0, 1);
4561 41657 : if (integer_pow2p (_q21))
4562 : {
4563 7671 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4564 : {
4565 7131 : {
4566 7131 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4567 7131 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4568 7131 : if (res) return res;
4569 : }
4570 : }
4571 : }
4572 34667 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4573 : {
4574 163 : {
4575 163 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4576 163 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4577 163 : if (res) return res;
4578 : }
4579 : }
4580 34519 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4581 : {
4582 22 : {
4583 22 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4584 22 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4585 22 : if (res) return res;
4586 : }
4587 : }
4588 34510 : switch (TREE_CODE (_q21))
4589 : {
4590 34178 : case INTEGER_CST:
4591 34178 : {
4592 34178 : switch (TREE_CODE (_p1))
4593 : {
4594 3 : case MULT_EXPR:
4595 3 : {
4596 3 : tree _q50 = TREE_OPERAND (_p1, 0);
4597 3 : tree _q51 = TREE_OPERAND (_p1, 1);
4598 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4599 : {
4600 3 : switch (TREE_CODE (_q51))
4601 : {
4602 3 : case INTEGER_CST:
4603 3 : {
4604 3 : {
4605 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4606 3 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
4607 3 : if (res) return res;
4608 : }
4609 0 : break;
4610 : }
4611 : default:;
4612 : }
4613 : }
4614 : break;
4615 : }
4616 : default:;
4617 : }
4618 : break;
4619 : }
4620 : default:;
4621 : }
4622 : break;
4623 : }
4624 0 : case VEC_COND_EXPR:
4625 0 : {
4626 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4627 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4628 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4629 0 : switch (TREE_CODE (_p1))
4630 : {
4631 0 : case VEC_COND_EXPR:
4632 0 : {
4633 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4634 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4635 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4636 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4637 : {
4638 0 : {
4639 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4640 0 : if (VECTOR_TYPE_P (type)
4641 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4642 : || types_match (type, TREE_TYPE (captures[2]))
4643 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4644 : || (optimize_vectors_before_lowering_p ()
4645 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4646 : )
4647 : {
4648 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1603;
4649 0 : {
4650 0 : tree res_op0;
4651 0 : res_op0 = captures[1];
4652 0 : tree res_op1;
4653 0 : {
4654 0 : tree _o1[2], _r1;
4655 0 : _o1[0] = captures[2];
4656 0 : _o1[1] = captures[5];
4657 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4658 0 : if (EXPR_P (_r1))
4659 0 : goto next_after_fail1603;
4660 0 : res_op1 = _r1;
4661 : }
4662 0 : tree res_op2;
4663 0 : {
4664 0 : tree _o1[2], _r1;
4665 0 : _o1[0] = captures[3];
4666 0 : _o1[1] = captures[6];
4667 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4668 0 : if (EXPR_P (_r1))
4669 0 : goto next_after_fail1603;
4670 0 : res_op2 = _r1;
4671 : }
4672 0 : tree _r;
4673 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
4675 0 : return _r;
4676 : }
4677 0 : next_after_fail1603:;
4678 : }
4679 : }
4680 : }
4681 : break;
4682 : }
4683 0 : default:;
4684 : }
4685 0 : {
4686 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4687 0 : if (VECTOR_TYPE_P (type)
4688 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4689 : || types_match (type, TREE_TYPE (captures[2]))
4690 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4691 : || (optimize_vectors_before_lowering_p ()
4692 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4693 : )
4694 : {
4695 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1604;
4696 0 : {
4697 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1604;
4698 0 : tree res_op0;
4699 0 : res_op0 = captures[1];
4700 0 : tree res_op1;
4701 0 : {
4702 0 : tree _o1[2], _r1;
4703 0 : _o1[0] = captures[2];
4704 0 : _o1[1] = unshare_expr (captures[4]);
4705 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4706 0 : if (EXPR_P (_r1))
4707 0 : goto next_after_fail1604;
4708 0 : res_op1 = _r1;
4709 : }
4710 0 : tree res_op2;
4711 0 : {
4712 0 : tree _o1[2], _r1;
4713 0 : _o1[0] = captures[3];
4714 0 : _o1[1] = captures[4];
4715 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4716 0 : if (EXPR_P (_r1))
4717 0 : goto next_after_fail1604;
4718 0 : res_op2 = _r1;
4719 : }
4720 0 : tree _r;
4721 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
4723 0 : return _r;
4724 : }
4725 0 : next_after_fail1604:;
4726 : }
4727 : }
4728 0 : break;
4729 : }
4730 2126267 : default:;
4731 : }
4732 2126267 : if (integer_onep (_p0))
4733 : {
4734 1186 : {
4735 1186 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4736 1186 : if (INTEGRAL_TYPE_P (type)
4737 1183 : && TYPE_PRECISION (type) > 1
4738 1183 : && !integer_zerop (captures[1])
4739 1665 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
4740 : )
4741 : {
4742 422 : if (TYPE_UNSIGNED (type)
4743 : )
4744 : {
4745 54 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1605;
4746 54 : {
4747 54 : tree res_op0;
4748 54 : {
4749 54 : tree _o1[2], _r1;
4750 54 : _o1[0] = captures[1];
4751 54 : _o1[1] = captures[0];
4752 54 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
4753 54 : res_op0 = _r1;
4754 : }
4755 54 : tree _r;
4756 54 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4757 54 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
4758 54 : return _r;
4759 : }
4760 0 : next_after_fail1605:;
4761 : }
4762 : else
4763 : {
4764 368 : if (fold_before_rtl_expansion_p ()
4765 : )
4766 : {
4767 0 : {
4768 0 : tree utype = unsigned_type_for (type);
4769 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1606;
4770 0 : {
4771 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail1606;
4772 0 : tree res_op0;
4773 0 : {
4774 0 : tree _o1[2], _r1;
4775 0 : {
4776 0 : tree _o2[2], _r2;
4777 0 : {
4778 0 : tree _o3[1], _r3;
4779 0 : _o3[0] = unshare_expr (captures[1]);
4780 0 : if (TREE_TYPE (_o3[0]) != utype)
4781 : {
4782 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
4783 : }
4784 : else
4785 : _r3 = _o3[0];
4786 0 : _o2[0] = _r3;
4787 : }
4788 0 : _o2[1] = build_one_cst (utype);
4789 0 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4790 0 : _o1[0] = _r2;
4791 : }
4792 0 : _o1[1] = build_int_cst (utype, 2);
4793 0 : _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
4794 0 : res_op0 = _r1;
4795 : }
4796 0 : tree res_op1;
4797 0 : res_op1 = captures[1];
4798 0 : tree res_op2;
4799 0 : res_op2 = build_zero_cst (type);
4800 0 : tree _r;
4801 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4802 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4803 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4804 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
4805 0 : return _r;
4806 : }
4807 1132 : next_after_fail1606:;
4808 : }
4809 : }
4810 : }
4811 : }
4812 : }
4813 : }
4814 2126213 : switch (TREE_CODE (_p1))
4815 : {
4816 0 : case VEC_COND_EXPR:
4817 0 : {
4818 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4819 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4820 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4821 0 : {
4822 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4823 0 : if (VECTOR_TYPE_P (type)
4824 0 : && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
4825 : || types_match (type, TREE_TYPE (captures[3]))
4826 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4827 : || (optimize_vectors_before_lowering_p ()
4828 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4829 : )
4830 : {
4831 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1607;
4832 0 : {
4833 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1607;
4834 0 : tree res_op0;
4835 0 : res_op0 = captures[2];
4836 0 : tree res_op1;
4837 0 : {
4838 0 : tree _o1[2], _r1;
4839 0 : _o1[0] = unshare_expr (captures[0]);
4840 0 : _o1[1] = captures[3];
4841 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4842 0 : if (EXPR_P (_r1))
4843 0 : goto next_after_fail1607;
4844 0 : res_op1 = _r1;
4845 : }
4846 0 : tree res_op2;
4847 0 : {
4848 0 : tree _o1[2], _r1;
4849 0 : _o1[0] = captures[0];
4850 0 : _o1[1] = captures[4];
4851 0 : _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
4852 0 : if (EXPR_P (_r1))
4853 0 : goto next_after_fail1607;
4854 0 : res_op2 = _r1;
4855 : }
4856 0 : tree _r;
4857 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4858 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
4859 0 : return _r;
4860 : }
4861 0 : next_after_fail1607:;
4862 : }
4863 : }
4864 0 : break;
4865 : }
4866 : default:;
4867 : }
4868 : return NULL_TREE;
4869 : }
4870 :
4871 : tree
4872 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)
4873 : {
4874 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4875 0 : if (integer_onep (_p1))
4876 : {
4877 0 : {
4878 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4879 0 : tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4880 0 : if (res) return res;
4881 : }
4882 : }
4883 0 : if (integer_zerop (_p0))
4884 : {
4885 0 : {
4886 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4887 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4888 0 : if (res) return res;
4889 : }
4890 : }
4891 0 : switch (TREE_CODE (_p1))
4892 : {
4893 0 : case SSA_NAME:
4894 0 : {
4895 0 : {
4896 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4897 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4898 0 : if (res) return res;
4899 : }
4900 0 : break;
4901 : }
4902 0 : default:;
4903 : }
4904 0 : if (integer_minus_onep (_p1))
4905 : {
4906 0 : {
4907 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4908 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4909 0 : if (res) return res;
4910 : }
4911 : }
4912 0 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4913 : {
4914 0 : {
4915 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4916 0 : tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4917 0 : if (res) return res;
4918 : }
4919 : }
4920 0 : switch (TREE_CODE (_p1))
4921 : {
4922 0 : case ABS_EXPR:
4923 0 : {
4924 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4925 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4926 : {
4927 0 : {
4928 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4929 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4930 0 : if (res) return res;
4931 : }
4932 : }
4933 : break;
4934 : }
4935 0 : default:;
4936 : }
4937 0 : switch (TREE_CODE (_p0))
4938 : {
4939 0 : case ABS_EXPR:
4940 0 : {
4941 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4942 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4943 : {
4944 0 : {
4945 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4946 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4947 0 : if (res) return res;
4948 : }
4949 : }
4950 : break;
4951 : }
4952 0 : default:;
4953 : }
4954 0 : switch (TREE_CODE (_p1))
4955 : {
4956 0 : case NEGATE_EXPR:
4957 0 : {
4958 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4959 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4960 : {
4961 0 : {
4962 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4963 0 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4964 0 : if (res) return res;
4965 : }
4966 : }
4967 : break;
4968 : }
4969 0 : default:;
4970 : }
4971 0 : switch (TREE_CODE (_p0))
4972 : {
4973 0 : case NEGATE_EXPR:
4974 0 : {
4975 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4976 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4977 : {
4978 0 : {
4979 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4980 0 : tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
4981 0 : if (res) return res;
4982 : }
4983 : }
4984 : break;
4985 : }
4986 0 : CASE_CONVERT:
4987 0 : {
4988 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4989 0 : switch (TREE_CODE (_q20))
4990 : {
4991 0 : case BIT_AND_EXPR:
4992 0 : {
4993 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4994 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4995 0 : switch (TREE_CODE (_q31))
4996 : {
4997 0 : case INTEGER_CST:
4998 0 : {
4999 0 : switch (TREE_CODE (_p1))
5000 : {
5001 0 : case INTEGER_CST:
5002 0 : {
5003 0 : {
5004 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5005 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5006 0 : if (res) return res;
5007 : }
5008 0 : break;
5009 : }
5010 : default:;
5011 : }
5012 : break;
5013 : }
5014 : default:;
5015 : }
5016 : break;
5017 : }
5018 : default:;
5019 : }
5020 : break;
5021 : }
5022 0 : case BIT_AND_EXPR:
5023 0 : {
5024 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5025 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5026 0 : switch (TREE_CODE (_q21))
5027 : {
5028 0 : case INTEGER_CST:
5029 0 : {
5030 0 : switch (TREE_CODE (_p1))
5031 : {
5032 0 : case INTEGER_CST:
5033 0 : {
5034 0 : {
5035 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5036 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5037 0 : if (res) return res;
5038 : }
5039 0 : break;
5040 : }
5041 : default:;
5042 : }
5043 : break;
5044 : }
5045 : default:;
5046 : }
5047 : break;
5048 : }
5049 0 : case MULT_EXPR:
5050 0 : {
5051 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5052 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5053 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5054 : {
5055 0 : {
5056 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5057 0 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5058 0 : if (res) return res;
5059 : }
5060 : }
5061 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5062 : {
5063 0 : {
5064 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5065 0 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5066 0 : if (res) return res;
5067 : }
5068 : }
5069 0 : switch (TREE_CODE (_q21))
5070 : {
5071 0 : case INTEGER_CST:
5072 0 : {
5073 0 : switch (TREE_CODE (_p1))
5074 : {
5075 0 : case MULT_EXPR:
5076 0 : {
5077 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5078 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5079 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5080 : {
5081 0 : switch (TREE_CODE (_q51))
5082 : {
5083 0 : case INTEGER_CST:
5084 0 : {
5085 0 : {
5086 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5087 0 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
5088 0 : if (res) return res;
5089 : }
5090 0 : break;
5091 : }
5092 : default:;
5093 : }
5094 : }
5095 : break;
5096 : }
5097 : default:;
5098 : }
5099 : break;
5100 : }
5101 : default:;
5102 : }
5103 : break;
5104 : }
5105 0 : case VEC_COND_EXPR:
5106 0 : {
5107 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5108 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5109 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5110 0 : switch (TREE_CODE (_p1))
5111 : {
5112 0 : case VEC_COND_EXPR:
5113 0 : {
5114 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5115 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5116 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5117 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5118 : {
5119 0 : {
5120 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
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_fail1614;
5130 0 : {
5131 0 : tree res_op0;
5132 0 : res_op0 = captures[1];
5133 0 : tree res_op1;
5134 0 : {
5135 0 : tree _o1[2], _r1;
5136 0 : _o1[0] = captures[2];
5137 0 : _o1[1] = captures[5];
5138 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5139 0 : if (EXPR_P (_r1))
5140 0 : goto next_after_fail1614;
5141 0 : res_op1 = _r1;
5142 : }
5143 0 : tree res_op2;
5144 0 : {
5145 0 : tree _o1[2], _r1;
5146 0 : _o1[0] = captures[3];
5147 0 : _o1[1] = captures[6];
5148 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5149 0 : if (EXPR_P (_r1))
5150 0 : goto next_after_fail1614;
5151 0 : res_op2 = _r1;
5152 : }
5153 0 : tree _r;
5154 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
5156 0 : return _r;
5157 : }
5158 0 : next_after_fail1614:;
5159 : }
5160 : }
5161 : }
5162 : break;
5163 : }
5164 0 : default:;
5165 : }
5166 0 : {
5167 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5168 0 : if (VECTOR_TYPE_P (type)
5169 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5170 : || types_match (type, TREE_TYPE (captures[2]))
5171 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5172 : || (optimize_vectors_before_lowering_p ()
5173 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5174 : )
5175 : {
5176 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1615;
5177 0 : {
5178 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1615;
5179 0 : tree res_op0;
5180 0 : res_op0 = captures[1];
5181 0 : tree res_op1;
5182 0 : {
5183 0 : tree _o1[2], _r1;
5184 0 : _o1[0] = captures[2];
5185 0 : _o1[1] = unshare_expr (captures[4]);
5186 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5187 0 : if (EXPR_P (_r1))
5188 0 : goto next_after_fail1615;
5189 0 : res_op1 = _r1;
5190 : }
5191 0 : tree res_op2;
5192 0 : {
5193 0 : tree _o1[2], _r1;
5194 0 : _o1[0] = captures[3];
5195 0 : _o1[1] = captures[4];
5196 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5197 0 : if (EXPR_P (_r1))
5198 0 : goto next_after_fail1615;
5199 0 : res_op2 = _r1;
5200 : }
5201 0 : tree _r;
5202 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5203 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
5204 0 : return _r;
5205 : }
5206 0 : next_after_fail1615:;
5207 : }
5208 : }
5209 0 : break;
5210 : }
5211 0 : default:;
5212 : }
5213 0 : switch (TREE_CODE (_p1))
5214 : {
5215 0 : case VEC_COND_EXPR:
5216 0 : {
5217 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5218 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5219 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5220 0 : {
5221 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5222 0 : if (VECTOR_TYPE_P (type)
5223 0 : && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
5224 : || types_match (type, TREE_TYPE (captures[3]))
5225 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5226 : || (optimize_vectors_before_lowering_p ()
5227 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5228 : )
5229 : {
5230 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1616;
5231 0 : {
5232 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1616;
5233 0 : tree res_op0;
5234 0 : res_op0 = captures[2];
5235 0 : tree res_op1;
5236 0 : {
5237 0 : tree _o1[2], _r1;
5238 0 : _o1[0] = unshare_expr (captures[0]);
5239 0 : _o1[1] = captures[3];
5240 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5241 0 : if (EXPR_P (_r1))
5242 0 : goto next_after_fail1616;
5243 0 : res_op1 = _r1;
5244 : }
5245 0 : tree res_op2;
5246 0 : {
5247 0 : tree _o1[2], _r1;
5248 0 : _o1[0] = captures[0];
5249 0 : _o1[1] = captures[4];
5250 0 : _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
5251 0 : if (EXPR_P (_r1))
5252 0 : goto next_after_fail1616;
5253 0 : res_op2 = _r1;
5254 : }
5255 0 : tree _r;
5256 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5257 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
5258 0 : return _r;
5259 : }
5260 0 : next_after_fail1616:;
5261 : }
5262 : }
5263 0 : break;
5264 : }
5265 : default:;
5266 : }
5267 : return NULL_TREE;
5268 : }
5269 :
5270 : tree
5271 6403219 : generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5272 : {
5273 6403219 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5274 6403219 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
5275 : {
5276 849 : {
5277 849 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5278 9 : if (FLOAT_TYPE_P (type)
5279 849 : && ! HONOR_NANS (type)
5280 851 : && ! HONOR_INFINITIES (type)
5281 : )
5282 : {
5283 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1623;
5284 2 : {
5285 2 : tree _r;
5286 2 : _r = build_one_cst (type);
5287 2 : if (TREE_SIDE_EFFECTS (captures[0]))
5288 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5289 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
5290 2 : return _r;
5291 : }
5292 0 : next_after_fail1623:;
5293 : }
5294 : }
5295 : }
5296 6403217 : switch (TREE_CODE (_p1))
5297 : {
5298 19342 : case NEGATE_EXPR:
5299 19342 : {
5300 19342 : tree _q30 = TREE_OPERAND (_p1, 0);
5301 19342 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5302 : {
5303 0 : {
5304 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5305 0 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures);
5306 0 : if (res) return res;
5307 : }
5308 : }
5309 : break;
5310 : }
5311 6403217 : default:;
5312 : }
5313 6403217 : switch (TREE_CODE (_p0))
5314 : {
5315 96797 : case NEGATE_EXPR:
5316 96797 : {
5317 96797 : tree _q20 = TREE_OPERAND (_p0, 0);
5318 96797 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5319 : {
5320 2 : {
5321 2 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5322 2 : tree res = generic_simplify_336 (loc, type, _p0, _p1, captures);
5323 2 : if (res) return res;
5324 : }
5325 : }
5326 : break;
5327 : }
5328 563212 : CASE_CONVERT:
5329 563212 : {
5330 563212 : tree _q20 = TREE_OPERAND (_p0, 0);
5331 563212 : switch (TREE_CODE (_p1))
5332 : {
5333 33769 : CASE_CONVERT:
5334 33769 : {
5335 33769 : tree _q40 = TREE_OPERAND (_p1, 0);
5336 33769 : switch (TREE_CODE (_q40))
5337 : {
5338 0 : case ABS_EXPR:
5339 0 : {
5340 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5341 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5342 : {
5343 0 : {
5344 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5345 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures);
5346 0 : if (res) return res;
5347 : }
5348 : }
5349 : break;
5350 : }
5351 : default:;
5352 : }
5353 : break;
5354 : }
5355 563212 : default:;
5356 : }
5357 563212 : switch (TREE_CODE (_q20))
5358 : {
5359 0 : case ABS_EXPR:
5360 0 : {
5361 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5362 0 : switch (TREE_CODE (_p1))
5363 : {
5364 0 : CASE_CONVERT:
5365 0 : {
5366 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5367 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
5368 : {
5369 0 : {
5370 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
5371 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures);
5372 0 : if (res) return res;
5373 : }
5374 : }
5375 : break;
5376 : }
5377 : default:;
5378 : }
5379 : break;
5380 : }
5381 : default:;
5382 : }
5383 : break;
5384 : }
5385 6403217 : default:;
5386 : }
5387 6403217 : switch (TREE_CODE (_p1))
5388 : {
5389 48 : case ABS_EXPR:
5390 48 : {
5391 48 : tree _q30 = TREE_OPERAND (_p1, 0);
5392 48 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5393 : {
5394 0 : {
5395 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5396 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures);
5397 0 : if (res) return res;
5398 : }
5399 : }
5400 : break;
5401 : }
5402 6403217 : default:;
5403 : }
5404 6403217 : switch (TREE_CODE (_p0))
5405 : {
5406 146 : case ABS_EXPR:
5407 146 : {
5408 146 : tree _q20 = TREE_OPERAND (_p0, 0);
5409 146 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5410 : {
5411 0 : {
5412 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5413 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, captures);
5414 0 : if (res) return res;
5415 : }
5416 : }
5417 : break;
5418 : }
5419 6403217 : default:;
5420 : }
5421 6403217 : if (real_onep (_p1))
5422 : {
5423 116 : {
5424 116 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5425 116 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5426 : )
5427 : {
5428 116 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1624;
5429 116 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1624;
5430 116 : {
5431 116 : tree res_op0;
5432 116 : res_op0 = captures[0];
5433 116 : tree _r;
5434 116 : _r = non_lvalue_loc (loc, res_op0);
5435 116 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1003, __FILE__, __LINE__, true);
5436 116 : return _r;
5437 : }
5438 : next_after_fail1624:;
5439 : }
5440 : }
5441 : }
5442 6403101 : if (real_minus_onep (_p1))
5443 : {
5444 36 : {
5445 36 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5446 36 : if (!tree_expr_maybe_signaling_nan_p (captures[0])
5447 : )
5448 : {
5449 36 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1625;
5450 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1625;
5451 36 : {
5452 36 : tree res_op0;
5453 36 : res_op0 = captures[0];
5454 36 : tree _r;
5455 36 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
5456 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
5457 36 : return _r;
5458 : }
5459 : next_after_fail1625:;
5460 : }
5461 : }
5462 : }
5463 6403065 : switch (TREE_CODE (_p0))
5464 : {
5465 38262 : case RDIV_EXPR:
5466 38262 : {
5467 38262 : tree _q20 = TREE_OPERAND (_p0, 0);
5468 38262 : tree _q21 = TREE_OPERAND (_p0, 1);
5469 38262 : {
5470 38262 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5471 38262 : if (flag_reciprocal_math
5472 : )
5473 : {
5474 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1626;
5475 12 : {
5476 12 : tree res_op0;
5477 12 : res_op0 = captures[1];
5478 12 : tree res_op1;
5479 12 : {
5480 12 : tree _o1[2], _r1;
5481 12 : _o1[0] = captures[2];
5482 12 : _o1[1] = captures[3];
5483 12 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5484 12 : res_op1 = _r1;
5485 : }
5486 12 : tree _r;
5487 12 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5488 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
5489 12 : return _r;
5490 : }
5491 0 : next_after_fail1626:;
5492 : }
5493 : }
5494 38250 : break;
5495 : }
5496 6403053 : default:;
5497 : }
5498 6403053 : switch (TREE_CODE (_p1))
5499 : {
5500 980153 : case MULT_EXPR:
5501 980153 : {
5502 980153 : tree _q30 = TREE_OPERAND (_p1, 0);
5503 980153 : tree _q31 = TREE_OPERAND (_p1, 1);
5504 980153 : switch (TREE_CODE (_q31))
5505 : {
5506 384679 : case REAL_CST:
5507 384679 : {
5508 384679 : {
5509 384679 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5510 384679 : if (flag_reciprocal_math
5511 : )
5512 : {
5513 224 : {
5514 224 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
5515 224 : if (tem
5516 : )
5517 : {
5518 224 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1627;
5519 224 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1627;
5520 224 : {
5521 224 : tree res_op0;
5522 224 : {
5523 224 : tree _o1[2], _r1;
5524 224 : _o1[0] = captures[0];
5525 224 : _o1[1] = tem;
5526 224 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5527 224 : res_op0 = _r1;
5528 : }
5529 224 : tree res_op1;
5530 224 : res_op1 = captures[2];
5531 224 : tree _r;
5532 224 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5533 224 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
5534 224 : return _r;
5535 : }
5536 384455 : next_after_fail1627:;
5537 : }
5538 : }
5539 : }
5540 : }
5541 384455 : break;
5542 : }
5543 : default:;
5544 : }
5545 : break;
5546 : }
5547 1 : case RDIV_EXPR:
5548 1 : {
5549 1 : tree _q30 = TREE_OPERAND (_p1, 0);
5550 1 : tree _q31 = TREE_OPERAND (_p1, 1);
5551 1 : {
5552 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
5553 1 : if (flag_reciprocal_math
5554 : )
5555 : {
5556 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1628;
5557 1 : {
5558 1 : tree res_op0;
5559 1 : {
5560 1 : tree _o1[2], _r1;
5561 1 : _o1[0] = captures[0];
5562 1 : _o1[1] = captures[2];
5563 1 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5564 1 : res_op0 = _r1;
5565 : }
5566 1 : tree res_op1;
5567 1 : res_op1 = captures[3];
5568 1 : tree _r;
5569 1 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5570 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
5571 1 : return _r;
5572 : }
5573 0 : next_after_fail1628:;
5574 : }
5575 : }
5576 0 : break;
5577 : }
5578 19342 : case NEGATE_EXPR:
5579 19342 : {
5580 19342 : tree _q30 = TREE_OPERAND (_p1, 0);
5581 19342 : {
5582 19342 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5583 19342 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1629;
5584 19342 : {
5585 19342 : tree res_op0;
5586 19342 : {
5587 19342 : tree _o1[1], _r1;
5588 19342 : _o1[0] = captures[0];
5589 19342 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5590 19342 : res_op0 = _r1;
5591 : }
5592 19342 : tree res_op1;
5593 19342 : res_op1 = captures[1];
5594 19342 : tree _r;
5595 19342 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5596 19342 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
5597 19342 : return _r;
5598 : }
5599 0 : next_after_fail1629:;
5600 : }
5601 0 : break;
5602 : }
5603 1086376 : case REAL_CST:
5604 1086376 : {
5605 1086376 : {
5606 1086376 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5607 1086376 : if (optimize
5608 : )
5609 : {
5610 1079568 : if (flag_reciprocal_math
5611 1079568 : && !real_zerop (captures[1])
5612 : )
5613 : {
5614 571 : {
5615 571 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5616 571 : if (tem
5617 : )
5618 : {
5619 570 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1630;
5620 570 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1630;
5621 570 : {
5622 570 : tree res_op0;
5623 570 : res_op0 = captures[0];
5624 570 : tree res_op1;
5625 570 : res_op1 = tem;
5626 570 : tree _r;
5627 570 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5628 570 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
5629 570 : return _r;
5630 : }
5631 758871 : next_after_fail1630:;
5632 : }
5633 : }
5634 : }
5635 : else
5636 : {
5637 1078997 : if (REAL_CST != COMPLEX_CST
5638 : )
5639 : {
5640 1078997 : {
5641 1078997 : tree inverse = exact_inverse (type, captures[1]);
5642 1078997 : if (inverse
5643 : )
5644 : {
5645 326935 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1631;
5646 326935 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1631;
5647 326935 : {
5648 326935 : tree res_op0;
5649 326935 : res_op0 = captures[0];
5650 326935 : tree res_op1;
5651 326935 : res_op1 = inverse;
5652 326935 : tree _r;
5653 326935 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5654 326935 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
5655 326935 : return _r;
5656 : }
5657 758871 : next_after_fail1631:;
5658 : }
5659 : }
5660 : }
5661 : }
5662 : }
5663 : }
5664 758871 : break;
5665 : }
5666 114 : case COMPLEX_CST:
5667 114 : {
5668 114 : {
5669 114 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5670 114 : if (optimize
5671 : )
5672 : {
5673 106 : if (flag_reciprocal_math
5674 106 : && !real_zerop (captures[1])
5675 : )
5676 : {
5677 7 : {
5678 7 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5679 7 : if (tem
5680 : )
5681 : {
5682 7 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1632;
5683 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1632;
5684 7 : {
5685 7 : tree res_op0;
5686 7 : res_op0 = captures[0];
5687 7 : tree res_op1;
5688 7 : res_op1 = tem;
5689 7 : tree _r;
5690 7 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5691 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
5692 7 : return _r;
5693 : }
5694 107 : next_after_fail1632:;
5695 : }
5696 : }
5697 : }
5698 : else
5699 : {
5700 : if (COMPLEX_CST != COMPLEX_CST
5701 : )
5702 : {
5703 : {
5704 : tree inverse = exact_inverse (type, captures[1]);
5705 : if (inverse
5706 : )
5707 : {
5708 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1633;
5709 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1633;
5710 : {
5711 : tree res_op0;
5712 : res_op0 = captures[0];
5713 : tree res_op1;
5714 : res_op1 = inverse;
5715 : tree _r;
5716 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5717 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
5718 : return _r;
5719 : }
5720 : next_after_fail1633:;
5721 : }
5722 : }
5723 : }
5724 : }
5725 : }
5726 : }
5727 107 : break;
5728 : }
5729 49 : case VECTOR_CST:
5730 49 : {
5731 49 : {
5732 49 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
5733 49 : if (optimize
5734 : )
5735 : {
5736 45 : if (flag_reciprocal_math
5737 45 : && !real_zerop (captures[1])
5738 : )
5739 : {
5740 4 : {
5741 4 : tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
5742 4 : if (tem
5743 : )
5744 : {
5745 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1634;
5746 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1634;
5747 0 : {
5748 0 : tree res_op0;
5749 0 : res_op0 = captures[0];
5750 0 : tree res_op1;
5751 0 : res_op1 = tem;
5752 0 : tree _r;
5753 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5754 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
5755 0 : return _r;
5756 : }
5757 19 : next_after_fail1634:;
5758 : }
5759 : }
5760 : }
5761 : else
5762 : {
5763 41 : if (VECTOR_CST != COMPLEX_CST
5764 : )
5765 : {
5766 41 : {
5767 41 : tree inverse = exact_inverse (type, captures[1]);
5768 41 : if (inverse
5769 : )
5770 : {
5771 30 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1635;
5772 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1635;
5773 30 : {
5774 30 : tree res_op0;
5775 30 : res_op0 = captures[0];
5776 30 : tree res_op1;
5777 30 : res_op1 = inverse;
5778 30 : tree _r;
5779 30 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
5780 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
5781 30 : return _r;
5782 : }
5783 19 : next_after_fail1635:;
5784 : }
5785 : }
5786 : }
5787 : }
5788 : }
5789 : }
5790 19 : break;
5791 : }
5792 6055944 : default:;
5793 : }
5794 6055944 : switch (TREE_CODE (_p0))
5795 : {
5796 0 : case VEC_COND_EXPR:
5797 0 : {
5798 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5799 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5800 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5801 0 : switch (TREE_CODE (_p1))
5802 : {
5803 0 : case VEC_COND_EXPR:
5804 0 : {
5805 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5806 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5807 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5808 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5809 : {
5810 0 : {
5811 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
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_fail1636;
5821 0 : {
5822 0 : tree res_op0;
5823 0 : res_op0 = captures[1];
5824 0 : tree res_op1;
5825 0 : {
5826 0 : tree _o1[2], _r1;
5827 0 : _o1[0] = captures[2];
5828 0 : _o1[1] = captures[5];
5829 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5830 0 : if (EXPR_P (_r1))
5831 0 : goto next_after_fail1636;
5832 0 : res_op1 = _r1;
5833 : }
5834 0 : tree res_op2;
5835 0 : {
5836 0 : tree _o1[2], _r1;
5837 0 : _o1[0] = captures[3];
5838 0 : _o1[1] = captures[6];
5839 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5840 0 : if (EXPR_P (_r1))
5841 0 : goto next_after_fail1636;
5842 0 : res_op2 = _r1;
5843 : }
5844 0 : tree _r;
5845 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5846 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
5847 0 : return _r;
5848 : }
5849 0 : next_after_fail1636:;
5850 : }
5851 : }
5852 : }
5853 : break;
5854 : }
5855 0 : default:;
5856 : }
5857 0 : {
5858 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5859 0 : if (VECTOR_TYPE_P (type)
5860 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5861 : || types_match (type, TREE_TYPE (captures[2]))
5862 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5863 : || (optimize_vectors_before_lowering_p ()
5864 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5865 : )
5866 : {
5867 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
5868 0 : {
5869 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1637;
5870 0 : tree res_op0;
5871 0 : res_op0 = captures[1];
5872 0 : tree res_op1;
5873 0 : {
5874 0 : tree _o1[2], _r1;
5875 0 : _o1[0] = captures[2];
5876 0 : _o1[1] = unshare_expr (captures[4]);
5877 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5878 0 : if (EXPR_P (_r1))
5879 0 : goto next_after_fail1637;
5880 0 : res_op1 = _r1;
5881 : }
5882 0 : tree res_op2;
5883 0 : {
5884 0 : tree _o1[2], _r1;
5885 0 : _o1[0] = captures[3];
5886 0 : _o1[1] = captures[4];
5887 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5888 0 : if (EXPR_P (_r1))
5889 0 : goto next_after_fail1637;
5890 0 : res_op2 = _r1;
5891 : }
5892 0 : tree _r;
5893 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5894 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
5895 0 : return _r;
5896 : }
5897 0 : next_after_fail1637:;
5898 : }
5899 : }
5900 0 : break;
5901 : }
5902 6055944 : default:;
5903 : }
5904 6055944 : switch (TREE_CODE (_p1))
5905 : {
5906 0 : case VEC_COND_EXPR:
5907 0 : {
5908 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5909 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5910 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5911 0 : {
5912 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5913 0 : if (VECTOR_TYPE_P (type)
5914 0 : && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
5915 : || types_match (type, TREE_TYPE (captures[3]))
5916 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5917 : || (optimize_vectors_before_lowering_p ()
5918 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5919 : )
5920 : {
5921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
5922 0 : {
5923 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1638;
5924 0 : tree res_op0;
5925 0 : res_op0 = captures[2];
5926 0 : tree res_op1;
5927 0 : {
5928 0 : tree _o1[2], _r1;
5929 0 : _o1[0] = unshare_expr (captures[0]);
5930 0 : _o1[1] = captures[3];
5931 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5932 0 : if (EXPR_P (_r1))
5933 0 : goto next_after_fail1638;
5934 0 : res_op1 = _r1;
5935 : }
5936 0 : tree res_op2;
5937 0 : {
5938 0 : tree _o1[2], _r1;
5939 0 : _o1[0] = captures[0];
5940 0 : _o1[1] = captures[4];
5941 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
5942 0 : if (EXPR_P (_r1))
5943 0 : goto next_after_fail1638;
5944 0 : res_op2 = _r1;
5945 : }
5946 0 : tree _r;
5947 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5948 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
5949 0 : return _r;
5950 : }
5951 0 : next_after_fail1638:;
5952 : }
5953 : }
5954 0 : break;
5955 : }
5956 809678 : case CALL_EXPR:
5957 809678 : switch (get_call_combined_fn (_p1))
5958 : {
5959 20 : case CFN_BUILT_IN_SQRTF:
5960 20 : if (call_expr_nargs (_p1) == 1)
5961 : {
5962 20 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
5963 20 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5964 : {
5965 0 : {
5966 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5967 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
5968 0 : if (res) return res;
5969 : }
5970 : }
5971 20 : switch (TREE_CODE (_q30))
5972 : {
5973 0 : case RDIV_EXPR:
5974 0 : {
5975 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5976 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5977 0 : {
5978 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
5979 0 : if (flag_unsafe_math_optimizations
5980 : )
5981 : {
5982 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
5983 0 : {
5984 0 : tree res_op0;
5985 0 : res_op0 = captures[0];
5986 0 : tree res_op1;
5987 0 : {
5988 0 : tree _o1[1], _r1;
5989 0 : {
5990 0 : tree _o2[2], _r2;
5991 0 : _o2[0] = captures[4];
5992 0 : _o2[1] = captures[3];
5993 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5994 0 : _o1[0] = _r2;
5995 : }
5996 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
5997 0 : if (!_r1)
5998 0 : goto next_after_fail1639;
5999 0 : res_op1 = _r1;
6000 : }
6001 0 : tree _r;
6002 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6003 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6004 0 : return _r;
6005 : }
6006 0 : next_after_fail1639:;
6007 : }
6008 : }
6009 0 : break;
6010 : }
6011 : default:;
6012 : }
6013 : }
6014 : break;
6015 0 : case CFN_BUILT_IN_SQRTL:
6016 0 : if (call_expr_nargs (_p1) == 1)
6017 : {
6018 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6019 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6020 : {
6021 0 : {
6022 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6023 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
6024 0 : if (res) return res;
6025 : }
6026 : }
6027 0 : switch (TREE_CODE (_q30))
6028 : {
6029 0 : case RDIV_EXPR:
6030 0 : {
6031 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6032 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6033 0 : {
6034 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6035 0 : if (flag_unsafe_math_optimizations
6036 : )
6037 : {
6038 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
6039 0 : {
6040 0 : tree res_op0;
6041 0 : res_op0 = captures[0];
6042 0 : tree res_op1;
6043 0 : {
6044 0 : tree _o1[1], _r1;
6045 0 : {
6046 0 : tree _o2[2], _r2;
6047 0 : _o2[0] = captures[4];
6048 0 : _o2[1] = captures[3];
6049 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6050 0 : _o1[0] = _r2;
6051 : }
6052 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6053 0 : if (!_r1)
6054 0 : goto next_after_fail1640;
6055 0 : res_op1 = _r1;
6056 : }
6057 0 : tree _r;
6058 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6059 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6060 0 : return _r;
6061 : }
6062 0 : next_after_fail1640:;
6063 : }
6064 : }
6065 0 : break;
6066 : }
6067 : default:;
6068 : }
6069 : }
6070 : break;
6071 27 : case CFN_BUILT_IN_EXP:
6072 27 : if (call_expr_nargs (_p1) == 1)
6073 : {
6074 27 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6075 27 : {
6076 27 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6077 27 : if (flag_unsafe_math_optimizations
6078 : )
6079 : {
6080 27 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1641;
6081 27 : {
6082 27 : tree res_op0;
6083 27 : res_op0 = captures[0];
6084 27 : tree res_op1;
6085 27 : {
6086 27 : tree _o1[1], _r1;
6087 27 : {
6088 27 : tree _o2[1], _r2;
6089 27 : _o2[0] = captures[2];
6090 27 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6091 27 : _o1[0] = _r2;
6092 : }
6093 27 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
6094 27 : if (!_r1)
6095 0 : goto next_after_fail1641;
6096 27 : res_op1 = _r1;
6097 : }
6098 27 : tree _r;
6099 27 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6100 27 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6101 27 : return _r;
6102 : }
6103 0 : next_after_fail1641:;
6104 : }
6105 : }
6106 : }
6107 : break;
6108 24 : case CFN_BUILT_IN_EXP10F:
6109 24 : if (call_expr_nargs (_p1) == 1)
6110 : {
6111 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6112 24 : {
6113 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6114 24 : if (flag_unsafe_math_optimizations
6115 : )
6116 : {
6117 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1642;
6118 24 : {
6119 24 : tree res_op0;
6120 24 : res_op0 = captures[0];
6121 24 : tree res_op1;
6122 24 : {
6123 24 : tree _o1[1], _r1;
6124 24 : {
6125 24 : tree _o2[1], _r2;
6126 24 : _o2[0] = captures[2];
6127 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6128 24 : _o1[0] = _r2;
6129 : }
6130 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6131 24 : if (!_r1)
6132 0 : goto next_after_fail1642;
6133 24 : res_op1 = _r1;
6134 : }
6135 24 : tree _r;
6136 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6137 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6138 24 : return _r;
6139 : }
6140 0 : next_after_fail1642:;
6141 : }
6142 : }
6143 : }
6144 : break;
6145 24 : case CFN_BUILT_IN_EXP10L:
6146 24 : if (call_expr_nargs (_p1) == 1)
6147 : {
6148 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6149 24 : {
6150 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6151 24 : if (flag_unsafe_math_optimizations
6152 : )
6153 : {
6154 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1643;
6155 24 : {
6156 24 : tree res_op0;
6157 24 : res_op0 = captures[0];
6158 24 : tree res_op1;
6159 24 : {
6160 24 : tree _o1[1], _r1;
6161 24 : {
6162 24 : tree _o2[1], _r2;
6163 24 : _o2[0] = captures[2];
6164 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6165 24 : _o1[0] = _r2;
6166 : }
6167 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6168 24 : if (!_r1)
6169 0 : goto next_after_fail1643;
6170 24 : res_op1 = _r1;
6171 : }
6172 24 : tree _r;
6173 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6174 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6175 24 : return _r;
6176 : }
6177 0 : next_after_fail1643:;
6178 : }
6179 : }
6180 : }
6181 : break;
6182 3 : case CFN_BUILT_IN_CBRT:
6183 3 : if (call_expr_nargs (_p1) == 1)
6184 : {
6185 3 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6186 3 : switch (TREE_CODE (_q30))
6187 : {
6188 2 : case RDIV_EXPR:
6189 2 : {
6190 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6191 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6192 2 : {
6193 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6194 2 : if (flag_unsafe_math_optimizations
6195 : )
6196 : {
6197 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1644;
6198 2 : {
6199 2 : tree res_op0;
6200 2 : res_op0 = captures[0];
6201 2 : tree res_op1;
6202 2 : {
6203 2 : tree _o1[1], _r1;
6204 2 : {
6205 2 : tree _o2[2], _r2;
6206 2 : _o2[0] = captures[4];
6207 2 : _o2[1] = captures[3];
6208 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6209 2 : _o1[0] = _r2;
6210 : }
6211 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6212 2 : if (!_r1)
6213 0 : goto next_after_fail1644;
6214 2 : res_op1 = _r1;
6215 : }
6216 2 : tree _r;
6217 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6218 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6219 2 : return _r;
6220 : }
6221 0 : next_after_fail1644:;
6222 : }
6223 : }
6224 0 : break;
6225 : }
6226 : default:;
6227 : }
6228 : }
6229 : break;
6230 24 : case CFN_BUILT_IN_EXP2:
6231 24 : if (call_expr_nargs (_p1) == 1)
6232 : {
6233 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6234 24 : {
6235 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6236 24 : if (flag_unsafe_math_optimizations
6237 : )
6238 : {
6239 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1645;
6240 24 : {
6241 24 : tree res_op0;
6242 24 : res_op0 = captures[0];
6243 24 : tree res_op1;
6244 24 : {
6245 24 : tree _o1[1], _r1;
6246 24 : {
6247 24 : tree _o2[1], _r2;
6248 24 : _o2[0] = captures[2];
6249 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6250 24 : _o1[0] = _r2;
6251 : }
6252 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6253 24 : if (!_r1)
6254 0 : goto next_after_fail1645;
6255 24 : res_op1 = _r1;
6256 : }
6257 24 : tree _r;
6258 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6259 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6260 24 : return _r;
6261 : }
6262 0 : next_after_fail1645:;
6263 : }
6264 : }
6265 : }
6266 : break;
6267 25 : case CFN_BUILT_IN_EXPF:
6268 25 : if (call_expr_nargs (_p1) == 1)
6269 : {
6270 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6271 25 : {
6272 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6273 25 : if (flag_unsafe_math_optimizations
6274 : )
6275 : {
6276 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1646;
6277 25 : {
6278 25 : tree res_op0;
6279 25 : res_op0 = captures[0];
6280 25 : tree res_op1;
6281 25 : {
6282 25 : tree _o1[1], _r1;
6283 25 : {
6284 25 : tree _o2[1], _r2;
6285 25 : _o2[0] = captures[2];
6286 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6287 25 : _o1[0] = _r2;
6288 : }
6289 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6290 25 : if (!_r1)
6291 0 : goto next_after_fail1646;
6292 25 : res_op1 = _r1;
6293 : }
6294 25 : tree _r;
6295 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6296 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6297 25 : return _r;
6298 : }
6299 0 : next_after_fail1646:;
6300 : }
6301 : }
6302 : }
6303 : break;
6304 25 : case CFN_BUILT_IN_EXPL:
6305 25 : if (call_expr_nargs (_p1) == 1)
6306 : {
6307 25 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6308 25 : {
6309 25 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6310 25 : if (flag_unsafe_math_optimizations
6311 : )
6312 : {
6313 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1647;
6314 25 : {
6315 25 : tree res_op0;
6316 25 : res_op0 = captures[0];
6317 25 : tree res_op1;
6318 25 : {
6319 25 : tree _o1[1], _r1;
6320 25 : {
6321 25 : tree _o2[1], _r2;
6322 25 : _o2[0] = captures[2];
6323 25 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6324 25 : _o1[0] = _r2;
6325 : }
6326 25 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6327 25 : if (!_r1)
6328 0 : goto next_after_fail1647;
6329 25 : res_op1 = _r1;
6330 : }
6331 25 : tree _r;
6332 25 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6333 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6334 25 : return _r;
6335 : }
6336 0 : next_after_fail1647:;
6337 : }
6338 : }
6339 : }
6340 : break;
6341 306 : case CFN_BUILT_IN_SQRT:
6342 306 : if (call_expr_nargs (_p1) == 1)
6343 : {
6344 306 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6345 306 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6346 : {
6347 0 : {
6348 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6349 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
6350 0 : if (res) return res;
6351 : }
6352 : }
6353 306 : switch (TREE_CODE (_q30))
6354 : {
6355 2 : case RDIV_EXPR:
6356 2 : {
6357 2 : tree _q40 = TREE_OPERAND (_q30, 0);
6358 2 : tree _q41 = TREE_OPERAND (_q30, 1);
6359 2 : {
6360 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6361 2 : if (flag_unsafe_math_optimizations
6362 : )
6363 : {
6364 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1648;
6365 2 : {
6366 2 : tree res_op0;
6367 2 : res_op0 = captures[0];
6368 2 : tree res_op1;
6369 2 : {
6370 2 : tree _o1[1], _r1;
6371 2 : {
6372 2 : tree _o2[2], _r2;
6373 2 : _o2[0] = captures[4];
6374 2 : _o2[1] = captures[3];
6375 2 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6376 2 : _o1[0] = _r2;
6377 : }
6378 2 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6379 2 : if (!_r1)
6380 0 : goto next_after_fail1648;
6381 2 : res_op1 = _r1;
6382 : }
6383 2 : tree _r;
6384 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6385 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6386 2 : return _r;
6387 : }
6388 0 : next_after_fail1648:;
6389 : }
6390 : }
6391 0 : break;
6392 : }
6393 : default:;
6394 : }
6395 : }
6396 : break;
6397 0 : case CFN_EXP:
6398 0 : if (call_expr_nargs (_p1) == 1)
6399 : {
6400 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6401 0 : {
6402 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6403 0 : if (flag_unsafe_math_optimizations
6404 : )
6405 : {
6406 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1649;
6407 0 : {
6408 0 : tree res_op0;
6409 0 : res_op0 = captures[0];
6410 0 : tree res_op1;
6411 0 : {
6412 0 : tree _o1[1], _r1;
6413 0 : {
6414 0 : tree _o2[1], _r2;
6415 0 : _o2[0] = captures[2];
6416 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6417 0 : _o1[0] = _r2;
6418 : }
6419 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
6420 0 : if (!_r1)
6421 0 : goto next_after_fail1649;
6422 0 : res_op1 = _r1;
6423 : }
6424 0 : tree _r;
6425 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6426 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6427 0 : return _r;
6428 : }
6429 0 : next_after_fail1649:;
6430 : }
6431 : }
6432 : }
6433 : break;
6434 24 : case CFN_BUILT_IN_POW10F:
6435 24 : if (call_expr_nargs (_p1) == 1)
6436 : {
6437 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6438 24 : {
6439 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6440 24 : if (flag_unsafe_math_optimizations
6441 : )
6442 : {
6443 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1650;
6444 24 : {
6445 24 : tree res_op0;
6446 24 : res_op0 = captures[0];
6447 24 : tree res_op1;
6448 24 : {
6449 24 : tree _o1[1], _r1;
6450 24 : {
6451 24 : tree _o2[1], _r2;
6452 24 : _o2[0] = captures[2];
6453 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6454 24 : _o1[0] = _r2;
6455 : }
6456 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6457 24 : if (!_r1)
6458 24 : goto next_after_fail1650;
6459 0 : res_op1 = _r1;
6460 : }
6461 0 : tree _r;
6462 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6463 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6464 0 : return _r;
6465 : }
6466 24 : next_after_fail1650:;
6467 : }
6468 : }
6469 : }
6470 : break;
6471 24 : case CFN_BUILT_IN_POW10L:
6472 24 : if (call_expr_nargs (_p1) == 1)
6473 : {
6474 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6475 24 : {
6476 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6477 24 : if (flag_unsafe_math_optimizations
6478 : )
6479 : {
6480 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1651;
6481 24 : {
6482 24 : tree res_op0;
6483 24 : res_op0 = captures[0];
6484 24 : tree res_op1;
6485 24 : {
6486 24 : tree _o1[1], _r1;
6487 24 : {
6488 24 : tree _o2[1], _r2;
6489 24 : _o2[0] = captures[2];
6490 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6491 24 : _o1[0] = _r2;
6492 : }
6493 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6494 24 : if (!_r1)
6495 24 : goto next_after_fail1651;
6496 0 : res_op1 = _r1;
6497 : }
6498 0 : tree _r;
6499 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6500 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6501 0 : return _r;
6502 : }
6503 24 : next_after_fail1651:;
6504 : }
6505 : }
6506 : }
6507 : break;
6508 0 : case CFN_EXP2:
6509 0 : if (call_expr_nargs (_p1) == 1)
6510 : {
6511 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6512 0 : {
6513 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6514 0 : if (flag_unsafe_math_optimizations
6515 : )
6516 : {
6517 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1652;
6518 0 : {
6519 0 : tree res_op0;
6520 0 : res_op0 = captures[0];
6521 0 : tree res_op1;
6522 0 : {
6523 0 : tree _o1[1], _r1;
6524 0 : {
6525 0 : tree _o2[1], _r2;
6526 0 : _o2[0] = captures[2];
6527 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6528 0 : _o1[0] = _r2;
6529 : }
6530 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
6531 0 : if (!_r1)
6532 0 : goto next_after_fail1652;
6533 0 : res_op1 = _r1;
6534 : }
6535 0 : tree _r;
6536 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6537 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6538 0 : return _r;
6539 : }
6540 0 : next_after_fail1652:;
6541 : }
6542 : }
6543 : }
6544 : break;
6545 0 : case CFN_SQRT:
6546 0 : if (call_expr_nargs (_p1) == 1)
6547 : {
6548 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6549 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6550 : {
6551 0 : {
6552 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6553 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_SQRT);
6554 0 : if (res) return res;
6555 : }
6556 : }
6557 0 : switch (TREE_CODE (_q30))
6558 : {
6559 0 : case RDIV_EXPR:
6560 0 : {
6561 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6562 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6563 0 : {
6564 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6565 0 : if (flag_unsafe_math_optimizations
6566 : )
6567 : {
6568 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1653;
6569 0 : {
6570 0 : tree res_op0;
6571 0 : res_op0 = captures[0];
6572 0 : tree res_op1;
6573 0 : {
6574 0 : tree _o1[1], _r1;
6575 0 : {
6576 0 : tree _o2[2], _r2;
6577 0 : _o2[0] = captures[4];
6578 0 : _o2[1] = captures[3];
6579 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6580 0 : _o1[0] = _r2;
6581 : }
6582 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
6583 0 : if (!_r1)
6584 0 : goto next_after_fail1653;
6585 0 : res_op1 = _r1;
6586 : }
6587 0 : tree _r;
6588 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6589 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6590 0 : return _r;
6591 : }
6592 0 : next_after_fail1653:;
6593 : }
6594 : }
6595 0 : break;
6596 : }
6597 : default:;
6598 : }
6599 : }
6600 : break;
6601 0 : case CFN_EXP10:
6602 0 : if (call_expr_nargs (_p1) == 1)
6603 : {
6604 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6605 0 : {
6606 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6607 0 : if (flag_unsafe_math_optimizations
6608 : )
6609 : {
6610 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1654;
6611 0 : {
6612 0 : tree res_op0;
6613 0 : res_op0 = captures[0];
6614 0 : tree res_op1;
6615 0 : {
6616 0 : tree _o1[1], _r1;
6617 0 : {
6618 0 : tree _o2[1], _r2;
6619 0 : _o2[0] = captures[2];
6620 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6621 0 : _o1[0] = _r2;
6622 : }
6623 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6624 0 : if (!_r1)
6625 0 : goto next_after_fail1654;
6626 0 : res_op1 = _r1;
6627 : }
6628 0 : tree _r;
6629 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6630 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6631 0 : return _r;
6632 : }
6633 0 : next_after_fail1654:;
6634 : }
6635 : }
6636 : }
6637 : break;
6638 0 : case CFN_BUILT_IN_CBRTF:
6639 0 : if (call_expr_nargs (_p1) == 1)
6640 : {
6641 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6642 0 : switch (TREE_CODE (_q30))
6643 : {
6644 0 : case RDIV_EXPR:
6645 0 : {
6646 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6647 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6648 0 : {
6649 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6650 0 : if (flag_unsafe_math_optimizations
6651 : )
6652 : {
6653 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1655;
6654 0 : {
6655 0 : tree res_op0;
6656 0 : res_op0 = captures[0];
6657 0 : tree res_op1;
6658 0 : {
6659 0 : tree _o1[1], _r1;
6660 0 : {
6661 0 : tree _o2[2], _r2;
6662 0 : _o2[0] = captures[4];
6663 0 : _o2[1] = captures[3];
6664 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6665 0 : _o1[0] = _r2;
6666 : }
6667 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
6668 0 : if (!_r1)
6669 0 : goto next_after_fail1655;
6670 0 : res_op1 = _r1;
6671 : }
6672 0 : tree _r;
6673 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6675 0 : return _r;
6676 : }
6677 0 : next_after_fail1655:;
6678 : }
6679 : }
6680 0 : break;
6681 : }
6682 : default:;
6683 : }
6684 : }
6685 : break;
6686 0 : case CFN_BUILT_IN_CBRTL:
6687 0 : if (call_expr_nargs (_p1) == 1)
6688 : {
6689 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6690 0 : switch (TREE_CODE (_q30))
6691 : {
6692 0 : case RDIV_EXPR:
6693 0 : {
6694 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6695 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6696 0 : {
6697 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
6698 0 : if (flag_unsafe_math_optimizations
6699 : )
6700 : {
6701 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1656;
6702 0 : {
6703 0 : tree res_op0;
6704 0 : res_op0 = captures[0];
6705 0 : tree res_op1;
6706 0 : {
6707 0 : tree _o1[1], _r1;
6708 0 : {
6709 0 : tree _o2[2], _r2;
6710 0 : _o2[0] = captures[4];
6711 0 : _o2[1] = captures[3];
6712 0 : _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
6713 0 : _o1[0] = _r2;
6714 : }
6715 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
6716 0 : if (!_r1)
6717 0 : goto next_after_fail1656;
6718 0 : res_op1 = _r1;
6719 : }
6720 0 : tree _r;
6721 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
6723 0 : return _r;
6724 : }
6725 0 : next_after_fail1656:;
6726 : }
6727 : }
6728 0 : break;
6729 : }
6730 : default:;
6731 : }
6732 : }
6733 : break;
6734 24 : case CFN_BUILT_IN_EXP10:
6735 24 : if (call_expr_nargs (_p1) == 1)
6736 : {
6737 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6738 24 : {
6739 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6740 24 : if (flag_unsafe_math_optimizations
6741 : )
6742 : {
6743 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1657;
6744 24 : {
6745 24 : tree res_op0;
6746 24 : res_op0 = captures[0];
6747 24 : tree res_op1;
6748 24 : {
6749 24 : tree _o1[1], _r1;
6750 24 : {
6751 24 : tree _o2[1], _r2;
6752 24 : _o2[0] = captures[2];
6753 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6754 24 : _o1[0] = _r2;
6755 : }
6756 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6757 24 : if (!_r1)
6758 0 : goto next_after_fail1657;
6759 24 : res_op1 = _r1;
6760 : }
6761 24 : tree _r;
6762 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6763 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6764 24 : return _r;
6765 : }
6766 0 : next_after_fail1657:;
6767 : }
6768 : }
6769 : }
6770 : break;
6771 24 : case CFN_BUILT_IN_EXP2F:
6772 24 : if (call_expr_nargs (_p1) == 1)
6773 : {
6774 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6775 24 : {
6776 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6777 24 : if (flag_unsafe_math_optimizations
6778 : )
6779 : {
6780 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1658;
6781 24 : {
6782 24 : tree res_op0;
6783 24 : res_op0 = captures[0];
6784 24 : tree res_op1;
6785 24 : {
6786 24 : tree _o1[1], _r1;
6787 24 : {
6788 24 : tree _o2[1], _r2;
6789 24 : _o2[0] = captures[2];
6790 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6791 24 : _o1[0] = _r2;
6792 : }
6793 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), 1, _o1[0]);
6794 24 : if (!_r1)
6795 0 : goto next_after_fail1658;
6796 24 : res_op1 = _r1;
6797 : }
6798 24 : tree _r;
6799 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6800 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6801 24 : return _r;
6802 : }
6803 0 : next_after_fail1658:;
6804 : }
6805 : }
6806 : }
6807 : break;
6808 24 : case CFN_BUILT_IN_EXP2L:
6809 24 : if (call_expr_nargs (_p1) == 1)
6810 : {
6811 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6812 24 : {
6813 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6814 24 : if (flag_unsafe_math_optimizations
6815 : )
6816 : {
6817 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1659;
6818 24 : {
6819 24 : tree res_op0;
6820 24 : res_op0 = captures[0];
6821 24 : tree res_op1;
6822 24 : {
6823 24 : tree _o1[1], _r1;
6824 24 : {
6825 24 : tree _o2[1], _r2;
6826 24 : _o2[0] = captures[2];
6827 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6828 24 : _o1[0] = _r2;
6829 : }
6830 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), 1, _o1[0]);
6831 24 : if (!_r1)
6832 0 : goto next_after_fail1659;
6833 24 : res_op1 = _r1;
6834 : }
6835 24 : tree _r;
6836 24 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6837 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6838 24 : return _r;
6839 : }
6840 0 : next_after_fail1659:;
6841 : }
6842 : }
6843 : }
6844 : break;
6845 24 : case CFN_BUILT_IN_POW10:
6846 24 : if (call_expr_nargs (_p1) == 1)
6847 : {
6848 24 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
6849 24 : {
6850 24 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6851 24 : if (flag_unsafe_math_optimizations
6852 : )
6853 : {
6854 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1660;
6855 24 : {
6856 24 : tree res_op0;
6857 24 : res_op0 = captures[0];
6858 24 : tree res_op1;
6859 24 : {
6860 24 : tree _o1[1], _r1;
6861 24 : {
6862 24 : tree _o2[1], _r2;
6863 24 : _o2[0] = captures[2];
6864 24 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
6865 24 : _o1[0] = _r2;
6866 : }
6867 24 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), 1, _o1[0]);
6868 24 : if (!_r1)
6869 24 : goto next_after_fail1660;
6870 0 : res_op1 = _r1;
6871 : }
6872 0 : tree _r;
6873 0 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6874 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
6875 0 : return _r;
6876 : }
6877 24 : next_after_fail1660:;
6878 : }
6879 : }
6880 : }
6881 : break;
6882 : default:;
6883 : }
6884 : break;
6885 6055719 : default:;
6886 : }
6887 6055719 : switch (TREE_CODE (_p0))
6888 : {
6889 194570 : case CALL_EXPR:
6890 194570 : switch (get_call_combined_fn (_p0))
6891 : {
6892 1 : case CFN_BUILT_IN_SINHF:
6893 1 : if (call_expr_nargs (_p0) == 1)
6894 : {
6895 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6896 1 : switch (TREE_CODE (_p1))
6897 : {
6898 1 : case CALL_EXPR:
6899 1 : switch (get_call_combined_fn (_p1))
6900 : {
6901 1 : case CFN_BUILT_IN_COSHF:
6902 1 : if (call_expr_nargs (_p1) == 1)
6903 : {
6904 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6905 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6906 : {
6907 1 : {
6908 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6909 1 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF);
6910 1 : if (res) return res;
6911 : }
6912 : }
6913 : }
6914 : break;
6915 : default:;
6916 : }
6917 : break;
6918 : default:;
6919 : }
6920 : }
6921 : break;
6922 1 : case CFN_BUILT_IN_SINHL:
6923 1 : if (call_expr_nargs (_p0) == 1)
6924 : {
6925 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6926 1 : switch (TREE_CODE (_p1))
6927 : {
6928 1 : case CALL_EXPR:
6929 1 : switch (get_call_combined_fn (_p1))
6930 : {
6931 1 : case CFN_BUILT_IN_COSHL:
6932 1 : if (call_expr_nargs (_p1) == 1)
6933 : {
6934 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6935 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6936 : {
6937 1 : {
6938 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6939 1 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL);
6940 1 : if (res) return res;
6941 : }
6942 : }
6943 : }
6944 : break;
6945 : default:;
6946 : }
6947 : break;
6948 : default:;
6949 : }
6950 : }
6951 : break;
6952 1 : case CFN_BUILT_IN_TANHF:
6953 1 : if (call_expr_nargs (_p0) == 1)
6954 : {
6955 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6956 1 : switch (TREE_CODE (_p1))
6957 : {
6958 1 : case CALL_EXPR:
6959 1 : switch (get_call_combined_fn (_p1))
6960 : {
6961 1 : case CFN_BUILT_IN_SINHF:
6962 1 : if (call_expr_nargs (_p1) == 1)
6963 : {
6964 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6965 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6966 : {
6967 1 : {
6968 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6969 1 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF);
6970 1 : if (res) return res;
6971 : }
6972 : }
6973 : }
6974 : break;
6975 : default:;
6976 : }
6977 : break;
6978 : default:;
6979 : }
6980 : }
6981 : break;
6982 1 : case CFN_BUILT_IN_TANHL:
6983 1 : if (call_expr_nargs (_p0) == 1)
6984 : {
6985 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6986 1 : switch (TREE_CODE (_p1))
6987 : {
6988 1 : case CALL_EXPR:
6989 1 : switch (get_call_combined_fn (_p1))
6990 : {
6991 1 : case CFN_BUILT_IN_SINHL:
6992 1 : if (call_expr_nargs (_p1) == 1)
6993 : {
6994 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6995 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6996 : {
6997 1 : {
6998 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6999 1 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL);
7000 1 : if (res) return res;
7001 : }
7002 : }
7003 : }
7004 : break;
7005 : default:;
7006 : }
7007 : break;
7008 : default:;
7009 : }
7010 : }
7011 : break;
7012 2 : case CFN_BUILT_IN_COS:
7013 2 : if (call_expr_nargs (_p0) == 1)
7014 : {
7015 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7016 2 : switch (TREE_CODE (_p1))
7017 : {
7018 2 : case CALL_EXPR:
7019 2 : switch (get_call_combined_fn (_p1))
7020 : {
7021 2 : case CFN_BUILT_IN_SIN:
7022 2 : if (call_expr_nargs (_p1) == 1)
7023 : {
7024 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7025 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7026 : {
7027 2 : {
7028 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7029 2 : tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
7030 2 : if (res) return res;
7031 : }
7032 : }
7033 : }
7034 : break;
7035 : default:;
7036 : }
7037 : break;
7038 : default:;
7039 : }
7040 : }
7041 : break;
7042 4 : case CFN_BUILT_IN_POW:
7043 4 : if (call_expr_nargs (_p0) == 2)
7044 : {
7045 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7046 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7047 4 : switch (TREE_CODE (_q21))
7048 : {
7049 4 : case REAL_CST:
7050 4 : {
7051 4 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7052 : {
7053 4 : {
7054 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7055 4 : tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
7056 4 : if (res) return res;
7057 : }
7058 : }
7059 : break;
7060 : }
7061 : default:;
7062 : }
7063 : }
7064 : break;
7065 94 : case CFN_BUILT_IN_SIN:
7066 94 : if (call_expr_nargs (_p0) == 1)
7067 : {
7068 94 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7069 94 : switch (TREE_CODE (_p1))
7070 : {
7071 4 : case CALL_EXPR:
7072 4 : switch (get_call_combined_fn (_p1))
7073 : {
7074 2 : case CFN_BUILT_IN_COS:
7075 2 : if (call_expr_nargs (_p1) == 1)
7076 : {
7077 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7078 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7079 : {
7080 2 : {
7081 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7082 2 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
7083 2 : if (res) return res;
7084 : }
7085 : }
7086 : }
7087 : break;
7088 2 : case CFN_BUILT_IN_TAN:
7089 2 : if (call_expr_nargs (_p1) == 1)
7090 : {
7091 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7092 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7093 : {
7094 2 : {
7095 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7096 2 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
7097 2 : if (res) return res;
7098 : }
7099 : }
7100 : }
7101 : break;
7102 : default:;
7103 : }
7104 : break;
7105 : default:;
7106 : }
7107 : }
7108 : break;
7109 2 : case CFN_BUILT_IN_TAN:
7110 2 : if (call_expr_nargs (_p0) == 1)
7111 : {
7112 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7113 2 : switch (TREE_CODE (_p1))
7114 : {
7115 2 : case CALL_EXPR:
7116 2 : switch (get_call_combined_fn (_p1))
7117 : {
7118 2 : case CFN_BUILT_IN_SIN:
7119 2 : if (call_expr_nargs (_p1) == 1)
7120 : {
7121 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7122 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7123 : {
7124 2 : {
7125 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7126 2 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
7127 2 : if (res) return res;
7128 : }
7129 : }
7130 : }
7131 : break;
7132 : default:;
7133 : }
7134 : break;
7135 : default:;
7136 : }
7137 : }
7138 : break;
7139 2 : case CFN_BUILT_IN_COSF:
7140 2 : if (call_expr_nargs (_p0) == 1)
7141 : {
7142 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7143 2 : switch (TREE_CODE (_p1))
7144 : {
7145 2 : case CALL_EXPR:
7146 2 : switch (get_call_combined_fn (_p1))
7147 : {
7148 2 : case CFN_BUILT_IN_SINF:
7149 2 : if (call_expr_nargs (_p1) == 1)
7150 : {
7151 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7152 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7153 : {
7154 2 : {
7155 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7156 2 : tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
7157 2 : if (res) return res;
7158 : }
7159 : }
7160 : }
7161 : break;
7162 : default:;
7163 : }
7164 : break;
7165 : default:;
7166 : }
7167 : }
7168 : break;
7169 2 : case CFN_BUILT_IN_COSL:
7170 2 : if (call_expr_nargs (_p0) == 1)
7171 : {
7172 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7173 2 : switch (TREE_CODE (_p1))
7174 : {
7175 2 : case CALL_EXPR:
7176 2 : switch (get_call_combined_fn (_p1))
7177 : {
7178 2 : case CFN_BUILT_IN_SINL:
7179 2 : if (call_expr_nargs (_p1) == 1)
7180 : {
7181 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7182 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7183 : {
7184 2 : {
7185 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7186 2 : tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
7187 2 : if (res) return res;
7188 : }
7189 : }
7190 : }
7191 : break;
7192 : default:;
7193 : }
7194 : break;
7195 : default:;
7196 : }
7197 : }
7198 : break;
7199 1 : case CFN_BUILT_IN_POWF:
7200 1 : if (call_expr_nargs (_p0) == 2)
7201 : {
7202 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7203 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7204 1 : switch (TREE_CODE (_q21))
7205 : {
7206 1 : case REAL_CST:
7207 1 : {
7208 1 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7209 : {
7210 0 : {
7211 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7212 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7213 0 : if (res) return res;
7214 : }
7215 : }
7216 : break;
7217 : }
7218 : default:;
7219 : }
7220 : }
7221 : break;
7222 0 : case CFN_BUILT_IN_POWL:
7223 0 : if (call_expr_nargs (_p0) == 2)
7224 : {
7225 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7226 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7227 0 : switch (TREE_CODE (_q21))
7228 : {
7229 0 : case REAL_CST:
7230 0 : {
7231 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7232 : {
7233 0 : {
7234 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7235 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7236 0 : if (res) return res;
7237 : }
7238 : }
7239 : break;
7240 : }
7241 : default:;
7242 : }
7243 : }
7244 : break;
7245 4 : case CFN_BUILT_IN_SINF:
7246 4 : if (call_expr_nargs (_p0) == 1)
7247 : {
7248 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7249 4 : switch (TREE_CODE (_p1))
7250 : {
7251 4 : case CALL_EXPR:
7252 4 : switch (get_call_combined_fn (_p1))
7253 : {
7254 2 : case CFN_BUILT_IN_COSF:
7255 2 : if (call_expr_nargs (_p1) == 1)
7256 : {
7257 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7258 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7259 : {
7260 2 : {
7261 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7262 2 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
7263 2 : if (res) return res;
7264 : }
7265 : }
7266 : }
7267 : break;
7268 2 : case CFN_BUILT_IN_TANF:
7269 2 : if (call_expr_nargs (_p1) == 1)
7270 : {
7271 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7272 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7273 : {
7274 2 : {
7275 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7276 2 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
7277 2 : if (res) return res;
7278 : }
7279 : }
7280 : }
7281 : break;
7282 : default:;
7283 : }
7284 : break;
7285 : default:;
7286 : }
7287 : }
7288 : break;
7289 143 : case CFN_BUILT_IN_SINH:
7290 143 : if (call_expr_nargs (_p0) == 1)
7291 : {
7292 143 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7293 143 : switch (TREE_CODE (_p1))
7294 : {
7295 3 : case CALL_EXPR:
7296 3 : switch (get_call_combined_fn (_p1))
7297 : {
7298 3 : case CFN_BUILT_IN_COSH:
7299 3 : if (call_expr_nargs (_p1) == 1)
7300 : {
7301 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7302 3 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7303 : {
7304 3 : {
7305 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7306 3 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH);
7307 3 : if (res) return res;
7308 : }
7309 : }
7310 : }
7311 : break;
7312 : default:;
7313 : }
7314 : break;
7315 : default:;
7316 : }
7317 : }
7318 : break;
7319 4 : case CFN_BUILT_IN_SINL:
7320 4 : if (call_expr_nargs (_p0) == 1)
7321 : {
7322 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7323 4 : switch (TREE_CODE (_p1))
7324 : {
7325 4 : case CALL_EXPR:
7326 4 : switch (get_call_combined_fn (_p1))
7327 : {
7328 2 : case CFN_BUILT_IN_COSL:
7329 2 : if (call_expr_nargs (_p1) == 1)
7330 : {
7331 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7332 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7333 : {
7334 2 : {
7335 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7336 2 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
7337 2 : if (res) return res;
7338 : }
7339 : }
7340 : }
7341 : break;
7342 2 : case CFN_BUILT_IN_TANL:
7343 2 : if (call_expr_nargs (_p1) == 1)
7344 : {
7345 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7346 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7347 : {
7348 2 : {
7349 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7350 2 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
7351 2 : if (res) return res;
7352 : }
7353 : }
7354 : }
7355 : break;
7356 : default:;
7357 : }
7358 : break;
7359 : default:;
7360 : }
7361 : }
7362 : break;
7363 2 : case CFN_BUILT_IN_TANF:
7364 2 : if (call_expr_nargs (_p0) == 1)
7365 : {
7366 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7367 2 : switch (TREE_CODE (_p1))
7368 : {
7369 2 : case CALL_EXPR:
7370 2 : switch (get_call_combined_fn (_p1))
7371 : {
7372 2 : case CFN_BUILT_IN_SINF:
7373 2 : if (call_expr_nargs (_p1) == 1)
7374 : {
7375 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7376 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7377 : {
7378 2 : {
7379 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7380 2 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
7381 2 : if (res) return res;
7382 : }
7383 : }
7384 : }
7385 : break;
7386 : default:;
7387 : }
7388 : break;
7389 : default:;
7390 : }
7391 : }
7392 : break;
7393 1 : case CFN_BUILT_IN_TANH:
7394 1 : if (call_expr_nargs (_p0) == 1)
7395 : {
7396 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7397 1 : switch (TREE_CODE (_p1))
7398 : {
7399 1 : case CALL_EXPR:
7400 1 : switch (get_call_combined_fn (_p1))
7401 : {
7402 1 : case CFN_BUILT_IN_SINH:
7403 1 : if (call_expr_nargs (_p1) == 1)
7404 : {
7405 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7406 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7407 : {
7408 1 : {
7409 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7410 1 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH);
7411 1 : if (res) return res;
7412 : }
7413 : }
7414 : }
7415 : break;
7416 : default:;
7417 : }
7418 : break;
7419 : default:;
7420 : }
7421 : }
7422 : break;
7423 2 : case CFN_BUILT_IN_TANL:
7424 2 : if (call_expr_nargs (_p0) == 1)
7425 : {
7426 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7427 2 : switch (TREE_CODE (_p1))
7428 : {
7429 2 : case CALL_EXPR:
7430 2 : switch (get_call_combined_fn (_p1))
7431 : {
7432 2 : case CFN_BUILT_IN_SINL:
7433 2 : if (call_expr_nargs (_p1) == 1)
7434 : {
7435 2 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7436 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7437 : {
7438 2 : {
7439 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7440 2 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
7441 2 : if (res) return res;
7442 : }
7443 : }
7444 : }
7445 : break;
7446 : default:;
7447 : }
7448 : break;
7449 : default:;
7450 : }
7451 : }
7452 : break;
7453 0 : case CFN_COS:
7454 0 : if (call_expr_nargs (_p0) == 1)
7455 : {
7456 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7457 0 : switch (TREE_CODE (_p1))
7458 : {
7459 0 : case CALL_EXPR:
7460 0 : switch (get_call_combined_fn (_p1))
7461 : {
7462 0 : case CFN_SIN:
7463 0 : if (call_expr_nargs (_p1) == 1)
7464 : {
7465 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7466 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7467 : {
7468 0 : {
7469 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7470 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_COS, CFN_SIN, CFN_TAN);
7471 0 : if (res) return res;
7472 : }
7473 : }
7474 : }
7475 : break;
7476 : default:;
7477 : }
7478 : break;
7479 : default:;
7480 : }
7481 : }
7482 : break;
7483 0 : case CFN_POW:
7484 0 : if (call_expr_nargs (_p0) == 2)
7485 : {
7486 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7487 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7488 0 : switch (TREE_CODE (_q21))
7489 : {
7490 0 : case REAL_CST:
7491 0 : {
7492 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7493 : {
7494 0 : {
7495 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7496 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, CFN_POW);
7497 0 : if (res) return res;
7498 : }
7499 : }
7500 : break;
7501 : }
7502 : default:;
7503 : }
7504 : }
7505 : break;
7506 0 : case CFN_SIN:
7507 0 : if (call_expr_nargs (_p0) == 1)
7508 : {
7509 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7510 0 : switch (TREE_CODE (_p1))
7511 : {
7512 0 : case CALL_EXPR:
7513 0 : switch (get_call_combined_fn (_p1))
7514 : {
7515 0 : case CFN_COS:
7516 0 : if (call_expr_nargs (_p1) == 1)
7517 : {
7518 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7519 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7520 : {
7521 0 : {
7522 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7523 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_COS, CFN_TAN);
7524 0 : if (res) return res;
7525 : }
7526 : }
7527 : }
7528 : break;
7529 0 : case CFN_TAN:
7530 0 : if (call_expr_nargs (_p1) == 1)
7531 : {
7532 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7533 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7534 : {
7535 0 : {
7536 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7537 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_TAN, CFN_COS);
7538 0 : if (res) return res;
7539 : }
7540 : }
7541 : }
7542 : break;
7543 : default:;
7544 : }
7545 : break;
7546 : default:;
7547 : }
7548 : }
7549 : break;
7550 0 : case CFN_TAN:
7551 0 : if (call_expr_nargs (_p0) == 1)
7552 : {
7553 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7554 0 : switch (TREE_CODE (_p1))
7555 : {
7556 0 : case CALL_EXPR:
7557 0 : switch (get_call_combined_fn (_p1))
7558 : {
7559 0 : case CFN_SIN:
7560 0 : if (call_expr_nargs (_p1) == 1)
7561 : {
7562 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7563 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7564 : {
7565 0 : {
7566 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7567 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_SIN, CFN_COS);
7568 0 : if (res) return res;
7569 : }
7570 : }
7571 : }
7572 : break;
7573 : default:;
7574 : }
7575 : break;
7576 : default:;
7577 : }
7578 : }
7579 : break;
7580 0 : case CFN_SINH:
7581 0 : if (call_expr_nargs (_p0) == 1)
7582 : {
7583 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7584 0 : switch (TREE_CODE (_p1))
7585 : {
7586 0 : case CALL_EXPR:
7587 0 : switch (get_call_combined_fn (_p1))
7588 : {
7589 0 : case CFN_COSH:
7590 0 : if (call_expr_nargs (_p1) == 1)
7591 : {
7592 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7593 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7594 : {
7595 0 : {
7596 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7597 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, captures, CFN_SINH, CFN_COSH, CFN_TANH);
7598 0 : if (res) return res;
7599 : }
7600 : }
7601 : }
7602 : break;
7603 : default:;
7604 : }
7605 : break;
7606 : default:;
7607 : }
7608 : }
7609 : break;
7610 0 : case CFN_TANH:
7611 0 : if (call_expr_nargs (_p0) == 1)
7612 : {
7613 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7614 0 : switch (TREE_CODE (_p1))
7615 : {
7616 0 : case CALL_EXPR:
7617 0 : switch (get_call_combined_fn (_p1))
7618 : {
7619 0 : case CFN_SINH:
7620 0 : if (call_expr_nargs (_p1) == 1)
7621 : {
7622 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7623 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
7624 : {
7625 0 : {
7626 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7627 0 : tree res = generic_simplify_342 (loc, type, _p0, _p1, captures, CFN_TANH, CFN_SINH, CFN_COSH);
7628 0 : if (res) return res;
7629 : }
7630 : }
7631 : }
7632 : break;
7633 : default:;
7634 : }
7635 : break;
7636 : default:;
7637 : }
7638 : }
7639 : break;
7640 : default:;
7641 : }
7642 : break;
7643 6055685 : default:;
7644 : }
7645 6055685 : switch (TREE_CODE (_p1))
7646 : {
7647 809423 : case CALL_EXPR:
7648 809423 : switch (get_call_combined_fn (_p1))
7649 : {
7650 22 : case CFN_BUILT_IN_POW:
7651 22 : if (call_expr_nargs (_p1) == 2)
7652 : {
7653 22 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7654 22 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7655 22 : {
7656 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7657 22 : tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
7658 22 : if (res) return res;
7659 : }
7660 : }
7661 : break;
7662 2 : case CFN_BUILT_IN_POWF:
7663 2 : if (call_expr_nargs (_p1) == 2)
7664 : {
7665 2 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7666 2 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7667 2 : {
7668 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7669 2 : tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
7670 2 : if (res) return res;
7671 : }
7672 : }
7673 : break;
7674 0 : case CFN_BUILT_IN_POWL:
7675 0 : if (call_expr_nargs (_p1) == 2)
7676 : {
7677 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7678 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7679 0 : {
7680 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7681 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
7682 0 : if (res) return res;
7683 : }
7684 : }
7685 : break;
7686 0 : case CFN_POW:
7687 0 : if (call_expr_nargs (_p1) == 2)
7688 : {
7689 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
7690 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
7691 0 : {
7692 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
7693 0 : tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, CFN_POW);
7694 0 : if (res) return res;
7695 : }
7696 : }
7697 : break;
7698 : default:;
7699 : }
7700 : break;
7701 : default:;
7702 : }
7703 : return NULL_TREE;
7704 : }
7705 :
7706 : tree
7707 6785850 : generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7708 : {
7709 6785850 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7710 6785850 : switch (TREE_CODE (_p0))
7711 : {
7712 2001 : case RDIV_EXPR:
7713 2001 : {
7714 2001 : tree _q20 = TREE_OPERAND (_p0, 0);
7715 2001 : tree _q21 = TREE_OPERAND (_p0, 1);
7716 2001 : switch (TREE_CODE (_q20))
7717 : {
7718 46 : case REAL_CST:
7719 46 : {
7720 46 : if (real_zerop (_p1))
7721 : {
7722 2 : {
7723 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7724 2 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
7725 2 : if (res) return res;
7726 : }
7727 : }
7728 : break;
7729 : }
7730 : default:;
7731 : }
7732 : break;
7733 : }
7734 1167 : case TRUNC_MOD_EXPR:
7735 1167 : {
7736 1167 : tree _q20 = TREE_OPERAND (_p0, 0);
7737 1167 : tree _q21 = TREE_OPERAND (_p0, 1);
7738 1167 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7739 : {
7740 16 : {
7741 16 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7742 16 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
7743 16 : if (res) return res;
7744 : }
7745 : }
7746 : break;
7747 : }
7748 31294 : case MULT_EXPR:
7749 31294 : {
7750 31294 : tree _q20 = TREE_OPERAND (_p0, 0);
7751 31294 : tree _q21 = TREE_OPERAND (_p0, 1);
7752 31294 : switch (TREE_CODE (_p1))
7753 : {
7754 6884 : case MULT_EXPR:
7755 6884 : {
7756 6884 : tree _q50 = TREE_OPERAND (_p1, 0);
7757 6884 : tree _q51 = TREE_OPERAND (_p1, 1);
7758 6884 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7759 : {
7760 4833 : {
7761 4833 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7762 4833 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
7763 4833 : if (res) return res;
7764 : }
7765 : }
7766 2599 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7767 : {
7768 0 : {
7769 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7770 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
7771 0 : if (res) return res;
7772 : }
7773 : }
7774 2599 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7775 : {
7776 0 : {
7777 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7778 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
7779 0 : if (res) return res;
7780 : }
7781 : }
7782 2599 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7783 : {
7784 1 : {
7785 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7786 1 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
7787 1 : if (res) return res;
7788 : }
7789 : }
7790 : break;
7791 : }
7792 : default:;
7793 : }
7794 : break;
7795 : }
7796 1038437 : CASE_CONVERT:
7797 1038437 : {
7798 1038437 : tree _q20 = TREE_OPERAND (_p0, 0);
7799 1038437 : switch (TREE_CODE (_q20))
7800 : {
7801 157 : case EXACT_DIV_EXPR:
7802 157 : {
7803 157 : tree _q30 = TREE_OPERAND (_q20, 0);
7804 157 : tree _q31 = TREE_OPERAND (_q20, 1);
7805 157 : switch (TREE_CODE (_q31))
7806 : {
7807 157 : case INTEGER_CST:
7808 157 : {
7809 157 : switch (TREE_CODE (_p1))
7810 : {
7811 43 : CASE_CONVERT:
7812 43 : {
7813 43 : tree _q60 = TREE_OPERAND (_p1, 0);
7814 43 : switch (TREE_CODE (_q60))
7815 : {
7816 0 : case EXACT_DIV_EXPR:
7817 0 : {
7818 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7819 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7820 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7821 : {
7822 0 : {
7823 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7824 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, GE_EXPR);
7825 0 : if (res) return res;
7826 : }
7827 : }
7828 : break;
7829 : }
7830 : default:;
7831 : }
7832 : break;
7833 : }
7834 : default:;
7835 : }
7836 : break;
7837 : }
7838 : default:;
7839 : }
7840 : break;
7841 : }
7842 : default:;
7843 : }
7844 : break;
7845 : }
7846 8418 : case EXACT_DIV_EXPR:
7847 8418 : {
7848 8418 : tree _q20 = TREE_OPERAND (_p0, 0);
7849 8418 : tree _q21 = TREE_OPERAND (_p0, 1);
7850 8418 : switch (TREE_CODE (_q21))
7851 : {
7852 8418 : case INTEGER_CST:
7853 8418 : {
7854 8418 : switch (TREE_CODE (_p1))
7855 : {
7856 0 : case EXACT_DIV_EXPR:
7857 0 : {
7858 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7859 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7860 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7861 : {
7862 0 : {
7863 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7864 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, GE_EXPR);
7865 0 : if (res) return res;
7866 : }
7867 : }
7868 : break;
7869 : }
7870 : default:;
7871 : }
7872 : break;
7873 : }
7874 : default:;
7875 : }
7876 : break;
7877 : }
7878 40776 : case TRUNC_DIV_EXPR:
7879 40776 : {
7880 40776 : tree _q20 = TREE_OPERAND (_p0, 0);
7881 40776 : tree _q21 = TREE_OPERAND (_p0, 1);
7882 40776 : switch (TREE_CODE (_q21))
7883 : {
7884 40240 : case INTEGER_CST:
7885 40240 : {
7886 40240 : switch (TREE_CODE (_p1))
7887 : {
7888 39321 : case INTEGER_CST:
7889 39321 : {
7890 39321 : {
7891 39321 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7892 39321 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, GE_EXPR);
7893 39321 : if (res) return res;
7894 : }
7895 0 : break;
7896 : }
7897 : default:;
7898 : }
7899 : break;
7900 : }
7901 : default:;
7902 : }
7903 : break;
7904 : }
7905 796180 : case PLUS_EXPR:
7906 796180 : {
7907 796180 : tree _q20 = TREE_OPERAND (_p0, 0);
7908 796180 : tree _q21 = TREE_OPERAND (_p0, 1);
7909 796180 : switch (TREE_CODE (_p1))
7910 : {
7911 52355 : case PLUS_EXPR:
7912 52355 : {
7913 52355 : tree _q50 = TREE_OPERAND (_p1, 0);
7914 52355 : tree _q51 = TREE_OPERAND (_p1, 1);
7915 52355 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7916 : {
7917 1461 : {
7918 1461 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7919 1461 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
7920 1461 : if (res) return res;
7921 : }
7922 : }
7923 52355 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7924 : {
7925 21 : {
7926 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7927 21 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
7928 21 : if (res) return res;
7929 : }
7930 : }
7931 52355 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7932 : {
7933 16 : {
7934 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7935 16 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
7936 16 : if (res) return res;
7937 : }
7938 : }
7939 52355 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7940 : {
7941 1002 : {
7942 1002 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7943 1002 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
7944 1002 : if (res) return res;
7945 : }
7946 : }
7947 : break;
7948 : }
7949 796127 : default:;
7950 : }
7951 796127 : switch (TREE_CODE (_q21))
7952 : {
7953 683151 : case INTEGER_CST:
7954 683151 : {
7955 683151 : switch (TREE_CODE (_p1))
7956 : {
7957 15156 : case PLUS_EXPR:
7958 15156 : {
7959 15156 : tree _q50 = TREE_OPERAND (_p1, 0);
7960 15156 : tree _q51 = TREE_OPERAND (_p1, 1);
7961 15156 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7962 : {
7963 1457 : {
7964 1457 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7965 1457 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GE_EXPR);
7966 1457 : if (res) return res;
7967 : }
7968 : }
7969 : break;
7970 : }
7971 : default:;
7972 : }
7973 : break;
7974 : }
7975 796127 : default:;
7976 : }
7977 796127 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7978 : {
7979 55126 : {
7980 55126 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7981 55126 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR);
7982 55126 : if (res) return res;
7983 : }
7984 : }
7985 761200 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7986 : {
7987 24577 : {
7988 24577 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7989 24577 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR);
7990 24577 : if (res) return res;
7991 : }
7992 : }
7993 : break;
7994 : }
7995 121642 : case MINUS_EXPR:
7996 121642 : {
7997 121642 : tree _q20 = TREE_OPERAND (_p0, 0);
7998 121642 : tree _q21 = TREE_OPERAND (_p0, 1);
7999 121642 : switch (TREE_CODE (_p1))
8000 : {
8001 1567 : case MINUS_EXPR:
8002 1567 : {
8003 1567 : tree _q50 = TREE_OPERAND (_p1, 0);
8004 1567 : tree _q51 = TREE_OPERAND (_p1, 1);
8005 1567 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8006 : {
8007 14 : {
8008 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
8009 14 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GE_EXPR);
8010 14 : if (res) return res;
8011 : }
8012 : }
8013 1567 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8014 : {
8015 22 : {
8016 22 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
8017 22 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GE_EXPR);
8018 22 : if (res) return res;
8019 : }
8020 : }
8021 : break;
8022 : }
8023 : default:;
8024 : }
8025 : break;
8026 : }
8027 2515 : case POINTER_DIFF_EXPR:
8028 2515 : {
8029 2515 : tree _q20 = TREE_OPERAND (_p0, 0);
8030 2515 : tree _q21 = TREE_OPERAND (_p0, 1);
8031 2515 : switch (TREE_CODE (_p1))
8032 : {
8033 32 : case POINTER_DIFF_EXPR:
8034 32 : {
8035 32 : tree _q50 = TREE_OPERAND (_p1, 0);
8036 32 : tree _q51 = TREE_OPERAND (_p1, 1);
8037 32 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8038 : {
8039 0 : {
8040 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
8041 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR);
8042 0 : if (res) return res;
8043 : }
8044 : }
8045 32 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8046 : {
8047 0 : {
8048 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
8049 0 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, GE_EXPR);
8050 0 : if (res) return res;
8051 : }
8052 : }
8053 : break;
8054 : }
8055 : default:;
8056 : }
8057 : break;
8058 : }
8059 6703669 : default:;
8060 : }
8061 6703669 : switch (TREE_CODE (_p1))
8062 : {
8063 59149 : case PLUS_EXPR:
8064 59149 : {
8065 59149 : tree _q30 = TREE_OPERAND (_p1, 0);
8066 59149 : tree _q31 = TREE_OPERAND (_p1, 1);
8067 59149 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8068 : {
8069 0 : {
8070 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
8071 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LE_EXPR);
8072 0 : if (res) return res;
8073 : }
8074 : }
8075 59149 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8076 : {
8077 0 : {
8078 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
8079 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LE_EXPR);
8080 0 : if (res) return res;
8081 : }
8082 : }
8083 : break;
8084 : }
8085 2619 : case MINUS_EXPR:
8086 2619 : {
8087 2619 : tree _q30 = TREE_OPERAND (_p1, 0);
8088 2619 : tree _q31 = TREE_OPERAND (_p1, 1);
8089 2619 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8090 : {
8091 0 : {
8092 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
8093 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, GE_EXPR);
8094 0 : if (res) return res;
8095 : }
8096 : }
8097 : break;
8098 : }
8099 6703669 : default:;
8100 : }
8101 6703669 : switch (TREE_CODE (_p0))
8102 : {
8103 121642 : case MINUS_EXPR:
8104 121642 : {
8105 121642 : tree _q20 = TREE_OPERAND (_p0, 0);
8106 121642 : tree _q21 = TREE_OPERAND (_p0, 1);
8107 121642 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8108 : {
8109 2379 : {
8110 2379 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
8111 2379 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, LE_EXPR);
8112 2379 : if (res) return res;
8113 : }
8114 : }
8115 : break;
8116 : }
8117 838 : case BIT_IOR_EXPR:
8118 838 : {
8119 838 : tree _q20 = TREE_OPERAND (_p0, 0);
8120 838 : tree _q21 = TREE_OPERAND (_p0, 1);
8121 838 : if (tree_expr_nonnegative_p (_q20))
8122 : {
8123 62 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8124 : {
8125 0 : {
8126 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8127 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8128 0 : if (res) return res;
8129 : }
8130 : }
8131 : }
8132 838 : if (tree_expr_nonnegative_p (_q21))
8133 : {
8134 217 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8135 : {
8136 0 : {
8137 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8138 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8139 0 : if (res) return res;
8140 : }
8141 : }
8142 : }
8143 : break;
8144 : }
8145 6703668 : default:;
8146 : }
8147 6703668 : switch (TREE_CODE (_p1))
8148 : {
8149 200 : case BIT_AND_EXPR:
8150 200 : {
8151 200 : tree _q30 = TREE_OPERAND (_p1, 0);
8152 200 : tree _q31 = TREE_OPERAND (_p1, 1);
8153 200 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8154 : {
8155 0 : if (tree_expr_nonnegative_p (_q30))
8156 : {
8157 0 : {
8158 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8159 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8160 0 : if (res) return res;
8161 : }
8162 : }
8163 : }
8164 200 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8165 : {
8166 0 : if (tree_expr_nonnegative_p (_q31))
8167 : {
8168 0 : {
8169 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8170 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
8171 0 : if (res) return res;
8172 : }
8173 : }
8174 : }
8175 : break;
8176 : }
8177 6703668 : default:;
8178 : }
8179 6703668 : switch (TREE_CODE (_p0))
8180 : {
8181 988 : case MAX_EXPR:
8182 988 : {
8183 988 : tree _q20 = TREE_OPERAND (_p0, 0);
8184 988 : tree _q21 = TREE_OPERAND (_p0, 1);
8185 988 : switch (TREE_CODE (_p1))
8186 : {
8187 0 : case MIN_EXPR:
8188 0 : {
8189 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8190 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8191 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8192 : {
8193 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8194 : {
8195 0 : {
8196 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8197 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LE_EXPR);
8198 0 : if (res) return res;
8199 : }
8200 : }
8201 : }
8202 : break;
8203 : }
8204 : default:;
8205 : }
8206 : break;
8207 : }
8208 2983 : case MIN_EXPR:
8209 2983 : {
8210 2983 : tree _q20 = TREE_OPERAND (_p0, 0);
8211 2983 : tree _q21 = TREE_OPERAND (_p0, 1);
8212 2983 : switch (TREE_CODE (_p1))
8213 : {
8214 27 : case MAX_EXPR:
8215 27 : {
8216 27 : tree _q50 = TREE_OPERAND (_p1, 0);
8217 27 : tree _q51 = TREE_OPERAND (_p1, 1);
8218 27 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8219 : {
8220 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8221 : {
8222 0 : {
8223 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8224 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
8225 0 : if (res) return res;
8226 : }
8227 : }
8228 : }
8229 : break;
8230 : }
8231 2983 : default:;
8232 : }
8233 2983 : 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_235 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8238 0 : if (res) return res;
8239 : }
8240 : }
8241 2983 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8242 : {
8243 1 : {
8244 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8245 1 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
8246 1 : if (res) return res;
8247 : }
8248 : }
8249 : break;
8250 : }
8251 6703667 : default:;
8252 : }
8253 6703667 : switch (TREE_CODE (_p1))
8254 : {
8255 202 : case MAX_EXPR:
8256 202 : {
8257 202 : tree _q30 = TREE_OPERAND (_p1, 0);
8258 202 : tree _q31 = TREE_OPERAND (_p1, 1);
8259 202 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8260 : {
8261 0 : {
8262 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8263 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8264 0 : if (res) return res;
8265 : }
8266 : }
8267 202 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8268 : {
8269 0 : {
8270 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8271 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
8272 0 : if (res) return res;
8273 : }
8274 : }
8275 : break;
8276 : }
8277 1748 : case MIN_EXPR:
8278 1748 : {
8279 1748 : tree _q30 = TREE_OPERAND (_p1, 0);
8280 1748 : tree _q31 = TREE_OPERAND (_p1, 1);
8281 1748 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8282 : {
8283 0 : {
8284 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8285 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8286 0 : if (res) return res;
8287 : }
8288 : }
8289 1748 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8290 : {
8291 0 : {
8292 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8293 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
8294 0 : if (res) return res;
8295 : }
8296 : }
8297 : break;
8298 : }
8299 6703667 : default:;
8300 : }
8301 6703667 : switch (TREE_CODE (_p0))
8302 : {
8303 988 : case MAX_EXPR:
8304 988 : {
8305 988 : tree _q20 = TREE_OPERAND (_p0, 0);
8306 988 : tree _q21 = TREE_OPERAND (_p0, 1);
8307 988 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8308 : {
8309 0 : {
8310 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8311 0 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8312 0 : if (res) return res;
8313 : }
8314 : }
8315 988 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8316 : {
8317 2 : {
8318 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8319 2 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
8320 2 : if (res) return res;
8321 : }
8322 : }
8323 986 : switch (TREE_CODE (_q21))
8324 : {
8325 802 : case INTEGER_CST:
8326 802 : {
8327 802 : switch (TREE_CODE (_p1))
8328 : {
8329 0 : case INTEGER_CST:
8330 0 : {
8331 0 : {
8332 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8333 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
8334 0 : if (res) return res;
8335 : }
8336 0 : break;
8337 : }
8338 : default:;
8339 : }
8340 : break;
8341 : }
8342 : default:;
8343 : }
8344 : break;
8345 : }
8346 2982 : case MIN_EXPR:
8347 2982 : {
8348 2982 : tree _q20 = TREE_OPERAND (_p0, 0);
8349 2982 : tree _q21 = TREE_OPERAND (_p0, 1);
8350 2982 : switch (TREE_CODE (_q21))
8351 : {
8352 1004 : case INTEGER_CST:
8353 1004 : {
8354 1004 : switch (TREE_CODE (_p1))
8355 : {
8356 0 : case INTEGER_CST:
8357 0 : {
8358 0 : {
8359 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8360 0 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
8361 0 : if (res) return res;
8362 : }
8363 0 : break;
8364 : }
8365 : default:;
8366 : }
8367 : break;
8368 : }
8369 2982 : default:;
8370 : }
8371 2982 : if (tree_expr_nonnegative_p (_q21))
8372 : {
8373 1034 : if (integer_zerop (_p1))
8374 : {
8375 0 : {
8376 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8377 0 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR, MIN_EXPR);
8378 0 : if (res) return res;
8379 : }
8380 : }
8381 : }
8382 2982 : if (tree_expr_nonnegative_p (_q20))
8383 : {
8384 218 : if (integer_zerop (_p1))
8385 : {
8386 2 : {
8387 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
8388 2 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR, MIN_EXPR);
8389 2 : if (res) return res;
8390 : }
8391 : }
8392 : }
8393 : break;
8394 : }
8395 838 : case BIT_IOR_EXPR:
8396 838 : {
8397 838 : tree _q20 = TREE_OPERAND (_p0, 0);
8398 838 : tree _q21 = TREE_OPERAND (_p0, 1);
8399 838 : if (tree_expr_nonnegative_p (_q21))
8400 : {
8401 217 : if (integer_zerop (_p1))
8402 : {
8403 0 : {
8404 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8405 0 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8406 0 : if (res) return res;
8407 : }
8408 : }
8409 : }
8410 838 : if (tree_expr_nonnegative_p (_q20))
8411 : {
8412 62 : if (integer_zerop (_p1))
8413 : {
8414 0 : {
8415 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
8416 0 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
8417 0 : if (res) return res;
8418 : }
8419 : }
8420 : }
8421 : break;
8422 : }
8423 1038437 : CASE_CONVERT:
8424 1038437 : {
8425 1038437 : tree _q20 = TREE_OPERAND (_p0, 0);
8426 1038437 : switch (TREE_CODE (_q20))
8427 : {
8428 0 : case GE_EXPR:
8429 0 : {
8430 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8431 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8432 0 : if (tree_zero_one_valued_p (_q30))
8433 : {
8434 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
8435 : {
8436 0 : {
8437 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
8438 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GE_EXPR);
8439 0 : if (res) return res;
8440 : }
8441 : }
8442 : }
8443 : break;
8444 : }
8445 : default:;
8446 : }
8447 : break;
8448 : }
8449 41 : case GE_EXPR:
8450 41 : {
8451 41 : tree _q20 = TREE_OPERAND (_p0, 0);
8452 41 : tree _q21 = TREE_OPERAND (_p0, 1);
8453 41 : if (tree_zero_one_valued_p (_q20))
8454 : {
8455 15 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8456 : {
8457 3 : {
8458 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8459 3 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GE_EXPR);
8460 3 : if (res) return res;
8461 : }
8462 : }
8463 : }
8464 : break;
8465 : }
8466 6 : case VEC_COND_EXPR:
8467 6 : {
8468 6 : tree _q20 = TREE_OPERAND (_p0, 0);
8469 6 : tree _q21 = TREE_OPERAND (_p0, 1);
8470 6 : tree _q22 = TREE_OPERAND (_p0, 2);
8471 6 : switch (TREE_CODE (_p1))
8472 : {
8473 0 : case VEC_COND_EXPR:
8474 0 : {
8475 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8476 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8477 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8478 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8479 : {
8480 0 : {
8481 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8482 0 : if (VECTOR_TYPE_P (type)
8483 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8484 0 : || types_match (type, TREE_TYPE (captures[2]))
8485 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8486 : || (optimize_vectors_before_lowering_p ()
8487 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8488 : )
8489 : {
8490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1672;
8491 0 : {
8492 0 : tree res_op0;
8493 0 : res_op0 = captures[1];
8494 0 : tree res_op1;
8495 0 : {
8496 0 : tree _o1[2], _r1;
8497 0 : _o1[0] = captures[2];
8498 0 : _o1[1] = captures[5];
8499 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8500 0 : if (EXPR_P (_r1))
8501 0 : goto next_after_fail1672;
8502 0 : res_op1 = _r1;
8503 : }
8504 0 : tree res_op2;
8505 0 : {
8506 0 : tree _o1[2], _r1;
8507 0 : _o1[0] = captures[3];
8508 0 : _o1[1] = captures[6];
8509 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8510 0 : if (EXPR_P (_r1))
8511 0 : goto next_after_fail1672;
8512 0 : res_op2 = _r1;
8513 : }
8514 0 : tree _r;
8515 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8516 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
8517 0 : return _r;
8518 : }
8519 0 : next_after_fail1672:;
8520 : }
8521 : }
8522 : }
8523 : break;
8524 : }
8525 6 : default:;
8526 : }
8527 6 : {
8528 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8529 6 : if (VECTOR_TYPE_P (type)
8530 6 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8531 6 : || types_match (type, TREE_TYPE (captures[2]))
8532 6 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8533 : || (optimize_vectors_before_lowering_p ()
8534 2 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8535 : )
8536 : {
8537 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1673;
8538 6 : {
8539 6 : if (! tree_invariant_p (captures[4])) goto next_after_fail1673;
8540 5 : tree res_op0;
8541 5 : res_op0 = captures[1];
8542 5 : tree res_op1;
8543 5 : {
8544 5 : tree _o1[2], _r1;
8545 5 : _o1[0] = captures[2];
8546 5 : _o1[1] = unshare_expr (captures[4]);
8547 5 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8548 5 : if (EXPR_P (_r1))
8549 1 : goto next_after_fail1673;
8550 4 : res_op1 = _r1;
8551 : }
8552 4 : tree res_op2;
8553 4 : {
8554 4 : tree _o1[2], _r1;
8555 4 : _o1[0] = captures[3];
8556 4 : _o1[1] = captures[4];
8557 4 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8558 4 : if (EXPR_P (_r1))
8559 0 : goto next_after_fail1673;
8560 4 : res_op2 = _r1;
8561 : }
8562 4 : tree _r;
8563 4 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8564 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
8565 4 : return _r;
8566 : }
8567 2 : next_after_fail1673:;
8568 : }
8569 : }
8570 2 : break;
8571 : }
8572 6703656 : default:;
8573 : }
8574 6703656 : switch (TREE_CODE (_p1))
8575 : {
8576 0 : case VEC_COND_EXPR:
8577 0 : {
8578 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8579 0 : tree _q31 = TREE_OPERAND (_p1, 1);
8580 0 : tree _q32 = TREE_OPERAND (_p1, 2);
8581 0 : {
8582 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8583 0 : if (VECTOR_TYPE_P (type)
8584 0 : && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
8585 0 : || types_match (type, TREE_TYPE (captures[3]))
8586 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8587 : || (optimize_vectors_before_lowering_p ()
8588 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8589 : )
8590 : {
8591 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1674;
8592 0 : {
8593 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1674;
8594 0 : tree res_op0;
8595 0 : res_op0 = captures[2];
8596 0 : tree res_op1;
8597 0 : {
8598 0 : tree _o1[2], _r1;
8599 0 : _o1[0] = unshare_expr (captures[0]);
8600 0 : _o1[1] = captures[3];
8601 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8602 0 : if (EXPR_P (_r1))
8603 0 : goto next_after_fail1674;
8604 0 : res_op1 = _r1;
8605 : }
8606 0 : tree res_op2;
8607 0 : {
8608 0 : tree _o1[2], _r1;
8609 0 : _o1[0] = captures[0];
8610 0 : _o1[1] = captures[4];
8611 0 : _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
8612 0 : if (EXPR_P (_r1))
8613 0 : goto next_after_fail1674;
8614 0 : res_op2 = _r1;
8615 : }
8616 0 : tree _r;
8617 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8618 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
8619 0 : return _r;
8620 : }
8621 0 : next_after_fail1674:;
8622 : }
8623 : }
8624 0 : break;
8625 : }
8626 6703656 : default:;
8627 : }
8628 6703656 : if (uniform_integer_cst_p (_p1))
8629 : {
8630 3394583 : {
8631 3394583 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8632 3394583 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
8633 3394583 : if (res) return res;
8634 : }
8635 : }
8636 5177204 : switch (TREE_CODE (_p0))
8637 : {
8638 23378 : case MULT_EXPR:
8639 23378 : {
8640 23378 : tree _q20 = TREE_OPERAND (_p0, 0);
8641 23378 : tree _q21 = TREE_OPERAND (_p0, 1);
8642 23378 : switch (TREE_CODE (_q21))
8643 : {
8644 19457 : case INTEGER_CST:
8645 19457 : {
8646 19457 : if (integer_zerop (_p1))
8647 : {
8648 2754 : {
8649 2754 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8650 2754 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8651 2754 : if (res) return res;
8652 : }
8653 : }
8654 : break;
8655 : }
8656 : default:;
8657 : }
8658 : break;
8659 : }
8660 5176908 : default:;
8661 : }
8662 5176908 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8663 : {
8664 39881 : {
8665 39881 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8666 39881 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, GE_EXPR);
8667 39881 : if (res) return res;
8668 : }
8669 : }
8670 5137069 : switch (TREE_CODE (_p0))
8671 : {
8672 423 : case BIT_NOT_EXPR:
8673 423 : {
8674 423 : tree _q20 = TREE_OPERAND (_p0, 0);
8675 423 : switch (TREE_CODE (_p1))
8676 : {
8677 1 : case BIT_NOT_EXPR:
8678 1 : {
8679 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8680 1 : {
8681 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8682 1 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GE_EXPR);
8683 1 : if (res) return res;
8684 : }
8685 0 : break;
8686 : }
8687 422 : default:;
8688 : }
8689 422 : {
8690 422 : tree _p1_pops[1];
8691 422 : if (tree_nop_convert (_p1, _p1_pops))
8692 : {
8693 50 : tree _q40 = _p1_pops[0];
8694 50 : switch (TREE_CODE (_q40))
8695 : {
8696 0 : case BIT_NOT_EXPR:
8697 0 : {
8698 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8699 0 : {
8700 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8701 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GE_EXPR);
8702 0 : if (res) return res;
8703 : }
8704 0 : break;
8705 : }
8706 : default:;
8707 : }
8708 : }
8709 : }
8710 422 : if (CONSTANT_CLASS_P (_p1))
8711 : {
8712 98 : {
8713 98 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8714 98 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8715 98 : if (res) return res;
8716 : }
8717 : }
8718 : break;
8719 : }
8720 5136970 : default:;
8721 : }
8722 5136970 : {
8723 5136970 : tree _p0_pops[1];
8724 5136970 : if (tree_nop_convert (_p0, _p0_pops))
8725 : {
8726 239457 : tree _q20 = _p0_pops[0];
8727 239457 : switch (TREE_CODE (_q20))
8728 : {
8729 4 : case BIT_NOT_EXPR:
8730 4 : {
8731 4 : tree _q30 = TREE_OPERAND (_q20, 0);
8732 4 : switch (TREE_CODE (_p1))
8733 : {
8734 0 : case BIT_NOT_EXPR:
8735 0 : {
8736 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8737 0 : {
8738 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8739 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GE_EXPR);
8740 0 : if (res) return res;
8741 : }
8742 0 : break;
8743 : }
8744 4 : default:;
8745 : }
8746 4 : {
8747 4 : tree _p1_pops[1];
8748 4 : if (tree_nop_convert (_p1, _p1_pops))
8749 : {
8750 0 : tree _q50 = _p1_pops[0];
8751 0 : switch (TREE_CODE (_q50))
8752 : {
8753 0 : case BIT_NOT_EXPR:
8754 0 : {
8755 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8756 0 : {
8757 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8758 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GE_EXPR);
8759 0 : if (res) return res;
8760 : }
8761 0 : break;
8762 : }
8763 : default:;
8764 : }
8765 : }
8766 : }
8767 4 : if (CONSTANT_CLASS_P (_p1))
8768 : {
8769 0 : {
8770 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8771 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8772 0 : if (res) return res;
8773 : }
8774 : }
8775 : break;
8776 : }
8777 : default:;
8778 : }
8779 : }
8780 : }
8781 5136970 : switch (TREE_CODE (_p1))
8782 : {
8783 653670 : case REAL_CST:
8784 653670 : {
8785 653670 : {
8786 653670 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8787 653670 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, GE_EXPR);
8788 653670 : if (res) return res;
8789 : }
8790 653587 : break;
8791 : }
8792 5136887 : default:;
8793 : }
8794 5136887 : switch (TREE_CODE (_p0))
8795 : {
8796 678264 : case PLUS_EXPR:
8797 678264 : {
8798 678264 : tree _q20 = TREE_OPERAND (_p0, 0);
8799 678264 : tree _q21 = TREE_OPERAND (_p0, 1);
8800 678264 : switch (TREE_CODE (_q21))
8801 : {
8802 168 : case REAL_CST:
8803 168 : {
8804 168 : switch (TREE_CODE (_p1))
8805 : {
8806 20 : case REAL_CST:
8807 20 : {
8808 20 : {
8809 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8810 20 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR);
8811 20 : if (res) return res;
8812 : }
8813 20 : break;
8814 : }
8815 : default:;
8816 : }
8817 : break;
8818 : }
8819 565393 : case INTEGER_CST:
8820 565393 : {
8821 565393 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8822 : {
8823 16008 : {
8824 16008 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8825 16008 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
8826 16008 : if (res) return res;
8827 : }
8828 : }
8829 : break;
8830 : }
8831 : default:;
8832 : }
8833 : break;
8834 : }
8835 58689 : case MINUS_EXPR:
8836 58689 : {
8837 58689 : tree _q20 = TREE_OPERAND (_p0, 0);
8838 58689 : tree _q21 = TREE_OPERAND (_p0, 1);
8839 58689 : switch (TREE_CODE (_q21))
8840 : {
8841 31 : case REAL_CST:
8842 31 : {
8843 31 : switch (TREE_CODE (_p1))
8844 : {
8845 31 : case REAL_CST:
8846 31 : {
8847 31 : {
8848 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8849 31 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, MINUS_EXPR, GE_EXPR);
8850 31 : if (res) return res;
8851 : }
8852 31 : break;
8853 : }
8854 : default:;
8855 : }
8856 : break;
8857 : }
8858 58689 : default:;
8859 : }
8860 58689 : switch (TREE_CODE (_q20))
8861 : {
8862 24 : case REAL_CST:
8863 24 : {
8864 24 : switch (TREE_CODE (_p1))
8865 : {
8866 0 : case REAL_CST:
8867 0 : {
8868 0 : {
8869 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8870 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR);
8871 0 : if (res) return res;
8872 : }
8873 0 : break;
8874 : }
8875 : default:;
8876 : }
8877 : break;
8878 : }
8879 : default:;
8880 : }
8881 : break;
8882 : }
8883 40349 : case FLOAT_EXPR:
8884 40349 : {
8885 40349 : tree _q20 = TREE_OPERAND (_p0, 0);
8886 40349 : switch (TREE_CODE (_p1))
8887 : {
8888 8 : case FLOAT_EXPR:
8889 8 : {
8890 8 : tree _q40 = TREE_OPERAND (_p1, 0);
8891 8 : {
8892 8 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8893 8 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8894 8 : if (res) return res;
8895 : }
8896 1 : break;
8897 : }
8898 38869 : case REAL_CST:
8899 38869 : {
8900 38869 : {
8901 38869 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8902 38869 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
8903 38869 : if (res) return res;
8904 : }
8905 19459 : break;
8906 : }
8907 : default:;
8908 : }
8909 : break;
8910 : }
8911 8379 : case EXACT_DIV_EXPR:
8912 8379 : {
8913 8379 : tree _q20 = TREE_OPERAND (_p0, 0);
8914 8379 : tree _q21 = TREE_OPERAND (_p0, 1);
8915 8379 : switch (TREE_CODE (_q21))
8916 : {
8917 8379 : case INTEGER_CST:
8918 8379 : {
8919 8379 : switch (TREE_CODE (_p1))
8920 : {
8921 0 : case INTEGER_CST:
8922 0 : {
8923 0 : {
8924 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8925 0 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GE_EXPR);
8926 0 : if (res) return res;
8927 : }
8928 0 : break;
8929 : }
8930 : default:;
8931 : }
8932 : break;
8933 : }
8934 : default:;
8935 : }
8936 : break;
8937 : }
8938 627217 : CASE_CONVERT:
8939 627217 : {
8940 627217 : tree _q20 = TREE_OPERAND (_p0, 0);
8941 627217 : switch (TREE_CODE (_q20))
8942 : {
8943 157 : case EXACT_DIV_EXPR:
8944 157 : {
8945 157 : tree _q30 = TREE_OPERAND (_q20, 0);
8946 157 : tree _q31 = TREE_OPERAND (_q20, 1);
8947 157 : switch (TREE_CODE (_q31))
8948 : {
8949 157 : case INTEGER_CST:
8950 157 : {
8951 157 : switch (TREE_CODE (_p1))
8952 : {
8953 0 : case INTEGER_CST:
8954 0 : {
8955 0 : {
8956 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8957 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
8958 0 : if (res) return res;
8959 : }
8960 0 : break;
8961 : }
8962 : default:;
8963 : }
8964 : break;
8965 : }
8966 : default:;
8967 : }
8968 : break;
8969 : }
8970 627217 : default:;
8971 : }
8972 627217 : switch (TREE_CODE (_p1))
8973 : {
8974 100436 : CASE_CONVERT:
8975 100436 : {
8976 100436 : tree _q40 = TREE_OPERAND (_p1, 0);
8977 100436 : {
8978 100436 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8979 100436 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, GE_EXPR);
8980 100436 : if (res) return res;
8981 : }
8982 61810 : break;
8983 : }
8984 588591 : default:;
8985 : }
8986 588591 : {
8987 588591 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8988 588591 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, GE_EXPR);
8989 588591 : if (res) return res;
8990 : }
8991 322186 : switch (TREE_CODE (_q20))
8992 : {
8993 3740 : case ADDR_EXPR:
8994 3740 : {
8995 3740 : switch (TREE_CODE (_p1))
8996 : {
8997 3669 : CASE_CONVERT:
8998 3669 : {
8999 3669 : tree _q40 = TREE_OPERAND (_p1, 0);
9000 3669 : switch (TREE_CODE (_q40))
9001 : {
9002 3669 : case ADDR_EXPR:
9003 3669 : {
9004 3669 : {
9005 3669 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
9006 3669 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, GE_EXPR);
9007 3669 : if (res) return res;
9008 : }
9009 257 : break;
9010 : }
9011 : default:;
9012 : }
9013 : break;
9014 : }
9015 7 : case ADDR_EXPR:
9016 7 : {
9017 7 : {
9018 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9019 7 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, GE_EXPR);
9020 7 : if (res) return res;
9021 : }
9022 0 : break;
9023 : }
9024 : default:;
9025 : }
9026 : break;
9027 : }
9028 318767 : default:;
9029 : }
9030 318767 : if (uniform_integer_cst_p (_p1))
9031 : {
9032 101698 : {
9033 101698 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9034 101698 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, GE_EXPR);
9035 101698 : if (res) return res;
9036 : }
9037 : }
9038 : break;
9039 : }
9040 791 : case NEGATE_EXPR:
9041 791 : {
9042 791 : tree _q20 = TREE_OPERAND (_p0, 0);
9043 791 : switch (TREE_CODE (_p1))
9044 : {
9045 0 : case NEGATE_EXPR:
9046 0 : {
9047 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9048 0 : {
9049 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9050 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9051 0 : if (res) return res;
9052 : }
9053 0 : break;
9054 : }
9055 791 : default:;
9056 : }
9057 791 : if (CONSTANT_CLASS_P (_p1))
9058 : {
9059 254 : {
9060 254 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9061 254 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9062 254 : if (res) return res;
9063 : }
9064 : }
9065 : break;
9066 : }
9067 7701 : case ADDR_EXPR:
9068 7701 : {
9069 7701 : switch (TREE_CODE (_p1))
9070 : {
9071 0 : CASE_CONVERT:
9072 0 : {
9073 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9074 0 : switch (TREE_CODE (_q30))
9075 : {
9076 0 : case ADDR_EXPR:
9077 0 : {
9078 0 : {
9079 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
9080 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, GE_EXPR);
9081 0 : if (res) return res;
9082 : }
9083 0 : break;
9084 : }
9085 : default:;
9086 : }
9087 : break;
9088 : }
9089 7303 : case ADDR_EXPR:
9090 7303 : {
9091 7303 : {
9092 7303 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9093 7303 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, GE_EXPR);
9094 7303 : if (res) return res;
9095 : }
9096 116 : break;
9097 : }
9098 : default:;
9099 : }
9100 : break;
9101 : }
9102 237357 : case CALL_EXPR:
9103 237357 : switch (get_call_combined_fn (_p0))
9104 : {
9105 2 : case CFN_BUILT_IN_SQRTF:
9106 2 : if (call_expr_nargs (_p0) == 1)
9107 : {
9108 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9109 2 : switch (TREE_CODE (_p1))
9110 : {
9111 2 : case REAL_CST:
9112 2 : {
9113 2 : {
9114 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9115 2 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
9116 2 : if (res) return res;
9117 : }
9118 0 : break;
9119 : }
9120 0 : case CALL_EXPR:
9121 0 : switch (get_call_combined_fn (_p1))
9122 : {
9123 0 : case CFN_BUILT_IN_SQRTF:
9124 0 : if (call_expr_nargs (_p1) == 1)
9125 : {
9126 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9127 0 : {
9128 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9129 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
9130 0 : if (res) return res;
9131 : }
9132 : }
9133 : break;
9134 : default:;
9135 : }
9136 : break;
9137 : default:;
9138 : }
9139 : }
9140 : break;
9141 0 : case CFN_BUILT_IN_SQRTL:
9142 0 : if (call_expr_nargs (_p0) == 1)
9143 : {
9144 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9145 0 : switch (TREE_CODE (_p1))
9146 : {
9147 0 : case REAL_CST:
9148 0 : {
9149 0 : {
9150 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9151 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
9152 0 : if (res) return res;
9153 : }
9154 0 : break;
9155 : }
9156 0 : case CALL_EXPR:
9157 0 : switch (get_call_combined_fn (_p1))
9158 : {
9159 0 : case CFN_BUILT_IN_SQRTL:
9160 0 : if (call_expr_nargs (_p1) == 1)
9161 : {
9162 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9163 0 : {
9164 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9165 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
9166 0 : if (res) return res;
9167 : }
9168 : }
9169 : break;
9170 : default:;
9171 : }
9172 : break;
9173 : default:;
9174 : }
9175 : }
9176 : break;
9177 1 : case CFN_BUILT_IN_SQRT:
9178 1 : if (call_expr_nargs (_p0) == 1)
9179 : {
9180 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9181 1 : switch (TREE_CODE (_p1))
9182 : {
9183 1 : case REAL_CST:
9184 1 : {
9185 1 : {
9186 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9187 1 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
9188 1 : if (res) return res;
9189 : }
9190 1 : break;
9191 : }
9192 0 : case CALL_EXPR:
9193 0 : switch (get_call_combined_fn (_p1))
9194 : {
9195 0 : case CFN_BUILT_IN_SQRT:
9196 0 : if (call_expr_nargs (_p1) == 1)
9197 : {
9198 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9199 0 : {
9200 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9201 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
9202 0 : if (res) return res;
9203 : }
9204 : }
9205 : break;
9206 : default:;
9207 : }
9208 : break;
9209 : default:;
9210 : }
9211 : }
9212 : break;
9213 0 : case CFN_SQRT:
9214 0 : if (call_expr_nargs (_p0) == 1)
9215 : {
9216 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9217 0 : switch (TREE_CODE (_p1))
9218 : {
9219 0 : case REAL_CST:
9220 0 : {
9221 0 : {
9222 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9223 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9224 0 : if (res) return res;
9225 : }
9226 0 : break;
9227 : }
9228 0 : case CALL_EXPR:
9229 0 : switch (get_call_combined_fn (_p1))
9230 : {
9231 0 : case CFN_SQRT:
9232 0 : if (call_expr_nargs (_p1) == 1)
9233 : {
9234 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9235 0 : {
9236 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9237 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
9238 0 : if (res) return res;
9239 : }
9240 : }
9241 : break;
9242 : default:;
9243 : }
9244 : break;
9245 : default:;
9246 : }
9247 : }
9248 : break;
9249 : default:;
9250 : }
9251 : break;
9252 4775333 : default:;
9253 : }
9254 4775333 : if (uniform_integer_cst_p (_p1))
9255 : {
9256 1591040 : {
9257 1591040 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9258 1591040 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, GE_EXPR);
9259 1591040 : if (res) return res;
9260 : }
9261 : }
9262 4472076 : switch (TREE_CODE (_p0))
9263 : {
9264 307614 : CASE_CONVERT:
9265 307614 : {
9266 307614 : tree _q20 = TREE_OPERAND (_p0, 0);
9267 307614 : switch (TREE_CODE (_q20))
9268 : {
9269 30002 : case PLUS_EXPR:
9270 30002 : {
9271 30002 : tree _q30 = TREE_OPERAND (_q20, 0);
9272 30002 : tree _q31 = TREE_OPERAND (_q20, 1);
9273 30002 : switch (TREE_CODE (_q30))
9274 : {
9275 21479 : CASE_CONVERT:
9276 21479 : {
9277 21479 : tree _q40 = TREE_OPERAND (_q30, 0);
9278 21479 : switch (TREE_CODE (_q31))
9279 : {
9280 21478 : case INTEGER_CST:
9281 21478 : {
9282 21478 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
9283 : {
9284 148 : {
9285 148 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
9286 148 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9287 148 : if (res) return res;
9288 : }
9289 : }
9290 : break;
9291 : }
9292 : default:;
9293 : }
9294 : break;
9295 : }
9296 : default:;
9297 : }
9298 : break;
9299 : }
9300 : default:;
9301 : }
9302 : break;
9303 : }
9304 4472003 : default:;
9305 : }
9306 4472003 : switch (TREE_CODE (_p1))
9307 : {
9308 227095 : CASE_CONVERT:
9309 227095 : {
9310 227095 : tree _q30 = TREE_OPERAND (_p1, 0);
9311 227095 : switch (TREE_CODE (_q30))
9312 : {
9313 317 : case PLUS_EXPR:
9314 317 : {
9315 317 : tree _q40 = TREE_OPERAND (_q30, 0);
9316 317 : tree _q41 = TREE_OPERAND (_q30, 1);
9317 317 : switch (TREE_CODE (_q40))
9318 : {
9319 219 : CASE_CONVERT:
9320 219 : {
9321 219 : tree _q50 = TREE_OPERAND (_q40, 0);
9322 219 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9323 : {
9324 0 : switch (TREE_CODE (_q41))
9325 : {
9326 0 : case INTEGER_CST:
9327 0 : {
9328 0 : {
9329 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
9330 0 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9331 0 : if (res) return res;
9332 : }
9333 0 : break;
9334 : }
9335 : default:;
9336 : }
9337 : }
9338 : break;
9339 : }
9340 : default:;
9341 : }
9342 : break;
9343 : }
9344 : default:;
9345 : }
9346 : break;
9347 : }
9348 59149 : case PLUS_EXPR:
9349 59149 : {
9350 59149 : tree _q30 = TREE_OPERAND (_p1, 0);
9351 59149 : tree _q31 = TREE_OPERAND (_p1, 1);
9352 59149 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9353 : {
9354 0 : switch (TREE_CODE (_q31))
9355 : {
9356 0 : case INTEGER_CST:
9357 0 : {
9358 0 : {
9359 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
9360 0 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
9361 0 : if (res) return res;
9362 : }
9363 0 : break;
9364 : }
9365 : default:;
9366 : }
9367 : }
9368 : break;
9369 : }
9370 2619 : case MINUS_EXPR:
9371 2619 : {
9372 2619 : tree _q30 = TREE_OPERAND (_p1, 0);
9373 2619 : tree _q31 = TREE_OPERAND (_p1, 1);
9374 2619 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9375 : {
9376 0 : {
9377 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9378 0 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LE_EXPR);
9379 0 : if (res) return res;
9380 : }
9381 : }
9382 : break;
9383 : }
9384 4472003 : default:;
9385 : }
9386 4472003 : switch (TREE_CODE (_p0))
9387 : {
9388 589041 : case PLUS_EXPR:
9389 589041 : {
9390 589041 : tree _q20 = TREE_OPERAND (_p0, 0);
9391 589041 : tree _q21 = TREE_OPERAND (_p0, 1);
9392 589041 : switch (TREE_CODE (_q20))
9393 : {
9394 141 : case MINUS_EXPR:
9395 141 : {
9396 141 : tree _q30 = TREE_OPERAND (_q20, 0);
9397 141 : tree _q31 = TREE_OPERAND (_q20, 1);
9398 141 : if (integer_minus_onep (_q21))
9399 : {
9400 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9401 : {
9402 1 : {
9403 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9404 1 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR);
9405 1 : if (res) return res;
9406 : }
9407 : }
9408 : }
9409 : break;
9410 : }
9411 : default:;
9412 : }
9413 : break;
9414 : }
9415 4472002 : default:;
9416 : }
9417 4472002 : switch (TREE_CODE (_p1))
9418 : {
9419 0 : case REALPART_EXPR:
9420 0 : {
9421 0 : tree _q30 = TREE_OPERAND (_p1, 0);
9422 0 : switch (TREE_CODE (_q30))
9423 : {
9424 0 : case CALL_EXPR:
9425 0 : switch (get_call_combined_fn (_q30))
9426 : {
9427 0 : case CFN_SUB_OVERFLOW:
9428 0 : if (call_expr_nargs (_q30) == 2)
9429 : {
9430 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
9431 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
9432 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9433 : {
9434 0 : {
9435 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
9436 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
9437 0 : if (res) return res;
9438 : }
9439 : }
9440 : }
9441 : break;
9442 : default:;
9443 : }
9444 : break;
9445 : default:;
9446 : }
9447 : break;
9448 : }
9449 4472002 : default:;
9450 : }
9451 4472002 : switch (TREE_CODE (_p0))
9452 : {
9453 0 : case REALPART_EXPR:
9454 0 : {
9455 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9456 0 : switch (TREE_CODE (_q20))
9457 : {
9458 0 : case CALL_EXPR:
9459 0 : switch (get_call_combined_fn (_q20))
9460 : {
9461 0 : case CFN_ADD_OVERFLOW:
9462 0 : if (call_expr_nargs (_q20) == 2)
9463 : {
9464 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
9465 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
9466 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9467 : {
9468 0 : {
9469 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
9470 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9471 0 : if (res) return res;
9472 : }
9473 : }
9474 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9475 : {
9476 0 : {
9477 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
9478 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9479 0 : if (res) return res;
9480 : }
9481 : }
9482 : }
9483 : break;
9484 : default:;
9485 : }
9486 : break;
9487 : default:;
9488 : }
9489 : break;
9490 : }
9491 1448 : case TRUNC_DIV_EXPR:
9492 1448 : {
9493 1448 : tree _q20 = TREE_OPERAND (_p0, 0);
9494 1448 : tree _q21 = TREE_OPERAND (_p0, 1);
9495 1448 : if (integer_all_onesp (_q20))
9496 : {
9497 33 : {
9498 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
9499 33 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
9500 33 : if (res) return res;
9501 : }
9502 : }
9503 : break;
9504 : }
9505 21602 : case MULT_EXPR:
9506 21602 : {
9507 21602 : tree _q20 = TREE_OPERAND (_p0, 0);
9508 21602 : tree _q21 = TREE_OPERAND (_p0, 1);
9509 21602 : switch (TREE_CODE (_q21))
9510 : {
9511 305 : case REAL_CST:
9512 305 : {
9513 305 : switch (TREE_CODE (_p1))
9514 : {
9515 43 : case REAL_CST:
9516 43 : {
9517 43 : {
9518 43 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9519 43 : tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9520 43 : if (res) return res;
9521 : }
9522 43 : break;
9523 : }
9524 : default:;
9525 : }
9526 : break;
9527 : }
9528 : default:;
9529 : }
9530 : break;
9531 : }
9532 151 : case REAL_CST:
9533 151 : {
9534 151 : switch (TREE_CODE (_p1))
9535 : {
9536 0 : case CALL_EXPR:
9537 0 : switch (get_call_combined_fn (_p1))
9538 : {
9539 0 : case CFN_BUILT_IN_EXP:
9540 0 : if (call_expr_nargs (_p1) == 1)
9541 : {
9542 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9543 0 : {
9544 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9545 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9546 0 : if (res) return res;
9547 : }
9548 : }
9549 : break;
9550 0 : case CFN_BUILT_IN_LOG:
9551 0 : if (call_expr_nargs (_p1) == 1)
9552 : {
9553 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9554 0 : {
9555 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9556 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
9557 0 : if (res) return res;
9558 : }
9559 : }
9560 : break;
9561 0 : case CFN_BUILT_IN_EXP10F:
9562 0 : if (call_expr_nargs (_p1) == 1)
9563 : {
9564 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9565 0 : {
9566 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9567 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9568 0 : if (res) return res;
9569 : }
9570 : }
9571 : break;
9572 0 : case CFN_BUILT_IN_EXP10L:
9573 0 : if (call_expr_nargs (_p1) == 1)
9574 : {
9575 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9576 0 : {
9577 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9578 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9579 0 : if (res) return res;
9580 : }
9581 : }
9582 : break;
9583 0 : case CFN_BUILT_IN_EXP2:
9584 0 : if (call_expr_nargs (_p1) == 1)
9585 : {
9586 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9587 0 : {
9588 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9589 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9590 0 : if (res) return res;
9591 : }
9592 : }
9593 : break;
9594 0 : case CFN_BUILT_IN_EXPF:
9595 0 : if (call_expr_nargs (_p1) == 1)
9596 : {
9597 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9598 0 : {
9599 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9600 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9601 0 : if (res) return res;
9602 : }
9603 : }
9604 : break;
9605 0 : case CFN_BUILT_IN_EXPL:
9606 0 : if (call_expr_nargs (_p1) == 1)
9607 : {
9608 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9609 0 : {
9610 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9611 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9612 0 : if (res) return res;
9613 : }
9614 : }
9615 : break;
9616 0 : case CFN_BUILT_IN_LOG2:
9617 0 : if (call_expr_nargs (_p1) == 1)
9618 : {
9619 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9620 0 : {
9621 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9622 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
9623 0 : if (res) return res;
9624 : }
9625 : }
9626 : break;
9627 0 : case CFN_BUILT_IN_LOGF:
9628 0 : if (call_expr_nargs (_p1) == 1)
9629 : {
9630 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9631 0 : {
9632 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9633 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
9634 0 : if (res) return res;
9635 : }
9636 : }
9637 : break;
9638 0 : case CFN_BUILT_IN_LOGL:
9639 0 : if (call_expr_nargs (_p1) == 1)
9640 : {
9641 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9642 0 : {
9643 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9644 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
9645 0 : if (res) return res;
9646 : }
9647 : }
9648 : break;
9649 0 : case CFN_BUILT_IN_LOG10F:
9650 0 : if (call_expr_nargs (_p1) == 1)
9651 : {
9652 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9653 0 : {
9654 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9655 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
9656 0 : if (res) return res;
9657 : }
9658 : }
9659 : break;
9660 0 : case CFN_BUILT_IN_LOG10L:
9661 0 : if (call_expr_nargs (_p1) == 1)
9662 : {
9663 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9664 0 : {
9665 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9666 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
9667 0 : if (res) return res;
9668 : }
9669 : }
9670 : break;
9671 0 : case CFN_EXP:
9672 0 : if (call_expr_nargs (_p1) == 1)
9673 : {
9674 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9675 0 : {
9676 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9677 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9678 0 : if (res) return res;
9679 : }
9680 : }
9681 : break;
9682 0 : case CFN_LOG:
9683 0 : if (call_expr_nargs (_p1) == 1)
9684 : {
9685 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9686 0 : {
9687 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9688 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
9689 0 : if (res) return res;
9690 : }
9691 : }
9692 : break;
9693 0 : case CFN_EXP2:
9694 0 : if (call_expr_nargs (_p1) == 1)
9695 : {
9696 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9697 0 : {
9698 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9699 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9700 0 : if (res) return res;
9701 : }
9702 : }
9703 : break;
9704 0 : case CFN_LOG2:
9705 0 : if (call_expr_nargs (_p1) == 1)
9706 : {
9707 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9708 0 : {
9709 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9710 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
9711 0 : if (res) return res;
9712 : }
9713 : }
9714 : break;
9715 0 : case CFN_EXP10:
9716 0 : if (call_expr_nargs (_p1) == 1)
9717 : {
9718 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9719 0 : {
9720 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9721 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9722 0 : if (res) return res;
9723 : }
9724 : }
9725 : break;
9726 0 : case CFN_LOG10:
9727 0 : if (call_expr_nargs (_p1) == 1)
9728 : {
9729 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9730 0 : {
9731 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9732 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
9733 0 : if (res) return res;
9734 : }
9735 : }
9736 : break;
9737 0 : case CFN_BUILT_IN_EXP10:
9738 0 : if (call_expr_nargs (_p1) == 1)
9739 : {
9740 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9741 0 : {
9742 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9743 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9744 0 : if (res) return res;
9745 : }
9746 : }
9747 : break;
9748 0 : case CFN_BUILT_IN_EXP2F:
9749 0 : if (call_expr_nargs (_p1) == 1)
9750 : {
9751 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9752 0 : {
9753 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9754 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9755 0 : if (res) return res;
9756 : }
9757 : }
9758 : break;
9759 0 : case CFN_BUILT_IN_EXP2L:
9760 0 : if (call_expr_nargs (_p1) == 1)
9761 : {
9762 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9763 0 : {
9764 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9765 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9766 0 : if (res) return res;
9767 : }
9768 : }
9769 : break;
9770 0 : case CFN_BUILT_IN_LOG10:
9771 0 : if (call_expr_nargs (_p1) == 1)
9772 : {
9773 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9774 0 : {
9775 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9776 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
9777 0 : if (res) return res;
9778 : }
9779 : }
9780 : break;
9781 0 : case CFN_BUILT_IN_LOG2F:
9782 0 : if (call_expr_nargs (_p1) == 1)
9783 : {
9784 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9785 0 : {
9786 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9787 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
9788 0 : if (res) return res;
9789 : }
9790 : }
9791 : break;
9792 0 : case CFN_BUILT_IN_LOG2L:
9793 0 : if (call_expr_nargs (_p1) == 1)
9794 : {
9795 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
9796 0 : {
9797 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
9798 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
9799 0 : if (res) return res;
9800 : }
9801 : }
9802 : break;
9803 : default:;
9804 : }
9805 : break;
9806 : default:;
9807 : }
9808 : break;
9809 : }
9810 589040 : case PLUS_EXPR:
9811 589040 : {
9812 589040 : tree _q20 = TREE_OPERAND (_p0, 0);
9813 589040 : tree _q21 = TREE_OPERAND (_p0, 1);
9814 589040 : switch (TREE_CODE (_q21))
9815 : {
9816 476169 : case INTEGER_CST:
9817 476169 : {
9818 476169 : switch (TREE_CODE (_p1))
9819 : {
9820 117520 : case INTEGER_CST:
9821 117520 : {
9822 117520 : {
9823 117520 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9824 117520 : tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR, LE_EXPR);
9825 117520 : if (res) return res;
9826 : }
9827 55936 : break;
9828 : }
9829 : default:;
9830 : }
9831 : break;
9832 : }
9833 : default:;
9834 : }
9835 : break;
9836 : }
9837 58245 : case MINUS_EXPR:
9838 58245 : {
9839 58245 : tree _q20 = TREE_OPERAND (_p0, 0);
9840 58245 : tree _q21 = TREE_OPERAND (_p0, 1);
9841 58245 : switch (TREE_CODE (_q21))
9842 : {
9843 7 : case INTEGER_CST:
9844 7 : {
9845 7 : switch (TREE_CODE (_p1))
9846 : {
9847 7 : case INTEGER_CST:
9848 7 : {
9849 7 : {
9850 7 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9851 7 : tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR, LE_EXPR);
9852 7 : if (res) return res;
9853 : }
9854 0 : break;
9855 : }
9856 : default:;
9857 : }
9858 : break;
9859 : }
9860 58238 : default:;
9861 : }
9862 58238 : switch (TREE_CODE (_q20))
9863 : {
9864 1580 : case INTEGER_CST:
9865 1580 : {
9866 1580 : switch (TREE_CODE (_p1))
9867 : {
9868 543 : case INTEGER_CST:
9869 543 : {
9870 543 : {
9871 543 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9872 543 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
9873 543 : if (res) return res;
9874 : }
9875 0 : break;
9876 : }
9877 : default:;
9878 : }
9879 : break;
9880 : }
9881 : default:;
9882 : }
9883 : break;
9884 : }
9885 236967 : case CALL_EXPR:
9886 236967 : switch (get_call_combined_fn (_p0))
9887 : {
9888 1 : case CFN_BUILT_IN_CTZ:
9889 1 : if (call_expr_nargs (_p0) == 1)
9890 : {
9891 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9892 1 : switch (TREE_CODE (_p1))
9893 : {
9894 1 : case INTEGER_CST:
9895 1 : {
9896 1 : {
9897 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9898 1 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9899 1 : if (res) return res;
9900 : }
9901 0 : break;
9902 : }
9903 : default:;
9904 : }
9905 : }
9906 : break;
9907 1 : case CFN_BUILT_IN_EXP:
9908 1 : if (call_expr_nargs (_p0) == 1)
9909 : {
9910 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9911 1 : switch (TREE_CODE (_p1))
9912 : {
9913 1 : case REAL_CST:
9914 1 : {
9915 1 : {
9916 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9917 1 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9918 1 : if (res) return res;
9919 : }
9920 1 : break;
9921 : }
9922 : default:;
9923 : }
9924 : }
9925 : break;
9926 1 : case CFN_BUILT_IN_LOG:
9927 1 : if (call_expr_nargs (_p0) == 1)
9928 : {
9929 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9930 1 : switch (TREE_CODE (_p1))
9931 : {
9932 0 : case REAL_CST:
9933 0 : {
9934 0 : {
9935 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9936 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
9937 0 : if (res) return res;
9938 : }
9939 0 : break;
9940 : }
9941 : default:;
9942 : }
9943 : }
9944 : break;
9945 0 : case CFN_BUILT_IN_EXP10F:
9946 0 : if (call_expr_nargs (_p0) == 1)
9947 : {
9948 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9949 0 : switch (TREE_CODE (_p1))
9950 : {
9951 0 : case REAL_CST:
9952 0 : {
9953 0 : {
9954 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9955 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
9956 0 : if (res) return res;
9957 : }
9958 0 : break;
9959 : }
9960 : default:;
9961 : }
9962 : }
9963 : break;
9964 0 : case CFN_BUILT_IN_EXP10L:
9965 0 : if (call_expr_nargs (_p0) == 1)
9966 : {
9967 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9968 0 : switch (TREE_CODE (_p1))
9969 : {
9970 0 : case REAL_CST:
9971 0 : {
9972 0 : {
9973 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9974 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
9975 0 : if (res) return res;
9976 : }
9977 0 : break;
9978 : }
9979 : default:;
9980 : }
9981 : }
9982 : break;
9983 0 : case CFN_BUILT_IN_CTZL:
9984 0 : if (call_expr_nargs (_p0) == 1)
9985 : {
9986 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9987 0 : switch (TREE_CODE (_p1))
9988 : {
9989 0 : case INTEGER_CST:
9990 0 : {
9991 0 : {
9992 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9993 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9994 0 : if (res) return res;
9995 : }
9996 0 : break;
9997 : }
9998 : default:;
9999 : }
10000 : }
10001 : break;
10002 0 : case CFN_BUILT_IN_EXP2:
10003 0 : if (call_expr_nargs (_p0) == 1)
10004 : {
10005 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10006 0 : switch (TREE_CODE (_p1))
10007 : {
10008 0 : case REAL_CST:
10009 0 : {
10010 0 : {
10011 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10012 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
10013 0 : if (res) return res;
10014 : }
10015 0 : break;
10016 : }
10017 : default:;
10018 : }
10019 : }
10020 : break;
10021 0 : case CFN_BUILT_IN_EXPF:
10022 0 : if (call_expr_nargs (_p0) == 1)
10023 : {
10024 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10025 0 : switch (TREE_CODE (_p1))
10026 : {
10027 0 : case REAL_CST:
10028 0 : {
10029 0 : {
10030 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10031 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
10032 0 : if (res) return res;
10033 : }
10034 0 : break;
10035 : }
10036 : default:;
10037 : }
10038 : }
10039 : break;
10040 0 : case CFN_BUILT_IN_EXPL:
10041 0 : if (call_expr_nargs (_p0) == 1)
10042 : {
10043 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10044 0 : switch (TREE_CODE (_p1))
10045 : {
10046 0 : case REAL_CST:
10047 0 : {
10048 0 : {
10049 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10050 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
10051 0 : if (res) return res;
10052 : }
10053 0 : break;
10054 : }
10055 : default:;
10056 : }
10057 : }
10058 : break;
10059 0 : case CFN_BUILT_IN_LOG2:
10060 0 : if (call_expr_nargs (_p0) == 1)
10061 : {
10062 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10063 0 : switch (TREE_CODE (_p1))
10064 : {
10065 0 : case REAL_CST:
10066 0 : {
10067 0 : {
10068 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10069 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
10070 0 : if (res) return res;
10071 : }
10072 0 : break;
10073 : }
10074 : default:;
10075 : }
10076 : }
10077 : break;
10078 0 : case CFN_BUILT_IN_LOGF:
10079 0 : if (call_expr_nargs (_p0) == 1)
10080 : {
10081 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10082 0 : switch (TREE_CODE (_p1))
10083 : {
10084 0 : case REAL_CST:
10085 0 : {
10086 0 : {
10087 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10088 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
10089 0 : if (res) return res;
10090 : }
10091 0 : break;
10092 : }
10093 : default:;
10094 : }
10095 : }
10096 : break;
10097 0 : case CFN_BUILT_IN_LOGL:
10098 0 : if (call_expr_nargs (_p0) == 1)
10099 : {
10100 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10101 0 : switch (TREE_CODE (_p1))
10102 : {
10103 0 : case REAL_CST:
10104 0 : {
10105 0 : {
10106 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10107 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
10108 0 : if (res) return res;
10109 : }
10110 0 : break;
10111 : }
10112 : default:;
10113 : }
10114 : }
10115 : break;
10116 0 : case CFN_BUILT_IN_LOG10F:
10117 0 : if (call_expr_nargs (_p0) == 1)
10118 : {
10119 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10120 0 : switch (TREE_CODE (_p1))
10121 : {
10122 0 : case REAL_CST:
10123 0 : {
10124 0 : {
10125 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10126 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
10127 0 : if (res) return res;
10128 : }
10129 0 : break;
10130 : }
10131 : default:;
10132 : }
10133 : }
10134 : break;
10135 0 : case CFN_BUILT_IN_LOG10L:
10136 0 : if (call_expr_nargs (_p0) == 1)
10137 : {
10138 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10139 0 : switch (TREE_CODE (_p1))
10140 : {
10141 0 : case REAL_CST:
10142 0 : {
10143 0 : {
10144 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10145 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
10146 0 : if (res) return res;
10147 : }
10148 0 : break;
10149 : }
10150 : default:;
10151 : }
10152 : }
10153 : break;
10154 0 : case CFN_BUILT_IN_CTZIMAX:
10155 0 : if (call_expr_nargs (_p0) == 1)
10156 : {
10157 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10158 0 : switch (TREE_CODE (_p1))
10159 : {
10160 0 : case INTEGER_CST:
10161 0 : {
10162 0 : {
10163 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10164 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
10165 0 : if (res) return res;
10166 : }
10167 0 : break;
10168 : }
10169 : default:;
10170 : }
10171 : }
10172 : break;
10173 0 : case CFN_CTZ:
10174 0 : if (call_expr_nargs (_p0) == 2)
10175 : {
10176 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10177 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10178 0 : switch (TREE_CODE (_p1))
10179 : {
10180 0 : case INTEGER_CST:
10181 0 : {
10182 0 : {
10183 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10184 0 : tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
10185 0 : if (res) return res;
10186 : }
10187 0 : break;
10188 : }
10189 : default:;
10190 : }
10191 : }
10192 0 : if (call_expr_nargs (_p0) == 1)
10193 : {
10194 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10195 0 : switch (TREE_CODE (_p1))
10196 : {
10197 0 : case INTEGER_CST:
10198 0 : {
10199 0 : {
10200 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10201 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_CTZ);
10202 0 : if (res) return res;
10203 : }
10204 0 : break;
10205 : }
10206 : default:;
10207 : }
10208 : }
10209 : break;
10210 0 : case CFN_EXP:
10211 0 : if (call_expr_nargs (_p0) == 1)
10212 : {
10213 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10214 0 : switch (TREE_CODE (_p1))
10215 : {
10216 0 : case REAL_CST:
10217 0 : {
10218 0 : {
10219 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10220 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10221 0 : if (res) return res;
10222 : }
10223 0 : break;
10224 : }
10225 : default:;
10226 : }
10227 : }
10228 : break;
10229 0 : case CFN_LOG:
10230 0 : if (call_expr_nargs (_p0) == 1)
10231 : {
10232 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10233 0 : switch (TREE_CODE (_p1))
10234 : {
10235 0 : case REAL_CST:
10236 0 : {
10237 0 : {
10238 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10239 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
10240 0 : if (res) return res;
10241 : }
10242 0 : break;
10243 : }
10244 : default:;
10245 : }
10246 : }
10247 : break;
10248 0 : case CFN_EXP2:
10249 0 : if (call_expr_nargs (_p0) == 1)
10250 : {
10251 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10252 0 : switch (TREE_CODE (_p1))
10253 : {
10254 0 : case REAL_CST:
10255 0 : {
10256 0 : {
10257 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10258 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10259 0 : if (res) return res;
10260 : }
10261 0 : break;
10262 : }
10263 : default:;
10264 : }
10265 : }
10266 : break;
10267 0 : case CFN_LOG2:
10268 0 : if (call_expr_nargs (_p0) == 1)
10269 : {
10270 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10271 0 : switch (TREE_CODE (_p1))
10272 : {
10273 0 : case REAL_CST:
10274 0 : {
10275 0 : {
10276 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10277 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
10278 0 : if (res) return res;
10279 : }
10280 0 : break;
10281 : }
10282 : default:;
10283 : }
10284 : }
10285 : break;
10286 0 : case CFN_EXP10:
10287 0 : if (call_expr_nargs (_p0) == 1)
10288 : {
10289 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10290 0 : switch (TREE_CODE (_p1))
10291 : {
10292 0 : case REAL_CST:
10293 0 : {
10294 0 : {
10295 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10296 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10297 0 : if (res) return res;
10298 : }
10299 0 : break;
10300 : }
10301 : default:;
10302 : }
10303 : }
10304 : break;
10305 0 : case CFN_BUILT_IN_CTZLL:
10306 0 : if (call_expr_nargs (_p0) == 1)
10307 : {
10308 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10309 0 : switch (TREE_CODE (_p1))
10310 : {
10311 0 : case INTEGER_CST:
10312 0 : {
10313 0 : {
10314 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10315 0 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10316 0 : if (res) return res;
10317 : }
10318 0 : break;
10319 : }
10320 : default:;
10321 : }
10322 : }
10323 : break;
10324 0 : case CFN_LOG10:
10325 0 : if (call_expr_nargs (_p0) == 1)
10326 : {
10327 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10328 0 : switch (TREE_CODE (_p1))
10329 : {
10330 0 : case REAL_CST:
10331 0 : {
10332 0 : {
10333 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10334 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
10335 0 : if (res) return res;
10336 : }
10337 0 : break;
10338 : }
10339 : default:;
10340 : }
10341 : }
10342 : break;
10343 0 : case CFN_BUILT_IN_EXP10:
10344 0 : if (call_expr_nargs (_p0) == 1)
10345 : {
10346 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10347 0 : switch (TREE_CODE (_p1))
10348 : {
10349 0 : case REAL_CST:
10350 0 : {
10351 0 : {
10352 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10353 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10354 0 : if (res) return res;
10355 : }
10356 0 : break;
10357 : }
10358 : default:;
10359 : }
10360 : }
10361 : break;
10362 0 : case CFN_BUILT_IN_EXP2F:
10363 0 : if (call_expr_nargs (_p0) == 1)
10364 : {
10365 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10366 0 : switch (TREE_CODE (_p1))
10367 : {
10368 0 : case REAL_CST:
10369 0 : {
10370 0 : {
10371 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10372 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10373 0 : if (res) return res;
10374 : }
10375 0 : break;
10376 : }
10377 : default:;
10378 : }
10379 : }
10380 : break;
10381 0 : case CFN_BUILT_IN_EXP2L:
10382 0 : if (call_expr_nargs (_p0) == 1)
10383 : {
10384 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10385 0 : switch (TREE_CODE (_p1))
10386 : {
10387 0 : case REAL_CST:
10388 0 : {
10389 0 : {
10390 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10391 0 : tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10392 0 : if (res) return res;
10393 : }
10394 0 : break;
10395 : }
10396 : default:;
10397 : }
10398 : }
10399 : break;
10400 0 : case CFN_BUILT_IN_LOG10:
10401 0 : if (call_expr_nargs (_p0) == 1)
10402 : {
10403 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10404 0 : switch (TREE_CODE (_p1))
10405 : {
10406 0 : case REAL_CST:
10407 0 : {
10408 0 : {
10409 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10410 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
10411 0 : if (res) return res;
10412 : }
10413 0 : break;
10414 : }
10415 : default:;
10416 : }
10417 : }
10418 : break;
10419 0 : case CFN_BUILT_IN_LOG2F:
10420 0 : if (call_expr_nargs (_p0) == 1)
10421 : {
10422 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10423 0 : switch (TREE_CODE (_p1))
10424 : {
10425 0 : case REAL_CST:
10426 0 : {
10427 0 : {
10428 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10429 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
10430 0 : if (res) return res;
10431 : }
10432 0 : break;
10433 : }
10434 : default:;
10435 : }
10436 : }
10437 : break;
10438 0 : case CFN_BUILT_IN_LOG2L:
10439 0 : if (call_expr_nargs (_p0) == 1)
10440 : {
10441 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10442 0 : switch (TREE_CODE (_p1))
10443 : {
10444 0 : case REAL_CST:
10445 0 : {
10446 0 : {
10447 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10448 0 : tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
10449 0 : if (res) return res;
10450 : }
10451 0 : break;
10452 : }
10453 : default:;
10454 : }
10455 : }
10456 : break;
10457 : default:;
10458 : }
10459 : break;
10460 : default:;
10461 : }
10462 : return NULL_TREE;
10463 : }
10464 :
10465 : tree
10466 389408 : generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10467 : {
10468 389408 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10469 389408 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10470 : {
10471 0 : {
10472 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10473 0 : tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, MAX_EXPR);
10474 0 : if (res) return res;
10475 : }
10476 : }
10477 389408 : switch (TREE_CODE (_p0))
10478 : {
10479 112 : case MAX_EXPR:
10480 112 : {
10481 112 : tree _q20 = TREE_OPERAND (_p0, 0);
10482 112 : tree _q21 = TREE_OPERAND (_p0, 1);
10483 112 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10484 : {
10485 0 : {
10486 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10487 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, MAX_EXPR);
10488 0 : if (res) return res;
10489 : }
10490 : }
10491 112 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10492 : {
10493 0 : {
10494 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
10495 0 : tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, MAX_EXPR);
10496 0 : if (res) return res;
10497 : }
10498 : }
10499 : break;
10500 : }
10501 389408 : default:;
10502 : }
10503 389408 : switch (TREE_CODE (_p1))
10504 : {
10505 0 : case MAX_EXPR:
10506 0 : {
10507 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10508 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10509 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10510 : {
10511 0 : {
10512 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
10513 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, captures, MAX_EXPR);
10514 0 : if (res) return res;
10515 : }
10516 : }
10517 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10518 : {
10519 0 : {
10520 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
10521 0 : tree res = generic_simplify_529 (loc, type, _p0, _p1, captures, MAX_EXPR);
10522 0 : if (res) return res;
10523 : }
10524 : }
10525 : break;
10526 : }
10527 389408 : default:;
10528 : }
10529 389408 : switch (TREE_CODE (_p0))
10530 : {
10531 3477 : case MIN_EXPR:
10532 3477 : {
10533 3477 : tree _q20 = TREE_OPERAND (_p0, 0);
10534 3477 : tree _q21 = TREE_OPERAND (_p0, 1);
10535 3477 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10536 : {
10537 1 : {
10538 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10539 1 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures);
10540 1 : if (res) return res;
10541 : }
10542 : }
10543 3476 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10544 : {
10545 1 : {
10546 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10547 1 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures);
10548 1 : if (res) return res;
10549 : }
10550 : }
10551 : break;
10552 : }
10553 389406 : default:;
10554 : }
10555 389406 : switch (TREE_CODE (_p1))
10556 : {
10557 0 : case MIN_EXPR:
10558 0 : {
10559 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10560 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10561 0 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10562 : {
10563 0 : {
10564 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
10565 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures);
10566 0 : if (res) return res;
10567 : }
10568 : }
10569 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10570 : {
10571 0 : {
10572 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
10573 0 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures);
10574 0 : if (res) return res;
10575 : }
10576 : }
10577 : break;
10578 : }
10579 0 : case NEGATE_EXPR:
10580 0 : {
10581 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10582 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10583 : {
10584 0 : {
10585 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10586 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, captures);
10587 0 : if (res) return res;
10588 : }
10589 : }
10590 : break;
10591 : }
10592 389406 : default:;
10593 : }
10594 389406 : switch (TREE_CODE (_p0))
10595 : {
10596 76 : case NEGATE_EXPR:
10597 76 : {
10598 76 : tree _q20 = TREE_OPERAND (_p0, 0);
10599 76 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10600 : {
10601 2 : {
10602 2 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10603 2 : tree res = generic_simplify_545 (loc, type, _p0, _p1, captures);
10604 2 : if (res) return res;
10605 : }
10606 : }
10607 : break;
10608 : }
10609 389404 : default:;
10610 : }
10611 389404 : {
10612 389404 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10613 389404 : if (INTEGRAL_TYPE_P (type)
10614 387450 : && TYPE_MAX_VALUE (type)
10615 776854 : && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
10616 : )
10617 : {
10618 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1798;
10619 0 : {
10620 0 : tree _r;
10621 0 : _r = captures[1];
10622 0 : if (TREE_SIDE_EFFECTS (captures[0]))
10623 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10624 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
10625 0 : return _r;
10626 : }
10627 0 : next_after_fail1798:;
10628 : }
10629 : else
10630 : {
10631 389404 : if (INTEGRAL_TYPE_P (type)
10632 387450 : && TYPE_MIN_VALUE (type)
10633 776854 : && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
10634 : )
10635 : {
10636 30849 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1799;
10637 30849 : {
10638 30849 : tree _r;
10639 30849 : _r = captures[0];
10640 30849 : if (TREE_SIDE_EFFECTS (captures[1]))
10641 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10642 30849 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1039, __FILE__, __LINE__, true);
10643 30849 : return _r;
10644 : }
10645 0 : next_after_fail1799:;
10646 : }
10647 : }
10648 : }
10649 358555 : switch (TREE_CODE (_p0))
10650 : {
10651 23485 : case PLUS_EXPR:
10652 23485 : {
10653 23485 : tree _q20 = TREE_OPERAND (_p0, 0);
10654 23485 : tree _q21 = TREE_OPERAND (_p0, 1);
10655 23485 : switch (TREE_CODE (_p1))
10656 : {
10657 14 : case PLUS_EXPR:
10658 14 : {
10659 14 : tree _q50 = TREE_OPERAND (_p1, 0);
10660 14 : tree _q51 = TREE_OPERAND (_p1, 1);
10661 14 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10662 : {
10663 0 : {
10664 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
10665 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR);
10666 0 : if (res) return res;
10667 : }
10668 0 : {
10669 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
10670 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR);
10671 0 : if (res) return res;
10672 : }
10673 : }
10674 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10675 : {
10676 0 : {
10677 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
10678 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR);
10679 0 : if (res) return res;
10680 : }
10681 : }
10682 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10683 : {
10684 0 : {
10685 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q21, _p0, _q20 };
10686 0 : tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR);
10687 0 : if (res) return res;
10688 : }
10689 : }
10690 : break;
10691 : }
10692 23485 : default:;
10693 : }
10694 23485 : switch (TREE_CODE (_q21))
10695 : {
10696 23447 : case INTEGER_CST:
10697 23447 : {
10698 23447 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10699 : {
10700 11 : {
10701 11 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
10702 11 : if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
10703 : )
10704 : {
10705 0 : if (tree_int_cst_sgn (captures[2]) > 0
10706 : )
10707 : {
10708 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1800;
10709 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1800;
10710 0 : {
10711 0 : tree _r;
10712 0 : _r = captures[1];
10713 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
10714 0 : return _r;
10715 : }
10716 11 : next_after_fail1800:;
10717 : }
10718 : else
10719 : {
10720 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
10721 0 : {
10722 0 : tree _r;
10723 0 : _r = captures[0];
10724 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10725 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10726 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
10727 0 : return _r;
10728 : }
10729 0 : next_after_fail1801:;
10730 : }
10731 : }
10732 : }
10733 : }
10734 : break;
10735 : }
10736 : default:;
10737 : }
10738 : break;
10739 : }
10740 8211 : case MINUS_EXPR:
10741 8211 : {
10742 8211 : tree _q20 = TREE_OPERAND (_p0, 0);
10743 8211 : tree _q21 = TREE_OPERAND (_p0, 1);
10744 8211 : switch (TREE_CODE (_p1))
10745 : {
10746 0 : case MINUS_EXPR:
10747 0 : {
10748 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10749 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10750 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10751 : {
10752 0 : {
10753 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
10754 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, captures, MAX_EXPR);
10755 0 : if (res) return res;
10756 : }
10757 0 : {
10758 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
10759 0 : tree res = generic_simplify_533 (loc, type, _p0, _p1, captures, MAX_EXPR);
10760 0 : if (res) return res;
10761 : }
10762 : }
10763 : break;
10764 : }
10765 : default:;
10766 : }
10767 : break;
10768 : }
10769 358555 : default:;
10770 : }
10771 358555 : switch (TREE_CODE (_p1))
10772 : {
10773 110 : case PLUS_EXPR:
10774 110 : {
10775 110 : tree _q30 = TREE_OPERAND (_p1, 0);
10776 110 : tree _q31 = TREE_OPERAND (_p1, 1);
10777 110 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10778 : {
10779 0 : switch (TREE_CODE (_q31))
10780 : {
10781 0 : case INTEGER_CST:
10782 0 : {
10783 0 : {
10784 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
10785 0 : if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
10786 : )
10787 : {
10788 0 : if (tree_int_cst_sgn (captures[2]) > 0
10789 : )
10790 : {
10791 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1802;
10792 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
10793 0 : {
10794 0 : tree _r;
10795 0 : _r = captures[1];
10796 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1040, __FILE__, __LINE__, true);
10797 0 : return _r;
10798 : }
10799 0 : next_after_fail1802:;
10800 : }
10801 : else
10802 : {
10803 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
10804 0 : {
10805 0 : tree _r;
10806 0 : _r = captures[0];
10807 0 : if (TREE_SIDE_EFFECTS (captures[2]))
10808 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
10809 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1041, __FILE__, __LINE__, true);
10810 0 : return _r;
10811 : }
10812 0 : next_after_fail1803:;
10813 : }
10814 : }
10815 : }
10816 0 : break;
10817 : }
10818 : default:;
10819 : }
10820 : }
10821 : break;
10822 : }
10823 358555 : default:;
10824 : }
10825 358555 : switch (TREE_CODE (_p0))
10826 : {
10827 3475 : case MIN_EXPR:
10828 3475 : {
10829 3475 : tree _q20 = TREE_OPERAND (_p0, 0);
10830 3475 : tree _q21 = TREE_OPERAND (_p0, 1);
10831 3475 : switch (TREE_CODE (_p1))
10832 : {
10833 0 : case MAX_EXPR:
10834 0 : {
10835 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10836 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10837 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10838 : {
10839 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10840 : {
10841 0 : {
10842 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10843 0 : if (!HONOR_NANS (captures[0])
10844 : )
10845 : {
10846 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
10847 0 : {
10848 0 : tree res_op0;
10849 0 : res_op0 = captures[0];
10850 0 : tree res_op1;
10851 0 : res_op1 = captures[1];
10852 0 : tree _r;
10853 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10854 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
10855 0 : return _r;
10856 : }
10857 0 : next_after_fail1804:;
10858 : }
10859 : }
10860 : }
10861 : }
10862 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10863 : {
10864 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10865 : {
10866 0 : {
10867 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10868 0 : if (!HONOR_NANS (captures[0])
10869 : )
10870 : {
10871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
10872 0 : {
10873 0 : tree res_op0;
10874 0 : res_op0 = captures[0];
10875 0 : tree res_op1;
10876 0 : res_op1 = captures[1];
10877 0 : tree _r;
10878 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
10880 0 : return _r;
10881 : }
10882 0 : next_after_fail1805:;
10883 : }
10884 : }
10885 : }
10886 : }
10887 : break;
10888 : }
10889 : default:;
10890 : }
10891 : break;
10892 : }
10893 112 : case MAX_EXPR:
10894 112 : {
10895 112 : tree _q20 = TREE_OPERAND (_p0, 0);
10896 112 : tree _q21 = TREE_OPERAND (_p0, 1);
10897 112 : switch (TREE_CODE (_p1))
10898 : {
10899 0 : case MIN_EXPR:
10900 0 : {
10901 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10902 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10903 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10904 : {
10905 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10906 : {
10907 0 : {
10908 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10909 0 : if (!HONOR_NANS (captures[0])
10910 : )
10911 : {
10912 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1806;
10913 0 : {
10914 0 : tree res_op0;
10915 0 : res_op0 = captures[0];
10916 0 : tree res_op1;
10917 0 : res_op1 = captures[1];
10918 0 : tree _r;
10919 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10920 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
10921 0 : return _r;
10922 : }
10923 0 : next_after_fail1806:;
10924 : }
10925 : }
10926 : }
10927 : }
10928 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10929 : {
10930 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10931 : {
10932 0 : {
10933 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10934 0 : if (!HONOR_NANS (captures[0])
10935 : )
10936 : {
10937 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1807;
10938 0 : {
10939 0 : tree res_op0;
10940 0 : res_op0 = captures[0];
10941 0 : tree res_op1;
10942 0 : res_op1 = captures[1];
10943 0 : tree _r;
10944 0 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
10945 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
10946 0 : return _r;
10947 : }
10948 0 : next_after_fail1807:;
10949 : }
10950 : }
10951 : }
10952 : }
10953 : break;
10954 : }
10955 : default:;
10956 : }
10957 : break;
10958 : }
10959 0 : case BIT_AND_EXPR:
10960 0 : {
10961 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10962 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10963 0 : switch (TREE_CODE (_q21))
10964 : {
10965 0 : case INTEGER_CST:
10966 0 : {
10967 0 : switch (TREE_CODE (_p1))
10968 : {
10969 0 : case BIT_AND_EXPR:
10970 0 : {
10971 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10972 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10973 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10974 : {
10975 0 : switch (TREE_CODE (_q51))
10976 : {
10977 0 : case INTEGER_CST:
10978 0 : {
10979 0 : {
10980 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
10981 0 : tree res = generic_simplify_534 (loc, type, _p0, _p1, captures, MAX_EXPR);
10982 0 : if (res) return res;
10983 : }
10984 0 : break;
10985 : }
10986 : default:;
10987 : }
10988 : }
10989 : break;
10990 : }
10991 : default:;
10992 : }
10993 : break;
10994 : }
10995 : default:;
10996 : }
10997 : break;
10998 : }
10999 358555 : default:;
11000 : }
11001 358555 : switch (TREE_CODE (_p1))
11002 : {
11003 0 : case BIT_AND_EXPR:
11004 0 : {
11005 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11006 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11007 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11008 : {
11009 0 : switch (TREE_CODE (_q31))
11010 : {
11011 0 : case INTEGER_CST:
11012 0 : {
11013 0 : {
11014 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
11015 0 : tree res = generic_simplify_535 (loc, type, _p0, _p1, captures, MAX_EXPR);
11016 0 : if (res) return res;
11017 : }
11018 0 : break;
11019 : }
11020 : default:;
11021 : }
11022 : }
11023 : break;
11024 : }
11025 358555 : default:;
11026 : }
11027 358555 : switch (TREE_CODE (_p0))
11028 : {
11029 33409 : CASE_CONVERT:
11030 33409 : {
11031 33409 : tree _q20 = TREE_OPERAND (_p0, 0);
11032 33409 : switch (TREE_CODE (_q20))
11033 : {
11034 30 : case ADDR_EXPR:
11035 30 : {
11036 30 : switch (TREE_CODE (_p1))
11037 : {
11038 0 : CASE_CONVERT:
11039 0 : {
11040 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11041 0 : switch (TREE_CODE (_q40))
11042 : {
11043 0 : case ADDR_EXPR:
11044 0 : {
11045 0 : {
11046 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11047 0 : tree res = generic_simplify_536 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11048 0 : if (res) return res;
11049 : }
11050 0 : break;
11051 : }
11052 : default:;
11053 : }
11054 : break;
11055 : }
11056 0 : case ADDR_EXPR:
11057 0 : {
11058 0 : {
11059 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
11060 0 : tree res = generic_simplify_537 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11061 0 : if (res) return res;
11062 : }
11063 0 : break;
11064 : }
11065 : default:;
11066 : }
11067 : break;
11068 : }
11069 : default:;
11070 : }
11071 : break;
11072 : }
11073 10 : case ADDR_EXPR:
11074 10 : {
11075 10 : switch (TREE_CODE (_p1))
11076 : {
11077 0 : CASE_CONVERT:
11078 0 : {
11079 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11080 0 : switch (TREE_CODE (_q30))
11081 : {
11082 0 : case ADDR_EXPR:
11083 0 : {
11084 0 : {
11085 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
11086 0 : tree res = generic_simplify_538 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11087 0 : if (res) return res;
11088 : }
11089 0 : break;
11090 : }
11091 : default:;
11092 : }
11093 : break;
11094 : }
11095 10 : case ADDR_EXPR:
11096 10 : {
11097 10 : {
11098 10 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
11099 10 : tree res = generic_simplify_539 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
11100 10 : if (res) return res;
11101 : }
11102 10 : break;
11103 : }
11104 : default:;
11105 : }
11106 : break;
11107 : }
11108 74 : case NEGATE_EXPR:
11109 74 : {
11110 74 : tree _q20 = TREE_OPERAND (_p0, 0);
11111 74 : switch (TREE_CODE (_p1))
11112 : {
11113 0 : case NEGATE_EXPR:
11114 0 : {
11115 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11116 0 : {
11117 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11118 0 : if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
11119 0 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
11120 0 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
11121 : )
11122 : {
11123 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1808;
11124 0 : {
11125 0 : tree res_op0;
11126 0 : {
11127 0 : tree _o1[2], _r1;
11128 0 : _o1[0] = captures[1];
11129 0 : _o1[1] = captures[3];
11130 0 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
11131 0 : res_op0 = _r1;
11132 : }
11133 0 : tree _r;
11134 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
11135 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1037, __FILE__, __LINE__, true);
11136 0 : return _r;
11137 : }
11138 0 : next_after_fail1808:;
11139 : }
11140 : }
11141 0 : break;
11142 : }
11143 : default:;
11144 : }
11145 : break;
11146 : }
11147 0 : case BIT_NOT_EXPR:
11148 0 : {
11149 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11150 0 : switch (TREE_CODE (_p1))
11151 : {
11152 0 : case BIT_NOT_EXPR:
11153 0 : {
11154 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11155 0 : {
11156 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11157 0 : tree res = generic_simplify_540 (loc, type, _p0, _p1, captures, MAX_EXPR, MIN_EXPR);
11158 0 : if (res) return res;
11159 : }
11160 0 : break;
11161 : }
11162 : default:;
11163 : }
11164 : break;
11165 : }
11166 0 : case VEC_COND_EXPR:
11167 0 : {
11168 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11169 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11170 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11171 0 : switch (TREE_CODE (_p1))
11172 : {
11173 0 : case VEC_COND_EXPR:
11174 0 : {
11175 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11176 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11177 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11178 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11179 : {
11180 0 : {
11181 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11182 0 : if (VECTOR_TYPE_P (type)
11183 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11184 : || types_match (type, TREE_TYPE (captures[2]))
11185 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11186 : || (optimize_vectors_before_lowering_p ()
11187 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11188 : )
11189 : {
11190 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1809;
11191 0 : {
11192 0 : tree res_op0;
11193 0 : res_op0 = captures[1];
11194 0 : tree res_op1;
11195 0 : {
11196 0 : tree _o1[2], _r1;
11197 0 : _o1[0] = captures[2];
11198 0 : _o1[1] = captures[5];
11199 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11200 0 : if (EXPR_P (_r1))
11201 0 : goto next_after_fail1809;
11202 0 : res_op1 = _r1;
11203 : }
11204 0 : tree res_op2;
11205 0 : {
11206 0 : tree _o1[2], _r1;
11207 0 : _o1[0] = captures[3];
11208 0 : _o1[1] = captures[6];
11209 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11210 0 : if (EXPR_P (_r1))
11211 0 : goto next_after_fail1809;
11212 0 : res_op2 = _r1;
11213 : }
11214 0 : tree _r;
11215 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11216 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
11217 0 : return _r;
11218 : }
11219 0 : next_after_fail1809:;
11220 : }
11221 : }
11222 : }
11223 : break;
11224 : }
11225 0 : default:;
11226 : }
11227 0 : {
11228 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11229 0 : if (VECTOR_TYPE_P (type)
11230 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11231 : || types_match (type, TREE_TYPE (captures[2]))
11232 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11233 : || (optimize_vectors_before_lowering_p ()
11234 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11235 : )
11236 : {
11237 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1810;
11238 0 : {
11239 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1810;
11240 0 : tree res_op0;
11241 0 : res_op0 = captures[1];
11242 0 : tree res_op1;
11243 0 : {
11244 0 : tree _o1[2], _r1;
11245 0 : _o1[0] = captures[2];
11246 0 : _o1[1] = unshare_expr (captures[4]);
11247 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11248 0 : if (EXPR_P (_r1))
11249 0 : goto next_after_fail1810;
11250 0 : res_op1 = _r1;
11251 : }
11252 0 : tree res_op2;
11253 0 : {
11254 0 : tree _o1[2], _r1;
11255 0 : _o1[0] = captures[3];
11256 0 : _o1[1] = captures[4];
11257 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11258 0 : if (EXPR_P (_r1))
11259 0 : goto next_after_fail1810;
11260 0 : res_op2 = _r1;
11261 : }
11262 0 : tree _r;
11263 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11264 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
11265 0 : return _r;
11266 : }
11267 0 : next_after_fail1810:;
11268 : }
11269 : }
11270 0 : break;
11271 : }
11272 358555 : default:;
11273 : }
11274 358555 : switch (TREE_CODE (_p1))
11275 : {
11276 0 : case VEC_COND_EXPR:
11277 0 : {
11278 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11279 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11280 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11281 0 : {
11282 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11283 0 : if (VECTOR_TYPE_P (type)
11284 0 : && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
11285 : || types_match (type, TREE_TYPE (captures[3]))
11286 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11287 : || (optimize_vectors_before_lowering_p ()
11288 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11289 : )
11290 : {
11291 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1811;
11292 0 : {
11293 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1811;
11294 0 : tree res_op0;
11295 0 : res_op0 = captures[2];
11296 0 : tree res_op1;
11297 0 : {
11298 0 : tree _o1[2], _r1;
11299 0 : _o1[0] = unshare_expr (captures[0]);
11300 0 : _o1[1] = captures[3];
11301 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11302 0 : if (EXPR_P (_r1))
11303 0 : goto next_after_fail1811;
11304 0 : res_op1 = _r1;
11305 : }
11306 0 : tree res_op2;
11307 0 : {
11308 0 : tree _o1[2], _r1;
11309 0 : _o1[0] = captures[0];
11310 0 : _o1[1] = captures[4];
11311 0 : _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
11312 0 : if (EXPR_P (_r1))
11313 0 : goto next_after_fail1811;
11314 0 : res_op2 = _r1;
11315 : }
11316 0 : tree _r;
11317 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11318 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
11319 0 : return _r;
11320 : }
11321 0 : next_after_fail1811:;
11322 : }
11323 : }
11324 0 : break;
11325 : }
11326 358555 : default:;
11327 : }
11328 358555 : if (tree_zero_one_valued_p (_p0))
11329 : {
11330 10 : if (tree_zero_one_valued_p (_p1))
11331 : {
11332 0 : {
11333 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11334 0 : tree res = generic_simplify_541 (loc, type, _p0, _p1, captures, MAX_EXPR, BIT_IOR_EXPR);
11335 0 : if (res) return res;
11336 : }
11337 : }
11338 : }
11339 : return NULL_TREE;
11340 : }
11341 :
11342 : tree
11343 2797 : generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11344 : {
11345 2797 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11346 2797 : if (integer_all_onesp (_p0))
11347 : {
11348 0 : {
11349 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11350 0 : tree res = generic_simplify_565 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11351 0 : if (res) return res;
11352 : }
11353 : }
11354 2797 : if (integer_zerop (_p1))
11355 : {
11356 1 : {
11357 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11358 1 : tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11359 1 : if (res) return res;
11360 : }
11361 : }
11362 2796 : if (integer_zerop (_p0))
11363 : {
11364 0 : {
11365 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11366 0 : tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11367 0 : if (res) return res;
11368 : }
11369 : }
11370 2796 : switch (TREE_CODE (_p1))
11371 : {
11372 0 : case VECTOR_CST:
11373 0 : {
11374 0 : {
11375 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11376 0 : tree res = generic_simplify_428 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11377 0 : if (res) return res;
11378 : }
11379 0 : break;
11380 : }
11381 0 : case CONSTRUCTOR:
11382 0 : {
11383 0 : {
11384 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11385 0 : tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11386 0 : if (res) return res;
11387 : }
11388 0 : break;
11389 : }
11390 0 : case MINUS_EXPR:
11391 0 : {
11392 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11393 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11394 0 : switch (TREE_CODE (_q30))
11395 : {
11396 0 : case INTEGER_CST:
11397 0 : {
11398 0 : {
11399 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
11400 0 : tree res = generic_simplify_566 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
11401 0 : if (res) return res;
11402 : }
11403 0 : break;
11404 : }
11405 : default:;
11406 : }
11407 : break;
11408 : }
11409 2796 : default:;
11410 : }
11411 2796 : switch (TREE_CODE (_p0))
11412 : {
11413 0 : case RROTATE_EXPR:
11414 0 : {
11415 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11416 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11417 0 : switch (TREE_CODE (_q21))
11418 : {
11419 0 : case INTEGER_CST:
11420 0 : {
11421 0 : switch (TREE_CODE (_p1))
11422 : {
11423 0 : case INTEGER_CST:
11424 0 : {
11425 0 : {
11426 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11427 0 : tree res = generic_simplify_430 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
11428 0 : if (res) return res;
11429 : }
11430 0 : break;
11431 : }
11432 : default:;
11433 : }
11434 : break;
11435 : }
11436 : default:;
11437 : }
11438 : break;
11439 : }
11440 : default:;
11441 : }
11442 : return NULL_TREE;
11443 : }
11444 :
11445 : tree
11446 751166 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11447 : {
11448 751166 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11449 751166 : switch (TREE_CODE (_p0))
11450 : {
11451 0 : case VEC_COND_EXPR:
11452 0 : {
11453 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11454 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11455 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11456 0 : switch (TREE_CODE (_p1))
11457 : {
11458 0 : case VEC_COND_EXPR:
11459 0 : {
11460 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11461 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11462 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11463 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11464 : {
11465 0 : {
11466 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11467 0 : if (VECTOR_TYPE_P (type)
11468 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
11469 0 : || types_match (type, TREE_TYPE (captures[2]))
11470 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11471 : || (optimize_vectors_before_lowering_p ()
11472 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11473 : )
11474 : {
11475 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1824;
11476 0 : {
11477 0 : tree res_op0;
11478 0 : res_op0 = captures[1];
11479 0 : tree res_op1;
11480 0 : {
11481 0 : tree _o1[2], _r1;
11482 0 : _o1[0] = captures[2];
11483 0 : _o1[1] = captures[5];
11484 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11485 0 : if (EXPR_P (_r1))
11486 0 : goto next_after_fail1824;
11487 0 : res_op1 = _r1;
11488 : }
11489 0 : tree res_op2;
11490 0 : {
11491 0 : tree _o1[2], _r1;
11492 0 : _o1[0] = captures[3];
11493 0 : _o1[1] = captures[6];
11494 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11495 0 : if (EXPR_P (_r1))
11496 0 : goto next_after_fail1824;
11497 0 : res_op2 = _r1;
11498 : }
11499 0 : tree _r;
11500 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11501 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
11502 0 : return _r;
11503 : }
11504 0 : next_after_fail1824:;
11505 : }
11506 : }
11507 : }
11508 : break;
11509 : }
11510 0 : default:;
11511 : }
11512 0 : {
11513 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11514 0 : if (VECTOR_TYPE_P (type)
11515 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
11516 0 : || types_match (type, TREE_TYPE (captures[2]))
11517 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11518 : || (optimize_vectors_before_lowering_p ()
11519 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11520 : )
11521 : {
11522 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1825;
11523 0 : {
11524 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1825;
11525 0 : tree res_op0;
11526 0 : res_op0 = captures[1];
11527 0 : tree res_op1;
11528 0 : {
11529 0 : tree _o1[2], _r1;
11530 0 : _o1[0] = captures[2];
11531 0 : _o1[1] = unshare_expr (captures[4]);
11532 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11533 0 : if (EXPR_P (_r1))
11534 0 : goto next_after_fail1825;
11535 0 : res_op1 = _r1;
11536 : }
11537 0 : tree res_op2;
11538 0 : {
11539 0 : tree _o1[2], _r1;
11540 0 : _o1[0] = captures[3];
11541 0 : _o1[1] = captures[4];
11542 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11543 0 : if (EXPR_P (_r1))
11544 0 : goto next_after_fail1825;
11545 0 : res_op2 = _r1;
11546 : }
11547 0 : tree _r;
11548 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11549 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
11550 0 : return _r;
11551 : }
11552 0 : next_after_fail1825:;
11553 : }
11554 : }
11555 0 : break;
11556 : }
11557 751166 : default:;
11558 : }
11559 751166 : switch (TREE_CODE (_p1))
11560 : {
11561 0 : case VEC_COND_EXPR:
11562 0 : {
11563 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11564 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11565 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11566 0 : {
11567 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11568 0 : if (VECTOR_TYPE_P (type)
11569 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
11570 0 : || types_match (type, TREE_TYPE (captures[3]))
11571 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11572 : || (optimize_vectors_before_lowering_p ()
11573 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11574 : )
11575 : {
11576 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1826;
11577 0 : {
11578 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1826;
11579 0 : tree res_op0;
11580 0 : res_op0 = captures[2];
11581 0 : tree res_op1;
11582 0 : {
11583 0 : tree _o1[2], _r1;
11584 0 : _o1[0] = unshare_expr (captures[0]);
11585 0 : _o1[1] = captures[3];
11586 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11587 0 : if (EXPR_P (_r1))
11588 0 : goto next_after_fail1826;
11589 0 : res_op1 = _r1;
11590 : }
11591 0 : tree res_op2;
11592 0 : {
11593 0 : tree _o1[2], _r1;
11594 0 : _o1[0] = captures[0];
11595 0 : _o1[1] = captures[4];
11596 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
11597 0 : if (EXPR_P (_r1))
11598 0 : goto next_after_fail1826;
11599 0 : res_op2 = _r1;
11600 : }
11601 0 : tree _r;
11602 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11603 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
11604 0 : return _r;
11605 : }
11606 0 : next_after_fail1826:;
11607 : }
11608 : }
11609 0 : break;
11610 : }
11611 751166 : default:;
11612 : }
11613 751166 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11614 : {
11615 0 : {
11616 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11617 0 : tree res = generic_simplify_573 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11618 0 : if (res) return res;
11619 : }
11620 : }
11621 751166 : switch (TREE_CODE (_p0))
11622 : {
11623 283 : case FLOAT_EXPR:
11624 283 : {
11625 283 : tree _q20 = TREE_OPERAND (_p0, 0);
11626 283 : switch (TREE_CODE (_p1))
11627 : {
11628 0 : case FLOAT_EXPR:
11629 0 : {
11630 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11631 0 : {
11632 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11633 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
11634 0 : if (res) return res;
11635 : }
11636 0 : break;
11637 : }
11638 : default:;
11639 : }
11640 : break;
11641 : }
11642 0 : case NEGATE_EXPR:
11643 0 : {
11644 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11645 0 : switch (TREE_CODE (_p1))
11646 : {
11647 0 : case NEGATE_EXPR:
11648 0 : {
11649 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11650 0 : {
11651 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11652 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
11653 0 : if (res) return res;
11654 : }
11655 0 : break;
11656 : }
11657 0 : default:;
11658 : }
11659 0 : if (CONSTANT_CLASS_P (_p1))
11660 : {
11661 0 : {
11662 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11663 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
11664 0 : if (res) return res;
11665 : }
11666 : }
11667 : break;
11668 : }
11669 751166 : default:;
11670 : }
11671 751166 : switch (TREE_CODE (_p1))
11672 : {
11673 376850 : case REAL_CST:
11674 376850 : {
11675 376850 : {
11676 376850 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11677 376850 : tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, UNLT_EXPR);
11678 376850 : if (res) return res;
11679 : }
11680 376848 : break;
11681 : }
11682 : default:;
11683 : }
11684 : return NULL_TREE;
11685 : }
11686 :
11687 : tree
11688 431181 : generic_simplify_UNGE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
11689 : {
11690 431181 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11691 431181 : switch (TREE_CODE (_p0))
11692 : {
11693 0 : case VEC_COND_EXPR:
11694 0 : {
11695 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11696 0 : tree _q21 = TREE_OPERAND (_p0, 1);
11697 0 : tree _q22 = TREE_OPERAND (_p0, 2);
11698 0 : switch (TREE_CODE (_p1))
11699 : {
11700 0 : case VEC_COND_EXPR:
11701 0 : {
11702 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11703 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11704 0 : tree _q62 = TREE_OPERAND (_p1, 2);
11705 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11706 : {
11707 0 : {
11708 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
11709 0 : if (VECTOR_TYPE_P (type)
11710 0 : && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
11711 0 : || types_match (type, TREE_TYPE (captures[2]))
11712 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11713 : || (optimize_vectors_before_lowering_p ()
11714 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11715 : )
11716 : {
11717 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1833;
11718 0 : {
11719 0 : tree res_op0;
11720 0 : res_op0 = captures[1];
11721 0 : tree res_op1;
11722 0 : {
11723 0 : tree _o1[2], _r1;
11724 0 : _o1[0] = captures[2];
11725 0 : _o1[1] = captures[5];
11726 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11727 0 : if (EXPR_P (_r1))
11728 0 : goto next_after_fail1833;
11729 0 : res_op1 = _r1;
11730 : }
11731 0 : tree res_op2;
11732 0 : {
11733 0 : tree _o1[2], _r1;
11734 0 : _o1[0] = captures[3];
11735 0 : _o1[1] = captures[6];
11736 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11737 0 : if (EXPR_P (_r1))
11738 0 : goto next_after_fail1833;
11739 0 : res_op2 = _r1;
11740 : }
11741 0 : tree _r;
11742 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11743 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
11744 0 : return _r;
11745 : }
11746 0 : next_after_fail1833:;
11747 : }
11748 : }
11749 : }
11750 : break;
11751 : }
11752 0 : default:;
11753 : }
11754 0 : {
11755 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
11756 0 : if (VECTOR_TYPE_P (type)
11757 0 : && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
11758 0 : || types_match (type, TREE_TYPE (captures[2]))
11759 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
11760 : || (optimize_vectors_before_lowering_p ()
11761 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
11762 : )
11763 : {
11764 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1834;
11765 0 : {
11766 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1834;
11767 0 : tree res_op0;
11768 0 : res_op0 = captures[1];
11769 0 : tree res_op1;
11770 0 : {
11771 0 : tree _o1[2], _r1;
11772 0 : _o1[0] = captures[2];
11773 0 : _o1[1] = unshare_expr (captures[4]);
11774 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11775 0 : if (EXPR_P (_r1))
11776 0 : goto next_after_fail1834;
11777 0 : res_op1 = _r1;
11778 : }
11779 0 : tree res_op2;
11780 0 : {
11781 0 : tree _o1[2], _r1;
11782 0 : _o1[0] = captures[3];
11783 0 : _o1[1] = captures[4];
11784 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11785 0 : if (EXPR_P (_r1))
11786 0 : goto next_after_fail1834;
11787 0 : res_op2 = _r1;
11788 : }
11789 0 : tree _r;
11790 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11791 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
11792 0 : return _r;
11793 : }
11794 0 : next_after_fail1834:;
11795 : }
11796 : }
11797 0 : break;
11798 : }
11799 431181 : default:;
11800 : }
11801 431181 : switch (TREE_CODE (_p1))
11802 : {
11803 0 : case VEC_COND_EXPR:
11804 0 : {
11805 0 : tree _q30 = TREE_OPERAND (_p1, 0);
11806 0 : tree _q31 = TREE_OPERAND (_p1, 1);
11807 0 : tree _q32 = TREE_OPERAND (_p1, 2);
11808 0 : {
11809 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
11810 0 : if (VECTOR_TYPE_P (type)
11811 0 : && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
11812 0 : || types_match (type, TREE_TYPE (captures[3]))
11813 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
11814 : || (optimize_vectors_before_lowering_p ()
11815 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
11816 : )
11817 : {
11818 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1835;
11819 0 : {
11820 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1835;
11821 0 : tree res_op0;
11822 0 : res_op0 = captures[2];
11823 0 : tree res_op1;
11824 0 : {
11825 0 : tree _o1[2], _r1;
11826 0 : _o1[0] = unshare_expr (captures[0]);
11827 0 : _o1[1] = captures[3];
11828 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11829 0 : if (EXPR_P (_r1))
11830 0 : goto next_after_fail1835;
11831 0 : res_op1 = _r1;
11832 : }
11833 0 : tree res_op2;
11834 0 : {
11835 0 : tree _o1[2], _r1;
11836 0 : _o1[0] = captures[0];
11837 0 : _o1[1] = captures[4];
11838 0 : _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
11839 0 : if (EXPR_P (_r1))
11840 0 : goto next_after_fail1835;
11841 0 : res_op2 = _r1;
11842 : }
11843 0 : tree _r;
11844 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11845 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
11846 0 : return _r;
11847 : }
11848 0 : next_after_fail1835:;
11849 : }
11850 : }
11851 0 : break;
11852 : }
11853 431181 : default:;
11854 : }
11855 431181 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11856 : {
11857 30 : {
11858 30 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11859 30 : tree res = generic_simplify_574 (loc, type, _p0, _p1, captures, UNGE_EXPR);
11860 30 : if (res) return res;
11861 : }
11862 : }
11863 431151 : switch (TREE_CODE (_p0))
11864 : {
11865 299 : case FLOAT_EXPR:
11866 299 : {
11867 299 : tree _q20 = TREE_OPERAND (_p0, 0);
11868 299 : switch (TREE_CODE (_p1))
11869 : {
11870 0 : case FLOAT_EXPR:
11871 0 : {
11872 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11873 0 : {
11874 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11875 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNGE_EXPR, GE_EXPR);
11876 0 : if (res) return res;
11877 : }
11878 0 : break;
11879 : }
11880 : default:;
11881 : }
11882 : break;
11883 : }
11884 112 : case NEGATE_EXPR:
11885 112 : {
11886 112 : tree _q20 = TREE_OPERAND (_p0, 0);
11887 112 : switch (TREE_CODE (_p1))
11888 : {
11889 0 : case NEGATE_EXPR:
11890 0 : {
11891 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11892 0 : {
11893 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11894 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
11895 0 : if (res) return res;
11896 : }
11897 0 : break;
11898 : }
11899 112 : default:;
11900 : }
11901 112 : if (CONSTANT_CLASS_P (_p1))
11902 : {
11903 112 : {
11904 112 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11905 112 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
11906 112 : if (res) return res;
11907 : }
11908 : }
11909 : break;
11910 : }
11911 431039 : default:;
11912 : }
11913 431039 : switch (TREE_CODE (_p1))
11914 : {
11915 54145 : case REAL_CST:
11916 54145 : {
11917 54145 : {
11918 54145 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11919 54145 : tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, UNGE_EXPR);
11920 54145 : if (res) return res;
11921 : }
11922 54143 : break;
11923 : }
11924 : default:;
11925 : }
11926 : return NULL_TREE;
11927 : }
11928 :
11929 : tree
11930 465150 : 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)
11931 : {
11932 465150 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11933 465150 : switch (TREE_CODE (_p0))
11934 : {
11935 1421 : case NE_EXPR:
11936 1421 : {
11937 1421 : tree _q20 = TREE_OPERAND (_p0, 0);
11938 1421 : tree _q21 = TREE_OPERAND (_p0, 1);
11939 1421 : if (uniform_integer_cst_p (_q21))
11940 : {
11941 478 : switch (TREE_CODE (_p1))
11942 : {
11943 35 : case PLUS_EXPR:
11944 35 : {
11945 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11946 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11947 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11948 : {
11949 24 : if (uniform_integer_cst_p (_q51))
11950 : {
11951 24 : if (uniform_integer_cst_p (_p2))
11952 : {
11953 24 : {
11954 24 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11955 24 : {
11956 24 : tree cst1 = uniform_integer_cst_p (captures[1]);
11957 24 : tree cst2 = uniform_integer_cst_p (captures[3]);
11958 24 : tree cst3 = uniform_integer_cst_p (captures[4]);
11959 24 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
11960 : )
11961 : {
11962 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1937;
11963 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
11964 18 : {
11965 18 : tree _r;
11966 18 : _r = captures[2];
11967 18 : if (TREE_SIDE_EFFECTS (captures[1]))
11968 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11969 18 : if (TREE_SIDE_EFFECTS (captures[4]))
11970 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11971 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1052, __FILE__, __LINE__, true);
11972 18 : return _r;
11973 : }
11974 6 : next_after_fail1937:;
11975 : }
11976 : }
11977 : }
11978 : }
11979 : }
11980 : }
11981 : break;
11982 : }
11983 : default:;
11984 : }
11985 : }
11986 : break;
11987 : }
11988 22053 : case VECTOR_CST:
11989 22053 : {
11990 22053 : {
11991 22053 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11992 22053 : if (integer_all_onesp (captures[0])
11993 : )
11994 : {
11995 8091 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
11996 8091 : {
11997 8091 : tree _r;
11998 8091 : _r = captures[1];
11999 8091 : if (TREE_SIDE_EFFECTS (captures[0]))
12000 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12001 8091 : if (TREE_SIDE_EFFECTS (captures[2]))
12002 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12003 8091 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1090, __FILE__, __LINE__, true);
12004 8091 : return _r;
12005 : }
12006 0 : next_after_fail1938:;
12007 : }
12008 : else
12009 : {
12010 13962 : if (integer_zerop (captures[0])
12011 : )
12012 : {
12013 2240 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
12014 2240 : {
12015 2240 : tree _r;
12016 2240 : _r = captures[2];
12017 2240 : if (TREE_SIDE_EFFECTS (captures[0]))
12018 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12019 2240 : if (TREE_SIDE_EFFECTS (captures[1]))
12020 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12021 2240 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1091, __FILE__, __LINE__, true);
12022 2240 : return _r;
12023 : }
12024 0 : next_after_fail1939:;
12025 : }
12026 : }
12027 : }
12028 11722 : break;
12029 : }
12030 454801 : default:;
12031 : }
12032 454801 : switch (TREE_CODE (_p1))
12033 : {
12034 379889 : case VECTOR_CST:
12035 379889 : {
12036 379889 : switch (TREE_CODE (_p2))
12037 : {
12038 366213 : case VECTOR_CST:
12039 366213 : {
12040 366213 : {
12041 366213 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
12042 366213 : if (VECTOR_BOOLEAN_TYPE_P (type)
12043 366351 : && types_match (type, TREE_TYPE (captures[0]))
12044 : )
12045 : {
12046 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
12047 : )
12048 : {
12049 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
12050 28 : {
12051 28 : tree res_op0;
12052 28 : res_op0 = captures[0];
12053 28 : tree _r;
12054 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
12055 28 : if (TREE_SIDE_EFFECTS (captures[1]))
12056 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12057 28 : if (TREE_SIDE_EFFECTS (captures[2]))
12058 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12059 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
12060 28 : return _r;
12061 : }
12062 0 : next_after_fail1940:;
12063 : }
12064 : else
12065 : {
12066 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
12067 : )
12068 : {
12069 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
12070 73 : {
12071 73 : tree _r;
12072 73 : _r = captures[0];
12073 73 : if (TREE_SIDE_EFFECTS (captures[1]))
12074 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12075 73 : if (TREE_SIDE_EFFECTS (captures[2]))
12076 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12077 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
12078 73 : return _r;
12079 : }
12080 0 : next_after_fail1941:;
12081 : }
12082 : }
12083 : }
12084 : }
12085 366112 : break;
12086 : }
12087 : default:;
12088 : }
12089 : break;
12090 : }
12091 454700 : default:;
12092 : }
12093 454700 : switch (TREE_CODE (_p0))
12094 : {
12095 1401 : case NE_EXPR:
12096 1401 : {
12097 1401 : tree _q20 = TREE_OPERAND (_p0, 0);
12098 1401 : tree _q21 = TREE_OPERAND (_p0, 1);
12099 1401 : switch (TREE_CODE (_p1))
12100 : {
12101 6 : case MINUS_EXPR:
12102 6 : {
12103 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12104 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12105 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12106 : {
12107 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12108 : {
12109 6 : if (integer_zerop (_p2))
12110 : {
12111 6 : {
12112 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12113 6 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures);
12114 6 : if (res) return res;
12115 : }
12116 : }
12117 : }
12118 : }
12119 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12120 : {
12121 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12122 : {
12123 0 : if (integer_zerop (_p2))
12124 : {
12125 0 : {
12126 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12127 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures);
12128 0 : if (res) return res;
12129 : }
12130 : }
12131 : }
12132 : }
12133 : break;
12134 : }
12135 6 : case BIT_XOR_EXPR:
12136 6 : {
12137 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12138 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12139 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12140 : {
12141 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12142 : {
12143 6 : if (integer_zerop (_p2))
12144 : {
12145 6 : {
12146 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12147 6 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures);
12148 6 : if (res) return res;
12149 : }
12150 : }
12151 : }
12152 : }
12153 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12154 : {
12155 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12156 : {
12157 0 : if (integer_zerop (_p2))
12158 : {
12159 0 : {
12160 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12161 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures);
12162 0 : if (res) return res;
12163 : }
12164 : }
12165 : }
12166 : }
12167 : break;
12168 : }
12169 6 : case BIT_AND_EXPR:
12170 6 : {
12171 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12172 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12173 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12174 : {
12175 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12176 : {
12177 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12178 : {
12179 6 : {
12180 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12181 6 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
12182 6 : if (res) return res;
12183 : }
12184 : }
12185 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12186 : {
12187 0 : {
12188 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12189 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
12190 0 : if (res) return res;
12191 : }
12192 : }
12193 : }
12194 : }
12195 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12196 : {
12197 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12198 : {
12199 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12200 : {
12201 0 : {
12202 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12203 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
12204 0 : if (res) return res;
12205 : }
12206 : }
12207 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12208 : {
12209 0 : {
12210 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12211 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
12212 0 : if (res) return res;
12213 : }
12214 : }
12215 : }
12216 : }
12217 : break;
12218 : }
12219 6 : case BIT_IOR_EXPR:
12220 6 : {
12221 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12222 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12223 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12224 : {
12225 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12226 : {
12227 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12228 : {
12229 6 : {
12230 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12231 6 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
12232 6 : if (res) return res;
12233 : }
12234 : }
12235 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12236 : {
12237 0 : {
12238 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12239 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
12240 0 : if (res) return res;
12241 : }
12242 : }
12243 : }
12244 : }
12245 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12246 : {
12247 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12248 : {
12249 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12250 : {
12251 0 : {
12252 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12253 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
12254 0 : if (res) return res;
12255 : }
12256 : }
12257 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12258 : {
12259 0 : {
12260 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12261 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
12262 0 : if (res) return res;
12263 : }
12264 : }
12265 : }
12266 : }
12267 : break;
12268 : }
12269 0 : case MIN_EXPR:
12270 0 : {
12271 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12272 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12273 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12274 : {
12275 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12276 : {
12277 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12278 : {
12279 0 : {
12280 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12281 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
12282 0 : if (res) return res;
12283 : }
12284 : }
12285 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12286 : {
12287 0 : {
12288 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12289 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
12290 0 : if (res) return res;
12291 : }
12292 : }
12293 : }
12294 : }
12295 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12296 : {
12297 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12298 : {
12299 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12300 : {
12301 0 : {
12302 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12303 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
12304 0 : if (res) return res;
12305 : }
12306 : }
12307 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12308 : {
12309 0 : {
12310 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12311 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
12312 0 : if (res) return res;
12313 : }
12314 : }
12315 : }
12316 : }
12317 : break;
12318 : }
12319 0 : case MAX_EXPR:
12320 0 : {
12321 0 : tree _q50 = TREE_OPERAND (_p1, 0);
12322 0 : tree _q51 = TREE_OPERAND (_p1, 1);
12323 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12324 : {
12325 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12326 : {
12327 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12328 : {
12329 0 : {
12330 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12331 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12332 0 : if (res) return res;
12333 : }
12334 : }
12335 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12336 : {
12337 0 : {
12338 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12339 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12340 0 : if (res) return res;
12341 : }
12342 : }
12343 : }
12344 : }
12345 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12346 : {
12347 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12348 : {
12349 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
12350 : {
12351 0 : {
12352 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12353 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12354 0 : if (res) return res;
12355 : }
12356 : }
12357 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
12358 : {
12359 0 : {
12360 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12361 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
12362 0 : if (res) return res;
12363 : }
12364 : }
12365 : }
12366 : }
12367 : break;
12368 : }
12369 6 : case MULT_EXPR:
12370 6 : {
12371 6 : tree _q50 = TREE_OPERAND (_p1, 0);
12372 6 : tree _q51 = TREE_OPERAND (_p1, 1);
12373 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12374 : {
12375 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12376 : {
12377 6 : switch (TREE_CODE (_p2))
12378 : {
12379 6 : case MULT_EXPR:
12380 6 : {
12381 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12382 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12383 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12384 : {
12385 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
12386 : {
12387 6 : {
12388 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12389 6 : const enum tree_code op = MULT_EXPR;
12390 6 : if (ANY_INTEGRAL_TYPE_P (type)
12391 : )
12392 : {
12393 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1942;
12394 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
12395 6 : {
12396 6 : tree _r;
12397 6 : _r = captures[2];
12398 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12399 6 : return _r;
12400 : }
12401 0 : next_after_fail1942:;
12402 : }
12403 : }
12404 : }
12405 : }
12406 : break;
12407 : }
12408 : default:;
12409 : }
12410 : }
12411 : }
12412 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12413 : {
12414 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12415 : {
12416 0 : switch (TREE_CODE (_p2))
12417 : {
12418 0 : case MULT_EXPR:
12419 0 : {
12420 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12421 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12422 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12423 : {
12424 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
12425 : {
12426 0 : {
12427 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12428 0 : const enum tree_code op = MULT_EXPR;
12429 0 : if (ANY_INTEGRAL_TYPE_P (type)
12430 : )
12431 : {
12432 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1943;
12433 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
12434 0 : {
12435 0 : tree _r;
12436 0 : _r = captures[2];
12437 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12438 0 : return _r;
12439 : }
12440 0 : next_after_fail1943:;
12441 : }
12442 : }
12443 : }
12444 : }
12445 : break;
12446 : }
12447 : default:;
12448 : }
12449 : }
12450 : }
12451 : break;
12452 : }
12453 35 : case PLUS_EXPR:
12454 35 : {
12455 35 : tree _q50 = TREE_OPERAND (_p1, 0);
12456 35 : tree _q51 = TREE_OPERAND (_p1, 1);
12457 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12458 : {
12459 24 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12460 : {
12461 12 : switch (TREE_CODE (_p2))
12462 : {
12463 6 : case PLUS_EXPR:
12464 6 : {
12465 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12466 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12467 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12468 : {
12469 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
12470 : {
12471 6 : {
12472 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12473 6 : const enum tree_code op = PLUS_EXPR;
12474 6 : if (ANY_INTEGRAL_TYPE_P (type)
12475 : )
12476 : {
12477 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1944;
12478 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
12479 6 : {
12480 6 : tree _r;
12481 6 : _r = captures[2];
12482 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12483 6 : return _r;
12484 : }
12485 0 : next_after_fail1944:;
12486 : }
12487 : }
12488 : }
12489 : }
12490 : break;
12491 : }
12492 6 : case MULT_EXPR:
12493 6 : {
12494 6 : tree _q80 = TREE_OPERAND (_p2, 0);
12495 6 : tree _q81 = TREE_OPERAND (_p2, 1);
12496 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12497 : {
12498 6 : if (uniform_integer_cst_p (_q81))
12499 : {
12500 6 : {
12501 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
12502 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12503 : )
12504 : {
12505 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1945;
12506 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
12507 6 : {
12508 6 : tree _r;
12509 6 : _r = captures[2];
12510 6 : if (TREE_SIDE_EFFECTS (captures[3]))
12511 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12512 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12513 6 : return _r;
12514 : }
12515 0 : next_after_fail1945:;
12516 : }
12517 : }
12518 : }
12519 : }
12520 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12521 : {
12522 0 : if (uniform_integer_cst_p (_q81))
12523 : {
12524 0 : {
12525 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
12526 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12527 : )
12528 : {
12529 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1946;
12530 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
12531 0 : {
12532 0 : tree _r;
12533 0 : _r = captures[2];
12534 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12535 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12536 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12537 0 : return _r;
12538 : }
12539 0 : next_after_fail1946:;
12540 : }
12541 : }
12542 : }
12543 : }
12544 : break;
12545 : }
12546 : default:;
12547 : }
12548 : }
12549 : }
12550 23 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12551 : {
12552 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12553 : {
12554 0 : switch (TREE_CODE (_p2))
12555 : {
12556 0 : case PLUS_EXPR:
12557 0 : {
12558 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12559 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12560 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12561 : {
12562 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
12563 : {
12564 0 : {
12565 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12566 0 : const enum tree_code op = PLUS_EXPR;
12567 0 : if (ANY_INTEGRAL_TYPE_P (type)
12568 : )
12569 : {
12570 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1947;
12571 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
12572 0 : {
12573 0 : tree _r;
12574 0 : _r = captures[2];
12575 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1054, __FILE__, __LINE__, true);
12576 0 : return _r;
12577 : }
12578 0 : next_after_fail1947:;
12579 : }
12580 : }
12581 : }
12582 : }
12583 : break;
12584 : }
12585 0 : case MULT_EXPR:
12586 0 : {
12587 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12588 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12589 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
12590 : {
12591 0 : if (uniform_integer_cst_p (_q81))
12592 : {
12593 0 : {
12594 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
12595 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12596 : )
12597 : {
12598 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1948;
12599 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
12600 0 : {
12601 0 : tree _r;
12602 0 : _r = captures[2];
12603 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12604 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12605 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12606 0 : return _r;
12607 : }
12608 0 : next_after_fail1948:;
12609 : }
12610 : }
12611 : }
12612 : }
12613 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
12614 : {
12615 0 : if (uniform_integer_cst_p (_q81))
12616 : {
12617 0 : {
12618 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
12619 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
12620 : )
12621 : {
12622 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1949;
12623 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
12624 0 : {
12625 0 : tree _r;
12626 0 : _r = captures[2];
12627 0 : if (TREE_SIDE_EFFECTS (captures[3]))
12628 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
12629 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1055, __FILE__, __LINE__, true);
12630 0 : return _r;
12631 : }
12632 0 : next_after_fail1949:;
12633 : }
12634 : }
12635 : }
12636 : }
12637 : break;
12638 : }
12639 : default:;
12640 : }
12641 : }
12642 : }
12643 : break;
12644 : }
12645 : default:;
12646 : }
12647 : break;
12648 : }
12649 454658 : default:;
12650 : }
12651 454658 : switch (TREE_CODE (_p1))
12652 : {
12653 6 : case VEC_COND_EXPR:
12654 6 : {
12655 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12656 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12657 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12658 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12659 : {
12660 0 : {
12661 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
12662 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
12663 0 : {
12664 0 : tree res_op0;
12665 0 : res_op0 = captures[0];
12666 0 : tree res_op1;
12667 0 : res_op1 = captures[1];
12668 0 : tree res_op2;
12669 0 : res_op2 = captures[3];
12670 0 : tree _r;
12671 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12672 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12673 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
12675 0 : return _r;
12676 : }
12677 0 : next_after_fail1950:;
12678 : }
12679 : }
12680 : break;
12681 : }
12682 454658 : default:;
12683 : }
12684 454658 : switch (TREE_CODE (_p2))
12685 : {
12686 3 : case VEC_COND_EXPR:
12687 3 : {
12688 3 : tree _q40 = TREE_OPERAND (_p2, 0);
12689 3 : tree _q41 = TREE_OPERAND (_p2, 1);
12690 3 : tree _q42 = TREE_OPERAND (_p2, 2);
12691 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12692 : {
12693 0 : {
12694 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
12695 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
12696 0 : {
12697 0 : tree res_op0;
12698 0 : res_op0 = captures[0];
12699 0 : tree res_op1;
12700 0 : res_op1 = captures[1];
12701 0 : tree res_op2;
12702 0 : res_op2 = captures[3];
12703 0 : tree _r;
12704 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12705 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12706 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12707 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12708 0 : return _r;
12709 : }
12710 0 : next_after_fail1951:;
12711 : }
12712 : }
12713 3 : {
12714 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
12715 3 : if (inverse_conditions_p (captures[0], captures[2])
12716 : )
12717 : {
12718 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
12719 0 : {
12720 0 : tree res_op0;
12721 0 : res_op0 = captures[0];
12722 0 : tree res_op1;
12723 0 : res_op1 = captures[1];
12724 0 : tree res_op2;
12725 0 : res_op2 = captures[3];
12726 0 : tree _r;
12727 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12728 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12729 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12730 0 : if (TREE_SIDE_EFFECTS (captures[4]))
12731 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
12732 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12733 0 : return _r;
12734 : }
12735 0 : next_after_fail1952:;
12736 : }
12737 : }
12738 3 : break;
12739 : }
12740 454658 : default:;
12741 : }
12742 454658 : switch (TREE_CODE (_p1))
12743 : {
12744 6 : case VEC_COND_EXPR:
12745 6 : {
12746 6 : tree _q30 = TREE_OPERAND (_p1, 0);
12747 6 : tree _q31 = TREE_OPERAND (_p1, 1);
12748 6 : tree _q32 = TREE_OPERAND (_p1, 2);
12749 6 : {
12750 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
12751 6 : if (inverse_conditions_p (captures[0], captures[1])
12752 : )
12753 : {
12754 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
12755 0 : {
12756 0 : tree res_op0;
12757 0 : res_op0 = captures[0];
12758 0 : tree res_op1;
12759 0 : res_op1 = captures[3];
12760 0 : tree res_op2;
12761 0 : res_op2 = captures[4];
12762 0 : tree _r;
12763 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12764 0 : if (TREE_SIDE_EFFECTS (captures[1]))
12765 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
12766 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12767 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12768 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12769 0 : return _r;
12770 : }
12771 0 : next_after_fail1953:;
12772 : }
12773 : }
12774 6 : break;
12775 : }
12776 454658 : default:;
12777 : }
12778 454658 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
12779 : {
12780 36 : {
12781 36 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12782 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
12783 36 : {
12784 36 : tree _r;
12785 36 : _r = captures[1];
12786 36 : if (TREE_SIDE_EFFECTS (captures[0]))
12787 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12788 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12789 36 : return _r;
12790 : }
12791 0 : next_after_fail1954:;
12792 : }
12793 : }
12794 454622 : switch (TREE_CODE (_p0))
12795 : {
12796 67863 : case EQ_EXPR:
12797 67863 : {
12798 67863 : tree _q20 = TREE_OPERAND (_p0, 0);
12799 67863 : tree _q21 = TREE_OPERAND (_p0, 1);
12800 67863 : if (CONSTANT_CLASS_P (_q21))
12801 : {
12802 1663 : {
12803 1663 : tree _p1_pops[1];
12804 1663 : if (tree_nop_convert (_p1, _p1_pops))
12805 : {
12806 0 : tree _q50 = _p1_pops[0];
12807 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12808 : {
12809 0 : if (CONSTANT_CLASS_P (_p2))
12810 : {
12811 0 : {
12812 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12813 0 : if (ANY_INTEGRAL_TYPE_P (type)
12814 0 : && operand_equal_p (captures[1], captures[2])
12815 : )
12816 : {
12817 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
12818 0 : {
12819 0 : tree res_op0;
12820 0 : res_op0 = captures[1];
12821 0 : tree _r;
12822 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
12823 0 : if (TREE_SIDE_EFFECTS (captures[0]))
12824 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12825 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12826 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12827 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
12828 0 : return _r;
12829 : }
12830 0 : next_after_fail1955:;
12831 : }
12832 : }
12833 : }
12834 : }
12835 : }
12836 : }
12837 1663 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12838 : {
12839 0 : if (CONSTANT_CLASS_P (_p2))
12840 : {
12841 0 : {
12842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12843 0 : if (ANY_INTEGRAL_TYPE_P (type)
12844 0 : && operand_equal_p (captures[1], captures[2])
12845 : )
12846 : {
12847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1956;
12848 0 : {
12849 0 : tree res_op0;
12850 0 : res_op0 = captures[1];
12851 0 : tree _r;
12852 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
12853 0 : if (TREE_SIDE_EFFECTS (captures[0]))
12854 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12855 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12856 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12857 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
12858 0 : return _r;
12859 : }
12860 0 : next_after_fail1956:;
12861 : }
12862 : }
12863 : }
12864 : }
12865 : }
12866 67863 : if (zerop (_q21))
12867 : {
12868 1597 : switch (TREE_CODE (_p2))
12869 : {
12870 0 : case NEGATE_EXPR:
12871 0 : {
12872 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12873 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12874 : {
12875 0 : {
12876 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12877 0 : const enum tree_code cmp = EQ_EXPR;
12878 0 : if (!HONOR_SIGNED_ZEROS (type)
12879 0 : && bitwise_equal_p (captures[0], captures[1])
12880 : )
12881 : {
12882 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1957;
12883 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1957;
12884 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1957;
12885 0 : {
12886 0 : tree _r;
12887 0 : _r = captures[2];
12888 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12889 0 : return _r;
12890 : }
12891 0 : next_after_fail1957:;
12892 : }
12893 : }
12894 : }
12895 : break;
12896 : }
12897 1597 : default:;
12898 : }
12899 1597 : if (zerop (_p1))
12900 : {
12901 18 : switch (TREE_CODE (_p2))
12902 : {
12903 0 : case NEGATE_EXPR:
12904 0 : {
12905 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12906 0 : {
12907 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12908 0 : const enum tree_code cmp = EQ_EXPR;
12909 0 : if (!HONOR_SIGNED_ZEROS (type)
12910 0 : && bitwise_equal_p (captures[0], captures[2])
12911 : )
12912 : {
12913 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1958;
12914 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1958;
12915 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1958;
12916 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1958;
12917 0 : {
12918 0 : tree _r;
12919 0 : _r = captures[1];
12920 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
12921 0 : return _r;
12922 : }
12923 0 : next_after_fail1958:;
12924 : }
12925 : }
12926 0 : break;
12927 : }
12928 : default:;
12929 : }
12930 : }
12931 : }
12932 67863 : switch (TREE_CODE (_q20))
12933 : {
12934 0 : case MINUS_EXPR:
12935 0 : {
12936 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12937 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12938 0 : if (zerop (_q21))
12939 : {
12940 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12941 : {
12942 0 : switch (TREE_CODE (_p2))
12943 : {
12944 0 : case MINUS_EXPR:
12945 0 : {
12946 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12947 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12948 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12949 : {
12950 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12951 : {
12952 0 : {
12953 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12954 0 : const enum tree_code cmp = EQ_EXPR;
12955 0 : if (!HONOR_SIGNED_ZEROS (type)
12956 : )
12957 : {
12958 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1959;
12959 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1959;
12960 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1959;
12961 0 : {
12962 0 : tree _r;
12963 0 : _r = captures[3];
12964 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
12965 0 : return _r;
12966 : }
12967 0 : next_after_fail1959:;
12968 : }
12969 : }
12970 : }
12971 : }
12972 : break;
12973 : }
12974 : default:;
12975 : }
12976 : }
12977 : }
12978 0 : if (integer_zerop (_q21))
12979 : {
12980 0 : if (integer_zerop (_p1))
12981 : {
12982 0 : switch (TREE_CODE (_p2))
12983 : {
12984 0 : case MINUS_EXPR:
12985 0 : {
12986 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12987 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12988 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12989 : {
12990 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12991 : {
12992 0 : {
12993 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12994 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12995 0 : if (res) return res;
12996 : }
12997 : }
12998 : }
12999 : break;
13000 : }
13001 : default:;
13002 : }
13003 : }
13004 : }
13005 : break;
13006 : }
13007 : default:;
13008 : }
13009 : break;
13010 : }
13011 1359 : case NE_EXPR:
13012 1359 : {
13013 1359 : tree _q20 = TREE_OPERAND (_p0, 0);
13014 1359 : tree _q21 = TREE_OPERAND (_p0, 1);
13015 1359 : if (CONSTANT_CLASS_P (_q21))
13016 : {
13017 461 : if (CONSTANT_CLASS_P (_p1))
13018 : {
13019 262 : {
13020 262 : tree _p2_pops[1];
13021 262 : if (tree_nop_convert (_p2, _p2_pops))
13022 : {
13023 0 : tree _q60 = _p2_pops[0];
13024 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13025 : {
13026 0 : {
13027 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
13028 0 : if (ANY_INTEGRAL_TYPE_P (type)
13029 0 : && operand_equal_p (captures[1], captures[2])
13030 : )
13031 : {
13032 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1960;
13033 0 : {
13034 0 : tree res_op0;
13035 0 : res_op0 = captures[1];
13036 0 : tree _r;
13037 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13038 0 : if (TREE_SIDE_EFFECTS (captures[0]))
13039 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
13040 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13041 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13042 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13043 0 : return _r;
13044 : }
13045 0 : next_after_fail1960:;
13046 : }
13047 : }
13048 : }
13049 : }
13050 : }
13051 262 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
13052 : {
13053 0 : {
13054 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
13055 0 : if (ANY_INTEGRAL_TYPE_P (type)
13056 0 : && operand_equal_p (captures[1], captures[2])
13057 : )
13058 : {
13059 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1961;
13060 0 : {
13061 0 : tree res_op0;
13062 0 : res_op0 = captures[1];
13063 0 : tree _r;
13064 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13065 0 : if (TREE_SIDE_EFFECTS (captures[0]))
13066 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
13067 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13068 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13069 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
13070 0 : return _r;
13071 : }
13072 0 : next_after_fail1961:;
13073 : }
13074 : }
13075 : }
13076 : }
13077 : }
13078 1359 : if (zerop (_q21))
13079 : {
13080 383 : switch (TREE_CODE (_p2))
13081 : {
13082 0 : case NEGATE_EXPR:
13083 0 : {
13084 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13085 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13086 : {
13087 0 : {
13088 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13089 0 : const enum tree_code cmp = NE_EXPR;
13090 0 : if (!HONOR_SIGNED_ZEROS (type)
13091 0 : && bitwise_equal_p (captures[0], captures[1])
13092 : )
13093 : {
13094 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1962;
13095 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1962;
13096 0 : {
13097 0 : tree _r;
13098 0 : _r = captures[1];
13099 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13100 0 : return _r;
13101 : }
13102 0 : next_after_fail1962:;
13103 : }
13104 : }
13105 : }
13106 : break;
13107 : }
13108 383 : default:;
13109 : }
13110 383 : if (integer_zerop (_p2))
13111 : {
13112 190 : {
13113 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13114 190 : const enum tree_code cmp = NE_EXPR;
13115 190 : if (!HONOR_SIGNED_ZEROS (type)
13116 190 : && bitwise_equal_p (captures[0], captures[1])
13117 : )
13118 : {
13119 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1963;
13120 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1963;
13121 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1963;
13122 0 : {
13123 0 : tree _r;
13124 0 : _r = captures[1];
13125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13126 0 : return _r;
13127 : }
13128 190 : next_after_fail1963:;
13129 : }
13130 : }
13131 : }
13132 : }
13133 1359 : switch (TREE_CODE (_q20))
13134 : {
13135 40 : case MINUS_EXPR:
13136 40 : {
13137 40 : tree _q30 = TREE_OPERAND (_q20, 0);
13138 40 : tree _q31 = TREE_OPERAND (_q20, 1);
13139 40 : if (zerop (_q21))
13140 : {
13141 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13142 : {
13143 0 : switch (TREE_CODE (_p2))
13144 : {
13145 0 : case MINUS_EXPR:
13146 0 : {
13147 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13148 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13149 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13150 : {
13151 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13152 : {
13153 0 : {
13154 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13155 0 : const enum tree_code cmp = NE_EXPR;
13156 0 : if (!HONOR_SIGNED_ZEROS (type)
13157 : )
13158 : {
13159 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1964;
13160 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1964;
13161 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1964;
13162 0 : {
13163 0 : tree _r;
13164 0 : _r = captures[0];
13165 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13166 0 : return _r;
13167 : }
13168 0 : next_after_fail1964:;
13169 : }
13170 : }
13171 : }
13172 : }
13173 : break;
13174 : }
13175 : default:;
13176 : }
13177 : }
13178 : }
13179 40 : if (integer_zerop (_q21))
13180 : {
13181 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13182 : {
13183 0 : if (integer_zerop (_p2))
13184 : {
13185 0 : {
13186 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13187 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
13188 0 : if (res) return res;
13189 : }
13190 : }
13191 : }
13192 : }
13193 : break;
13194 : }
13195 : default:;
13196 : }
13197 : break;
13198 : }
13199 0 : case UNEQ_EXPR:
13200 0 : {
13201 0 : tree _q20 = TREE_OPERAND (_p0, 0);
13202 0 : tree _q21 = TREE_OPERAND (_p0, 1);
13203 0 : if (zerop (_q21))
13204 : {
13205 0 : switch (TREE_CODE (_p2))
13206 : {
13207 0 : case NEGATE_EXPR:
13208 0 : {
13209 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13210 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13211 : {
13212 0 : {
13213 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13214 0 : const enum tree_code cmp = UNEQ_EXPR;
13215 0 : if (!HONOR_SIGNED_ZEROS (type)
13216 0 : && bitwise_equal_p (captures[0], captures[1])
13217 : )
13218 : {
13219 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1965;
13220 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1965;
13221 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1965;
13222 0 : {
13223 0 : tree _r;
13224 0 : _r = captures[2];
13225 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
13226 0 : return _r;
13227 : }
13228 0 : next_after_fail1965:;
13229 : }
13230 : }
13231 : }
13232 : break;
13233 : }
13234 0 : default:;
13235 : }
13236 0 : if (zerop (_p1))
13237 : {
13238 0 : switch (TREE_CODE (_p2))
13239 : {
13240 0 : case NEGATE_EXPR:
13241 0 : {
13242 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13243 0 : {
13244 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
13245 0 : const enum tree_code cmp = UNEQ_EXPR;
13246 0 : if (!HONOR_SIGNED_ZEROS (type)
13247 0 : && bitwise_equal_p (captures[0], captures[2])
13248 : )
13249 : {
13250 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1966;
13251 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1966;
13252 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1966;
13253 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1966;
13254 0 : {
13255 0 : tree _r;
13256 0 : _r = captures[1];
13257 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
13258 0 : return _r;
13259 : }
13260 0 : next_after_fail1966:;
13261 : }
13262 : }
13263 0 : break;
13264 : }
13265 : default:;
13266 : }
13267 : }
13268 : }
13269 0 : switch (TREE_CODE (_q20))
13270 : {
13271 0 : case MINUS_EXPR:
13272 0 : {
13273 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13274 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13275 0 : if (zerop (_q21))
13276 : {
13277 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13278 : {
13279 0 : switch (TREE_CODE (_p2))
13280 : {
13281 0 : case MINUS_EXPR:
13282 0 : {
13283 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13284 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13285 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13286 : {
13287 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13288 : {
13289 0 : {
13290 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
13291 0 : const enum tree_code cmp = UNEQ_EXPR;
13292 0 : if (!HONOR_SIGNED_ZEROS (type)
13293 : )
13294 : {
13295 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1967;
13296 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1967;
13297 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1967;
13298 0 : {
13299 0 : tree _r;
13300 0 : _r = captures[3];
13301 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
13302 0 : return _r;
13303 : }
13304 0 : next_after_fail1967:;
13305 : }
13306 : }
13307 : }
13308 : }
13309 : break;
13310 : }
13311 : default:;
13312 : }
13313 : }
13314 : }
13315 0 : if (integer_zerop (_q21))
13316 : {
13317 0 : if (integer_zerop (_p1))
13318 : {
13319 0 : switch (TREE_CODE (_p2))
13320 : {
13321 0 : case MINUS_EXPR:
13322 0 : {
13323 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13324 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13325 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13326 : {
13327 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13328 : {
13329 0 : {
13330 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
13331 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
13332 0 : if (res) return res;
13333 : }
13334 : }
13335 : }
13336 : break;
13337 : }
13338 : default:;
13339 : }
13340 : }
13341 : }
13342 : break;
13343 : }
13344 : default:;
13345 : }
13346 : break;
13347 : }
13348 0 : case LTGT_EXPR:
13349 0 : {
13350 0 : tree _q20 = TREE_OPERAND (_p0, 0);
13351 0 : tree _q21 = TREE_OPERAND (_p0, 1);
13352 0 : if (zerop (_q21))
13353 : {
13354 0 : switch (TREE_CODE (_p2))
13355 : {
13356 0 : case NEGATE_EXPR:
13357 0 : {
13358 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13359 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13360 : {
13361 0 : {
13362 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13363 0 : const enum tree_code cmp = LTGT_EXPR;
13364 0 : if (!HONOR_SIGNED_ZEROS (type)
13365 0 : && bitwise_equal_p (captures[0], captures[1])
13366 : )
13367 : {
13368 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1968;
13369 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1968;
13370 0 : {
13371 0 : tree _r;
13372 0 : _r = captures[1];
13373 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
13374 0 : return _r;
13375 : }
13376 0 : next_after_fail1968:;
13377 : }
13378 : }
13379 : }
13380 : break;
13381 : }
13382 0 : default:;
13383 : }
13384 0 : if (integer_zerop (_p2))
13385 : {
13386 0 : {
13387 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
13388 0 : const enum tree_code cmp = LTGT_EXPR;
13389 0 : if (!HONOR_SIGNED_ZEROS (type)
13390 0 : && bitwise_equal_p (captures[0], captures[1])
13391 : )
13392 : {
13393 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1969;
13394 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1969;
13395 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1969;
13396 0 : {
13397 0 : tree _r;
13398 0 : _r = captures[1];
13399 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
13400 0 : return _r;
13401 : }
13402 0 : next_after_fail1969:;
13403 : }
13404 : }
13405 : }
13406 : }
13407 0 : switch (TREE_CODE (_q20))
13408 : {
13409 0 : case MINUS_EXPR:
13410 0 : {
13411 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13412 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13413 0 : if (zerop (_q21))
13414 : {
13415 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13416 : {
13417 0 : switch (TREE_CODE (_p2))
13418 : {
13419 0 : case MINUS_EXPR:
13420 0 : {
13421 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13422 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13423 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13424 : {
13425 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13426 : {
13427 0 : {
13428 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13429 0 : const enum tree_code cmp = LTGT_EXPR;
13430 0 : if (!HONOR_SIGNED_ZEROS (type)
13431 : )
13432 : {
13433 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1970;
13434 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1970;
13435 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1970;
13436 0 : {
13437 0 : tree _r;
13438 0 : _r = captures[0];
13439 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
13440 0 : return _r;
13441 : }
13442 0 : next_after_fail1970:;
13443 : }
13444 : }
13445 : }
13446 : }
13447 : break;
13448 : }
13449 : default:;
13450 : }
13451 : }
13452 : }
13453 0 : if (integer_zerop (_q21))
13454 : {
13455 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13456 : {
13457 0 : if (integer_zerop (_p2))
13458 : {
13459 0 : {
13460 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13461 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
13462 0 : if (res) return res;
13463 : }
13464 : }
13465 : }
13466 : }
13467 : break;
13468 : }
13469 : default:;
13470 : }
13471 : break;
13472 : }
13473 1198 : case GE_EXPR:
13474 1198 : {
13475 1198 : tree _q20 = TREE_OPERAND (_p0, 0);
13476 1198 : tree _q21 = TREE_OPERAND (_p0, 1);
13477 1198 : switch (TREE_CODE (_q20))
13478 : {
13479 3 : CASE_CONVERT:
13480 3 : {
13481 3 : tree _q30 = TREE_OPERAND (_q20, 0);
13482 3 : if (zerop (_q21))
13483 : {
13484 0 : switch (TREE_CODE (_p2))
13485 : {
13486 0 : case NEGATE_EXPR:
13487 0 : {
13488 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13489 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13490 : {
13491 0 : {
13492 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13493 0 : const enum tree_code cmp = GE_EXPR;
13494 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13495 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13496 0 : && element_precision (captures[1])
13497 0 : <= element_precision (captures[0])
13498 0 : && bitwise_equal_p (captures[1], captures[2])
13499 0 : && (!VECTOR_TYPE_P (type)
13500 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13501 : )
13502 : {
13503 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13504 : )
13505 : {
13506 0 : {
13507 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13508 0 : if (types_match (captures[0], stype)
13509 : )
13510 : {
13511 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1971;
13512 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1971;
13513 0 : {
13514 0 : tree res_op0;
13515 0 : res_op0 = captures[0];
13516 0 : tree _r;
13517 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13518 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13519 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13520 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13521 0 : return _r;
13522 : }
13523 0 : next_after_fail1971:;
13524 : }
13525 : else
13526 : {
13527 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1972;
13528 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1972;
13529 0 : {
13530 0 : tree res_op0;
13531 0 : {
13532 0 : tree _o1[1], _r1;
13533 0 : _o1[0] = captures[2];
13534 0 : if (TREE_TYPE (_o1[0]) != stype)
13535 : {
13536 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13537 : }
13538 : else
13539 : _r1 = _o1[0];
13540 0 : res_op0 = _r1;
13541 : }
13542 0 : tree _r;
13543 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13544 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13545 0 : return _r;
13546 : }
13547 0 : next_after_fail1972:;
13548 : }
13549 : }
13550 : }
13551 : else
13552 : {
13553 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1973;
13554 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1973;
13555 0 : {
13556 0 : tree res_op0;
13557 0 : res_op0 = captures[2];
13558 0 : tree _r;
13559 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13560 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13561 0 : return _r;
13562 : }
13563 0 : next_after_fail1973:;
13564 : }
13565 : }
13566 : }
13567 : }
13568 : break;
13569 : }
13570 : default:;
13571 : }
13572 : }
13573 : break;
13574 : }
13575 1198 : default:;
13576 : }
13577 1198 : if (zerop (_q21))
13578 : {
13579 350 : switch (TREE_CODE (_p2))
13580 : {
13581 3 : case NEGATE_EXPR:
13582 3 : {
13583 3 : tree _q60 = TREE_OPERAND (_p2, 0);
13584 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13585 : {
13586 3 : {
13587 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13588 3 : const enum tree_code cmp = GE_EXPR;
13589 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13590 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13591 6 : && element_precision (captures[1])
13592 3 : <= element_precision (captures[0])
13593 3 : && bitwise_equal_p (captures[1], captures[2])
13594 6 : && (!VECTOR_TYPE_P (type)
13595 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13596 : )
13597 : {
13598 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13599 : )
13600 : {
13601 0 : {
13602 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13603 0 : if (types_match (captures[0], stype)
13604 : )
13605 : {
13606 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1974;
13607 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1974;
13608 0 : {
13609 0 : tree res_op0;
13610 0 : res_op0 = captures[0];
13611 0 : tree _r;
13612 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13613 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13614 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13615 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13616 0 : return _r;
13617 : }
13618 0 : next_after_fail1974:;
13619 : }
13620 : else
13621 : {
13622 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1975;
13623 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1975;
13624 0 : {
13625 0 : tree res_op0;
13626 0 : {
13627 0 : tree _o1[1], _r1;
13628 0 : _o1[0] = captures[2];
13629 0 : if (TREE_TYPE (_o1[0]) != stype)
13630 : {
13631 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13632 : }
13633 : else
13634 : _r1 = _o1[0];
13635 0 : res_op0 = _r1;
13636 : }
13637 0 : tree _r;
13638 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13639 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13640 0 : return _r;
13641 : }
13642 0 : next_after_fail1975:;
13643 : }
13644 : }
13645 : }
13646 : else
13647 : {
13648 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1976;
13649 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1976;
13650 3 : {
13651 3 : tree res_op0;
13652 3 : res_op0 = captures[2];
13653 3 : tree _r;
13654 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13655 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13656 3 : return _r;
13657 : }
13658 0 : next_after_fail1976:;
13659 : }
13660 : }
13661 : }
13662 : }
13663 : break;
13664 : }
13665 : default:;
13666 : }
13667 : }
13668 1195 : switch (TREE_CODE (_q20))
13669 : {
13670 0 : case MINUS_EXPR:
13671 0 : {
13672 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13673 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13674 0 : if (zerop (_q21))
13675 : {
13676 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13677 : {
13678 0 : switch (TREE_CODE (_p2))
13679 : {
13680 0 : case MINUS_EXPR:
13681 0 : {
13682 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13683 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13684 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13685 : {
13686 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13687 : {
13688 0 : {
13689 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13690 0 : const enum tree_code cmp = GE_EXPR;
13691 0 : if (!HONOR_SIGNED_ZEROS (type)
13692 0 : && !TYPE_UNSIGNED (type)
13693 0 : && (!VECTOR_TYPE_P (type)
13694 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13695 : )
13696 : {
13697 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1977;
13698 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1977;
13699 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1977;
13700 0 : {
13701 0 : tree res_op0;
13702 0 : res_op0 = captures[0];
13703 0 : tree _r;
13704 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13705 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
13706 0 : return _r;
13707 : }
13708 0 : next_after_fail1977:;
13709 : }
13710 : }
13711 : }
13712 : }
13713 : break;
13714 : }
13715 : default:;
13716 : }
13717 : }
13718 : }
13719 : break;
13720 : }
13721 : default:;
13722 : }
13723 : break;
13724 : }
13725 66507 : case GT_EXPR:
13726 66507 : {
13727 66507 : tree _q20 = TREE_OPERAND (_p0, 0);
13728 66507 : tree _q21 = TREE_OPERAND (_p0, 1);
13729 66507 : switch (TREE_CODE (_q20))
13730 : {
13731 13 : CASE_CONVERT:
13732 13 : {
13733 13 : tree _q30 = TREE_OPERAND (_q20, 0);
13734 13 : if (zerop (_q21))
13735 : {
13736 1 : switch (TREE_CODE (_p2))
13737 : {
13738 0 : case NEGATE_EXPR:
13739 0 : {
13740 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13741 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13742 : {
13743 0 : {
13744 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13745 0 : const enum tree_code cmp = GT_EXPR;
13746 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13747 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13748 0 : && element_precision (captures[1])
13749 0 : <= element_precision (captures[0])
13750 0 : && bitwise_equal_p (captures[1], captures[2])
13751 0 : && (!VECTOR_TYPE_P (type)
13752 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13753 : )
13754 : {
13755 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13756 : )
13757 : {
13758 0 : {
13759 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13760 0 : if (types_match (captures[0], stype)
13761 : )
13762 : {
13763 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1978;
13764 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1978;
13765 0 : {
13766 0 : tree res_op0;
13767 0 : res_op0 = captures[0];
13768 0 : tree _r;
13769 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13770 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13771 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13772 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13773 0 : return _r;
13774 : }
13775 0 : next_after_fail1978:;
13776 : }
13777 : else
13778 : {
13779 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1979;
13780 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1979;
13781 0 : {
13782 0 : tree res_op0;
13783 0 : {
13784 0 : tree _o1[1], _r1;
13785 0 : _o1[0] = captures[2];
13786 0 : if (TREE_TYPE (_o1[0]) != stype)
13787 : {
13788 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13789 : }
13790 : else
13791 : _r1 = _o1[0];
13792 0 : res_op0 = _r1;
13793 : }
13794 0 : tree _r;
13795 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13796 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13797 0 : return _r;
13798 : }
13799 0 : next_after_fail1979:;
13800 : }
13801 : }
13802 : }
13803 : else
13804 : {
13805 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1980;
13806 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1980;
13807 0 : {
13808 0 : tree res_op0;
13809 0 : res_op0 = captures[2];
13810 0 : tree _r;
13811 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13812 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13813 0 : return _r;
13814 : }
13815 0 : next_after_fail1980:;
13816 : }
13817 : }
13818 : }
13819 : }
13820 : break;
13821 : }
13822 : default:;
13823 : }
13824 : }
13825 : break;
13826 : }
13827 66507 : default:;
13828 : }
13829 66507 : if (zerop (_q21))
13830 : {
13831 84 : switch (TREE_CODE (_p2))
13832 : {
13833 6 : case NEGATE_EXPR:
13834 6 : {
13835 6 : tree _q60 = TREE_OPERAND (_p2, 0);
13836 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13837 : {
13838 6 : {
13839 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13840 6 : const enum tree_code cmp = GT_EXPR;
13841 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13842 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13843 12 : && element_precision (captures[1])
13844 6 : <= element_precision (captures[0])
13845 6 : && bitwise_equal_p (captures[1], captures[2])
13846 12 : && (!VECTOR_TYPE_P (type)
13847 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13848 : )
13849 : {
13850 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13851 : )
13852 : {
13853 0 : {
13854 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13855 0 : if (types_match (captures[0], stype)
13856 : )
13857 : {
13858 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1981;
13859 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1981;
13860 0 : {
13861 0 : tree res_op0;
13862 0 : res_op0 = captures[0];
13863 0 : tree _r;
13864 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13865 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13866 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13867 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13868 0 : return _r;
13869 : }
13870 0 : next_after_fail1981:;
13871 : }
13872 : else
13873 : {
13874 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1982;
13875 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1982;
13876 0 : {
13877 0 : tree res_op0;
13878 0 : {
13879 0 : tree _o1[1], _r1;
13880 0 : _o1[0] = captures[2];
13881 0 : if (TREE_TYPE (_o1[0]) != stype)
13882 : {
13883 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
13884 : }
13885 : else
13886 : _r1 = _o1[0];
13887 0 : res_op0 = _r1;
13888 : }
13889 0 : tree _r;
13890 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
13891 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13892 0 : return _r;
13893 : }
13894 0 : next_after_fail1982:;
13895 : }
13896 : }
13897 : }
13898 : else
13899 : {
13900 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1983;
13901 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1983;
13902 6 : {
13903 6 : tree res_op0;
13904 6 : res_op0 = captures[2];
13905 6 : tree _r;
13906 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13907 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13908 6 : return _r;
13909 : }
13910 0 : next_after_fail1983:;
13911 : }
13912 : }
13913 : }
13914 : }
13915 : break;
13916 : }
13917 : default:;
13918 : }
13919 : }
13920 66501 : switch (TREE_CODE (_q20))
13921 : {
13922 0 : case MINUS_EXPR:
13923 0 : {
13924 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13925 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13926 0 : if (zerop (_q21))
13927 : {
13928 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13929 : {
13930 0 : switch (TREE_CODE (_p2))
13931 : {
13932 0 : case MINUS_EXPR:
13933 0 : {
13934 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13935 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13936 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13937 : {
13938 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13939 : {
13940 0 : {
13941 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13942 0 : const enum tree_code cmp = GT_EXPR;
13943 0 : if (!HONOR_SIGNED_ZEROS (type)
13944 0 : && !TYPE_UNSIGNED (type)
13945 0 : && (!VECTOR_TYPE_P (type)
13946 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
13947 : )
13948 : {
13949 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1984;
13950 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1984;
13951 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1984;
13952 0 : {
13953 0 : tree res_op0;
13954 0 : res_op0 = captures[0];
13955 0 : tree _r;
13956 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
13957 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
13958 0 : return _r;
13959 : }
13960 0 : next_after_fail1984:;
13961 : }
13962 : }
13963 : }
13964 : }
13965 : break;
13966 : }
13967 : default:;
13968 : }
13969 : }
13970 : }
13971 : break;
13972 : }
13973 : default:;
13974 : }
13975 : break;
13976 : }
13977 1055 : case LE_EXPR:
13978 1055 : {
13979 1055 : tree _q20 = TREE_OPERAND (_p0, 0);
13980 1055 : tree _q21 = TREE_OPERAND (_p0, 1);
13981 1055 : switch (TREE_CODE (_q20))
13982 : {
13983 128 : CASE_CONVERT:
13984 128 : {
13985 128 : tree _q30 = TREE_OPERAND (_q20, 0);
13986 128 : if (zerop (_q21))
13987 : {
13988 0 : switch (TREE_CODE (_p2))
13989 : {
13990 0 : case NEGATE_EXPR:
13991 0 : {
13992 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13993 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13994 : {
13995 0 : {
13996 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13997 0 : const enum tree_code cmp = LE_EXPR;
13998 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13999 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
14000 0 : && element_precision (captures[1])
14001 0 : <= element_precision (captures[0])
14002 0 : && bitwise_equal_p (captures[1], captures[2])
14003 0 : && (!VECTOR_TYPE_P (type)
14004 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14005 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14006 : )
14007 : {
14008 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
14009 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
14010 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
14011 : )
14012 : {
14013 0 : {
14014 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
14015 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
14016 0 : if (types_match (captures[0], stype)
14017 : )
14018 : {
14019 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1985;
14020 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1985;
14021 0 : {
14022 0 : tree res_op0;
14023 0 : {
14024 0 : tree _o1[1], _r1;
14025 0 : {
14026 0 : tree _o2[1], _r2;
14027 0 : _o2[0] = captures[0];
14028 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14029 0 : _o1[0] = _r2;
14030 : }
14031 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14032 0 : res_op0 = _r1;
14033 : }
14034 0 : tree _r;
14035 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14036 0 : if (TREE_SIDE_EFFECTS (captures[2]))
14037 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
14038 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
14039 0 : return _r;
14040 : }
14041 0 : next_after_fail1985:;
14042 : }
14043 : else
14044 : {
14045 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1986;
14046 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1986;
14047 0 : {
14048 0 : tree res_op0;
14049 0 : {
14050 0 : tree _o1[1], _r1;
14051 0 : {
14052 0 : tree _o2[1], _r2;
14053 0 : {
14054 0 : tree _o3[1], _r3;
14055 0 : _o3[0] = captures[2];
14056 0 : if (TREE_TYPE (_o3[0]) != stype)
14057 : {
14058 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
14059 : }
14060 : else
14061 : _r3 = _o3[0];
14062 0 : _o2[0] = _r3;
14063 : }
14064 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14065 0 : _o1[0] = _r2;
14066 : }
14067 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14068 0 : res_op0 = _r1;
14069 : }
14070 0 : tree _r;
14071 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14072 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
14073 0 : return _r;
14074 : }
14075 0 : next_after_fail1986:;
14076 : }
14077 : }
14078 : }
14079 : else
14080 : {
14081 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1987;
14082 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1987;
14083 0 : {
14084 0 : tree res_op0;
14085 0 : {
14086 0 : tree _o1[1], _r1;
14087 0 : {
14088 0 : tree _o2[1], _r2;
14089 0 : _o2[0] = captures[2];
14090 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
14091 0 : _o1[0] = _r2;
14092 : }
14093 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14094 0 : res_op0 = _r1;
14095 : }
14096 0 : tree _r;
14097 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14098 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
14099 0 : return _r;
14100 : }
14101 0 : next_after_fail1987:;
14102 : }
14103 : }
14104 : }
14105 : }
14106 : break;
14107 : }
14108 : default:;
14109 : }
14110 : }
14111 : break;
14112 : }
14113 1055 : default:;
14114 : }
14115 1055 : if (zerop (_q21))
14116 : {
14117 18 : switch (TREE_CODE (_p2))
14118 : {
14119 0 : case NEGATE_EXPR:
14120 0 : {
14121 0 : tree _q60 = TREE_OPERAND (_p2, 0);
14122 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
14123 : {
14124 0 : {
14125 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
14126 0 : const enum tree_code cmp = LE_EXPR;
14127 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
14128 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
14129 0 : && element_precision (captures[1])
14130 0 : <= element_precision (captures[0])
14131 0 : && bitwise_equal_p (captures[1], captures[2])
14132 0 : && (!VECTOR_TYPE_P (type)
14133 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14134 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14135 : )
14136 : {
14137 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
14138 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
14139 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
14140 : )
14141 : {
14142 0 : {
14143 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
14144 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
14145 0 : if (types_match (captures[0], stype)
14146 : )
14147 : {
14148 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1988;
14149 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1988;
14150 0 : {
14151 0 : tree res_op0;
14152 0 : {
14153 0 : tree _o1[1], _r1;
14154 0 : {
14155 0 : tree _o2[1], _r2;
14156 0 : _o2[0] = captures[0];
14157 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14158 0 : _o1[0] = _r2;
14159 : }
14160 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14161 0 : res_op0 = _r1;
14162 : }
14163 0 : tree _r;
14164 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14165 0 : if (TREE_SIDE_EFFECTS (captures[2]))
14166 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
14167 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
14168 0 : return _r;
14169 : }
14170 0 : next_after_fail1988:;
14171 : }
14172 : else
14173 : {
14174 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1989;
14175 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1989;
14176 0 : {
14177 0 : tree res_op0;
14178 0 : {
14179 0 : tree _o1[1], _r1;
14180 0 : {
14181 0 : tree _o2[1], _r2;
14182 0 : {
14183 0 : tree _o3[1], _r3;
14184 0 : _o3[0] = captures[2];
14185 0 : if (TREE_TYPE (_o3[0]) != stype)
14186 : {
14187 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
14188 : }
14189 : else
14190 : _r3 = _o3[0];
14191 0 : _o2[0] = _r3;
14192 : }
14193 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14194 0 : _o1[0] = _r2;
14195 : }
14196 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14197 0 : res_op0 = _r1;
14198 : }
14199 0 : tree _r;
14200 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14201 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
14202 0 : return _r;
14203 : }
14204 0 : next_after_fail1989:;
14205 : }
14206 : }
14207 : }
14208 : else
14209 : {
14210 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1990;
14211 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1990;
14212 0 : {
14213 0 : tree res_op0;
14214 0 : {
14215 0 : tree _o1[1], _r1;
14216 0 : {
14217 0 : tree _o2[1], _r2;
14218 0 : _o2[0] = captures[2];
14219 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
14220 0 : _o1[0] = _r2;
14221 : }
14222 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14223 0 : res_op0 = _r1;
14224 : }
14225 0 : tree _r;
14226 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14227 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
14228 0 : return _r;
14229 : }
14230 0 : next_after_fail1990:;
14231 : }
14232 : }
14233 : }
14234 : }
14235 : break;
14236 : }
14237 : default:;
14238 : }
14239 : }
14240 1055 : switch (TREE_CODE (_q20))
14241 : {
14242 0 : case MINUS_EXPR:
14243 0 : {
14244 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14245 0 : tree _q31 = TREE_OPERAND (_q20, 1);
14246 0 : if (zerop (_q21))
14247 : {
14248 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14249 : {
14250 0 : switch (TREE_CODE (_p2))
14251 : {
14252 0 : case MINUS_EXPR:
14253 0 : {
14254 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14255 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14256 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
14257 : {
14258 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
14259 : {
14260 0 : {
14261 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
14262 0 : const enum tree_code cmp = LE_EXPR;
14263 0 : if (!HONOR_SIGNED_ZEROS (type)
14264 0 : && !TYPE_UNSIGNED (type)
14265 : )
14266 : {
14267 0 : if (ANY_INTEGRAL_TYPE_P (type)
14268 0 : && !TYPE_OVERFLOW_WRAPS (type)
14269 0 : && (!VECTOR_TYPE_P (type)
14270 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14271 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14272 : )
14273 : {
14274 0 : {
14275 0 : tree utype = unsigned_type_for (type);
14276 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1991;
14277 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1991;
14278 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1991;
14279 0 : {
14280 0 : tree res_op0;
14281 0 : {
14282 0 : tree _o1[1], _r1;
14283 0 : {
14284 0 : tree _o2[1], _r2;
14285 0 : _o2[0] = captures[0];
14286 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14287 0 : _o1[0] = _r2;
14288 : }
14289 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14290 0 : res_op0 = _r1;
14291 : }
14292 0 : tree _r;
14293 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14294 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
14295 0 : return _r;
14296 : }
14297 0 : next_after_fail1991:;
14298 : }
14299 : }
14300 : else
14301 : {
14302 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1992;
14303 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1992;
14304 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1992;
14305 0 : {
14306 0 : tree res_op0;
14307 0 : {
14308 0 : tree _o1[1], _r1;
14309 0 : _o1[0] = captures[0];
14310 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14311 0 : res_op0 = _r1;
14312 : }
14313 0 : tree _r;
14314 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
14315 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
14316 0 : return _r;
14317 : }
14318 0 : next_after_fail1992:;
14319 : }
14320 : }
14321 : }
14322 : }
14323 : }
14324 : break;
14325 : }
14326 : default:;
14327 : }
14328 : }
14329 : }
14330 : break;
14331 : }
14332 : default:;
14333 : }
14334 : break;
14335 : }
14336 20965 : case LT_EXPR:
14337 20965 : {
14338 20965 : tree _q20 = TREE_OPERAND (_p0, 0);
14339 20965 : tree _q21 = TREE_OPERAND (_p0, 1);
14340 20965 : switch (TREE_CODE (_q20))
14341 : {
14342 316 : CASE_CONVERT:
14343 316 : {
14344 316 : tree _q30 = TREE_OPERAND (_q20, 0);
14345 316 : if (zerop (_q21))
14346 : {
14347 162 : switch (TREE_CODE (_p2))
14348 : {
14349 0 : case NEGATE_EXPR:
14350 0 : {
14351 0 : tree _q70 = TREE_OPERAND (_p2, 0);
14352 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
14353 : {
14354 0 : {
14355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
14356 0 : const enum tree_code cmp = LT_EXPR;
14357 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
14358 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
14359 0 : && element_precision (captures[1])
14360 0 : <= element_precision (captures[0])
14361 0 : && bitwise_equal_p (captures[1], captures[2])
14362 0 : && (!VECTOR_TYPE_P (type)
14363 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14364 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14365 : )
14366 : {
14367 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
14368 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
14369 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
14370 : )
14371 : {
14372 0 : {
14373 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
14374 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
14375 0 : if (types_match (captures[0], stype)
14376 : )
14377 : {
14378 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1993;
14379 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1993;
14380 0 : {
14381 0 : tree res_op0;
14382 0 : {
14383 0 : tree _o1[1], _r1;
14384 0 : {
14385 0 : tree _o2[1], _r2;
14386 0 : _o2[0] = captures[0];
14387 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14388 0 : _o1[0] = _r2;
14389 : }
14390 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14391 0 : res_op0 = _r1;
14392 : }
14393 0 : tree _r;
14394 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14395 0 : if (TREE_SIDE_EFFECTS (captures[2]))
14396 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
14397 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
14398 0 : return _r;
14399 : }
14400 0 : next_after_fail1993:;
14401 : }
14402 : else
14403 : {
14404 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1994;
14405 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1994;
14406 0 : {
14407 0 : tree res_op0;
14408 0 : {
14409 0 : tree _o1[1], _r1;
14410 0 : {
14411 0 : tree _o2[1], _r2;
14412 0 : {
14413 0 : tree _o3[1], _r3;
14414 0 : _o3[0] = captures[2];
14415 0 : if (TREE_TYPE (_o3[0]) != stype)
14416 : {
14417 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
14418 : }
14419 : else
14420 : _r3 = _o3[0];
14421 0 : _o2[0] = _r3;
14422 : }
14423 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14424 0 : _o1[0] = _r2;
14425 : }
14426 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14427 0 : res_op0 = _r1;
14428 : }
14429 0 : tree _r;
14430 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14431 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
14432 0 : return _r;
14433 : }
14434 0 : next_after_fail1994:;
14435 : }
14436 : }
14437 : }
14438 : else
14439 : {
14440 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1995;
14441 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1995;
14442 0 : {
14443 0 : tree res_op0;
14444 0 : {
14445 0 : tree _o1[1], _r1;
14446 0 : {
14447 0 : tree _o2[1], _r2;
14448 0 : _o2[0] = captures[2];
14449 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
14450 0 : _o1[0] = _r2;
14451 : }
14452 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14453 0 : res_op0 = _r1;
14454 : }
14455 0 : tree _r;
14456 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14457 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
14458 0 : return _r;
14459 : }
14460 0 : next_after_fail1995:;
14461 : }
14462 : }
14463 : }
14464 : }
14465 : break;
14466 : }
14467 : default:;
14468 : }
14469 : }
14470 : break;
14471 : }
14472 20965 : default:;
14473 : }
14474 20965 : if (zerop (_q21))
14475 : {
14476 712 : switch (TREE_CODE (_p2))
14477 : {
14478 16 : case NEGATE_EXPR:
14479 16 : {
14480 16 : tree _q60 = TREE_OPERAND (_p2, 0);
14481 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
14482 : {
14483 16 : {
14484 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
14485 16 : const enum tree_code cmp = LT_EXPR;
14486 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
14487 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
14488 32 : && element_precision (captures[1])
14489 16 : <= element_precision (captures[0])
14490 16 : && bitwise_equal_p (captures[1], captures[2])
14491 32 : && (!VECTOR_TYPE_P (type)
14492 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14493 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14494 : )
14495 : {
14496 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
14497 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
14498 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
14499 : )
14500 : {
14501 0 : {
14502 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
14503 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
14504 0 : if (types_match (captures[0], stype)
14505 : )
14506 : {
14507 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1996;
14508 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1996;
14509 0 : {
14510 0 : tree res_op0;
14511 0 : {
14512 0 : tree _o1[1], _r1;
14513 0 : {
14514 0 : tree _o2[1], _r2;
14515 0 : _o2[0] = captures[0];
14516 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14517 0 : _o1[0] = _r2;
14518 : }
14519 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14520 0 : res_op0 = _r1;
14521 : }
14522 0 : tree _r;
14523 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14524 0 : if (TREE_SIDE_EFFECTS (captures[2]))
14525 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
14526 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
14527 0 : return _r;
14528 : }
14529 16 : next_after_fail1996:;
14530 : }
14531 : else
14532 : {
14533 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1997;
14534 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1997;
14535 0 : {
14536 0 : tree res_op0;
14537 0 : {
14538 0 : tree _o1[1], _r1;
14539 0 : {
14540 0 : tree _o2[1], _r2;
14541 0 : {
14542 0 : tree _o3[1], _r3;
14543 0 : _o3[0] = captures[2];
14544 0 : if (TREE_TYPE (_o3[0]) != stype)
14545 : {
14546 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
14547 : }
14548 : else
14549 : _r3 = _o3[0];
14550 0 : _o2[0] = _r3;
14551 : }
14552 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14553 0 : _o1[0] = _r2;
14554 : }
14555 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14556 0 : res_op0 = _r1;
14557 : }
14558 0 : tree _r;
14559 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14560 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
14561 0 : return _r;
14562 : }
14563 16 : next_after_fail1997:;
14564 : }
14565 : }
14566 : }
14567 : else
14568 : {
14569 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1998;
14570 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1998;
14571 0 : {
14572 0 : tree res_op0;
14573 0 : {
14574 0 : tree _o1[1], _r1;
14575 0 : {
14576 0 : tree _o2[1], _r2;
14577 0 : _o2[0] = captures[2];
14578 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
14579 0 : _o1[0] = _r2;
14580 : }
14581 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14582 0 : res_op0 = _r1;
14583 : }
14584 0 : tree _r;
14585 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14586 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
14587 0 : return _r;
14588 : }
14589 16 : next_after_fail1998:;
14590 : }
14591 : }
14592 : }
14593 : }
14594 : break;
14595 : }
14596 : default:;
14597 : }
14598 : }
14599 20965 : switch (TREE_CODE (_q20))
14600 : {
14601 0 : case MINUS_EXPR:
14602 0 : {
14603 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14604 0 : tree _q31 = TREE_OPERAND (_q20, 1);
14605 0 : if (zerop (_q21))
14606 : {
14607 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14608 : {
14609 0 : switch (TREE_CODE (_p2))
14610 : {
14611 0 : case MINUS_EXPR:
14612 0 : {
14613 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14614 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14615 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
14616 : {
14617 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
14618 : {
14619 0 : {
14620 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
14621 0 : const enum tree_code cmp = LT_EXPR;
14622 0 : if (!HONOR_SIGNED_ZEROS (type)
14623 0 : && !TYPE_UNSIGNED (type)
14624 : )
14625 : {
14626 0 : if (ANY_INTEGRAL_TYPE_P (type)
14627 0 : && !TYPE_OVERFLOW_WRAPS (type)
14628 0 : && (!VECTOR_TYPE_P (type)
14629 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
14630 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
14631 : )
14632 : {
14633 0 : {
14634 0 : tree utype = unsigned_type_for (type);
14635 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1999;
14636 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1999;
14637 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1999;
14638 0 : {
14639 0 : tree res_op0;
14640 0 : {
14641 0 : tree _o1[1], _r1;
14642 0 : {
14643 0 : tree _o2[1], _r2;
14644 0 : _o2[0] = captures[0];
14645 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
14646 0 : _o1[0] = _r2;
14647 : }
14648 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14649 0 : res_op0 = _r1;
14650 : }
14651 0 : tree _r;
14652 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
14653 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
14654 0 : return _r;
14655 : }
14656 0 : next_after_fail1999:;
14657 : }
14658 : }
14659 : else
14660 : {
14661 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail2000;
14662 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail2000;
14663 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2000;
14664 0 : {
14665 0 : tree res_op0;
14666 0 : {
14667 0 : tree _o1[1], _r1;
14668 0 : _o1[0] = captures[0];
14669 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14670 0 : res_op0 = _r1;
14671 : }
14672 0 : tree _r;
14673 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
14674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
14675 0 : return _r;
14676 : }
14677 0 : next_after_fail2000:;
14678 : }
14679 : }
14680 : }
14681 : }
14682 : }
14683 : break;
14684 : }
14685 : default:;
14686 : }
14687 : }
14688 : }
14689 : break;
14690 : }
14691 : default:;
14692 : }
14693 : break;
14694 : }
14695 454613 : default:;
14696 : }
14697 454613 : {
14698 454613 : tree _p0_pops[1];
14699 454613 : if (tree_logical_inverted_value (_p0, _p0_pops))
14700 : {
14701 1418 : tree _q20 = _p0_pops[0];
14702 1418 : if (tree_truth_valued_p (_q20))
14703 : {
14704 0 : {
14705 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
14706 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
14707 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
14708 : )
14709 : {
14710 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2001;
14711 0 : {
14712 0 : tree res_op0;
14713 0 : res_op0 = captures[0];
14714 0 : tree res_op1;
14715 0 : res_op1 = captures[2];
14716 0 : tree res_op2;
14717 0 : res_op2 = captures[1];
14718 0 : tree _r;
14719 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
14720 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1089, __FILE__, __LINE__, true);
14721 0 : return _r;
14722 : }
14723 0 : next_after_fail2001:;
14724 : }
14725 : }
14726 : }
14727 : }
14728 : }
14729 454613 : switch (TREE_CODE (_p1))
14730 : {
14731 0 : case VIEW_CONVERT_EXPR:
14732 0 : {
14733 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14734 0 : switch (TREE_CODE (_q30))
14735 : {
14736 0 : case CALL_EXPR:
14737 0 : switch (get_call_combined_fn (_q30))
14738 : {
14739 0 : case CFN_COND_ADD:
14740 0 : if (call_expr_nargs (_q30) == 4)
14741 : {
14742 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14743 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14744 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14745 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14746 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14747 : {
14748 0 : {
14749 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14750 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14751 0 : if (res) return res;
14752 : }
14753 : }
14754 : }
14755 : break;
14756 0 : case CFN_COND_AND:
14757 0 : if (call_expr_nargs (_q30) == 4)
14758 : {
14759 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14760 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14761 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14762 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14763 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14764 : {
14765 0 : {
14766 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14767 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14768 0 : if (res) return res;
14769 : }
14770 : }
14771 : }
14772 : break;
14773 0 : case CFN_COND_DIV:
14774 0 : if (call_expr_nargs (_q30) == 4)
14775 : {
14776 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14777 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14778 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14779 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14780 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14781 : {
14782 0 : {
14783 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14784 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14785 0 : if (res) return res;
14786 : }
14787 : }
14788 : }
14789 : break;
14790 0 : case CFN_COND_IOR:
14791 0 : if (call_expr_nargs (_q30) == 4)
14792 : {
14793 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14794 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14795 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14796 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14797 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14798 : {
14799 0 : {
14800 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14801 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14802 0 : if (res) return res;
14803 : }
14804 : }
14805 : }
14806 : break;
14807 0 : case CFN_COND_MAX:
14808 0 : if (call_expr_nargs (_q30) == 4)
14809 : {
14810 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14811 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14812 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14813 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14814 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14815 : {
14816 0 : {
14817 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14818 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14819 0 : if (res) return res;
14820 : }
14821 : }
14822 : }
14823 : break;
14824 0 : case CFN_COND_MIN:
14825 0 : if (call_expr_nargs (_q30) == 4)
14826 : {
14827 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14828 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14829 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14830 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14831 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14832 : {
14833 0 : {
14834 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14835 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14836 0 : if (res) return res;
14837 : }
14838 : }
14839 : }
14840 : break;
14841 0 : case CFN_COND_MOD:
14842 0 : if (call_expr_nargs (_q30) == 4)
14843 : {
14844 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14845 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14846 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14847 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14848 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14849 : {
14850 0 : {
14851 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14852 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14853 0 : if (res) return res;
14854 : }
14855 : }
14856 : }
14857 : break;
14858 0 : case CFN_COND_MUL:
14859 0 : if (call_expr_nargs (_q30) == 4)
14860 : {
14861 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14862 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14863 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14864 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14865 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14866 : {
14867 0 : {
14868 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14869 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14870 0 : if (res) return res;
14871 : }
14872 : }
14873 : }
14874 : break;
14875 0 : case CFN_COND_SHL:
14876 0 : if (call_expr_nargs (_q30) == 4)
14877 : {
14878 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14879 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14880 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14881 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14882 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14883 : {
14884 0 : {
14885 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14886 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14887 0 : if (res) return res;
14888 : }
14889 : }
14890 : }
14891 : break;
14892 0 : case CFN_COND_SHR:
14893 0 : if (call_expr_nargs (_q30) == 4)
14894 : {
14895 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14896 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14897 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14898 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14899 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14900 : {
14901 0 : {
14902 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14903 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14904 0 : if (res) return res;
14905 : }
14906 : }
14907 : }
14908 : break;
14909 0 : case CFN_COND_SUB:
14910 0 : if (call_expr_nargs (_q30) == 4)
14911 : {
14912 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14913 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14914 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14915 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14916 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14917 : {
14918 0 : {
14919 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14920 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14921 0 : if (res) return res;
14922 : }
14923 : }
14924 : }
14925 : break;
14926 0 : case CFN_COND_XOR:
14927 0 : if (call_expr_nargs (_q30) == 4)
14928 : {
14929 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14930 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14931 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14932 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14933 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14934 : {
14935 0 : {
14936 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14937 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14938 0 : if (res) return res;
14939 : }
14940 : }
14941 : }
14942 : break;
14943 0 : case CFN_COND_COPYSIGN:
14944 0 : if (call_expr_nargs (_q30) == 4)
14945 : {
14946 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14947 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14948 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14949 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14950 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14951 : {
14952 0 : {
14953 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14954 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14955 0 : if (res) return res;
14956 : }
14957 : }
14958 : }
14959 : break;
14960 0 : case CFN_COND_FMAX:
14961 0 : if (call_expr_nargs (_q30) == 4)
14962 : {
14963 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14964 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14965 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14966 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14967 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14968 : {
14969 0 : {
14970 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14971 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14972 0 : if (res) return res;
14973 : }
14974 : }
14975 : }
14976 : break;
14977 0 : case CFN_COND_FMIN:
14978 0 : if (call_expr_nargs (_q30) == 4)
14979 : {
14980 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14981 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14982 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14983 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14984 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14985 : {
14986 0 : {
14987 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
14988 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14989 0 : if (res) return res;
14990 : }
14991 : }
14992 : }
14993 : break;
14994 0 : case CFN_COND_RDIV:
14995 0 : if (call_expr_nargs (_q30) == 4)
14996 : {
14997 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14998 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14999 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15000 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15001 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15002 : {
15003 0 : {
15004 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
15005 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15006 0 : if (res) return res;
15007 : }
15008 : }
15009 : }
15010 : break;
15011 : default:;
15012 : }
15013 : break;
15014 : default:;
15015 : }
15016 : break;
15017 : }
15018 12 : case CALL_EXPR:
15019 12 : switch (get_call_combined_fn (_p1))
15020 : {
15021 0 : case CFN_COND_ADD:
15022 0 : if (call_expr_nargs (_p1) == 4)
15023 : {
15024 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15025 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15026 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15027 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15028 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15029 : {
15030 0 : {
15031 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15032 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
15033 0 : if (res) return res;
15034 : }
15035 : }
15036 : }
15037 : break;
15038 0 : case CFN_COND_AND:
15039 0 : if (call_expr_nargs (_p1) == 4)
15040 : {
15041 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15042 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15043 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15044 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
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[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15049 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
15050 0 : if (res) return res;
15051 : }
15052 : }
15053 : }
15054 : break;
15055 0 : case CFN_COND_DIV:
15056 0 : if (call_expr_nargs (_p1) == 4)
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 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15063 : {
15064 0 : {
15065 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15066 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
15067 0 : if (res) return res;
15068 : }
15069 : }
15070 : }
15071 : break;
15072 0 : case CFN_COND_IOR:
15073 0 : if (call_expr_nargs (_p1) == 4)
15074 : {
15075 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15076 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15077 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15078 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15079 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15080 : {
15081 0 : {
15082 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15083 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
15084 0 : if (res) return res;
15085 : }
15086 : }
15087 : }
15088 : break;
15089 0 : case CFN_COND_MAX:
15090 0 : if (call_expr_nargs (_p1) == 4)
15091 : {
15092 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15093 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15094 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15095 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15096 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15097 : {
15098 0 : {
15099 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15100 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
15101 0 : if (res) return res;
15102 : }
15103 : }
15104 : }
15105 : break;
15106 0 : case CFN_COND_MIN:
15107 0 : if (call_expr_nargs (_p1) == 4)
15108 : {
15109 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15110 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15111 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15112 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15113 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15114 : {
15115 0 : {
15116 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15117 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
15118 0 : if (res) return res;
15119 : }
15120 : }
15121 : }
15122 : break;
15123 0 : case CFN_COND_MOD:
15124 0 : if (call_expr_nargs (_p1) == 4)
15125 : {
15126 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15127 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15128 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15129 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15130 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15131 : {
15132 0 : {
15133 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15134 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
15135 0 : if (res) return res;
15136 : }
15137 : }
15138 : }
15139 : break;
15140 0 : case CFN_COND_MUL:
15141 0 : if (call_expr_nargs (_p1) == 4)
15142 : {
15143 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15144 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15145 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15146 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15147 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15148 : {
15149 0 : {
15150 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15151 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
15152 0 : if (res) return res;
15153 : }
15154 : }
15155 : }
15156 : break;
15157 0 : case CFN_COND_SHL:
15158 0 : if (call_expr_nargs (_p1) == 4)
15159 : {
15160 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15161 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15162 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15163 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15164 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15165 : {
15166 0 : {
15167 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15168 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
15169 0 : if (res) return res;
15170 : }
15171 : }
15172 : }
15173 : break;
15174 0 : case CFN_COND_SHR:
15175 0 : if (call_expr_nargs (_p1) == 4)
15176 : {
15177 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15178 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15179 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15180 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15181 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15182 : {
15183 0 : {
15184 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15185 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
15186 0 : if (res) return res;
15187 : }
15188 : }
15189 : }
15190 : break;
15191 0 : case CFN_COND_SUB:
15192 0 : if (call_expr_nargs (_p1) == 4)
15193 : {
15194 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15195 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15196 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15197 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15198 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15199 : {
15200 0 : {
15201 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15202 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
15203 0 : if (res) return res;
15204 : }
15205 : }
15206 : }
15207 : break;
15208 0 : case CFN_COND_XOR:
15209 0 : if (call_expr_nargs (_p1) == 4)
15210 : {
15211 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15212 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15213 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15214 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15215 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15216 : {
15217 0 : {
15218 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15219 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
15220 0 : if (res) return res;
15221 : }
15222 : }
15223 : }
15224 : break;
15225 0 : case CFN_COND_COPYSIGN:
15226 0 : if (call_expr_nargs (_p1) == 4)
15227 : {
15228 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15229 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15230 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15231 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15232 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15233 : {
15234 0 : {
15235 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15236 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
15237 0 : if (res) return res;
15238 : }
15239 : }
15240 : }
15241 : break;
15242 0 : case CFN_COND_FMAX:
15243 0 : if (call_expr_nargs (_p1) == 4)
15244 : {
15245 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15246 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15247 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15248 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15249 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15250 : {
15251 0 : {
15252 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15253 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
15254 0 : if (res) return res;
15255 : }
15256 : }
15257 : }
15258 : break;
15259 0 : case CFN_COND_FMIN:
15260 0 : if (call_expr_nargs (_p1) == 4)
15261 : {
15262 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15263 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15264 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15265 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15266 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15267 : {
15268 0 : {
15269 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15270 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15271 0 : if (res) return res;
15272 : }
15273 : }
15274 : }
15275 : break;
15276 0 : case CFN_COND_RDIV:
15277 0 : if (call_expr_nargs (_p1) == 4)
15278 : {
15279 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15280 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15281 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15282 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15283 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15284 : {
15285 0 : {
15286 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
15287 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15288 0 : if (res) return res;
15289 : }
15290 : }
15291 : }
15292 : break;
15293 : default:;
15294 : }
15295 : break;
15296 454613 : default:;
15297 : }
15298 454613 : switch (TREE_CODE (_p2))
15299 : {
15300 0 : case VIEW_CONVERT_EXPR:
15301 0 : {
15302 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15303 0 : switch (TREE_CODE (_q40))
15304 : {
15305 0 : case CALL_EXPR:
15306 0 : switch (get_call_combined_fn (_q40))
15307 : {
15308 0 : case CFN_COND_ADD:
15309 0 : if (call_expr_nargs (_q40) == 4)
15310 : {
15311 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15312 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15313 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15314 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15315 0 : {
15316 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15317 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
15318 0 : if (res) return res;
15319 : }
15320 : }
15321 : break;
15322 0 : case CFN_COND_AND:
15323 0 : if (call_expr_nargs (_q40) == 4)
15324 : {
15325 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15326 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15327 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15328 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15329 0 : {
15330 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15331 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
15332 0 : if (res) return res;
15333 : }
15334 : }
15335 : break;
15336 0 : case CFN_COND_DIV:
15337 0 : if (call_expr_nargs (_q40) == 4)
15338 : {
15339 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15340 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15341 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15342 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15343 0 : {
15344 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15345 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
15346 0 : if (res) return res;
15347 : }
15348 : }
15349 : break;
15350 0 : case CFN_COND_IOR:
15351 0 : if (call_expr_nargs (_q40) == 4)
15352 : {
15353 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15354 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15355 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15356 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15357 0 : {
15358 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15359 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
15360 0 : if (res) return res;
15361 : }
15362 : }
15363 : break;
15364 0 : case CFN_COND_MAX:
15365 0 : if (call_expr_nargs (_q40) == 4)
15366 : {
15367 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15368 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15369 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15370 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15371 0 : {
15372 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15373 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
15374 0 : if (res) return res;
15375 : }
15376 : }
15377 : break;
15378 0 : case CFN_COND_MIN:
15379 0 : if (call_expr_nargs (_q40) == 4)
15380 : {
15381 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15382 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15383 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15384 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15385 0 : {
15386 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15387 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
15388 0 : if (res) return res;
15389 : }
15390 : }
15391 : break;
15392 0 : case CFN_COND_MOD:
15393 0 : if (call_expr_nargs (_q40) == 4)
15394 : {
15395 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15396 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15397 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15398 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15399 0 : {
15400 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15401 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
15402 0 : if (res) return res;
15403 : }
15404 : }
15405 : break;
15406 0 : case CFN_COND_MUL:
15407 0 : if (call_expr_nargs (_q40) == 4)
15408 : {
15409 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15410 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15411 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15412 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15413 0 : {
15414 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15415 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
15416 0 : if (res) return res;
15417 : }
15418 : }
15419 : break;
15420 0 : case CFN_COND_SHL:
15421 0 : if (call_expr_nargs (_q40) == 4)
15422 : {
15423 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15424 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15425 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15426 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15427 0 : {
15428 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15429 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
15430 0 : if (res) return res;
15431 : }
15432 : }
15433 : break;
15434 0 : case CFN_COND_SHR:
15435 0 : if (call_expr_nargs (_q40) == 4)
15436 : {
15437 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15438 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15439 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15440 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15441 0 : {
15442 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15443 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
15444 0 : if (res) return res;
15445 : }
15446 : }
15447 : break;
15448 0 : case CFN_COND_SUB:
15449 0 : if (call_expr_nargs (_q40) == 4)
15450 : {
15451 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15452 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15453 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15454 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15455 0 : {
15456 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15457 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
15458 0 : if (res) return res;
15459 : }
15460 : }
15461 : break;
15462 0 : case CFN_COND_XOR:
15463 0 : if (call_expr_nargs (_q40) == 4)
15464 : {
15465 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15466 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15467 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15468 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15469 0 : {
15470 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15471 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
15472 0 : if (res) return res;
15473 : }
15474 : }
15475 : break;
15476 0 : case CFN_COND_COPYSIGN:
15477 0 : if (call_expr_nargs (_q40) == 4)
15478 : {
15479 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15480 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15481 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15482 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15483 0 : {
15484 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15485 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
15486 0 : if (res) return res;
15487 : }
15488 : }
15489 : break;
15490 0 : case CFN_COND_FMAX:
15491 0 : if (call_expr_nargs (_q40) == 4)
15492 : {
15493 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15494 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15495 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15496 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15497 0 : {
15498 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15499 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
15500 0 : if (res) return res;
15501 : }
15502 : }
15503 : break;
15504 0 : case CFN_COND_FMIN:
15505 0 : if (call_expr_nargs (_q40) == 4)
15506 : {
15507 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15508 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15509 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15510 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15511 0 : {
15512 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15513 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15514 0 : if (res) return res;
15515 : }
15516 : }
15517 : break;
15518 0 : case CFN_COND_RDIV:
15519 0 : if (call_expr_nargs (_q40) == 4)
15520 : {
15521 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15522 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15523 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15524 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15525 0 : {
15526 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
15527 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15528 0 : if (res) return res;
15529 : }
15530 : }
15531 : break;
15532 : default:;
15533 : }
15534 : break;
15535 : default:;
15536 : }
15537 : break;
15538 : }
15539 12 : case CALL_EXPR:
15540 12 : switch (get_call_combined_fn (_p2))
15541 : {
15542 0 : case CFN_COND_ADD:
15543 0 : if (call_expr_nargs (_p2) == 4)
15544 : {
15545 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15546 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15547 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15548 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15549 0 : {
15550 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15551 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
15552 0 : if (res) return res;
15553 : }
15554 : }
15555 : break;
15556 0 : case CFN_COND_AND:
15557 0 : if (call_expr_nargs (_p2) == 4)
15558 : {
15559 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15560 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15561 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15562 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15563 0 : {
15564 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15565 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
15566 0 : if (res) return res;
15567 : }
15568 : }
15569 : break;
15570 0 : case CFN_COND_DIV:
15571 0 : if (call_expr_nargs (_p2) == 4)
15572 : {
15573 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15574 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15575 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15576 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15577 0 : {
15578 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15579 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
15580 0 : if (res) return res;
15581 : }
15582 : }
15583 : break;
15584 0 : case CFN_COND_IOR:
15585 0 : if (call_expr_nargs (_p2) == 4)
15586 : {
15587 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15588 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15589 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15590 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15591 0 : {
15592 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15593 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
15594 0 : if (res) return res;
15595 : }
15596 : }
15597 : break;
15598 0 : case CFN_COND_MAX:
15599 0 : if (call_expr_nargs (_p2) == 4)
15600 : {
15601 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15602 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15603 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15604 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15605 0 : {
15606 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15607 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
15608 0 : if (res) return res;
15609 : }
15610 : }
15611 : break;
15612 0 : case CFN_COND_MIN:
15613 0 : if (call_expr_nargs (_p2) == 4)
15614 : {
15615 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15616 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15617 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15618 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15619 0 : {
15620 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15621 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
15622 0 : if (res) return res;
15623 : }
15624 : }
15625 : break;
15626 0 : case CFN_COND_MOD:
15627 0 : if (call_expr_nargs (_p2) == 4)
15628 : {
15629 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15630 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15631 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15632 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15633 0 : {
15634 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15635 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
15636 0 : if (res) return res;
15637 : }
15638 : }
15639 : break;
15640 0 : case CFN_COND_MUL:
15641 0 : if (call_expr_nargs (_p2) == 4)
15642 : {
15643 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15644 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15645 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15646 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15647 0 : {
15648 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15649 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
15650 0 : if (res) return res;
15651 : }
15652 : }
15653 : break;
15654 0 : case CFN_COND_SHL:
15655 0 : if (call_expr_nargs (_p2) == 4)
15656 : {
15657 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15658 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15659 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15660 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15661 0 : {
15662 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15663 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
15664 0 : if (res) return res;
15665 : }
15666 : }
15667 : break;
15668 0 : case CFN_COND_SHR:
15669 0 : if (call_expr_nargs (_p2) == 4)
15670 : {
15671 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15672 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15673 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15674 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15675 0 : {
15676 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15677 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
15678 0 : if (res) return res;
15679 : }
15680 : }
15681 : break;
15682 0 : case CFN_COND_SUB:
15683 0 : if (call_expr_nargs (_p2) == 4)
15684 : {
15685 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15686 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15687 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15688 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15689 0 : {
15690 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15691 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
15692 0 : if (res) return res;
15693 : }
15694 : }
15695 : break;
15696 0 : case CFN_COND_XOR:
15697 0 : if (call_expr_nargs (_p2) == 4)
15698 : {
15699 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15700 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15701 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15702 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15703 0 : {
15704 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15705 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
15706 0 : if (res) return res;
15707 : }
15708 : }
15709 : break;
15710 0 : case CFN_COND_COPYSIGN:
15711 0 : if (call_expr_nargs (_p2) == 4)
15712 : {
15713 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15714 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15715 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15716 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15717 0 : {
15718 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15719 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
15720 0 : if (res) return res;
15721 : }
15722 : }
15723 : break;
15724 0 : case CFN_COND_FMAX:
15725 0 : if (call_expr_nargs (_p2) == 4)
15726 : {
15727 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15728 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15729 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15730 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15731 0 : {
15732 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15733 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
15734 0 : if (res) return res;
15735 : }
15736 : }
15737 : break;
15738 0 : case CFN_COND_FMIN:
15739 0 : if (call_expr_nargs (_p2) == 4)
15740 : {
15741 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15742 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15743 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15744 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15745 0 : {
15746 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15747 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
15748 0 : if (res) return res;
15749 : }
15750 : }
15751 : break;
15752 0 : case CFN_COND_RDIV:
15753 0 : if (call_expr_nargs (_p2) == 4)
15754 : {
15755 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15756 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15757 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15758 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15759 0 : {
15760 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
15761 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
15762 0 : if (res) return res;
15763 : }
15764 : }
15765 : break;
15766 : default:;
15767 : }
15768 : break;
15769 454613 : default:;
15770 : }
15771 454613 : switch (TREE_CODE (_p1))
15772 : {
15773 0 : case VIEW_CONVERT_EXPR:
15774 0 : {
15775 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15776 0 : switch (TREE_CODE (_q30))
15777 : {
15778 0 : case CALL_EXPR:
15779 0 : switch (get_call_combined_fn (_q30))
15780 : {
15781 0 : case CFN_COND_FMA:
15782 0 : if (call_expr_nargs (_q30) == 5)
15783 : {
15784 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15785 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15786 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15787 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15788 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15789 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15790 : {
15791 0 : {
15792 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15793 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15794 0 : if (res) return res;
15795 : }
15796 : }
15797 : }
15798 : break;
15799 0 : case CFN_COND_FMS:
15800 0 : if (call_expr_nargs (_q30) == 5)
15801 : {
15802 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15803 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15804 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15805 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15806 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15807 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15808 : {
15809 0 : {
15810 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15811 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15812 0 : if (res) return res;
15813 : }
15814 : }
15815 : }
15816 : break;
15817 0 : case CFN_COND_FNMA:
15818 0 : if (call_expr_nargs (_q30) == 5)
15819 : {
15820 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15821 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15822 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15823 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15824 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15825 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15826 : {
15827 0 : {
15828 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15829 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15830 0 : if (res) return res;
15831 : }
15832 : }
15833 : }
15834 : break;
15835 0 : case CFN_COND_FNMS:
15836 0 : if (call_expr_nargs (_q30) == 5)
15837 : {
15838 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15839 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15840 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15841 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15842 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15843 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15844 : {
15845 0 : {
15846 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
15847 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15848 0 : if (res) return res;
15849 : }
15850 : }
15851 : }
15852 : break;
15853 : default:;
15854 : }
15855 : break;
15856 : default:;
15857 : }
15858 : break;
15859 : }
15860 12 : case CALL_EXPR:
15861 12 : switch (get_call_combined_fn (_p1))
15862 : {
15863 0 : case CFN_COND_FMA:
15864 0 : if (call_expr_nargs (_p1) == 5)
15865 : {
15866 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15867 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15868 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15869 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15870 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15871 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15872 : {
15873 0 : {
15874 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15875 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15876 0 : if (res) return res;
15877 : }
15878 : }
15879 : }
15880 : break;
15881 0 : case CFN_COND_FMS:
15882 0 : if (call_expr_nargs (_p1) == 5)
15883 : {
15884 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15885 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15886 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15887 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15888 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15889 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15890 : {
15891 0 : {
15892 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15893 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15894 0 : if (res) return res;
15895 : }
15896 : }
15897 : }
15898 : break;
15899 0 : case CFN_COND_FNMA:
15900 0 : if (call_expr_nargs (_p1) == 5)
15901 : {
15902 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15903 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15904 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15905 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15906 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15907 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15908 : {
15909 0 : {
15910 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15911 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15912 0 : if (res) return res;
15913 : }
15914 : }
15915 : }
15916 : break;
15917 0 : case CFN_COND_FNMS:
15918 0 : if (call_expr_nargs (_p1) == 5)
15919 : {
15920 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15921 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15922 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15923 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15924 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15925 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15926 : {
15927 0 : {
15928 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
15929 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15930 0 : if (res) return res;
15931 : }
15932 : }
15933 : }
15934 : break;
15935 : default:;
15936 : }
15937 : break;
15938 454613 : default:;
15939 : }
15940 454613 : switch (TREE_CODE (_p2))
15941 : {
15942 0 : case VIEW_CONVERT_EXPR:
15943 0 : {
15944 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15945 0 : switch (TREE_CODE (_q40))
15946 : {
15947 0 : case CALL_EXPR:
15948 0 : switch (get_call_combined_fn (_q40))
15949 : {
15950 0 : case CFN_COND_FMA:
15951 0 : if (call_expr_nargs (_q40) == 5)
15952 : {
15953 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15954 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15955 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15956 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15957 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15958 0 : {
15959 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15960 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15961 0 : if (res) return res;
15962 : }
15963 : }
15964 : break;
15965 0 : case CFN_COND_FMS:
15966 0 : if (call_expr_nargs (_q40) == 5)
15967 : {
15968 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15969 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15970 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15971 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15972 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15973 0 : {
15974 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15975 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15976 0 : if (res) return res;
15977 : }
15978 : }
15979 : break;
15980 0 : case CFN_COND_FNMA:
15981 0 : if (call_expr_nargs (_q40) == 5)
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 : {
15989 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
15990 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15991 0 : if (res) return res;
15992 : }
15993 : }
15994 : break;
15995 0 : case CFN_COND_FNMS:
15996 0 : if (call_expr_nargs (_q40) == 5)
15997 : {
15998 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15999 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16000 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16001 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16002 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16003 0 : {
16004 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
16005 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
16006 0 : if (res) return res;
16007 : }
16008 : }
16009 : break;
16010 : default:;
16011 : }
16012 : break;
16013 : default:;
16014 : }
16015 : break;
16016 : }
16017 12 : case CALL_EXPR:
16018 12 : switch (get_call_combined_fn (_p2))
16019 : {
16020 0 : case CFN_COND_FMA:
16021 0 : if (call_expr_nargs (_p2) == 5)
16022 : {
16023 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16024 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16025 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16026 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16027 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16028 0 : {
16029 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
16030 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16031 0 : if (res) return res;
16032 : }
16033 : }
16034 : break;
16035 0 : case CFN_COND_FMS:
16036 0 : if (call_expr_nargs (_p2) == 5)
16037 : {
16038 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16039 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16040 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16041 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16042 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16043 0 : {
16044 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
16045 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16046 0 : if (res) return res;
16047 : }
16048 : }
16049 : break;
16050 0 : case CFN_COND_FNMA:
16051 0 : if (call_expr_nargs (_p2) == 5)
16052 : {
16053 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16054 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16055 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16056 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16057 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16058 0 : {
16059 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
16060 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
16061 0 : if (res) return res;
16062 : }
16063 : }
16064 : break;
16065 0 : case CFN_COND_FNMS:
16066 0 : if (call_expr_nargs (_p2) == 5)
16067 : {
16068 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16069 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16070 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16071 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16072 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16073 0 : {
16074 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
16075 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
16076 0 : if (res) return res;
16077 : }
16078 : }
16079 : break;
16080 : default:;
16081 : }
16082 : break;
16083 454613 : default:;
16084 : }
16085 454613 : switch (TREE_CODE (_p1))
16086 : {
16087 0 : case VIEW_CONVERT_EXPR:
16088 0 : {
16089 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16090 0 : switch (TREE_CODE (_q30))
16091 : {
16092 0 : case CALL_EXPR:
16093 0 : switch (get_call_combined_fn (_q30))
16094 : {
16095 0 : case CFN_COND_LEN_ADD:
16096 0 : if (call_expr_nargs (_q30) == 6)
16097 : {
16098 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16099 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16100 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16101 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16102 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16103 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16104 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16105 : {
16106 0 : {
16107 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16108 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16109 0 : if (res) return res;
16110 : }
16111 : }
16112 : }
16113 : break;
16114 0 : case CFN_COND_LEN_AND:
16115 0 : if (call_expr_nargs (_q30) == 6)
16116 : {
16117 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16118 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16119 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16120 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16121 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16122 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16123 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16124 : {
16125 0 : {
16126 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16127 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16128 0 : if (res) return res;
16129 : }
16130 : }
16131 : }
16132 : break;
16133 0 : case CFN_COND_LEN_DIV:
16134 0 : if (call_expr_nargs (_q30) == 6)
16135 : {
16136 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16137 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16138 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16139 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16140 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16141 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16142 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16143 : {
16144 0 : {
16145 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16146 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16147 0 : if (res) return res;
16148 : }
16149 : }
16150 : }
16151 : break;
16152 0 : case CFN_COND_LEN_IOR:
16153 0 : if (call_expr_nargs (_q30) == 6)
16154 : {
16155 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16156 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16157 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16158 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16159 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16160 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16161 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16162 : {
16163 0 : {
16164 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16165 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16166 0 : if (res) return res;
16167 : }
16168 : }
16169 : }
16170 : break;
16171 0 : case CFN_COND_LEN_MAX:
16172 0 : if (call_expr_nargs (_q30) == 6)
16173 : {
16174 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16175 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16176 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16177 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16178 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16179 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16180 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16181 : {
16182 0 : {
16183 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16184 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16185 0 : if (res) return res;
16186 : }
16187 : }
16188 : }
16189 : break;
16190 0 : case CFN_COND_LEN_MIN:
16191 0 : if (call_expr_nargs (_q30) == 6)
16192 : {
16193 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16194 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16195 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16196 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16197 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16198 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16199 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16200 : {
16201 0 : {
16202 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16203 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16204 0 : if (res) return res;
16205 : }
16206 : }
16207 : }
16208 : break;
16209 0 : case CFN_COND_LEN_MOD:
16210 0 : if (call_expr_nargs (_q30) == 6)
16211 : {
16212 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16213 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16214 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16215 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16216 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16217 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16218 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16219 : {
16220 0 : {
16221 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16222 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16223 0 : if (res) return res;
16224 : }
16225 : }
16226 : }
16227 : break;
16228 0 : case CFN_COND_LEN_MUL:
16229 0 : if (call_expr_nargs (_q30) == 6)
16230 : {
16231 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16232 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16233 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16234 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16235 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16236 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16237 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16238 : {
16239 0 : {
16240 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16241 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16242 0 : if (res) return res;
16243 : }
16244 : }
16245 : }
16246 : break;
16247 0 : case CFN_COND_LEN_SHL:
16248 0 : if (call_expr_nargs (_q30) == 6)
16249 : {
16250 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16251 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16252 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16253 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16254 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16255 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16256 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16257 : {
16258 0 : {
16259 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16260 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16261 0 : if (res) return res;
16262 : }
16263 : }
16264 : }
16265 : break;
16266 0 : case CFN_COND_LEN_SHR:
16267 0 : if (call_expr_nargs (_q30) == 6)
16268 : {
16269 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16270 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16271 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16272 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16273 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16274 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16275 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16276 : {
16277 0 : {
16278 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16279 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16280 0 : if (res) return res;
16281 : }
16282 : }
16283 : }
16284 : break;
16285 0 : case CFN_COND_LEN_SUB:
16286 0 : if (call_expr_nargs (_q30) == 6)
16287 : {
16288 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16289 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16290 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16291 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16292 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16293 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16294 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16295 : {
16296 0 : {
16297 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16298 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16299 0 : if (res) return res;
16300 : }
16301 : }
16302 : }
16303 : break;
16304 0 : case CFN_COND_LEN_XOR:
16305 0 : if (call_expr_nargs (_q30) == 6)
16306 : {
16307 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16308 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16309 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16310 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16311 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16312 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16313 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16314 : {
16315 0 : {
16316 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16317 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16318 0 : if (res) return res;
16319 : }
16320 : }
16321 : }
16322 : break;
16323 0 : case CFN_COND_LEN_FMAX:
16324 0 : if (call_expr_nargs (_q30) == 6)
16325 : {
16326 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16327 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16328 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16329 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16330 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16331 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16332 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16333 : {
16334 0 : {
16335 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16336 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16337 0 : if (res) return res;
16338 : }
16339 : }
16340 : }
16341 : break;
16342 0 : case CFN_COND_LEN_FMIN:
16343 0 : if (call_expr_nargs (_q30) == 6)
16344 : {
16345 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16346 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16347 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16348 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16349 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16350 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16351 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16352 : {
16353 0 : {
16354 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16355 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16356 0 : if (res) return res;
16357 : }
16358 : }
16359 : }
16360 : break;
16361 0 : case CFN_COND_LEN_RDIV:
16362 0 : if (call_expr_nargs (_q30) == 6)
16363 : {
16364 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16365 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16366 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16367 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16368 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16369 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16370 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16371 : {
16372 0 : {
16373 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16374 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16375 0 : if (res) return res;
16376 : }
16377 : }
16378 : }
16379 : break;
16380 0 : case CFN_COND_LEN_COPYSIGN:
16381 0 : if (call_expr_nargs (_q30) == 6)
16382 : {
16383 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16384 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16385 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16386 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16387 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16388 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16389 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16390 : {
16391 0 : {
16392 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
16393 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16394 0 : if (res) return res;
16395 : }
16396 : }
16397 : }
16398 : break;
16399 : default:;
16400 : }
16401 : break;
16402 : default:;
16403 : }
16404 : break;
16405 : }
16406 12 : case CALL_EXPR:
16407 12 : switch (get_call_combined_fn (_p1))
16408 : {
16409 0 : case CFN_COND_LEN_ADD:
16410 0 : if (call_expr_nargs (_p1) == 6)
16411 : {
16412 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16413 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16414 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16415 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16416 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16417 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16418 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16419 : {
16420 0 : {
16421 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16422 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16423 0 : if (res) return res;
16424 : }
16425 : }
16426 : }
16427 : break;
16428 0 : case CFN_COND_LEN_AND:
16429 0 : if (call_expr_nargs (_p1) == 6)
16430 : {
16431 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16432 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16433 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16434 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16435 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16436 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16437 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16438 : {
16439 0 : {
16440 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16441 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16442 0 : if (res) return res;
16443 : }
16444 : }
16445 : }
16446 : break;
16447 0 : case CFN_COND_LEN_DIV:
16448 0 : if (call_expr_nargs (_p1) == 6)
16449 : {
16450 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16451 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16452 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16453 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16454 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16455 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16456 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16457 : {
16458 0 : {
16459 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16460 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16461 0 : if (res) return res;
16462 : }
16463 : }
16464 : }
16465 : break;
16466 0 : case CFN_COND_LEN_IOR:
16467 0 : if (call_expr_nargs (_p1) == 6)
16468 : {
16469 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16470 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16471 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16472 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16473 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16474 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16475 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16476 : {
16477 0 : {
16478 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16479 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16480 0 : if (res) return res;
16481 : }
16482 : }
16483 : }
16484 : break;
16485 0 : case CFN_COND_LEN_MAX:
16486 0 : if (call_expr_nargs (_p1) == 6)
16487 : {
16488 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16489 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16490 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16491 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16492 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16493 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16494 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16495 : {
16496 0 : {
16497 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16498 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16499 0 : if (res) return res;
16500 : }
16501 : }
16502 : }
16503 : break;
16504 0 : case CFN_COND_LEN_MIN:
16505 0 : if (call_expr_nargs (_p1) == 6)
16506 : {
16507 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16508 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16509 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16510 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16511 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16512 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16513 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16514 : {
16515 0 : {
16516 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16517 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16518 0 : if (res) return res;
16519 : }
16520 : }
16521 : }
16522 : break;
16523 0 : case CFN_COND_LEN_MOD:
16524 0 : if (call_expr_nargs (_p1) == 6)
16525 : {
16526 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16527 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16528 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16529 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16530 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16531 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16532 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16533 : {
16534 0 : {
16535 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16536 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16537 0 : if (res) return res;
16538 : }
16539 : }
16540 : }
16541 : break;
16542 0 : case CFN_COND_LEN_MUL:
16543 0 : if (call_expr_nargs (_p1) == 6)
16544 : {
16545 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16546 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16547 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16548 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16549 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16550 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16551 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16552 : {
16553 0 : {
16554 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16555 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16556 0 : if (res) return res;
16557 : }
16558 : }
16559 : }
16560 : break;
16561 0 : case CFN_COND_LEN_SHL:
16562 0 : if (call_expr_nargs (_p1) == 6)
16563 : {
16564 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16565 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16566 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16567 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16568 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16569 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16570 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16571 : {
16572 0 : {
16573 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16574 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16575 0 : if (res) return res;
16576 : }
16577 : }
16578 : }
16579 : break;
16580 0 : case CFN_COND_LEN_SHR:
16581 0 : if (call_expr_nargs (_p1) == 6)
16582 : {
16583 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16584 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16585 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16586 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16587 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16588 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16589 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16590 : {
16591 0 : {
16592 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16593 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16594 0 : if (res) return res;
16595 : }
16596 : }
16597 : }
16598 : break;
16599 0 : case CFN_COND_LEN_SUB:
16600 0 : if (call_expr_nargs (_p1) == 6)
16601 : {
16602 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16603 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16604 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16605 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16606 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16607 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16608 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16609 : {
16610 0 : {
16611 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16612 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16613 0 : if (res) return res;
16614 : }
16615 : }
16616 : }
16617 : break;
16618 0 : case CFN_COND_LEN_XOR:
16619 0 : if (call_expr_nargs (_p1) == 6)
16620 : {
16621 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16622 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16623 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16624 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16625 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16626 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16627 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16628 : {
16629 0 : {
16630 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16631 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16632 0 : if (res) return res;
16633 : }
16634 : }
16635 : }
16636 : break;
16637 0 : case CFN_COND_LEN_FMAX:
16638 0 : if (call_expr_nargs (_p1) == 6)
16639 : {
16640 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16641 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16642 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16643 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16644 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16645 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16646 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16647 : {
16648 0 : {
16649 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16650 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16651 0 : if (res) return res;
16652 : }
16653 : }
16654 : }
16655 : break;
16656 0 : case CFN_COND_LEN_FMIN:
16657 0 : if (call_expr_nargs (_p1) == 6)
16658 : {
16659 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16660 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16661 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16662 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16663 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16664 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16665 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16666 : {
16667 0 : {
16668 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16669 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16670 0 : if (res) return res;
16671 : }
16672 : }
16673 : }
16674 : break;
16675 0 : case CFN_COND_LEN_RDIV:
16676 0 : if (call_expr_nargs (_p1) == 6)
16677 : {
16678 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16679 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16680 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16681 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16682 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16683 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16684 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16685 : {
16686 0 : {
16687 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16688 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16689 0 : if (res) return res;
16690 : }
16691 : }
16692 : }
16693 : break;
16694 0 : case CFN_COND_LEN_COPYSIGN:
16695 0 : if (call_expr_nargs (_p1) == 6)
16696 : {
16697 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16698 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16699 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16700 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16701 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16702 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16703 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16704 : {
16705 0 : {
16706 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
16707 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16708 0 : if (res) return res;
16709 : }
16710 : }
16711 : }
16712 : break;
16713 : default:;
16714 : }
16715 : break;
16716 454613 : default:;
16717 : }
16718 454613 : switch (TREE_CODE (_p2))
16719 : {
16720 0 : case VIEW_CONVERT_EXPR:
16721 0 : {
16722 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16723 0 : switch (TREE_CODE (_q40))
16724 : {
16725 0 : case CALL_EXPR:
16726 0 : switch (get_call_combined_fn (_q40))
16727 : {
16728 0 : case CFN_COND_LEN_ADD:
16729 0 : if (call_expr_nargs (_q40) == 6)
16730 : {
16731 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16732 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16733 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16734 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16735 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16736 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16737 0 : {
16738 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16739 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
16740 0 : if (res) return res;
16741 : }
16742 : }
16743 : break;
16744 0 : case CFN_COND_LEN_AND:
16745 0 : if (call_expr_nargs (_q40) == 6)
16746 : {
16747 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16748 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16749 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16750 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16751 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16752 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16753 0 : {
16754 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16755 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16756 0 : if (res) return res;
16757 : }
16758 : }
16759 : break;
16760 0 : case CFN_COND_LEN_DIV:
16761 0 : if (call_expr_nargs (_q40) == 6)
16762 : {
16763 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16764 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16765 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16766 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16767 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16768 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16769 0 : {
16770 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16771 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16772 0 : if (res) return res;
16773 : }
16774 : }
16775 : break;
16776 0 : case CFN_COND_LEN_IOR:
16777 0 : if (call_expr_nargs (_q40) == 6)
16778 : {
16779 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16780 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16781 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16782 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16783 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16784 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16785 0 : {
16786 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16787 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16788 0 : if (res) return res;
16789 : }
16790 : }
16791 : break;
16792 0 : case CFN_COND_LEN_MAX:
16793 0 : if (call_expr_nargs (_q40) == 6)
16794 : {
16795 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16796 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16797 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16798 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16799 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16800 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16801 0 : {
16802 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16803 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16804 0 : if (res) return res;
16805 : }
16806 : }
16807 : break;
16808 0 : case CFN_COND_LEN_MIN:
16809 0 : if (call_expr_nargs (_q40) == 6)
16810 : {
16811 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16812 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16813 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16814 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16815 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16816 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16817 0 : {
16818 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16819 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16820 0 : if (res) return res;
16821 : }
16822 : }
16823 : break;
16824 0 : case CFN_COND_LEN_MOD:
16825 0 : if (call_expr_nargs (_q40) == 6)
16826 : {
16827 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16828 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16829 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16830 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16831 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16832 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16833 0 : {
16834 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16835 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16836 0 : if (res) return res;
16837 : }
16838 : }
16839 : break;
16840 0 : case CFN_COND_LEN_MUL:
16841 0 : if (call_expr_nargs (_q40) == 6)
16842 : {
16843 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16844 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16845 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16846 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16847 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16848 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16849 0 : {
16850 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16851 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16852 0 : if (res) return res;
16853 : }
16854 : }
16855 : break;
16856 0 : case CFN_COND_LEN_SHL:
16857 0 : if (call_expr_nargs (_q40) == 6)
16858 : {
16859 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16860 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16861 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16862 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16863 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16864 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16865 0 : {
16866 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16867 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16868 0 : if (res) return res;
16869 : }
16870 : }
16871 : break;
16872 0 : case CFN_COND_LEN_SHR:
16873 0 : if (call_expr_nargs (_q40) == 6)
16874 : {
16875 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16876 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16877 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16878 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16879 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16880 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16881 0 : {
16882 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16883 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16884 0 : if (res) return res;
16885 : }
16886 : }
16887 : break;
16888 0 : case CFN_COND_LEN_SUB:
16889 0 : if (call_expr_nargs (_q40) == 6)
16890 : {
16891 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16892 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16893 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16894 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16895 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16896 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16897 0 : {
16898 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16899 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16900 0 : if (res) return res;
16901 : }
16902 : }
16903 : break;
16904 0 : case CFN_COND_LEN_XOR:
16905 0 : if (call_expr_nargs (_q40) == 6)
16906 : {
16907 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16908 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16909 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16910 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16911 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16912 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16913 0 : {
16914 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16915 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16916 0 : if (res) return res;
16917 : }
16918 : }
16919 : break;
16920 0 : case CFN_COND_LEN_FMAX:
16921 0 : if (call_expr_nargs (_q40) == 6)
16922 : {
16923 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16924 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16925 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16926 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16927 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16928 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16929 0 : {
16930 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16931 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16932 0 : if (res) return res;
16933 : }
16934 : }
16935 : break;
16936 0 : case CFN_COND_LEN_FMIN:
16937 0 : if (call_expr_nargs (_q40) == 6)
16938 : {
16939 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16940 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16941 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16942 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16943 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16944 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16945 0 : {
16946 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16947 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16948 0 : if (res) return res;
16949 : }
16950 : }
16951 : break;
16952 0 : case CFN_COND_LEN_RDIV:
16953 0 : if (call_expr_nargs (_q40) == 6)
16954 : {
16955 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16956 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16957 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16958 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16959 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16960 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16961 0 : {
16962 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16963 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16964 0 : if (res) return res;
16965 : }
16966 : }
16967 : break;
16968 0 : case CFN_COND_LEN_COPYSIGN:
16969 0 : if (call_expr_nargs (_q40) == 6)
16970 : {
16971 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16972 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16973 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16974 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16975 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16976 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16977 0 : {
16978 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
16979 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16980 0 : if (res) return res;
16981 : }
16982 : }
16983 : break;
16984 : default:;
16985 : }
16986 : break;
16987 : default:;
16988 : }
16989 : break;
16990 : }
16991 12 : case CALL_EXPR:
16992 12 : switch (get_call_combined_fn (_p2))
16993 : {
16994 0 : case CFN_COND_LEN_ADD:
16995 0 : if (call_expr_nargs (_p2) == 6)
16996 : {
16997 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16998 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16999 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17000 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17001 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17002 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17003 0 : {
17004 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17005 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
17006 0 : if (res) return res;
17007 : }
17008 : }
17009 : break;
17010 0 : case CFN_COND_LEN_AND:
17011 0 : if (call_expr_nargs (_p2) == 6)
17012 : {
17013 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17014 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17015 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17016 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17017 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17018 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17019 0 : {
17020 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17021 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
17022 0 : if (res) return res;
17023 : }
17024 : }
17025 : break;
17026 0 : case CFN_COND_LEN_DIV:
17027 0 : if (call_expr_nargs (_p2) == 6)
17028 : {
17029 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17030 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17031 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17032 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17033 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17034 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17035 0 : {
17036 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17037 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
17038 0 : if (res) return res;
17039 : }
17040 : }
17041 : break;
17042 0 : case CFN_COND_LEN_IOR:
17043 0 : if (call_expr_nargs (_p2) == 6)
17044 : {
17045 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17046 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17047 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17048 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17049 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17050 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17051 0 : {
17052 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17053 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
17054 0 : if (res) return res;
17055 : }
17056 : }
17057 : break;
17058 0 : case CFN_COND_LEN_MAX:
17059 0 : if (call_expr_nargs (_p2) == 6)
17060 : {
17061 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17062 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17063 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17064 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17065 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17066 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17067 0 : {
17068 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17069 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
17070 0 : if (res) return res;
17071 : }
17072 : }
17073 : break;
17074 0 : case CFN_COND_LEN_MIN:
17075 0 : if (call_expr_nargs (_p2) == 6)
17076 : {
17077 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17078 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17079 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17080 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17081 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17082 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17083 0 : {
17084 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17085 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
17086 0 : if (res) return res;
17087 : }
17088 : }
17089 : break;
17090 0 : case CFN_COND_LEN_MOD:
17091 0 : if (call_expr_nargs (_p2) == 6)
17092 : {
17093 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17094 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17095 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17096 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17097 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17098 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17099 0 : {
17100 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17101 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
17102 0 : if (res) return res;
17103 : }
17104 : }
17105 : break;
17106 0 : case CFN_COND_LEN_MUL:
17107 0 : if (call_expr_nargs (_p2) == 6)
17108 : {
17109 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17110 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17111 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17112 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17113 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17114 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17115 0 : {
17116 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17117 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
17118 0 : if (res) return res;
17119 : }
17120 : }
17121 : break;
17122 0 : case CFN_COND_LEN_SHL:
17123 0 : if (call_expr_nargs (_p2) == 6)
17124 : {
17125 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17126 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17127 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17128 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17129 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17130 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17131 0 : {
17132 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17133 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
17134 0 : if (res) return res;
17135 : }
17136 : }
17137 : break;
17138 0 : case CFN_COND_LEN_SHR:
17139 0 : if (call_expr_nargs (_p2) == 6)
17140 : {
17141 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17142 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17143 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17144 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17145 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17146 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17147 0 : {
17148 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17149 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
17150 0 : if (res) return res;
17151 : }
17152 : }
17153 : break;
17154 0 : case CFN_COND_LEN_SUB:
17155 0 : if (call_expr_nargs (_p2) == 6)
17156 : {
17157 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17158 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17159 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17160 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17161 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17162 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17163 0 : {
17164 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17165 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
17166 0 : if (res) return res;
17167 : }
17168 : }
17169 : break;
17170 0 : case CFN_COND_LEN_XOR:
17171 0 : if (call_expr_nargs (_p2) == 6)
17172 : {
17173 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17174 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17175 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17176 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17177 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17178 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17179 0 : {
17180 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17181 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
17182 0 : if (res) return res;
17183 : }
17184 : }
17185 : break;
17186 0 : case CFN_COND_LEN_FMAX:
17187 0 : if (call_expr_nargs (_p2) == 6)
17188 : {
17189 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17190 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17191 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17192 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17193 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17194 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17195 0 : {
17196 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17197 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
17198 0 : if (res) return res;
17199 : }
17200 : }
17201 : break;
17202 0 : case CFN_COND_LEN_FMIN:
17203 0 : if (call_expr_nargs (_p2) == 6)
17204 : {
17205 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17206 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17207 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17208 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17209 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17210 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17211 0 : {
17212 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17213 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
17214 0 : if (res) return res;
17215 : }
17216 : }
17217 : break;
17218 0 : case CFN_COND_LEN_RDIV:
17219 0 : if (call_expr_nargs (_p2) == 6)
17220 : {
17221 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17222 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17223 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17224 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17225 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17226 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17227 0 : {
17228 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17229 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
17230 0 : if (res) return res;
17231 : }
17232 : }
17233 : break;
17234 0 : case CFN_COND_LEN_COPYSIGN:
17235 0 : if (call_expr_nargs (_p2) == 6)
17236 : {
17237 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17238 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17239 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17240 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17241 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17242 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17243 0 : {
17244 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
17245 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
17246 0 : if (res) return res;
17247 : }
17248 : }
17249 : break;
17250 : default:;
17251 : }
17252 : break;
17253 454613 : default:;
17254 : }
17255 454613 : switch (TREE_CODE (_p1))
17256 : {
17257 0 : case VIEW_CONVERT_EXPR:
17258 0 : {
17259 0 : tree _q30 = TREE_OPERAND (_p1, 0);
17260 0 : switch (TREE_CODE (_q30))
17261 : {
17262 0 : case CALL_EXPR:
17263 0 : switch (get_call_combined_fn (_q30))
17264 : {
17265 0 : case CFN_COND_LEN_FMA:
17266 0 : if (call_expr_nargs (_q30) == 7)
17267 : {
17268 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17269 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
17270 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
17271 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
17272 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
17273 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
17274 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
17275 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17276 : {
17277 0 : {
17278 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
17279 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
17280 0 : if (res) return res;
17281 : }
17282 : }
17283 : }
17284 : break;
17285 0 : case CFN_COND_LEN_FMS:
17286 0 : if (call_expr_nargs (_q30) == 7)
17287 : {
17288 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17289 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
17290 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
17291 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
17292 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
17293 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
17294 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
17295 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17296 : {
17297 0 : {
17298 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
17299 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
17300 0 : if (res) return res;
17301 : }
17302 : }
17303 : }
17304 : break;
17305 0 : case CFN_COND_LEN_FNMA:
17306 0 : if (call_expr_nargs (_q30) == 7)
17307 : {
17308 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17309 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
17310 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
17311 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
17312 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
17313 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
17314 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
17315 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17316 : {
17317 0 : {
17318 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
17319 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
17320 0 : if (res) return res;
17321 : }
17322 : }
17323 : }
17324 : break;
17325 0 : case CFN_COND_LEN_FNMS:
17326 0 : if (call_expr_nargs (_q30) == 7)
17327 : {
17328 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17329 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
17330 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
17331 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
17332 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
17333 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
17334 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
17335 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17336 : {
17337 0 : {
17338 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
17339 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17340 0 : if (res) return res;
17341 : }
17342 : }
17343 : }
17344 : break;
17345 : default:;
17346 : }
17347 : break;
17348 : default:;
17349 : }
17350 : break;
17351 : }
17352 12 : case CALL_EXPR:
17353 12 : switch (get_call_combined_fn (_p1))
17354 : {
17355 0 : case CFN_COND_LEN_FMA:
17356 0 : if (call_expr_nargs (_p1) == 7)
17357 : {
17358 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17359 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17360 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17361 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17362 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17363 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
17364 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
17365 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17366 : {
17367 0 : {
17368 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
17369 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
17370 0 : if (res) return res;
17371 : }
17372 : }
17373 : }
17374 : break;
17375 0 : case CFN_COND_LEN_FMS:
17376 0 : if (call_expr_nargs (_p1) == 7)
17377 : {
17378 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17379 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17380 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17381 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17382 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17383 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
17384 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
17385 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17386 : {
17387 0 : {
17388 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
17389 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
17390 0 : if (res) return res;
17391 : }
17392 : }
17393 : }
17394 : break;
17395 0 : case CFN_COND_LEN_FNMA:
17396 0 : if (call_expr_nargs (_p1) == 7)
17397 : {
17398 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17399 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17400 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17401 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17402 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17403 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
17404 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
17405 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17406 : {
17407 0 : {
17408 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
17409 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
17410 0 : if (res) return res;
17411 : }
17412 : }
17413 : }
17414 : break;
17415 0 : case CFN_COND_LEN_FNMS:
17416 0 : if (call_expr_nargs (_p1) == 7)
17417 : {
17418 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17419 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17420 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17421 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17422 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17423 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
17424 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
17425 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17426 : {
17427 0 : {
17428 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
17429 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17430 0 : if (res) return res;
17431 : }
17432 : }
17433 : }
17434 : break;
17435 : default:;
17436 : }
17437 : break;
17438 454613 : default:;
17439 : }
17440 454613 : switch (TREE_CODE (_p2))
17441 : {
17442 0 : case VIEW_CONVERT_EXPR:
17443 0 : {
17444 0 : tree _q40 = TREE_OPERAND (_p2, 0);
17445 0 : switch (TREE_CODE (_q40))
17446 : {
17447 0 : case CALL_EXPR:
17448 0 : switch (get_call_combined_fn (_q40))
17449 : {
17450 0 : case CFN_COND_LEN_FMA:
17451 0 : if (call_expr_nargs (_q40) == 7)
17452 : {
17453 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
17454 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
17455 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
17456 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
17457 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
17458 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
17459 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
17460 0 : {
17461 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
17462 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
17463 0 : if (res) return res;
17464 : }
17465 : }
17466 : break;
17467 0 : case CFN_COND_LEN_FMS:
17468 0 : if (call_expr_nargs (_q40) == 7)
17469 : {
17470 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
17471 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
17472 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
17473 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
17474 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
17475 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
17476 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
17477 0 : {
17478 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
17479 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
17480 0 : if (res) return res;
17481 : }
17482 : }
17483 : break;
17484 0 : case CFN_COND_LEN_FNMA:
17485 0 : if (call_expr_nargs (_q40) == 7)
17486 : {
17487 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
17488 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
17489 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
17490 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
17491 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
17492 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
17493 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
17494 0 : {
17495 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
17496 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
17497 0 : if (res) return res;
17498 : }
17499 : }
17500 : break;
17501 0 : case CFN_COND_LEN_FNMS:
17502 0 : if (call_expr_nargs (_q40) == 7)
17503 : {
17504 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
17505 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
17506 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
17507 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
17508 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
17509 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
17510 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
17511 0 : {
17512 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
17513 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17514 0 : if (res) return res;
17515 : }
17516 : }
17517 : break;
17518 : default:;
17519 : }
17520 : break;
17521 : default:;
17522 : }
17523 : break;
17524 : }
17525 12 : case CALL_EXPR:
17526 12 : switch (get_call_combined_fn (_p2))
17527 : {
17528 0 : case CFN_COND_LEN_FMA:
17529 0 : if (call_expr_nargs (_p2) == 7)
17530 : {
17531 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17532 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17533 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17534 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17535 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17536 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17537 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17538 0 : {
17539 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17540 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
17541 0 : if (res) return res;
17542 : }
17543 : }
17544 : break;
17545 0 : case CFN_COND_LEN_FMS:
17546 0 : if (call_expr_nargs (_p2) == 7)
17547 : {
17548 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17549 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17550 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17551 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17552 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17553 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17554 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17555 0 : {
17556 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17557 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
17558 0 : if (res) return res;
17559 : }
17560 : }
17561 : break;
17562 0 : case CFN_COND_LEN_FNMA:
17563 0 : if (call_expr_nargs (_p2) == 7)
17564 : {
17565 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17566 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17567 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17568 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17569 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17570 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17571 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17572 0 : {
17573 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17574 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
17575 0 : if (res) return res;
17576 : }
17577 : }
17578 : break;
17579 0 : case CFN_COND_LEN_FNMS:
17580 0 : if (call_expr_nargs (_p2) == 7)
17581 : {
17582 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
17583 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
17584 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
17585 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
17586 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
17587 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
17588 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
17589 0 : {
17590 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
17591 0 : tree res = generic_simplify_562 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
17592 0 : if (res) return res;
17593 : }
17594 : }
17595 : break;
17596 : default:;
17597 : }
17598 : break;
17599 454613 : default:;
17600 : }
17601 454613 : switch (TREE_CODE (_p1))
17602 : {
17603 12 : case CALL_EXPR:
17604 12 : switch (get_call_combined_fn (_p1))
17605 : {
17606 0 : case CFN_COND_ADD:
17607 0 : if (call_expr_nargs (_p1) == 4)
17608 : {
17609 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17610 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17611 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17612 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17613 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17614 : {
17615 0 : {
17616 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17617 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
17618 0 : if (res) return res;
17619 : }
17620 : }
17621 : }
17622 : break;
17623 0 : case CFN_COND_AND:
17624 0 : if (call_expr_nargs (_p1) == 4)
17625 : {
17626 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17627 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17628 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17629 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17630 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17631 : {
17632 0 : {
17633 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17634 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
17635 0 : if (res) return res;
17636 : }
17637 : }
17638 : }
17639 : break;
17640 0 : case CFN_COND_DIV:
17641 0 : if (call_expr_nargs (_p1) == 4)
17642 : {
17643 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17644 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17645 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17646 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17647 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17648 : {
17649 0 : {
17650 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17651 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
17652 0 : if (res) return res;
17653 : }
17654 : }
17655 : }
17656 : break;
17657 0 : case CFN_COND_FMA:
17658 0 : if (call_expr_nargs (_p1) == 5)
17659 : {
17660 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17661 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17662 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17663 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17664 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17665 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17666 : {
17667 0 : {
17668 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17669 0 : tree res = generic_simplify_564 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
17670 0 : if (res) return res;
17671 : }
17672 : }
17673 : }
17674 : break;
17675 0 : case CFN_COND_FMS:
17676 0 : if (call_expr_nargs (_p1) == 5)
17677 : {
17678 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17679 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17680 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17681 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17682 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17683 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17684 : {
17685 0 : {
17686 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17687 0 : tree res = generic_simplify_564 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
17688 0 : if (res) return res;
17689 : }
17690 : }
17691 : }
17692 : break;
17693 0 : case CFN_COND_IOR:
17694 0 : if (call_expr_nargs (_p1) == 4)
17695 : {
17696 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17697 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17698 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17699 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17700 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17701 : {
17702 0 : {
17703 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17704 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
17705 0 : if (res) return res;
17706 : }
17707 : }
17708 : }
17709 : break;
17710 0 : case CFN_COND_MAX:
17711 0 : if (call_expr_nargs (_p1) == 4)
17712 : {
17713 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17714 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17715 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17716 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17717 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17718 : {
17719 0 : {
17720 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17721 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
17722 0 : if (res) return res;
17723 : }
17724 : }
17725 : }
17726 : break;
17727 0 : case CFN_COND_MIN:
17728 0 : if (call_expr_nargs (_p1) == 4)
17729 : {
17730 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17731 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17732 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17733 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17734 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17735 : {
17736 0 : {
17737 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17738 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
17739 0 : if (res) return res;
17740 : }
17741 : }
17742 : }
17743 : break;
17744 0 : case CFN_COND_MOD:
17745 0 : if (call_expr_nargs (_p1) == 4)
17746 : {
17747 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17748 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17749 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17750 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17751 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17752 : {
17753 0 : {
17754 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17755 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
17756 0 : if (res) return res;
17757 : }
17758 : }
17759 : }
17760 : break;
17761 0 : case CFN_COND_MUL:
17762 0 : if (call_expr_nargs (_p1) == 4)
17763 : {
17764 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17765 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17766 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17767 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17768 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17769 : {
17770 0 : {
17771 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17772 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
17773 0 : if (res) return res;
17774 : }
17775 : }
17776 : }
17777 : break;
17778 0 : case CFN_COND_SHL:
17779 0 : if (call_expr_nargs (_p1) == 4)
17780 : {
17781 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17782 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17783 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17784 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17785 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17786 : {
17787 0 : {
17788 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17789 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
17790 0 : if (res) return res;
17791 : }
17792 : }
17793 : }
17794 : break;
17795 0 : case CFN_COND_SHR:
17796 0 : if (call_expr_nargs (_p1) == 4)
17797 : {
17798 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17799 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17800 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17801 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17802 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17803 : {
17804 0 : {
17805 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17806 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
17807 0 : if (res) return res;
17808 : }
17809 : }
17810 : }
17811 : break;
17812 0 : case CFN_COND_SUB:
17813 0 : if (call_expr_nargs (_p1) == 4)
17814 : {
17815 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17816 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17817 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17818 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17819 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17820 : {
17821 0 : {
17822 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17823 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
17824 0 : if (res) return res;
17825 : }
17826 : }
17827 : }
17828 : break;
17829 0 : case CFN_COND_XOR:
17830 0 : if (call_expr_nargs (_p1) == 4)
17831 : {
17832 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17833 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17834 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17835 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17836 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17837 : {
17838 0 : {
17839 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17840 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
17841 0 : if (res) return res;
17842 : }
17843 : }
17844 : }
17845 : break;
17846 0 : case CFN_COND_COPYSIGN:
17847 0 : if (call_expr_nargs (_p1) == 4)
17848 : {
17849 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17850 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17851 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17852 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17853 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17854 : {
17855 0 : {
17856 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17857 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
17858 0 : if (res) return res;
17859 : }
17860 : }
17861 : }
17862 : break;
17863 0 : case CFN_COND_FMAX:
17864 0 : if (call_expr_nargs (_p1) == 4)
17865 : {
17866 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17867 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17868 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17869 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17870 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17871 : {
17872 0 : {
17873 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17874 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
17875 0 : if (res) return res;
17876 : }
17877 : }
17878 : }
17879 : break;
17880 0 : case CFN_COND_FMIN:
17881 0 : if (call_expr_nargs (_p1) == 4)
17882 : {
17883 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17884 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17885 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17886 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17887 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17888 : {
17889 0 : {
17890 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17891 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
17892 0 : if (res) return res;
17893 : }
17894 : }
17895 : }
17896 : break;
17897 0 : case CFN_COND_FNMA:
17898 0 : if (call_expr_nargs (_p1) == 5)
17899 : {
17900 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17901 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17902 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17903 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17904 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17905 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17906 : {
17907 0 : {
17908 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17909 0 : tree res = generic_simplify_564 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
17910 0 : if (res) return res;
17911 : }
17912 : }
17913 : }
17914 : break;
17915 0 : case CFN_COND_FNMS:
17916 0 : if (call_expr_nargs (_p1) == 5)
17917 : {
17918 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17919 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17920 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17921 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17922 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
17923 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
17924 : {
17925 0 : {
17926 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
17927 0 : tree res = generic_simplify_564 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
17928 0 : if (res) return res;
17929 : }
17930 : }
17931 : }
17932 : break;
17933 0 : case CFN_COND_RDIV:
17934 0 : if (call_expr_nargs (_p1) == 4)
17935 : {
17936 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
17937 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
17938 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
17939 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
17940 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
17941 : {
17942 0 : {
17943 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
17944 0 : tree res = generic_simplify_563 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
17945 0 : if (res) return res;
17946 : }
17947 : }
17948 : }
17949 : break;
17950 : default:;
17951 : }
17952 : break;
17953 : default:;
17954 : }
17955 : return NULL_TREE;
17956 : }
17957 : #pragma GCC diagnostic pop
|